summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHubert Figuière <hub@figuiere.net>2016-12-07 00:03:00 -0500
committerHubert Figuière <hub@figuiere.net>2016-12-07 00:04:31 -0500
commit6071af09b5e263b63e57b28ab8a78484bc65e3fe (patch)
tree45f97ac82e5582684d889ede0fdacaf2c6eddf2e
parent606a7df73750084a36fe69651e7b672333a76412 (diff)
Update to XMP SDK CC 2016.07
-rw-r--r--BSD-License.txt2
-rw-r--r--XMP-Toolkit-SDK-Overview.pdfbin126009 -> 163352 bytes
-rw-r--r--XMPCommon/BaseClasses/MemoryManagedObject.h46
-rw-r--r--XMPCommon/BaseClasses/TSingleton.h188
-rw-r--r--XMPCommon/ImplHeaders/ConfigurableImpl.h73
-rw-r--r--XMPCommon/ImplHeaders/ConfigurationManagerImpl.h59
-rw-r--r--XMPCommon/ImplHeaders/DefaultErrorNotifierImpl.h35
-rw-r--r--XMPCommon/ImplHeaders/ErrorImpl.h80
-rw-r--r--XMPCommon/ImplHeaders/ErrorNotifierWrapperImpl.h50
-rw-r--r--XMPCommon/ImplHeaders/MemoryAllocatorWrapperImpl.h38
-rw-r--r--XMPCommon/ImplHeaders/SharedMutexImpl.h52
-rw-r--r--XMPCommon/ImplHeaders/SharedObjectImpl.h49
-rw-r--r--XMPCommon/ImplHeaders/ThreadSafeImpl.h51
-rw-r--r--XMPCommon/ImplHeaders/UTF8StringImpl.h83
-rw-r--r--XMPCommon/Interfaces/BaseInterfaces/IConfigurable_I.h129
-rw-r--r--XMPCommon/Interfaces/BaseInterfaces/ISharedObject_I.h50
-rw-r--r--XMPCommon/Interfaces/BaseInterfaces/IThreadSafe_I.h52
-rw-r--r--XMPCommon/Interfaces/IConfigurationManager_I.h65
-rw-r--r--XMPCommon/Interfaces/IErrorNotifier_I.h53
-rw-r--r--XMPCommon/Interfaces/IError_I.h282
-rw-r--r--XMPCommon/Interfaces/IMemoryAllocator_I.h53
-rw-r--r--XMPCommon/Interfaces/ISharedMutex.h88
-rw-r--r--XMPCommon/Interfaces/IUTF8String_I.h115
-rw-r--r--XMPCommon/Utilities/AutoSharedLock.h29
-rw-r--r--XMPCommon/Utilities/IUTF8StringComparator.h23
-rw-r--r--XMPCommon/Utilities/TAllocator.h99
-rw-r--r--XMPCommon/Utilities/TAtomicTypes.h127
-rw-r--r--XMPCommon/Utilities/TAtomicTypes_Linux.h31
-rw-r--r--XMPCommon/Utilities/TAtomicTypes_Mac.h149
-rw-r--r--XMPCommon/Utilities/TAtomicTypes_Win.h107
-rw-r--r--XMPCommon/Utilities/TSmartPointers_I.h81
-rw-r--r--XMPCommon/Utilities/TWrapperFunctions2_I.h224
-rw-r--r--XMPCommon/Utilities/TWrapperFunctions_I.h426
-rw-r--r--XMPCommon/Utilities/UTF8String.h27
-rw-r--r--XMPCommon/XMPCommonDefines_I.h49
-rw-r--r--XMPCommon/XMPCommonErrorCodes_I.h47
-rw-r--r--XMPCommon/XMPCommonFwdDeclarations_I.h91
-rw-r--r--XMPCommon/XMPCommon_I.h28
-rw-r--r--XMPCommon/source/AutoSharedLock.cpp49
-rw-r--r--XMPCommon/source/ConfigurableImpl.cpp278
-rw-r--r--XMPCommon/source/ConfigurationManagerImpl.cpp54
-rw-r--r--XMPCommon/source/DefaultErrorNotifierImpl.cpp25
-rw-r--r--XMPCommon/source/ErrorImpl.cpp212
-rw-r--r--XMPCommon/source/ErrorNotifierWrapperImpl.cpp46
-rw-r--r--XMPCommon/source/IConfigurable_I.cpp142
-rw-r--r--XMPCommon/source/IConfigurationManager_I.cpp75
-rw-r--r--XMPCommon/source/IErrorNotifier_I.cpp30
-rw-r--r--XMPCommon/source/IError_I.cpp143
-rw-r--r--XMPCommon/source/IMemoryAllocator_I.cpp26
-rw-r--r--XMPCommon/source/IUTF8StringComparator.cpp26
-rw-r--r--XMPCommon/source/IUTF8String_I.cpp160
-rw-r--r--XMPCommon/source/MemoryAllocatorWrapperImpl.cpp76
-rw-r--r--XMPCommon/source/MemoryManagedObject.cpp68
-rw-r--r--XMPCommon/source/SharedMutexImpl.cpp46
-rw-r--r--XMPCommon/source/SharedObjectImpl.cpp40
-rw-r--r--XMPCommon/source/ThreadSafeImpl.cpp51
-rw-r--r--XMPCommon/source/UTF8StringImpl.cpp268
-rw-r--r--XMPCommon/source/XMPCommon.cpp22
-rw-r--r--XMPCore/ImplHeaders/ArrayNodeImpl.h71
-rw-r--r--XMPCore/ImplHeaders/ClientDOMParserWrapperImpl.h50
-rw-r--r--XMPCore/ImplHeaders/ClientDOMSerializerWrapperImpl.h50
-rw-r--r--XMPCore/ImplHeaders/CompositeNodeImpl.h56
-rw-r--r--XMPCore/ImplHeaders/CoreConfigurationManagerImpl.h50
-rw-r--r--XMPCore/ImplHeaders/CoreObjectFactoryImpl.h65
-rw-r--r--XMPCore/ImplHeaders/DOMImplementationRegistryImpl.h62
-rw-r--r--XMPCore/ImplHeaders/DOMParserImpl.h64
-rw-r--r--XMPCore/ImplHeaders/DOMSerializerImpl.h60
-rw-r--r--XMPCore/ImplHeaders/MetadataImpl.h82
-rw-r--r--XMPCore/ImplHeaders/NameSpacePrefixMapImpl.h79
-rw-r--r--XMPCore/ImplHeaders/NodeImpl.h111
-rw-r--r--XMPCore/ImplHeaders/PathImpl.h66
-rw-r--r--XMPCore/ImplHeaders/PathSegmentImpl.h66
-rw-r--r--XMPCore/ImplHeaders/RDFDOMParserImpl.h53
-rw-r--r--XMPCore/ImplHeaders/RDFDOMSerializerImpl.h53
-rw-r--r--XMPCore/ImplHeaders/SimpleNodeImpl.h66
-rw-r--r--XMPCore/ImplHeaders/StructureNodeImpl.h87
-rw-r--r--XMPCore/ImplHeaders/TNodeIteratorImpl.h81
-rw-r--r--XMPCore/Interfaces/IArrayNode_I.h90
-rw-r--r--XMPCore/Interfaces/ICompositeNode_I.h73
-rw-r--r--XMPCore/Interfaces/ICoreConfigurationManager_I.h75
-rw-r--r--XMPCore/Interfaces/ICoreObjectFactory_I.h65
-rw-r--r--XMPCore/Interfaces/IDOMImplementationRegistry_I.h108
-rw-r--r--XMPCore/Interfaces/IDOMParser_I.h92
-rw-r--r--XMPCore/Interfaces/IDOMSerializer_I.h82
-rw-r--r--XMPCore/Interfaces/IMetadata_I.h68
-rw-r--r--XMPCore/Interfaces/INameSpacePrefixMap_I.h106
-rw-r--r--XMPCore/Interfaces/INodeIterator_I.h61
-rw-r--r--XMPCore/Interfaces/INode_I.h223
-rw-r--r--XMPCore/Interfaces/IPathSegment_I.h125
-rw-r--r--XMPCore/Interfaces/IPath_I.h72
-rw-r--r--XMPCore/Interfaces/ISimpleNode_I.h83
-rw-r--r--XMPCore/Interfaces/IStructureNode_I.h189
-rw-r--r--XMPCore/Interfaces/IXMPLanguageAlternative_I.h30
-rw-r--r--XMPCore/XMPCoreDefines_I.h39
-rw-r--r--XMPCore/XMPCoreFwdDeclarations_I.h82
-rw-r--r--XMPCore/build/CMakeLists.txt9
-rw-r--r--XMPCore/build/CMakeListsCommon.txt162
-rw-r--r--XMPCore/resource/linux/XMPCore.exp1
-rw-r--r--XMPCore/resource/mac/XMPCore.exp1
-rw-r--r--XMPCore/resource/win/XMPCore.def3
-rw-r--r--XMPCore/source/ArrayNodeImpl.cpp227
-rw-r--r--XMPCore/source/ClientDOMParserWrapperImpl.cpp90
-rw-r--r--XMPCore/source/ClientDOMSerializerWrapperImpl.cpp106
-rw-r--r--XMPCore/source/CompositeNodeImpl.cpp154
-rw-r--r--XMPCore/source/CoreConfigurationManagerImpl.cpp56
-rw-r--r--XMPCore/source/CoreObjectFactoryImpl.cpp158
-rw-r--r--XMPCore/source/DOMImplementationRegistryImpl.cpp96
-rw-r--r--XMPCore/source/DOMParserImpl.cpp325
-rw-r--r--XMPCore/source/DOMSerializerImpl.cpp54
-rw-r--r--XMPCore/source/ExpatAdapter.cpp9
-rw-r--r--XMPCore/source/IArrayNode_I.cpp85
-rw-r--r--XMPCore/source/ICompositeNode_I.cpp92
-rw-r--r--XMPCore/source/ICoreConfigurationManager_I.cpp54
-rw-r--r--XMPCore/source/ICoreObjectFactory_I.cpp62
-rw-r--r--XMPCore/source/IDOMImplementationRegistry_I.cpp84
-rw-r--r--XMPCore/source/IDOMParser_I.cpp66
-rw-r--r--XMPCore/source/IDOMSerializer_I.cpp62
-rw-r--r--XMPCore/source/IMetadata_I.cpp59
-rw-r--r--XMPCore/source/INameSpacePrefixMap_I.cpp84
-rw-r--r--XMPCore/source/INodeIterator_I.cpp78
-rw-r--r--XMPCore/source/INode_I.cpp183
-rw-r--r--XMPCore/source/IPathSegment_I.cpp70
-rw-r--r--XMPCore/source/IPath_I.cpp82
-rw-r--r--XMPCore/source/ISimpleNode_I.cpp74
-rw-r--r--XMPCore/source/IStructureNode_I.cpp78
-rw-r--r--XMPCore/source/MetadataImpl.cpp445
-rw-r--r--XMPCore/source/NameSpacePrefixMapImpl.cpp311
-rw-r--r--XMPCore/source/NodeImpl.cpp479
-rw-r--r--XMPCore/source/PathImpl.cpp186
-rw-r--r--XMPCore/source/PathSegmentImpl.cpp145
-rw-r--r--XMPCore/source/RDFDOMParserImpl.cpp156
-rw-r--r--XMPCore/source/RDFDOMSerializerImpl.cpp508
-rw-r--r--XMPCore/source/SimpleNodeImpl.cpp105
-rw-r--r--XMPCore/source/StructureNodeImpl.cpp231
-rw-r--r--XMPCore/source/WXMPIterator.cpp7
-rw-r--r--XMPCore/source/WXMPMeta.cpp81
-rw-r--r--XMPCore/source/WXMPUtils.cpp33
-rw-r--r--XMPCore/source/XMPCore_Impl.cpp92
-rw-r--r--XMPCore/source/XMPCore_Impl.hpp34
-rw-r--r--XMPCore/source/XMPIterator.cpp11
-rw-r--r--XMPCore/source/XMPIterator.hpp4
-rw-r--r--XMPCore/source/XMPIterator2.cpp542
-rw-r--r--XMPCore/source/XMPIterator2.hpp153
-rw-r--r--XMPCore/source/XMPMeta-GetSet.cpp75
-rw-r--r--XMPCore/source/XMPMeta-Parse.cpp18
-rw-r--r--XMPCore/source/XMPMeta-Serialize.cpp15
-rw-r--r--XMPCore/source/XMPMeta.cpp142
-rw-r--r--XMPCore/source/XMPMeta.hpp54
-rw-r--r--XMPCore/source/XMPMeta2-GetSet.cpp1356
-rw-r--r--XMPCore/source/XMPMeta2.hpp190
-rw-r--r--XMPCore/source/XMPUtils-FileInfo.cpp454
-rw-r--r--XMPCore/source/XMPUtils.cpp1760
-rw-r--r--XMPCore/source/XMPUtils.hpp293
-rw-r--r--XMPCore/source/XMPUtils2.cpp921
-rw-r--r--XMPFiles/build/CMakeLists.txt3
-rw-r--r--XMPFiles/build/CMakeListsCommon.txt100
-rw-r--r--XMPFiles/resource/ios/expat_config.h107
-rw-r--r--XMPFiles/resource/linux/expat_config.h120
-rw-r--r--XMPFiles/resource/mac/expat_config.h107
-rw-r--r--XMPFiles/resource/win/expat_config.h99
-rw-r--r--XMPFiles/source/FileHandlers/GIF_Handler.cpp423
-rw-r--r--XMPFiles/source/FileHandlers/GIF_Handler.hpp90
-rw-r--r--XMPFiles/source/FileHandlers/JPEG_Handler.cpp7
-rw-r--r--XMPFiles/source/FileHandlers/MP3_Handler.cpp16
-rw-r--r--XMPFiles/source/FileHandlers/MP3_Handler.hpp5
-rw-r--r--XMPFiles/source/FileHandlers/MPEG4_Handler.cpp29
-rw-r--r--XMPFiles/source/FileHandlers/P2_Handler.cpp80
-rw-r--r--XMPFiles/source/FileHandlers/P2_Handler.hpp1
-rw-r--r--XMPFiles/source/FileHandlers/PSD_Handler.cpp3
-rw-r--r--XMPFiles/source/FileHandlers/PostScript_Handler.cpp6
-rw-r--r--XMPFiles/source/FileHandlers/RIFF_Handler.cpp3
-rw-r--r--XMPFiles/source/FileHandlers/RIFF_Handler.hpp3
-rw-r--r--XMPFiles/source/FileHandlers/SVG_Handler.cpp689
-rw-r--r--XMPFiles/source/FileHandlers/SVG_Handler.hpp76
-rw-r--r--XMPFiles/source/FileHandlers/TIFF_Handler.cpp3
-rw-r--r--XMPFiles/source/FileHandlers/XDCAMEX_Handler.cpp8
-rw-r--r--XMPFiles/source/FileHandlers/XDCAMFAM_Handler.cpp677
-rw-r--r--XMPFiles/source/FileHandlers/XDCAMFAM_Handler.hpp71
-rw-r--r--XMPFiles/source/FileHandlers/XDCAMSAM_Handler.cpp429
-rw-r--r--XMPFiles/source/FileHandlers/XDCAMSAM_Handler.hpp58
-rw-r--r--XMPFiles/source/FileHandlers/XDCAM_Handler.cpp1013
-rw-r--r--XMPFiles/source/FileHandlers/XDCAM_Handler.hpp60
-rw-r--r--XMPFiles/source/FormatSupport/ID3_Support.cpp64
-rw-r--r--XMPFiles/source/FormatSupport/ID3_Support.hpp2
-rw-r--r--XMPFiles/source/FormatSupport/IPTC_Support.cpp56
-rw-r--r--XMPFiles/source/FormatSupport/IPTC_Support.hpp2
-rw-r--r--XMPFiles/source/FormatSupport/ISOBaseMedia_Support.cpp40
-rw-r--r--XMPFiles/source/FormatSupport/ISOBaseMedia_Support.hpp16
-rw-r--r--XMPFiles/source/FormatSupport/MOOV_Support.cpp39
-rw-r--r--XMPFiles/source/FormatSupport/MOOV_Support.hpp31
-rw-r--r--XMPFiles/source/FormatSupport/RIFF.cpp27
-rw-r--r--XMPFiles/source/FormatSupport/RIFF.hpp1
-rw-r--r--XMPFiles/source/FormatSupport/RIFF_Support.cpp356
-rw-r--r--XMPFiles/source/FormatSupport/ReconcileIPTC.cpp28
-rw-r--r--XMPFiles/source/FormatSupport/ReconcileTIFF.cpp16
-rw-r--r--XMPFiles/source/FormatSupport/SVG_Adapter.cpp464
-rw-r--r--XMPFiles/source/FormatSupport/SVG_Adapter.hpp79
-rw-r--r--XMPFiles/source/FormatSupport/TIFF_FileWriter.cpp21
-rw-r--r--XMPFiles/source/FormatSupport/TIFF_MemoryReader.cpp51
-rw-r--r--XMPFiles/source/FormatSupport/TIFF_Support.hpp19
-rw-r--r--XMPFiles/source/FormatSupport/TimeConversionUtils.hpp5
-rw-r--r--XMPFiles/source/FormatSupport/WAVE/CartMetadata.h8
-rw-r--r--XMPFiles/source/FormatSupport/WAVE/INFOMetadata.cpp6
-rw-r--r--XMPFiles/source/FormatSupport/WAVE/WAVEReconcile.cpp69
-rw-r--r--XMPFiles/source/FormatSupport/WAVE/iXMLMetadata.cpp189
-rw-r--r--XMPFiles/source/FormatSupport/WAVE/iXMLMetadata.h35
-rw-r--r--XMPFiles/source/FormatSupport/XMPScanner.cpp12
-rw-r--r--XMPFiles/source/HandlerRegistry.cpp11
-rw-r--r--XMPFiles/source/NativeMetadataSupport/IMetadata.h2
-rw-r--r--XMPFiles/source/NativeMetadataSupport/IReconcile.h1
-rw-r--r--XMPFiles/source/NativeMetadataSupport/ValueObject.h12
-rw-r--r--XMPFiles/source/PluginHandler/FileHandlerInstance.cpp131
-rw-r--r--XMPFiles/source/PluginHandler/FileHandlerInstance.h2
-rw-r--r--XMPFiles/source/PluginHandler/HostAPIImpl.cpp477
-rw-r--r--XMPFiles/source/PluginHandler/ModuleUtils.h2
-rw-r--r--XMPFiles/source/PluginHandler/OS_Utils_Mac.cpp24
-rw-r--r--XMPFiles/source/PluginHandler/PluginManager.cpp7
-rw-r--r--XMPFiles/source/PluginHandler/PluginManager.h28
-rw-r--r--XMPFiles/source/WXMPFiles.cpp3
-rw-r--r--XMPFiles/source/XMPFiles.cpp197
-rw-r--r--XMPFiles/source/XMPFiles.hpp19
-rw-r--r--XMPFiles/source/XMPFiles_Impl.cpp9
-rw-r--r--XMPFiles/source/XMPFiles_Impl.hpp20
-rwxr-xr-x[-rw-r--r--]XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux/PDF_Handler.xpibin401496 -> 1910640 bytes
-rwxr-xr-x[-rw-r--r--]XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux/libMiniPDFL.sobin3847272 -> 4018252 bytes
-rwxr-xr-x[-rw-r--r--]XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux_x64/PDF_Handler.xpibin412336 -> 2437296 bytes
-rwxr-xr-x[-rw-r--r--]XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux_x64/libMiniPDFL.sobin3940664 -> 4214224 bytes
-rwxr-xr-x[l---------]XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/PDF_Handlerbin28 -> 691984 bytes
l---------XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Resources1
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Resources/Info.plist44
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Resources/MODULE_IDENTIFIER.txt1
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Resources/MiniPDFL.framework/MiniPDFLbin0 -> 2264448 bytes
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/A/MiniPDFLbin0 -> 2264448 bytes
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/A/Resources/Info.plist (renamed from XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/Resources/Info.plist)0
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/A/_CodeSignature/CodeResources (renamed from XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/_CodeSignature/CodeResources)0
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/Current/MiniPDFLbin0 -> 2264448 bytes
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/Current/Resources/Info.plist33
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/Current/_CodeSignature/CodeResources34
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Resources/XMPPLUGINUIDS.txt31
-rwxr-xr-x[l---------]XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/MiniPDFLbin25 -> 2264448 bytes
l---------XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/Current1
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/Current/MiniPDFLbin0 -> 2264448 bytes
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/Current/Resources/Info.plist33
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/Current/_CodeSignature/CodeResources34
l---------XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current1
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/PDF_Handlerbin0 -> 691984 bytes
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/Resources/Info.plist44
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/Resources/MODULE_IDENTIFIER.txt1
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/MiniPDFLbin0 -> 2264448 bytes
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/A/MiniPDFLbin0 -> 2264448 bytes
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/A/Resources/Info.plist33
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/A/_CodeSignature/CodeResources34
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/Current/MiniPDFLbin0 -> 2264448 bytes
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/Current/Resources/Info.plist33
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/Current/_CodeSignature/CodeResources34
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/Resources/XMPPLUGINUIDS.txt31
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/_CodeSignature/CodeResources (renamed from XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/_CodeSignature/CodeResources)4
-rwxr-xr-x[l---------]XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/PDF_Handlerbin28 -> 2673536 bytes
l---------XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Resources1
-rw-r--r--XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Resources/Info.plist40
-rw-r--r--XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Resources/MODULE_IDENTIFIER.txt1
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Resources/MiniPDFL.framework/MiniPDFLbin0 -> 2428872 bytes
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/A/MiniPDFLbin0 -> 2428872 bytes
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/Current/MiniPDFLbin0 -> 2428872 bytes
-rw-r--r--XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Resources/XMPPLUGINUIDS.txt31
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/PDF_Handlerbin732976 -> 2673536 bytes
-rw-r--r--[-rwxr-xr-x]XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/Resources/Info.plist42
-rw-r--r--[-rwxr-xr-x]XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/Resources/MODULE_IDENTIFIER.txt0
-rwxr-xr-x[l---------]XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/MiniPDFLbin25 -> 2428872 bytes
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/MiniPDFLbin2294208 -> 2428872 bytes
l---------XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/Current1
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/Current/MiniPDFLbin0 -> 2428872 bytes
-rw-r--r--[-rwxr-xr-x]XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/Resources/XMPPLUGINUIDS.txt62
l---------XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/Current1
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/Current/PDF_Handlerbin0 -> 2673536 bytes
-rw-r--r--XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/Current/Resources/Info.plist40
-rw-r--r--XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/Current/Resources/MODULE_IDENTIFIER.txt1
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/MiniPDFLbin0 -> 2428872 bytes
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/A/MiniPDFLbin0 -> 2428872 bytes
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/Current/MiniPDFLbin0 -> 2428872 bytes
-rw-r--r--XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/Current/Resources/XMPPLUGINUIDS.txt31
-rw-r--r--XMPFilesPlugins/PDF_Handler/windows/windows/MiniPDFL.dllbin2816904 -> 2170880 bytes
-rw-r--r--XMPFilesPlugins/PDF_Handler/windows/windows/MiniPDFL.libbin16096 -> 2332 bytes
-rw-r--r--XMPFilesPlugins/PDF_Handler/windows/windows/PDF_Handler.xpibin215944 -> 642048 bytes
-rw-r--r--XMPFilesPlugins/PDF_Handler/windows/windows_x64/MiniPDFL.dllbin4066696 -> 2955264 bytes
-rw-r--r--XMPFilesPlugins/PDF_Handler/windows/windows_x64/MiniPDFL.libbin16240 -> 2318 bytes
-rw-r--r--XMPFilesPlugins/PDF_Handler/windows/windows_x64/PDF_Handler.xpibin299400 -> 970752 bytes
-rw-r--r--XMPFilesPlugins/PluginTemplate/build/CMakeLists.txt2
-rwxr-xr-xXMPFilesPlugins/PluginTemplate/build/GeneratePluginTemplate_mac.sh11
-rwxr-xr-xXMPFilesPlugins/PluginTemplate/build/GeneratePluginTemplate_win.bat10
-rw-r--r--XMPFilesPlugins/PluginTemplate/build/README.txt4
-rw-r--r--XMPFilesPlugins/api/source/HostAPI.h106
-rw-r--r--XMPFilesPlugins/api/source/HostAPIAccess.cpp156
-rw-r--r--XMPFilesPlugins/api/source/HostAPIAccess.h68
-rw-r--r--XMPFilesPlugins/api/source/PluginAPIImpl.cpp125
-rw-r--r--XMPFilesPlugins/api/source/PluginBase.cpp82
-rw-r--r--XMPFilesPlugins/api/source/PluginBase.h88
-rw-r--r--XMPFilesPlugins/api/source/PluginHandler.h58
-rw-r--r--XMPFilesPlugins/api/source/PluginRegistry.cpp6
-rw-r--r--XMPFilesPlugins/api/source/PluginRegistry.h19
-rw-r--r--XMPFilesPlugins/api/source/PluginUtils.cpp57
-rw-r--r--XMPFilesPlugins/api/source/PluginUtils.h44
-rw-r--r--build/CMakeLists.txt7
-rwxr-xr-xbuild/GenerateXMPToolkitSDK_mac.sh20
-rwxr-xr-xbuild/GenerateXMPToolkitSDK_win.bat14
-rw-r--r--build/ProductConfig.cmake44
-rw-r--r--build/README.txt10
-rw-r--r--build/XMP_BuildInfo.h4
-rw-r--r--build/XMP_Config.cmake11
-rw-r--r--build/XMP_ConfigCommon.cmake15
-rwxr-xr-xbuild/shared/CMakeUtils.bat12
-rw-r--r--build/shared/SharedConfig.cmake2
-rw-r--r--build/shared/SharedConfig_Common.cmake8
-rw-r--r--build/shared/SharedConfig_Ios.cmake6
-rw-r--r--build/shared/SharedConfig_Linux.cmake15
-rw-r--r--build/shared/SharedConfig_Mac.cmake6
-rw-r--r--build/shared/SharedConfig_Win.cmake2
-rw-r--r--build/shared/ToolchainLLVM.cmake4
-rw-r--r--build/shared/Toolchain_ios.cmake13
-rwxr-xr-xdocs/API/IArrayNode_8h.html66
-rwxr-xr-xdocs/API/IArrayNode_8h_source.html85
-rwxr-xr-xdocs/API/IClientDOMParser_8h.html69
-rwxr-xr-xdocs/API/IClientDOMParser_8h_source.html74
-rwxr-xr-xdocs/API/IClientDOMSerializer_8h.html69
-rwxr-xr-xdocs/API/IClientDOMSerializer_8h_source.html77
-rwxr-xr-xdocs/API/ICompositeNode_8h.html67
-rwxr-xr-xdocs/API/ICompositeNode_8h_source.html91
-rwxr-xr-xdocs/API/IConfigurable_8h.html69
-rwxr-xr-xdocs/API/IConfigurable_8h_source.html70
-rwxr-xr-xdocs/API/IConfigurationManager_8h.html70
-rwxr-xr-xdocs/API/IConfigurationManager_8h_source.html79
-rwxr-xr-xdocs/API/ICoreConfigurationManager_8h.html67
-rwxr-xr-xdocs/API/ICoreConfigurationManager_8h_source.html67
-rwxr-xr-xdocs/API/ICoreObjectFactory_8h.html67
-rwxr-xr-xdocs/API/ICoreObjectFactory_8h_source.html76
-rwxr-xr-xdocs/API/IDOMImplementationRegistry_8h.html68
-rwxr-xr-xdocs/API/IDOMImplementationRegistry_8h_source.html76
-rwxr-xr-xdocs/API/IDOMParser_8h.html69
-rwxr-xr-xdocs/API/IDOMParser_8h_source.html78
-rwxr-xr-xdocs/API/IDOMSerializer_8h.html69
-rwxr-xr-xdocs/API/IDOMSerializer_8h_source.html78
-rwxr-xr-xdocs/API/IErrorNotifier_8h.html66
-rwxr-xr-xdocs/API/IErrorNotifier_8h_source.html57
-rwxr-xr-xdocs/API/IError_8h.html78
-rwxr-xr-xdocs/API/IError_8h.js6
-rwxr-xr-xdocs/API/IError_8h_source.html84
-rwxr-xr-xdocs/API/IMemoryAllocator_8h.html67
-rwxr-xr-xdocs/API/IMemoryAllocator_8h_source.html56
-rwxr-xr-xdocs/API/IMetadata_8h.html66
-rwxr-xr-xdocs/API/IMetadata_8h_source.html75
-rwxr-xr-xdocs/API/INameSpacePrefixMap_8h.html69
-rwxr-xr-xdocs/API/INameSpacePrefixMap_8h_source.html75
-rwxr-xr-xdocs/API/INodeIterator_8h.html69
-rwxr-xr-xdocs/API/INodeIterator_8h_source.html89
-rwxr-xr-xdocs/API/INode_8h.html69
-rwxr-xr-xdocs/API/INode_8h_source.html110
-rwxr-xr-xdocs/API/IObjectFactory_8h.html67
-rwxr-xr-xdocs/API/IObjectFactory_8h_source.html71
-rwxr-xr-xdocs/API/IPathSegment_8h.html68
-rwxr-xr-xdocs/API/IPathSegment_8h_source.html75
-rwxr-xr-xdocs/API/IPath_8h.html68
-rwxr-xr-xdocs/API/IPath_8h_source.html79
-rwxr-xr-xdocs/API/ISharedObject_8h.html66
-rwxr-xr-xdocs/API/ISharedObject_8h_source.html58
-rwxr-xr-xdocs/API/ISimpleNode_8h.html66
-rwxr-xr-xdocs/API/ISimpleNode_8h_source.html71
-rwxr-xr-xdocs/API/IStructureNode_8h.html66
-rwxr-xr-xdocs/API/IStructureNode_8h_source.html83
-rwxr-xr-xdocs/API/IThreadSafe_8h.html66
-rwxr-xr-xdocs/API/IThreadSafe_8h_source.html58
-rwxr-xr-xdocs/API/IUTF8String_8h.html67
-rwxr-xr-xdocs/API/IUTF8String_8h_source.html76
-rwxr-xr-xdocs/API/IVersionable_8h.html66
-rwxr-xr-xdocs/API/IVersionable_8h_source.html62
-rwxr-xr-xdocs/API/Overview_8txt.html48
-rwxr-xr-xdocs/API/TWrapperFunctions2_8h.html50
-rwxr-xr-xdocs/API/TWrapperFunctions2_8h_source.html50
-rwxr-xr-xdocs/API/TWrapperFunctions_8h.html52
-rwxr-xr-xdocs/API/TWrapperFunctions_8h_source.html52
-rwxr-xr-x[-rw-r--r--]docs/API/TXMPFiles_8hpp.html113
-rwxr-xr-x[-rw-r--r--]docs/API/TXMPFiles_8hpp_source.html393
-rw-r--r--docs/API/TXMPFiles_8incl__cpp.html84
-rw-r--r--docs/API/TXMPFiles_8incl__cpp__incl.pngbin4591 -> 0 bytes
-rwxr-xr-x[-rw-r--r--]docs/API/TXMPIterator_8hpp.html122
-rw-r--r--docs/API/TXMPIterator_8hpp__dep__incl.pngbin1732 -> 0 bytes
-rw-r--r--docs/API/TXMPIterator_8hpp__incl.pngbin1742 -> 0 bytes
-rwxr-xr-x[-rw-r--r--]docs/API/TXMPIterator_8hpp_source.html190
-rw-r--r--docs/API/TXMPIterator_8incl__cpp.html85
-rw-r--r--docs/API/TXMPIterator_8incl__cpp__incl.pngbin5164 -> 0 bytes
-rwxr-xr-x[-rw-r--r--]docs/API/TXMPMeta_8hpp.html119
-rwxr-xr-x[-rw-r--r--]docs/API/TXMPMeta_8hpp_source.html696
-rw-r--r--docs/API/TXMPMeta_8incl__cpp.html85
-rw-r--r--docs/API/TXMPMeta_8incl__cpp__incl.pngbin4976 -> 0 bytes
-rwxr-xr-x[-rw-r--r--]docs/API/TXMPUtils_8hpp.html110
-rwxr-xr-x[-rw-r--r--]docs/API/TXMPUtils_8hpp_source.html413
-rw-r--r--docs/API/TXMPUtils_8incl__cpp.html85
-rw-r--r--docs/API/TXMPUtils_8incl__cpp__incl.pngbin4915 -> 0 bytes
-rwxr-xr-xdocs/API/Thumbs.dbbin0 -> 2560 bytes
-rwxr-xr-xdocs/API/WXMPFiles_8hpp.html1923
-rwxr-xr-xdocs/API/WXMPFiles_8hpp.js54
-rwxr-xr-xdocs/API/WXMPFiles_8hpp_source.html98
-rwxr-xr-xdocs/API/WXMPIterator_8hpp.html439
-rwxr-xr-xdocs/API/WXMPIterator_8hpp.js14
-rwxr-xr-xdocs/API/WXMPIterator_8hpp_source.html62
-rwxr-xr-xdocs/API/WXMPMeta_8hpp.html4803
-rwxr-xr-xdocs/API/WXMPMeta_8hpp.js121
-rwxr-xr-xdocs/API/WXMPMeta_8hpp_source.html125
-rwxr-xr-xdocs/API/WXMPUtils_8hpp.html2419
-rwxr-xr-xdocs/API/WXMPUtils_8hpp.js62
-rwxr-xr-xdocs/API/WXMPUtils_8hpp_source.html88
-rwxr-xr-xdocs/API/WXMP__Common_8hpp.html706
-rwxr-xr-xdocs/API/WXMP__Common_8hpp.js29
-rwxr-xr-xdocs/API/WXMP__Common_8hpp_source.html59
-rwxr-xr-xdocs/API/XMPCommonDefines_8h.html339
-rwxr-xr-xdocs/API/XMPCommonDefines_8h.js28
-rwxr-xr-xdocs/API/XMPCommonDefines_8h_source.html66
-rwxr-xr-xdocs/API/XMPCommonErrorCodes_8h.html108
-rwxr-xr-xdocs/API/XMPCommonErrorCodes_8h.js36
-rwxr-xr-xdocs/API/XMPCommonErrorCodes_8h_source.html81
-rwxr-xr-xdocs/API/XMPCommonFwdDeclarations_8h.html205
-rwxr-xr-xdocs/API/XMPCommonFwdDeclarations_8h.js69
-rwxr-xr-xdocs/API/XMPCommonFwdDeclarations_8h_source.html111
-rwxr-xr-xdocs/API/XMPCommonLatestInterfaceVersions_8h.html172
-rwxr-xr-xdocs/API/XMPCommonLatestInterfaceVersions_8h.js10
-rwxr-xr-xdocs/API/XMPCommonLatestInterfaceVersions_8h_source.html48
-rwxr-xr-xdocs/API/XMPCoreDefines_8h.html74
-rwxr-xr-xdocs/API/XMPCoreDefines_8h.js4
-rwxr-xr-xdocs/API/XMPCoreDefines_8h_source.html50
-rwxr-xr-xdocs/API/XMPCoreErrorCodes_8h.html108
-rwxr-xr-xdocs/API/XMPCoreErrorCodes_8h.js37
-rwxr-xr-xdocs/API/XMPCoreErrorCodes_8h_source.html83
-rwxr-xr-xdocs/API/XMPCoreFwdDeclarations_8h.html429
-rwxr-xr-xdocs/API/XMPCoreFwdDeclarations_8h.js182
-rwxr-xr-xdocs/API/XMPCoreFwdDeclarations_8h_source.html204
-rwxr-xr-xdocs/API/XMPCoreLatestInterfaceVersions_8h.html332
-rwxr-xr-xdocs/API/XMPCoreLatestInterfaceVersions_8h.js20
-rwxr-xr-xdocs/API/XMPCoreLatestInterfaceVersions_8h_source.html48
-rwxr-xr-xdocs/API/XMP_8hpp.html75
-rwxr-xr-xdocs/API/XMP_8hpp_source.html59
-rw-r--r--docs/API/XMP_8incl__cpp.html95
-rw-r--r--docs/API/XMP_8incl__cpp__dep__incl.pngbin1378 -> 0 bytes
-rw-r--r--docs/API/XMP_8incl__cpp__incl.pngbin4118 -> 0 bytes
-rwxr-xr-x[-rw-r--r--]docs/API/XMP__Const_8h.html4817
-rwxr-xr-xdocs/API/XMP__Const_8h.js353
-rw-r--r--docs/API/XMP__Const_8h__incl.pngbin4011 -> 0 bytes
-rwxr-xr-x[-rw-r--r--]docs/API/XMP__Const_8h_source.html1256
-rwxr-xr-xdocs/API/XMP__Environment_8h.html139
-rwxr-xr-xdocs/API/XMP__Environment_8h.js8
-rwxr-xr-xdocs/API/XMP__Environment_8h_source.html48
-rwxr-xr-xdocs/API/XMP__IO_8hpp.html61
-rwxr-xr-xdocs/API/XMP__IO_8hpp_source.html71
-rwxr-xr-xdocs/API/XMP__Version_8h.html220
-rwxr-xr-xdocs/API/XMP__Version_8h.js13
-rwxr-xr-xdocs/API/XMP__Version_8h_source.html48
-rwxr-xr-x[-rw-r--r--]docs/API/annotated.html142
-rwxr-xr-xdocs/API/annotated_dup.js15
-rwxr-xr-xdocs/API/arrowdown.pngbin0 -> 246 bytes
-rwxr-xr-xdocs/API/arrowright.pngbin0 -> 229 bytes
-rwxr-xr-xdocs/API/bc_s.pngbin0 -> 676 bytes
-rwxr-xr-xdocs/API/bdwn.pngbin0 -> 147 bytes
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1IConfigurable-members.html85
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1IConfigurable.html964
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1IConfigurable.js37
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1IConfigurable.pngbin0 -> 1126 bytes
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1IConfigurationManagerProxy-members.html70
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1IConfigurationManagerProxy.html553
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1IConfigurationManagerProxy.js20
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1IConfigurationManagerProxy.pngbin0 -> 1085 bytes
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1IConfigurationManager__v1-members.html65
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1IConfigurationManager__v1.html297
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1IConfigurationManager__v1.js9
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1IConfigurationManager__v1.pngbin0 -> 2622 bytes
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1IErrorNotifier__v1-members.html55
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1IErrorNotifier__v1.html136
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1IErrorNotifier__v1.js5
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1IError__v1-members.html108
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1IError__v1.html1119
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1IError__v1.js52
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1IError__v1.pngbin0 -> 1497 bytes
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1IMemoryAllocator__v1-members.html57
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1IMemoryAllocator__v1.html218
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1IMemoryAllocator__v1.js7
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1IObjectFactory__v1-members.html64
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1IObjectFactory__v1.html390
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1IObjectFactory__v1.js11
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1IObjectFactory__v1.pngbin0 -> 1289 bytes
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1ISharedObject-members.html57
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1ISharedObject.html205
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1ISharedObject.js7
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1ISharedObject.pngbin0 -> 7803 bytes
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1IThreadSafe-members.html57
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1IThreadSafe.html203
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1IThreadSafe.js7
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1IThreadSafe.pngbin0 -> 3652 bytes
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1IUTF8String__v1-members.html91
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1IUTF8String__v1.html1671
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1IUTF8String__v1.js33
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1IUTF8String__v1.pngbin0 -> 1543 bytes
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1IVersionable-members.html57
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1IVersionable.html227
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1IVersionable.js7
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1IVersionable.pngbin0 -> 8463 bytes
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor-members.html56
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html192
-rwxr-xr-xdocs/API/classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.js6
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1IArrayNode__v1-members.html154
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1IArrayNode__v1.html1107
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1IArrayNode__v1.js27
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1IArrayNode__v1.pngbin0 -> 3612 bytes
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1IClientDOMParser__v1-members.html59
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1IClientDOMParser__v1.html325
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1IClientDOMParser__v1.js9
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1IClientDOMSerializer__v1-members.html59
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1IClientDOMSerializer__v1.html331
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1IClientDOMSerializer__v1.js9
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1ICompositeNode__v1-members.html131
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1ICompositeNode__v1.html906
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1ICompositeNode__v1.js20
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1ICompositeNode__v1.pngbin0 -> 4179 bytes
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1ICoreConfigurationManager__v1-members.html67
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html193
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1ICoreConfigurationManager__v1.js5
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1ICoreConfigurationManager__v1.pngbin0 -> 2787 bytes
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1ICoreObjectFactory__v1-members.html82
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1ICoreObjectFactory__v1.html1036
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1ICoreObjectFactory__v1.js21
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1ICoreObjectFactory__v1.pngbin0 -> 1469 bytes
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1IDOMImplementationRegistry__v1-members.html67
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html353
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.js9
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.pngbin0 -> 1909 bytes
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1IDOMParser__v1-members.html103
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1IDOMParser__v1.html451
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1IDOMParser__v1.js15
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1IDOMParser__v1.pngbin0 -> 1986 bytes
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1IDOMSerializer__v1-members.html95
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1IDOMSerializer__v1.html290
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1IDOMSerializer__v1.js6
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1IDOMSerializer__v1.pngbin0 -> 2036 bytes
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1IMetadata__v1-members.html151
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1IMetadata__v1.html585
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1IMetadata__v1.js9
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1IMetadata__v1.pngbin0 -> 4392 bytes
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1INameSpacePrefixMap__v1-members.html79
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html705
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1INameSpacePrefixMap__v1.js17
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1INameSpacePrefixMap__v1.pngbin0 -> 2248 bytes
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1INodeIterator__v1-members.html73
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1INodeIterator__v1.html490
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1INodeIterator__v1.js15
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1INodeIterator__v1.pngbin0 -> 1530 bytes
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1INode__v1-members.html114
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1INode__v1.html1870
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1INode__v1.js53
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1INode__v1.pngbin0 -> 4148 bytes
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1IPathSegment__v1-members.html78
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1IPathSegment__v1.html623
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1IPathSegment__v1.js21
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1IPathSegment__v1.pngbin0 -> 1554 bytes
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1IPath__v1-members.html73
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1IPath__v1.html573
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1IPath__v1.js15
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1IPath__v1.pngbin0 -> 1500 bytes
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1ISimpleNode__v1-members.html120
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1ISimpleNode__v1.html516
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1ISimpleNode__v1.js9
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1ISimpleNode__v1.pngbin0 -> 2746 bytes
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1IStructureNode__v1-members.html145
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1IStructureNode__v1.html1103
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1IStructureNode__v1.js17
-rwxr-xr-xdocs/API/classAdobeXMPCore_1_1IStructureNode__v1.pngbin0 -> 4213 bytes
-rwxr-xr-x[-rw-r--r--]docs/API/classTXMPFiles-members.html169
-rwxr-xr-x[-rw-r--r--]docs/API/classTXMPFiles.html1709
-rwxr-xr-xdocs/API/classTXMPFiles.js43
-rwxr-xr-x[-rw-r--r--]docs/API/classTXMPIterator-members.html113
-rwxr-xr-x[-rw-r--r--]docs/API/classTXMPIterator.html576
-rwxr-xr-xdocs/API/classTXMPIterator.js15
-rwxr-xr-x[-rw-r--r--]docs/API/classTXMPMeta-members.html232
-rwxr-xr-x[-rw-r--r--]docs/API/classTXMPMeta.html3052
-rwxr-xr-xdocs/API/classTXMPMeta.js74
-rwxr-xr-x[-rw-r--r--]docs/API/classTXMPUtils-members.html171
-rwxr-xr-x[-rw-r--r--]docs/API/classTXMPUtils.html2121
-rwxr-xr-xdocs/API/classTXMPUtils.js43
-rwxr-xr-x[-rw-r--r--]docs/API/classXMP__Error-members.html108
-rwxr-xr-x[-rw-r--r--]docs/API/classXMP__Error.html377
-rwxr-xr-xdocs/API/classXMP__Error.js11
-rwxr-xr-xdocs/API/classXMP__IO-members.html70
-rwxr-xr-xdocs/API/classXMP__IO.html676
-rwxr-xr-xdocs/API/classXMP__IO.js20
-rwxr-xr-x[-rw-r--r--]docs/API/classes.html116
-rw-r--r--docs/API/closed.gifbin57 -> 0 bytes
-rwxr-xr-xdocs/API/closed.pngbin0 -> 132 bytes
-rwxr-xr-xdocs/API/dir_0e5f10c8914b73a2f667b010a9332417.html63
-rwxr-xr-xdocs/API/dir_0e5f10c8914b73a2f667b010a9332417.js8
-rwxr-xr-xdocs/API/dir_0fb2101ba02d68f078970216a1fe0334.html85
-rwxr-xr-xdocs/API/dir_0fb2101ba02d68f078970216a1fe0334.js27
-rwxr-xr-xdocs/API/dir_13a16c6fe91841c884a316194c73d6c1.html67
-rwxr-xr-xdocs/API/dir_13a16c6fe91841c884a316194c73d6c1.js9
-rwxr-xr-xdocs/API/dir_3ce2d6caf42dd158441e2c69545b6561.html60
-rwxr-xr-xdocs/API/dir_3ce2d6caf42dd158441e2c69545b6561.js16
-rwxr-xr-xdocs/API/dir_47a03e1ff379e16c0ff8dae8eab507ef.html56
-rwxr-xr-xdocs/API/dir_47a03e1ff379e16c0ff8dae8eab507ef.js5
-rwxr-xr-xdocs/API/dir_8223d5ea7844a33492dce354418ea45e.html86
-rwxr-xr-xdocs/API/dir_8223d5ea7844a33492dce354418ea45e.js54
-rwxr-xr-xdocs/API/dir_a2aafb81ccb63bf25660f5baa8263a1b.html69
-rwxr-xr-xdocs/API/dir_a2aafb81ccb63bf25660f5baa8263a1b.js21
-rwxr-xr-xdocs/API/dir_d9f2167f9fcfc7d7593f67aa31e893fd.html65
-rwxr-xr-xdocs/API/dir_d9f2167f9fcfc7d7593f67aa31e893fd.js8
-rwxr-xr-xdocs/API/dir_f832923ad3cb060bc87ad85e68b8a1c3.html54
-rwxr-xr-xdocs/API/dir_f832923ad3cb060bc87ad85e68b8a1c3.js4
-rwxr-xr-xdocs/API/doc.pngbin0 -> 746 bytes
-rwxr-xr-xdocs/API/doxygen.css1475
-rwxr-xr-x[-rw-r--r--]docs/API/doxygen.pngbin1281 -> 3779 bytes
-rwxr-xr-xdocs/API/dynsections.js104
-rwxr-xr-x[-rw-r--r--]docs/API/files.html160
-rwxr-xr-xdocs/API/files.js4
-rwxr-xr-xdocs/API/folderclosed.pngbin0 -> 616 bytes
-rwxr-xr-xdocs/API/folderopen.pngbin0 -> 597 bytes
-rwxr-xr-x[-rw-r--r--]docs/API/functions.html682
-rwxr-xr-xdocs/API/functions_0x7e.html177
-rwxr-xr-xdocs/API/functions_b.html96
-rwxr-xr-xdocs/API/functions_c.html276
-rwxr-xr-xdocs/API/functions_d.html163
-rwxr-xr-xdocs/API/functions_dup.js28
-rwxr-xr-xdocs/API/functions_e.html138
-rwxr-xr-xdocs/API/functions_enum.html80
-rwxr-xr-xdocs/API/functions_eval.html225
-rwxr-xr-xdocs/API/functions_f.html99
-rwxr-xr-x[-rw-r--r--]docs/API/functions_func.html558
-rwxr-xr-xdocs/API/functions_func.js24
-rwxr-xr-xdocs/API/functions_func_0x7e.html173
-rwxr-xr-xdocs/API/functions_func_c.html260
-rwxr-xr-xdocs/API/functions_func_d.html153
-rwxr-xr-xdocs/API/functions_func_e.html104
-rwxr-xr-xdocs/API/functions_func_f.html89
-rwxr-xr-xdocs/API/functions_func_g.html338
-rwxr-xr-xdocs/API/functions_func_h.html95
-rwxr-xr-xdocs/API/functions_func_i.html152
-rwxr-xr-xdocs/API/functions_func_l.html89
-rwxr-xr-xdocs/API/functions_func_m.html92
-rwxr-xr-xdocs/API/functions_func_n.html93
-rwxr-xr-xdocs/API/functions_func_o.html101
-rwxr-xr-xdocs/API/functions_func_p.html106
-rwxr-xr-xdocs/API/functions_func_q.html92
-rwxr-xr-xdocs/API/functions_func_r.html197
-rwxr-xr-xdocs/API/functions_func_s.html220
-rwxr-xr-xdocs/API/functions_func_t.html105
-rwxr-xr-xdocs/API/functions_func_v.html90
-rwxr-xr-xdocs/API/functions_func_w.html92
-rwxr-xr-xdocs/API/functions_func_x.html95
-rwxr-xr-xdocs/API/functions_g.html342
-rwxr-xr-xdocs/API/functions_h.html114
-rwxr-xr-xdocs/API/functions_i.html179
-rwxr-xr-xdocs/API/functions_k.html249
-rwxr-xr-xdocs/API/functions_l.html96
-rwxr-xr-xdocs/API/functions_m.html120
-rwxr-xr-xdocs/API/functions_n.html103
-rwxr-xr-xdocs/API/functions_o.html108
-rwxr-xr-xdocs/API/functions_p.html119
-rwxr-xr-xdocs/API/functions_q.html96
-rwxr-xr-xdocs/API/functions_r.html201
-rwxr-xr-xdocs/API/functions_rela.html62
-rwxr-xr-xdocs/API/functions_s.html227
-rwxr-xr-xdocs/API/functions_t.html118
-rwxr-xr-xdocs/API/functions_type.html62
-rwxr-xr-xdocs/API/functions_u.html96
-rwxr-xr-xdocs/API/functions_v.html94
-rwxr-xr-x[-rw-r--r--]docs/API/functions_vars.html240
-rwxr-xr-xdocs/API/functions_w.html99
-rwxr-xr-xdocs/API/functions_x.html105
-rwxr-xr-xdocs/API/functions_y.html93
-rwxr-xr-x[-rw-r--r--]docs/API/globals.html809
-rw-r--r--docs/API/globals_0x73.html93
-rw-r--r--docs/API/globals_0x78.html216
-rwxr-xr-xdocs/API/globals_b.html85
-rwxr-xr-xdocs/API/globals_c.html85
-rwxr-xr-xdocs/API/globals_d.html82
-rwxr-xr-x[-rw-r--r--]docs/API/globals_defs.html283
-rwxr-xr-xdocs/API/globals_defs.js18
-rwxr-xr-xdocs/API/globals_defs_b.html84
-rwxr-xr-xdocs/API/globals_defs_c.html84
-rwxr-xr-xdocs/API/globals_defs_d.html81
-rwxr-xr-xdocs/API/globals_defs_e.html84
-rwxr-xr-xdocs/API/globals_defs_i.html153
-rwxr-xr-xdocs/API/globals_defs_j.html84
-rwxr-xr-xdocs/API/globals_defs_k.html273
-rwxr-xr-xdocs/API/globals_defs_p.html81
-rwxr-xr-xdocs/API/globals_defs_q.html84
-rwxr-xr-xdocs/API/globals_defs_r.html81
-rwxr-xr-xdocs/API/globals_defs_s.html84
-rwxr-xr-xdocs/API/globals_defs_w.html126
-rwxr-xr-xdocs/API/globals_defs_x.html219
-rwxr-xr-xdocs/API/globals_defs_z.html417
-rwxr-xr-xdocs/API/globals_dup.js19
-rwxr-xr-xdocs/API/globals_e.html85
-rwxr-xr-x[-rw-r--r--]docs/API/globals_enum.html92
-rwxr-xr-x[-rw-r--r--]docs/API/globals_eval.html701
-rwxr-xr-xdocs/API/globals_eval.js5
-rwxr-xr-xdocs/API/globals_eval_k.html686
-rwxr-xr-xdocs/API/globals_func.html430
-rwxr-xr-xdocs/API/globals_i.html154
-rwxr-xr-xdocs/API/globals_j.html85
-rwxr-xr-xdocs/API/globals_k.html898
-rwxr-xr-xdocs/API/globals_m.html127
-rwxr-xr-xdocs/API/globals_p.html82
-rwxr-xr-xdocs/API/globals_q.html85
-rwxr-xr-xdocs/API/globals_r.html82
-rwxr-xr-xdocs/API/globals_s.html94
-rwxr-xr-x[-rw-r--r--]docs/API/globals_type.html124
-rwxr-xr-xdocs/API/globals_vars.html108
-rwxr-xr-xdocs/API/globals_w.html493
-rwxr-xr-xdocs/API/globals_x.html286
-rwxr-xr-xdocs/API/globals_z.html418
-rw-r--r--docs/API/graph_legend.dot23
-rw-r--r--docs/API/graph_legend.html128
-rw-r--r--docs/API/graph_legend.pngbin8506 -> 0 bytes
-rwxr-xr-xdocs/API/hierarchy.html110
-rwxr-xr-xdocs/API/hierarchy.js69
-rwxr-xr-x[-rw-r--r--]docs/API/index.html190
-rwxr-xr-xdocs/API/jquery.js68
-rwxr-xr-xdocs/API/namespaceAdobeXMPCommon.html1741
-rwxr-xr-xdocs/API/namespaceAdobeXMPCommon.js15
-rwxr-xr-xdocs/API/namespaceAdobeXMPCommon__Int.html119
-rwxr-xr-xdocs/API/namespaceAdobeXMPCore.html3020
-rwxr-xr-xdocs/API/namespaceAdobeXMPCore.js20
-rwxr-xr-xdocs/API/namespaceAdobeXMPCore__Int.html599
-rwxr-xr-xdocs/API/namespacemembers.html76
-rwxr-xr-xdocs/API/namespacemembers_c.html75
-rwxr-xr-xdocs/API/namespacemembers_dup.js14
-rwxr-xr-xdocs/API/namespacemembers_e.html90
-rwxr-xr-xdocs/API/namespacemembers_enum.html73
-rwxr-xr-xdocs/API/namespacemembers_eval.html227
-rwxr-xr-xdocs/API/namespacemembers_func.html159
-rwxr-xr-xdocs/API/namespacemembers_i.html150
-rwxr-xr-xdocs/API/namespacemembers_k.html306
-rwxr-xr-xdocs/API/namespacemembers_m.html84
-rwxr-xr-xdocs/API/namespacemembers_n.html75
-rwxr-xr-xdocs/API/namespacemembers_p.html474
-rwxr-xr-xdocs/API/namespacemembers_r.html75
-rwxr-xr-xdocs/API/namespacemembers_s.html207
-rwxr-xr-xdocs/API/namespacemembers_type.html71
-rwxr-xr-xdocs/API/namespacemembers_type.js10
-rwxr-xr-xdocs/API/namespacemembers_type_i.html146
-rwxr-xr-xdocs/API/namespacemembers_type_m.html74
-rwxr-xr-xdocs/API/namespacemembers_type_p.html470
-rwxr-xr-xdocs/API/namespacemembers_type_r.html71
-rwxr-xr-xdocs/API/namespacemembers_type_s.html203
-rwxr-xr-xdocs/API/namespacemembers_type_u.html74
-rwxr-xr-xdocs/API/namespacemembers_u.html78
-rwxr-xr-xdocs/API/namespaces.html56
-rwxr-xr-xdocs/API/namespaces.js7
-rwxr-xr-xdocs/API/nav_f.pngbin0 -> 153 bytes
-rwxr-xr-xdocs/API/nav_g.pngbin0 -> 95 bytes
-rwxr-xr-xdocs/API/nav_h.pngbin0 -> 98 bytes
-rwxr-xr-xdocs/API/navtree.css143
-rwxr-xr-xdocs/API/navtree.js523
-rwxr-xr-xdocs/API/navtreedata.js62
-rwxr-xr-xdocs/API/navtreeindex0.js253
-rwxr-xr-xdocs/API/navtreeindex1.js253
-rwxr-xr-xdocs/API/navtreeindex2.js253
-rwxr-xr-xdocs/API/navtreeindex3.js253
-rwxr-xr-xdocs/API/navtreeindex4.js253
-rwxr-xr-xdocs/API/navtreeindex5.js253
-rwxr-xr-xdocs/API/navtreeindex6.js253
-rwxr-xr-xdocs/API/navtreeindex7.js131
-rw-r--r--docs/API/open.gifbin54 -> 0 bytes
-rwxr-xr-xdocs/API/open.pngbin0 -> 123 bytes
-rwxr-xr-xdocs/API/resize.js97
-rwxr-xr-xdocs/API/splitbar.pngbin0 -> 314 bytes
-rwxr-xr-xdocs/API/structWXMP__Result-members.html59
-rwxr-xr-xdocs/API/structWXMP__Result.html183
-rwxr-xr-xdocs/API/structWXMP__Result.js9
-rwxr-xr-x[-rw-r--r--]docs/API/structXMP__DateTime-members.html118
-rwxr-xr-x[-rw-r--r--]docs/API/structXMP__DateTime.html396
-rwxr-xr-xdocs/API/structXMP__DateTime.js16
-rwxr-xr-x[-rw-r--r--]docs/API/structXMP__PacketInfo-members.html108
-rwxr-xr-x[-rw-r--r--]docs/API/structXMP__PacketInfo.html311
-rwxr-xr-xdocs/API/structXMP__PacketInfo.js11
-rwxr-xr-x[-rw-r--r--]docs/API/structXMP__VersionInfo-members.html106
-rwxr-xr-x[-rw-r--r--]docs/API/structXMP__VersionInfo.html265
-rwxr-xr-xdocs/API/structXMP__VersionInfo.js10
-rwxr-xr-xdocs/API/sync_off.pngbin0 -> 853 bytes
-rwxr-xr-xdocs/API/sync_on.pngbin0 -> 845 bytes
-rwxr-xr-xdocs/API/tab_a.pngbin0 -> 142 bytes
-rw-r--r--docs/API/tab_b.gifbin35 -> 0 bytes
-rwxr-xr-xdocs/API/tab_b.pngbin0 -> 169 bytes
-rwxr-xr-xdocs/API/tab_h.pngbin0 -> 177 bytes
-rw-r--r--docs/API/tab_l.gifbin706 -> 0 bytes
-rw-r--r--docs/API/tab_r.gifbin2585 -> 0 bytes
-rwxr-xr-xdocs/API/tab_s.pngbin0 -> 184 bytes
-rwxr-xr-x[-rw-r--r--]docs/API/tabs.css133
-rwxr-xr-xdocs/API/unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue-members.html61
-rwxr-xr-xdocs/API/unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html198
-rwxr-xr-xdocs/API/unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.js11
-rw-r--r--docs/API/xmp.css473
-rw-r--r--docs/XMPAddendumProgrammersGuide.pdfbin0 -> 211367 bytes
-rw-r--r--docs/XMPFilesPluginSDK.pdfbin212721 -> 263041 bytes
-rw-r--r--docs/XMPProgrammersGuide.pdfbin646081 -> 644034 bytes
-rw-r--r--docs/XMPSpecificationPart2.pdfbin479816 -> 383354 bytes
-rw-r--r--docs/XMPSpecificationPart3.pdfbin804495 -> 823648 bytes
-rw-r--r--public/include/TXMPFiles.hpp1
-rw-r--r--public/include/TXMPMeta.hpp7
-rw-r--r--public/include/XMPCommon/Interfaces/BaseInterfaces/IConfigurable.h225
-rw-r--r--public/include/XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h71
-rw-r--r--public/include/XMPCommon/Interfaces/BaseInterfaces/IThreadSafe.h75
-rw-r--r--public/include/XMPCommon/Interfaces/BaseInterfaces/IVersionable.h71
-rw-r--r--public/include/XMPCommon/Interfaces/IConfigurationManager.h167
-rw-r--r--public/include/XMPCommon/Interfaces/IError.h377
-rw-r--r--public/include/XMPCommon/Interfaces/IErrorNotifier.h51
-rw-r--r--public/include/XMPCommon/Interfaces/IMemoryAllocator.h64
-rw-r--r--public/include/XMPCommon/Interfaces/IObjectFactory.h90
-rw-r--r--public/include/XMPCommon/Interfaces/IUTF8String.h504
-rw-r--r--public/include/XMPCommon/Utilities/TWrapperFunctions.h252
-rw-r--r--public/include/XMPCommon/Utilities/TWrapperFunctions2.h554
-rw-r--r--public/include/XMPCommon/XMPCommonDefines.h166
-rw-r--r--public/include/XMPCommon/XMPCommonErrorCodes.h114
-rw-r--r--public/include/XMPCommon/XMPCommonFwdDeclarations.h158
-rw-r--r--public/include/XMPCommon/XMPCommonLatestInterfaceVersions.h51
-rw-r--r--public/include/XMPCommon/source/IConfigurable.cpp204
-rw-r--r--public/include/XMPCommon/source/IConfigurationManager.cpp92
-rw-r--r--public/include/XMPCommon/source/IError.cpp207
-rw-r--r--public/include/XMPCommon/source/IErrorNotifier.cpp26
-rw-r--r--public/include/XMPCommon/source/IUTF8String.cpp299
-rw-r--r--public/include/XMPCore/Interfaces/IArrayNode.h303
-rw-r--r--public/include/XMPCore/Interfaces/IClientDOMParser.h88
-rw-r--r--public/include/XMPCore/Interfaces/IClientDOMSerializer.h94
-rw-r--r--public/include/XMPCore/Interfaces/ICompositeNode.h331
-rw-r--r--public/include/XMPCore/Interfaces/ICoreConfigurationManager.h107
-rw-r--r--public/include/XMPCore/Interfaces/ICoreObjectFactory.h264
-rw-r--r--public/include/XMPCore/Interfaces/IDOMImplementationRegistry.h150
-rw-r--r--public/include/XMPCore/Interfaces/IDOMParser.h181
-rw-r--r--public/include/XMPCore/Interfaces/IDOMSerializer.h120
-rw-r--r--public/include/XMPCore/Interfaces/IMetadata.h145
-rw-r--r--public/include/XMPCore/Interfaces/INameSpacePrefixMap.h236
-rw-r--r--public/include/XMPCore/Interfaces/INode.h582
-rw-r--r--public/include/XMPCore/Interfaces/INodeIterator.h193
-rw-r--r--public/include/XMPCore/Interfaces/IPath.h212
-rw-r--r--public/include/XMPCore/Interfaces/IPathSegment.h225
-rw-r--r--public/include/XMPCore/Interfaces/ISimpleNode.h150
-rw-r--r--public/include/XMPCore/Interfaces/IStructureNode.h306
-rw-r--r--public/include/XMPCore/XMPCoreDefines.h86
-rw-r--r--public/include/XMPCore/XMPCoreErrorCodes.h116
-rw-r--r--public/include/XMPCore/XMPCoreFwdDeclarations.h308
-rw-r--r--public/include/XMPCore/XMPCoreLatestInterfaceVersions.h92
-rw-r--r--public/include/XMPCore/source/IArrayNode.cpp163
-rw-r--r--public/include/XMPCore/source/IClientDOMParser.cpp76
-rw-r--r--public/include/XMPCore/source/IClientDOMSerializer.cpp73
-rw-r--r--public/include/XMPCore/source/ICompositeNode.cpp121
-rw-r--r--public/include/XMPCore/source/ICoreConfigurationManager.cpp88
-rw-r--r--public/include/XMPCore/source/ICoreObjectFactory.cpp83
-rw-r--r--public/include/XMPCore/source/IDOMImplementationRegistry.cpp122
-rw-r--r--public/include/XMPCore/source/IDOMParser.cpp116
-rw-r--r--public/include/XMPCore/source/IDOMSerializer.cpp109
-rw-r--r--public/include/XMPCore/source/IMetadata.cpp113
-rw-r--r--public/include/XMPCore/source/INameSpacePrefixMap.cpp187
-rw-r--r--public/include/XMPCore/source/INode.cpp377
-rw-r--r--public/include/XMPCore/source/INodeIterator.cpp105
-rw-r--r--public/include/XMPCore/source/IPath.cpp157
-rw-r--r--public/include/XMPCore/source/IPathSegment.cpp146
-rw-r--r--public/include/XMPCore/source/ISimpleNode.cpp111
-rw-r--r--public/include/XMPCore/source/IStructureNode.cpp104
-rw-r--r--public/include/XMP_Const.h99
-rw-r--r--public/include/XMP_Environment.h8
-rw-r--r--public/include/XMP_Version.h12
-rw-r--r--public/include/client-glue/TXMPMeta.incl_cpp21
-rw-r--r--public/include/client-glue/WXMPFiles.hpp2
-rw-r--r--public/include/client-glue/WXMPMeta.hpp14
-rw-r--r--public/include/client-glue/WXMPUtils.hpp1
-rw-r--r--public/include/client-glue/WXMP_Common.hpp4
-rwxr-xr-xsamples/build/GenerateSamples_mac.sh94
-rwxr-xr-xsamples/build/GenerateSamples_win.bat90
-rwxr-xr-xsamples/build/Makefile88
-rw-r--r--samples/build/cmake/CMakeLists.txt50
-rw-r--r--samples/build/cmake/CMakeListsCommonSDK.txt (renamed from samples/build/cmake/CMakeListsCommon.txt)136
-rw-r--r--samples/build/cmake/CustomSchema/CMakeLists.txt136
-rw-r--r--samples/build/cmake/CustomSchemaNewDOM/CMakeLists.txt89
-rw-r--r--samples/build/cmake/DumpFile/CMakeLists.txt2
-rw-r--r--samples/build/cmake/DumpFile/CMakeListsCommon.txt118
-rw-r--r--samples/build/cmake/DumpMainXMP/CMakeLists.txt137
-rw-r--r--samples/build/cmake/DumpScannedXMP/CMakeLists.txt139
-rw-r--r--samples/build/cmake/ModifyingXMP/CMakeLists.txt140
-rw-r--r--samples/build/cmake/ModifyingXMPNewDOM/CMakeLists.txt89
-rw-r--r--samples/build/cmake/ReadingXMP/CMakeLists.txt140
-rw-r--r--samples/build/cmake/ReadingXMPNewDOM/CMakeLists.txt90
-rw-r--r--samples/build/cmake/SharedConfigSDK.cmake (renamed from samples/build/cmake/SharedConfig.cmake)329
-rw-r--r--samples/build/cmake/XMPCommand/CMakeLists.txt2
-rw-r--r--samples/build/cmake/XMPCommand/CMakeListsCommon.txt129
-rw-r--r--samples/build/cmake/XMPCoreCoverage/CMakeLists.txt137
-rw-r--r--samples/build/cmake/XMPFilesCoverage/CMakeLists.txt137
-rw-r--r--samples/build/cmake/XMPIterations/CMakeLists.txt138
-rw-r--r--samples/build/readme.txt4
-rw-r--r--samples/source/AML_AddComponent.cpp203
-rw-r--r--samples/source/AML_AddTimePartComponent.cpp191
-rw-r--r--samples/source/AML_SearchAndDeleteComponent.cpp205
-rw-r--r--samples/source/AML_Trackable.cpp164
-rw-r--r--samples/source/CustomSchema.cpp2
-rw-r--r--samples/source/CustomSchemaNewDOM.cpp196
-rw-r--r--samples/source/DumpMainXMP.cpp2
-rw-r--r--samples/source/DumpScannedXMP.cpp8
-rw-r--r--samples/source/ModifyingXMP.cpp2
-rw-r--r--samples/source/ModifyingXMPNewDOM.cpp429
-rw-r--r--samples/source/ReadingXMP.cpp5
-rw-r--r--samples/source/ReadingXMPNewDOM.cpp281
-rw-r--r--samples/source/UnicodeCorrectness.cpp2
-rw-r--r--samples/source/UnicodeParseSerialize.cpp2
-rw-r--r--samples/source/UnicodePerformance.cpp2
-rw-r--r--samples/source/XMPCoreCoverage.cpp2
-rw-r--r--samples/source/XMPFilesCoverage.cpp2
-rw-r--r--samples/source/XMPIterations.cpp2
-rw-r--r--samples/source/common/DumpFile.cpp308
-rw-r--r--samples/source/common/TagTree.cpp19
-rw-r--r--samples/source/common/TagTree.h3
-rw-r--r--samples/source/common/globals.h2
-rw-r--r--samples/source/dumpfile/main.cpp1
-rw-r--r--source/Host_IO-POSIX.cpp2
-rw-r--r--source/SafeStringAPIs.cpp10
-rw-r--r--source/UnicodeConversions.cpp16
-rw-r--r--source/XMPFiles_IO.cpp12
-rw-r--r--source/XMP_LibUtils.cpp39
-rw-r--r--source/XMP_LibUtils.hpp54
-rw-r--r--source/XMP_ProgressTracker.hpp3
-rw-r--r--tools/cmake/ReadMe.txt12
922 files changed, 119453 insertions, 15879 deletions
diff --git a/BSD-License.txt b/BSD-License.txt
index 07b967c..ebf769e 100644
--- a/BSD-License.txt
+++ b/BSD-License.txt
@@ -1,6 +1,6 @@
The BSD License
-Copyright (c) 1999 - 2014, Adobe Systems Incorporated
+Copyright (c) 1999 - 2016, Adobe Systems Incorporated
All rights reserved.
Redistribution and use in source and binary forms, with or
diff --git a/XMP-Toolkit-SDK-Overview.pdf b/XMP-Toolkit-SDK-Overview.pdf
index f82c662..6fd9be2 100644
--- a/XMP-Toolkit-SDK-Overview.pdf
+++ b/XMP-Toolkit-SDK-Overview.pdf
Binary files differ
diff --git a/XMPCommon/BaseClasses/MemoryManagedObject.h b/XMPCommon/BaseClasses/MemoryManagedObject.h
new file mode 100644
index 0000000..08ab683
--- /dev/null
+++ b/XMPCommon/BaseClasses/MemoryManagedObject.h
@@ -0,0 +1,46 @@
+#ifndef MemoryManagedObject_h__
+#define MemoryManagedObject_h__ 1
+
+// =================================================================================================
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved.
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/XMPCommonDefines_I.h"
+#include "XMPCommon/XMPCommonFwdDeclarations.h"
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+ using AdobeXMPCommon::pIMemoryAllocator;
+ //!
+ //! \brief class which serves as the base class for all internal concrete classes.
+ //! \details Provides all the concrete classes with a set of new/delete functions which internally
+ //! calls appropriate client or inbuilt library functions for all memory allocation and deallocation
+ //! on heap.
+ //! \attention no state maintained so no need to worry about multi threading.
+ //!
+ class MemoryManagedObject {
+
+ public:
+ void * operator new( std::size_t );
+ void * operator new( std::size_t, const std::nothrow_t & ) __NOTHROW__;
+ void * operator new( std::size_t, void * ptr ) __NOTHROW__;
+
+ void * operator new[]( std::size_t );
+ void * operator new[]( std::size_t, const std::nothrow_t & ) __NOTHROW__;
+ void * operator new[]( std::size_t, void * ptr ) __NOTHROW__;
+
+ void operator delete( void * ptr ) throw ();
+ void operator delete( void * ptr, const std::nothrow_t & ) __NOTHROW__;
+ void operator delete( void * ptr, void * voidptr2 ) __NOTHROW__;
+
+ void operator delete[]( void * ptr ) throw ();
+ void operator delete[]( void * ptr, const std::nothrow_t & ) __NOTHROW__;
+ void operator delete[]( void * ptr, void * voidptr2 ) __NOTHROW__;
+
+ };
+};
+
+#endif // MemoryManagedObject_h__
diff --git a/XMPCommon/BaseClasses/TSingleton.h b/XMPCommon/BaseClasses/TSingleton.h
new file mode 100644
index 0000000..2996d34
--- /dev/null
+++ b/XMPCommon/BaseClasses/TSingleton.h
@@ -0,0 +1,188 @@
+#ifndef __TSingletonImpl_h__
+#define __TSingletonImpl_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/XMPCommonDefines_I.h"
+#include <stdexcept>
+#include <cstdlib>
+
+namespace AdobeXMPCommon_Int {
+
+ template< typename T >
+ class TSingleThreaded {
+ public:
+ typedef T VolatileType;
+
+ protected:
+ inline explicit TSingleThreaded() {}
+ inline ~TSingleThreaded() {}
+
+ protected:
+ class LockThread {
+ public:
+ inline explicit LockThread() {
+ TSingleThreaded::Lock();
+ }
+ inline ~LockThread() {
+ TSingleThreaded::Unlock();
+ }
+
+ private:
+ inline explicit LockThread( const LockThread & ) {}
+ inline LockThread & operator=( const LockThread & ) { return *this; }
+ };
+
+ private:
+ friend class LockThread;
+
+ inline static void Lock() {}
+ inline static void Unlock() {}
+
+ private:
+ inline explicit TSingleThreaded( const TSingleThreaded & ) {}
+ inline TSingleThreaded & operator=( const TSingleThreaded & ) { return *this; }
+ };
+
+ template< typename T >
+ class TDefaultLifetime;
+
+ template< typename T >
+ class TInitTermiateControlledLifeTime;
+
+ template< typename T >
+ class TCreateUsingNew;
+
+ template< typename T, typename CreationPolicy = TCreateUsingNew<T>,
+ template < typename > class LifetimePolicy = TInitTermiateControlledLifeTime,
+ template < typename > class ThreadingModel = TSingleThreaded >
+ class TSingleton
+ : public CreationPolicy,
+ public LifetimePolicy<T>,
+ public ThreadingModel<T>
+ {
+ public:
+ typedef T & reference;
+ typedef T * pointer;
+
+ static reference Instance() {
+ if ( TSingleton::mInstance == 0 ) {
+ typename ThreadingModel<T>::LockThread lock;
+ if ( TSingleton::mInstance == 0 ) {
+ if ( TSingleton::mDestroyed ) {
+ LifetimePolicy<T>::OnDeadReference();
+ TSingleton::mDestroyed = false;
+ }
+ TSingleton::mInstance = CreationPolicy::CreateInstance();
+ try {
+ LifetimePolicy<T>::ScheduleForDestruction( TSingleton::Destroy );
+ } catch( ... ) {
+ CreationPolicy::DestroyInstance( TSingleton::mInstance );
+ }
+ }
+ }
+ return *(TSingleton::mInstance);
+ }
+ static void Destroy();
+
+ protected:
+ inline explicit TSingleton() {
+ assert(TSingleton::mInstance == 0);
+ TSingleton::mInstance = static_cast< pointer >( this );
+ TSingleton::mDestroyed = false;
+ }
+ inline ~TSingleton() {
+ TSingleton::mInstance = 0;
+ TSingleton::mDestroyed = true;
+ }
+
+ private:
+ static pointer mInstance;
+ static bool mDestroyed;
+
+ private:
+ inline explicit TSingleton( const TSingleton & ) {}
+ inline TSingleton & operator=( const TSingleton & ) { return *this; }
+ };
+
+ template< typename Ty, typename C, template < typename > class L, template < typename > class T >
+ void TSingleton< Ty, C, L, T >::Destroy() {
+ if ( TSingleton::mInstance != 0 ) {
+ typename T<Ty>::LockThread lock;
+ if ( TSingleton::mInstance != 0 ) {
+ C::DestroyInstance(TSingleton::mInstance);
+ TSingleton::mInstance = 0;
+ TSingleton::mDestroyed = true;
+ }
+ }
+ }
+
+ template< typename Ty, typename C, template < typename > class L, template < typename > class T >
+ typename TSingleton<Ty, C, L, T>::pointer TSingleton<Ty, C, L, T>::mInstance = 0;
+ //typename TSingleton<Ty, C, L, T>::template T<Ty>::VolatileType * TSingleton<Ty, C, L, T>::mInstance = 0;
+
+ template< typename Ty, typename C, template < typename > class L, template < typename > class T >
+ bool TSingleton<Ty, C, L, T>::mDestroyed = false;
+
+ template< typename T >
+ class TDefaultLifetime {
+ protected:
+ inline explicit TDefaultLifetime() {}
+ inline ~TDefaultLifetime() {}
+
+ inline static void OnDeadReference() {
+ throw std::logic_error("Dead Reference Detected");
+ }
+ inline static void ScheduleForDestruction(void (*pFun)()) {
+ std::atexit(pFun);
+ }
+
+ private:
+ inline explicit TDefaultLifetime( const TDefaultLifetime & ) {}
+ inline TDefaultLifetime & operator=( const TDefaultLifetime & ) { return *this; }
+ };
+
+ template< typename T >
+ class TCreateUsingNew {
+ public:
+ typedef T * pointer;
+ protected :
+ inline explicit TCreateUsingNew() {}
+ inline ~TCreateUsingNew() {}
+
+ inline static pointer CreateInstance() { return new T(); }
+ inline static void DestroyInstance(pointer t) { delete t; }
+
+ private :
+ inline explicit TCreateUsingNew( const TCreateUsingNew & ) {}
+ inline TCreateUsingNew & operator=( const TCreateUsingNew & ) { return *this; }
+ };
+
+ template< typename T >
+ class TInitTermiateControlledLifeTime {
+ protected:
+ inline explicit TInitTermiateControlledLifeTime() {}
+ inline ~TInitTermiateControlledLifeTime() {}
+
+ inline static void OnDeadReference() {
+ //do nothing
+ }
+ inline static void ScheduleForDestruction(void (*pFun)()) {
+
+ }
+
+ private:
+ inline explicit TInitTermiateControlledLifeTime( const TDefaultLifetime< T > & ) {}
+ inline TInitTermiateControlledLifeTime & operator=( const TDefaultLifetime< T > & ) { return *this; }
+ };
+
+}
+#endif // __TSingletonImpl_h__
+
diff --git a/XMPCommon/ImplHeaders/ConfigurableImpl.h b/XMPCommon/ImplHeaders/ConfigurableImpl.h
new file mode 100644
index 0000000..f97dce7
--- /dev/null
+++ b/XMPCommon/ImplHeaders/ConfigurableImpl.h
@@ -0,0 +1,73 @@
+#ifndef ConfigurableImpl_h__
+#define ConfigurableImpl_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#if !(IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED)
+ #error "Not adhering to design constraints"
+ // this file should only be included from its own cpp file
+#endif
+
+#include "XMPCommon/Interfaces/BaseInterfaces/IConfigurable_I.h"
+#include "XMPCommon/Utilities/TAllocator.h"
+
+#include <set>
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+
+ class ConfigurableImpl
+ : public virtual IConfigurable_I
+ {
+ public:
+ typedef std::map< uint64, TypeValuePair, std::less< uint64 >, TAllocator< KeyValuePair > > KeyValueMap;
+ typedef std::set< uint64, std::less< uint64 >, TAllocator< uint64 > > KeysSet;
+ typedef std::map< uint64, eDataType, std::less< uint64 >, TAllocator< KeyValueTypePair > > keyValueTypeMap;
+
+ ConfigurableImpl()
+ : mKeysSet( NULL )
+ , mKeyValueTypeMap( NULL )
+ , mTreatKeyAsCaseInsensitiveCharBuffer( false )
+ , mAllowDifferentValueTypesForExistingEntries( false ) {}
+
+ using IConfigurable_I::SetParameter;
+ using IConfigurable_I::GetParameter;
+
+ virtual void APICALL SetParameter( const uint64 & key, eDataType type, const CombinedDataValue & value );
+ virtual bool APICALL GetParameter( const uint64 & key, eDataType type, CombinedDataValue & value ) const;
+ virtual bool APICALL RemoveParameter( const uint64 & key );
+ virtual std::vector< uint64 > APICALL GetAllParameters() const;
+ virtual sizet APICALL Size() const __NOTHROW__;
+ virtual eDataType APICALL GetDataType( const uint64 & key ) const;
+ virtual eConfigurableErrorCode APICALL ValidateValue( const uint64 & key, eDataType type, CombinedDataValue value ) const;
+
+ virtual void APICALL TreatKeyAsCaseInsensitive( bool flag = true );
+ virtual void APICALL AllowDifferentValueTypesForExistingEntries( bool flag = true );
+
+ void APICALL SetAllowedKeys( uint64 * keysTable, sizet sizeOfTable );
+ void APICALL SetAllowedValueTypesForKeys( KeyValueTypePair * keyValueTypePairTable, sizet sizeOfTable );
+
+ virtual ~ConfigurableImpl() __NOTHROW__;
+
+ protected:
+ KeyValueMap mMap;
+ KeysSet * mKeysSet;
+ keyValueTypeMap * mKeyValueTypeMap;
+ bool mTreatKeyAsCaseInsensitiveCharBuffer;
+ bool mAllowDifferentValueTypesForExistingEntries;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+
+ };
+}
+
+#endif // ConfigurableImpl_h__
diff --git a/XMPCommon/ImplHeaders/ConfigurationManagerImpl.h b/XMPCommon/ImplHeaders/ConfigurationManagerImpl.h
new file mode 100644
index 0000000..995eb4d
--- /dev/null
+++ b/XMPCommon/ImplHeaders/ConfigurationManagerImpl.h
@@ -0,0 +1,59 @@
+#ifndef ConfigurationManagerImpl_h__
+#define ConfigurationManagerImpl_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#if !(IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED)
+ #error "Not adhering to design constraints"
+ // this file should only be included from its own cpp file
+#endif
+
+#include "XMPCommon/Interfaces/IConfigurationManager_I.h"
+
+#include "XMPCommon/ImplHeaders/SharedObjectImpl.h"
+#include "XMPCommon/BaseClasses/MemoryManagedObject.h"
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+
+ class ConfigurationManagerImpl
+ : public virtual IConfigurationManager_I
+ , public virtual SharedObjectImpl
+ , public virtual MemoryManagedObject
+ {
+ public:
+ ConfigurationManagerImpl() : mMultiThreadingEnabled( true ) {}
+
+ virtual bool APICALL RegisterMemoryAllocator( pIMemoryAllocator memoryAllocator );
+ virtual bool APICALL RegisterErrorNotifier( pIErrorNotifier_base clientErrorNotifier );
+ virtual bool APICALL DisableMultiThreading();
+ virtual bool APICALL IsMultiThreaded() const;
+
+ protected:
+ ~ConfigurationManagerImpl() __NOTHROW__ {}
+ bool mMultiThreadingEnabled;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+
+ };
+}
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+
+#endif // ConfigurationManagerImpl_h__
diff --git a/XMPCommon/ImplHeaders/DefaultErrorNotifierImpl.h b/XMPCommon/ImplHeaders/DefaultErrorNotifierImpl.h
new file mode 100644
index 0000000..28cc551
--- /dev/null
+++ b/XMPCommon/ImplHeaders/DefaultErrorNotifierImpl.h
@@ -0,0 +1,35 @@
+#ifndef DefaultErrorNotifierImpl_h__
+#define DefaultErrorNotifierImpl_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/Interfaces/IErrorNotifier_I.h"
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+
+
+ class DefaultErrorNotifierImpl
+ : public virtual IErrorNotifier_I
+ {
+ public:
+ virtual bool APICALL Notify( const spcIError & error );
+ virtual ~DefaultErrorNotifierImpl() __NOTHROW__{}
+
+ protected:
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+
+}
+
+#endif // DefaultErrorNotifierImpl_h__
diff --git a/XMPCommon/ImplHeaders/ErrorImpl.h b/XMPCommon/ImplHeaders/ErrorImpl.h
new file mode 100644
index 0000000..03e4406
--- /dev/null
+++ b/XMPCommon/ImplHeaders/ErrorImpl.h
@@ -0,0 +1,80 @@
+#ifndef ErrorImpl_h__
+#define ErrorImpl_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#if !(IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED)
+ #error "Not adhering to design constraints"
+ // this file should only be included from its own cpp file
+#endif
+
+#include "XMPCommon/Interfaces/IError_I.h"
+#include "XMPCommon/BaseClasses/MemoryManagedObject.h"
+#include "XMPCommon/ImplHeaders/SharedObjectImpl.h"
+#include "XMPCommon/Interfaces/IUTF8String_I.h"
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+
+ class ErrorImpl
+ : public virtual IError_I
+ , public virtual SharedObjectImpl
+ , public virtual MemoryManagedObject
+ {
+ public:
+ ErrorImpl( eErrorDomain domain, eErrorCode code, eErrorSeverity severity );
+ virtual ~ErrorImpl() __NOTHROW__ ;
+
+ virtual eErrorCode APICALL GetCode() const;
+ virtual eErrorDomain APICALL GetDomain() const;
+ virtual eErrorSeverity APICALL GetSeverity() const;
+ virtual spcIUTF8String APICALL GetMessage() const;
+ virtual spcIUTF8String APICALL GetLocation() const;
+ virtual spcIUTF8String APICALL GetParameter( sizet index ) const;
+ virtual sizet APICALL GetParametersCount() const __NOTHROW__;
+ virtual spIError APICALL GetNextError();
+ virtual spIError APICALL SetNextError( const spIError & error );
+ virtual void APICALL SetMessage( const char * message, sizet len = npos ) __NOTHROW__;
+ virtual void APICALL SetLocation( const char * fileName, sizet lineNumber ) __NOTHROW__;
+ virtual void APICALL AppendParameter( const char * parameter, sizet len = npos ) __NOTHROW__;
+ virtual void APICALL AppendParameter( void * addressParameter ) __NOTHROW__;
+ virtual void APICALL AppendParameter( const uint32 & integerValue ) __NOTHROW__;
+ virtual void APICALL AppendParameter( const uint64 & integerValue ) __NOTHROW__;
+ virtual void APICALL AppendParameter( const int32 & integerValue ) __NOTHROW__;
+ virtual void APICALL AppendParameter( const int64 & integerValue ) __NOTHROW__;
+ virtual void APICALL AppendParameter( const float & floatValue ) __NOTHROW__;
+ virtual void APICALL AppendParameter( const double & doubleValue ) __NOTHROW__;
+ virtual void APICALL AppendParameter( bool booleanValue ) __NOTHROW__;
+
+ protected:
+ eErrorCode mErrorCode;
+ eErrorDomain mErrorDomain;
+ eErrorSeverity mErrorSeverity;
+ spIUTF8String mLocation;
+ spIUTF8String mMessage;
+ mmcIUTF8StringList mParameters;
+ spIError mNextError;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+}
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+
+#endif // ErrorImpl_h__
diff --git a/XMPCommon/ImplHeaders/ErrorNotifierWrapperImpl.h b/XMPCommon/ImplHeaders/ErrorNotifierWrapperImpl.h
new file mode 100644
index 0000000..c158ac4
--- /dev/null
+++ b/XMPCommon/ImplHeaders/ErrorNotifierWrapperImpl.h
@@ -0,0 +1,50 @@
+#ifndef ErrorNotifierWrapperImpl_h__
+#define ErrorNotifierWrapperImpl_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#if !(IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED)
+ #error "Not adhering to design constraints"
+ // this file should only be included from its own cpp file
+#endif
+
+#include "XMPCommon/Interfaces/IErrorNotifier_I.h"
+#include "XMPCommon/BaseClasses/MemoryManagedObject.h"
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+
+ class ErrorNotifierWrapperImpl_v1
+ : public virtual IErrorNotifier_I
+ , public virtual MemoryManagedObject
+ {
+ public:
+ virtual bool APICALL Notify( const spcIError & error );
+
+ protected:
+ ErrorNotifierWrapperImpl_v1( IErrorNotifier_v1 * clientNotifier );
+ virtual ~ErrorNotifierWrapperImpl_v1() __NOTHROW__{};
+
+ IErrorNotifier_v1 * mErrorNotifier;
+
+ friend pIErrorNotifier CreateErrorNotifierWrapperImpl( pIErrorNotifier_base errorNotifier );
+ };
+}
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+
+#endif // ErrorNotifierWrapperImpl_h__
diff --git a/XMPCommon/ImplHeaders/MemoryAllocatorWrapperImpl.h b/XMPCommon/ImplHeaders/MemoryAllocatorWrapperImpl.h
new file mode 100644
index 0000000..61f38b6
--- /dev/null
+++ b/XMPCommon/ImplHeaders/MemoryAllocatorWrapperImpl.h
@@ -0,0 +1,38 @@
+#ifndef MemoryAllocatorWrapperImpl_h__
+#define MemoryAllocatorWrapperImpl_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/Interfaces/IMemoryAllocator.h"
+#include <cstdlib>
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+ using namespace AdobeXMPCommon;
+
+ class MemoryAllocatorWrapperImpl
+ : public virtual IMemoryAllocator
+ {
+ public:
+ MemoryAllocatorWrapperImpl();
+ pIMemoryAllocator_base SetMemoryAllocator( pIMemoryAllocator_base memoryAllocator );
+
+ virtual void * APICALL allocate( sizet size ) __NOTHROW__;
+ virtual void APICALL deallocate( void * ptr ) __NOTHROW__;
+ virtual void * APICALL reallocate( void * ptr, sizet size ) __NOTHROW__;
+
+ protected:
+ pIMemoryAllocator_base mpMemoryAllocator;
+ };
+
+
+}
+
+#endif // MemoryAllocatorWrapperImpl_h__
+
diff --git a/XMPCommon/ImplHeaders/SharedMutexImpl.h b/XMPCommon/ImplHeaders/SharedMutexImpl.h
new file mode 100644
index 0000000..6fea852
--- /dev/null
+++ b/XMPCommon/ImplHeaders/SharedMutexImpl.h
@@ -0,0 +1,52 @@
+#ifndef __SharedMutexImpl_h__
+#define __SharedMutexImpl_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#if !(IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED)
+ #error "Not adhering to design constraints"
+ // this file should only be included from its own cpp file
+#endif
+
+#include "XMPCommon/Interfaces/ISharedMutex.h"
+#include "XMPCommon/BaseClasses/MemoryManagedObject.h"
+#include "XMPCommon/ImplHeaders/SharedObjectImpl.h"
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+
+ class SharedMutexImpl
+ : public virtual ISharedMutex
+ , public virtual SharedObjectImpl
+ , public virtual MemoryManagedObject
+ {
+ public:
+ virtual eMultiThreadingErrorCode APICALL Lock() __NOTHROW__;
+ virtual eMultiThreadingErrorCode APICALL TryLock() __NOTHROW__;
+ virtual eMultiThreadingErrorCode APICALL Unlock() __NOTHROW__;
+
+ virtual eMultiThreadingErrorCode APICALL LockShared() __NOTHROW__;
+ virtual eMultiThreadingErrorCode APICALL TryLockShared() __NOTHROW__;
+ virtual eMultiThreadingErrorCode APICALL UnlockShared() __NOTHROW__;
+
+ virtual ~SharedMutexImpl() __NOTHROW__ { }
+ };
+
+}
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+
+#endif // __SharedMutexImpl_h__
diff --git a/XMPCommon/ImplHeaders/SharedObjectImpl.h b/XMPCommon/ImplHeaders/SharedObjectImpl.h
new file mode 100644
index 0000000..1094a88
--- /dev/null
+++ b/XMPCommon/ImplHeaders/SharedObjectImpl.h
@@ -0,0 +1,49 @@
+#ifndef __SharedObjectImpl_h__
+#define __SharedObjectImpl_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/ISharedObject_I.h"
+#include "XMPCommon/Utilities/TAtomicTypes.h"
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+
+ class SharedObjectImpl
+ : public virtual ISharedObject_I
+ {
+ public:
+ SharedObjectImpl()
+ : mRefCount( 0 )
+ , mCountInternal( 0 ) { }
+
+ virtual void APICALL Acquire() const __NOTHROW__;
+ virtual void APICALL Release() const __NOTHROW__;
+ virtual void APICALL AcquireInternal() const __NOTHROW__;
+
+ protected:
+ SharedObjectImpl( const SharedObjectImpl & );
+ SharedObjectImpl & operator = ( const SharedObjectImpl & );
+ virtual ~SharedObjectImpl() __NOTHROW__;
+
+ protected:
+ mutable atomic_sizet mRefCount;
+ mutable atomic_sizet mCountInternal;
+
+ #ifndef FRIEND_CLASS_DECLARATION
+ #define FRIEND_CLASS_DECLARATION()
+ #endif
+ FRIEND_CLASS_DECLARATION();
+ REQ_FRIEND_CLASS_DECLARATION();
+
+ };
+}
+
+#endif // __SharedObjectImpl_h__
diff --git a/XMPCommon/ImplHeaders/ThreadSafeImpl.h b/XMPCommon/ImplHeaders/ThreadSafeImpl.h
new file mode 100644
index 0000000..bf42a44
--- /dev/null
+++ b/XMPCommon/ImplHeaders/ThreadSafeImpl.h
@@ -0,0 +1,51 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#if !(IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED)
+ #error "Not adhering to design constraints"
+ // this file should only be included from its own cpp file
+#endif
+
+#include "XMPCommon/Interfaces/BaseInterfaces/IThreadSafe_I.h"
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+
+ class ThreadSafeImpl
+ : public virtual IThreadSafe_I
+ {
+ public:
+ ThreadSafeImpl() {}
+
+
+ protected:
+ virtual ~ThreadSafeImpl() {}
+
+ virtual void APICALL ShareMutex( const spISharedMutex & mutex );
+ virtual void APICALL UnShareMutex();
+ virtual void APICALL EnableThreadSafety() const __NOTHROW__;
+ virtual void APICALL DisableThreadSafety() const __NOTHROW__;
+ virtual bool APICALL IsThreadSafe() const;
+
+ mutable spISharedMutex mSharedMutex;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+}
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif \ No newline at end of file
diff --git a/XMPCommon/ImplHeaders/UTF8StringImpl.h b/XMPCommon/ImplHeaders/UTF8StringImpl.h
new file mode 100644
index 0000000..45889f1
--- /dev/null
+++ b/XMPCommon/ImplHeaders/UTF8StringImpl.h
@@ -0,0 +1,83 @@
+#ifndef __UTF8String_Impl_h__
+#define __UTF8String_Impl_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#if !(IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED)
+ #error "Not adhering to design constraints"
+ // this file should only be included from its own cpp file
+#endif
+
+#include "XMPCommon/Interfaces/IUTF8String_I.h"
+#include "XMPCommon/BaseClasses/MemoryManagedObject.h"
+#include "XMPCommon/ImplHeaders/SharedObjectImpl.h"
+
+#include "XMPCommon/Utilities/UTF8String.h"
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+
+ class UTF8StringImpl
+ : public virtual IUTF8String_I
+ , public virtual SharedObjectImpl
+ , public virtual MemoryManagedObject
+ , public virtual enable_shared_from_this< UTF8StringImpl >
+ {
+ public:
+ UTF8StringImpl() {}
+
+ virtual spIUTF8String APICALL append( const char * buf, sizet count );
+ virtual spIUTF8String APICALL append( const spcIUTF8String & src, sizet srcPos, sizet count );
+ virtual spIUTF8String APICALL assign( const char * buf, sizet count );
+ virtual spIUTF8String APICALL assign( const spcIUTF8String & src, sizet srcPos, sizet count );
+ virtual spIUTF8String APICALL insert( sizet pos, const char * buf, sizet count );
+ virtual spIUTF8String APICALL insert( sizet pos, const spcIUTF8String & src, sizet srcPos, sizet count );
+ virtual spIUTF8String APICALL erase( sizet pos, sizet count );
+ virtual void APICALL resize( sizet n );
+ virtual spIUTF8String APICALL replace( sizet pos, sizet count, const char * buf, sizet srcCount );
+ virtual spIUTF8String APICALL replace( sizet pos, sizet count, const spcIUTF8String & src, sizet srcPos, sizet srcCount );
+ virtual sizet APICALL copy( char * buf, sizet len, sizet pos ) const;
+ virtual sizet APICALL find( const char * buf, sizet pos, sizet count ) const;
+ virtual sizet APICALL find( const spcIUTF8String & src, sizet pos, sizet count ) const;
+ virtual sizet APICALL rfind( const char * buf, sizet pos, sizet count ) const;
+ virtual sizet APICALL rfind( const spcIUTF8String & src, sizet pos, sizet count ) const;
+ virtual int32 APICALL compare( sizet pos, sizet len, const char * buf, sizet count ) const;
+ virtual int32 APICALL compare( sizet pos, sizet len, const spcIUTF8String & str, sizet strPos, sizet strLen ) const;
+ virtual spIUTF8String APICALL substr( sizet pos, sizet count ) const;
+
+ virtual bool APICALL empty() const;
+ virtual const char * APICALL c_str() const __NOTHROW__;
+ virtual void APICALL clear() __NOTHROW__;
+ virtual sizet APICALL size() const __NOTHROW__;
+
+ protected:
+ spIUTF8String returnSelfSharedPointer();
+ sizet ValidatePosParameter( const sizet & pos ) const;
+
+ UTF8String mString;
+
+ virtual ~UTF8StringImpl() __NOTHROW__ {}
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+}
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+
+#endif // __UTF8String_Impl_h__
diff --git a/XMPCommon/Interfaces/BaseInterfaces/IConfigurable_I.h b/XMPCommon/Interfaces/BaseInterfaces/IConfigurable_I.h
new file mode 100644
index 0000000..ef52ec8
--- /dev/null
+++ b/XMPCommon/Interfaces/BaseInterfaces/IConfigurable_I.h
@@ -0,0 +1,129 @@
+#ifndef IConfigurable_I_h__
+#define IConfigurable_I_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/XMPCommonFwdDeclarations_I.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/IConfigurable.h"
+#include "XMPCommon/XMPCommonErrorCodes.h"
+#include <map>
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+
+ class IConfigurable_I
+ : public virtual IConfigurable
+ {
+ public:
+
+ typedef struct std::pair< eDataType, CombinedDataValue > TypeValuePair;
+ typedef std::pair< uint64, TypeValuePair > KeyValuePair;
+ typedef std::pair< uint64, eDataType > KeyValueTypePair;
+
+ //!
+ //! Function to validate a key.
+ //! \param[in] key an unsigned 64 bit number indicating the key of the parameter.
+ //! If an object only supports fixed number of keys, it can override this function and
+ //! return error for an unsupported key, otherwise return #kCECNone.
+ //!
+ virtual eConfigurableErrorCode APICALL ValidateKey( const uint64 & key ) const { return kCECNone; }
+
+
+ //!
+ //! Function to modify the key.
+ //! \param[in] key an unsigned 64 bit number indicating the key of the parameter.
+ //! If an object supports eight character case in-sensitive keys, it can override this function
+ //! and convert them to lower case.
+ //! \return the new key.
+ //!
+ virtual uint64 APICALL ModifyKey( const uint64 & key ) const { return key; }
+
+ //!
+ //! Function to validate the value and its type for a particular key.
+ //! \param[in] key an unsigned 64 bit number indicating the key of the parameter.
+ //! \param[in] type an eDataType enum value indicating the type of data associated with the key.
+ //! \param[in] value indicates the value of the data.
+ //! If an object supports a key with only a fixed type or it wants to constrain the values a key
+ //! can hold, it can override this function for such operations. Returns an error code in case
+ //! of an error condition, otherwise return kCECNone.
+ //!
+ virtual eConfigurableErrorCode APICALL ValidateValue( const uint64 & key, eDataType type, const CombinedDataValue & value ) const = 0;
+
+ //!
+ //! Allows keys to be treated as case insensitive.
+ //! \param[in] flag a boolean value if set to true makes key as case insensitive
+ //!
+ virtual void APICALL TreatKeyAsCaseInsensitive( bool flag = true ) = 0;
+
+ //!
+ //! Allows type of value to be changed later on.
+ //! \param[in] flag a boolean value if set to true allows even the type of data associated with the key to be changed later on.
+ //!
+ virtual void APICALL AllowDifferentValueTypesForExistingEntries( bool flag = true ) = 0;
+
+ //!
+ //! Restrict to have only specific keys.
+ //! \param[in] keysTable an array of uint64 values containing all the keys.
+ //! \param[in] sizeofTable number of entries in the array.
+ //!
+ virtual void APICALL SetAllowedKeys( uint64 * keysTable, sizet sizeOfTable ) = 0;
+
+ //!
+ //! Restrict data type of particular keys.
+ //! \param[in] keyValueTypePairTable an array of KeyValueTypePair containing all the allowed dataTypes for the keys.
+ //! \param[in] sizeOfTable number of entries in the array.
+ //!
+ virtual void APICALL SetAllowedValueTypesForKeys( KeyValueTypePair * keyValueTypePairTable, sizet sizeOfTable ) = 0;
+
+ //!
+ //! Function to get access to the mutex object.
+ //!
+ virtual spISharedMutex APICALL GetMutex() const = 0;
+
+ virtual void APICALL SetParameter( const uint64 & key, bool value );
+ virtual void APICALL SetParameter( const uint64 & key, uint64 value );
+ virtual void APICALL SetParameter( const uint64 & key, int64 value );
+ virtual void APICALL SetParameter( const uint64 & key, double value );
+ virtual void APICALL SetParameter( const uint64 & key, char value );
+ virtual void APICALL SetParameter( const uint64 & key, const char * value );
+ virtual void APICALL SetParameter( const uint64 & key, const void * value );
+
+ virtual bool APICALL GetParameter( const uint64 & key, bool & value ) const;
+ virtual bool APICALL GetParameter( const uint64 & key, uint64 & value ) const;
+ virtual bool APICALL GetParameter( const uint64 & key, int64 & value ) const;
+ virtual bool APICALL GetParameter( const uint64 & key, double & value ) const;
+ virtual bool APICALL GetParameter( const uint64 & key, char & value ) const;
+ virtual bool APICALL GetParameter( const uint64 & key, const char * & value ) const;
+ virtual bool APICALL GetParameter( const uint64 & key, const void * & value ) const;
+
+ protected:
+
+ //!
+ //! protected Virtual Destructor
+ //!
+ virtual ~IConfigurable_I() __NOTHROW__ {};
+
+ virtual void APICALL setParameter( const uint64 & key, uint32 dataType, const CombinedDataValue & dataValue, pcIError_base & error ) __NOTHROW__;
+ virtual uint32 APICALL removeParameter( const uint64 & key, pcIError_base & error ) __NOTHROW__;
+ virtual uint32 APICALL getParameter( const uint64 & key, uint32 dataType, CombinedDataValue & value, pcIError_base & error ) const __NOTHROW__;
+ virtual void APICALL getAllParameters( uint64 * array, sizet count ) const __NOTHROW__;
+ virtual uint32 APICALL getDataType( const uint64 & key, pcIError_base & error ) const __NOTHROW__;
+
+ virtual void APICALL SetParameter( const uint64 & key, eDataType type, const CombinedDataValue & value ) = 0;
+ virtual bool APICALL GetParameter( const uint64 & key, eDataType type, CombinedDataValue & value ) const = 0;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+
+}
+
+#endif // IConfigurable_I_h__
diff --git a/XMPCommon/Interfaces/BaseInterfaces/ISharedObject_I.h b/XMPCommon/Interfaces/BaseInterfaces/ISharedObject_I.h
new file mode 100644
index 0000000..e1ab42e
--- /dev/null
+++ b/XMPCommon/Interfaces/BaseInterfaces/ISharedObject_I.h
@@ -0,0 +1,50 @@
+#ifndef __ISharedObject_I_h__
+#define __ISharedObject_I_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/XMPCommonDefines_I.h"
+#include "XMPCommon/XMPCommonFwdDeclarations_I.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h"
+
+namespace AdobeXMPCommon_Int {
+
+ //!
+ //! Internal interface that serves as the base interface of all the internal interfaces inherited from
+ //! externally exposed interfaces.
+ //! This allows all interfaces to be returned as raw pointers through wrapper functions so that internal
+ //! object is not deleted as soon as the internal smart pointer goes out of scope.
+ //! \note Any class/interface which inherits from this class needs to provide implementation for
+ //! AcquireInternal pure virtual function.
+ //!
+ class ISharedObject_I
+ : public virtual ISharedObject
+ {
+ public:
+
+ //!
+ //! It indicates that the pointer owned by the internal smart pointer is required to extend beyond the life span
+ //! of smart pointer. This is generally the case where we are returning raw pointer from an internal shared pointer.
+ //! Called internally by the library to pass raw pointers across shared libraries from shared pointers.
+ //!
+ virtual void APICALL AcquireInternal() const __NOTHROW__ = 0;
+
+ virtual pISharedObject_I APICALL GetISharedObject_I() __NOTHROW__ { return this; }
+
+ protected:
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+}
+
+#endif // __ISharedObject_I_h__
diff --git a/XMPCommon/Interfaces/BaseInterfaces/IThreadSafe_I.h b/XMPCommon/Interfaces/BaseInterfaces/IThreadSafe_I.h
new file mode 100644
index 0000000..8d039c8
--- /dev/null
+++ b/XMPCommon/Interfaces/BaseInterfaces/IThreadSafe_I.h
@@ -0,0 +1,52 @@
+#ifndef IThreadSafe_I_h__
+#define IThreadSafe_I_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/XMPCommonFwdDeclarations_I.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/IThreadSafe.h"
+
+namespace AdobeXMPCommon_Int {
+
+ //!
+ //! \brief Internal Interface that serves as the base interface for all the externally exposed
+ //! or internal interfaces which needs to provide client configurable thread safety.
+ //! \attention In case client has disabled thread safety at the module level these functions will
+ //! have no use.
+ //! \note By default all the objects created are not thread safe.
+ //!
+
+ class IThreadSafe_I
+ : public virtual IThreadSafe
+ {
+ public:
+
+ //!
+ //! Make two objects share the same mutex.
+ //! Generally required in case of a DOM or where parent child relationship needs to be maintained.
+ //! \param[in] mutex a shared pointer of ISharedMutex interface to be shared among the object.
+ //!
+ virtual void APICALL ShareMutex( const XMP_COMPONENT_INT_NAMESPACE::spISharedMutex & mutex ) = 0;
+ virtual void APICALL UnShareMutex() = 0;
+
+ virtual pIThreadSafe_I APICALL GetIThreadSafe_I() __NOTHROW__ { return this; }
+
+ virtual uint32 APICALL isThreadSafe() const __NOTHROW__ {
+ if ( IsThreadSafe() ) return 1;
+ return 0;
+ }
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ REQ_FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+}
+#endif // IThreadSafe_I_h__
diff --git a/XMPCommon/Interfaces/IConfigurationManager_I.h b/XMPCommon/Interfaces/IConfigurationManager_I.h
new file mode 100644
index 0000000..bd8d094
--- /dev/null
+++ b/XMPCommon/Interfaces/IConfigurationManager_I.h
@@ -0,0 +1,65 @@
+#ifndef IConfigurationManager_I_h__
+#define IConfigurationManager_I_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/XMPCommonFwdDeclarations_I.h"
+#include "XMPCommon/Interfaces/IConfigurationManager.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/ISharedObject_I.h"
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+
+ //!
+ //! \brief Internal interface that represents configuration settings controllable by the client.
+ //! \details Provides functions through which client can plug in its own memory allocators, error notifiers.
+ //! \attention Not Thread Safe as this functionality is generally used at the initialization phase.
+ //!
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+ class IConfigurationManager_I
+ : public virtual IConfigurationManager
+ , public virtual ISharedObject_I
+ {
+ public:
+
+ //!
+ //! return the version of the interface.
+ //! \return 32 bit unsigned integer representing the version of the interface.
+ //!
+ static uint32 GetInterfaceVersion() { return kInternalInterfaceVersionNumber; }
+
+ virtual pIConfigurationManager APICALL GetActualIConfigurationManager() __NOTHROW__ { return this; }
+ virtual pvoid APICALL GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion );
+
+ virtual ~IConfigurationManager_I() __NOTHROW__{}
+
+ protected:
+ virtual uint32 APICALL registerMemoryAllocator( pIMemoryAllocator_base memoryAllocator, pcIError_base & error ) __NOTHROW__;
+ virtual uint32 APICALL registerErrorNotifier( pIErrorNotifier_base clientErrorNotifier, pcIError_base & error ) __NOTHROW__;
+ virtual uint32 APICALL disableMultiThreading( pcIError_base & error ) __NOTHROW__;
+ virtual uint32 APICALL isMultiThreaded( pcIError_base & error ) const __NOTHROW__;
+ virtual pvoid APICALL getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__;
+ pvoid APICALL GetInterfacePointerInternal( uint64 interfaceID, uint32 interfaceVersion, bool isTopLevel );
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ REQ_FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+
+ #if XMP_WinBuild
+ #pragma warning( pop )
+ #endif
+}
+
+#endif // IConfigurationManager_I_h__
diff --git a/XMPCommon/Interfaces/IErrorNotifier_I.h b/XMPCommon/Interfaces/IErrorNotifier_I.h
new file mode 100644
index 0000000..d5ff642
--- /dev/null
+++ b/XMPCommon/Interfaces/IErrorNotifier_I.h
@@ -0,0 +1,53 @@
+#ifndef IErrorNotifier_I_h__
+#define IErrorNotifier_I_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/XMPCommonFwdDeclarations_I.h"
+#include "XMPCommon/Interfaces/IErrorNotifier.h"
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+
+ //!
+ //! \brief Internal interface that represents an interface to be implemented by library
+ //! in case it is interested in getting notifications with respect to errors/warnings encountered
+ //! within the library.
+ //! \details In case library is interested in error notifications it can implement this interface
+ //! and register the same with the #IConfigurationManager. For every warning or error
+ //! encountered the NotifyError function will be called by the library. In case of warnings ( indicated
+ //! by the severity of the error ) the implementation has the option to continue ignoring the warning by
+ //! returning true else he can return false and the warning will be thrown aborting the current operation.
+ //!
+ class IErrorNotifier_I
+ : public virtual IErrorNotifier
+ {
+ public:
+
+ //!
+ //! Get the current error notifier.
+ //!
+ static pIErrorNotifier GetErrorNotifier();
+
+ //!
+ //! Set the current error notifier.
+ //!
+ static pIErrorNotifier SetErrorNotifier( pIErrorNotifier errorNotifier );
+
+ protected:
+ ~IErrorNotifier_I() {}
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ REQ_FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+}
+
+#endif // IErrorNotifier_I_h__
diff --git a/XMPCommon/Interfaces/IError_I.h b/XMPCommon/Interfaces/IError_I.h
new file mode 100644
index 0000000..203b8bf
--- /dev/null
+++ b/XMPCommon/Interfaces/IError_I.h
@@ -0,0 +1,282 @@
+#ifndef IError_I_h__
+#define IError_I_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+
+#include "XMPCommon/Interfaces/IError.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/ISharedObject_I.h"
+#include "XMPCommon/Interfaces/IErrorNotifier_I.h"
+
+//! \cond NEVER_IN_DOCUMNETATION
+#define PARAMETER_1( error, condition1, parameter1 ) \
+ if ( condition1 ) error->AppendParameter( parameter1 );
+
+#define PARAMETER_2( error, condition1, parameter1, \
+ condition2, parameter2 ) \
+ PARAMETER_1( error, condition1, parameter1 ) \
+ PARAMETER_1( error, condition2, parameter2 )
+
+#define PARAMETER_3( error, condition1, parameter1, \
+ condition2, parameter2, condition3, parameter3 ) \
+ PARAMETER_2( error, condition1, parameter1, condition2, parameter2 ) \
+ PARAMETER_1( error, condition3, parameter3 ) \
+
+#define PARAMETER_4( error, condition1, parameter1, \
+ condition2, parameter2, condition3, parameter3, \
+ condition4, parameter4 ) \
+ PARAMETER_3( error, condition1, parameter1, condition2, \
+ parameter2, condition3, parameter3 ) \
+ PARAMETER_1( error, condition4, parameter4 )
+
+#define PARAMETER_5( error, condition1, parameter1, \
+ condition2, parameter2, condition3, parameter3, \
+ condition4, parameter4, condition5, parameter5 ) \
+ PARAMETER_4( error, condition1, parameter1, condition2, \
+ parameter2, condition3, parameter3, condition4, parameter4 ) \
+ PARAMETER_1( error, condition5, parameter5 )
+
+#define PARAMETER_6( error, condition1, parameter1, \
+ condition2, parameter2, condition3, parameter3, \
+ condition4, parameter4, condition5, parameter5, \
+ condition6, parameter6 ) \
+ PARAMETER_5( error, condition1, parameter1, condition2, \
+ parameter2, condition3, parameter3, condition4, parameter4, \
+ condition5, parameter5 ) \
+ PARAMETER_1( error, condition6, parameter6 )
+
+#define GET_MACRO( error, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, MACRO_NAME, ... ) MACRO_NAME
+#define CALLAPPENDPARAMETER( ... ) _CALLAPPENDPARAMETER( GET_MACRO( __VA_ARGS__, \
+ PARAMETER_6, PARAMETER_6, PARAMETER_5, PARAMETER_5, PARAMETER_4, PARAMETER_4, \
+ PARAMETER_3, PARAMETER_3, PARAMETER_2, PARAMETER_2, PARAMETER_1, PARAMETER_1 ), \
+ __VA_ARGS__ )
+#define _CALLAPPENDPARAMETER( MACRO_NAME, ... ) _CALLAPPENDPARAMETER_( MACRO_NAME( __VA_ARGS__ ) )
+#define _CALLAPPENDPARAMETER_( X ) X
+
+//! \endcond
+
+//!
+//! \brief Helper macro to create and notify warning to the client.
+//! \details Creates a shared pointer of type #AdobeXMPCommon::IError, sets all the appropriate fields and
+//! then notifies the client about the warning.
+//! \param[in] domain an object of type #AdobeXMPCommon::IError_v1::eErrorDomain indicating the
+//! domain to which this warning belongs.
+//! \param[in] errorCode an object of type #AdobeXMPCommon::IError_v1::eErrorCode indicating the
+//! error code within a particular domain.
+//! \param[in] message pointer to a constant null terminated char buffer containing message. NULL pointer
+//! will be treated as empty message string.
+//! \param[in] ... variable number of pointers to constant null terminated char buffers. Each
+//! entry containing a parameter to be stored along with the warning.
+//!
+#define NOTIFY_WARNING( domain, errorCode, message, ... ) { \
+ spIError_I warn = IError_I::CreateError( ( domain ) , ( errorCode ) , IError_base::kESWarning ); \
+ warn->SetLocation( __FILE__, __LINE__ ); \
+ warn->SetMessage( ( message ) ); \
+ CALLAPPENDPARAMETER( warn, __VA_ARGS__ ); \
+ spcIError warning = warn; \
+ if ( !IErrorNotifier_I::GetErrorNotifier()->Notify( warning ) ) { \
+ throw warning; \
+ } \
+}
+
+//!
+//! \brief Helper macro to create and notify warning to the client.
+//! \details Creates a shared pointer of type #AdobeXMPCommon::IError, sets all the appropriate fields and
+//! then notifies the client about the error.
+//! \param[in] domain an object of type #AdobeXMPCommon::IError_v1::eErrorDomain indicating the
+//! domain to which this error belongs.
+//! \param[in] errorCode an object of type #AdobeXMPCommon::IError_v1::eErrorCode indicating the
+//! error code within a particular domain.
+//! \param[in] message pointer to a constant null terminated char buffer containing message. NULL
+//! pointer will be treated as empty message string.
+//! \param[in] severity a value of #AdobeXMPCommon::IError_v1::eErrorSeverity indicating the
+//! severity of the error.
+//! \param[in] ... variable number of pointers to constant null terminated char buffers. Each
+//! entry containing a parameter to be stored along with the error.
+//!
+#define NOTIFY_ERROR( domain, errorCode, message, severity, ... ) { \
+ spIError_I err = IError_I::CreateError( ( domain ) , ( errorCode ) , severity ); \
+ err->SetLocation( __FILE__, __LINE__ ); \
+ err->SetMessage( ( message ) ); \
+ CALLAPPENDPARAMETER( err, __VA_ARGS__ ); \
+ spcIError error = err; \
+ if ( !IErrorNotifier_I::GetErrorNotifier()->Notify( error ) ) { \
+ throw error; \
+ } \
+ if ( severity > IError_v1::kESWarning ) { \
+ throw error; \
+ } \
+}
+
+#define CATCH_ALL() catch( ... ) { \
+ NOTIFY_ERROR( IError_v1::kEDGeneral, IError_v1::kGECUnknownExceptionCaught, \
+ "Unknown exception caught", IError_v1::kESOperationFatal ); }
+//!
+//! \brief Helper macro to create and throw an error without notifying the client.
+//! \details Creates a shared pointer of type #AdobeXMPCommon::IError, sets all the appropriate fields and
+//! then raises an exception with this shared pointer after marking it as const.
+//! \param[in] domain an object of type #AdobeXMPCommon::IError_v1::eErrorDomain indicating the
+//! domain to which this error belongs.
+//! \param[in] errorCode an object of type #AdobeXMPCommon::IError_v1::eErrorCode indicating the
+//! error code within a particular domain.
+//! \param[in] message pointer to a constant null terminated char buffer containing message. NULL
+//! pointer will be treated as empty message string.
+//! \param[in] severity a value of #AdobeXMPCommon::IError_v1::eErrorSeverity indicating the
+//! severity of the error.
+//! \param[in] ... variable number of pointers to constant null terminated char buffers. Each
+//! entry containing a parameter to be stored along with the error.
+//!
+#define THROW_ERROR( domain, errorCode, message, severity, ... ) { \
+ spIError_I error = IError_I::CreateError( ( domain ) , ( errorCode ) , severity ); \
+ error->SetLocation( __FILE__, __LINE__ ); \
+ error->SetMessage( ( message ) ); \
+ CALLAPPENDPARAMETER( error, __VA_ARGS__ ); \
+ spcIError cError = error; \
+ throw cError; \
+}
+
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+
+ //!
+ //! \brief Internal interface that represents an error/warning encountered during processing.
+ //! \details Provides all the functions to get/set required information regarding error scenario as well as
+ //! creating errors.
+ //! \attention Do Not support Multi-threading at object level.
+ //! \attention Multi-threading not required since internally same object will not be used across multiple threads.
+ //!
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+ class IError_I
+ : public virtual IError
+ , public virtual ISharedObject_I
+ {
+ public:
+
+ using IError_v1::AppendParameter;
+ using IError_v1::GetCode;
+ using IError_v1::GetDomain;
+ using IError_v1::GetSeverity;
+ //using IError_v1::GetMessage;
+ using IError_v1::GetLocation;
+ using IError_v1::GetParameter;
+ using IError_v1::GetNextError;
+ using IError_v1::SetNextError;
+
+ //!
+ //! Appends a parameter to the list of parameters.
+ //! \param[in] parameter shared pointer to a constant an object of IUTF8String.
+ //! Invalid shared pointer will be treated as empty message string.
+ //!
+ void APICALL AppendParameter( const spcIUTF8String & string ) __NOTHROW__;
+
+ virtual pIError APICALL GetActualIError() __NOTHROW__ { return this; }
+ virtual pISharedObject_I APICALL GetISharedObject_I() __NOTHROW__ { return this; }
+
+ virtual pvoid APICALL GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion );
+
+ // static factory methods
+
+ //!
+ //! Creates an error object.
+ //! \param[in] errDomain a value of #eErrorDomain indicating the error domain.
+ //! \param[in] errCode a value of #eErrorCode indicating the error code.
+ //! \param[in] errSeverity a value of #eErrorSeverity indicating the severity of the error.
+ //!
+ static spIError_I CreateError( eErrorDomain errDomain, eErrorCode errCode, eErrorSeverity errSeverity );
+
+
+ //!
+ //! Creates an error for uncaught exception.
+ //! \param[in] severity a value of #IError_v1::eErrorSeverity type indicating the severity of an error.
+ //! \param[in] fileName pointer to a constant null terminated char buffer containing fileName in which error
+ //! originated.
+ //! \param[in] lineNumber a value of #AdobeXMPCommon::uint32 type respresenting the lineNumber at which error
+ //! originated.
+ //! creates and returns appropriate error.
+ //!
+ static spIError_I CreateUnknownExceptionCaughtError( IError_v1::eErrorSeverity severity, const char * fileName, uint32 lineNumber );
+
+ //!
+ //! Creates an error for unavailable version of an interface..
+ //! \param[in] severity a value of #IError_v1::eErrorSeverity type indicating the severity of an error.
+ //! \param[in] interfaceID a value of uint64 type representing the interfaceID of the interface.
+ //! \param[in] requestedVersion a value of uint32 type representing the version of the requested interface.
+ //! \param[in] fileName pointer to a constant null terminated char buffer containing fileName in which error
+ //! originated.
+ //! \param[in] lineNumber a value of #AdobeXMPCommon::uint32 type respresenting the lineNumber at which error
+ //! originated.
+ //! creates and returns appropriate error.
+ //!
+ static spIError_I CreateInterfaceVersionNotAvailableError( IError_v1::eErrorSeverity severity, uint64 interfaceID, uint32 requestedVersion, const char * fileName, uint32 lineNumber );
+
+ //!
+ //! Creates an error for unavailable interface.
+ //! \param[in] severity a value of #IError_v1::eErrorSeverity type indicating the severity of an error.
+ //! \param[in] interfaceID a value of uint64 type representing the interfaceID of the interface.
+ //! \param[in] requestedInterfaceID a value of uint64 type representing the interfaceID of the requested interface.
+ //! \param[in] fileName pointer to a constant null terminated char buffer containing fileName in which error
+ //! originated.
+ //! \param[in] lineNumber a value of #AdobeXMPCommon::uint32 type respresenting the lineNumber at which error
+ //! originated.
+ //! creates and returns appropriate error.
+ //!
+ static spIError_I CreateInterfaceNotAvailableError( IError_v1::eErrorSeverity severity, uint64 interfaceID, uint64 requestedInterfaceID, const char * fileName, uint32 lineNumber );
+
+ //!
+ //! Creates an error for client function throwing exception.
+ //! \param[in] severity a value of #IError_v1::eErrorSeverity type indicating the severity of an error.
+ //! \param[in] fileName pointer to a constant null terminated char buffer containing fileName in which error
+ //! originated.
+ //! \param[in] lineNumber a value of #AdobeXMPCommon::uint32 type respresenting the lineNumber at which error
+ //! originated.
+ //! creates and returns appropriate error.
+ //!
+ static spIError_I CreateClientCodeExceptionError( IError_v1::eErrorSeverity severity, const char * fileName, uint32 lineNumber );
+
+ protected:
+
+ //!
+ //! @{
+ //! wrapper functions - DLL across boundary safe functions.
+ //!
+ virtual uint32 APICALL getCode( pcIError_base & error ) const __NOTHROW__;
+ virtual uint32 APICALL getDomain( pcIError_base & error ) const __NOTHROW__;
+ virtual uint32 APICALL getSeverity( pcIError_base & error ) const __NOTHROW__;
+ virtual pcIUTF8String_base APICALL getMessage( pcIError_base & error ) const __NOTHROW__;
+ virtual pcIUTF8String_base APICALL getLocation( pcIError_base & error ) const __NOTHROW__;
+ virtual pcIUTF8String_base APICALL getParameter( sizet index, pcIError_base & error ) const __NOTHROW__;
+ virtual pIError_base APICALL getNextError( pcIError_base & error ) __NOTHROW__;
+ virtual pIError_base APICALL setNextError( pIError_base nextError, pcIError_base & error ) __NOTHROW__;
+ virtual pvoid APICALL getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__;
+ //! @}
+ //!
+
+ virtual pvoid APICALL GetInterfacePointerInternal( uint64 interfaceID, uint32 interfaceVersion, bool isTopLevel );
+
+ virtual ~IError_I() __NOTHROW__ {}
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+
+ uint32 ReportErrorAndContinueABISafe( uint32 errorDomain, uint32 errorCode, uint32 errorSeverity, const char * message, pcIError_base & error ) __NOTHROW__;
+}
+
+#endif // IError_I_h__
diff --git a/XMPCommon/Interfaces/IMemoryAllocator_I.h b/XMPCommon/Interfaces/IMemoryAllocator_I.h
new file mode 100644
index 0000000..77cdec0
--- /dev/null
+++ b/XMPCommon/Interfaces/IMemoryAllocator_I.h
@@ -0,0 +1,53 @@
+#ifndef IMemoryAllocator_I_h__
+#define IMemoryAllocator_I_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/XMPCommonFwdDeclarations_I.h"
+#include "XMPCommon/Interfaces/IMemoryAllocator.h"
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+
+ //!
+ //! \brief Internal interface that represents an interface to be implemented by client in case
+ //! he is interested in controlling the memory allocation and deallocation on the heap.
+ //! \details In case client is interested in controlling the memory allocation and deallocation on
+ //! the heap he can implement this interface and register the same with the
+ //! #AdobeXMPCommon::IConfigurationManager. For every request of memory allocation or deallocation on
+ //! the heap corresponding function will be called by the library.
+ //! \attention Support for Multi threading is under clients hand.
+ //!
+ class IMemoryAllocator_I
+ : public virtual IMemoryAllocator
+ {
+ public:
+
+ //!
+ //! Get the current error notifier.
+ //!
+ static pIMemoryAllocator GetMemoryAllocator() __NOTHROW__;
+
+ //!
+ //! Set the current error notifier.
+ //!
+ static pIMemoryAllocator SetMemoryAllocator( pIMemoryAllocator_base memoryAllocator ) __NOTHROW__;
+
+
+ protected:
+ ~IMemoryAllocator_I() {}
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ REQ_FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+}
+
+#endif // IMemoryAllocator_I_h__
diff --git a/XMPCommon/Interfaces/ISharedMutex.h b/XMPCommon/Interfaces/ISharedMutex.h
new file mode 100644
index 0000000..6543fba
--- /dev/null
+++ b/XMPCommon/Interfaces/ISharedMutex.h
@@ -0,0 +1,88 @@
+#ifndef ISharedMutex_h__
+#define ISharedMutex_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/XMPCommonFwdDeclarations_I.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/ISharedObject_I.h"
+#include "XMPCommon/XMPCommonErrorCodes_I.h"
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+
+ //!
+ //! Internal interface that represents a mutex object.
+ //! \details Provides all the functions to lock/unlock the mutex.
+ //!
+ class XMP_PUBLIC ISharedMutex
+ : public virtual ISharedObject
+ {
+ public:
+ //!
+ //! Locks the mutex in exclusive mode.
+ //! \return a value of type eMutexErrorCode indicating the status of operation.
+ //!
+ virtual eMultiThreadingErrorCode APICALL Lock() __NOTHROW__ = 0;
+
+ //!
+ //! Tries to lock the mutex in exclusive mode.
+ //! \return a value of type eMutexErrorCode indicating the status of operation.
+ //!
+ virtual eMultiThreadingErrorCode APICALL TryLock() __NOTHROW__ = 0;
+
+ //!
+ //! Unlocks the mutex in exclusive mode.
+ //! \return a value of type eMutexErrorCode indicating the status of operation.
+ //!
+ virtual eMultiThreadingErrorCode APICALL Unlock() __NOTHROW__ = 0;
+
+ //!
+ //! Locks the mutex in non exclusive mode.
+ //! \return a value of type eMutexErrorCode indicating the status of operation.
+ //!
+ virtual eMultiThreadingErrorCode APICALL LockShared() __NOTHROW__ = 0;
+
+ //!
+ //! Tries to lock the mutex in non exclusive mode.
+ //! \return a value of type eMutexErrorCode indicating the status of operation.
+ //!
+ virtual eMultiThreadingErrorCode APICALL TryLockShared() __NOTHROW__ = 0;
+
+ //!
+ //! Unlocks the mutex in non exclusive mode.
+ //! \return a value of type eMutexErrorCode indicating the status of operation.
+ //!
+ virtual eMultiThreadingErrorCode APICALL UnlockShared() __NOTHROW__ = 0;
+
+ // factory methods
+ //!
+ //! Creates a mutex.
+ //! \return a shared pointer to #ISharedMutex.
+ //!
+ static spISharedMutex CreateSharedMutex();
+
+ protected:
+ //!
+ //! Destructor
+ //!
+ virtual ~ISharedMutex() __NOTHROW__ {}
+
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ //! \endcond
+
+ };
+}
+
+#endif // ISharedMutex_h__
+
diff --git a/XMPCommon/Interfaces/IUTF8String_I.h b/XMPCommon/Interfaces/IUTF8String_I.h
new file mode 100644
index 0000000..ac5d456
--- /dev/null
+++ b/XMPCommon/Interfaces/IUTF8String_I.h
@@ -0,0 +1,115 @@
+#ifndef __IUTF8String_I_h__
+#define __IUTF8String_I_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/XMPCommonFwdDeclarations_I.h"
+#include "XMPCommon/Interfaces/IUTF8String.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/ISharedObject_I.h"
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+ //!
+ //! \brief Internal interface that represents an UTF8String.
+ //! \details Provides all the functions to access properties of the string object, append or assign content
+ //! to the existing string objects and create empty string object or clone existing string objects.
+ //!
+ class IUTF8String_I
+ : public virtual IUTF8String
+ , public virtual ISharedObject_I
+ {
+ public:
+
+ //!
+ //! return the version of the interface.
+ //! \return 32 bit unsigned integer representing the version of the interface.
+ //!
+ static uint32 GetInterfaceVersion() { return kInternalInterfaceVersionNumber; }
+
+ using IUTF8String_v1::assign;
+ using IUTF8String_v1::append;
+ using IUTF8String_v1::insert;
+ using IUTF8String_v1::erase;
+ using IUTF8String_v1::resize;
+ using IUTF8String_v1::replace;
+ using IUTF8String_v1::copy;
+ using IUTF8String_v1::find;
+ using IUTF8String_v1::rfind;
+ using IUTF8String_v1::compare;
+ using IUTF8String_v1::substr;
+ using IUTF8String_v1::empty;
+
+ virtual pIUTF8String APICALL GetActualIUTF8String() __NOTHROW__ { return this; }
+
+ virtual pIUTF8String_base APICALL assign( const char * buffer, sizet count, pcIError_base & error ) __NOTHROW__;
+ virtual pIUTF8String_base APICALL assign( pcIUTF8String_base str, sizet srcPos, sizet count, pcIError_base & error ) __NOTHROW__;
+ virtual pIUTF8String_base APICALL append( const char * buffer, sizet count, pcIError_base & error ) __NOTHROW__;
+ virtual pIUTF8String_base APICALL append( pcIUTF8String_base str, sizet srcPos, sizet count, pcIError_base & error ) __NOTHROW__;
+ virtual pIUTF8String_base APICALL insert( sizet pos, const char * buf, sizet count, pcIError_base & error ) __NOTHROW__;
+ virtual pIUTF8String_base APICALL insert( sizet pos, pcIUTF8String_base src, sizet srcPos, sizet count, pcIError_base & error ) __NOTHROW__;
+ virtual pIUTF8String_base APICALL erase( sizet pos, sizet count, pcIError_base & error ) __NOTHROW__;
+ virtual void APICALL resize( sizet n, pcIError_base & error ) __NOTHROW__;
+ virtual pIUTF8String_base APICALL replace( sizet pos, sizet count, const char * buf, sizet srcCount, pcIError_base & error ) __NOTHROW__;
+ virtual pIUTF8String_base APICALL replace( sizet pos, sizet count, pcIUTF8String_base src, sizet srcPos, sizet srcCount, pcIError_base & error ) __NOTHROW__;
+ virtual sizet APICALL copy( char * buf, sizet len, sizet pos, pcIError_base & error ) const __NOTHROW__;
+ virtual sizet APICALL find( const char * buf, sizet pos, sizet count, pcIError_base & error ) const __NOTHROW__;
+ virtual sizet APICALL find( pcIUTF8String_base src, sizet pos, sizet count, pcIError_base & error ) const __NOTHROW__;
+ virtual sizet APICALL rfind( const char * buf, sizet pos, sizet count, pcIError_base & error ) const __NOTHROW__;
+ virtual sizet APICALL rfind( pcIUTF8String_base src, sizet pos, sizet count, pcIError_base & error ) const __NOTHROW__;
+ virtual int32 APICALL compare( sizet pos, sizet len, const char * buf, sizet count, pcIError_base & error ) const __NOTHROW__;
+ virtual int32 APICALL compare( sizet pos, sizet len, pcIUTF8String_base str, sizet strPos, sizet strLen, pcIError_base & error ) const __NOTHROW__;
+ virtual pIUTF8String_base APICALL substr( sizet pos, sizet count, pcIError_base & error ) const __NOTHROW__;
+ virtual uint32 APICALL empty( pcIError_base & error ) const __NOTHROW__;
+
+ virtual pvoid APICALL GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion );
+
+ // static factory functions
+
+ //!
+ //! Creates an IUTF8String object whose initial contents are copied from a char buffer.
+ //! \param[in] buf pointer to a constant char buffer containing content. It can be null
+ //! terminated or not. NULL pointer will be treated as empty string.
+ //! \param[in] count a value of #AdobeXMPCommon::sizet indicating the length in case buf is not null
+ //! terminated. In case buf is null terminated it can be set to npos.
+ //! \return a shared pointer to a newly created #AdobeXMPCommon::IUTF8String object
+ //!
+ XMP_PRIVATE static spIUTF8String CreateUTF8String( const char * buf = NULL, sizet count = AdobeXMPCommon::npos );
+
+ protected:
+ virtual pvoid APICALL getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__;
+ pvoid APICALL GetInterfacePointerInternal( uint64 interfaceID, uint32 interfaceVersion, bool isTopLevel );
+
+ virtual ~IUTF8String_I() __NOTHROW__ {}
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+
+}
+
+#include "XMPCommon/Utilities/TAllocator.h"
+namespace XMP_COMPONENT_INT_NAMESPACE {
+ // typedefs for vectors and their corresponding shared pointers.
+ typedef std::vector< spIUTF8String, TAllocator< spIUTF8String > > mmIUTF8StringList;
+ typedef std::vector< spcIUTF8String, TAllocator< spcIUTF8String > > mmcIUTF8StringList;
+}
+
+#endif // __IUTF8String_I_h__
diff --git a/XMPCommon/Utilities/AutoSharedLock.h b/XMPCommon/Utilities/AutoSharedLock.h
new file mode 100644
index 0000000..d6e6b70
--- /dev/null
+++ b/XMPCommon/Utilities/AutoSharedLock.h
@@ -0,0 +1,29 @@
+#ifndef __AutoSharedLock_h__
+#define __AutoSharedLock_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/XMPCommonFwdDeclarations_I.h"
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+
+ class AutoSharedLock {
+ public:
+ AutoSharedLock( const spISharedMutex & mutex, bool exclusiveLock = false );
+ ~AutoSharedLock();
+ void Release();
+
+ private:
+ spISharedMutex mMutex;
+ bool mExclusiveLock;
+ };
+
+}
+#endif // __AutoSharedLock_h__
diff --git a/XMPCommon/Utilities/IUTF8StringComparator.h b/XMPCommon/Utilities/IUTF8StringComparator.h
new file mode 100644
index 0000000..67eff01
--- /dev/null
+++ b/XMPCommon/Utilities/IUTF8StringComparator.h
@@ -0,0 +1,23 @@
+#ifndef IUTF8StringComparator_h__
+#define IUTF8StringComparator_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/XMPCommonFwdDeclarations_I.h"
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+
+ struct IUTF8StringComparator {
+
+ bool operator() ( const spcIUTF8String & left, const spcIUTF8String & right ) const;
+ };
+}
+#endif // IUTF8StringComparator_h__
+
diff --git a/XMPCommon/Utilities/TAllocator.h b/XMPCommon/Utilities/TAllocator.h
new file mode 100644
index 0000000..b6216df
--- /dev/null
+++ b/XMPCommon/Utilities/TAllocator.h
@@ -0,0 +1,99 @@
+#ifndef __TAllocator_h__
+#define __TAllocator_h__ 1
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/XMPCommonDefines_I.h"
+#include "XMPCommon/Interfaces/IMemoryAllocator_I.h"
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+ using AdobeXMPCommon::sizet;
+
+ //! \cond NEVER_IN_DOCUMENTATION
+ // TEMPLATE CLASS _Allocator_base
+ template< typename _Ty >
+ struct _Allocator_base { // base class for generic allocators
+ typedef _Ty value_type;
+ };
+
+ // TEMPLATE CLASS _Allocator_base<const _Ty>
+ template<typename _Ty >
+ struct _Allocator_base< const _Ty > { // base class for generic allocators for const _Ty
+ typedef _Ty value_type;
+ };
+ //! \endcond
+
+ //!
+ //! \brief Templated class which implements all the functionality required by std::allocators.
+ //! \details It allows to use STL objects which are memory managed by library's allocator manager.
+ //!
+ template < typename Ty >
+ class TAllocator : public std::allocator< Ty > {
+
+ public:
+ TAllocator () {}
+ template <class U> TAllocator( const TAllocator<U>& ) {}
+
+ typedef _Allocator_base<Ty> Mybase;
+ typedef typename Mybase::value_type value_type;
+ typedef AdobeXMPCommon::sizet size_type;
+ typedef ptrdiff_t difference_type;
+
+ typedef value_type * pointer;
+ typedef const value_type * const_pointer;
+
+ typedef value_type & reference;
+ typedef const value_type & const_reference;
+
+ pointer address( reference r ) const { return &r; }
+ const_pointer address( const_reference r ) const { return &r; }
+
+ size_type max_size() const {
+ // impl stolen from windows default
+ size_type max_num = ( size_type )( -1 ) / sizeof( Ty );
+ return max_num > 0 ? max_num : 1;
+ }
+
+ void construct( pointer p, const Ty& val ) {
+ ::new(p) Ty(val);
+ }
+
+ void destroy( pointer p ) {
+ p->~Ty();
+ }
+
+ template< class U >
+ struct rebind {
+ typedef TAllocator< U > other;
+ };
+
+ pointer allocate( size_type size ) {
+ void * ptr;
+ ptr = IMemoryAllocator_I::GetMemoryAllocator()->allocate( size * sizeof ( value_type ) );
+ return (pointer) ptr;
+ }
+
+ void deallocate( void * p, size_type ) {
+ IMemoryAllocator_I::GetMemoryAllocator()->deallocate( p );
+ }
+ };
+
+ template< typename Ty > bool operator==( const TAllocator< Ty > &, const TAllocator< Ty > & ) {
+ return true; // any two TAllocator< T >'s are the same
+ }
+
+ template< typename Ty > bool operator!=( const TAllocator< Ty > &, const TAllocator< Ty > & ) {
+ return false; // any two TAllocator< T >'s are the same
+ }
+
+ extern TAllocator< spIUTF8String > gTAllocatorUTF8String;
+
+}
+
+#endif // __TAllocator_h__
diff --git a/XMPCommon/Utilities/TAtomicTypes.h b/XMPCommon/Utilities/TAtomicTypes.h
new file mode 100644
index 0000000..50a1d34
--- /dev/null
+++ b/XMPCommon/Utilities/TAtomicTypes.h
@@ -0,0 +1,127 @@
+#ifndef __TAtomicTypes_h__
+#define __TAtomicTypes_h__ 1
+
+// =================================================================================================
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved.
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+
+#include "XMPCommon/XMPCommonDefines.h"
+
+#if SUPPORT_STD_ATOMIC_IMPLEMENTATION
+ #include <atomic>
+
+ namespace AdobeXMPCommon {
+ typedef std::atomic_size_t atomic_sizet;
+ }
+#else
+
+ #if XMP_WinBuild
+ #include "XMPCommon/Utilities/TAtomicTypes_Win.h"
+ #elif XMP_MacBuild || XMP_iOSBuild
+ #include "XMPCommon/Utilities/TAtomicTypes_Mac.h"
+ #elif XMP_UNIXBuild
+ #include "XMPCommon/Utilities/TAtomicTypes_Linux.h"
+ #endif
+
+ #ifndef NOT_DEFINED_ATOMIC_SIZE_T
+ #define NOT_DEFINED_ATOMIC_SIZE_T 1
+ #endif
+
+#if NOT_DEFINED_ATOMIC_SIZE_T
+
+ namespace AdobeXMPCommon {
+
+ typedef enum memory_order {
+ memory_order_relaxed,
+ memory_order_consume,
+ memory_order_acquire,
+ memory_order_release,
+ memory_order_acq_rel,
+ memory_order_seq_cst
+ } memory_order;
+
+ class atomic_sizet {
+ public:
+ atomic_sizet() __NOTHROW__
+ : mValue( 0 ){ }
+
+ atomic_sizet( sizet _Val ) __NOTHROW__
+ : mValue( _Val ) { }
+
+ void store( sizet value, memory_order = memory_order_seq_cst ) volatile __NOTHROW__ {
+ AtomicWrite( this->mValue, value );
+ }
+ void store( sizet value, memory_order = memory_order_seq_cst ) __NOTHROW__ {
+ AtomicWrite( this->mValue, value );
+ }
+
+ sizet load( memory_order = memory_order_seq_cst ) const volatile __NOTHROW__ {
+ return AtomicRead( this->mValue );
+ }
+ sizet load( memory_order = memory_order_seq_cst ) const __NOTHROW__ {
+ return AtomicRead( this->mValue );
+ }
+
+ operator sizet() const volatile __NOTHROW__ {
+ return mValue;
+ }
+ operator sizet() const __NOTHROW__ {
+ return mValue;
+ }
+
+ sizet operator++( int ) volatile __NOTHROW__ {
+ sizet value = AtomicRead( this->mValue );
+ AtomicIncrement( this->mValue );
+ return value;
+ }
+ sizet operator++( int ) __NOTHROW__ {
+ sizet value = AtomicRead( this->mValue );
+ AtomicIncrement( this->mValue );
+ return value;
+ }
+
+ sizet operator--( int ) volatile __NOTHROW__ {
+ sizet value = AtomicRead( this->mValue );
+ AtomicDecrement( this->mValue );
+ return value;
+ }
+ sizet operator--( int ) __NOTHROW__ {
+ sizet value = AtomicRead( this->mValue );
+ AtomicDecrement( this->mValue );
+ return value;
+ }
+
+ sizet operator++() volatile __NOTHROW__ {
+ return AtomicIncrement( this->mValue );
+ }
+ sizet operator++() __NOTHROW__ {
+ return AtomicIncrement( this->mValue );
+ }
+
+ sizet operator--() volatile __NOTHROW__ {
+ return AtomicDecrement( this->mValue );
+ }
+ sizet operator--() __NOTHROW__ {
+ return AtomicDecrement( this->mValue );
+ }
+
+ private:
+ atomic_sizet( const atomic_sizet & ); // not defined
+ //atomic_sizet & operator=( const atomic_sizet & ); // not defined
+ //atomic_sizet & operator=( const atomic_sizet & ) volatile; // not defined
+
+ protected:
+ sizet mValue;
+ };
+}
+
+#endif // NOT_DEFINED_ATOMIC_SIZE_T
+
+#endif // SUPPORT_STD_ATOMIC_IMPLEMENTATION
+
+#endif // __TAtomicTypes_h__
diff --git a/XMPCommon/Utilities/TAtomicTypes_Linux.h b/XMPCommon/Utilities/TAtomicTypes_Linux.h
new file mode 100644
index 0000000..79cbf8d
--- /dev/null
+++ b/XMPCommon/Utilities/TAtomicTypes_Linux.h
@@ -0,0 +1,31 @@
+#ifndef __TAtomicTypes_Linux_h__
+#define __TAtomicTypes_Linux_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#if XMP_UNIXBuild
+
+#ifndef __TAtomicTypes_h__
+ #error "This file is supposed to be included from TAtomicTypes and not directly"
+#endif
+
+#if GCC_VERSION > 40400 && GCC_VERSION < 40899
+ #include <cstdatomic>
+
+ namespace AdobeXMPCommon {
+ typedef std::atomic_size_t atomic_sizet;
+ }
+
+ #define NOT_DEFINED_ATOMIC_SIZE_T 0
+#endif
+
+#endif // XMP_UNIXBuild
+
+#endif // __TAtomicTypes_Linux_h__
diff --git a/XMPCommon/Utilities/TAtomicTypes_Mac.h b/XMPCommon/Utilities/TAtomicTypes_Mac.h
new file mode 100644
index 0000000..4670715
--- /dev/null
+++ b/XMPCommon/Utilities/TAtomicTypes_Mac.h
@@ -0,0 +1,149 @@
+#ifndef __TAtomicTypes_Mac_h__
+#define __TAtomicTypes_Mac_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#if XMP_MacBuild || XMP_iOSBuild
+
+#ifndef __TAtomicTypes_h__
+#error "This file is supposed to be included from TAtomicTypes and not directly"
+#endif
+
+#include <libkern/OSAtomic.h>
+#include <sched.h>
+#include <assert.h>
+
+namespace AdobeXMPCommon {
+
+ /**
+ ** Atomically sets ioTarget to inNewValue if ioTarget == inCompare
+ ** returns true if succeeded
+ */
+ inline bool AtomicCompareAndSet( volatile int32 & ioTarget, int32 inCompare, int32 inNewValue ) {
+ return ::OSAtomicCompareAndSwap32Barrier( inCompare, inNewValue, const_cast< int32 * >( &ioTarget ) );
+ }
+
+ inline bool AtomicCompareAndSet( volatile uint32 & ioTarget, uint32 inCompare, uint32 inNewValue ) {
+ return ::OSAtomicCompareAndSwap32Barrier( static_cast< int32 >( inCompare ), static_cast< int32 >( inNewValue ),
+ const_cast< int32 * >( reinterpret_cast< volatile int32 * >( &ioTarget ) ) );
+ }
+
+ inline bool AtomicCompareAndSet( volatile int64 & ioTarget, int64 inCompare, int64 inNewValue ) {
+ return ::OSAtomicCompareAndSwap64Barrier( inCompare, inNewValue, const_cast< int64 * >( &ioTarget ) );
+ }
+
+ inline bool AtomicCompareAndSet( volatile uint64 & ioTarget, uint64 inCompare, uint64 inNewValue ) {
+ return ::OSAtomicCompareAndSwap64Barrier( static_cast< int64 >( inCompare ), static_cast< int64 >( inNewValue ),
+ const_cast< int64 * >( reinterpret_cast< volatile int64 * >( &ioTarget ) ) );
+ }
+
+ /**
+ ** Pointer CAS specialization - note that this needs to come before the
+ ** below specializations to be visible
+ */
+ template< typename T >
+ inline bool AtomicCompareAndSet( T * volatile & ioTarget, T * inCompare, T * inNewValue ) {
+ assert( sizeof( T * ) == sizeof( sizet ) );
+ return AtomicCompareAndSet( reinterpret_cast< sizet volatile & >( ioTarget ),
+ reinterpret_cast< sizet >( inCompare ), reinterpret_cast< sizet >( inNewValue ) );
+ }
+
+ /**
+ ** Preform a non-atomic read of the value ensuring the compiler does not
+ ** optimize out the read. Typically only safe for later compare and set.
+ */
+ template< typename AtomicType >
+ inline AtomicType VolatileRead( const volatile AtomicType & inTarget ) {
+ return inTarget;
+ }
+
+ /**
+ ** A read with an acquire memory barrier after the read.
+ */
+ template< typename AtomicType >
+ inline AtomicType AtomicRead( const volatile AtomicType & inTarget ) {
+ AtomicType result;
+ for ( ; ; ) {
+ result = VolatileRead( inTarget );
+ if ( AtomicCompareAndSet( const_cast< volatile AtomicType & >( inTarget ), result, result ) ) {
+ break;
+ }
+ }
+ return result;
+ }
+
+ /**
+ ** Atomically sets a new value
+ */
+ template< typename AtomicType, typename ValueType >
+ inline ValueType AtomicWrite( volatile AtomicType & ioTarget, ValueType inNewValue ) {
+ ValueType result;
+ for ( ; ; ) {
+ result = static_cast< ValueType >( VolatileRead( ioTarget ) );
+ if ( AtomicCompareAndSet( ioTarget, result, inNewValue ) ) {
+ break;
+ }
+ }
+ return result;
+ }
+
+ inline uint32 AtomicAdd( volatile uint32 & ref, uint32 value ) {
+ return ::OSAtomicAdd32( static_cast< int32 >( value ), reinterpret_cast< volatile int32 * >( &ref ) );
+ }
+
+ inline uint64 AtomicAdd( volatile uint64 & ref, uint64 value ) {
+ return ::OSAtomicAdd64( static_cast< int64 >( value ), reinterpret_cast< volatile int64 * >( &ref ) );
+ }
+
+ inline int32 AtomicAdd( volatile int32 & ref, int32 value ) {
+ return ::OSAtomicAdd32( value, &ref );
+ }
+
+ inline int64 AtomicAdd( volatile int64 & ref, int64 value ) {
+ return ::OSAtomicAdd64( value, &ref );
+ }
+
+ inline uint32 AtomicIncrement( volatile uint32 & ref ) {
+ return ::OSAtomicIncrement32( reinterpret_cast< volatile int32 * >( &ref ) );
+ }
+
+ inline uint64 AtomicIncrement( volatile uint64 & ref ) {
+ return ::OSAtomicIncrement64( reinterpret_cast< volatile int64 * >( &ref ) );
+ }
+
+ inline int32 AtomicIncrement( volatile int32 & ref ) {
+ return ::OSAtomicIncrement32( &ref );
+ }
+
+ inline int64 AtomicIncrement( volatile int64 & ref ) {
+ return ::OSAtomicIncrement64( &ref );
+ }
+
+ inline uint32 AtomicDecrement( volatile uint32 & ref ) {
+ return ::OSAtomicDecrement32( reinterpret_cast< volatile int32 * >( &ref ) );
+ }
+
+ inline uint64 AtomicDecrement( volatile uint64 & ref ) {
+ return ::OSAtomicDecrement64( reinterpret_cast< volatile int64 * >( &ref ) );
+ }
+
+ inline int32 AtomicDecrement( volatile int32 & ref ) {
+ return ::OSAtomicDecrement32( &ref );
+ }
+
+ inline int64 AtomicDecrement( volatile int64 & ref ) {
+ return ::OSAtomicDecrement64( &ref );
+ }
+
+}
+
+#endif
+
+#endif // __TAtomicTypes_Mac_h__ \ No newline at end of file
diff --git a/XMPCommon/Utilities/TAtomicTypes_Win.h b/XMPCommon/Utilities/TAtomicTypes_Win.h
new file mode 100644
index 0000000..c22703a
--- /dev/null
+++ b/XMPCommon/Utilities/TAtomicTypes_Win.h
@@ -0,0 +1,107 @@
+#ifndef __TAtomicTypes_Win_h__
+#define __TAtomicTypes_Win_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#if XMP_WinBuild
+
+#ifndef __TAtomicTypes_h__
+ #error "This file is supposed to be included from TAtomicTypes and not directly"
+#endif
+
+#include <Windows.h>
+
+namespace AdobeXMPCommon {
+
+ inline int32 AtomicRead( const volatile int32 & ref ) {
+ return InterlockedCompareExchange( const_cast< volatile int32 * >( &ref ), 0, 0 );
+ }
+
+ inline uint32 AtomicRead( const volatile uint32 & ref ) {
+ return InterlockedCompareExchange( const_cast< volatile uint32 *> ( &ref ), 0 , 0 );
+ }
+
+ inline int64 AtomicRead( const volatile int64 & ref ) {
+ return InterlockedCompareExchange64( const_cast< volatile int64 * >( &ref ), 0, 0 );
+ }
+
+ inline uint64 AtomicRead( const volatile uint64 & ref ) {
+ return InterlockedCompareExchange( const_cast< volatile uint64 *> ( &ref ), 0 , 0 );
+ }
+
+ inline int32 AtomicWrite( volatile int32 & ref, int32 value ) {
+ return InterlockedExchange( &ref, value );
+ }
+
+ inline uint32 AtomicWrite( volatile uint32 & ref, uint32 value ) {
+ return InterlockedExchange( &ref, value );
+ }
+
+ inline int64 AtomicWrite( volatile int64 & ref, int32 value ) {
+ return InterlockedExchange64( &ref, value );
+ }
+
+ inline uint64 AtomicWrite( volatile uint64 & ref, uint64 value ) {
+ return InterlockedExchange( &ref, value );
+ }
+
+ inline uint32 AtomicAdd( volatile uint32 & ref, uint32 value ) {
+ return InterlockedExchangeAdd( &ref, value );
+ }
+
+ inline uint64 AtomicAdd( volatile uint64 & ref, uint64 value ) {
+ return InterlockedExchangeAdd( &ref, value );
+ }
+
+ inline int32 AtomicAdd( volatile int32 & ref, int32 value ) {
+ return InterlockedExchangeAdd( &ref, value );
+ }
+
+ inline int64 AtomicAdd( volatile int64 & ref, int64 value ) {
+ return InterlockedExchangeAdd64( &ref, value );
+ }
+
+ inline uint32 AtomicIncrement( volatile uint32 & ref ) {
+ return InterlockedIncrement( &ref );
+ }
+
+ inline uint64 AtomicIncrement( volatile uint64 & ref ) {
+ return InterlockedIncrement( &ref );
+ }
+
+ inline int32 AtomicIncrement( volatile int32 & ref ) {
+ return InterlockedIncrement( &ref );
+ }
+
+ inline int64 AtomicIncrement( volatile int64 & ref ) {
+ return InterlockedIncrement64( &ref );
+ }
+
+ inline uint32 AtomicDecrement( volatile uint32 & ref ) {
+ return InterlockedDecrement( &ref );
+ }
+
+ inline uint64 AtomicDecrement( volatile uint64 & ref ) {
+ return InterlockedDecrement( &ref );
+ }
+
+ inline int32 AtomicDecrement( volatile int32 & ref ) {
+ return InterlockedDecrement( &ref );
+ }
+
+ inline int64 AtomicDecrement( volatile int64 & ref ) {
+ return InterlockedDecrement64( &ref );
+ }
+
+}
+
+#endif
+
+#endif // __TAtomicTypes_Win_h__ \ No newline at end of file
diff --git a/XMPCommon/Utilities/TSmartPointers_I.h b/XMPCommon/Utilities/TSmartPointers_I.h
new file mode 100644
index 0000000..faf78f4
--- /dev/null
+++ b/XMPCommon/Utilities/TSmartPointers_I.h
@@ -0,0 +1,81 @@
+#ifndef __TSmartPointers_I_h__
+#define __TSmartPointers_I_h__ 1
+
+// =================================================================================================
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved.
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/XMPCommonDefines_I.h"
+#include "XMPCommon/Utilities/TAllocator.h"
+#include "XMPCommon/Interfaces/IError_I.h"
+#include "XMPCommon/XMPCommonErrorCodes_I.h"
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+
+ //!
+ //! Template function to create a shared pointer of the same type from the raw pointer of an object implementing
+ //! #AdobeXMPCommon::ISharedObject interface.
+ //! \param[in] ptr ptr of template type Ty.
+ //! \param[in] fileName pointer to a constant null terminated char buffer containing fileName in which error
+ //! originated.
+ //! \param[in] lineNumber a value of #AdobeXMPCommon::uint32 type respresenting the lineNumber at which error
+ //! originated.
+ //! \param[in] throwErrorOnNullPointer a boolean value indicating whether to treat NULL pointer as an error
+ //! condition. Default is false.
+ //! \return a shared pointer of object type Ty.
+ //! \attention throws a pointer in case
+ //! - throwErrorOnNullPointer is true and ptr is NULL.
+ //!
+ template< typename Ty >
+ shared_ptr< Ty > MakeUncheckedSharedPointer( Ty * ptr, const char * fileName, sizet lineNumber, bool throwErrorOnNullPointer = false ) {
+ if ( throwErrorOnNullPointer && ptr == NULL ) {
+ auto err = IError_I::CreateError( IError_v1::kEDGeneral, kGECInternalFailure, IError_v1::kESOperationFatal );
+ err->SetLocation( fileName, lineNumber );
+ err->SetMessage( "NULL pointer provided for creating shared pointer" );
+ throw err;
+ }
+ ptr->Acquire();
+#if SUPPORT_SHARED_POINTERS_WITH_ALLOCATORS
+ return shared_ptr< Ty >( ptr, mem_fn(&Ty::Release), TAllocator< Ty >() );
+#else
+ return shared_ptr< Ty >( ptr, mem_fn(&Ty::Release) );
+#endif
+ }
+
+ //!
+ //! Template function to create a shared pointer of the same type from the raw pointer of a class not
+ //! inheriting from #AdobeXMPCommon::ISharedObject.
+ //! \param[in] ptr ptr of template type Ty.
+ //! \param[in] fileName pointer to a constant null terminated char buffer containing fileName in which error
+ //! originated.
+ //! \param[in] lineNumber a value of #AdobeXMPCommon::uint32 type respresenting the lineNumber at which error
+ //! originated.
+ //! \param[in] throwErrorOnNullPointer a boolean value indicating whether to treat NULL pointer as an error
+ //! condition. Default is false.
+ //! \return a shared pointer of object type Ty.
+ //! \attention throws a pointer in case
+ //! - throwErrorOnNullPointer is true and ptr is NULL.
+ //!
+ template< typename Ty >
+ shared_ptr< Ty > MakeUncheckedSharedPointerWithDefaultDelete( Ty * ptr, const char * fileName, sizet lineNumber, bool throwErrorOnNullPointer = false ) {
+ if ( throwErrorOnNullPointer && ptr == NULL ) {
+ auto err = IError_I::CreateError( IError_v1::kEDGeneral, kGECInternalFailure, IError_v1::kESOperationFatal );
+ err->SetLocation( fileName, lineNumber );
+ err->SetMessage( "NULL pointer provided for creating shared pointer" );
+ spcIError cError = err;
+ throw cError;
+ }
+#if SUPPORT_SHARED_POINTERS_WITH_ALLOCATORS
+ return shared_ptr< Ty >( ptr, default_delete< Ty >(), TAllocator< Ty >() );
+#else
+ return shared_ptr< Ty >( ptr, default_delete< Ty >() );
+#endif
+ }
+
+}
+
+#endif // __TSmartPointers_I_h__
diff --git a/XMPCommon/Utilities/TWrapperFunctions2_I.h b/XMPCommon/Utilities/TWrapperFunctions2_I.h
new file mode 100644
index 0000000..2603062
--- /dev/null
+++ b/XMPCommon/Utilities/TWrapperFunctions2_I.h
@@ -0,0 +1,224 @@
+#ifndef TWrapperFunctions2_I_h__
+#define TWrapperFunctions2_I_h__ 1
+
+#include "XMPCommon/XMPCommonDefines_I.h"
+
+#if XMP_UNIXBuild
+#include "XMPCommon/XMPCommonDefines_I.h"
+#include "XMPCommon/Interfaces/IError_I.h"
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+ using namespace AdobeXMPCommon;
+ using namespace AdobeXMPCommon_Int;
+
+
+
+ //!
+ //! template functions taking care of all the functions where return types of safe and unsafe functions
+ //! are void and number of arguments for public unsafe function is 3.
+ //! \details It calls the underlying unsafe function and catches all kinds of exceptions and report back them
+ //! through a pointer.
+ //! \param[in] error a reference to a pointer to a constant to const #NS_XMPCOMMON::IError_base object.
+ //! \param[in] ptr non const pointer to an object of className itself ( most probably this pointer ).
+ //! \param[in] Func function pointer to non const member function of className accepting values of
+ //! type arg1Type, arg2Type and arg3Type and returning void.
+ //! \param[in] arg1Value a value of type arg1Type.
+ //! \param[in] arg2Value a value of type arg2Type.
+ //! \param[in] arg3Value a value of type arg3Type.
+ //! \note These take care of non const functions.
+ //!
+ template < typename className, typename arg1Type, typename arg2Type, typename arg3Type >
+ void CallUnSafeFunctionReturningVoid( pcIError_base & error, className * ptr,
+ void (className::*Func)( arg1Type, arg2Type, arg3Type ), const char * fileName, uint32 lineNumber, arg1Type arg1Value, arg2Type arg2Value, arg3Type arg3Value ) {
+
+ error = NULL;
+ try {
+ (ptr->*Func)( arg1Value, arg2Value, arg3Value );
+ } catch ( spcIError err ) {
+ error = err->GetActualIError();
+ error->GetISharedObject_I()->AcquireInternal();
+ } catch ( ... ) {
+ pIError_I err = IError_I::CreateUnknownExceptionCaughtError( IError_v1::kESOperationFatal, fileName, lineNumber ).get();
+ err->AcquireInternal();
+ error = err;
+ }
+ }
+
+ template < typename className, typename returnType, typename internalReturnType, typename arg1Type, typename arg2Type >
+ returnType CallUnSafeFunction( pcIError_base & error, className * ptr, returnType dRV,
+ internalReturnType (className::*Func)( arg1Type, arg2Type ), const char * fileName, uint32 lineNumber , arg1Type arg1Value, arg2Type arg2Value )
+ {
+ error = NULL;
+ try {
+ internalReturnType returnValue = (ptr->*Func)( arg1Value, arg2Value );
+
+ #if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4800 )
+ #endif
+ return static_cast< returnType >( returnValue );
+ #if XMP_WinBuild
+ #pragma warning( pop )
+ #endif
+ } catch ( spcIError err ) {
+ error = err->GetActualIError();
+ error->GetISharedObject_I()->AcquireInternal();
+ } catch ( ... ) {
+ pIError_I err = IError_I::CreateUnknownExceptionCaughtError( IError_v1::kESOperationFatal, fileName, lineNumber ).get();
+ err->AcquireInternal();
+ error = err;
+ }
+ return dRV;
+ }
+
+ template < typename className, typename returnType, typename internalReturnType, typename arg1Type, typename arg2Type, typename arg3Type >
+ returnType CallConstUnSafeFunction( pcIError_base & error, const className * const ptr, returnType dRV,
+ internalReturnType (className::*Func)( arg1Type, arg2Type, arg3Type ) const, const char * fileName, uint32 lineNumber, arg1Type arg1Value, arg2Type arg2Value, arg3Type arg3Value )
+ {
+ error = NULL;
+ try {
+ internalReturnType returnValue = (ptr->*Func)( arg1Value, arg2Value, arg3Value );
+ #if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4800 )
+ #endif
+ return static_cast< returnType >( returnValue );
+ #if XMP_WinBuild
+ #pragma warning( pop )
+ #endif
+ } catch ( spcIError err ) {
+ error = err->GetActualIError();
+ error->GetISharedObject_I()->AcquireInternal();
+ } catch ( ... ) {
+ pIError_I err = IError_I::CreateUnknownExceptionCaughtError( IError_v1::kESOperationFatal, fileName, lineNumber ).get();
+ err->AcquireInternal();
+ error = err;
+ }
+ return dRV;
+ }
+
+
+//!
+ //! template functions taking care of all the functions where return types of safe and unsafe functions
+ //! are raw pointers and shared pointers respectively and number of arguments for public unsafe function is 3.
+ //! \details It calls the underlying unsafe function and catches all kinds of exceptions and report back them
+ //! through a pointer.
+ //! \param[in] error a reference to a pointer to a constant to const #NS_XMPCOMMON::IError_base object.
+ //! \param[in] ptr a pointer to an object of className itself ( most probably this pointer ).
+ //! \param[in] Func function pointer to non const member function of className accepting values of
+ //! type arg1Type ,arg2Type and arg3Type and returning shared pointer of type sharedPointerType.
+ //! \param[in] arg1Value a value of type arg1Type.
+ //! \param[in] arg2Value a value of type arg2Type.
+ //! \param[in] arg3Value a value of type arg3Type.
+ //! \note These take care of non const functions.
+ //!
+ template < typename className, typename returnType, typename sharedPointerType, typename arg1Type, typename arg2Type, typename arg3Type >
+ returnType CallUnSafeFunctionReturningSharedPointer( pcIError_base & error, className * ptr,
+ shared_ptr< sharedPointerType > (className::*Func)( arg1Type, arg2Type, arg3Type ), const char * fileName, uint32 lineNumber,arg1Type arg1Value, arg2Type arg2Value, arg3Type arg3Value )
+ {
+ error = NULL;
+ try {
+ shared_ptr< sharedPointerType > returnValue = (ptr->*Func)( arg1Value, arg2Value, arg3Value );
+ if ( returnValue ) {
+ returnValue->GetISharedObject_I()->AcquireInternal();
+ return returnValue->template GetInterfacePointer< sharedPointerType >();
+ }
+ return NULL;
+ //return returnValue.get();
+ } catch ( spcIError err ) {
+ error = err->GetActualIError();
+ error->GetISharedObject_I()->AcquireInternal();
+ } catch ( ... ) {
+ pIError_I err = IError_I::CreateUnknownExceptionCaughtError( IError_v1::kESOperationFatal, fileName, lineNumber ).get();
+ err->AcquireInternal();
+ error = err;
+ }
+ return NULL;
+ }
+
+ //!
+ //! template functions taking care of all the functions where return types of safe and unsafe functions
+ //! are raw pointers and shared pointers respectively and number of arguments for public unsafe function is 4.
+ //! \details It calls the underlying unsafe function and catches all kinds of exceptions and report back them
+ //! through a pointer.
+ //! \param[in] error a reference to a pointer to a constant to const #NS_XMPCOMMON::IError_base object.
+ //! \param[in] ptr a pointer to an object of className itself ( most probably this pointer ).
+ //! \param[in] Func function pointer to non const member function of className accepting values of
+ //! type arg1Type, arg2Type, arg3Type and arg4Type and returning shared pointer of type sharedPointerType.
+ //! \param[in] arg1Value a value of type arg1Type.
+ //! \param[in] arg2Value a value of type arg2Type.
+ //! \param[in] arg3Value a value of type arg3Type.
+ //! \param[in] arg4Value a value of type arg4Type.
+ //! \note These take care of non const functions.
+ //!
+ template < typename className, typename returnType, typename sharedPointerType, typename arg1Type, typename arg2Type,
+ typename arg3Type, typename arg4Type >
+ returnType CallUnSafeFunctionReturningSharedPointer( pcIError_base & error, className * ptr,
+ shared_ptr< sharedPointerType > (className::*Func)( arg1Type, arg2Type, arg3Type, arg4Type ), const char * fileName, uint32 lineNumber, arg1Type arg1Value, arg2Type arg2Value, arg3Type arg3Value, arg4Type arg4Value )
+ {
+ error = NULL;
+ try {
+ shared_ptr< sharedPointerType > returnValue = (ptr->*Func)( arg1Value, arg2Value, arg3Value, arg4Value );
+ if ( returnValue ) {
+ returnValue->GetISharedObject_I()->AcquireInternal();
+ return returnValue->template GetInterfacePointer< sharedPointerType >();
+ }
+ return NULL;
+ //return returnValue.get();
+ } catch ( spcIError err ) {
+ error = err->GetActualIError();
+ error->GetISharedObject_I()->AcquireInternal();
+ } catch ( ... ) {
+ pIError_I err = IError_I::CreateUnknownExceptionCaughtError( IError_v1::kESOperationFatal, fileName, lineNumber ).get();
+ err->AcquireInternal();
+ error = err;
+ }
+ return NULL;
+ }
+
+ //!
+ //! template functions taking care of all the functions where return types of safe and unsafe functions
+ //! are raw pointers and shared pointers respectively and number of arguments for public unsafe function is 4.
+ //! \details It calls the underlying unsafe function and catches all kinds of exceptions and report back them
+ //! through a pointer.
+ //! \param[in] error a reference to a pointer to a constant to const #NS_XMPCOMMON::IError_base object.
+ //! \param[in] ptr a pointer to an object of className itself ( most probably this pointer ).
+ //! \param[in] Func function pointer to non const member function of className accepting values of
+ //! type arg1Type, arg2Type, arg3Type and arg4Type and returning shared pointer of type sharedPointerType.
+ //! \param[in] arg1Value a value of type arg1Type.
+ //! \param[in] arg2Value a value of type arg2Type.
+ //! \param[in] arg3Value a value of type arg3Type.
+ //! \param[in] arg4Value a value of type arg4Type.
+ //! \param[in] arg4Value a value of type arg5Type.
+ //! \note These take care of non const functions.
+ //!
+ template < typename className, typename returnType, typename sharedPointerType, typename arg1Type, typename arg2Type,
+ typename arg3Type, typename arg4Type, typename arg5Type >
+ returnType CallUnSafeFunctionReturningSharedPointer(pcIError_base & error, className * ptr,
+ shared_ptr< sharedPointerType >(className::*Func)(arg1Type, arg2Type, arg3Type, arg4Type, arg5Type), const char * fileName, uint32 lineNumber, arg1Type arg1Value, arg2Type arg2Value, arg3Type arg3Value, arg4Type arg4Value, arg5Type arg5Value)
+ {
+ error = NULL;
+ try {
+ shared_ptr< sharedPointerType > returnValue = (ptr->*Func)(arg1Value, arg2Value, arg3Value, arg4Value, arg5Value);
+ if (returnValue) {
+ returnValue->GetISharedObject_I()->AcquireInternal();
+ return returnValue->template GetInterfacePointer< sharedPointerType >();
+ }
+ return NULL;
+ //return returnValue.get();
+ }catch ( spcIError err ) {
+ error = err->GetActualIError();
+ error->GetISharedObject_I()->AcquireInternal();
+ } catch ( ... ) {
+ pIError_I err = IError_I::CreateUnknownExceptionCaughtError( IError_v1::kESOperationFatal, fileName, lineNumber ).get();
+ err->AcquireInternal();
+ error = err;
+ }
+ return NULL;
+ }
+
+
+}
+
+#endif
+#endif // TWrapperFunctions2_I_h__
diff --git a/XMPCommon/Utilities/TWrapperFunctions_I.h b/XMPCommon/Utilities/TWrapperFunctions_I.h
new file mode 100644
index 0000000..3b27d74
--- /dev/null
+++ b/XMPCommon/Utilities/TWrapperFunctions_I.h
@@ -0,0 +1,426 @@
+#ifndef TWrapperFunctions_I_h__
+#define TWrapperFunctions_I_h__ 1
+
+#include "XMPCommon/XMPCommonDefines_I.h"
+#include "XMPCommon/Interfaces/IError_I.h"
+#include "XMPCommon/Utilities/TWrapperFunctions2_I.h"
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+ using namespace AdobeXMPCommon;
+ using namespace AdobeXMPCommon_Int;
+ //!
+ //! @{
+ //! template functions taking care of all the functions where return types of safe and unsafe functions
+ //! are void.
+ //! \details It calls the underlying unsafe function and catches all kinds of exceptions and report back them
+ //! through a pointer.
+ //! \param[in] error a reference to a pointer to a constant to const #AdobeXMPCommon::IError_base object.
+ //! \param[in] ptr non const pointer to an object of className itself ( most probably this pointer ).
+ //! \param[in] Func function pointer to non const member function of className accepting 0 or more variables
+ //! and returning void.
+ //! \param[in] Vs n number of variables of varying/same type.
+ //! \param[in] fileName a null terminated array of characters containing file name.
+ //! \param[in] lineNumber an unsigned 32 bit number containing the line number.
+ //! \note These take care of non const functions.
+ //!
+ template < typename className >
+ void CallUnSafeFunctionReturningVoid( pcIError_base & error, className * ptr,
+ void ( APICALL className::*Func )(), const char * fileName, uint32 lineNumber )
+ {
+ error = NULL;
+ try {
+ (ptr->*Func)();
+ } catch ( spcIError err ) {
+ error = err->GetActualIError();
+ error->GetISharedObject_I()->AcquireInternal();
+ } catch ( ... ) {
+ pIError_I err = IError_I::CreateUnknownExceptionCaughtError( IError_v1::kESOperationFatal, fileName, lineNumber ).get();
+ err->AcquireInternal();
+ error = err;
+ }
+ }
+
+ template < typename className, typename ... Ts >
+ void CallUnSafeFunctionReturningVoid( pcIError_base & error, className * ptr,
+ void ( APICALL className::*Func )( Ts ... ), const char * fileName, uint32 lineNumber, Ts ... Vs )
+ {
+ error = NULL;
+ try {
+ ( ptr->*Func )( Vs ... );
+ } catch ( spcIError err ) {
+ error = err->GetActualIError();
+ error->GetISharedObject_I()->AcquireInternal();
+ } catch ( ... ) {
+ pIError_I err = IError_I::CreateUnknownExceptionCaughtError( IError_v1::kESOperationFatal, fileName, lineNumber ).get();
+ err->AcquireInternal();
+ error = err;
+ }
+ }
+
+ //!
+ //! @{
+ //! template functions taking care of all the functions where return types of safe and unsafe functions
+ //! are void.
+ //! \details It calls the underlying unsafe function and catches all kinds of exceptions and report back them
+ //! through a pointer.
+ //! \param[in] error a reference to a pointer to a constant to const #AdobeXMPCommon::IError_base object.
+ //! \param[in] ptr a const pointer to an object of className itself ( most probably this pointer ).
+ //! \param[in] Func function pointer to const member function of className accepting 0 or more variables
+ //! and returning void.
+ //! \param[in] Vs n number of variables of varying/same type.
+ //! \param[in] fileName a null terminated array of characters containing file name.
+ //! \param[in] lineNumber an unsigned 32 bit number containing the line number.
+ //! \note These take care of const functions.
+ //!
+ template < typename className >
+ void CallConstUnSafeFunctionReturningVoid( pcIError_base & error, const className * const ptr,
+ void ( APICALL className::*Func )() const, const char * fileName, uint32 lineNumber )
+ {
+ error = NULL;
+ try {
+ (ptr->*Func)();
+ } catch ( spcIError err ) {
+ error = err->GetActualIError();
+ error->GetISharedObject_I()->AcquireInternal();
+ } catch ( ... ) {
+ pIError_I err = IError_I::CreateUnknownExceptionCaughtError( IError_v1::kESOperationFatal, fileName, lineNumber ).get();
+ err->AcquireInternal();
+ error = err;
+ }
+ }
+
+ template < typename className, typename ... Ts >
+ void CallConstUnSafeFunctionReturningVoid( pcIError_base & error, const className * const ptr,
+ void ( APICALL className::*Func )( Ts ... ) const, const char * fileName, uint32 lineNumber, Ts ... Vs )
+ {
+ error = NULL;
+ try {
+ ( ptr->*Func )( Vs ... );
+ } catch ( spcIError err ) {
+ error = err->GetActualIError();
+ error->GetISharedObject_I()->AcquireInternal();
+ } catch ( ... ) {
+ pIError_I err = IError_I::CreateUnknownExceptionCaughtError( IError_v1::kESOperationFatal, fileName, lineNumber ).get();
+ err->AcquireInternal();
+ error = err;
+ }
+ }
+ //!
+ //! @}
+
+ //!
+ //! @{
+ //! template functions taking care of all the functions where return types of safe and unsafe functions
+ //! are nor void type neither shared pointers.
+ //! \details It calls the underlying unsafe function and catches all kinds of exceptions and report back them
+ //! through a pointer.
+ //! \param[in] error a reference to a pointer to a constant to const #AdobeXMPCommon::IError_base object.
+ //! \param[in] ptr non const pointer to an object of className itself ( most probably this pointer ).
+ //! \param[in] dRV default value to return from the function in case of any error.
+ //! \param[in] Func function pointer to non const member function of className accepting 0 or more variables
+ //! and returning internalReturnType.
+ //! \param[in] Vs n number of variables of varying/same type.
+ //! \param[in] fileName a null terminated array of characters containing file name.
+ //! \param[in] lineNumber an unsigned 32 bit number containing the line number.
+ //! \return a value of returnType.
+ //! \note These take care of non const functions.
+ //!
+ template < typename className, typename returnType, typename internalReturnType >
+ returnType CallUnSafeFunction( pcIError_base & error, className * ptr, returnType dRV,
+ internalReturnType( APICALL className::*Func )( ), const char * fileName, uint32 lineNumber )
+ {
+ error = NULL;
+ try {
+ internalReturnType returnValue = (ptr->*Func)();
+ #if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4800 )
+ #endif
+ return static_cast< returnType >( returnValue );
+ #if XMP_WinBuild
+ #pragma warning( pop )
+ #endif
+ } catch ( spcIError err ) {
+ error = err->GetActualIError();
+ error->GetISharedObject_I()->AcquireInternal();
+ } catch ( ... ) {
+ pIError_I err = IError_I::CreateUnknownExceptionCaughtError( IError_v1::kESOperationFatal, fileName, lineNumber ).get();
+ err->AcquireInternal();
+ error = err;
+ }
+ return dRV;
+ }
+
+ template < typename className, typename returnType, typename internalReturnType, typename ... Ts >
+ returnType CallUnSafeFunction( pcIError_base & error, className * ptr, returnType dRV,
+ internalReturnType ( APICALL className::*Func )( Ts ... ), const char * fileName, uint32 lineNumber, Ts ... Vs )
+ {
+ error = NULL;
+ try {
+ internalReturnType returnValue = (ptr->*Func)( Vs ... );
+ #if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4800 )
+ #endif
+ return static_cast< returnType >( returnValue );
+ #if XMP_WinBuild
+ #pragma warning( pop )
+ #endif
+ } catch ( spcIError err ) {
+ error = err->GetActualIError();
+ error->GetISharedObject_I()->AcquireInternal();
+ } catch ( ... ) {
+ pIError_I err = IError_I::CreateUnknownExceptionCaughtError( IError_v1::kESOperationFatal, fileName, lineNumber ).get();
+ err->AcquireInternal();
+ error = err;
+ }
+ return dRV;
+ }
+
+ //!
+ //! @}
+
+ //!
+ //! @{
+ //! template functions taking care of all the functions where return types of safe and unsafe functions
+ //! are nor void type neither shared pointers.
+ //! \details It calls the underlying unsafe function and catches all kinds of exceptions and report back them
+ //! through a pointer.
+ //! \param[in] error a reference to a pointer to a constant to const #AdobeXMPCommon::IError_base object.
+ //! \param[in] ptr a const pointer to an object of className itself ( most probably this pointer ).
+ //! \param[in] dRV default value to return from the function in case of any error.
+ //! \param[in] Func function pointer to a const member function of className accepting 0 or more variables
+ //! and returning internalReturnType.
+ //! \param[in] Vs n number of variables of varying/same type.
+ //! \param[in] fileName a null terminated array of characters containing file name.
+ //! \param[in] lineNumber an unsigned 32 bit number containing the line number.
+ //! \return a value of returnType.
+ //! \note These take care of const functions.
+ //!
+ template < typename className, typename returnType, typename internalReturnType >
+ returnType CallConstUnSafeFunction( pcIError_base & error, const className * ptr, returnType dRV,
+ internalReturnType( APICALL className::*Func )( ) const, const char * fileName, uint32 lineNumber )
+ {
+ error = NULL;
+ try {
+ internalReturnType returnValue = (ptr->*Func)();
+ #if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4800 )
+ #endif
+ return static_cast< returnType >( returnValue );
+ #if XMP_WinBuild
+ #pragma warning( pop )
+ #endif
+ } catch ( spcIError err ) {
+ error = err->GetActualIError();
+ error->GetISharedObject_I()->AcquireInternal();
+ } catch ( ... ) {
+ pIError_I err = IError_I::CreateUnknownExceptionCaughtError( IError_v1::kESOperationFatal, fileName, lineNumber ).get();
+ err->AcquireInternal();
+ error = err;
+ }
+ return dRV;
+ }
+
+ template < typename className, typename returnType, typename internalReturnType, typename ... Ts >
+ returnType CallConstUnSafeFunction( pcIError_base & error, const className * ptr, returnType dRV,
+ internalReturnType ( APICALL className::*Func )( Ts ... ) const, const char * fileName, uint32 lineNumber, Ts ... Vs )
+ {
+ error = NULL;
+ try {
+ internalReturnType returnValue = (ptr->*Func)( Vs ... );
+ #if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4800 )
+ #endif
+ return static_cast< returnType >( returnValue );
+ #if XMP_WinBuild
+ #pragma warning( pop )
+ #endif
+ } catch ( spcIError err ) {
+ error = err->GetActualIError();
+ error->GetISharedObject_I()->AcquireInternal();
+ } catch ( ... ) {
+ pIError_I err = IError_I::CreateUnknownExceptionCaughtError( IError_v1::kESOperationFatal, fileName, lineNumber ).get();
+ err->AcquireInternal();
+ error = err;
+ }
+ return dRV;
+ }
+
+ //!
+ //! @{
+ //! template functions taking care of all the functions where return types of safe and unsafe functions
+ //! are raw pointers and shared pointers respectively.
+ //! \details It calls the underlying unsafe function and catches all kinds of exceptions and report back them
+ //! through a pointer.
+ //! \param[in] error a reference to a pointer to a constant to const #AdobeXMPCommon::IError_base object.
+ //! \param[in] ptr non const pointer to an object of className itself ( most probably this pointer ).
+ //! \param[in] Func function pointer to non const member function of className accepting 0 or more variables
+ //! and returning shared pointer of type sharedPointerType.
+ //! \param[in] Vs n number of variables of varying/same type.
+ //! \param[in] fileName a null terminated array of characters containing file name.
+ //! \param[in] lineNumber an unsigned 32 bit number containing the line number.
+ //! \return a value of returnType.
+ //! \note These take care of non const functions.
+ //!
+ template < typename className, typename returnType, typename sharedPointerType >
+ returnType CallUnSafeFunctionReturningSharedPointer( pcIError_base & error, className * ptr,
+ shared_ptr< sharedPointerType >( APICALL className::*Func )( ), const char * fileName, uint32 lineNumber )
+ {
+ error = NULL;
+ try {
+ shared_ptr< sharedPointerType > returnValue = ( ptr->*Func )();
+ if (returnValue) {
+ returnValue->GetISharedObject_I()->AcquireInternal();
+ return returnValue->template GetInterfacePointer< sharedPointerType >();
+ }
+ return NULL;
+ //return returnValue.get();
+ } catch ( spcIError err ) {
+ error = err->GetActualIError();
+ error->GetISharedObject_I()->AcquireInternal();
+ } catch ( ... ) {
+ pIError_I err = IError_I::CreateUnknownExceptionCaughtError( IError_v1::kESOperationFatal, fileName, lineNumber ).get();
+ err->AcquireInternal();
+ error = err;
+ }
+ return NULL;
+ }
+
+ template < typename className, typename returnType, typename sharedPointerType, typename ... Ts >
+ returnType CallUnSafeFunctionReturningSharedPointer(pcIError_base & error, className * ptr,
+ shared_ptr< sharedPointerType >(APICALL className::*Func)(Ts ...), const char * fileName, uint32 lineNumber, Ts ... Vs)
+ {
+ error = NULL;
+ try {
+ shared_ptr< sharedPointerType > returnValue = (ptr->*Func)(Vs ...);
+ if (returnValue) {
+ returnValue->GetISharedObject_I()->AcquireInternal();
+ return returnValue->template GetInterfacePointer< sharedPointerType >();
+ }
+ return NULL;
+ //return returnValue.get();
+ }
+ catch (spcIError err) {
+ error = err->GetActualIError();
+ error->GetISharedObject_I()->AcquireInternal();
+ }
+ catch (...) {
+ pIError_I err = IError_I::CreateUnknownExceptionCaughtError(IError_v1::kESOperationFatal, fileName, lineNumber).get();
+ err->AcquireInternal();
+ error = err;
+ }
+ return NULL;
+ }
+
+ //!
+ //! @{
+ //! template functions taking care of all the functions where return types of safe and unsafe functions
+ //! are raw pointers and shared pointers respectively.
+ //! \details It calls the underlying unsafe function and catches all kinds of exceptions and report back them
+ //! through a pointer.
+ //! \param[in] error a reference to a pointer to a constant to const #AdobeXMPCommon::IError_base object.
+ //! \param[in] ptr a const pointer to an object of className itself ( most probably this pointer ).
+ //! \param[in] Func function pointer to a const member function of className accepting 0 or more variables
+ //! and returning shared pointer of type sharedPointerType.
+ //! \param[in] Vs n number of variables of varying/same type.
+ //! \param[in] fileName a null terminated array of characters containing file name.
+ //! \param[in] lineNumber an unsigned 32 bit number containing the line number.
+ //! \return a value of returnType.
+ //! \note These take care of const functions.
+ //!
+
+ template < typename className, typename returnType, typename sharedPointerType >
+ returnType CallConstUnSafeFunctionReturningSharedPointer(pcIError_base & error, const className * ptr,
+ shared_ptr< sharedPointerType >(APICALL className::*Func)() const, const char * fileName, uint32 lineNumber)
+ {
+ error = NULL;
+ try {
+ shared_ptr< sharedPointerType > returnValue = ( ptr->*Func )( );
+ if (returnValue) {
+ returnValue->GetISharedObject_I()->AcquireInternal();
+ return returnValue->template GetInterfacePointer< sharedPointerType >();
+ //return returnValue.get();
+ }
+ return NULL;
+ }
+ catch (spcIError err) {
+ error = err->GetActualIError();
+ error->GetISharedObject_I()->AcquireInternal();
+ }
+ catch (...) {
+ pIError_I err = IError_I::CreateUnknownExceptionCaughtError(IError_v1::kESOperationFatal, fileName, lineNumber).get();
+ err->AcquireInternal();
+ error = err;
+ }
+ return NULL;
+ }
+
+
+ template < typename className, typename returnType, typename sharedPointerType, typename ... Ts >
+ returnType CallConstUnSafeFunctionReturningSharedPointer( pcIError_base & error, const className * ptr,
+ shared_ptr< sharedPointerType >( APICALL className::*Func )( Ts ... ) const, const char * fileName, uint32 lineNumber, Ts ... Vs )
+ {
+ error = NULL;
+ try {
+ shared_ptr< sharedPointerType > returnValue = ( ptr->*Func )( Vs ... );
+ if (returnValue) {
+ returnValue->GetISharedObject_I()->AcquireInternal();
+ return returnValue->template GetInterfacePointer< sharedPointerType >();
+ }
+ return NULL;
+ //return returnValue.get();
+ } catch ( spcIError err ) {
+ error = err->GetActualIError();
+ error->GetISharedObject_I()->AcquireInternal();
+ } catch ( ... ) {
+ pIError_I err = IError_I::CreateUnknownExceptionCaughtError( IError_v1::kESOperationFatal, fileName, lineNumber ).get();
+ err->AcquireInternal();
+ error = err;
+ }
+ return NULL;
+ }
+ //!
+ //! @}
+
+ template< typename sharedPointerType, typename rawPointerType >
+ rawPointerType ReturnRawPointerFromSharedPointer( shared_ptr< sharedPointerType >( *FuncPtr )( ), pcIError_base & error, const char * fileName, sizet lineNumber ) __NOTHROW__ {
+ error = NULL;
+ try {
+ auto sp = FuncPtr();
+ sp->GetISharedObject_I()->AcquireInternal();
+ return sp.get();
+ } catch ( spcIError err ) {
+ error = err->GetActualIError();
+ error->GetISharedObject_I()->AcquireInternal();
+ } catch ( ... ) {
+ pIError_I err = IError_I::CreateUnknownExceptionCaughtError( IError_v1::kESOperationFatal, fileName, lineNumber ).get();
+ err->AcquireInternal();
+ error = err;
+ }
+ return NULL;
+ }
+
+ template< typename sharedPointerType, typename rawPointerType, typename ... Ts >
+ rawPointerType ReturnRawPointerFromSharedPointer( shared_ptr< sharedPointerType >( *FuncPtr )( Ts ... ), pcIError_base & error, const char * fileName, sizet lineNumber, Ts ... Vs ) __NOTHROW__ {
+ error = NULL;
+ try {
+ auto sp = FuncPtr( Vs ... );
+ sp->GetISharedObject_I()->AcquireInternal();
+ return sp.get();
+ } catch ( spcIError err ) {
+ error = err->GetActualIError();
+ error->GetISharedObject_I()->AcquireInternal();
+ } catch ( ... ) {
+ pIError_I err = IError_I::CreateUnknownExceptionCaughtError( IError_v1::kESOperationFatal, fileName, lineNumber ).get();
+ err->AcquireInternal();
+ error = err;
+ }
+ return NULL;
+ }
+
+}
+
+#endif // TWrapperFunctions_I_h__ \ No newline at end of file
diff --git a/XMPCommon/Utilities/UTF8String.h b/XMPCommon/Utilities/UTF8String.h
new file mode 100644
index 0000000..72ee236
--- /dev/null
+++ b/XMPCommon/Utilities/UTF8String.h
@@ -0,0 +1,27 @@
+#ifndef __UTF8String_h__
+#define __UTF8String_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/XMPCommonDefines_I.h"
+#include "XMPCommon/Utilities/TAllocator.h"
+#include <string>
+#include <sstream>
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+
+ typedef std::basic_string< char, std::char_traits< char >, TAllocator< char > > UTF8String;
+ typedef std::string UTF8StringUnmanaged;
+
+ typedef std::basic_stringstream< char, std::char_traits< char >, TAllocator< char > > UTF8StringStream;
+ typedef std::stringstream UTF8StringStreamUnmanaged;
+}
+
+#endif // __UTF8String_h__
diff --git a/XMPCommon/XMPCommonDefines_I.h b/XMPCommon/XMPCommonDefines_I.h
new file mode 100644
index 0000000..96fa5e4
--- /dev/null
+++ b/XMPCommon/XMPCommonDefines_I.h
@@ -0,0 +1,49 @@
+#ifndef XMPCommonDefines_I_h__
+#define XMPCommonDefines_I_h__ 1
+
+// =================================================================================================
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved.
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/XMPCommonDefines.h"
+
+// =================================================================================================
+// All Platform Settings
+// ===========================
+
+#ifndef XMP_COMPONENT_INT_NAMESPACE
+ #error "Please define XMP_COMPONENT_INT_NAMESPACE"
+#endif
+
+namespace AdobeXMPCommon_Int {
+ using namespace AdobeXMPCommon;
+ const uint32 kInternalInterfaceVersionNumber( 0xFFFFFFFF );
+}
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+ using namespace AdobeXMPCommon;
+ using namespace AdobeXMPCommon_Int;
+}
+
+// =================================================================================================
+// Macintosh Specific Settings
+// ===========================
+
+// =================================================================================================
+// Windows Specific Settings
+// =========================
+
+// =================================================================================================
+// UNIX Specific Settings
+// ======================
+
+// =================================================================================================
+// IOS Specific Settings
+// ===========================
+
+
+#endif // XMPCommonDefines_I_h__
diff --git a/XMPCommon/XMPCommonErrorCodes_I.h b/XMPCommon/XMPCommonErrorCodes_I.h
new file mode 100644
index 0000000..3dd2e7e
--- /dev/null
+++ b/XMPCommon/XMPCommonErrorCodes_I.h
@@ -0,0 +1,47 @@
+#ifndef XMPCommonErrorCodes_I_h__
+#define XMPCommonErrorCodes_I_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/XMPCommonDefines_I.h"
+#include "XMPCommon/XMPCommonErrorCodes.h"
+
+namespace AdobeXMPCommon_Int {
+
+ //!
+ //! Indicates various types of errors related to mutex.
+ //!
+ typedef enum {
+ //! Represents no error in operation on mutex.
+ kMTECNone = 0,
+
+ //! Represents an error while interacting with mutex due to memory crunch.
+ kMTECMemoryCrunch = 1,
+
+ //! Represents an error while interacting with mutex due to resource crunch other than memory.
+ kMTECResourceCrunch = 2,
+
+ //! Represents an error while interacting with mutex due to permission issues.
+ kMTECPermission = 3,
+
+ //! Represents an error related to lock operation called on already locked mutex.
+ kMTECAlreadyLocked = 4,
+
+ //! Represents an error because of operation being called on already un-initialized mutex.
+ kMTECUninitialized = 5,
+
+ // Add new errors here
+
+ //! Maximum value this enum can hold, should be treated as invalid value.
+ kMTECMaxValue = 0xFFFFFFFF
+ } eMultiThreadingErrorCode;
+}
+
+#endif // XMPCommonErrorCodes_I_h__
diff --git a/XMPCommon/XMPCommonFwdDeclarations_I.h b/XMPCommon/XMPCommonFwdDeclarations_I.h
new file mode 100644
index 0000000..f50d58e
--- /dev/null
+++ b/XMPCommon/XMPCommonFwdDeclarations_I.h
@@ -0,0 +1,91 @@
+#ifndef __XMPCommonFwdDeclarations_I_h__
+#define __XMPCommonFwdDeclarations_I_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/XMPCommonDefines_I.h"
+#include "XMPCommon/XMPCommonFwdDeclarations.h"
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+ using namespace AdobeXMPCommon;
+
+#if SUPPORT_SHARED_POINTERS_IN_STD
+ using std::weak_ptr;
+ using std::dynamic_pointer_cast;
+ using std::static_pointer_cast;
+ using std::const_pointer_cast;
+ using std::bad_weak_ptr;
+ using std::default_delete;
+#elif SUPPORT_SHARED_POINTERS_IN_TR1
+ using std::tr1::weak_ptr;
+ using std::tr1::dynamic_pointer_cast;
+ using std::tr1::static_pointer_cast;
+ using std::tr1::const_pointer_cast;
+ using std::tr1::bad_weak_ptr;
+ template< typename Ty>
+ struct default_delete {
+ void operator()( Ty * ptr ) const __NOTHROW__{
+ delete ptr;
+ }
+ };
+#endif
+
+ // IUTF8String_I
+ class IUTF8String_I;
+ typedef IUTF8String_I * pIUTF8String_I;
+ typedef const IUTF8String_I * pcIUTF8String_I;
+ typedef shared_ptr< IUTF8String_I > spIUTF8String_I;
+ typedef shared_ptr< const IUTF8String_I > spcIUTF8String_I;
+
+ // IError_I
+ class IError_I;
+ typedef IError_I * pIError_I;
+ typedef const IError_I * pcIError_I;
+ typedef shared_ptr< IError_I > spIError_I;
+ typedef shared_ptr< const IError_I > spcIError_I;
+
+ // IErrorNotifier_I
+ class IErrorNotifier_I;
+ typedef IErrorNotifier_I * pIErrorNotifier_I;
+ typedef const IErrorNotifier_I * pcIErrorNotifier_I;
+ typedef shared_ptr< IErrorNotifier_I > spIErrorNotifier_I;
+ typedef shared_ptr< const IErrorNotifier_I > spcIErrorNotifier_I;
+
+ // IMemoryAllocator_I
+ class IMemoryAllocator_I;
+ typedef IMemoryAllocator_I * pIMemoryAllocator_I;
+ typedef const IMemoryAllocator_I * pcIMemoryAllocator_I;
+ typedef shared_ptr< IMemoryAllocator_I > spIMemoryAllocator_I;
+ typedef shared_ptr< const IMemoryAllocator_I > spcIClientAllocator_I;
+
+ // IConfigurationManager_I
+ class IConfigurationManager_I;
+ typedef IConfigurationManager_I * pIConfigurationManager_I;
+ typedef const IConfigurationManager_I * pcIConfigurationManager_I;
+ typedef shared_ptr< IConfigurationManager_I > spIConfigurationManager_I;
+ typedef shared_ptr< const IConfigurationManager_I > spcIConfigurationManager_I;
+
+ // IConfigurable_I
+ class IConfigurable_I;
+ typedef IConfigurable_I * pIConfigurable_I;
+ typedef const IConfigurable_I * pcIConfigurable_I;
+ typedef shared_ptr< IConfigurable_I > spIConfigurable_I;
+ typedef shared_ptr< const IConfigurable_I > spcIConfigurable_I;
+
+ // ISharedMutex
+ class ISharedMutex;
+ typedef ISharedMutex * pISharedMutex;
+ typedef const ISharedMutex * pcISharedMutex;
+ typedef shared_ptr< ISharedMutex > spISharedMutex;
+ typedef shared_ptr< const ISharedMutex > spcISharedMutex;
+
+};
+
+#endif // __XMPCommonFwdDeclarations_I_h__
diff --git a/XMPCommon/XMPCommon_I.h b/XMPCommon/XMPCommon_I.h
new file mode 100644
index 0000000..816dd91
--- /dev/null
+++ b/XMPCommon/XMPCommon_I.h
@@ -0,0 +1,28 @@
+#ifndef XMPCommon_I_h__
+#define XMPCommon_I_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/XMPCommonDefines_I.h"
+#include "XMPCommon/XMPCommonFwdDeclarations_I.h"
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+
+ //!
+ //! Initializes the XMP Common Framework.
+ //!
+ void InitializeXMPCommonFramework();
+
+ //!
+ //! Terminates the XMP Common Framework.
+ void TerminateXMPCommonFramework();
+}
+
+#endif // XMPCommon_I_h__
diff --git a/XMPCommon/source/AutoSharedLock.cpp b/XMPCommon/source/AutoSharedLock.cpp
new file mode 100644
index 0000000..4648365
--- /dev/null
+++ b/XMPCommon/source/AutoSharedLock.cpp
@@ -0,0 +1,49 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/Utilities/AutoSharedLock.h"
+#include "XMPCommon/Interfaces/ISharedMutex.h"
+#include "XMPCommon/Interfaces/IError_I.h"
+#include "XMPCommon/XMPCommonErrorCodes_I.h"
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+ AutoSharedLock::AutoSharedLock( const spISharedMutex & mutex, bool exclusiveLock /*= false */ )
+ : mMutex( mutex )
+ , mExclusiveLock( exclusiveLock )
+ {
+ if ( mMutex ) {
+ eMultiThreadingErrorCode er;
+ if ( mExclusiveLock )
+ er = mMutex->Lock();
+ else
+ er = mMutex->LockShared();
+ if ( er != kMTECNone ) {
+ NOTIFY_ERROR( IError_v1::kEDMultiThreading, er, "Unable to lock the mutex", IError_v1::kESProcessFatal, false, false );
+ }
+ }
+ }
+
+ AutoSharedLock::~AutoSharedLock() {
+ Release();
+ }
+
+ void AutoSharedLock::Release() {
+ if ( mMutex ) {
+ eMultiThreadingErrorCode er;
+ if ( mExclusiveLock )
+ er = mMutex->Unlock();
+ else
+ er = mMutex->UnlockShared();
+ if ( er != kMTECNone ) {
+ NOTIFY_ERROR( IError_v1::kEDMultiThreading, er, "Unable to lock the mutex", IError_v1::kESProcessFatal, false, false );
+ }
+ }
+ }
+
+}
diff --git a/XMPCommon/source/ConfigurableImpl.cpp b/XMPCommon/source/ConfigurableImpl.cpp
new file mode 100644
index 0000000..7d8934c
--- /dev/null
+++ b/XMPCommon/source/ConfigurableImpl.cpp
@@ -0,0 +1,278 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#define IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED 1
+ #include "XMPCommon/ImplHeaders/ConfigurableImpl.h"
+#undef IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED
+
+#include "XMPCommon/Interfaces/IErrorNotifier_I.h"
+#include "XMPCommon/Utilities/AutoSharedLock.h"
+#include "XMPCommon/Interfaces/IError_I.h"
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+
+ static uint64 ConvertToLowerCase( const uint64 & key ) {
+ static char add = 'a' - 'A';
+ union temp { uint64 uInt64; char chars[ 8 ]; };
+ temp t; t.uInt64 = key;
+ for ( sizet i = 0; i < 8; i++ ) {
+ if ( t.chars[ i ] >= 'A' && t.chars[ i ] <= 'Z' ) {
+ t.chars[ i ] += add;
+ }
+ }
+ return t.uInt64;
+ }
+
+ template < typename T1, typename T2 >
+ void NotifyError( const char * errorMsg, const uint64 & key, eConfigurableErrorCode errorCode,
+ IConfigurable::eDataType type, T1 v1,
+ IConfigurable::eDataType oldType, T2 v2 )
+ {
+ bool valuePresent = type != IConfigurable::kDTNone;
+ bool oldValuePresent = oldType != IConfigurable::kDTNone;
+ NOTIFY_ERROR( IError_v1::kEDConfigurable, errorCode, errorMsg, IError_v1::kESOperationFatal,
+ true, key, valuePresent, static_cast< uint64 >( type ), oldValuePresent, static_cast< uint64 >( oldType ),
+ valuePresent, v1, oldValuePresent, v2 );
+ }
+
+ template < typename T1 >
+ void NotifyError( const char * errorMsg, const uint64 & key, eConfigurableErrorCode errorCode,
+ IConfigurable::eDataType type, T1 v1,
+ IConfigurable::eDataType oldType, const IConfigurable::CombinedDataValue & oldValue )
+ {
+ char temp[2] = { '\0', '\0' };
+ switch ( oldType ) {
+ case IConfigurable::kDTBool:
+ NotifyError< T1, bool >( errorMsg, key, errorCode, type, v1, oldType, oldValue.boolValue );
+ break;
+
+ case IConfigurable::kDTChar:
+ temp[0] = oldValue.charValue;
+ NotifyError< T1, const char * >( errorMsg, key, errorCode, type, v1, oldType, &temp[0] );
+ break;
+
+ case IConfigurable::kDTUint64:
+ NotifyError< T1, uint64 >( errorMsg, key, errorCode, type, v1, oldType, oldValue.uint64Value );
+ break;
+
+ case IConfigurable::kDTInt64:
+ NotifyError< T1, int64 >( errorMsg, key, errorCode, type, v1, oldType, oldValue.int64Value );
+ break;
+
+ case IConfigurable::kDTDouble:
+ NotifyError< T1, double >( errorMsg, key, errorCode, type, v1, oldType, oldValue.doubleValue );
+ break;
+
+ case IConfigurable::kDTConstCharBuffer:
+ NotifyError< T1, void * >( errorMsg, key, errorCode, type, v1, oldType, ( void * ) oldValue.constCharPtrValue );
+ break;
+
+ default:
+ case IConfigurable::kDTConstVoidPtr:
+ NotifyError< T1, void * >( errorMsg, key, errorCode, type, v1, oldType, ( void * ) oldValue.constVoidPtrValue );
+ break;
+ }
+ }
+
+ void NotifyError( const char * errorMsg, const uint64 & key, eConfigurableErrorCode errorCode,
+ IConfigurable::eDataType type, const IConfigurable::CombinedDataValue & value,
+ IConfigurable::eDataType oldType, const IConfigurable::CombinedDataValue & oldValue )
+ {
+ char temp[2] = { '\0', '\0' };
+ switch ( type ) {
+ case IConfigurable::kDTBool:
+ NotifyError< bool >( errorMsg, key, errorCode, type, value.boolValue, oldType, oldValue );
+ break;
+
+ case IConfigurable::kDTChar:
+ temp[0] = value.charValue;
+ NotifyError< const char * >( errorMsg, key, errorCode, type, &temp[0], oldType, oldValue );
+ break;
+
+ case IConfigurable::kDTUint64:
+ NotifyError< uint64 >( errorMsg, key, errorCode, type, value.uint64Value, oldType, oldValue );
+ break;
+
+ case IConfigurable::kDTInt64:
+ NotifyError< int64 >( errorMsg, key, errorCode, type, value.int64Value, oldType, oldValue );
+ break;
+
+ case IConfigurable::kDTDouble:
+ NotifyError< double >( errorMsg, key, errorCode, type, value.doubleValue, oldType, oldValue );
+ break;
+
+ case IConfigurable::kDTConstCharBuffer:
+ NotifyError< void * >( errorMsg, key, errorCode, type, ( void * ) value.constCharPtrValue, oldType, oldValue );
+ break;
+
+ default:
+ case IConfigurable::kDTConstVoidPtr:
+ NotifyError< void * >( errorMsg, key, errorCode, type, ( void * ) value.constVoidPtrValue, oldType, oldValue );
+ break;
+ }
+ }
+
+ //definition of class methods
+ void ConfigurableImpl::SetParameter( const uint64 & actualKey, eDataType type, const CombinedDataValue & value ) {
+ uint64 key = ModifyKey( actualKey );
+ if ( mTreatKeyAsCaseInsensitiveCharBuffer )
+ key = ConvertToLowerCase( key );
+ eConfigurableErrorCode validKey = ValidateKey( key );
+ eDataType oldType = kDTNone;
+ CombinedDataValue oldValue;
+ if ( validKey == kCECNone ) {
+ AutoSharedLock lock( GetMutex(), true );
+ if ( mKeysSet ) {
+ auto it = mKeysSet->find( key );
+ if ( it == mKeysSet->end() )
+ NotifyError( "Key is not supported", key, kCECKeyNotSupported, type, value, oldType, oldValue );
+ }
+
+ eConfigurableErrorCode validValue = ValidateValue( key, type, value );
+
+ if ( validValue == kCECNone && mKeyValueTypeMap ) {
+ auto it = mKeyValueTypeMap->find( key );
+ if ( it != mKeyValueTypeMap->end() ) {
+ if ( type != it->second ) {
+ validValue = kCECValueTypeNotSupported;
+ }
+ }
+ }
+
+ if ( validValue == kCECNone && !mAllowDifferentValueTypesForExistingEntries ) {
+ auto it = mMap.find( key );
+ if ( it != mMap.end() && it->second.first != type )
+ validValue = kCECPreviousTypeDifferent;
+ }
+
+ if ( validValue == kCECNone ) {
+ TypeValuePair pair;
+ pair.first = type;
+ pair.second = value;
+ mMap[ key ] = pair;
+ } else {
+ auto it = mMap.find( key );
+ if ( it != mMap.end() ) {
+ oldType = it->second.first;
+ oldValue = it->second.second;
+ }
+ NotifyError( "Validation failed for the parameter, type and value combination", key, validValue, type,
+ value, oldType, oldValue );
+ }
+ } else {
+ NotifyError( "Key is not valid", key, validKey, type, value, oldType, oldValue );
+ }
+ }
+
+ bool ConfigurableImpl::GetParameter( const uint64 & actualKey, eDataType type, CombinedDataValue & value ) const {
+ uint64 key = ModifyKey( actualKey );
+ if ( mTreatKeyAsCaseInsensitiveCharBuffer )
+ key = ConvertToLowerCase( key );
+ AutoSharedLock lock( GetMutex() );
+ auto it = mMap.find( key );
+ if ( it == mMap.end() )
+ return false;
+ if ( it->second.first != type ) {
+ NOTIFY_ERROR( IError_v1::kEDConfigurable, kCECValueTypeMismatch,
+ "Type mismatch for a parameter", IError_v1::kESOperationFatal,
+ true, key, true, static_cast< uint64 >( it->second.first ), true, static_cast< uint64 >( type ) );
+ return false;
+ }
+ value = it->second.second;
+ return true;
+ }
+
+ bool ConfigurableImpl::RemoveParameter( const uint64 & actualKey ) {
+ uint64 key = ModifyKey( actualKey );
+ if ( mTreatKeyAsCaseInsensitiveCharBuffer )
+ key = ConvertToLowerCase( key );
+ AutoSharedLock lock( GetMutex(), true );
+ bool returnValue = mMap.erase( key ) >= 1 ? true : false;
+ return returnValue;
+ }
+
+ std::vector< uint64 > ConfigurableImpl::GetAllParameters() const {
+ auto allocator = TAllocator< uint64 >();
+ std::vector< uint64 > vec( allocator );
+ AutoSharedLock lock( GetMutex() );
+ vec.reserve( mMap.size() );
+ auto it = mMap.begin();
+ auto itEnd = mMap.end();
+ for ( ; it != itEnd; it++ ) {
+ vec.push_back( it->first );
+ }
+ return vec;
+ }
+
+ sizet ConfigurableImpl::Size() const __NOTHROW__ {
+ AutoSharedLock lock( GetMutex() );
+ return mMap.size();
+ }
+
+ IConfigurable::eDataType ConfigurableImpl::GetDataType( const uint64 & actualKey ) const {
+ uint64 key = ModifyKey( actualKey );
+ if ( mTreatKeyAsCaseInsensitiveCharBuffer )
+ key = ConvertToLowerCase( key );
+ AutoSharedLock lock( GetMutex() );
+ auto it = mMap.find( key );
+ if ( it == mMap.end() )
+ return kDTNone;
+ else
+ return it->second.first;
+ }
+
+ eConfigurableErrorCode ConfigurableImpl::ValidateValue( const uint64 & key, eDataType type, CombinedDataValue value ) const {
+ return kCECNone;
+ }
+
+ void APICALL ConfigurableImpl::TreatKeyAsCaseInsensitive( bool flag ) {
+ mTreatKeyAsCaseInsensitiveCharBuffer = flag;
+ }
+
+ void APICALL ConfigurableImpl::AllowDifferentValueTypesForExistingEntries( bool flag ) {
+ mAllowDifferentValueTypesForExistingEntries = flag;
+ }
+
+ void APICALL ConfigurableImpl::SetAllowedKeys( uint64 * keysTable, sizet sizeOfTable ) {
+ AutoSharedLock lock ( GetMutex(), true );
+ if ( mKeysSet ) { delete mKeysSet; mKeysSet = NULL; }
+ if ( sizeOfTable > 0 && keysTable != NULL ) {
+ mKeysSet = new KeysSet();
+ for ( sizet i = 0; i < sizeOfTable; i++ ) {
+ uint64 key = keysTable[ i ];
+ key = ModifyKey( key );
+ if ( mTreatKeyAsCaseInsensitiveCharBuffer )
+ key = ConvertToLowerCase( key );
+ mKeysSet->insert( key );
+ }
+ }
+ }
+
+ void APICALL ConfigurableImpl::SetAllowedValueTypesForKeys( KeyValueTypePair * keyValueTypePairTable, sizet sizeOfTable ) {
+ AutoSharedLock lock( GetMutex(), true );
+ if ( mKeyValueTypeMap ) { delete mKeyValueTypeMap; mKeyValueTypeMap = NULL; }
+ if ( sizeOfTable > 0 && keyValueTypePairTable != NULL ) {
+ mKeyValueTypeMap = new keyValueTypeMap();
+ for ( sizet i = 0; i < sizeOfTable; i++ ) {
+ uint64 key = keyValueTypePairTable[i].first;
+ key = ModifyKey( key );
+ if ( mTreatKeyAsCaseInsensitiveCharBuffer )
+ key = ConvertToLowerCase( key );
+ ( *mKeyValueTypeMap )[ key ] = keyValueTypePairTable[i].second;
+ }
+ }
+ }
+
+ ConfigurableImpl::~ConfigurableImpl() __NOTHROW__ {
+ if ( mKeysSet ) { delete mKeysSet; mKeysSet = NULL; }
+ if ( mKeyValueTypeMap ) { delete mKeyValueTypeMap; mKeyValueTypeMap = NULL; }
+ }
+
+
+}
diff --git a/XMPCommon/source/ConfigurationManagerImpl.cpp b/XMPCommon/source/ConfigurationManagerImpl.cpp
new file mode 100644
index 0000000..b74faac
--- /dev/null
+++ b/XMPCommon/source/ConfigurationManagerImpl.cpp
@@ -0,0 +1,54 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#define IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED 1
+ #include "XMPCommon/ImplHeaders/ConfigurationManagerImpl.h"
+ #include "XMPCommon/ImplHeaders/ErrorNotifierWrapperImpl.h"
+#undef IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED
+
+#include "XMPCommon/Interfaces/IMemoryAllocator_I.h"
+#include "XMPCommon/Utilities/TSmartPointers_I.h"
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+
+ bool APICALL ConfigurationManagerImpl::RegisterMemoryAllocator( pIMemoryAllocator memoryAllocator ) {
+ IMemoryAllocator_I::SetMemoryAllocator( memoryAllocator );
+ return true;
+ }
+
+ bool APICALL ConfigurationManagerImpl::RegisterErrorNotifier( pIErrorNotifier_base clientErrorNotifier ) {
+ pIErrorNotifier oldErrorNotifer = IErrorNotifier_I::SetErrorNotifier( clientErrorNotifier );
+ // if ( dynamic_cast< ErrorNotifierWrapperImpl_v1 * >( oldErrorNotifer ) )
+ // delete oldErrorNotifer;
+ return true;
+ }
+
+ bool APICALL ConfigurationManagerImpl::DisableMultiThreading() {
+ mMultiThreadingEnabled = false;
+ return true;
+ }
+
+ bool APICALL ConfigurationManagerImpl::IsMultiThreaded() const {
+ return mMultiThreadingEnabled;
+ }
+
+}
+
+#if BUILDING_XMPCOMMON_LIB || SOURCE_COMPILING_XMP_ALL
+namespace AdobeXMPCommon {
+
+ spIConfigurationManager IConfigurationManager_v1::MakeShared( pIConfigurationManager_base ptr ) {
+ if ( !ptr ) return spIConfigurationManager();
+ pIConfigurationManager p = IConfigurationManager::GetInterfaceVersion() > 1 ?
+ ptr->GetInterfacePointer< IConfigurationManager >() : ptr;
+ return XMP_COMPONENT_INT_NAMESPACE::MakeUncheckedSharedPointer( p, __FILE__, __LINE__, true );
+ }
+
+}
+#endif // BUILDING_XMPCOMMON_LIB || SOURCE_COMPILING_XMP_ALL
diff --git a/XMPCommon/source/DefaultErrorNotifierImpl.cpp b/XMPCommon/source/DefaultErrorNotifierImpl.cpp
new file mode 100644
index 0000000..5fd674e
--- /dev/null
+++ b/XMPCommon/source/DefaultErrorNotifierImpl.cpp
@@ -0,0 +1,25 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+
+#define IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED 1
+ #include "XMPCommon/ImplHeaders/DefaultErrorNotifierImpl.h"
+#undef IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED
+
+#include "XMPCommon/Interfaces/IError.h"
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+
+ bool APICALL DefaultErrorNotifierImpl::Notify( const spcIError & error ) {
+ if ( error->GetSeverity() > IError_v1::kESWarning )
+ return false;
+ return true;
+ }
+
+}
diff --git a/XMPCommon/source/ErrorImpl.cpp b/XMPCommon/source/ErrorImpl.cpp
new file mode 100644
index 0000000..23f8f66
--- /dev/null
+++ b/XMPCommon/source/ErrorImpl.cpp
@@ -0,0 +1,212 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#define IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED 1
+ #include "XMPCommon/ImplHeaders/ErrorImpl.h"
+#undef IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED
+
+#include "XMPCommon/Utilities/UTF8String.h"
+#include "XMPCommon/Interfaces/IUTF8String_I.h"
+#include "XMPCommon/XMPCommonErrorCodes_I.h"
+#include "XMPCommon/Interfaces/IObjectFactory.h"
+#include <cstdarg>
+
+#include "XMPCommon/Utilities/TSmartPointers_I.h"
+#include <sstream>
+#include <iomanip>
+#define PRECISION_LIMIT 6
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+
+ ErrorImpl::ErrorImpl( eErrorDomain domain, eErrorCode code, eErrorSeverity severity )
+ : mErrorDomain( domain )
+ , mErrorCode( code )
+ , mErrorSeverity( severity ) { }
+
+ ErrorImpl::~ErrorImpl() __NOTHROW__ {
+ mNextError.reset();
+ mLocation.reset();
+ mMessage.reset();
+ }
+
+ IError_v1::eErrorCode APICALL ErrorImpl::GetCode() const {
+ return mErrorCode;
+ }
+
+ IError_v1::eErrorDomain APICALL ErrorImpl::GetDomain() const {
+ return mErrorDomain;
+ }
+
+ IError_v1::eErrorSeverity APICALL ErrorImpl::GetSeverity() const {
+ return mErrorSeverity;
+ }
+
+ spcIUTF8String APICALL ErrorImpl::GetMessage() const {
+ return mMessage;
+ }
+
+ spcIUTF8String APICALL ErrorImpl::GetLocation() const {
+ return mLocation;
+ }
+
+ spcIUTF8String APICALL ErrorImpl::GetParameter( sizet index ) const {
+ if ( index < mParameters.size() ) {
+ return mParameters[ index ];
+ } else {
+ NOTIFY_ERROR( kEDGeneral, kGECParametersNotAsExpected,
+ "Parameter to IError::GetParamater() is out of range", kESOperationFatal,
+ true, static_cast< sizet >( mParameters.size() ),
+ true, index );
+ return spcIUTF8String_I();
+ }
+ }
+
+ sizet APICALL ErrorImpl::GetParametersCount() const __NOTHROW__ {
+ return mParameters.size();
+ }
+
+ spIError APICALL ErrorImpl::GetNextError() {
+ return mNextError;
+ }
+
+ spIError APICALL ErrorImpl::SetNextError( const spIError & error ) {
+ auto returnValue = mNextError;
+ mNextError = error;
+ return returnValue;
+ }
+
+ void APICALL ErrorImpl::SetMessage( const char * message, sizet len /*= npos */ ) __NOTHROW__ {
+ if ( mMessage )
+ mMessage->assign( message, len );
+ else
+ mMessage = IUTF8String_I::CreateUTF8String( message, len );
+ }
+
+ void APICALL ErrorImpl::SetLocation( const char * fileName, sizet lineNumber ) __NOTHROW__ {
+ if ( mLocation )
+ mLocation->assign( fileName, npos );
+ else
+ mLocation = IUTF8String_I::CreateUTF8String( fileName, npos );
+ mLocation->append(":", 1 );
+ UTF8StringStream ss;
+ ss<<lineNumber;
+ mLocation->append( ss.str().c_str(), ss.str().size() );
+ }
+
+ void APICALL ErrorImpl::AppendParameter( const char * parameter, sizet len /*= npos */ ) __NOTHROW__ {
+ mParameters.push_back( IUTF8String_I::CreateUTF8String( parameter, len ) );
+ }
+
+ void APICALL ErrorImpl::AppendParameter( void * addressParameter ) __NOTHROW__ {
+ UTF8StringStream stm;
+ stm.setf( std::ios::hex );
+ bool checkDone( false );
+ bool appends0x( false );
+
+ if ( !checkDone ) {
+ UTF8StringStream stm1;
+ stm1.setf( std::ios::hex );
+ stm1 << "0x" << addressParameter;
+ if ( stm1.str().size() > 4 ) {
+ const char * charPtr = stm1.str().c_str();
+ if ( charPtr[ 2 ] == '0' && ( charPtr[ 3 ] == 'x' || charPtr[ 3 ] == 'X' ) ) {
+ appends0x = true;
+ }
+ checkDone = true;
+ }
+ }
+
+ if ( appends0x ) stm << addressParameter;
+ else stm << "0x" << addressParameter;
+ AppendParameter( stm.str().c_str() );
+ }
+
+ template< typename numericType >
+ void TAppendParameter( ErrorImpl * ptr, const numericType & numericValue ) {
+ std::ostringstream oss;
+ oss << numericValue;
+
+ std::string str = oss.str();
+ ptr->AppendParameter( str.c_str(), str.size() );
+ }
+
+ template<>
+ void TAppendParameter(ErrorImpl * ptr, const double & numericValue) {
+ std::ostringstream oss;
+ oss << std::fixed<<std::setprecision(PRECISION_LIMIT)<<numericValue;
+
+ std::string str = oss.str();
+ ptr->AppendParameter(str.c_str(), str.size());
+ }
+
+ template<>
+ void TAppendParameter(ErrorImpl * ptr, const float & numericValue) {
+ std::ostringstream oss;
+ oss << std::fixed << std::setprecision(PRECISION_LIMIT) << numericValue;
+
+ std::string str = oss.str();
+ ptr->AppendParameter(str.c_str(), str.size());
+ }
+
+ void APICALL ErrorImpl::AppendParameter( const uint32 & integerValue ) __NOTHROW__ {
+ TAppendParameter( this, integerValue );
+ }
+
+ void APICALL ErrorImpl::AppendParameter( const uint64 & integerValue ) __NOTHROW__ {
+ TAppendParameter( this, integerValue );
+ }
+
+ void APICALL ErrorImpl::AppendParameter( const int32 & integerValue ) __NOTHROW__ {
+ TAppendParameter( this, integerValue );
+ }
+
+ void APICALL ErrorImpl::AppendParameter( const int64 & integerValue ) __NOTHROW__ {
+ TAppendParameter( this, integerValue );
+ }
+
+ void APICALL ErrorImpl::AppendParameter( const float & floatValue ) __NOTHROW__ {
+ TAppendParameter( this, floatValue );
+ }
+
+ void APICALL ErrorImpl::AppendParameter( const double & doubleValue ) __NOTHROW__ {
+ TAppendParameter( this, doubleValue );
+ }
+
+ void APICALL ErrorImpl::AppendParameter( bool booleanValue ) __NOTHROW__ {
+ if ( booleanValue )
+ AppendParameter( "true", 4 );
+ else
+ AppendParameter( "false", 5 );
+ }
+
+ spIError_I IError_I::CreateError( eErrorDomain errDomain, eErrorCode errCode, eErrorSeverity errSeverity ) {
+ return MakeUncheckedSharedPointer( new ErrorImpl( errDomain, errCode, errSeverity ), __FILE__, __LINE__, true );
+ }
+}
+
+#if BUILDING_XMPCOMMON_LIB || SOURCE_COMPILING_XMP_ALL
+namespace AdobeXMPCommon {
+ using namespace XMP_COMPONENT_INT_NAMESPACE;
+
+ spIError IError_v1::CreateError( pIObjectFactory objFactory, eErrorDomain errDomain, eErrorCode errCode, eErrorSeverity errSeverity ) {
+ pcIError error( NULL );
+ auto retValue = MakeShared( objFactory->CreateError( static_cast< uint32 >( errDomain ),
+ static_cast< uint32 >( errCode ), static_cast< uint32 >( errSeverity ), error ) );
+ //if ( error ) throw error;
+ return retValue;
+ }
+
+ spIError IError_v1::MakeShared( pIError_base ptr ) {
+ if ( !ptr ) return spIError();
+ pIError p = IError::GetInterfaceVersion() > 1 ? ptr->GetInterfacePointer< IError >() : ptr;
+ return MakeUncheckedSharedPointer( p, __FILE__, __LINE__, false );
+ }
+
+}
+#endif // BUILDING_XMPCOMMON_LIB || SOURCE_COMPILING_XMP_ALL
diff --git a/XMPCommon/source/ErrorNotifierWrapperImpl.cpp b/XMPCommon/source/ErrorNotifierWrapperImpl.cpp
new file mode 100644
index 0000000..e1ada62
--- /dev/null
+++ b/XMPCommon/source/ErrorNotifierWrapperImpl.cpp
@@ -0,0 +1,46 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/XMPCommonFwdDeclarations_I.h"
+namespace XMP_COMPONENT_INT_NAMESPACE {
+ class ErrorNotifierWrapperImpl_v1;
+}
+#define FRIEND_CLASS_DECLARATION() friend class XMP_COMPONENT_INT_NAMESPACE::ErrorNotifierWrapperImpl_v1;
+#define IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED 1
+ #include "XMPCommon/ImplHeaders/ErrorNotifierWrapperImpl.h"
+#undef IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED
+#undef FRIEND_CLASS_DECLARATION
+
+#include "XMPCommon/Utilities/TWrapperFunctions_I.h"
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+
+ bool APICALL ErrorNotifierWrapperImpl_v1::Notify( const spcIError & err ) {
+ uint32 exceptionCaught( 0 );
+ uint32 returnValue = mErrorNotifier->notify( err.get(), exceptionCaught );
+ if ( exceptionCaught ) {
+ return false;
+ }
+ return returnValue != 0 ? true : false;
+ }
+
+ ErrorNotifierWrapperImpl_v1::ErrorNotifierWrapperImpl_v1( IErrorNotifier_v1 * errorNotifier )
+ : mErrorNotifier( errorNotifier ) {}
+
+ pIErrorNotifier CreateErrorNotifierWrapperImpl( pIErrorNotifier_base errorNotifier ) {
+ if ( errorNotifier == NULL )
+ return NULL;
+ // start with the highest available version and keep on going down
+ if ( IErrorNotifier_v1 * ptr = dynamic_cast< IErrorNotifier_v1 * >( errorNotifier ) ) {
+ return new ErrorNotifierWrapperImpl_v1( errorNotifier );
+ } else {
+ return NULL;
+ }
+ }
+}
diff --git a/XMPCommon/source/IConfigurable_I.cpp b/XMPCommon/source/IConfigurable_I.cpp
new file mode 100644
index 0000000..8ce7e69
--- /dev/null
+++ b/XMPCommon/source/IConfigurable_I.cpp
@@ -0,0 +1,142 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/Interfaces/BaseInterfaces/IConfigurable_I.h"
+#include "XMPCommon/Utilities/TWrapperFunctions_I.h"
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+
+ void APICALL IConfigurable_I::SetParameter( const uint64 & key, bool value ) {
+ CombinedDataValue uValue;
+ uValue.boolValue = value;
+ SetParameter( key, kDTBool, uValue );
+ }
+
+ void APICALL IConfigurable_I::SetParameter( const uint64 & key, uint64 value ) {
+ CombinedDataValue uValue;
+ uValue.uint64Value = value;
+ SetParameter( key, kDTUint64, uValue );
+ }
+
+ void APICALL IConfigurable_I::SetParameter( const uint64 & key, int64 value ) {
+ CombinedDataValue uValue;
+ uValue.int64Value = value;
+ SetParameter( key, kDTInt64, uValue );
+ }
+
+ void APICALL IConfigurable_I::SetParameter( const uint64 & key, double value ) {
+ CombinedDataValue uValue;
+ uValue.doubleValue = value;
+ SetParameter( key, kDTDouble, uValue );
+ }
+
+ void APICALL IConfigurable_I::SetParameter( const uint64 & key, char value ) {
+ CombinedDataValue uValue;
+ uValue.charValue = value;
+ SetParameter( key, kDTChar, uValue );
+ }
+
+ void APICALL IConfigurable_I::SetParameter( const uint64 & key, const char * value ) {
+ CombinedDataValue uValue;
+ uValue.constCharPtrValue = value;
+ SetParameter( key, kDTConstCharBuffer, uValue );
+ }
+
+ void APICALL IConfigurable_I::SetParameter( const uint64 & key, const void * value ) {
+ CombinedDataValue uValue;
+ uValue.constVoidPtrValue = value;
+ SetParameter( key, kDTConstVoidPtr, uValue );
+ }
+
+ void APICALL IConfigurable_I::setParameter( const uint64 & key, uint32 dataType, const CombinedDataValue & dataValue, pcIError_base & error ) __NOTHROW__ {
+ if ( dataType == IConfigurable::kDTBool ) {
+ CombinedDataValue & temp = const_cast< CombinedDataValue & >( dataValue );
+ temp.boolValue = dataValue.uint32Value != 0 ? true : false;
+ }
+ CallUnSafeFunctionReturningVoid< IConfigurable_I, const uint64 &, eDataType, const CombinedDataValue & >(
+ error, this, &IConfigurable_I::SetParameter, __FILE__, __LINE__, key, static_cast< eDataType >( dataType ), dataValue );
+ }
+
+ bool APICALL IConfigurable_I::GetParameter( const uint64 & key, bool & value ) const {
+ CombinedDataValue uValue;
+ auto a = GetParameter( key, kDTBool, uValue );
+ value = uValue.boolValue;
+ return a;
+ }
+
+ bool APICALL IConfigurable_I::GetParameter( const uint64 & key, uint64 & value ) const {
+ CombinedDataValue uValue;
+ auto a = GetParameter( key, kDTUint64, uValue );
+ value = uValue.uint64Value;
+ return a;
+ }
+
+ bool APICALL IConfigurable_I::GetParameter( const uint64 & key, int64 & value ) const {
+ CombinedDataValue uValue;
+ auto a = GetParameter( key, kDTInt64, uValue );
+ value = uValue.int64Value;
+ return a;
+ }
+
+ bool APICALL IConfigurable_I::GetParameter( const uint64 & key, double & value ) const {
+ CombinedDataValue uValue;
+ auto a = GetParameter( key, kDTDouble, uValue );
+ value = uValue.doubleValue;
+ return a;
+ }
+
+ bool APICALL IConfigurable_I::GetParameter( const uint64 & key, char & value ) const {
+ CombinedDataValue uValue;
+ auto a = GetParameter( key, kDTChar, uValue );
+ value = uValue.charValue;
+ return a;
+ }
+
+ bool APICALL IConfigurable_I::GetParameter( const uint64 & key, const char * & value ) const {
+ CombinedDataValue uValue;
+ auto a = GetParameter( key, kDTConstCharBuffer, uValue );
+ value = uValue.constCharPtrValue;
+ return a;
+ }
+
+ bool APICALL IConfigurable_I::GetParameter( const uint64 & key, const void * & value ) const {
+ CombinedDataValue uValue;
+ auto a = GetParameter( key, kDTConstVoidPtr, uValue );
+ value = uValue.constVoidPtrValue;
+ return a;
+ }
+
+ uint32 APICALL IConfigurable_I::getParameter( const uint64 & key, uint32 dataType, CombinedDataValue & value, pcIError_base & error ) const __NOTHROW__ {
+ uint32 retValue = CallConstUnSafeFunction< IConfigurable_I, uint32, bool, const uint64 &, eDataType, CombinedDataValue & >(
+ error, this, false, &IConfigurable_I::GetParameter, __FILE__, __LINE__, key, static_cast< eDataType >( dataType ), value );
+ if ( dataType == kDTBool )
+ value.boolValue = value.uint32Value != 0;
+ return retValue;
+ }
+
+ uint32 APICALL IConfigurable_I::removeParameter( const uint64 & key, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunction< IConfigurable, uint32, bool, const uint64 & >(
+ error, this, false, &IConfigurable::RemoveParameter, __FILE__, __LINE__, key );
+ }
+
+ void APICALL IConfigurable_I::getAllParameters( uint64 * array, sizet count ) const __NOTHROW__ {
+ sizet innerCount = Size();
+ std::vector< uint64 > vec = GetAllParameters();
+ for ( sizet i = 0; i < innerCount; i++ ) {
+ array[i] = vec[i];
+ }
+ }
+
+ uint32 APICALL IConfigurable_I::getDataType( const uint64 & key, pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunction< IConfigurable, uint32, eDataType, const uint64 & >(
+ error, this, kDTNone, &IConfigurable::GetDataType, __FILE__, __LINE__, key );
+ }
+
+}
+
diff --git a/XMPCommon/source/IConfigurationManager_I.cpp b/XMPCommon/source/IConfigurationManager_I.cpp
new file mode 100644
index 0000000..7b9e579
--- /dev/null
+++ b/XMPCommon/source/IConfigurationManager_I.cpp
@@ -0,0 +1,75 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/Interfaces/IConfigurationManager_I.h"
+#include "XMPCommon/Utilities/TWrapperFunctions_I.h"
+#include "XMPCommon/BaseClasses/MemoryManagedObject.h"
+
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+ extern pIErrorNotifier CreateErrorNotifierWrapperImpl( pIErrorNotifier_base errorNotifier );
+
+ uint32 APICALL IConfigurationManager_I::registerMemoryAllocator( pIMemoryAllocator_base memoryAllocator, pcIError_base & error ) __NOTHROW__ {
+ // since IMemoryAllocator is at version 1, there is no need for the wrapper class.
+ return CallUnSafeFunction< IConfigurationManager_v1, uint32, bool, pIMemoryAllocator >(
+ error, this, 0, &IConfigurationManager_v1::RegisterMemoryAllocator, __FILE__, __LINE__, memoryAllocator );
+ }
+
+ uint32 APICALL IConfigurationManager_I::registerErrorNotifier( pIErrorNotifier_base clientErrorNotifier, pcIError_base & error ) __NOTHROW__ {
+ pIErrorNotifier ptr = CreateErrorNotifierWrapperImpl( clientErrorNotifier );
+ return CallUnSafeFunction< IConfigurationManager_v1, uint32, bool, pIErrorNotifier >(
+ error, this, 0, &IConfigurationManager_v1::RegisterErrorNotifier, __FILE__, __LINE__, ptr );
+ }
+
+ uint32 APICALL IConfigurationManager_I::disableMultiThreading( pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunction< IConfigurationManager_v1, uint32, bool >(
+ error, this, 0, &IConfigurationManager_v1::DisableMultiThreading, __FILE__, __LINE__ );
+ }
+
+ uint32 APICALL IConfigurationManager_I::isMultiThreaded( pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunction< IConfigurationManager_v1, uint32, bool >(
+ error, this, 0, &IConfigurationManager_v1::IsMultiThreaded, __FILE__, __LINE__ );
+ }
+
+ pvoid APICALL IConfigurationManager_I::GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion ) {
+ return GetInterfacePointerInternal( interfaceID, interfaceVersion, true );
+ }
+
+ pvoid APICALL IConfigurationManager_I::getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__ {
+ typedef pvoid( APICALL IConfigurationManager_I::*Func )( uint64, uint32 );
+ Func fnPtr = &IConfigurationManager_I::GetInterfacePointer;
+ return CallUnSafeFunction< IConfigurationManager_I, pvoid, pvoid, uint64, uint32 >(
+ error, this, NULL, fnPtr, __FILE__, __LINE__, interfaceID, interfaceVersion );
+ }
+
+ pvoid APICALL IConfigurationManager_I::GetInterfacePointerInternal( uint64 interfaceID, uint32 interfaceVersion, bool isTopLevel ) {
+ if ( interfaceID == kIConfigurationManagerID ) {
+ switch ( interfaceVersion ) {
+ case 1:
+ return static_cast< IConfigurationManager_v1 * >( this );
+ break;
+
+ case kInternalInterfaceVersionNumber:
+ return this;
+ break;
+
+ default:
+ throw IError_I::CreateInterfaceVersionNotAvailableError(
+ IError_v1::kESOperationFatal, interfaceID, interfaceVersion, __FILE__, __LINE__ );
+ break;
+ }
+ }
+ if ( isTopLevel )
+ throw IError_I::CreateInterfaceNotAvailableError(
+ IError_v1::kESOperationFatal, kIConfigurationManagerID, interfaceID, __FILE__, __LINE__ );
+ return NULL;
+ }
+
+}
+
diff --git a/XMPCommon/source/IErrorNotifier_I.cpp b/XMPCommon/source/IErrorNotifier_I.cpp
new file mode 100644
index 0000000..601771d
--- /dev/null
+++ b/XMPCommon/source/IErrorNotifier_I.cpp
@@ -0,0 +1,30 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/Interfaces/IErrorNotifier_I.h"
+#include "XMPCommon/ImplHeaders/DefaultErrorNotifierImpl.h"
+
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+
+ static DefaultErrorNotifierImpl sDefaultErrorNotifier;
+ static pIErrorNotifier sErrorNotifier( &sDefaultErrorNotifier );
+
+ pIErrorNotifier IErrorNotifier_I::GetErrorNotifier() {
+ return sErrorNotifier;
+ }
+
+ pIErrorNotifier IErrorNotifier_I::SetErrorNotifier( pIErrorNotifier ErrorNotifier ) {
+ pIErrorNotifier old = sErrorNotifier;
+ if ( ErrorNotifier ) sErrorNotifier = ErrorNotifier;
+ else sErrorNotifier = &sDefaultErrorNotifier;
+ return old;
+ }
+
+}
diff --git a/XMPCommon/source/IError_I.cpp b/XMPCommon/source/IError_I.cpp
new file mode 100644
index 0000000..c257d9f
--- /dev/null
+++ b/XMPCommon/source/IError_I.cpp
@@ -0,0 +1,143 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/Interfaces/IError_I.h"
+#include "XMPCommon/Utilities/TWrapperFunctions_I.h"
+#include "XMPCommon/Interfaces/IUTF8String.h"
+#include "XMPCommon/XMPCommonErrorCodes_I.h"
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+
+ void APICALL IError_I::AppendParameter( const spcIUTF8String & string ) __NOTHROW__ {
+ AppendParameter( string->c_str(), string->size() );
+ }
+
+ uint32 APICALL IError_I::getCode( pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunction< IError_v1, uint32, eErrorCode >(
+ error, this, 0, &IError_v1::GetCode, __FILE__, __LINE__ );
+ }
+
+ uint32 APICALL IError_I::getDomain( pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunction< IError_v1, uint32, eErrorDomain >(
+ error, this, 0, &IError_v1::GetDomain, __FILE__, __LINE__ );
+ }
+
+ uint32 APICALL IError_I::getSeverity( pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunction< IError_v1, uint32, eErrorSeverity >(
+ error, this, 0, &IError_v1::GetSeverity, __FILE__, __LINE__ );
+ }
+
+ pcIUTF8String_base APICALL IError_I::getMessage( pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunctionReturningSharedPointer< IError_v1, pcIUTF8String_base, const IUTF8String >(
+ error, this, &IError_v1::GetMessage, __FILE__, __LINE__ );
+ }
+
+ pcIUTF8String_base APICALL IError_I::getLocation( pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunctionReturningSharedPointer< IError_v1, pcIUTF8String_base, const IUTF8String >(
+ error, this, &IError_v1::GetLocation, __FILE__, __LINE__ );
+
+ }
+
+ pcIUTF8String_base APICALL IError_I::getParameter( sizet index, pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunctionReturningSharedPointer< IError_v1, pcIUTF8String_base, const IUTF8String, sizet >(
+ error, this, &IError_v1::GetParameter, __FILE__, __LINE__, index );
+
+ }
+
+ pIError_base APICALL IError_I::getNextError( pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunctionReturningSharedPointer< IError_v1, pIError_base, IError >(
+ error, this, &IError_v1::GetNextError, __FILE__, __LINE__ );
+ }
+
+ pIError_base APICALL IError_I::setNextError( pIError_base nextError, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunctionReturningSharedPointer< IError_v1, pIError_base, IError, const spIError & >(
+ error, this, &IError_v1::SetNextError, __FILE__, __LINE__, IError_v1::MakeShared( nextError ) );
+ }
+
+ pvoid APICALL IError_I::GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion ) {
+ return GetInterfacePointerInternal( interfaceID, interfaceVersion, true );
+ }
+
+ pvoid APICALL IError_I::getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__{
+ return CallUnSafeFunction< IError_I, pvoid, pvoid, uint64, uint32 >(
+ error, this, NULL, &IError_I::GetInterfacePointer, __FILE__, __LINE__, interfaceID, interfaceVersion );
+ }
+
+ pvoid APICALL IError_I::GetInterfacePointerInternal( uint64 interfaceID, uint32 interfaceVersion, bool isTopLevel ) {
+ if ( interfaceID == kIUTF8StringID ) {
+ switch ( interfaceVersion ) {
+ case 1:
+ return static_cast< IError_v1 * >( this );
+ break;
+
+ case kInternalInterfaceVersionNumber:
+ return this;
+ break;
+
+ default:
+ throw IError_I::CreateInterfaceVersionNotAvailableError(
+ IError_v1::kESOperationFatal, interfaceID, interfaceVersion, __FILE__, __LINE__ );
+ break;
+ }
+ }
+ if ( isTopLevel )
+ throw IError_I::CreateInterfaceNotAvailableError(
+ IError_v1::kESOperationFatal, kIErrorID, interfaceID, __FILE__, __LINE__ );
+ return NULL;
+ }
+
+ spIError_I IError_I::CreateUnknownExceptionCaughtError( IError_v1::eErrorSeverity severity, const char * fileName, uint32 lineNumber ) {
+ auto error = CreateError( IError_v1::kEDGeneral, kGECUnknownExceptionCaught, severity );
+ error->SetMessage( "Unknown Exception Caught" );
+ error->SetLocation( fileName, lineNumber );
+ return error;
+ }
+
+ spIError_I IError_I::CreateInterfaceVersionNotAvailableError( IError_v1::eErrorSeverity severity, uint64 interfaceID, uint32 requestedVersion, const char * fileName, uint32 lineNumber ) {
+ auto error = CreateError( IError_v1::kEDGeneral, kGECVersionUnavailable, severity );
+ error->SetMessage( "Requested Interface Version is not available" );
+ error->SetLocation( fileName, lineNumber );
+ error->AppendParameter( interfaceID );
+ error->AppendParameter( requestedVersion );
+ return error;
+ }
+
+ spIError_I IError_I::CreateInterfaceNotAvailableError( IError_v1::eErrorSeverity severity, uint64 interfaceID, uint64 requestedInterfaceID, const char * fileName, uint32 lineNumber ) {
+ auto error = CreateError( IError_v1::kEDGeneral, kGECInterfaceUnavailable, severity );
+ error->SetMessage( "Requested Interface is not available" );
+ error->SetLocation( fileName, lineNumber );
+ error->AppendParameter( interfaceID );
+ error->AppendParameter( requestedInterfaceID );
+ return error;
+ }
+
+
+ spIError_I IError_I::CreateClientCodeExceptionError( IError_v1::eErrorSeverity severity, const char * fileName, uint32 lineNumber ) {
+ auto error = CreateError( IError_v1::kEDGeneral, kGECClientThrownExceptionCaught, severity );
+ error->SetMessage( "Client Code raised an exception" );
+ error->SetLocation( fileName, lineNumber );
+ return error;
+ }
+
+
+ uint32 ReportErrorAndContinueABISafe( uint32 errorDomain, uint32 errorCode, uint32 errorSeverity, const char * message, pcIError_base & error ) __NOTHROW__ {
+ try {
+ NOTIFY_ERROR( static_cast< IError::eErrorDomain >( errorDomain ), errorCode, message,
+ static_cast< IError::eErrorSeverity >( errorSeverity ), false, false );
+ return 1;
+ } catch ( spcIError err ) {
+ err->GetISharedObject_I()->AcquireInternal();
+ error = err.get();
+ } catch ( ... ) {
+ error = IError_I::CreateClientCodeExceptionError( static_cast< IError::eErrorSeverity >( errorSeverity ), __FILE__, __LINE__ ).get();
+ error->GetISharedObject_I()->AcquireInternal();
+ }
+ return 0;
+ }
+}
diff --git a/XMPCommon/source/IMemoryAllocator_I.cpp b/XMPCommon/source/IMemoryAllocator_I.cpp
new file mode 100644
index 0000000..3aa0a60
--- /dev/null
+++ b/XMPCommon/source/IMemoryAllocator_I.cpp
@@ -0,0 +1,26 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/Interfaces/IMemoryAllocator_I.h"
+#include "XMPCommon/ImplHeaders/MemoryAllocatorWrapperImpl.h"
+
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+
+ static MemoryAllocatorWrapperImpl sDefaultMemoryAllocator;
+
+ pIMemoryAllocator IMemoryAllocator_I::GetMemoryAllocator() __NOTHROW__ {
+ return &sDefaultMemoryAllocator;
+ }
+
+ pIMemoryAllocator IMemoryAllocator_I::SetMemoryAllocator( pIMemoryAllocator_base memoryAllocator ) __NOTHROW__ {
+ return sDefaultMemoryAllocator.SetMemoryAllocator( memoryAllocator );
+ }
+
+}
diff --git a/XMPCommon/source/IUTF8StringComparator.cpp b/XMPCommon/source/IUTF8StringComparator.cpp
new file mode 100644
index 0000000..c7fe411
--- /dev/null
+++ b/XMPCommon/source/IUTF8StringComparator.cpp
@@ -0,0 +1,26 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/Utilities/IUTF8StringComparator.h"
+#include "XMPCommon/Interfaces/IUTF8String.h"
+#include <algorithm>
+#include <cstring>
+namespace XMP_COMPONENT_INT_NAMESPACE {
+
+ bool IUTF8StringComparator::operator()( const spcIUTF8String & left, const spcIUTF8String & right ) const {
+ sizet str1Size = left->size(), str2Size = right->size();
+ int result = strncmp( left->c_str(), right->c_str(), std::min( str1Size, str2Size ) );
+ if ( result == 0 && str1Size != str2Size )
+ return str1Size < str2Size;
+ if ( result < 0 )
+ return true;
+ return false;
+ }
+
+}
diff --git a/XMPCommon/source/IUTF8String_I.cpp b/XMPCommon/source/IUTF8String_I.cpp
new file mode 100644
index 0000000..5e67cdd
--- /dev/null
+++ b/XMPCommon/source/IUTF8String_I.cpp
@@ -0,0 +1,160 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/Interfaces/IUTF8String_I.h"
+#include "XMPCommon/Utilities/TWrapperFunctions_I.h"
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+
+ pIUTF8String_base APICALL IUTF8String_I::assign( const char * buffer, sizet count, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunctionReturningSharedPointer< IUTF8String_v1, pIUTF8String_base, IUTF8String, const char *, sizet >(
+ error, this, &IUTF8String_v1::assign, __FILE__, __LINE__, buffer, count );
+ }
+
+ pIUTF8String_base APICALL IUTF8String_I::assign( pcIUTF8String_base str, sizet srcPos, sizet count, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunctionReturningSharedPointer< IUTF8String_v1, pIUTF8String_base, IUTF8String, const spcIUTF8String &, sizet, sizet >(
+ error, this, &IUTF8String_v1::assign, __FILE__, __LINE__, IUTF8String::MakeShared( str ), srcPos, count );
+ }
+
+ pIUTF8String_base APICALL IUTF8String_I::append( const char * buffer, sizet count, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunctionReturningSharedPointer< IUTF8String_v1, pIUTF8String_base, IUTF8String, const char *, sizet >(
+ error, this, &IUTF8String_v1::append, __FILE__, __LINE__, buffer, count );
+ }
+
+ pIUTF8String_base APICALL IUTF8String_I::append( pcIUTF8String_base str, sizet srcPos, sizet count, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunctionReturningSharedPointer< IUTF8String_v1, pIUTF8String_base, IUTF8String, const spcIUTF8String &, sizet, sizet >(
+ error, this, &IUTF8String_v1::append, __FILE__, __LINE__, IUTF8String::MakeShared( str ), srcPos, count );
+ }
+
+ pIUTF8String_base APICALL IUTF8String_I::insert( sizet pos, const char * buf, sizet count, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunctionReturningSharedPointer< IUTF8String_v1, pIUTF8String_base, IUTF8String, sizet, const char *, sizet >(
+ error, this, &IUTF8String_v1::insert, __FILE__, __LINE__, pos, buf, count );
+ }
+
+ pIUTF8String_base APICALL IUTF8String_I::insert( sizet pos, pcIUTF8String_base src, sizet srcPos, sizet count, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunctionReturningSharedPointer< IUTF8String_v1, pIUTF8String_base, IUTF8String, sizet, const spcIUTF8String &, sizet, sizet >(
+ error, this, &IUTF8String_v1::insert, __FILE__, __LINE__, pos, IUTF8String::MakeShared( src ), srcPos, count );
+ }
+
+ pIUTF8String_base APICALL IUTF8String_I::erase( sizet pos, sizet count, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunctionReturningSharedPointer< IUTF8String_v1, pIUTF8String_base, IUTF8String, sizet, sizet >(
+ error, this, &IUTF8String_v1::erase, __FILE__, __LINE__, pos, count );
+ }
+
+ void APICALL IUTF8String_I::resize( sizet n, pcIError_base & error ) __NOTHROW__ {
+ typedef void( APICALL IUTF8String_v1::*Func )( sizet );
+ Func fnPtr = &IUTF8String_v1::resize;
+ return CallUnSafeFunctionReturningVoid< IUTF8String_v1, sizet >(
+ error, this, fnPtr, __FILE__, __LINE__, n );
+ }
+
+ pIUTF8String_base APICALL IUTF8String_I::replace( sizet pos, sizet count, const char * buf, sizet srcCount, pcIError_base & error ) __NOTHROW__{
+ return CallUnSafeFunctionReturningSharedPointer< IUTF8String_v1, pIUTF8String_base, IUTF8String, sizet, sizet, const char *, sizet >(
+ error, this, &IUTF8String_v1::replace, __FILE__, __LINE__, pos, count, buf, count );
+ }
+
+ pIUTF8String_base APICALL IUTF8String_I::replace( sizet pos, sizet count, pcIUTF8String_base src, sizet srcPos, sizet srcCount, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunctionReturningSharedPointer< IUTF8String_v1, pIUTF8String_base, IUTF8String, sizet, sizet, const spcIUTF8String &, sizet, sizet >(
+ error, this, &IUTF8String_v1::replace, __FILE__, __LINE__, pos, count, IUTF8String::MakeShared( src ), srcPos, srcCount );
+ }
+
+ sizet APICALL IUTF8String_I::copy( char * buf, sizet len, sizet pos, pcIError_base & error ) const __NOTHROW__ {
+ typedef sizet ( APICALL IUTF8String_v1::*Func )( char *, sizet, sizet ) const;
+ Func fnPtr = &IUTF8String_v1::copy;
+ return CallConstUnSafeFunction< IUTF8String_v1, sizet, sizet, char *, sizet, sizet >(
+ error, this, 0, fnPtr, __FILE__, __LINE__, buf, len, pos );
+ }
+
+ sizet APICALL IUTF8String_I::find( const char * buf, sizet pos, sizet count, pcIError_base & error ) const __NOTHROW__ {
+ typedef sizet ( APICALL IUTF8String_v1::*Func )( const char *, sizet, sizet ) const;
+ Func fnPtr = &IUTF8String_v1::find;
+ return CallConstUnSafeFunction< IUTF8String_v1, sizet, sizet, const char *, sizet, sizet >(
+ error, this, 0, fnPtr, __FILE__, __LINE__, buf, pos, count );
+ }
+
+ sizet APICALL IUTF8String_I::find( pcIUTF8String_base src, sizet pos, sizet count, pcIError_base & error ) const __NOTHROW__ {
+ typedef sizet ( APICALL IUTF8String_v1::*Func )( const spcIUTF8String &, sizet, sizet ) const;
+ Func fnPtr = &IUTF8String_v1::find;
+ return CallConstUnSafeFunction< IUTF8String_v1, sizet, sizet, const spcIUTF8String &, sizet, sizet >(
+ error, this, 0, fnPtr, __FILE__, __LINE__, IUTF8String::MakeShared( src ), pos, count );
+ }
+
+ sizet APICALL IUTF8String_I::rfind( const char * buf, sizet pos, sizet count, pcIError_base & error ) const __NOTHROW__ {
+ typedef sizet ( APICALL IUTF8String_v1::*Func )( const char *, sizet, sizet ) const;
+ Func fnPtr = &IUTF8String_v1::rfind;
+ return CallConstUnSafeFunction< IUTF8String_v1, sizet, sizet, const char *, sizet, sizet >(
+ error, this, 0, fnPtr, __FILE__, __LINE__, buf, pos, count );
+ }
+
+ sizet APICALL IUTF8String_I::rfind( pcIUTF8String_base src, sizet pos, sizet count, pcIError_base & error ) const __NOTHROW__ {
+ typedef sizet( APICALL IUTF8String_v1::*Func )( const spcIUTF8String &, sizet, sizet ) const;
+ Func fnPtr = &IUTF8String_v1::rfind;
+ return CallConstUnSafeFunction< IUTF8String_v1, sizet, sizet, const spcIUTF8String &, sizet, sizet >(
+ error, this, 0, fnPtr, __FILE__, __LINE__, IUTF8String::MakeShared( src ), pos, count );
+ }
+
+ int32 APICALL IUTF8String_I::compare( sizet pos, sizet len, const char * buf, sizet count, pcIError_base & error ) const __NOTHROW__ {
+ typedef int32 ( APICALL IUTF8String_v1::*Func )( sizet, sizet, const char *, sizet ) const;
+ Func fnPtr = &IUTF8String_v1::compare;
+ return CallConstUnSafeFunction< IUTF8String_v1, int32, int32, sizet, sizet, const char *, sizet >(
+ error, this, 0, fnPtr, __FILE__, __LINE__, pos, len, buf, count );
+ }
+
+ int32 APICALL IUTF8String_I::compare( sizet pos, sizet len, pcIUTF8String_base str, sizet strPos, sizet strLen, pcIError_base & error ) const __NOTHROW__ {
+ typedef int32( APICALL IUTF8String_v1::*Func )( sizet, sizet, const spcIUTF8String &, sizet, sizet ) const;
+ Func fnPtr = &IUTF8String_v1::compare;
+ return CallConstUnSafeFunction< IUTF8String_v1, int32, int32, sizet, sizet, const spcIUTF8String &, sizet, sizet >(
+ error, this, 0, fnPtr, __FILE__, __LINE__, pos, len, IUTF8String_I::MakeShared( str), strPos, strLen );
+ }
+
+ pIUTF8String_base APICALL IUTF8String_I::substr( sizet pos, sizet count, pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunctionReturningSharedPointer< IUTF8String_v1, pIUTF8String_base, IUTF8String, sizet, sizet >(
+ error, this, &IUTF8String_v1::substr, __FILE__, __LINE__, pos, count );
+ }
+
+ uint32 APICALL IUTF8String_I::empty( pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunction< IUTF8String_v1, uint32, bool >(
+ error, this, 0, &IUTF8String_v1::empty, __FILE__, __LINE__ );
+ }
+
+ pvoid APICALL IUTF8String_I::GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion ) {
+ return GetInterfacePointerInternal( interfaceID, interfaceVersion, true );
+ }
+
+ pvoid APICALL IUTF8String_I::getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__ {
+ typedef pvoid ( APICALL IUTF8String_I::*Func )( uint64, uint32 );
+ Func fnPtr = &IUTF8String_I::GetInterfacePointer;
+ return CallUnSafeFunction< IUTF8String_I, pvoid, pvoid, uint64, uint32 >(
+ error, this, NULL, fnPtr, __FILE__, __LINE__, interfaceID, interfaceVersion );
+ }
+
+ pvoid APICALL IUTF8String_I::GetInterfacePointerInternal( uint64 interfaceID, uint32 interfaceVersion, bool isTopLevel ) {
+ if ( interfaceID == kIUTF8StringID ) {
+ switch ( interfaceVersion ) {
+ case 1:
+ return static_cast< IUTF8String_v1 * >( this );
+ break;
+
+ case kInternalInterfaceVersionNumber:
+ return this;
+ break;
+
+ default:
+ throw IError_I::CreateInterfaceVersionNotAvailableError(
+ IError_v1::kESOperationFatal, interfaceID, interfaceVersion, __FILE__, __LINE__ );
+ break;
+ }
+ }
+ if ( isTopLevel )
+ throw IError_I::CreateInterfaceNotAvailableError(
+ IError_v1::kESOperationFatal, kIUTF8StringID, interfaceID, __FILE__, __LINE__ );
+ return NULL;
+ }
+
+}
diff --git a/XMPCommon/source/MemoryAllocatorWrapperImpl.cpp b/XMPCommon/source/MemoryAllocatorWrapperImpl.cpp
new file mode 100644
index 0000000..e5acf4e
--- /dev/null
+++ b/XMPCommon/source/MemoryAllocatorWrapperImpl.cpp
@@ -0,0 +1,76 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#define IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED 1
+ #include "XMPCommon/ImplHeaders/MemoryAllocatorWrapperImpl.h"
+#undef IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED
+
+#include <cstdlib>
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+
+ using AdobeXMPCommon::sizet;
+
+ static const size_t kSIZE_OF_POINTER = sizeof( void * );
+ static const size_t kOFFSET = ( ( kSIZE_OF_POINTER + sizeof( sizet ) - 1 ) / sizeof( sizet ) )
+ * sizeof( sizet );
+
+ MemoryAllocatorWrapperImpl::MemoryAllocatorWrapperImpl()
+ : mpMemoryAllocator( NULL ) { }
+
+ AdobeXMPCommon::pIMemoryAllocator_base MemoryAllocatorWrapperImpl::SetMemoryAllocator( pIMemoryAllocator_base memoryAllocator ) {
+ auto retValue = mpMemoryAllocator;
+ mpMemoryAllocator = memoryAllocator;
+ return retValue;
+ }
+
+ void * APICALL MemoryAllocatorWrapperImpl::allocate( sizet size ) __NOTHROW__ {
+ size_t actualSize = size + kOFFSET;
+ void * memPtr = NULL;
+ if ( mpMemoryAllocator )
+ memPtr = mpMemoryAllocator->allocate( actualSize );
+ else
+ memPtr = malloc( actualSize );
+
+ if ( memPtr ) {
+ IMemoryAllocator ** address = ( IMemoryAllocator ** ) memPtr;
+ *address = mpMemoryAllocator;
+ return ( XMP_Uns8 * ) memPtr + kOFFSET;
+ }
+ return NULL;
+
+ }
+
+ void APICALL MemoryAllocatorWrapperImpl::deallocate( void * ptr ) __NOTHROW__ {
+ void * actualMemPtr = ( XMP_Uns8 * ) ptr - kOFFSET;
+ pIMemoryAllocator allocator = *( ( IMemoryAllocator ** ) actualMemPtr );
+ if ( allocator )
+ allocator->deallocate( actualMemPtr );
+ else
+ free( actualMemPtr );
+ }
+
+ void * APICALL MemoryAllocatorWrapperImpl::reallocate( void * ptr, sizet size ) __NOTHROW__ {
+ size_t actualSize = size + kOFFSET;
+ void * actualMemPtr = ( XMP_Uns8 * ) ptr - kOFFSET;
+ void * memPtr( NULL );
+ if ( mpMemoryAllocator )
+ memPtr = mpMemoryAllocator->reallocate( actualMemPtr, actualSize );
+ else
+ memPtr = realloc( actualMemPtr, actualSize );
+
+ if ( memPtr ) {
+ IMemoryAllocator ** address = ( IMemoryAllocator ** ) memPtr;
+ *address = mpMemoryAllocator;
+ return ( XMP_Uns8 * ) memPtr + kOFFSET;
+ }
+ return NULL;
+ }
+
+}
diff --git a/XMPCommon/source/MemoryManagedObject.cpp b/XMPCommon/source/MemoryManagedObject.cpp
new file mode 100644
index 0000000..ab543a2
--- /dev/null
+++ b/XMPCommon/source/MemoryManagedObject.cpp
@@ -0,0 +1,68 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+
+#include "XMPCommon/BaseClasses/MemoryManagedObject.h"
+#include "XMPCommon/Interfaces/IMemoryAllocator_I.h"
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+
+ void * MemoryManagedObject::operator new( std::size_t size ) {
+ void * ptr = operator new ( size, std::nothrow_t() );
+ if ( ptr )
+ return ptr;
+ throw std::bad_alloc();
+ }
+
+ void * MemoryManagedObject::operator new( std::size_t size, const std::nothrow_t & nothrow ) throw () {
+ return IMemoryAllocator_I::GetMemoryAllocator()->allocate( size );
+ }
+
+ void * MemoryManagedObject::operator new( std::size_t size, void * ptr ) throw () {
+ return ptr;
+ }
+
+ void * MemoryManagedObject::operator new[]( std::size_t size ) {
+ return operator new( size );
+ }
+
+ void * MemoryManagedObject::operator new[]( std::size_t size, const std::nothrow_t & nothrow ) throw () {
+ return operator new( size, nothrow );
+ }
+
+ void * MemoryManagedObject::operator new[]( std::size_t size, void * ptr ) throw () {
+ return operator new( size, ptr );
+ }
+
+ void MemoryManagedObject::operator delete( void * ptr ) throw () {
+ IMemoryAllocator_I::GetMemoryAllocator()->deallocate( ptr );
+ }
+
+ void MemoryManagedObject::operator delete( void * ptr, const std::nothrow_t & nothrow ) throw () {
+ return operator delete( ptr );
+ }
+
+ void MemoryManagedObject::operator delete( void * ptr, void * voidptr2 ) throw () {
+ return;
+ }
+
+ void MemoryManagedObject::operator delete[]( void * ptr ) throw () {
+ return operator delete( ptr );
+ }
+
+ void MemoryManagedObject::operator delete[]( void * ptr, const std::nothrow_t & nothrow ) throw () {
+ return operator delete( ptr, nothrow );
+ }
+
+ void MemoryManagedObject::operator delete[]( void * ptr, void * voidptr2 ) throw () {
+ return operator delete( ptr, voidptr2 );
+ }
+
+}
+
diff --git a/XMPCommon/source/SharedMutexImpl.cpp b/XMPCommon/source/SharedMutexImpl.cpp
new file mode 100644
index 0000000..49e495c
--- /dev/null
+++ b/XMPCommon/source/SharedMutexImpl.cpp
@@ -0,0 +1,46 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#define IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED 1
+ #include "XMPCommon/ImplHeaders/SharedMutexImpl.h"
+#undef IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED
+
+#include "XMPCommon/Utilities/TSmartPointers_I.h"
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+
+ eMultiThreadingErrorCode SharedMutexImpl::Lock() __NOTHROW__ {
+ return kMTECNone;
+ }
+
+ eMultiThreadingErrorCode SharedMutexImpl::TryLock() __NOTHROW__ {
+ return kMTECNone;
+ }
+
+ eMultiThreadingErrorCode SharedMutexImpl::Unlock() __NOTHROW__ {
+ return kMTECNone;
+ }
+
+ eMultiThreadingErrorCode SharedMutexImpl::LockShared() __NOTHROW__ {
+ return kMTECNone;
+ }
+
+ eMultiThreadingErrorCode SharedMutexImpl::TryLockShared() __NOTHROW__ {
+ return kMTECNone;
+ }
+
+ eMultiThreadingErrorCode SharedMutexImpl::UnlockShared() __NOTHROW__ {
+ return kMTECNone;
+ }
+
+ spISharedMutex ISharedMutex::CreateSharedMutex() {
+ return MakeUncheckedSharedPointer( new SharedMutexImpl(), __FILE__, __LINE__ );
+ }
+}
+
diff --git a/XMPCommon/source/SharedObjectImpl.cpp b/XMPCommon/source/SharedObjectImpl.cpp
new file mode 100644
index 0000000..e2aa515
--- /dev/null
+++ b/XMPCommon/source/SharedObjectImpl.cpp
@@ -0,0 +1,40 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#define IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED 1
+ #include "XMPCommon/ImplHeaders/SharedObjectImpl.h"
+#undef IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED
+#include <assert.h>
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+
+ void APICALL SharedObjectImpl::Acquire() const __NOTHROW__ {
+ if ( mCountInternal != 0 ) {
+ --mCountInternal;
+ } else {
+ ++mRefCount;
+ }
+ }
+
+ void APICALL SharedObjectImpl::Release() const __NOTHROW__ {
+ if ( mRefCount.load( ) == 0 || --mRefCount == 0 ) {
+ delete this;
+ }
+ }
+
+ SharedObjectImpl::~SharedObjectImpl() __NOTHROW__ {
+ assert( mRefCount == 0 );
+ }
+
+ void APICALL SharedObjectImpl::AcquireInternal() const __NOTHROW__ {
+ ++mCountInternal;
+ ++mRefCount;
+ }
+
+}
diff --git a/XMPCommon/source/ThreadSafeImpl.cpp b/XMPCommon/source/ThreadSafeImpl.cpp
new file mode 100644
index 0000000..ef4c255
--- /dev/null
+++ b/XMPCommon/source/ThreadSafeImpl.cpp
@@ -0,0 +1,51 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#define IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED 1
+ #include "XMPCommon/ImplHeaders/ThreadSafeImpl.h"
+#undef IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED
+
+#include "XMPCommon/Interfaces/IError_I.h"
+#include "XMPCommon/Interfaces/ISharedMutex.h"
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+
+ // All virtual functions
+
+ // All static functions of _I class.
+
+ void APICALL ThreadSafeImpl::ShareMutex( const spISharedMutex & mutex ) {
+ mSharedMutex = mutex;
+ }
+
+ void APICALL ThreadSafeImpl::UnShareMutex() {
+ if ( mSharedMutex ) {
+ mSharedMutex = ISharedMutex::CreateSharedMutex();
+ } else {
+ mSharedMutex.reset();
+ }
+ }
+
+ void APICALL ThreadSafeImpl::EnableThreadSafety() const __NOTHROW__ {
+ if ( !mSharedMutex ) {
+ mSharedMutex = ISharedMutex::CreateSharedMutex();
+ }
+ }
+
+ void APICALL ThreadSafeImpl::DisableThreadSafety() const __NOTHROW__ {
+ if ( mSharedMutex )
+ mSharedMutex.reset();
+ }
+
+ bool APICALL ThreadSafeImpl::IsThreadSafe() const {
+ if ( mSharedMutex ) return true;
+ return false;
+ }
+
+}
diff --git a/XMPCommon/source/UTF8StringImpl.cpp b/XMPCommon/source/UTF8StringImpl.cpp
new file mode 100644
index 0000000..0957f27
--- /dev/null
+++ b/XMPCommon/source/UTF8StringImpl.cpp
@@ -0,0 +1,268 @@
+// =================================================================================================
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved.
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#define IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED 1
+ #include "XMPCommon/ImplHeaders/UTF8StringImpl.h"
+#undef IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED
+
+#include "XMPCommon/Interfaces/IError_I.h"
+#include "XMPCommon/XMPCommonErrorCodes_I.h"
+#include "XMPCommon/Utilities/TSmartPointers_I.h"
+#include "XMPCommon/Interfaces/IObjectFactory.h"
+
+#include <algorithm>
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+
+ sizet ValidateSrcPosParameter( const spcIUTF8String & src, const sizet & srcPos ) {
+ sizet srcSize = src->size();
+ if ( srcPos > srcSize ) {
+ NOTIFY_ERROR( IError_v1::kEDGeneral, kGECIndexOutOfBounds,
+ "srcPos is greater than length of source", IError_v1::kESOperationFatal,
+ true, srcPos, true, srcSize );
+ }
+ return srcSize;
+ }
+
+ spIUTF8String APICALL UTF8StringImpl::append( const char * buf, sizet count ) {
+ if ( buf && count > 0 ) {
+ if ( count == npos ) // assume null terminated string
+ mString.append( buf );
+ else
+ mString.append( buf, count );
+ }
+ return returnSelfSharedPointer();
+ }
+
+ spIUTF8String APICALL UTF8StringImpl::append( const spcIUTF8String & src, sizet srcPos, sizet count ) {
+ if ( src && count > 0 ) {
+ sizet srcSize = ValidateSrcPosParameter( src, srcPos );
+ mString.append( src->c_str() + srcPos, std::min( count, srcSize - srcPos ) );
+ }
+ return returnSelfSharedPointer();
+ }
+
+ spIUTF8String APICALL UTF8StringImpl::assign( const char * buf, sizet count ) {
+ if ( buf && count > 0 ) {
+ if ( count == npos ) // assume null terminated string
+ mString.assign( buf );
+ else
+ mString.assign( buf, count );
+ } else {
+ mString.clear();
+ }
+ return returnSelfSharedPointer();
+ }
+
+ spIUTF8String APICALL UTF8StringImpl::assign( const spcIUTF8String & src, sizet srcPos, sizet count ) {
+ if ( src && count > 0 ) {
+ sizet srcSize = ValidateSrcPosParameter( src, srcPos );
+ mString.assign( src->c_str() + srcPos, std::min( count, srcSize - srcPos ) );
+ } else {
+ mString.clear();
+ }
+ return returnSelfSharedPointer();
+ }
+
+ spIUTF8String APICALL UTF8StringImpl::insert( sizet pos, const char * buf, sizet count ) {
+ if ( buf && count > 0 ) {
+ sizet size = ValidatePosParameter( pos );
+ if ( count == npos )
+ mString.insert( pos, buf );
+ else
+ mString.insert( pos, buf, count );
+ }
+ return returnSelfSharedPointer();
+ }
+
+ spIUTF8String APICALL UTF8StringImpl::insert( sizet pos, const spcIUTF8String & src, sizet srcPos, sizet count ) {
+ if ( src && count > 0 ) {
+ sizet size = ValidatePosParameter( pos );
+ sizet srcSize = ValidateSrcPosParameter( src, srcPos );
+ mString.insert( pos, src->c_str() + srcPos, std::min( count, srcSize - srcPos ) );
+ }
+ return returnSelfSharedPointer();
+ }
+
+ spIUTF8String APICALL UTF8StringImpl::erase( sizet pos, sizet count ) {
+ if ( count > 0 ) {
+ sizet size = ValidatePosParameter( pos );
+ mString.erase( pos, count );
+ }
+ return returnSelfSharedPointer();
+ }
+
+ void APICALL UTF8StringImpl::resize( sizet n ) {
+ if ( n >= mString.max_size() ) {
+ NOTIFY_ERROR( IError_v1::kEDGeneral, kGECParametersNotAsExpected,
+ "n is equal or greater than max_size", IError_v1::kESOperationFatal,
+ true, n, true, mString.max_size() );
+ }
+ try {
+ mString.resize( n );
+ } catch( ... ) {
+ NOTIFY_ERROR( IError_v1::kEDMemoryManagement, kMMECAllocationFailure,
+ "failed to allocate required memory", IError_v1::kESOperationFatal, false, false );
+ }
+ }
+
+ spIUTF8String APICALL UTF8StringImpl::replace( sizet pos, sizet count, const char * buf, sizet srcCount ) {
+ if ( buf && count > 0 && srcCount > 0 ) {
+ sizet size = ValidatePosParameter( pos );
+ if ( srcCount == npos )
+ mString.replace( pos, count, buf );
+ else
+ mString.replace( pos, count, buf, srcCount );
+ }
+ return returnSelfSharedPointer();
+ }
+
+ spIUTF8String APICALL UTF8StringImpl::replace( sizet pos, sizet count, const spcIUTF8String & src, sizet srcPos, sizet srcCount ) {
+ if ( src && count > 0 && srcCount > 0 ) {
+ sizet size = ValidatePosParameter( pos );
+ sizet srcSize = ValidateSrcPosParameter( src, srcPos );
+ mString.replace( pos, count, src->c_str() + srcPos, std::min( srcCount, srcSize - srcPos ) );
+ }
+ return returnSelfSharedPointer();
+ }
+
+ sizet APICALL UTF8StringImpl::copy( char * buf, sizet len, sizet pos ) const {
+ if ( buf && len > 0 ) {
+ ValidatePosParameter( pos );
+ return mString.copy( buf, len, pos );
+ }
+ return 0;
+ }
+
+ sizet APICALL UTF8StringImpl::find( const char * buf, sizet pos, sizet count ) const {
+ if ( buf && count > 0 ) {
+ return mString.find( buf, pos, count );
+ }
+ return npos;
+ }
+
+ sizet APICALL UTF8StringImpl::find( const spcIUTF8String & src, sizet pos, sizet count ) const {
+ if ( src && src->size() > 0 && count > 0 ) {
+ return mString.find( src->c_str(), pos, count );
+ }
+ return npos;
+ }
+
+ sizet APICALL UTF8StringImpl::rfind( const char * buf, sizet pos, sizet count ) const {
+ if ( buf && count > 0 ) {
+ return mString.rfind( buf, pos, count );
+ }
+ return npos;
+ }
+
+ sizet APICALL UTF8StringImpl::rfind( const spcIUTF8String & src, sizet pos, sizet count ) const {
+ if ( src && src->size() > 0 && count > 0 ) {
+ return mString.rfind( src->c_str(), pos, count );
+ }
+ return npos;
+ }
+
+ int32 APICALL UTF8StringImpl::compare( sizet pos, sizet len, const char * buf, sizet count ) const {
+ if ( buf && len >= 0 && count >= 0 ) {
+ sizet size = ValidatePosParameter( pos );
+ if ( count == npos )
+ return mString.compare( pos, len, buf );
+ else
+ return mString.compare( pos, len, buf, count );
+ }
+ return -1;
+ }
+
+ int32 APICALL UTF8StringImpl::compare( sizet pos, sizet len, const spcIUTF8String & str, sizet strPos, sizet strLen ) const {
+ if ( str && len >= 0 && strLen >= 0 ) {
+ ValidatePosParameter( pos );
+ ValidateSrcPosParameter( str, strPos );
+ return mString.compare( pos, len, str->c_str() + strPos, strLen );
+ }
+ return -1;
+ }
+
+ spIUTF8String APICALL UTF8StringImpl::substr( sizet pos, sizet count ) const {
+ ValidatePosParameter( pos );
+ try {
+ return CreateUTF8String( this->c_str() + pos, std::min( count, this->size() - pos ) );
+ } catch ( ... ) {
+ NOTIFY_ERROR( IError_v1::kEDMemoryManagement, kMMECAllocationFailure,
+ "failed to allocate required memory", IError_v1::kESOperationFatal, false, false );
+ }
+ return spIUTF8String();
+ }
+
+ bool APICALL UTF8StringImpl::empty() const {
+ return mString.empty();
+ }
+
+ const char * APICALL UTF8StringImpl::c_str() const __NOTHROW__ {
+ return mString.c_str();
+ }
+
+ void APICALL UTF8StringImpl::clear() __NOTHROW__ {
+ mString.clear();
+ }
+
+ sizet APICALL UTF8StringImpl::size() const __NOTHROW__ {
+ return mString.size();
+ }
+
+ spIUTF8String UTF8StringImpl::returnSelfSharedPointer() {
+ try {
+ return shared_from_this();
+ } catch ( bad_weak_ptr & ) {
+ return spIUTF8String();
+ }
+ }
+
+ sizet UTF8StringImpl::ValidatePosParameter( const sizet & pos ) const {
+ sizet size = this->size();
+ if ( pos > size ) {
+ NOTIFY_ERROR( IError_v1::kEDGeneral, kGECIndexOutOfBounds,
+ "pos mentioned is out of bounds", IError_v1::kESOperationFatal,
+ true, pos, true, size );
+ }
+ return size;
+ }
+
+ spIUTF8String IUTF8String_I::CreateUTF8String( const char * buf /* = NULL */, sizet count /* = npos */ ) {
+ auto sp = MakeUncheckedSharedPointer( new UTF8StringImpl(), __FILE__, __LINE__, true );
+ sp->assign( buf, count );
+ return sp;
+ }
+
+ TAllocator< spIUTF8String > gTAllocatorUTF8String;
+
+}
+
+#if BUILDING_XMPCOMMON_LIB || SOURCE_COMPILING_XMP_ALL
+namespace AdobeXMPCommon {
+ spIUTF8String IUTF8String_v1::MakeShared( pIUTF8String_base ptr ) {
+ if ( !ptr ) return spIUTF8String();
+ pIUTF8String p = IUTF8String::GetInterfaceVersion() > 1 ? ptr->GetInterfacePointer< IUTF8String >() : ptr;
+ return XMP_COMPONENT_INT_NAMESPACE::MakeUncheckedSharedPointer( p, __FILE__, __LINE__, true );
+ }
+
+ spIUTF8String IUTF8String_v1::CreateUTF8String( pIObjectFactory objFactory ) {
+ pcIError error( NULL );
+ auto retValue = MakeShared( objFactory->CreateUTF8String( NULL, AdobeXMPCommon::npos, error ) );
+ if ( error ) throw IError::MakeShared( error );
+ return retValue;
+ }
+
+ spIUTF8String IUTF8String_v1::CreateUTF8String( pIObjectFactory objFactory, const char * buf, sizet count ) {
+ pcIError error( NULL );
+ auto retValue = MakeShared( objFactory->CreateUTF8String( buf, count, error ) );
+ if ( error ) throw IError::MakeShared( error );
+ return retValue;
+ }
+
+}
+#endif // BUILDING_XMPCOMMON_LIB || SOURCE_COMPILING_XMP_ALL
diff --git a/XMPCommon/source/XMPCommon.cpp b/XMPCommon/source/XMPCommon.cpp
new file mode 100644
index 0000000..27a8612
--- /dev/null
+++ b/XMPCommon/source/XMPCommon.cpp
@@ -0,0 +1,22 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/XMPCommon_I.h"
+#include "XMPCommon/Interfaces/IMemoryAllocator_I.h"
+
+namespace XMP_COMPONENT_INT_NAMESPACE {
+
+ void InitializeXMPCommonFramework() {
+ IMemoryAllocator_I::SetMemoryAllocator( NULL );
+ }
+
+ void TerminateXMPCommonFramework() {
+ IMemoryAllocator_I::SetMemoryAllocator( NULL );
+ }
+}
diff --git a/XMPCore/ImplHeaders/ArrayNodeImpl.h b/XMPCore/ImplHeaders/ArrayNodeImpl.h
new file mode 100644
index 0000000..d173e90
--- /dev/null
+++ b/XMPCore/ImplHeaders/ArrayNodeImpl.h
@@ -0,0 +1,71 @@
+#ifndef ArrayNodeImpl_h__
+#define ArrayNodeImpl_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#if !(IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED)
+ #error "Not adhering to design constraints"
+ // this file should only be included from its own cpp file
+#endif
+
+#include "XMPCore/Interfaces/IArrayNode_I.h"
+#include "XMPCore/ImplHeaders/CompositeNodeImpl.h"
+#include "XMPCommon/Utilities/TAllocator.h"
+
+#include <vector>
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+namespace AdobeXMPCore_Int {
+
+ class ArrayNodeImpl
+ : public virtual IArrayNode_I
+ , public virtual CompositeNodeImpl
+ {
+ public:
+ typedef std::vector< spINode, TAllocator< spINode > > NodeVector;
+
+ ArrayNodeImpl( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, eArrayForm arrarForm );
+
+ virtual eArrayForm APICALL GetArrayForm() const;
+ virtual eNodeType APICALL GetChildNodeType() const;
+ virtual spINode APICALL GetNodeAtIndex( sizet index );
+ virtual void APICALL InsertNodeAtIndex( const spINode & node, sizet index );
+ virtual spINode APICALL RemoveNodeAtIndex( sizet index );
+ virtual spINode APICALL ReplaceNodeAtIndex( const spINode & node, sizet index );
+ virtual void APICALL AppendNode( const spINode & node );
+ virtual spINodeIterator APICALL Iterator();
+ virtual sizet APICALL ChildCount() const __NOTHROW__;
+ virtual spIArrayNode APICALL ConvertToArrayNode();
+ virtual eNodeType APICALL GetNodeType() const;
+ virtual bool APICALL HasContent() const;
+ virtual void APICALL ClearContents();
+ virtual spINode APICALL CloneContents( bool ignoreEmptyNodes, bool ignoreNodesWithOnlyQualifiers, sizet qualifiersCount ) const;
+ virtual bool CheckSuitabilityToBeUsedAsChildNode( const spcINode & node ) const;
+
+ protected:
+ virtual ~ArrayNodeImpl() __NOTHROW__ {}
+ virtual void resetChangesForChildren() const;
+
+
+ eArrayForm mArrayForm;
+ NodeVector mChildren;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+}
+
+#endif // ArrayNodeImpl_h__
diff --git a/XMPCore/ImplHeaders/ClientDOMParserWrapperImpl.h b/XMPCore/ImplHeaders/ClientDOMParserWrapperImpl.h
new file mode 100644
index 0000000..c2614fb
--- /dev/null
+++ b/XMPCore/ImplHeaders/ClientDOMParserWrapperImpl.h
@@ -0,0 +1,50 @@
+#ifndef ClientDOMParserWrapperImpl_h__
+#define ClientDOMParserWrapperImpl_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#if !(IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED)
+ #error "Not adhering to design constraints"
+ // this file should only be included from its own cpp file
+#endif
+
+#include "XMPCore/ImplHeaders/DOMParserImpl.h"
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+namespace AdobeXMPCore_Int {
+
+ class ClientDOMParserWrapperImpl
+ : public virtual DOMParserImpl
+ {
+ public:
+ ClientDOMParserWrapperImpl( pIClientDOMParser_base parser );
+
+ virtual spINode APICALL ParseAsNode( const char * buffer, sizet bufferLength );
+ virtual eConfigurableErrorCode APICALL ValidateValue( const uint64 & key, eDataType type, const CombinedDataValue & value ) const;
+ virtual DOMParserImpl * APICALL clone() const;
+
+ protected:
+ virtual ~ClientDOMParserWrapperImpl() __NOTHROW__ ;
+
+ pIClientDOMParser_base mpClientParser;
+
+ };
+}
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+
+#endif // ClientDOMParserWrapperImpl_h__
+
diff --git a/XMPCore/ImplHeaders/ClientDOMSerializerWrapperImpl.h b/XMPCore/ImplHeaders/ClientDOMSerializerWrapperImpl.h
new file mode 100644
index 0000000..5cd2e8d
--- /dev/null
+++ b/XMPCore/ImplHeaders/ClientDOMSerializerWrapperImpl.h
@@ -0,0 +1,50 @@
+#ifndef ClientDOMSerializerWrapperImpl_h__
+#define ClientDOMSerializerWrapperImpl_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#if !(IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED)
+ #error "Not adhering to design constraints"
+ // this file should only be included from its own cpp file
+#endif
+
+#include "XMPCore/ImplHeaders/DOMSerializerImpl.h"
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+namespace AdobeXMPCore_Int {
+
+ class ClientDOMSerializerWrapperImpl
+ : public virtual DOMSerializerImpl
+ {
+ public:
+ ClientDOMSerializerWrapperImpl( pIClientDOMSerializer serializer );
+ virtual spIUTF8String APICALL Serialize( const spINode & node, const spcINameSpacePrefixMap & map );
+ virtual eConfigurableErrorCode APICALL ValidateValue( const uint64 & key, eDataType type, const CombinedDataValue & value ) const;
+ spIUTF8String APICALL SerializeInternal(const spINode & node, XMP_OptionBits options, sizet padding, const char * newline, const char * indent, sizet baseIndent, const spcINameSpacePrefixMap & nameSpacePrefixMap) const;
+
+ protected:
+ virtual ~ClientDOMSerializerWrapperImpl() __NOTHROW__ ;
+ virtual DOMSerializerImpl * APICALL clone() const;
+
+ pIClientDOMSerializer mpSerializer;
+
+ };
+}
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+
+#endif // ClientDOMSerializerWrapperImpl_h__
+
diff --git a/XMPCore/ImplHeaders/CompositeNodeImpl.h b/XMPCore/ImplHeaders/CompositeNodeImpl.h
new file mode 100644
index 0000000..90073e2
--- /dev/null
+++ b/XMPCore/ImplHeaders/CompositeNodeImpl.h
@@ -0,0 +1,56 @@
+#ifndef CompositeNodeImpl_h__
+#define CompositeNodeImpl_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#if !(IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED)
+ #error "Not adhering to design constraints"
+ // this file should only be included from its own cpp file
+#endif
+
+#include "XMPCore/Interfaces/ICompositeNode_I.h"
+#include "XMPCore/ImplHeaders/NodeImpl.h"
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+namespace AdobeXMPCore_Int {
+
+ class CompositeNodeImpl
+ : public virtual ICompositeNode_I
+ , public virtual NodeImpl
+ {
+ public:
+ CompositeNodeImpl() {}
+
+ virtual eNodeType APICALL GetNodeTypeAtPath( const spcIPath & path ) const;
+ virtual spINode APICALL GetNodeAtPath( const spcIPath & path );
+ virtual void APICALL InsertNodeAtPath( const spINode & node, const spcIPath & path );
+ virtual spINode APICALL ReplaceNodeAtPath( const spINode & node, const spcIPath & path );
+ virtual spINode APICALL RemoveNodeAtPath( const spcIPath & path );
+ virtual bool CheckSuitabilityToBeUsedAsChildNode( const spcINode & node ) const;
+
+ protected:
+ virtual ~CompositeNodeImpl() __NOTHROW__ {}
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+}
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+
+#endif // CompositeNodeImpl_h__
diff --git a/XMPCore/ImplHeaders/CoreConfigurationManagerImpl.h b/XMPCore/ImplHeaders/CoreConfigurationManagerImpl.h
new file mode 100644
index 0000000..d85f573
--- /dev/null
+++ b/XMPCore/ImplHeaders/CoreConfigurationManagerImpl.h
@@ -0,0 +1,50 @@
+#ifndef CoreConfigurationManagerImpl_h__
+#define CoreConfigurationManagerImpl_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#if !(IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED)
+ #error "Not adhering to design constraints"
+ // this file should only be included from its own cpp file
+#endif
+
+#include "XMPCore/Interfaces/ICoreConfigurationManager_I.h"
+#include "XMPCommon/ImplHeaders/ConfigurationManagerImpl.h"
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+namespace AdobeXMPCore_Int {
+
+ class CoreConfigurationManagerImpl
+ : public virtual ICoreConfigurationManager_I
+ , public virtual ConfigurationManagerImpl
+ {
+ public:
+ CoreConfigurationManagerImpl();
+
+
+ protected:
+ virtual ~CoreConfigurationManagerImpl() __NOTHROW__ {}
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+}
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+#endif // CoreConfigurationManagerImpl_h__
+
diff --git a/XMPCore/ImplHeaders/CoreObjectFactoryImpl.h b/XMPCore/ImplHeaders/CoreObjectFactoryImpl.h
new file mode 100644
index 0000000..ab4125b
--- /dev/null
+++ b/XMPCore/ImplHeaders/CoreObjectFactoryImpl.h
@@ -0,0 +1,65 @@
+#ifndef CoreObjectFactoryImpl_h__
+#define CoreObjectFactoryImpl_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#if !(IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED)
+ #error "Not adhering to design constraints"
+ // this file should only be included from its own cpp file
+#endif
+
+#include "XMPCore/Interfaces/ICoreObjectFactory_I.h"
+#include "XMPCommon/BaseClasses/MemoryManagedObject.h"
+#include "XMPCommon/ImplHeaders/SharedObjectImpl.h"
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+namespace AdobeXMPCore_Int {
+
+ class CoreObjectFactoryImpl
+ : public virtual ICoreObjectFactory_I
+ {
+ public:
+ CoreObjectFactoryImpl() {}
+ virtual ~CoreObjectFactoryImpl() __NOTHROW__ {}
+
+ virtual pIError_base APICALL CreateError( uint32 domain, uint32 code, uint32 severity, pcIError_base & error ) __NOTHROW__;
+ virtual pIUTF8String_base APICALL CreateUTF8String( const char * buf, sizet count, pcIError_base & error ) __NOTHROW__;
+ virtual pcIPathSegment_base APICALL CreateArrayIndexPathSegment( const char * nameSpace, sizet nameSpaceLength, sizet index, pcIError_base & error ) __NOTHROW__;
+ virtual pIArrayNode_base APICALL CreateArrayNode( uint32 arrayForm, const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) __NOTHROW__;
+ virtual pIMetadata_base APICALL CreateMetadata( pcIError_base & error ) __NOTHROW__;
+ virtual pINameSpacePrefixMap_base APICALL CreateNameSpacePrefixMap( pcIError_base & error ) __NOTHROW__;
+ virtual pIPath_base APICALL CreatePath( pcIError_base & error ) __NOTHROW__;
+ virtual pcIPathSegment_base APICALL CreatePropertyPathSegment( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) __NOTHROW__;
+ virtual pcIPathSegment_base APICALL CreateQualifierPathSegment( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) __NOTHROW__;
+ virtual pcIPathSegment_base APICALL CreateQualifierSelectorPathSegment( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, const char * value, sizet valueLength, pcIError_base & error ) __NOTHROW__;
+ virtual pISimpleNode_base APICALL CreateSimpleNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, const char * value, sizet valueLength, pcIError_base & error ) __NOTHROW__;
+ virtual pIStructureNode_base APICALL CreateStructureNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) __NOTHROW__;
+ virtual pICoreConfigurationManager_base APICALL GetCoreConfigurationManager( pcIError_base & error ) __NOTHROW__;
+ virtual pIDOMImplementationRegistry_base APICALL GetDOMImplementationRegistry( pcIError_base & error ) __NOTHROW__;
+ virtual pcINameSpacePrefixMap_base APICALL GetDefaultNameSpacePrefixMap( pcIError_base & error ) __NOTHROW__;
+ virtual pIPath_base APICALL ParsePath( const char * path, sizet pathLength, pcINameSpacePrefixMap_base map, pcIError_base & error ) __NOTHROW__;
+
+ protected:
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+
+
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+}
+
+
+#endif // CoreObjectFactoryImpl_h__
diff --git a/XMPCore/ImplHeaders/DOMImplementationRegistryImpl.h b/XMPCore/ImplHeaders/DOMImplementationRegistryImpl.h
new file mode 100644
index 0000000..c81e611
--- /dev/null
+++ b/XMPCore/ImplHeaders/DOMImplementationRegistryImpl.h
@@ -0,0 +1,62 @@
+#ifndef DOMImplementationRegistryImpl_h__
+#define DOMImplementationRegistryImpl_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#if !(IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED)
+ #error "Not adhering to design constraints"
+ // this file should only be included from its own cpp file
+#endif
+
+#include "XMPCore/Interfaces/IDOMImplementationRegistry_I.h"
+#include "XMPCommon/BaseClasses/MemoryManagedObject.h"
+#include "XMPCommon/ImplHeaders/SharedObjectImpl.h"
+#include "XMPCommon/Utilities/IUTF8StringComparator.h"
+#include "XMPCommon/Utilities/TAllocator.h"
+
+#include <map>
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+namespace AdobeXMPCore_Int {
+
+ class DOMImplementationRegistryImpl
+ : public virtual IDOMImplementationRegistry_I
+ , public virtual SharedObjectImpl
+ , public virtual MemoryManagedObject
+ {
+ public:
+ typedef std::map< spcIUTF8String, spcIDOMParser, IUTF8StringComparator, TAllocator< spcIUTF8String > > ParserMap;
+ typedef std::map< spcIUTF8String, spcIDOMSerializer, IUTF8StringComparator, TAllocator< spcIUTF8String > > SerializerMap;
+
+ DOMImplementationRegistryImpl() {}
+
+ virtual bool APICALL RegisterParser( const char * key, const spcIDOMParser & parser );
+ virtual bool APICALL RegisterSerializer( const char * key, const spcIDOMSerializer & serializer );
+ virtual spIDOMParser APICALL GetParser( const char * key ) const;
+ virtual spIDOMSerializer APICALL GetSerializer( const char * key ) const;
+
+
+ protected:
+ virtual ~DOMImplementationRegistryImpl() __NOTHROW__ {}
+
+ ParserMap mParserMap;
+ SerializerMap mSerializerMap;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+}
+
+#endif // DOMImplementationRegistryImpl_h__ \ No newline at end of file
diff --git a/XMPCore/ImplHeaders/DOMParserImpl.h b/XMPCore/ImplHeaders/DOMParserImpl.h
new file mode 100644
index 0000000..488170f
--- /dev/null
+++ b/XMPCore/ImplHeaders/DOMParserImpl.h
@@ -0,0 +1,64 @@
+#ifndef DOMParserImpl_h__
+#define DOMParserImpl_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#if !(IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED)
+ #error "Not adhering to design constraints"
+ // this file should only be included from its own cpp file
+#endif
+
+#include "XMPCore/Interfaces/IDOMParser_I.h"
+#include "XMPCommon/BaseClasses/MemoryManagedObject.h"
+#include "XMPCommon/ImplHeaders/SharedObjectImpl.h"
+#include "XMPCommon/ImplHeaders/ConfigurableImpl.h"
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+namespace AdobeXMPCore_Int {
+
+ class DOMParserImpl
+ : public virtual IDOMParser_I
+ , public virtual ConfigurableImpl
+ , public virtual SharedObjectImpl
+ , public virtual MemoryManagedObject
+ {
+ public:
+ DOMParserImpl();
+
+ virtual spIDOMParser APICALL Clone() const;
+ virtual spIMetadata APICALL Parse( const char * buffer, sizet bufferLength );
+ virtual void APICALL ParseWithSpecificAction( const char * buffer, sizet bufferLength, eActionType actionType, spINode & node );
+ virtual spISharedMutex APICALL GetMutex() const;
+ virtual void SetErrorCallback(XMPMeta::ErrorCallbackInfo * ec);
+
+ protected:
+ virtual ~DOMParserImpl() __NOTHROW__ {}
+ virtual DOMParserImpl * APICALL clone() const = 0;
+
+ spISharedMutex mSharedMutex;
+ XMPMeta::ErrorCallbackInfo * mGenericErrorCallbackPtr;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+}
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+
+#endif // DOMParserImpl_h__
+
diff --git a/XMPCore/ImplHeaders/DOMSerializerImpl.h b/XMPCore/ImplHeaders/DOMSerializerImpl.h
new file mode 100644
index 0000000..ce8cbfa
--- /dev/null
+++ b/XMPCore/ImplHeaders/DOMSerializerImpl.h
@@ -0,0 +1,60 @@
+#ifndef DOMSerializerImpl_h__
+#define DOMSerializerImpl_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#if !(IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED)
+ #error "Not adhering to design constraints"
+ // this file should only be included from its own cpp file
+#endif
+
+#include "XMPCore/Interfaces/IDOMSerializer_I.h"
+#include "XMPCommon/BaseClasses/MemoryManagedObject.h"
+#include "XMPCommon/ImplHeaders/SharedObjectImpl.h"
+#include "XMPCommon/ImplHeaders/ConfigurableImpl.h"
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+namespace AdobeXMPCore_Int {
+
+ class DOMSerializerImpl
+ : public virtual IDOMSerializer_I
+ , public virtual ConfigurableImpl
+ , public virtual SharedObjectImpl
+ , public virtual MemoryManagedObject
+ {
+ public:
+ DOMSerializerImpl();
+
+ virtual spISharedMutex APICALL GetMutex() const;
+ virtual spIDOMSerializer APICALL Clone() const;
+ virtual spIUTF8String APICALL SerializeInternal(const spINode & node, XMP_OptionBits options, sizet padding, const char * newline, const char * indent, sizet baseIndent, const spcINameSpacePrefixMap & nameSpacePrefixMap) const = 0;
+
+ protected:
+ virtual ~DOMSerializerImpl() __NOTHROW__ {}
+ virtual DOMSerializerImpl * APICALL clone() const = 0;
+
+ spISharedMutex mSharedMutex;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+}
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+#endif // DOMSerializerImpl_h__
+
diff --git a/XMPCore/ImplHeaders/MetadataImpl.h b/XMPCore/ImplHeaders/MetadataImpl.h
new file mode 100644
index 0000000..69609c4
--- /dev/null
+++ b/XMPCore/ImplHeaders/MetadataImpl.h
@@ -0,0 +1,82 @@
+#ifndef MetadataImpl_h__
+#define MetadataImpl_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#if !(IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED)
+ #error "Not adhering to design constraints"
+ // this file should only be included from its own cpp file
+#endif
+
+#include "XMPCore/Interfaces/IMetadata_I.h"
+#include "XMPCore/ImplHeaders/StructureNodeImpl.h"
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+namespace AdobeXMPCore_Int {
+
+ class MetadataImpl
+ : public virtual IMetadata_I
+ , public virtual StructureNodeImpl
+ {
+ public:
+ MetadataImpl();
+
+
+ protected:
+ virtual ~MetadataImpl() __NOTHROW__ {}
+
+ virtual spcIUTF8String APICALL GetAboutURI() const;
+ virtual void APICALL SetAboutURI( const char * uri, sizet uriLength ) __NOTHROW__;
+
+ virtual spcIUTF8String APICALL GetName() const;
+ virtual spcIUTF8String APICALL GetNameSpace() const;
+
+ virtual spINode APICALL GetParent();
+ virtual eNodeType APICALL GetParentNodeType() const;
+
+ virtual void APICALL SetName( const char * name, sizet nameLength );
+ virtual void APICALL SetNameSpace( const char * nameSpace, sizet nameSpaceLength );
+
+ virtual void APICALL ClearContents();
+ virtual spINode APICALL CloneContents( bool ignoreEmptyNodes, bool ignoreNodesWithOnlyQualifiers, sizet qualifiersCount ) const;
+
+ virtual spIMetadata APICALL ConvertToMetadata();
+ virtual void APICALL EnableFeature( const char * key, sizet keyLength ) const __NOTHROW__;
+ virtual void APICALL DisableFeature( const char * key, sizet keyLength ) const __NOTHROW__;
+
+ virtual spINode APICALL GetNode( const spcIUTF8String & nameSpace, const spcIUTF8String & name );
+ virtual spINode APICALL RemoveNode( const spcIUTF8String & nameSpace, const spcIUTF8String & name );
+ virtual void APICALL InsertNode( const spINode & node );
+ virtual spINode APICALL ReplaceNode( const spINode & node );
+
+ spIUTF8String mAboutURI;
+ mutable bool mSupportAliases;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+}
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+
+#if !(IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED)
+ #error "Not adhering to design constraints"
+ // this file should only be included from its own cpp file
+#endif
+
+#endif // MetadataImpl_h__
+
diff --git a/XMPCore/ImplHeaders/NameSpacePrefixMapImpl.h b/XMPCore/ImplHeaders/NameSpacePrefixMapImpl.h
new file mode 100644
index 0000000..de23e43
--- /dev/null
+++ b/XMPCore/ImplHeaders/NameSpacePrefixMapImpl.h
@@ -0,0 +1,79 @@
+#ifndef NameSpacePrefixMapImpl_h__
+#define NameSpacePrefixMapImpl_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#if !(IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED)
+ #error "Not adhering to design constraints"
+ // this file should only be included from its own cpp file
+#endif
+
+#include "XMPCore/Interfaces/INameSpacePrefixMap_I.h"
+#include "XMPCommon/BaseClasses/MemoryManagedObject.h"
+#include "XMPCommon/ImplHeaders/SharedObjectImpl.h"
+#include "XMPCommon/ImplHeaders/ThreadSafeImpl.h"
+#include "XMPCommon/Utilities/TAllocator.h"
+#include "XMPCommon/Utilities/IUTF8StringComparator.h"
+
+
+#include <map>
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+namespace AdobeXMPCore_Int {
+
+ class NameSpacePrefixMapImpl
+ : public virtual INameSpacePrefixMap_I
+ , public virtual SharedObjectImpl
+ , public virtual MemoryManagedObject
+ , public virtual ThreadSafeImpl
+ {
+ public:
+ typedef std::pair< spcIUTF8String, spcIUTF8String > NameSpacePrefixPair;
+ typedef std::map< spcIUTF8String, spcIUTF8String, IUTF8StringComparator, TAllocator< spcIUTF8String > > NameSpacePrefixMap;
+
+ NameSpacePrefixMapImpl();
+
+
+ protected:
+ virtual ~NameSpacePrefixMapImpl() __NOTHROW__ {}
+
+ virtual bool APICALL Insert( const char * prefix, sizet prefixLength, const char * nameSpace, sizet nameSpaceLength );
+ virtual bool APICALL RemovePrefix( const char * prefix, sizet prefixLength );
+ virtual bool APICALL RemoveNameSpace( const char * nameSpace, sizet nameSpaceLength );
+ virtual bool APICALL IsPrefixPresent( const char * prefix, sizet prefixLength ) const;
+ virtual bool APICALL IsNameSpacePresent( const char * nameSpace, sizet nameSpaceLength ) const;
+ virtual spcIUTF8String APICALL GetNameSpace( const char * prefix, sizet prefixLength ) const;
+ virtual spcIUTF8String APICALL GetNameSpace( const spcIUTF8String & prefix ) const;
+ virtual spcIUTF8String APICALL GetPrefix( const char * nameSpace, sizet nameSpaceLength ) const;
+ virtual spcIUTF8String APICALL GetPrefix( const spcIUTF8String & nameSpace ) const;
+ virtual void APICALL Merge( const spcINameSpacePrefixMap & otherMap );
+ virtual sizet APICALL Size() const __NOTHROW__;
+ virtual void APICALL Clear() __NOTHROW__;
+ virtual spINameSpacePrefixMap APICALL Clone() const;
+
+ NameSpacePrefixMap mNameSpaceToPrefixMap;
+ NameSpacePrefixMap mPrefixToNameSpaceMap;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+}
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+
+#endif // NameSpacePrefixMapImpl_h__
diff --git a/XMPCore/ImplHeaders/NodeImpl.h b/XMPCore/ImplHeaders/NodeImpl.h
new file mode 100644
index 0000000..7a01cdc
--- /dev/null
+++ b/XMPCore/ImplHeaders/NodeImpl.h
@@ -0,0 +1,111 @@
+#ifndef __NodeImpl_h__
+#define __NodeImpl_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#if !(IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED)
+ #error "Not adhering to design constraints"
+ // this file should only be included from its own cpp file
+#endif
+
+#include "XMPCore/Interfaces/INode_I.h"
+#include "XMPCommon/BaseClasses/MemoryManagedObject.h"
+#include "XMPCommon/ImplHeaders/SharedObjectImpl.h"
+#include "XMPCommon/ImplHeaders/ThreadSafeImpl.h"
+#include "XMPCommon/Utilities/TAtomicTypes.h"
+
+#include <map>
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+namespace AdobeXMPCore_Int {
+
+ class NodeImpl
+ : public virtual INode_I
+ , public virtual SharedObjectImpl
+ , public virtual MemoryManagedObject
+ , public virtual ThreadSafeImpl
+ {
+ public:
+ NodeImpl() {}
+ NodeImpl( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength );
+
+ virtual void APICALL ChangeParent( pINode parent );
+ virtual pINode APICALL GetRawParentPointer();
+ virtual spINode APICALL GetParent();
+ virtual void APICALL SetName( const char * name, sizet nameLength );
+ virtual spcIUTF8String APICALL GetName() const;
+ virtual void APICALL SetNameSpace( const char * nameSpace, sizet nameSpaceLength );
+ virtual spcIUTF8String APICALL GetNameSpace() const;
+ virtual spIPath APICALL GetPath() const;
+ virtual sizet APICALL QualifiersCount() const __NOTHROW__;
+ virtual spINodeIterator APICALL QualifiersIterator();
+ virtual spINode APICALL GetQualifier( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength );
+ virtual spINode APICALL GetQualifier( const spcIUTF8String & nameSpace, const spcIUTF8String & name );
+ virtual void APICALL InsertQualifier( const spINode & node );
+ virtual spINode APICALL ReplaceQualifier( const spINode & node );
+ virtual spINode APICALL RemoveQualifier( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength );
+ virtual spINode APICALL RemoveQualifier( const spcIUTF8String & nameSpace, const spcIUTF8String & name );
+ virtual bool APICALL IsArrayItem() const;
+ virtual bool APICALL HasQualifiers() const;
+ virtual bool APICALL IsEmpty() const;
+ virtual bool APICALL HasChanged() const;
+ virtual void APICALL AcknowledgeChanges() const __NOTHROW__;
+ virtual void APICALL Clear( bool contents = true, bool qualifiers = true );
+ virtual spINode APICALL Clone( bool ignoreEmptyNodes = false, bool ignoreNodesWithOnlyQualifiers = false ) const;
+ virtual void SetIndex( sizet currentIndex );
+ virtual void SetIsQualifierNode( bool isQualifierNode );
+ virtual bool APICALL IsQualifierNode() const;
+ virtual sizet APICALL GetIndex() const;
+ virtual void RegisterChange();
+ virtual eNodeType APICALL GetParentNodeType() const;
+ virtual eNodeType APICALL GetQualifierNodeType( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) const;
+ virtual spISimpleNode APICALL ConvertToSimpleNode();
+ virtual spIStructureNode APICALL ConvertToStructureNode();
+ virtual spIArrayNode APICALL ConvertToArrayNode();
+ virtual spIMetadata APICALL ConvertToMetadata();
+ virtual void UnRegisterChange();
+ virtual bool ValidateNameOrNameSpaceChangeForAChild( const spcIUTF8String & currentNameSpace, const spcIUTF8String & currentName, const spcIUTF8String & newNameSpace, const spcIUTF8String & newName );
+
+ virtual void APICALL Acquire() const __NOTHROW__;
+ virtual void APICALL Release() const __NOTHROW__;
+ virtual void APICALL AcquireInternal() const __NOTHROW__;
+
+ // functions base classes need to implement.
+ virtual void APICALL ClearContents() = 0;
+ virtual spINode APICALL CloneContents( bool ignoreEmptyNodes, bool ignoreNodesWithOnlyQualifiers, sizet qualifiersCount ) const = 0;
+ virtual void SetQualifiers( const spIStructureNode & node );
+
+ protected:
+ void updateParentSharedPointer( bool calledFromRelease = false );
+ virtual void resetChangesForChildren() const = 0;
+ void CreateQualifierNode();
+ virtual ~NodeImpl() __NOTHROW__ {}
+
+ spIUTF8String mNameSpace;
+ spIUTF8String mName;
+ sizet mIndex;
+ pINode mpParent;
+ spINode mspParent;
+ spIStructureNode mQualifiers;
+ mutable atomic_sizet mChangeCount;
+ bool mIsQualifierNode;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+}
+
+#endif // __NodeImpl_h__
diff --git a/XMPCore/ImplHeaders/PathImpl.h b/XMPCore/ImplHeaders/PathImpl.h
new file mode 100644
index 0000000..85588f4
--- /dev/null
+++ b/XMPCore/ImplHeaders/PathImpl.h
@@ -0,0 +1,66 @@
+#ifndef PathImpl_h__
+#define PathImpl_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#if !(IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED)
+ #error "Not adhering to design constraints"
+ // this file should only be included from its own cpp file
+#endif
+
+#include "XMPCore/Interfaces/IPath_I.h"
+#include "XMPCommon/BaseClasses/MemoryManagedObject.h"
+#include "XMPCommon/ImplHeaders/SharedObjectImpl.h"
+#include "XMPCommon/Utilities/TAllocator.h"
+#include <vector>
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+namespace AdobeXMPCore_Int {
+
+ class PathImpl
+ : public virtual IPath_I
+ , public virtual SharedObjectImpl
+ , public virtual MemoryManagedObject
+ {
+ public:
+ typedef std::vector< spcIPathSegment, TAllocator< spcIPathSegment > > spcIPathSegments;
+
+
+ protected:
+ virtual ~PathImpl() __NOTHROW__ {}
+
+ virtual spcINameSpacePrefixMap APICALL RegisterNameSpacePrefixMap( const spcINameSpacePrefixMap & map );
+ virtual spIUTF8String APICALL Serialize( const spcINameSpacePrefixMap & map = spcINameSpacePrefixMap() ) const;
+ virtual void APICALL AppendPathSegment( const spcIPathSegment & segment );
+ virtual spcIPathSegment APICALL RemovePathSegment( sizet index );
+ virtual spcIPathSegment APICALL GetPathSegment( sizet index ) const;
+ virtual sizet APICALL Size() const __NOTHROW__;
+ virtual void APICALL Clear() __NOTHROW__;
+ virtual spIPath APICALL Clone( sizet startingIndex = 1, sizet countOfSegments = kMaxSize ) const;
+
+ spcIPathSegments mSegments;
+ spcINameSpacePrefixMap mNameSpacePrefixMap;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+}
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+
+#endif // PathImpl_h__
diff --git a/XMPCore/ImplHeaders/PathSegmentImpl.h b/XMPCore/ImplHeaders/PathSegmentImpl.h
new file mode 100644
index 0000000..fd89b1e
--- /dev/null
+++ b/XMPCore/ImplHeaders/PathSegmentImpl.h
@@ -0,0 +1,66 @@
+#ifndef PathSegmentImpl_h__
+#define PathSegmentImpl_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#if !(IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED)
+ #error "Not adhering to design constraints"
+ // this file should only be included from its own cpp file
+#endif
+
+#include "XMPCore/Interfaces/IPathSegment_I.h"
+#include "XMPCommon/BaseClasses/MemoryManagedObject.h"
+#include "XMPCommon/ImplHeaders/SharedObjectImpl.h"
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+namespace AdobeXMPCore_Int {
+
+ class PathSegmentImpl
+ : public virtual IPathSegment_I
+ , public virtual SharedObjectImpl
+ , public virtual MemoryManagedObject
+ {
+ public:
+ PathSegmentImpl( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength,
+ const char * value, sizet valueLength, ePathSegmentType type, sizet index );
+
+ virtual spcIUTF8String APICALL GetNameSpace() const;
+ virtual spcIUTF8String APICALL GetName() const;
+ virtual ePathSegmentType APICALL GetType() const;
+ virtual sizet APICALL GetIndex() const __NOTHROW__;
+ virtual spcIUTF8String APICALL GetValue() const;
+ virtual spcIPathSegment APICALL Clone() const;
+
+
+ protected:
+ virtual ~PathSegmentImpl() __NOTHROW__ {}
+
+ spIUTF8String mNameSpace;
+ spIUTF8String mName;
+ spIUTF8String mValue;
+ ePathSegmentType mType;
+ sizet mIndex;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+}
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+
+#endif // PathSegmentImpl_h__
diff --git a/XMPCore/ImplHeaders/RDFDOMParserImpl.h b/XMPCore/ImplHeaders/RDFDOMParserImpl.h
new file mode 100644
index 0000000..aeaeda8
--- /dev/null
+++ b/XMPCore/ImplHeaders/RDFDOMParserImpl.h
@@ -0,0 +1,53 @@
+#ifndef RDFDOMParserImpl_h__
+#define RDFDOMParserImpl_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#if !(IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED)
+ #error "Not adhering to design constraints"
+ // this file should only be included from its own cpp file
+#endif
+
+#include "XMPCore/ImplHeaders/DOMParserImpl.h"
+#include "XMPCore/source/XMPMeta.hpp"
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+namespace AdobeXMPCore_Int {
+
+ class RDFDOMParserImpl
+ : public virtual DOMParserImpl
+ {
+ public:
+ RDFDOMParserImpl() {
+ mGenericErrorCallbackPtr = NULL;
+ }
+ virtual spINode APICALL ParseAsNode( const char * buffer, sizet bufferLength );
+ virtual eConfigurableErrorCode APICALL ValidateValue( const uint64 & key, eDataType type, const CombinedDataValue & value ) const;
+ void InitializeDefaultValues();
+ void SetErrorCallback(XMPMeta::ErrorCallbackInfo * ec);
+ protected:
+ virtual ~RDFDOMParserImpl() __NOTHROW__ {}
+ virtual DOMParserImpl * APICALL clone() const;
+
+ private:
+ XMPMeta::ErrorCallbackInfo * mGenericErrorCallbackPtr;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+}
+
+#endif // RDFDOMParserImpl_h__
diff --git a/XMPCore/ImplHeaders/RDFDOMSerializerImpl.h b/XMPCore/ImplHeaders/RDFDOMSerializerImpl.h
new file mode 100644
index 0000000..77cdd7b
--- /dev/null
+++ b/XMPCore/ImplHeaders/RDFDOMSerializerImpl.h
@@ -0,0 +1,53 @@
+#ifndef RDFDOMSerializerImpl_h__
+#define RDFDOMSerializerImpl_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#if !(IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED)
+ #error "Not adhering to design constraints"
+ // this file should only be included from its own cpp file
+#endif
+
+#include "XMPCore/ImplHeaders/DOMSerializerImpl.h"
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+namespace AdobeXMPCore_Int {
+
+ class RDFDOMSerializerImpl
+ : public virtual DOMSerializerImpl
+ {
+ public:
+ RDFDOMSerializerImpl() {}
+ virtual spIUTF8String APICALL Serialize( const spINode & node, const spcINameSpacePrefixMap & nameSpacePrefixMap );
+ virtual eConfigurableErrorCode APICALL ValidateValue( const uint64 & key, eDataType type, const CombinedDataValue & value ) const;
+ virtual spIUTF8String APICALL SerializeInternal(const spINode & node, XMP_OptionBits options, sizet padding, const char * newline, const char * indent, sizet baseIndent, const spcINameSpacePrefixMap & nameSpacePrefixMap) const;
+ void InitializeDefaultValues();
+
+ protected:
+ virtual ~RDFDOMSerializerImpl() __NOTHROW__ {}
+ virtual DOMSerializerImpl * APICALL clone() const;
+
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+}
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+
+#endif // RDFDOMSerializerImpl_h__
diff --git a/XMPCore/ImplHeaders/SimpleNodeImpl.h b/XMPCore/ImplHeaders/SimpleNodeImpl.h
new file mode 100644
index 0000000..6e882a6
--- /dev/null
+++ b/XMPCore/ImplHeaders/SimpleNodeImpl.h
@@ -0,0 +1,66 @@
+#ifndef __SimpleNodeImpl_h__
+#define __SimpleNodeImpl_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+
+#if !(IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED)
+ #error "Not adhering to design constraints"
+ // this file should only be included from its own cpp file
+#endif
+
+#include "XMPCore/Interfaces/ISimpleNode_I.h"
+#include "XMPCore/ImplHeaders/NodeImpl.h"
+
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+namespace AdobeXMPCore_Int {
+
+ class SimpleNodeImpl
+ : public virtual ISimpleNode_I
+ , public virtual NodeImpl
+ {
+ public:
+ SimpleNodeImpl( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, const char * value, sizet valueLength );
+ virtual spcIUTF8String APICALL GetValue() const;
+ virtual void APICALL SetValue( const char * value, sizet valueLength );
+ virtual bool APICALL IsURIType() const;
+ virtual void APICALL SetURIType( bool isURI );
+ virtual eNodeType APICALL GetNodeType() const;
+
+ virtual bool APICALL HasContent() const;
+ virtual void APICALL ClearContents();
+ virtual spINode APICALL CloneContents( bool ignoreEmptyNodes, bool ignoreNodesWithOnlyQualifiers, sizet qualifiersCount ) const;
+ virtual spISimpleNode APICALL ConvertToSimpleNode();
+
+ protected:
+ virtual ~SimpleNodeImpl() __NOTHROW__ {}
+
+ virtual void resetChangesForChildren() const;
+
+ spIUTF8String mValue;
+ bool mIsURIType;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+}
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+
+#endif // __SimpleNodeImpl_h__
diff --git a/XMPCore/ImplHeaders/StructureNodeImpl.h b/XMPCore/ImplHeaders/StructureNodeImpl.h
new file mode 100644
index 0000000..c7540af
--- /dev/null
+++ b/XMPCore/ImplHeaders/StructureNodeImpl.h
@@ -0,0 +1,87 @@
+#ifndef StructureNodeImpl_h__
+#define StructureNodeImpl_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#if !(IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED)
+ #error "Not adhering to design constraints"
+ // this file should only be included from its own cpp file
+#endif
+
+#include "XMPCore/Interfaces/IStructureNode_I.h"
+#include "XMPCore/ImplHeaders/CompositeNodeImpl.h"
+#include "XMPCommon/Utilities/TAllocator.h"
+
+#include <map>
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+namespace AdobeXMPCore_Int {
+
+ class StructureNodeImpl
+ : public virtual IStructureNode_I
+ , public virtual CompositeNodeImpl
+ {
+ public:
+
+ struct QualifiedName {
+ QualifiedName( const spcIUTF8String & nameSpace, const spcIUTF8String & name )
+ : mNameSpace( nameSpace )
+ , mName( name ) {}
+ spcIUTF8String mNameSpace;
+ spcIUTF8String mName;
+ };
+
+ struct CompareQualifiedName {
+ bool operator()( const QualifiedName & key1, const QualifiedName & key2 ) const;
+ };
+
+ typedef std::map< QualifiedName, spINode, CompareQualifiedName, TAllocator< spINode > > QualifiedNameNodeMap;
+
+ StructureNodeImpl( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength );
+ using IStructureNode_I::GetNode;
+ virtual spINode APICALL GetNode( const spcIUTF8String & nameSpace, const spcIUTF8String & name );
+ virtual spINode APICALL GetNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength );
+ virtual spINode APICALL RemoveNode( const spcIUTF8String & nameSpace, const spcIUTF8String & name );
+ virtual spINode APICALL RemoveNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength );
+ virtual eNodeType APICALL GetChildNodeType( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) const;
+ virtual eNodeType APICALL GetNodeType() const;
+ virtual void APICALL InsertNode( const spINode & node );
+ virtual spINode APICALL ReplaceNode( const spINode & node );
+ virtual void APICALL AppendNode( const spINode & node );
+ virtual spINodeIterator APICALL Iterator();
+ virtual sizet APICALL ChildCount() const __NOTHROW__;
+ virtual spIStructureNode APICALL ConvertToStructureNode();
+ virtual bool APICALL HasContent() const;
+ virtual bool ValidateNameOrNameSpaceChangeForAChild( const spcIUTF8String & currentNameSpace, const spcIUTF8String & currentName, const spcIUTF8String & newNameSpace, const spcIUTF8String & newName );
+ virtual void APICALL ClearContents();
+ virtual spINode APICALL CloneContents( bool ignoreEmptyNodes, bool ignoreNodesWithOnlyQualifiers, sizet qualifiersCount ) const;
+
+ protected:
+ virtual ~StructureNodeImpl() __NOTHROW__ {}
+ virtual void resetChangesForChildren() const;
+
+ QualifiedNameNodeMap mChildrenMap;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+}
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+
+#endif // StructureNodeImpl_h__
diff --git a/XMPCore/ImplHeaders/TNodeIteratorImpl.h b/XMPCore/ImplHeaders/TNodeIteratorImpl.h
new file mode 100644
index 0000000..5e8e37a
--- /dev/null
+++ b/XMPCore/ImplHeaders/TNodeIteratorImpl.h
@@ -0,0 +1,81 @@
+#ifndef TNodeIteratorImpl_h__
+#define TNodeIteratorImpl_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#if !(IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED)
+ #error "Not adhering to design constraints"
+ // this file should only be included from its own cpp file
+#endif
+
+#include "XMPCore/Interfaces/INodeIterator_I.h"
+#include "XMPCommon/BaseClasses/MemoryManagedObject.h"
+#include "XMPCommon/ImplHeaders/SharedObjectImpl.h"
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+namespace AdobeXMPCore_Int {
+
+ template< typename iterator >
+ class TNodeIteratorImpl
+ : public virtual INodeIterator_I
+ , public virtual SharedObjectImpl
+ , public virtual MemoryManagedObject
+ {
+ public:
+ TNodeIteratorImpl( const iterator & begin, const iterator & end )
+ : mCurrentPos( begin )
+ , mEndPos( end ) {}
+
+ spINode GetNodeFromIterator( const iterator & it ) const;
+
+ virtual spINode APICALL GetNode() {
+ if ( mCurrentPos != mEndPos )
+ return GetNodeFromIterator( mCurrentPos );
+ else
+ return spINode();
+ }
+
+ virtual INode_v1::eNodeType APICALL GetNodeType() const {
+ if ( mCurrentPos != mEndPos )
+ return GetNodeFromIterator( mCurrentPos )->GetNodeType();
+ else
+ return INode_v1::kNTNone;
+ }
+
+ virtual spINodeIterator APICALL Next() {
+ mCurrentPos++;
+ if ( mCurrentPos != mEndPos ) {
+ return MakeUncheckedSharedPointer( this, __FILE__, __LINE__, false );
+ }
+ return spINodeIterator();
+ }
+
+ protected:
+ virtual ~TNodeIteratorImpl() __NOTHROW__ {}
+
+ iterator mCurrentPos;
+ iterator mEndPos;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+}
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+
+#endif // TNodeIteratorImpl_h__
diff --git a/XMPCore/Interfaces/IArrayNode_I.h b/XMPCore/Interfaces/IArrayNode_I.h
new file mode 100644
index 0000000..a075d04
--- /dev/null
+++ b/XMPCore/Interfaces/IArrayNode_I.h
@@ -0,0 +1,90 @@
+#ifndef __IArrayNode_I_h__
+#define __IArrayNode_I_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+
+#include "XMPCore/Interfaces/IArrayNode.h"
+#include "XMPCore/Interfaces/ICompositeNode_I.h"
+
+
+namespace AdobeXMPCore_Int {
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+ //!
+ //! \brief Internal interface that represents an ArrayNode.
+ //! \details Provides all the functions to access
+ //!
+ class IArrayNode_I
+ : public virtual IArrayNode
+ , public virtual ICompositeNode_I
+ {
+ public:
+
+ //!
+ //! return the version of the interface.
+ //! \return 32 bit unsigned integer representing the version of the interface.
+ //!
+ static uint32 GetInterfaceVersion() { return kInternalInterfaceVersionNumber; }
+
+ virtual pIArrayNode APICALL GetActualIArrayNode() __NOTHROW__ { return this; }
+ virtual pISharedObject_I APICALL GetISharedObject_I() __NOTHROW__{ return this; }
+ virtual pIArrayNode_I APICALL GetIArrayNode_I() __NOTHROW__ { return this; }
+
+ //!
+ //! list all functions to be defined in this interface
+ //!
+
+
+ virtual pvoid APICALL GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion );
+
+ // Factories to create the array node
+
+ //!
+ //! Creates an unordered array node which is not part of any metadata document.
+ //! \param[in] nameSpace shared pointer to a constant IUTF8String object containing name space URI of the simple node.
+ //! \param[in] name shared pointer to a constant IUTF8String object containing local name of the simple node.
+ //! \param[in] arrayNodeForm a value of type #eArrayForm indicating the type of array node.
+ //! \return a shared pointer to a #IArrayNode object.
+ //! \attention Error is thrown in the following cases:
+ //! -# nameSpace is NULL or its contents are empty.
+ //! -# name is NULL or its contents are empty.
+ //!
+ XMP_PRIVATE static spIArrayNode CreateArrayNode( const spcIUTF8String & nameSpace, const spcIUTF8String & name, eArrayForm arrayForm );
+
+ protected:
+ virtual ~IArrayNode_I() __NOTHROW__ {}
+ pvoid APICALL GetInterfacePointerInternal( uint64 interfaceID, uint32 interfaceVersion, bool isTopLevel );
+
+ virtual uint32 APICALL getArrayForm( pcIError_base & error ) const __NOTHROW__;
+ virtual uint32 APICALL getChildNodeType( pcIError_base & error ) const __NOTHROW__;
+ virtual pINode_base APICALL getNodeAtIndex( sizet index, pcIError_base & error ) __NOTHROW__;
+ virtual void APICALL insertNodeAtIndex( pINode_base node, sizet index, pcIError_base & error ) __NOTHROW__;
+ virtual pINode_base APICALL removeNodeAtIndex( sizet index, pcIError_base & error ) __NOTHROW__;
+ virtual pINode_base APICALL replaceNodeAtIndex( pINode_base node, sizet index, pcIError_base & error ) __NOTHROW__;
+ virtual pvoid APICALL getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+
+}
+
+#endif // __IArrayNode_I_h__
diff --git a/XMPCore/Interfaces/ICompositeNode_I.h b/XMPCore/Interfaces/ICompositeNode_I.h
new file mode 100644
index 0000000..86b7558
--- /dev/null
+++ b/XMPCore/Interfaces/ICompositeNode_I.h
@@ -0,0 +1,73 @@
+#ifndef ICompositeNode_I_h__
+#define ICompositeNode_I_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+
+#include "XMPCore/XMPCoreFwdDeclarations_I.h"
+#include "XMPCore/Interfaces/ICompositeNode.h"
+#include "XMPCore/Interfaces/INode_I.h"
+
+namespace AdobeXMPCore_Int {
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+ //!
+ //! \brief Version1 of the interface that serves as a base interface to all composite types of nodes in the XMP DOM ( like Arrays and Structures ).
+ //! \details Provides all the functions to get various properties of the composite node.
+ //! \attention Support multi threading through locks but can be enabled/disabled by the client. By default
+ //! every object created does not support multi-threading.
+ //!
+ class ICompositeNode_I
+ : public virtual ICompositeNode
+ , public virtual INode_I
+ {
+ public:
+
+ //!
+ //! return the version of the interface.
+ //! \return 32 bit unsigned integer representing the version of the interface.
+ //!
+ static uint32 GetInterfaceVersion() { return kInternalInterfaceVersionNumber; }
+
+ virtual pICompositeNode APICALL GetActualICompositeNode() __NOTHROW__ { return this; }
+ virtual pICompositeNode_I APICALL GetICompositeNode_I() __NOTHROW__ { return this; }
+
+ virtual pvoid APICALL GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion );
+
+ protected:
+ virtual ~ICompositeNode_I() __NOTHROW__ {}
+ pvoid APICALL GetInterfacePointerInternal( uint64 interfaceID, uint32 interfaceVersion, bool isTopLevel );
+
+ virtual uint32 APICALL getNodeTypeAtPath( pcIPath_base path, pcIError_base & error ) const __NOTHROW__;
+ virtual pINode_base APICALL getNodeAtPath( pcIPath_base path, pcIError_base & error ) __NOTHROW__;
+ virtual void APICALL appendNode( pINode_base node, pcIError_base & error ) __NOTHROW__;
+ virtual void APICALL insertNodeAtPath( pINode_base node, pcIPath_base path, pcIError_base & error ) __NOTHROW__;
+ virtual pINode_base APICALL replaceNodeAtPath( pINode_base node, pcIPath_base path, pcIError_base & error ) __NOTHROW__;
+ virtual pINode_base APICALL removeNodeAtPath( pcIPath_base path, pcIError_base & error ) __NOTHROW__;
+ virtual pINodeIterator_base APICALL iterator( pcIError_base & error ) __NOTHROW__;
+ virtual pvoid APICALL getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+
+}
+
+#endif // ICompositeNode_I_h__
diff --git a/XMPCore/Interfaces/ICoreConfigurationManager_I.h b/XMPCore/Interfaces/ICoreConfigurationManager_I.h
new file mode 100644
index 0000000..77ab69a
--- /dev/null
+++ b/XMPCore/Interfaces/ICoreConfigurationManager_I.h
@@ -0,0 +1,75 @@
+#ifndef ICoreConfigurationManager_I_h__
+#define ICoreConfigurationManager_I_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+
+#include "XMPCore/XMPCoreFwdDeclarations_I.h"
+#include "XMPCore/Interfaces/ICoreConfigurationManager.h"
+#include "XMPCommon/Interfaces/IConfigurationManager_I.h"
+
+namespace AdobeXMPCore_Int {
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+ //!
+ //! \brief Internal interface that represents interface that represents configuration settings controllable by the client.
+ //! \details Provides functions through which client can plug in its own memory allocators, error notifiers.
+ //! \attention Not Thread Safe as this functionality is generally used at the initialization phase.
+ //!
+ class ICoreConfigurationManager_I
+ : public virtual ICoreConfigurationManager
+ , public virtual IConfigurationManager_I
+ {
+ public:
+
+ //!
+ //! Create the configuration manager for the XMPCore library.
+ //!
+ static void CreateCoreConfigurationManager();
+
+ //!
+ //! Destroy the configuration manager of the XMPCore library.
+ //!
+ static void DestroyCoreConfigurationManager();
+
+ //!
+ //! return the version of the interface.
+ //! \return 32 bit unsigned integer representing the version of the interface.
+ //!
+ static uint32 GetInterfaceVersion() { return kInternalInterfaceVersionNumber; }
+
+ virtual pICoreConfigurationManager APICALL GetActualICoreConfigurationManager() __NOTHROW__ { return this; }
+ virtual pISharedObject_I APICALL GetISharedObject_I() __NOTHROW__{ return this; }
+ virtual pICoreConfigurationManager_I APICALL GetICoreConfigurationManager_I() __NOTHROW__ { return this; }
+
+ virtual pvoid APICALL GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion );
+
+ protected:
+ virtual ~ICoreConfigurationManager_I() __NOTHROW__ {}
+ pvoid APICALL GetInterfacePointerInternal( uint64 interfaceID, uint32 interfaceVersion, bool isTopLevel );
+ virtual pvoid APICALL getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+
+}
+#endif // ICoreConfigurationManager_I_h__
+
diff --git a/XMPCore/Interfaces/ICoreObjectFactory_I.h b/XMPCore/Interfaces/ICoreObjectFactory_I.h
new file mode 100644
index 0000000..e698756
--- /dev/null
+++ b/XMPCore/Interfaces/ICoreObjectFactory_I.h
@@ -0,0 +1,65 @@
+#ifndef ICoreObjectFactory_I_h__
+#define ICoreObjectFactory_I_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+
+#include "XMPCore/XMPCoreFwdDeclarations_I.h"
+#include "XMPCore/Interfaces/ICoreObjectFactory.h"
+
+namespace AdobeXMPCore_Int {
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+ //!
+ //! \brief Internal interface that represents a factory to create various artifacts of XMP DOM like array,
+ //! structure, path etc.
+ //!
+ //! Provides all the functions to create instances of various artifacts of XMP DOM and return them as shared pointers
+ //! to the clients. This is the interface through which clients of the library actually get access to all other interfaces.
+ //!
+ //!
+ class ICoreObjectFactory_I
+ : public virtual ICoreObjectFactory
+ {
+ public:
+
+ //!
+ //! return the version of the interface.
+ //! \return 32 bit unsigned integer representing the version of the interface.
+ //!
+ static uint32 GetInterfaceVersion() { return kInternalInterfaceVersionNumber; }
+
+ virtual pICoreObjectFactory APICALL GetActualICoreObjectFactory() __NOTHROW__ { return this; }
+ virtual pICoreObjectFactory_I APICALL GetICoreObjectFactory_I() __NOTHROW__ { return this; }
+
+ virtual pvoid APICALL GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion );
+
+ protected:
+ virtual ~ICoreObjectFactory_I() __NOTHROW__ {}
+ pvoid APICALL GetInterfacePointerInternal( uint64 interfaceID, uint32 interfaceVersion, bool isTopLevel );
+ virtual pvoid APICALL getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+
+}
+
+#endif // ICoreObjectFactory_I_h__
diff --git a/XMPCore/Interfaces/IDOMImplementationRegistry_I.h b/XMPCore/Interfaces/IDOMImplementationRegistry_I.h
new file mode 100644
index 0000000..67f2032
--- /dev/null
+++ b/XMPCore/Interfaces/IDOMImplementationRegistry_I.h
@@ -0,0 +1,108 @@
+#ifndef IDOMImplementationRegistry_I_h__
+#define IDOMImplementationRegistry_I_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+
+#include "XMPCore/XMPCoreFwdDeclarations_I.h"
+#include "XMPCore/Interfaces/IDOMImplementationRegistry.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/ISharedObject_I.h"
+
+namespace AdobeXMPCore_Int {
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+ //!
+ //! \brief Internal interface that serves as a database/registry of all the parsers and
+ //! serializers available with the XMPCore library.
+ //! \details Provides all the functions to
+ //! -# get registered serializers and parsers from the database.
+ //! -# add client defined serializers and parsers to the database.
+ //! \attention Support multi threading if library is configured to support multi-threading by default.
+ //! \note By default following keys are registered by default with the database by the library:
+ //! -# rdf
+ //!
+ class IDOMImplementationRegistry_I
+ : public virtual IDOMImplementationRegistry
+ , public virtual ISharedObject_I
+ {
+ public:
+
+ //!
+ //! Registers a parser with the database along with the key.
+ //! \param[in] key pointer to a const NULL terminated char buffer containing key of the parser to be used while registering.
+ //! \param[in] parser a shared pointer to #ICDOMParser object to be registered with the database
+ //! \return true in case parser is successfully registered, false otherwise like in case key is already registered.
+ //! \attention currently it is unimplemented.
+ //!
+ virtual bool APICALL RegisterParser( const char * key, const spcIDOMParser & parser ) = 0;
+ virtual bool APICALL RegisterParser( const char * key, pIClientDOMParser_base parser );
+
+ //!
+ //! Registers a serializer with the database along with the key.
+ //! \param[in] key pointer to a const NULL terminated char buffer containing key of the serializer to be used while registering.
+ //! \param[in] parser a shared pointer to #IDOMSerializer object to be registered with the database.
+ //! \return true in case serializer is successfully registered, false otherwise like in case key is already registered.
+ //! \attention currently it is unimplemented.
+ //!
+ virtual bool APICALL RegisterSerializer( const char * key, const spcIDOMSerializer & serializer ) = 0;
+ virtual bool APICALL RegisterSerializer( const char * key, pIClientDOMSerializer_base serializer );
+
+ //!
+ //! return the version of the interface.
+ //! \return 32 bit unsigned integer representing the version of the interface.
+ //!
+ static uint32 GetInterfaceVersion() { return kInternalInterfaceVersionNumber; }
+
+ virtual pIDOMImplementationRegistry APICALL GetActualIDOMImplementationRegistry() __NOTHROW__ { return this; }
+ virtual pISharedObject_I APICALL GetISharedObject_I() __NOTHROW__{ return this; }
+ virtual pIDOMImplementationRegistry_I APICALL GetIDOMImplementationRegistry_I() __NOTHROW__ { return this; }
+
+ virtual pvoid APICALL GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion );
+
+ // static factory functions
+
+ //!
+ //! Creates an IDOMImplementationRegistry object.
+ //! \return a shared pointer to an IDOMImplementationRegistry object
+ //!
+ XMP_PRIVATE static spIDOMImplementationRegistry CreateDOMImplementationRegistry();
+
+ //!
+ //! Destory the IDOMImplementationRegistry object.
+ //!
+ XMP_PRIVATE static void DestoryDOMImplementationRegistry();
+
+ protected:
+ virtual ~IDOMImplementationRegistry_I() __NOTHROW__ {}
+ pvoid APICALL GetInterfacePointerInternal( uint64 interfaceID, uint32 interfaceVersion, bool isTopLevel );
+
+ virtual pIDOMParser_base APICALL getParser( const char * key, pcIError_base & error ) const __NOTHROW__;
+ virtual pIDOMSerializer_base APICALL getSerializer( const char * key, pcIError_base & error ) const __NOTHROW__;
+ virtual uint32 APICALL registerParser( const char * key, pIClientDOMParser_base parser, pcIError_base & error ) __NOTHROW__;
+ virtual uint32 APICALL registerSerializer( const char * key, pIClientDOMSerializer_base serializer, pcIError_base & error ) __NOTHROW__;
+ virtual pvoid APICALL getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+
+}
+
+#endif // IDOMImplementationRegistry_I_h__
diff --git a/XMPCore/Interfaces/IDOMParser_I.h b/XMPCore/Interfaces/IDOMParser_I.h
new file mode 100644
index 0000000..8d680bb
--- /dev/null
+++ b/XMPCore/Interfaces/IDOMParser_I.h
@@ -0,0 +1,92 @@
+#ifndef IDOMParser_I_h__
+#define IDOMParser_I_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+
+#include "XMPCore/XMPCoreFwdDeclarations_I.h"
+#include "XMPCore/Interfaces/IDOMParser.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/ISharedObject_I.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/IConfigurable_I.h"
+#include "XMPCore/source/XMPMeta.hpp"
+
+namespace AdobeXMPCore_Int {
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+ //!
+ //! \brief Internal interface that supports parsing of the XMP Data Model.
+ //! Provides all functions to parse the buffer as well as to configure the parser.
+ //!
+ class IDOMParser_I
+ : public virtual IDOMParser
+ , public virtual IConfigurable_I
+ , public virtual ISharedObject_I
+ {
+ public:
+
+ //!
+ //! Parse the buffer contents and creates an XMP DOM node.
+ //! \param[in] buffer pointer to a constant char buffer containing serialized XMP Data Model.
+ //! \param[in] bufferLength number of characters in buffer. In case name is null terminated set it to #AdobeXMPCommon::npos.
+ //! \return a shared pointer to an object of #INode containing all the information parsed from the buffer.
+ //!
+ virtual spINode APICALL ParseAsNode( const char * buffer, sizet bufferLength ) = 0;
+
+ //!
+ //! return the version of the interface.
+ //! \return 32 bit unsigned integer representing the version of the interface.
+ //!
+ static uint32 GetInterfaceVersion() { return kInternalInterfaceVersionNumber; }
+
+ virtual pIDOMParser APICALL GetActualIDOMParser() __NOTHROW__ { return this; }
+ virtual pISharedObject_I APICALL GetISharedObject_I() __NOTHROW__{ return this; }
+ virtual pIDOMParser_I APICALL GetIDOMParser_I() __NOTHROW__ { return this; }
+
+ virtual pvoid APICALL GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion );
+
+ // Factory functions
+
+ //!
+ //! Creates a DOM Parser from the client DOM Parser.
+ //! \param[in] clientDOMParser a pointer to an object of type #IClientDOMParser_v1.
+ //! \return a shared pointer to an object of type #IDOMParser.
+ //!
+ static spIDOMParser CreateDOMParser( pIClientDOMParser_base clientDOMParser );
+
+
+ virtual void SetErrorCallback(XMPMeta::ErrorCallbackInfo * ec) = 0;
+
+ protected:
+ virtual ~IDOMParser_I() __NOTHROW__ {}
+ virtual pvoid APICALL getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__;
+ pvoid APICALL GetInterfacePointerInternal( uint64 interfaceID, uint32 interfaceVersion, bool isTopLevel );
+
+ virtual pIDOMParser_base APICALL clone( pcIError_base & error ) const __NOTHROW__;
+ virtual pIMetadata_base APICALL parse( const char * buffer, sizet bufferLength, pcIError_base & error ) __NOTHROW__;
+ virtual void APICALL parseWithSpecificAction( const char * buffer, sizet bufferLength, uint32 actionType, pINode_base node, pcIError_base & error ) __NOTHROW__;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+
+}
+
+
+#endif // IDOMParser_I_h__
diff --git a/XMPCore/Interfaces/IDOMSerializer_I.h b/XMPCore/Interfaces/IDOMSerializer_I.h
new file mode 100644
index 0000000..b232dfe
--- /dev/null
+++ b/XMPCore/Interfaces/IDOMSerializer_I.h
@@ -0,0 +1,82 @@
+#ifndef IDOMSerializer_I_h__
+#define IDOMSerializer_I_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+
+#include "XMPCore/XMPCoreFwdDeclarations_I.h"
+#include "XMPCore/Interfaces/IDOMSerializer.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/ISharedObject_I.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/IConfigurable_I.h"
+
+namespace AdobeXMPCore_Int {
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+ //!
+ //! \brief Internal that represents an object that can serialize an XMP Data Model to a buffer.
+ //! Provides the functions to serialize the XMP Data Model.
+ //!
+
+ class IDOMSerializer_I
+ : public virtual IDOMSerializer
+ , public virtual IConfigurable_I
+ , public virtual ISharedObject_I
+ {
+ public:
+
+ //!
+ //! return the version of the interface.
+ //! \return 32 bit unsigned integer representing the version of the interface.
+ //!
+ static uint32 GetInterfaceVersion() { return kInternalInterfaceVersionNumber; }
+
+ virtual pIDOMSerializer APICALL GetActualIDOMSerializer() __NOTHROW__ { return this; }
+ virtual pISharedObject_I APICALL GetISharedObject_I() __NOTHROW__{ return this; }
+ virtual pIDOMSerializer_I APICALL GetIDOMSerializer_I() __NOTHROW__ { return this; }
+
+ virtual pvoid APICALL GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion );
+
+ virtual spIUTF8String APICALL SerializeInternal(const spINode & node, XMP_OptionBits options, sizet padding, const char * newline, const char * indent, sizet baseIndent, const spcINameSpacePrefixMap & nameSpacePrefixMap = spcINameSpacePrefixMap()) const = 0;
+
+
+ // Factory functions
+
+ //!
+ //! Creates a DOM Serializer from the client DOM Serializer.
+ //! \param[in] clientDOMSerializer a pointer to an object of type #IClientDOMSerializer_v1.
+ //! \return a shared pointer to an object of type #IDOMSerializer.
+ //!
+ static spIDOMSerializer CreateDOMSerializer( pIClientDOMSerializer_base clientDOMSerializer );
+
+ protected:
+ virtual ~IDOMSerializer_I() __NOTHROW__ {}
+ pvoid APICALL GetInterfacePointerInternal( uint64 interfaceID, uint32 interfaceVersion, bool isTopLevel );
+
+ virtual pIDOMSerializer_base APICALL clone( pcIError_base & error ) const __NOTHROW__;
+ virtual pIUTF8String_base APICALL serialize( pINode_base node, pcINameSpacePrefixMap_base map, pcIError_base & error ) __NOTHROW__;
+ virtual pvoid APICALL getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+
+}
+
+#endif // IDOMSerializer_I_h__
diff --git a/XMPCore/Interfaces/IMetadata_I.h b/XMPCore/Interfaces/IMetadata_I.h
new file mode 100644
index 0000000..16cb5f3
--- /dev/null
+++ b/XMPCore/Interfaces/IMetadata_I.h
@@ -0,0 +1,68 @@
+#ifndef __IMetadata_I_h__
+#define __IMetadata_I_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+
+#include "XMPCore/Interfaces/IMetadata.h"
+#include "XMPCore/Interfaces/IStructureNode_I.h"
+
+namespace AdobeXMPCore_Int {
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+ //!
+ //! \brief Internal interface that represents the whole XMP metadata for an asset.
+ //! Provides all the functions to add or remove nodes to and from metadata.
+ //! \attention Support multi threading through locks but can be enabled/disabled by the client. By default
+ //! every object created does not support multi-threading.
+ //!
+ class IMetadata_I
+ : public virtual IMetadata
+ , public virtual IStructureNode_I
+ {
+ public:
+
+ //!
+ //! return the version of the interface.
+ //! \return 32 bit unsigned integer representing the version of the interface.
+ //!
+ static uint32 GetInterfaceVersion() { return kInternalInterfaceVersionNumber; }
+
+ virtual pIMetadata APICALL GetActualIMetadata() __NOTHROW__ { return this; }
+ virtual pISharedObject_I APICALL GetISharedObject_I() __NOTHROW__{ return this; }
+ virtual pIMetadata_I APICALL GetIMetadata_I() __NOTHROW__ { return this; }
+
+ virtual pvoid APICALL GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion );
+
+ protected:
+ virtual ~IMetadata_I() __NOTHROW__ {}
+
+ pvoid APICALL GetInterfacePointerInternal( uint64 interfaceID, uint32 interfaceVersion, bool isTopLevel );
+
+ virtual pcIUTF8String_base APICALL getAboutURI( pcIError_base & error ) const __NOTHROW__;
+ virtual pvoid APICALL getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+
+}
+
+#endif // __IMetadata_I_h__
diff --git a/XMPCore/Interfaces/INameSpacePrefixMap_I.h b/XMPCore/Interfaces/INameSpacePrefixMap_I.h
new file mode 100644
index 0000000..c6c5218
--- /dev/null
+++ b/XMPCore/Interfaces/INameSpacePrefixMap_I.h
@@ -0,0 +1,106 @@
+#ifndef INameSpacePrefixMap_I_h__
+#define INameSpacePrefixMap_I_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+
+#include "XMPCore/XMPCoreFwdDeclarations_I.h"
+#include "XMPCore/Interfaces/INameSpacePrefixMap.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/ISharedObject_I.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/IThreadSafe_I.h"
+
+namespace AdobeXMPCore_Int {
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+ //!
+ //! \brief Internal Interface that represents map where each entry consists of prefix string
+ //! as the key and corresponding nameSpace string as its value.
+ //! \details Provides all the functions to get/set the entries inside the map
+ //! \attention Supports Multi-threading at object level through locks.
+ //!
+
+ class INameSpacePrefixMap_I
+ : public virtual INameSpacePrefixMap
+ , public virtual ISharedObject_I
+ , public virtual IThreadSafe_I
+ {
+ public:
+
+ //!
+ //! return the version of the interface.
+ //! \return 32 bit unsigned integer representing the version of the interface.
+ //!
+ static uint32 GetInterfaceVersion() { return kInternalInterfaceVersionNumber; }
+
+ using INameSpacePrefixMap_v1::GetNameSpace;
+ using INameSpacePrefixMap_v1::GetPrefix;
+
+ virtual spcIUTF8String APICALL GetNameSpace( const spcIUTF8String & prefix ) const = 0;
+ virtual spcIUTF8String APICALL GetPrefix( const spcIUTF8String & nameSpace ) const = 0;
+ virtual void APICALL Merge( const spcINameSpacePrefixMap & otherMap ) = 0;
+
+ virtual pINameSpacePrefixMap APICALL GetActualINameSpacePrefixMap() __NOTHROW__ { return this; }
+ virtual pINameSpacePrefixMap_I APICALL GetINameSpacePrefixMap_I() __NOTHROW__ { return this; }
+
+ virtual pvoid APICALL GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion );
+
+ // static factory functions
+
+ //!
+ //! Creates the DefaultNameSpacePrefixMap
+ //!
+ static void CreateDefaultNameSpacePrefixMap();
+
+ //!
+ //! Destroys the DefaultNameSpacePrefixMap
+ //!
+ static void DestroyDefaultNameSapcePrefixMap();
+
+ //!
+ //! Adds an entry in the default mapping used by XMP Core
+ //! \param[in] prefix pointer to a constant char buffer containing prefix string.
+ //! \param[in] prefixLength number of characters in prefix. In case prefix is null set it to AdobeXMPCommon::npos.
+ //! \param[in] nameSpace pointer to a constant char buffer containing nameSpace string.
+ //! \param[in] nameSpaceLength number of characters in nameSpace. In case nameSpace is null set it to AdobeXMPCommon::npos.
+ //! \return a bool type object containing true in case operation was successful, false otherwise.
+ //! \note raises warning in case of
+ //! - prefix or nameSpace are null pointers
+ //! - prefixLength or nameSpaceLength is 0.
+ //!
+ static bool InsertInDefaultNameSpacePrefixMap( const char * prefix, sizet prefixLength, const char * nameSpace, sizet nameSpaceLength );
+
+ protected:
+ virtual ~INameSpacePrefixMap_I() __NOTHROW__ {}
+ pvoid APICALL GetInterfacePointerInternal( uint64 interfaceID, uint32 interfaceVersion, bool isTopLevel );
+
+ virtual uint32 APICALL insert( const char * prefix, sizet prefixLength, const char * nameSpace, sizet nameSpaceLength, pcIError_base & error ) __NOTHROW__;
+ virtual uint32 APICALL remove( uint32 keyType, const char * key, sizet keyLength, pcIError_base & error ) __NOTHROW__;
+ virtual uint32 APICALL isPresent( uint32 keyType, const char * key, sizet keyLength, pcIError_base & error ) const __NOTHROW__;
+ virtual pcIUTF8String_base APICALL get( uint32 keyType, const char * key, sizet keyLength, pcIError_base & error ) const __NOTHROW__;
+ virtual pINameSpacePrefixMap_base APICALL clone( pcIError_base & error ) const __NOTHROW__;
+ virtual pvoid APICALL getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+
+}
+
+#endif // INameSpacePrefixMap_I_h__
diff --git a/XMPCore/Interfaces/INodeIterator_I.h b/XMPCore/Interfaces/INodeIterator_I.h
new file mode 100644
index 0000000..3d8bc0b
--- /dev/null
+++ b/XMPCore/Interfaces/INodeIterator_I.h
@@ -0,0 +1,61 @@
+#ifndef __INodeIterator_I_h__
+#define __INodeIterator_I_h__ 1
+
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+
+#include "XMPCore/XMPCoreFwdDeclarations_I.h"
+#include "XMPCore/Interfaces/INodeIterator.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/ISharedObject_I.h"
+#include "XMPCommon/Utilities/TSmartPointers_I.h"
+
+namespace AdobeXMPCore_Int {
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+ //!
+ //! \brief Internal interface that represents an iterator over the mutable children of a XMP DOM Node.
+ //! \attention Support multi threading through locks but can be disabled by the client.
+ //! \note Iterators are valid as long as their are no changes performed on the node. In case there are some
+ //! changes performed on the node then the behavior is undefined.
+ //!
+ class INodeIterator_I
+ : public virtual INodeIterator
+ , public virtual ISharedObject_I
+ {
+ public:
+ virtual pINodeIterator APICALL GetActualINodeIterator() __NOTHROW__ { return this; }
+ virtual pINodeIterator_I APICALL GetINodeIterator_I() __NOTHROW__ { return this; }
+ static uint32 GetInterfaceVersion() { return kInternalInterfaceVersionNumber; }
+ virtual pvoid APICALL GetInterfacePointer(uint64 interfaceID, uint32 interfaceVersion);
+ protected:
+ virtual ~INodeIterator_I() __NOTHROW__ {}
+ pvoid APICALL GetInterfacePointerInternal(uint64 interfaceID, uint32 interfaceVersion, bool isTopLevel);
+ virtual pINode_base APICALL getNode( pcIError_base & error ) __NOTHROW__;
+ virtual uint32 APICALL getNodeType( pcIError_base & error ) const __NOTHROW__;
+ virtual pINodeIterator_base APICALL next( pcIError_base & error ) __NOTHROW__;
+ virtual pvoid APICALL getInterfacePointer(uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error) __NOTHROW__;
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+
+}
+
+#endif // __INodeIterator_I_h__
diff --git a/XMPCore/Interfaces/INode_I.h b/XMPCore/Interfaces/INode_I.h
new file mode 100644
index 0000000..84d4e9f
--- /dev/null
+++ b/XMPCore/Interfaces/INode_I.h
@@ -0,0 +1,223 @@
+#ifndef __INode_I_h__
+#define __INode_I_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+
+#include "XMPCore/XMPCoreFwdDeclarations_I.h"
+#include "XMPCore/Interfaces/INode.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/ISharedObject_I.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/IThreadSafe_I.h"
+
+namespace AdobeXMPCore_Int {
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+ //!
+ //! Internal interface that serves as a base interface to all types of nodes in the XMP DOM.
+ //! Provides all the functions to get various properties of the node.
+ //!
+ class INode_I
+ : public virtual INode
+ , public virtual ISharedObject_I
+ , public virtual IThreadSafe_I
+ {
+ public:
+
+ //!
+ //! return the version of the interface.
+ //! \return 32 bit unsigned integer representing the version of the interface.
+ //!
+ static uint32 GetInterfaceVersion() { return kInternalInterfaceVersionNumber; }
+
+ //!
+ //! Change the parent of the node.
+ //! \param[in] parent a pointer of #INode representing the new parent of the node.
+ //! \note If the parent is invalid shared pointer it will be treated like removing the node from the
+ //! tree.
+ //!
+ virtual void APICALL ChangeParent( pINode parent ) = 0;
+
+ //!
+ //! @{
+ //! Get the qualifier of the node having specified namespace and name.
+ //! \param[in] nameSpace shared pointer to a const IUTF8String object containing name space URI of the qualifier node.
+ //! \param[in] name shared pointer to a const IUTF8String object containing local name of the qualifier node.
+ //! \return a shared pointer to either a const or const qualifier node.
+ //! \note In case no qualifier exists with the specified nameSpace and name combination then an invalid shared pointer
+ //! is returned.
+ //!
+ using INode_v1::GetQualifier;
+ XMP_PRIVATE spcINode GetQualifier( const spcIUTF8String & nameSpace, const spcIUTF8String & name ) const {
+ return const_cast< INode_I * >( this )->GetQualifier( nameSpace, name );
+ }
+ virtual spINode APICALL GetQualifier( const spcIUTF8String & nameSpace, const spcIUTF8String & name ) = 0;
+ //!
+ //! @}
+
+ //!
+ //! @{
+ //! Get the node's qualifier having specified name space and name as simple node.
+ //! \param[in] nameSpace pointer to a const IUTF8String object containing name space URI of the qualifier node.
+ //! \param[in] name pointer to a const IUTF8String object containing local name of the qualifier node.
+ //! \return a shared pointer to const or non const #ISimpleNode object containing qualifier.
+ //! \note In case no qualifier exists with the specified nameSpace and name combination then an invalid shared pointer
+ //! is returned.
+ //! \attention Error is thrown in case
+ //! - a qualifier exists with the specified nameSpace and name combination but is not a simple node.
+ //!
+ using INode_v1::GetSimpleQualifier;
+ XMP_PRIVATE spcISimpleNode GetSimpleQualifier( const spcIUTF8String & nameSpace, const spcIUTF8String & name ) const {
+ auto node = GetQualifier( nameSpace, name );
+ if ( node ) return node->ConvertToSimpleNode();
+ return spcISimpleNode();
+ }
+
+ XMP_PRIVATE spISimpleNode GetSimpleQualifier( const spcIUTF8String & nameSpace, const spcIUTF8String & name ) {
+ auto node = GetQualifier( nameSpace, name );
+ if ( node ) return node->ConvertToSimpleNode();
+ return spISimpleNode();
+ }
+ //! @}
+
+ //!
+ //! @{
+ //! Get the node's qualifier having specified name space and name as structure node.
+ //! \param[in] nameSpace pointer to a const IUTF8String object containing name space URI of the qualifier node.
+ //! \param[in] name pointer to a const IUTF8String object containing local name of the qualifier node.
+ //! \return a shared pointer to const or non const #IStructureNode object containing qualifier.
+ //! \note In case no qualifier exists with the specified nameSpace and name combination then an invalid shared pointer
+ //! is returned.
+ //! \attention Error is thrown in case
+ //! - a qualifier exists with the specified nameSpace and name combination but is not a structure node.
+ //!
+ using INode_v1::GetStructureQualifier;
+ XMP_PRIVATE spcIStructureNode GetStructureQualifier( const spcIUTF8String & nameSpace, const spcIUTF8String & name ) const {
+ auto node = GetQualifier( nameSpace, name );
+ if ( node ) return node->ConvertToStructureNode();
+ return spcIStructureNode();
+ }
+
+ XMP_PRIVATE spIStructureNode GetStructureQualifier( const spcIUTF8String & nameSpace, const spcIUTF8String & name ) {
+ auto node = GetQualifier( nameSpace, name );
+ if ( node ) return node->ConvertToStructureNode();
+ return spIStructureNode();
+ }
+ //! @}
+
+ //!
+ //! @{
+ //! Get the node's qualifier having specified name space and name as an array node.
+ //! \param[in] nameSpace pointer to a const IUTF8String object containing name space URI of the qualifier node.
+ //! \param[in] name pointer to a const IUTF8String object containing local name of the qualifier node.
+ //! \return a shared pointer to const or non const #ISimpleNode object containing qualifier.
+ //! \note In case no qualifier exists with the specified nameSpace and name combination then an invalid shared pointer
+ //! is returned.
+ //! \attention Error is thrown in case
+ //! - a qualifier exists with the specified nameSpace and name combination but is not an array node.
+ //!
+ using INode_v1::GetArrayQualifier;
+ XMP_PRIVATE spcIArrayNode GetArrayQualifier( const spcIUTF8String & nameSpace, const spcIUTF8String & name ) const {
+ auto node = GetQualifier( nameSpace, name );
+ if ( node ) return node->ConvertToArrayNode();
+ return spcIArrayNode();
+ }
+
+ XMP_PRIVATE spIArrayNode GetArrayQualifier( const spcIUTF8String & nameSpace, const spcIUTF8String & name ) {
+ auto node = GetQualifier( nameSpace, name );
+ if ( node ) return node->ConvertToArrayNode();
+ return spIArrayNode();
+ }
+ //! @}
+
+ //!
+ //! Remove the qualifier node with the specified nameSpace and name.
+ //! \param[in] nameSpace pointer to a const IUTF8String object containing name space URI of the qualifier node.
+ //! \param[in] name pointer to a const IUTF8String object containing local name of the qualifier node.
+ //! \return a shared pointer to #AdobeXMPCore::INode object representing qualifier node which is removed from the node.
+ //! \note In case no qualifier node exists at the given index an invalid shared pointer is returned.
+ //!
+ using INode_v1::RemoveQualifier;
+ virtual spINode APICALL RemoveQualifier( const spcIUTF8String & nameSpace, const spcIUTF8String & name ) = 0;
+
+ //!
+ //! @{
+ //! Get the raw pointer to the parent of the node.
+ //! \return a const or non const pointer to the parent of the node.
+ //!
+ pcINode GetRawParentPointer() const {
+ return const_cast< INode_I * >( this )->GetRawParentPointer();
+ }
+ virtual pINode APICALL GetRawParentPointer() = 0;
+ //! @}
+
+
+ virtual pINode APICALL GetActualINode() __NOTHROW__ { return this; }
+ virtual pINode_I APICALL GetINode_I() __NOTHROW__ { return this; }
+
+ virtual pvoid APICALL GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion );
+
+ virtual void SetIndex( sizet currentIndex ) = 0;
+ virtual void SetIsQualifierNode( bool isQualifierNode ) = 0;
+ virtual void RegisterChange() = 0;
+ virtual bool ValidateNameOrNameSpaceChangeForAChild( const spcIUTF8String & currentNameSpace, const spcIUTF8String & currentName,
+ const spcIUTF8String & newNameSpace, const spcIUTF8String & newName ) = 0;
+ virtual void UnRegisterChange() = 0;
+ virtual void SetQualifiers( const spIStructureNode & node ) = 0;
+
+ protected:
+ virtual ~INode_I() __NOTHROW__ {}
+ pvoid APICALL GetInterfacePointerInternal( uint64 interfaceID, uint32 interfaceVersion, bool isTopLevel );
+
+ virtual pINode_base APICALL getParent( pcIError_base & error ) __NOTHROW__;
+ virtual uint32 APICALL getParentNodeType( pcIError_base & error ) const __NOTHROW__;
+ virtual void APICALL setName( const char * name, sizet nameLength, pcIError_base & error ) __NOTHROW__;
+ virtual pcIUTF8String_base APICALL getName( pcIError_base & error ) const __NOTHROW__;
+ virtual void APICALL setNameSpace( const char * nameSpace, sizet nameSpaceLength, pcIError_base & error ) __NOTHROW__;
+ virtual pcIUTF8String_base APICALL getNameSpace( pcIError_base & error ) const __NOTHROW__;
+ virtual pIPath_base APICALL getPath( pcIError_base & error ) const __NOTHROW__;
+ virtual pINodeIterator_base APICALL qualifiersIterator( pcIError_base & error ) __NOTHROW__;
+ virtual uint32 APICALL getQualifierNodeType( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) const __NOTHROW__;
+ virtual pINode_base APICALL getQualifier( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) __NOTHROW__;
+ virtual void APICALL insertQualifier( pINode_base base, pcIError_base & error ) __NOTHROW__;
+ virtual pINode_base APICALL replaceQualifier( pINode_base node, pcIError_base & error ) __NOTHROW__;
+ virtual pINode_base APICALL removeQualifier( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) __NOTHROW__;
+ virtual uint32 APICALL getNodeType( pcIError_base & error ) const __NOTHROW__;
+ virtual uint32 APICALL isArrayItem( pcIError_base & error ) const __NOTHROW__;
+ virtual uint32 APICALL isQualifierNode( pcIError_base & error ) const __NOTHROW__;
+ virtual sizet APICALL getIndex( pcIError_base & error ) const __NOTHROW__;
+ virtual uint32 APICALL hasQualifiers( pcIError_base & error ) const __NOTHROW__;
+ virtual uint32 APICALL hasContent( pcIError_base & error ) const __NOTHROW__;
+ virtual uint32 APICALL isEmpty( pcIError_base & error ) const __NOTHROW__;
+ virtual uint32 APICALL hasChanged( pcIError_base & error ) const __NOTHROW__;
+ virtual void APICALL clear( uint32 contents, uint32 qualifiers, pcIError_base & error ) __NOTHROW__;
+ virtual pINode_base APICALL clone( uint32 igoreEmptyNodes, uint32 ignoreNodesWithOnlyQualifiers, pcIError_base & error ) const __NOTHROW__;
+ virtual pISimpleNode_base APICALL convertToSimpleNode( pcIError_base & error ) __NOTHROW__;
+ virtual pIStructureNode_base APICALL convertToStructureNode( pcIError_base & error ) __NOTHROW__;
+ virtual pIArrayNode_base APICALL convertToArrayNode( pcIError_base & error ) __NOTHROW__;
+ virtual pIMetadata_base APICALL convertToMetadata( pcIError_base & error ) __NOTHROW__;
+ virtual pvoid APICALL getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+
+}
+
+#endif // __INode_I_h__
diff --git a/XMPCore/Interfaces/IPathSegment_I.h b/XMPCore/Interfaces/IPathSegment_I.h
new file mode 100644
index 0000000..5afd68b
--- /dev/null
+++ b/XMPCore/Interfaces/IPathSegment_I.h
@@ -0,0 +1,125 @@
+#ifndef __IPathSegment_I_h__
+#define __IPathSegment_I_h__ 1
+
+// =================================================================================================
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved.
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+
+#include "XMPCore/XMPCoreFwdDeclarations_I.h"
+#include "XMPCore/Interfaces/IPathSegment.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/ISharedObject_I.h"
+
+namespace AdobeXMPCore_Int {
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+ //!
+ //! \brief Internal interface that represents an PathSegment.
+ //! \details Provides all the functions to access
+ //!
+ class IPathSegment_I
+ : public virtual IPathSegment
+ , public virtual ISharedObject_I
+ {
+ public:
+
+ //!
+ //! return the version of the interface.
+ //! \return 32 bit unsigned integer representing the version of the interface.
+ //!
+ static uint32 GetInterfaceVersion() { return kInternalInterfaceVersionNumber; }
+
+ using IPathSegment_v1::GetNameSpace;
+ using IPathSegment_v1::GetName;
+ using IPathSegment_v1::GetType;
+ using IPathSegment_v1::GetValue;
+
+ virtual spcIPathSegment APICALL Clone() const = 0;
+ virtual pIPathSegment APICALL GetActualIPathSegment() __NOTHROW__ { return this; }
+ virtual pIPathSegment_I APICALL GetIPathSegment_I() __NOTHROW__ { return this; }
+
+ virtual pvoid APICALL GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion );
+
+ // static factory functions
+
+ // Factories to create the specific segments
+
+ //!
+ //! Creates a normal property path segment.These are essentially all properties (simple, struct and arrays).
+ //! \param[in] nameSpace shared pointer to a const IUTF8String object containing name space URI of the property.
+ //! \param[in] name shared pointer to a const IUTF8String object containing local name of the property.
+ //! \return a shared pointer to const #IPathSegment.
+ //! \attention throws #AdobeXMPCommon::pcIError in case
+ //! - shared pointers are invalid,
+ //! - their content is empty.
+ //!
+ XMP_PRIVATE static spcIPathSegment CreatePropertyPathSegment( const spcIUTF8String & nameSpace, const spcIUTF8String & name );
+
+ //!
+ //! Creates an array index path segment that denotes a specific element of an array.
+ //! Such segments do not have an own name and inherits the namespace from the Array property itself.
+ //! \param[in] nameSpace shared pointer to a const IUTF8String object containing name space URI of the property.
+ //! \param[in] index an object of type #AdobeXMP::sizet containting the index of the array element.
+ //! \return a shared pointer to const #IPathSegment.
+ //! \attention throws #AdobeXMP::pcIError in case
+ //! - pointers to const char buffers are NULL,
+ //! - their content is empty.
+ //!
+ //!
+ XMP_PRIVATE static spcIPathSegment CreateArrayIndexPathSegment( const spcIUTF8String & nameSpace, sizet index );
+
+ //!
+ //! Creates a Qualifier path segment, which behaves like a normal property
+ //! \param[in] nameSpace shared pointer to a const IUTF8String object containing name space URI of the property.
+ //! \param[in] name shared pointer to a const IUTF8String object containing local name of the property.
+ //! \return a shared pointer to const #IPathSegment.
+ //! \attention throws #AdobeXMPCommon::pcIError in case
+ //! - shared pointers are invalid,
+ //! - their content is empty.
+ //!
+ XMP_PRIVATE static spcIPathSegment CreateQualifierPathSegment( const spcIUTF8String & nameSpace, const spcIUTF8String & name );
+
+ //!
+ //! Creates a path segment that selects a specific qualifier by its value.
+ //! For example a specific language in a alternative array of languages.
+ //! \param[in] nameSpace shared pointer to a const IUTF8String object containing name space URI of the property.
+ //! \param[in] name shared pointer to a const IUTF8String object containing local name of the property.
+ //! \param[in] value shared pointer to a const IUTF8String object containing value of the language (xml:lang)
+ //! \return a shared pointer to const #IPathSegment.
+ //! \attention throws #AdobeXMPCommon::pcIError in case
+ //! - shared pointers are invalid,
+ //! - their content is empty.
+ //!
+ XMP_PRIVATE static spcIPathSegment CreateQualifierSelectorPathSegment( const spcIUTF8String & nameSpace, const spcIUTF8String & name, const spcIUTF8String & value );
+
+
+ protected:
+ virtual ~IPathSegment_I() __NOTHROW__ {}
+ pvoid APICALL GetInterfacePointerInternal( uint64 interfaceID, uint32 interfaceVersion, bool isTopLevel );
+
+ virtual pcIUTF8String_base APICALL getNameSpace( pcIError_base & error ) const __NOTHROW__;
+ virtual pcIUTF8String_base APICALL getName( pcIError_base & error ) const __NOTHROW__;
+ virtual uint32 APICALL getType( pcIError_base & error ) const __NOTHROW__;
+ virtual pcIUTF8String_base APICALL getValue( pcIError_base & error ) const __NOTHROW__;
+ virtual pvoid APICALL getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+
+}
+#endif // __IPathSegment_I_h__
diff --git a/XMPCore/Interfaces/IPath_I.h b/XMPCore/Interfaces/IPath_I.h
new file mode 100644
index 0000000..7c0ca8f
--- /dev/null
+++ b/XMPCore/Interfaces/IPath_I.h
@@ -0,0 +1,72 @@
+#ifndef __IPath_I_h__
+#define __IPath_I_h__ 1
+
+// =================================================================================================
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved.
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+
+#include "XMPCore/XMPCoreFwdDeclarations_I.h"
+#include "XMPCore/Interfaces/IPath.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/ISharedObject_I.h"
+
+namespace AdobeXMPCore_Int {
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+ //!
+ //! Internal interface that provides an easy iterative description of a specific path into the XMP tree.
+ //! \details Path consists of multiple path segments in an order and each #AdobeXMPCore::IPathSegment represents one segment
+ //! of the path into the XMP tree. Provides all the functions to create path and get the various properties of a path.
+ //! \attention Do not support multi-threading.
+ //! \note Index in the path are 1-based.
+ //!
+ class IPath_I
+ : public virtual IPath
+ , public virtual ISharedObject_I
+ {
+ public:
+
+ //!
+ //! return the version of the interface.
+ //! \return 32 bit unsigned integer representing the version of the interface.
+ //!
+ static uint32 GetInterfaceVersion() { return kInternalInterfaceVersionNumber; }
+
+ virtual pIPath APICALL GetActualIPath() __NOTHROW__ { return this; }
+ virtual pIPath_I APICALL GetIPath_I() __NOTHROW__ { return this; }
+
+ virtual pvoid APICALL GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion );
+
+ protected:
+ virtual ~IPath_I() __NOTHROW__ {}
+ pvoid APICALL GetInterfacePointerInternal( uint64 interfaceID, uint32 interfaceVersion, bool isTopLevel );
+
+ virtual pcINameSpacePrefixMap_base APICALL registerNameSpacePrefixMap( pcINameSpacePrefixMap_base map, pcIError_base & error ) __NOTHROW__;
+ virtual pIUTF8String_base APICALL serialize( pcINameSpacePrefixMap_base map, pcIError_base & error ) const __NOTHROW__;
+ virtual void APICALL appendPathSegment( pcIPathSegment_base segment, pcIError_base & error ) __NOTHROW__;
+ virtual pcIPathSegment_base APICALL removePathSegment( sizet index, pcIError_base & error ) __NOTHROW__;
+ virtual pcIPathSegment_base APICALL getPathSegment( sizet index, pcIError_base & error ) const __NOTHROW__;
+ virtual pIPath_base APICALL clone( sizet startingIndex, sizet countOfSegemetns, pcIError_base & error ) const __NOTHROW__;
+ virtual pvoid APICALL getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+
+}
+
+#endif // __IPath_I_h__
diff --git a/XMPCore/Interfaces/ISimpleNode_I.h b/XMPCore/Interfaces/ISimpleNode_I.h
new file mode 100644
index 0000000..6f6da83
--- /dev/null
+++ b/XMPCore/Interfaces/ISimpleNode_I.h
@@ -0,0 +1,83 @@
+#ifndef __ISimpleNode_I_h__
+#define __ISimpleNode_I_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+
+#include "XMPCore/XMPCoreFwdDeclarations_I.h"
+#include "XMPCore/Interfaces/ISimpleNode.h"
+#include "XMPCore/Interfaces/INode_I.h"
+
+namespace AdobeXMPCore_Int {
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+ //!
+ //! \brief Internal interface that represents a Simple Property Node of XMP DOM.
+ //! \details Provides all the functions to get and set various properties of the simple node.
+ //! \attention Support multi threading through locks but can be enabled/disabled by the client. By default
+ //! every object created does not support multi-threading.
+ //!
+ class ISimpleNode_I
+ : public virtual ISimpleNode
+ , public virtual INode_I
+ {
+ public:
+
+ //!
+ //! return the version of the interface.
+ //! \return 32 bit unsigned integer representing the version of the interface.
+ //!
+ static uint32 GetInterfaceVersion() { return kInternalInterfaceVersionNumber; }
+
+ virtual pISimpleNode APICALL GetActualISimpleNode() __NOTHROW__ { return this; }
+ virtual pISimpleNode_I APICALL GetISimpleNode_I() __NOTHROW__ { return this; }
+
+ virtual pvoid APICALL GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion );
+
+ //!
+ //! Creates a simple property node which is not part of any metadata document.
+ //! \param[in] nameSpace shared pointer to a constant IUTF8String object containing name space URI of the simple node.
+ //! \param[in] name shared pointer to a constant IUTF8String object containing local name of the simple node.
+ //! \param[in] value shared pointer to a constant IUTF8String object containing value of the simple node.
+ //! \return a shared pointer to a #AdobeXMPCore::ISimpleNode object.
+ //! \attention Error is thrown in case
+ //! - nameSpace or name are invalid pointers, or
+ //! - their contents are empty.
+ //! \note In case the value is an invalid pointer or its contents are empty than the value is set to empty string.
+ //!
+ XMP_PRIVATE static spISimpleNode CreateSimpleNode( const spcIUTF8String & nameSpace, const spcIUTF8String & name, const spcIUTF8String & value = spcIUTF8String() );
+
+ protected:
+ virtual ~ISimpleNode_I() __NOTHROW__ {}
+ pvoid APICALL GetInterfacePointerInternal( uint64 interfaceID, uint32 interfaceVersion, bool isTopLevel );
+
+ virtual pcIUTF8String_base APICALL getValue( pcIError_base & error ) const __NOTHROW__;
+ virtual void APICALL setValue( const char * value, sizet valueLength, pcIError_base & error ) __NOTHROW__;
+ virtual uint32 APICALL isURIType( pcIError_base & error ) const __NOTHROW__;
+ virtual void APICALL setURIType( uint32 isURI, pcIError_base & error ) __NOTHROW__;
+ virtual pvoid APICALL getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+
+}
+
+#endif // __ISimpleNode_I_h__
diff --git a/XMPCore/Interfaces/IStructureNode_I.h b/XMPCore/Interfaces/IStructureNode_I.h
new file mode 100644
index 0000000..209438a
--- /dev/null
+++ b/XMPCore/Interfaces/IStructureNode_I.h
@@ -0,0 +1,189 @@
+#ifndef IStructureNode_I_h__
+#define IStructureNode_I_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+
+#include "XMPCore/Interfaces/IStructureNode.h"
+#include "XMPCore/Interfaces/ICompositeNode_I.h"
+
+namespace AdobeXMPCore_Int {
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+ //!
+ //! \brief Internal interface that represents a structure Node of XMP DOM.
+ //! \details Provides all the functions to get and set various properties of the structure node.
+ //! \attention Support multi threading through locks but can be enabled/disabled by the client. By default
+ //! every object created does not support multi-threading.
+ //!
+ class IStructureNode_I
+ : public virtual IStructureNode
+ , public virtual ICompositeNode_I
+ {
+ public:
+
+ //!
+ //! @{
+ //! Get the child of the node having specified namespace and name.
+ //! \param[in] nameSpace shared pointer to a const IUTF8String object containing name space URI of the child node.
+ //! \param[in] name shared pointer to a const IUTF8String object local name of the child node.
+ //! \return a shared pointer to either a const or const child node.
+ //! \note In case no child exists with the specified nameSpace and name combination then an invalid shared pointer
+ //! is returned.
+ //!
+ using IStructureNode_v1::GetNode;
+ XMP_PRIVATE spcINode GetNode( const spcIUTF8String & nameSpace, const spcIUTF8String & name ) const {
+ return const_cast< IStructureNode_I * >( this )->GetNode( nameSpace, name );
+ }
+ virtual spINode APICALL GetNode( const spcIUTF8String & nameSpace, const spcIUTF8String & name ) = 0;
+ //! @}
+
+ //!
+ //! @{
+ //! Get the node's child having specified name space and name as simple node.
+ //! \param[in] nameSpace shared pointer to a const IUTF8String object name space URI of the child node.
+ //! \param[in] name shared pointer to a const IUTF8String object local name of the child node.
+ //! \return a shared pointer to const or non const #ISimpleNode object containing child.
+ //! \note In case no child exists with the specified nameSpace and name combination then an invalid shared pointer
+ //! is returned.
+ //! \attention Error is thrown in case
+ //! - a child exists with the specified nameSpace and name combination but is not a simple node.
+ //!
+ using IStructureNode_v1::GetSimpleNode;
+ XMP_PRIVATE spcISimpleNode GetSimpleNode( const spcIUTF8String & nameSpace, const spcIUTF8String & name ) const {
+ auto node = GetNode( nameSpace, name );
+ if ( node ) return node->ConvertToSimpleNode();
+ return spcISimpleNode();
+ }
+
+ XMP_PRIVATE spISimpleNode GetSimpleNode( const spcIUTF8String & nameSpace, const spcIUTF8String & name ) {
+ auto node = GetNode( nameSpace, name );
+ if ( node ) return node->ConvertToSimpleNode();
+ return spISimpleNode();
+ }
+ //! @}
+
+ //!
+ //! @{
+ //! Get the node's child having specified name space and name as structure node.
+ //! \param[in] nameSpace shared pointer to a const IUTF8String object containing name space URI of the child node.
+ //! \param[in] name shared pointer to a const IUTF8String object containing local name of the child node.
+ //! \return a shared pointer to const or non const #IStructureNode object containing child.
+ //! \note In case no child exists with the specified nameSpace and name combination then an invalid shared pointer
+ //! is returned.
+ //! \attention Error is thrown in case
+ //! - a child exists with the specified nameSpace and name combination but is not a structure node.
+ //!
+ using IStructureNode_v1::GetStructureNode;
+ XMP_PRIVATE spcIStructureNode GetStructureNode( const spcIUTF8String & nameSpace, const spcIUTF8String & name ) const {
+ auto node = GetNode( nameSpace, name );
+ if ( node ) return node->ConvertToStructureNode();
+ return spcIStructureNode();
+ }
+
+ XMP_PRIVATE spIStructureNode GetStructureNode( const spcIUTF8String & nameSpace, const spcIUTF8String & name ) {
+ auto node = GetNode( nameSpace, name );
+ if ( node ) return node->ConvertToStructureNode();
+ return spIStructureNode();
+ }
+ //! @}
+
+ //!
+ //! @{
+ //! Get the node's child having specified name space and name as an array node.
+ //! \param[in] nameSpace shared pointer to a const IUTF8String object containing name space URI of the child node.
+ //! \param[in] name shared pointer to a const IUTF8String object containing local name of the child node.
+ //! \return a shared pointer to const or non const #ISimpleNode object containing child.
+ //! \note In case no child exists with the specified nameSpace and name combination then an invalid shared pointer
+ //! is returned.
+ //! \attention Error is thrown in case
+ //! - a child exists with the specified nameSpace and name combination but is not an array node.
+ //!
+ using IStructureNode_v1::GetArrayNode;
+ XMP_PRIVATE spcIArrayNode GetArrayNode( const spcIUTF8String & nameSpace, const spcIUTF8String & name ) const {
+ auto node = GetNode( nameSpace, name );
+ if ( node ) return node->ConvertToArrayNode();
+ return spcIArrayNode();
+ }
+
+ XMP_PRIVATE spIArrayNode GetArrayNode( const spcIUTF8String & nameSpace, const spcIUTF8String & name ) {
+ auto node = GetNode( nameSpace, name );
+ if ( node ) return node->ConvertToArrayNode();
+ return spIArrayNode();
+ }
+ //! @}
+
+ //!
+ //! Remove the node with the specified nameSpace and name.
+ //! \param[in] nameSpace shared pointer to a const IUTF8String object containing name space URI of the child node.
+ //! \param[in] name shared pointer to a const IUTF8String object containing local name of the child node.
+ //! \return a shared pointer to #AdobeXMPCore::INode object containing node which is removed from the tree.
+ //! \note In case no node exists with the given nameSpace and name combination an invalid shared pointer is returned.
+ //!
+ using IStructureNode_v1::RemoveNode;
+ virtual spINode APICALL RemoveNode( const spcIUTF8String & nameSpace, const spcIUTF8String & name ) = 0;
+
+ //!
+ //! return the version of the interface.
+ //! \return 32 bit unsigned integer representing the version of the interface.
+ //!
+ static uint32 GetInterfaceVersion() { return kInternalInterfaceVersionNumber; }
+
+ virtual pIStructureNode APICALL GetActualIStructureNode() __NOTHROW__ { return this; }
+ virtual pIStructureNode_I APICALL GetIStructureNode_I() __NOTHROW__ { return this; }
+
+ //!
+ //! list all functions to be defined in this interface
+ //!
+
+
+ virtual pvoid APICALL GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion );
+
+ // static factory functions
+
+ //!
+ //! Creates a simple property node which is not part of any metadata document.
+ //! \param[in] nameSpace shared pointer to a constant IUTF8String object containing name space URI of the simple node.
+ //! \param[in] name shared pointer to a constant IUTF8String object containing local name of the simple node.
+ //! \return a shared pointer to a #IStructureNode object.
+ //! \attention Error is thrown in case
+ //! - nameSpace or name are invalid pointers, or
+ //! - their contents are empty.
+ //!
+ XMP_PRIVATE static spIStructureNode CreateStructureNode( const spcIUTF8String & nameSpace, const spcIUTF8String name );
+
+ protected:
+ virtual ~IStructureNode_I() __NOTHROW__ {}
+ pvoid APICALL GetInterfacePointerInternal( uint64 interfaceID, uint32 interfaceVersion, bool isTopLevel );
+
+ virtual pINode_base APICALL getNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) __NOTHROW__;
+ virtual uint32 APICALL getChildNodeType( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) const __NOTHROW__;
+ virtual void APICALL insertNode( pINode_base node, pcIError_base & error ) __NOTHROW__;
+ virtual pINode_base APICALL removeNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) __NOTHROW__;
+ virtual pINode_base APICALL replaceNode( pINode_base node, pcIError_base & error ) __NOTHROW__;
+ virtual pvoid APICALL getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+
+}
+
+#endif // IStructureNode_I_h__
diff --git a/XMPCore/Interfaces/IXMPLanguageAlternative_I.h b/XMPCore/Interfaces/IXMPLanguageAlternative_I.h
new file mode 100644
index 0000000..8e5983f
--- /dev/null
+++ b/XMPCore/Interfaces/IXMPLanguageAlternative_I.h
@@ -0,0 +1,30 @@
+#ifndef __IXMPLanguageAlternative_I_h__
+#define __IXMPLanguageAlternative_I_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCore/XMPCore_Defines.h"
+#include "XMPCommon/XMPCommonFwdDeclarations.h"
+
+#include "XMPCore/Interfaces/IXMPStructNode.h"
+#include "XMPCore/Interfaces/IXMPLanguageAlternative.h"
+
+namespace AdobeXMPCore_Int{
+
+ class IXMPLanguageAlternative
+ : public virtual IXMPLanguageAlternative_latest
+ {
+
+
+
+ };
+};
+
+#endif // __IXMPLanguageAlternative_I_h__
diff --git a/XMPCore/XMPCoreDefines_I.h b/XMPCore/XMPCoreDefines_I.h
new file mode 100644
index 0000000..c549789
--- /dev/null
+++ b/XMPCore/XMPCoreDefines_I.h
@@ -0,0 +1,39 @@
+#ifndef XMPCoreDefines_I_h__
+#define XMPCoreDefines_I_h__ 1
+
+// =================================================================================================
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved.
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+// =================================================================================================
+// All Platform Settings
+// ===========================
+#include "XMPCore/XMPCoreDefines.h"
+#include "XMPCommon/XMPCommonDefines_I.h"
+
+namespace AdobeXMPCore_Int {
+ extern const char * kArrayItemName;
+ extern const char * kArrayItemNameSpace;
+}
+
+// =================================================================================================
+// Macintosh Specific Settings
+// ===========================
+
+// =================================================================================================
+// Windows Specific Settings
+// =========================
+
+// =================================================================================================
+// UNIX Specific Settings
+// ======================
+
+// =================================================================================================
+// IOS Specific Settings
+// ===========================
+
+#endif // XMPCoreDefines_I_h__
diff --git a/XMPCore/XMPCoreFwdDeclarations_I.h b/XMPCore/XMPCoreFwdDeclarations_I.h
new file mode 100644
index 0000000..c2aa0c5
--- /dev/null
+++ b/XMPCore/XMPCoreFwdDeclarations_I.h
@@ -0,0 +1,82 @@
+#ifndef XMPCoreFwdDeclarations_I_h__
+#define XMPCoreFwdDeclarations_I_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCore/XMPCoreDefines_I.h"
+#include "XMPCore/XMPCoreFwdDeclarations.h"
+#include "XMPCommon/XMPCommonFwdDeclarations_I.h"
+
+namespace AdobeXMPCore_Int {
+ using namespace AdobeXMPCore;
+ using namespace AdobeXMPCommon;
+ using namespace AdobeXMPCommon_Int;
+
+ // INameSpacePrefixMap
+ typedef shared_ptr< INameSpacePrefixMap_I > spINameSpacePrefixMap_I;
+ typedef shared_ptr< const INameSpacePrefixMap_I > spcINameSpacePrefixMap_I;
+
+ // IPath
+ typedef shared_ptr< IPath_I > spIPath_I;
+ typedef shared_ptr< const IPath_I > spcIPath_I;
+
+ // IPathSegment
+ typedef shared_ptr< IPathSegment_I > spIPathSegment_I;
+ typedef shared_ptr< const IPathSegment_I > spcIPathSegment_I;
+
+ // INode
+ typedef shared_ptr< INode_I > spINode_I;
+ typedef shared_ptr< const INode_I > spcINode_I;
+
+ // ISimpleNode
+ typedef shared_ptr< ISimpleNode_I > spISimpleNode_I;
+ typedef shared_ptr< const ISimpleNode_I > spcISimpleNode_I;
+
+ // ICompositeNode
+ typedef shared_ptr< ICompositeNode_I > spICompositeNode_I;
+ typedef shared_ptr< const ICompositeNode_I > spcICompositeNode_I;
+
+ // IStructureNode
+ typedef shared_ptr< IStructureNode_I > spIStructureNode_I;
+ typedef shared_ptr< const IStructureNode_I > spcIStructureNode_I;
+
+ // IArrayNode
+ typedef shared_ptr< IArrayNode_I > spIArrayNode_I;
+ typedef shared_ptr< const IArrayNode_I > spcIArrayNode_I;
+
+ // INodeIterator
+ typedef shared_ptr< INodeIterator_I > spINodeIterator_I;
+ typedef shared_ptr< const INodeIterator_I > spcINodeIterator_I;
+
+ // IMetadata
+ typedef shared_ptr< IMetadata_I > spIXMPMetadata_I;
+ typedef shared_ptr< const IMetadata_I > spcIXMPMetadata_I;
+
+ // IDOMParser
+ typedef shared_ptr< IDOMParser_I > spIIDOMParser_I;
+ typedef shared_ptr< const IDOMParser_I > spcIIDOMParser_I;
+
+ // IDOMSerializer
+ typedef shared_ptr< IDOMSerializer_I > spIDOMSerializer_I;
+ typedef shared_ptr< const IDOMSerializer_I > spcIDOMSerializer_I;
+
+ // IDOMImplementationRegistry
+ typedef shared_ptr< IDOMImplementationRegistry_I > spIDOMImplementationRegistry_I;
+ typedef shared_ptr< const IDOMImplementationRegistry_I > spcIDOMImplementationRegistry_I;
+
+ // ICoreObjectFactory
+ typedef shared_ptr< ICoreObjectFactory_I > spICoreObjectFactory_I;
+ typedef shared_ptr< const ICoreObjectFactory_I > spcICoreObjectFactory_I;
+
+ // ICoreConfigurationManager
+ typedef shared_ptr< ICoreConfigurationManager_I > spICoreConfigurationManager_I;
+ typedef shared_ptr< const ICoreConfigurationManager_I > spcICoreConfigurationManager_I;
+}
+#endif // XMPCoreFwdDeclarations_I_h__
diff --git a/XMPCore/build/CMakeLists.txt b/XMPCore/build/CMakeLists.txt
index 9196c4b..7b7ebdd 100644
--- a/XMPCore/build/CMakeLists.txt
+++ b/XMPCore/build/CMakeLists.txt
@@ -9,7 +9,7 @@
# ==============================================================================
# define minimum cmake version
-cmake_minimum_required(VERSION 2.8.6)
+cmake_minimum_required(VERSION 3.5.2)
# Enable folder grouping of projects in IDEs
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
@@ -39,6 +39,13 @@ set(XMP_THIS_PROJECT_RELATIVEPATH "../..")
include(${CMAKE_CURRENT_SOURCE_DIR}/${XMP_THIS_PROJECT_RELATIVEPATH}/build/XMP_Config.cmake)
+add_definitions(-DBUILDING_XMPCORE_LIB=1 -DXMP_COMPONENT_INT_NAMESPACE=AdobeXMPCore_Int)
+if (XMP_BUILD_STATIC)
+ add_definitions(-DBUILDING_XMPCORE_AS_STATIC=1)
+else()
+ add_definitions(-DBUILDING_XMPCORE_AS_DYNAMIC=1)
+endif()
+
set(TP_ZUID_PATH "${XMPROOT_DIR}/third-party/zuid/interfaces")
set(TP_EXPAT_PATH "${PROJECT_ROOT}/../../third-party/expat/lib/")
diff --git a/XMPCore/build/CMakeListsCommon.txt b/XMPCore/build/CMakeListsCommon.txt
index b757273..20bc92a 100644
--- a/XMPCore/build/CMakeListsCommon.txt
+++ b/XMPCore/build/CMakeListsCommon.txt
@@ -24,10 +24,19 @@ list (APPEND INTERNAL_HEADER_FILES
)
source_group("Header Files\\Private\\XMPCore" FILES ${INTERNAL_HEADER_FILES})
-file (GLOB PRIVATE_XMPCOMMON_HEADERS ${XMPROOT_DIR}/XMPCommon/ImplHeaders/*.h)
-source_group("Header Files\\Private\\XMPCommon" FILES ${PRIVATE_XMPCOMMON_HEADERS})
+if (INCLUDE_CPP_DOM_SOURCE)
+ file (GLOB_RECURSE PRIVATE_XMPCOMMON_HEADERS ${XMPROOT_DIR}/XMPCommon/*.h)
+ source_group("Header Files\\Private\\XMPCommon" FILES ${PRIVATE_XMPCOMMON_HEADERS})
-file (GLOB PRIVATE_XMPCORE_HEADERS ${XMPROOT_DIR}/XMPCore/headers/*.h ${XMPROOT_DIR}/XMPCore/Interfaces/*.h)
+ file (GLOB_RECURSE PRIVATE_XMPCOMMON_SOURCES ${XMPROOT_DIR}/XMPCommon/source/*.cpp)
+ source_group("Source Files\\Private\\XMPCommon" FILES ${PRIVATE_XMPCOMMON_SOURCES})
+endif (INCLUDE_CPP_DOM_SOURCE)
+
+file (GLOB PRIVATE_XMPCORE_HEADERS
+ ${XMPROOT_DIR}/XMPCore/*.h
+ ${XMPROOT_DIR}/XMPCore/ImplHeaders/*.h
+ ${XMPROOT_DIR}/XMPCore/headers/*.h
+ ${XMPROOT_DIR}/XMPCore/Interfaces/*.h )
source_group("Header Files\\Private\\XMPCore" FILES ${PRIVATE_XMPCORE_HEADERS})
file (GLOB_RECURSE PUBLIC_CLIENTGLUE_HEADER_FILES ${XMPROOT_DIR}/public/include/client-glue/*.*)
@@ -44,15 +53,31 @@ list (REMOVE_ITEM PUBLIC_HEADER_FILES
)
source_group("Header Files\\Public" FILES ${PUBLIC_HEADER_FILES})
-file (GLOB_RECURSE PUBLIC_XMPCOMMON_HEADERS ${XMPROOT_DIR}/public/include/XMPCommon/*.h ${XMPROOT_DIR}/XMPCommon/*.h)
+file (GLOB_RECURSE PUBLIC_XMPCOMMON_HEADERS ${XMPROOT_DIR}/public/include/XMPCommon/*.h )
source_group("Header Files\\Public\\XMPCommon" FILES ${PUBLIC_XMPCOMMON_HEADERS})
+file (GLOB_RECURSE PUBLIC_XMPCOMMON_SOURCES ${XMPROOT_DIR}/public/include/XMPCommon/source/*.cpp )
+source_group("Source Files\\Public\\XMPCommon" FILES ${PUBLIC_XMPCOMMON_SOURCES})
+
file (GLOB_RECURSE PUBLIC_XMPCORE_HEADERS ${XMPROOT_DIR}/public/include/XMPCore/*.h)
source_group("Header Files\\Public\\XMPCore" FILES ${PUBLIC_XMPCORE_HEADERS})
+file (GLOB_RECURSE PUBLIC_XMPCORE_SOURCES ${XMPROOT_DIR}/public/include/XMPCore/source/*.cpp )
+source_group("Source Files\\Public\\XMPCore" FILES ${PUBLIC_XMPCORE_SOURCES})
+
file (GLOB ABIWRAPPER_SOURCE_FILES ${SOURCE_ROOT}/WXMP*.cpp)
source_group("Source Files\\ABI Wrappers" FILES ${ABIWRAPPER_SOURCE_FILES})
+if (INCLUDE_CPP_DOM_SOURCE)
+ file (GLOB PRIVATE_XMPCORE_ISOURCE_FILES ${SOURCE_ROOT}/*_I.cpp)
+ file (GLOB PRIVATE_XMPCORE_IMPLSOURCE_FILES ${SOURCE_ROOT}/*Impl.cpp)
+ list (REMOVE_ITEM PRIVATE_XMPCORE_IMPLSOURCE_FILES ${SOURCE_ROOT}/XMPCore_Impl.cpp)
+ source_group("Source Files\\Private\\XMPCore" FILES ${PRIVATE_XMPCORE_ISOURCE_FILES} ${PRIVATE_XMPCORE_IMPLSOURCE_FILES})
+else (INCLUDE_CPP_DOM_SOURCE)
+ file (GLOB PRIVATE_XMPCORE_IMPLSOURCE_FILES ${SOURCE_ROOT}/CoreObjectFactoryImpl.cpp)
+ source_group("Source Files\\Private\\XMPCore" FILES ${PRIVATE_XMPCORE_IMPLSOURCE_FILES})
+endif (INCLUDE_CPP_DOM_SOURCE)
+
#XMP Core classes
file (GLOB CORECLASS_SOURCE_FILES ${SOURCE_ROOT}/XMP*.cpp)
list (REMOVE_ITEM CORECLASS_SOURCE_FILES ${SOURCE_ROOT}/XMPCore_Impl.cpp)
@@ -64,12 +89,13 @@ list (APPEND THIRDPARTY_SOURCE_FILES
${TP_EXPAT_PATH}/xmlrole.c
${TP_EXPAT_PATH}/xmltok.c
)
-list (APPEND THIRDPARTY_SOURCE_FILES ${RESOURCE_ROOT}/${XMP_PLATFORM_SHORT}/expat_config.h)
+if(WIN32)
+ list (APPEND THIRDPARTY_SOURCE_FILES ${RESOURCE_ROOT}/win/expat_config.h)
+else()
+ list (APPEND THIRDPARTY_SOURCE_FILES ${RESOURCE_ROOT}/${XMP_PLATFORM_SHORT}/expat_config.h)
+endif()
source_group("Source Files\\Third Party" FILES ${THIRDPARTY_SOURCE_FILES})
-file (GLOB XMPCOMMON_SOURCES ${XMPROOT_DIR}/XMPCommon/source/*.cpp)
-source_group("Source Files\\Private\\XMPCommon" FILES ${XMPCOMMON_SOURCES})
-
list (APPEND UTILITY_SOURCE_FILES
${SOURCE_ROOT}/ExpatAdapter.cpp
${SOURCE_ROOT}/ParseRDF.cpp
@@ -81,13 +107,17 @@ list (APPEND UTILITY_SOURCE_FILES
source_group("Source Files\\Utilities" FILES ${UTILITY_SOURCE_FILES})
#resource files
-file (GLOB RESOURCE_FILES ${RESOURCE_ROOT}/${XMP_PLATFORM_SHORT}/*.*)
+if (WIN32)
+ file (GLOB RESOURCE_FILES ${RESOURCE_ROOT}/win/*.*)
+else ()
+ file (GLOB RESOURCE_FILES ${RESOURCE_ROOT}/${XMP_PLATFORM_SHORT}/*.*)
+endif()
if(WIN32 AND ${XMP_BUILD_STATIC})
list(REMOVE_ITEM RESOURCE_FILES ${RESOURCE_ROOT}/${XMP_PLATFORM_SHORT}/${TARGET_NAME}.rc)
endif()
source_group("Resource Files" FILES ${RESOURCE_FILES})
-if (WIN32 OR (UNIX AND APPLE))
+if (WIN32 OR UNIX)
list(APPEND SOURCE_FILES
${PUBLIC_CLIENTGLUE_HEADER_FILES}
${PUBLIC_HEADER_FILES}
@@ -97,48 +127,35 @@ if (WIN32 OR (UNIX AND APPLE))
${CORECLASS_SOURCE_FILES}
${THIRDPARTY_SOURCE_FILES}
${UTILITY_SOURCE_FILES}
+ ${PRIVATE_XMPCORE_ISOURCE_FILES}
+ ${PRIVATE_XMPCORE_IMPLSOURCE_FILES}
${PRIVATE_XMPCOMMON_HEADERS}
+ ${PRIVATE_XMPCOMMON_SOURCES}
${PRIVATE_XMPCORE_HEADERS}
${PUBLIC_XMPCOMMON_HEADERS}
+ ${PUBLIC_XMPCOMMON_SOURCES}
${PUBLIC_XMPCORE_HEADERS}
- ${XMPCOMMON_SOURCES}
+ ${PUBLIC_XMPCORE_SOURCES}
${RESOURCE_FILES}
)
-else()
- list (REMOVE_ITEM CORECLASS_SOURCE_FILES
- ${SOURCE_ROOT}/XMPArrayNode_v1_Impl.cpp
- ${SOURCE_ROOT}/XMPArrayNodeIterator_v1_Impl.cpp
- ${SOURCE_ROOT}/XMPCoreObjectFactory_Impl.cpp
- ${SOURCE_ROOT}/XMPMetadata_v1_Impl.cpp
- ${SOURCE_ROOT}/XMPNode_v1_Impl.cpp
- ${SOURCE_ROOT}/XMPPathSegment_v1_Impl.cpp
- ${SOURCE_ROOT}/XMPPath_v1_Impl.cpp
- ${SOURCE_ROOT}/XMPQName_v1_Impl.cpp
- ${SOURCE_ROOT}/XMPQualifiers_v1_Impl.cpp
- ${SOURCE_ROOT}/XMPSimpleNode_v1_Impl.cpp
- ${SOURCE_ROOT}/XMPStructNode_v1_Impl.cpp
- ${SOURCE_ROOT}/XMPStructNodeIterator_v1_Impl.cpp
- )
-
- list(APPEND SOURCE_FILES
- ${PUBLIC_CLIENTGLUE_HEADER_FILES}
- ${PUBLIC_HEADER_FILES}
- ${INTERNAL_HEADER_FILES}
- ${ABIWRAPPER_SOURCE_FILES}
- ${ABIWRAPPER_SOURCE_FILES}
- ${CORECLASS_SOURCE_FILES}
- ${THIRDPARTY_SOURCE_FILES}
- ${UTILITY_SOURCE_FILES}
- ${RESOURCE_FILES}
- )
-
endif()
+
# include directories
include_directories(${XMPROOT_DIR})
include_directories(${XMPROOT_DIR}/public/include)
include_directories(${XMPROOT_DIR}/third-party/expat/public/lib)
include_directories(${RESOURCE_ROOT}/${XMP_PLATFORM_SHORT})
+if(UNIX AND NOT APPLE AND NOT ${XMP_BUILD_STATIC})
+include_directories(${XMPROOT_DIR}/XMPCore/third-party/uuid/include)
+endif()
+if (WIN32)
+ include_directories(${RESOURCE_ROOT}/win)
+else ()
+ include_directories(${RESOURCE_ROOT}/${XMP_PLATFORM_SHORT})
+endif ()
+#additional link directory
+link_directories(${OUTPUT_DIR})
# ==============================================================================
@@ -151,26 +168,47 @@ if (UNIX AND APPLE AND NOT ${XMP_BUILD_STATIC})
else()
set (INFO_PLIST_FLAGS "-DNDEBUG=1")
endif()
-
- add_custom_target(${TARGET_NAME}InfoPlist
- COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
- COMMAND if [ $(CONFIGURATION) != Debug ]; then
- ${GCCTOOL} -E -P -x c ${RESOURCE_ROOT}/${XMP_PLATFORM_SHORT}/${TARGET_NAME}.plist
- -F${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/
- -DPRODUCT_NAME=${TARGET_NAME} -DMAC_ENV=1 -DNDEBUG=1
- -include ${RESOURCE_ROOT}/${XMP_PLATFORM_SHORT}/${TARGET_NAME}PList.h
- -o ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/Info.plist
- \; else
- ${GCCTOOL} -E -P -x c ${RESOURCE_ROOT}/${XMP_PLATFORM_SHORT}/${TARGET_NAME}.plist
- -F${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/
- -DPRODUCT_NAME=${TARGET_NAME} -DMAC_ENV=1 -DDEBUG=1
- -include ${RESOURCE_ROOT}/${XMP_PLATFORM_SHORT}/${TARGET_NAME}PList.h
- -o ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/Info.plist
- \; fi
- COMMAND rm -f ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/../CMakeFiles/${TARGET_NAME}.dir/Info.plist
- COMMAND cp ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/Info.plist ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/../CMakeFiles/${TARGET_NAME}.dir/Info.plist
- COMMENT "Preprocessing Info-plist"
- )
+ if(NOT APPLE_IOS)
+ add_custom_target(${TARGET_NAME}InfoPlist
+ COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
+ COMMAND if [ $(CONFIGURATION) != Debug ]; then
+ ${GCCTOOL} -E -P -x c ${RESOURCE_ROOT}/${XMP_PLATFORM_SHORT}/${TARGET_NAME}.plist
+ -F${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/
+ -DPRODUCT_NAME=${TARGET_NAME} -DMAC_ENV=1 -DNDEBUG=1
+ -include ${RESOURCE_ROOT}/${XMP_PLATFORM_SHORT}/${TARGET_NAME}PList.h
+ -o ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/Info.plist
+ \; else
+ ${GCCTOOL} -E -P -x c ${RESOURCE_ROOT}/${XMP_PLATFORM_SHORT}/${TARGET_NAME}.plist
+ -F${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/
+ -DPRODUCT_NAME=${TARGET_NAME} -DMAC_ENV=1 -DDEBUG=1
+ -include ${RESOURCE_ROOT}/${XMP_PLATFORM_SHORT}/${TARGET_NAME}PList.h
+ -o ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/Info.plist
+ \; fi
+ COMMAND rm -f ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/../CMakeFiles/${TARGET_NAME}.dir/Info.plist
+ COMMAND cp ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/Info.plist ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/../CMakeFiles/${TARGET_NAME}.dir/Info.plist
+ COMMENT "Preprocessing Info-plist"
+ )
+ else()
+ add_custom_target(${TARGET_NAME}InfoPlist
+ COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
+ COMMAND if [ $(CONFIGURATION) != Debug ]; then
+ ${GCCTOOL} -E -P -x c ${RESOURCE_ROOT}/ios/${TARGET_NAME}.plist
+ -F${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/
+ -DPRODUCT_NAME=${TARGET_NAME} -DIOS_ENV=1 -DNDEBUG=1
+ -include ${RESOURCE_ROOT}/ios/${TARGET_NAME}PList.h
+ -o ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/Info.plist
+ \; else
+ ${GCCTOOL} -E -P -x c ${RESOURCE_ROOT}/ios/${TARGET_NAME}.plist
+ -F${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/
+ -DPRODUCT_NAME=${TARGET_NAME} -DIOS_ENV=1 -DDEBUG=1
+ -include ${RESOURCE_ROOT}/ios/${TARGET_NAME}PList.h
+ -o ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/Info.plist
+ \; fi
+ COMMAND rm -f ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/../CMakeFiles/${TARGET_NAME}.dir/Info.plist
+ COMMAND cp ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/Info.plist ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/../CMakeFiles/${TARGET_NAME}.dir/Info.plist
+ COMMENT "Preprocessing Info-plist"
+ )
+ endif()
set(DEPENDENCY_LIST "ALL:${TARGET_NAME}InfoPlist")
else ()
set(DEPENDENCY_LIST "")
@@ -183,7 +221,7 @@ set_target_properties(${TARGET_NAME} PROPERTIES OUTPUT_NAME ${XMPCORE_LIB})
# ==============================================================================
# Link dependencies
-set(FRAMEWORK_LIST "Mac:CoreFoundation" "Mac:CoreServices")
+set(FRAMEWORK_LIST "ALL:CoreFoundation" "Mac:CoreServices")
AddMacFramework(${TARGET_NAME} FRAMEWORK_LIST)
@@ -193,6 +231,10 @@ else(WIN32)
if(UNIX AND NOT APPLE)
SetWinLinkFlags(${TARGET_NAME} "-Xlinker --version-script -Xlinker \"${RESOURCE_ROOT}/${XMP_PLATFORM_SHORT}/${TARGET_NAME}.exp\"" "")
else()
+ if(APPLE_IOS AND NOT XMP_BUILD_STATIC)
+ set_target_properties(${TARGET_NAME} PROPERTIES XCODE_ATTRIBUTE_DYLIB_INSTALL_NAME_BASE "@rpath")
+ set_target_properties(${TARGET_NAME} PROPERTIES XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "com.adobe.Adobe${TARGET_NAME}")
+ endif()
set_target_properties(${TARGET_NAME} PROPERTIES BUILD_WITH_INSTALL_RPATH ON INSTALL_NAME_DIR "@executable_path/../Frameworks")
SetWinLinkFlags(${TARGET_NAME} "-unexported_symbols_list \"${RESOURCE_ROOT}/${XMP_PLATFORM_SHORT}/XMPCore.unexp\"" "${XMPCORE_LIB}")
set_target_properties(${TARGET_NAME} PROPERTIES XCODE_ATTRIBUTE_GCC_SYMBOLS_PRIVATE_EXTERN "YES")
diff --git a/XMPCore/resource/linux/XMPCore.exp b/XMPCore/resource/linux/XMPCore.exp
index d1c7b1b..1e47310 100644
--- a/XMPCore/resource/linux/XMPCore.exp
+++ b/XMPCore/resource/linux/XMPCore.exp
@@ -62,6 +62,7 @@ global:
WXMPMeta_SetDefaultErrorCallback_1;
WXMPMeta_SetErrorCallback_1;
WXMPMeta_ResetErrorCallbackLimit_1;
+ WXMPMeta_GetXMPDOMFactoryInstance_1;
WXMPIterator_PropCTor_1;
WXMPIterator_TableCTor_1;
diff --git a/XMPCore/resource/mac/XMPCore.exp b/XMPCore/resource/mac/XMPCore.exp
index fad61af..80079e0 100644
--- a/XMPCore/resource/mac/XMPCore.exp
+++ b/XMPCore/resource/mac/XMPCore.exp
@@ -59,6 +59,7 @@ _WXMPMeta_SerializeToBuffer_1
_WXMPMeta_SetDefaultErrorCallback_1
_WXMPMeta_SetErrorCallback_1
_WXMPMeta_ResetErrorCallbackLimit_1
+_WXMPMeta_GetXMPDOMFactoryInstance_1
_WXMPIterator_PropCTor_1
_WXMPIterator_TableCTor_1
diff --git a/XMPCore/resource/win/XMPCore.def b/XMPCore/resource/win/XMPCore.def
index 505edef..6e1ad63 100644
--- a/XMPCore/resource/win/XMPCore.def
+++ b/XMPCore/resource/win/XMPCore.def
@@ -1,5 +1,5 @@
; Declares the entry points for the DLL.
-; Highest index: 126 - WXMPMeta_ResetErrorCallbackLimit_1
+; Highest index: 127 - WXMPMeta_GetXMPDOMFactoryInstance_1
LIBRARY XMPCore
@@ -73,6 +73,7 @@ EXPORTS
WXMPMeta_SetDefaultErrorCallback_1 @124
WXMPMeta_SetErrorCallback_1 @125
WXMPMeta_ResetErrorCallbackLimit_1 @126
+ WXMPMeta_GetXMPDOMFactoryInstance_1 @127
WXMPIterator_PropCTor_1 @62
WXMPIterator_TableCTor_1 @63
diff --git a/XMPCore/source/ArrayNodeImpl.cpp b/XMPCore/source/ArrayNodeImpl.cpp
new file mode 100644
index 0000000..792d0a7
--- /dev/null
+++ b/XMPCore/source/ArrayNodeImpl.cpp
@@ -0,0 +1,227 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#define IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED 1
+ #include "XMPCore/ImplHeaders/ArrayNodeImpl.h"
+ #include "XMPCore/ImplHeaders/TNodeIteratorImpl.h"
+#undef IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED
+
+#include "XMPCommon/Interfaces/IError_I.h"
+#include "XMPCore/XMPCoreErrorCodes.h"
+#include "XMPCommon/Interfaces/IUTF8String_I.h"
+#include "XMPCommon/Utilities/AutoSharedLock.h"
+#include "XMPCore/Interfaces/INodeIterator_I.h"
+#include "XMPCommon/Utilities/TSmartPointers_I.h"
+
+namespace AdobeXMPCore_Int {
+
+ // All virtual functions
+
+ ArrayNodeImpl::ArrayNodeImpl( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, eArrayForm arrayForm )
+ : NodeImpl( nameSpace, nameSpaceLength, name, nameLength )
+ , mArrayForm( arrayForm ) {}
+
+ IArrayNode_v1::eArrayForm APICALL ArrayNodeImpl::GetArrayForm() const {
+ return mArrayForm;
+ }
+
+ INode_v1::eNodeType APICALL ArrayNodeImpl::GetChildNodeType() const {
+ AutoSharedLock lock( mSharedMutex );
+ if ( mChildren.size() != 0 )
+ return mChildren[ 0 ]->GetNodeType();
+ return kNTAll;
+ }
+
+ spINode APICALL ArrayNodeImpl::GetNodeAtIndex( sizet index ) {
+ sizet actualIndex = index - 1;
+
+ AutoSharedLock lock( mSharedMutex );
+
+ if ( actualIndex < mChildren.size() ) {
+ return MakeUncheckedSharedPointer( mChildren.at( actualIndex ).get(), __FILE__, __LINE__ );
+ }
+ return spINode_I();
+ }
+
+ void APICALL ArrayNodeImpl::InsertNodeAtIndex( const spINode & node, sizet index ) {
+ sizet actualIndex = index - 1;
+ {
+ AutoSharedLock lock( mSharedMutex );
+ if ( actualIndex > mChildren.size() )
+ NOTIFY_ERROR( IError_base::kEDGeneral, kGECIndexOutOfBounds,
+ "Trying to insert a node at an invalid index", IError_v1::kESOperationFatal,
+ true, index, true, static_cast< sizet >( mChildren.size() ) );
+ }
+ bool goAhead = CheckSuitabilityToBeUsedAsChildNode( node );
+
+ if ( goAhead ) {
+ AutoSharedLock lock( mSharedMutex, true );
+ auto it = mChildren.begin();
+ std::advance( it, actualIndex );
+ it = mChildren.insert( it, MakeUncheckedSharedPointer( node.get(), __FILE__, __LINE__ ) );
+ pINode_I node_I = node->GetINode_I();
+ node_I->SetIndex( index );
+ node_I->ChangeParent( this );
+ std::advance( it, 1 );
+ for ( auto endIt = mChildren.end(); it != endIt; ++it ) {
+ ( *it )->GetINode_I()->SetIndex( ++index );
+ }
+ }
+ }
+
+ spINode APICALL ArrayNodeImpl::RemoveNodeAtIndex( sizet index ) {
+ spINode node = GetNodeAtIndex( index );
+ if ( node ) {
+ sizet actualIndex = index - 1;
+ AutoSharedLock lock( mSharedMutex, true );
+ auto it = mChildren.begin();
+ std::advance( it, actualIndex );
+ it = mChildren.erase( it );
+ node->GetINode_I()->ChangeParent( NULL );
+ for ( auto endIt = mChildren.end(); it != endIt; ++it ) {
+ ( *it )->GetINode_I()->SetIndex( index++ );
+ }
+ }
+ return node;
+ }
+
+ spINode APICALL ArrayNodeImpl::ReplaceNodeAtIndex( const spINode & node, sizet index ) {
+ if ( CheckSuitabilityToBeUsedAsChildNode( node ) && GetNodeAtIndex( index ) ) {
+ auto retValue = RemoveNodeAtIndex( index );
+ InsertNodeAtIndex( node, index );
+ return retValue;
+ } else {
+ NOTIFY_ERROR( IError_v1::kEDGeneral, kGECIndexOutOfBounds,
+ "Trying to replace a node at an invalid index", IError_v1::kESOperationFatal,
+ true, index, true, static_cast< sizet >( mChildren.size() ) );
+ }
+ return spINode();
+ }
+
+ void APICALL ArrayNodeImpl::AppendNode( const spINode & node ) {
+ InsertNodeAtIndex( node, ChildCount() + 1 );
+ }
+
+ spINodeIterator APICALL ArrayNodeImpl::Iterator() {
+ AutoSharedLock lock( mSharedMutex );
+ auto beginIt = mChildren.begin(), endIt = mChildren.end();
+ if ( beginIt == endIt )
+ return spINodeIterator();
+ else
+ return MakeUncheckedSharedPointer( new TNodeIteratorImpl< NodeVector::iterator >( beginIt, endIt ), __FILE__, __LINE__, true );
+ }
+
+ sizet APICALL ArrayNodeImpl::ChildCount() const __NOTHROW__ {
+ AutoSharedLock lock( mSharedMutex );
+ return mChildren.size();
+ }
+
+ spIArrayNode APICALL ArrayNodeImpl::ConvertToArrayNode() {
+ return MakeUncheckedSharedPointer( this, __FILE__, __LINE__ );
+ }
+
+ INode_v1::eNodeType APICALL ArrayNodeImpl::GetNodeType() const {
+ return kNTArray;
+ }
+
+ bool APICALL ArrayNodeImpl::HasContent() const {
+ AutoSharedLock lock( mSharedMutex );
+ return mChildren.size() > 0;
+ }
+
+ void APICALL ArrayNodeImpl::ClearContents() {
+ AutoSharedLock lock( mSharedMutex, true );
+ for ( auto it = mChildren.begin(), itEnd = mChildren.end(); it != itEnd; ++it ) {
+ ( *it )->GetINode_I()->ChangeParent( NULL );
+ }
+ mChildren.clear();
+ }
+
+ spINode APICALL ArrayNodeImpl::CloneContents( bool ignoreEmptyNodes, bool ignoreNodesWithOnlyQualifiers, sizet qualifiersCount ) const {
+ spIArrayNode newNode;
+ if ( ignoreEmptyNodes && mChildren.size() == 0 ) {
+ if ( ignoreNodesWithOnlyQualifiers && qualifiersCount == 0 )
+ return newNode;
+ }
+
+ newNode = IArrayNode_I::CreateArrayNode( mNameSpace, mName, mArrayForm );
+
+ for ( auto it = mChildren.begin(), endIt = mChildren.end(); it != endIt; ++it ) {
+ spINode childNode = ( *it )->Clone( ignoreEmptyNodes, ignoreNodesWithOnlyQualifiers );
+ if ( childNode ) {
+ newNode->AppendNode( childNode );
+ }
+ }
+
+ if ( ignoreEmptyNodes && newNode->ChildCount() == 0 ) {
+ if ( ignoreNodesWithOnlyQualifiers )
+ return spINode();
+ else if ( !ignoreNodesWithOnlyQualifiers && qualifiersCount == 0 )
+ return spINode();
+ }
+ return newNode;
+ }
+
+ void ArrayNodeImpl::resetChangesForChildren() const {
+ AutoSharedLock lock( mSharedMutex );
+ for ( auto it = mChildren.begin(), itEnd = mChildren.end(); it != itEnd; ++it ) {
+ ( *it )->AcknowledgeChanges();
+ }
+ }
+
+ bool ArrayNodeImpl::CheckSuitabilityToBeUsedAsChildNode( const spcINode & node ) const {
+ bool result = CompositeNodeImpl::CheckSuitabilityToBeUsedAsChildNode( node );
+ if ( !result ) return false;
+
+ eNodeType currentChildType = GetChildNodeType();
+ if ( currentChildType == kNTAll || currentChildType == node->GetNodeType() )
+ return true;
+ else {
+ NOTIFY_ERROR( IError_v1::kEDDataModel, kDMECArrayItemTypeDifferent,
+ "node type is different than what currently array can hold", IError_v1::kESOperationFatal,
+ true, static_cast< uint64 >( currentChildType ), true, static_cast< uint64 >( node->GetNodeType() ) );
+ }
+ return false;
+ }
+
+ spIArrayNode IArrayNode_I::CreateArrayNode( const spcIUTF8String & nameSpace, const spcIUTF8String & name, eArrayForm arrayForm ) {
+ return MakeUncheckedSharedPointer( new ArrayNodeImpl(
+ nameSpace ? nameSpace->c_str() : NULL, nameSpace ? nameSpace->size() : 0,
+ name ? name->c_str() : NULL, name ? name->size() : 0, arrayForm ), __FILE__, __LINE__, true );
+ }
+
+ template<>
+ spINode TNodeIteratorImpl< ArrayNodeImpl::NodeVector::iterator >::GetNodeFromIterator( const ArrayNodeImpl::NodeVector::iterator & it ) const {
+ return MakeUncheckedSharedPointer( it->get(), __FILE__, __LINE__, false );
+ }
+}
+
+#if BUILDING_XMPCORE_LIB || SOURCE_COMPILING_XMPCORE_LIB
+namespace AdobeXMPCore {
+ using namespace AdobeXMPCore_Int;
+ spIArrayNode IArrayNode_v1::MakeShared( pIArrayNode_base ptr ) {
+ if ( !ptr ) return spIArrayNode();
+ pIArrayNode p = IArrayNode::GetInterfaceVersion() > 1 ? ptr->GetInterfacePointer< IArrayNode >() : ptr;
+ return MakeUncheckedSharedPointer( p, __FILE__, __LINE__, false );
+ }
+
+ spIArrayNode IArrayNode_v1::CreateUnorderedArrayNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) {
+ return MakeUncheckedSharedPointer( new ArrayNodeImpl( nameSpace, nameSpaceLength, name, nameLength, IArrayNode::kAFUnordered ), __FILE__, __LINE__, true );
+ }
+
+ spIArrayNode IArrayNode_v1::CreateOrderedArrayNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) {
+ return MakeUncheckedSharedPointer( new ArrayNodeImpl( nameSpace, nameSpaceLength, name, nameLength, IArrayNode::kAFOrdered ), __FILE__, __LINE__, true );
+ }
+
+ spIArrayNode IArrayNode_v1::CreateAlternativeArrayNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) {
+ return MakeUncheckedSharedPointer( new ArrayNodeImpl( nameSpace, nameSpaceLength, name, nameLength, IArrayNode::kAFAlternative ), __FILE__, __LINE__, true );
+ }
+
+}
+#endif // BUILDING_XMPCORE_LIB || SOURCE_COMPILING_XMPCORE_LIB
diff --git a/XMPCore/source/ClientDOMParserWrapperImpl.cpp b/XMPCore/source/ClientDOMParserWrapperImpl.cpp
new file mode 100644
index 0000000..b3bad60
--- /dev/null
+++ b/XMPCore/source/ClientDOMParserWrapperImpl.cpp
@@ -0,0 +1,90 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+namespace AdobeXMPCore_Int {
+ class ClientDOMParserWrapperImpl;
+}
+
+#define FRIEND_CLASS_DECLARATION() friend class AdobeXMPCore_Int::ClientDOMParserWrapperImpl;
+
+#define IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED 1
+ #include "XMPCore/ImplHeaders/ClientDOMParserWrapperImpl.h"
+#undef IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED
+
+#include "XMPCommon/Interfaces/IError_I.h"
+#include "XMPCore/XMPCoreErrorCodes.h"
+#include "XMPCore/Interfaces/IClientDOMParser.h"
+#include "XMPCommon/Utilities/TSmartPointers_I.h"
+#include "XMPCore/Interfaces/INode.h"
+
+namespace AdobeXMPCore_Int {
+
+
+ ClientDOMParserWrapperImpl::ClientDOMParserWrapperImpl( pIClientDOMParser_base parser )
+ : mpClientParser( parser )
+ {
+ if ( parser ) {
+ pcIError_base error( NULL );
+ uint32 unknownExceptionCaught( 0 );
+ TreatKeyAsCaseInsensitive( parser->areKeysCaseSensitive( error, unknownExceptionCaught ) == 0 );
+ if ( !error && unknownExceptionCaught == 0 )
+ parser->initialize( this, error, unknownExceptionCaught );
+ if ( error ) {
+ auto spError = IError::MakeShared( error );
+ error->Release();
+ throw spError;
+ }
+ if ( unknownExceptionCaught )
+ NOTIFY_ERROR( IError::kEDGeneral, kGECUnknownExceptionCaught, "Unknown Exception caught in the client code", IError::kESOperationFatal, false, false );
+ }
+ }
+
+ spINode APICALL ClientDOMParserWrapperImpl::ParseAsNode( const char * buffer, sizet bufferLength ) {
+ pcIError_base error( NULL );
+ uint32 unknownExceptionCaught( 0 );
+ auto pnode = mpClientParser->parse( buffer, bufferLength, this, &ReportErrorAndContinueABISafe, error, unknownExceptionCaught );
+ if ( error ) {
+ auto spError = IError::MakeShared( error );
+ error->Release();
+ throw spError;
+ }
+ if ( unknownExceptionCaught )
+ NOTIFY_ERROR( IError::kEDGeneral, kGECUnknownExceptionCaught, "Unknown Exception caught in the client code", IError::kESOperationFatal, false, false );
+ return MakeUncheckedSharedPointer( pnode, __FILE__, __LINE__, false );
+ }
+
+ ClientDOMParserWrapperImpl::~ClientDOMParserWrapperImpl() __NOTHROW__ {
+ if ( mpClientParser ) {
+ mpClientParser->Release();
+ mpClientParser = NULL;
+ }
+ }
+
+ eConfigurableErrorCode APICALL ClientDOMParserWrapperImpl::ValidateValue( const uint64 & key, eDataType type, const CombinedDataValue & value ) const {
+ pcIError_base error( NULL );
+ uint32 unknownExceptionCaught( 0 );
+ auto retValue = mpClientParser->validate( key, static_cast< uint32 >( type ), value, error, unknownExceptionCaught );
+ if ( error ) {
+ auto spError = IError::MakeShared( error );
+ error->Release();
+ throw spError;
+ }
+ if ( unknownExceptionCaught )
+ NOTIFY_ERROR( IError::kEDGeneral, kGECUnknownExceptionCaught, "Unknown Exception caught in the client code", IError::kESOperationFatal, false, false );
+ return static_cast< eConfigurableErrorCode >( retValue );
+ }
+
+ DOMParserImpl * APICALL ClientDOMParserWrapperImpl::clone() const {
+ ClientDOMParserWrapperImpl * cloned = new ClientDOMParserWrapperImpl( NULL );
+ if ( cloned )
+ cloned->mpClientParser = mpClientParser;
+ return cloned;
+ }
+
+}
diff --git a/XMPCore/source/ClientDOMSerializerWrapperImpl.cpp b/XMPCore/source/ClientDOMSerializerWrapperImpl.cpp
new file mode 100644
index 0000000..4c6e984
--- /dev/null
+++ b/XMPCore/source/ClientDOMSerializerWrapperImpl.cpp
@@ -0,0 +1,106 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+namespace AdobeXMPCore_Int {
+ class ClientDOMSerializerWrapperImpl;
+}
+
+#define FRIEND_CLASS_DECLARATION() friend class AdobeXMPCore_Int::ClientDOMSerializerWrapperImpl;
+
+
+#define IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED 1
+ #include "XMPCore/ImplHeaders/ClientDOMSerializerWrapperImpl.h"
+#undef IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED
+
+#include "XMPCommon/Interfaces/IError_I.h"
+#include "XMPCore/XMPCoreErrorCodes.h"
+#include "XMPCore/Interfaces/IClientDOMSerializer.h"
+#include "XMPCommon/Interfaces/IUTF8String_I.h"
+#include "XMPCore/Interfaces/INode.h"
+#include "XMPCore/Interfaces/INameSpacePrefixMap_I.h"
+
+namespace AdobeXMPCore_Int {
+
+ ClientDOMSerializerWrapperImpl::ClientDOMSerializerWrapperImpl( pIClientDOMSerializer serializer )
+ : mpSerializer( serializer )
+ {
+ if ( serializer ) {
+ pcIError_base error( NULL );
+ uint32 unknownExceptionCaught( 0 );
+ TreatKeyAsCaseInsensitive( serializer->areKeysCaseSensitive( error, unknownExceptionCaught ) == 0 );
+ if ( !error && unknownExceptionCaught == 0 )
+ serializer->initialize( this, error, unknownExceptionCaught );
+ if ( error ) {
+ auto spError = IError::MakeShared( error );
+ error->Release();
+ throw spError;
+ }
+ if ( unknownExceptionCaught )
+ NOTIFY_ERROR( IError::kEDGeneral, kGECUnknownExceptionCaught, "Unknown Exception caught in the client code", IError::kESOperationFatal, false, false );
+ }
+ }
+
+ ClientDOMSerializerWrapperImpl::~ClientDOMSerializerWrapperImpl() __NOTHROW__ {
+ if ( mpSerializer ) {
+ mpSerializer->Release();
+ mpSerializer = NULL;
+ }
+ }
+
+ DOMSerializerImpl * APICALL ClientDOMSerializerWrapperImpl::clone() const {
+ ClientDOMSerializerWrapperImpl * cloned = new ClientDOMSerializerWrapperImpl( NULL );
+ if ( cloned )
+ cloned->mpSerializer = mpSerializer;
+ return cloned;
+ }
+
+ spIUTF8String APICALL ClientDOMSerializerWrapperImpl::Serialize( const spINode & node, const spcINameSpacePrefixMap & map ) {
+ spIUTF8String str( IUTF8String_I::CreateUTF8String( NULL, 0 ) );
+ pcIError_base error( NULL );
+ uint32 unknownExceptionCaught( 0 );
+ spcINameSpacePrefixMap mergedMap = INameSpacePrefixMap::GetDefaultNameSpacePrefixMap();
+
+ if ( map ) {
+ spINameSpacePrefixMap newMergedMap = mergedMap->Clone();
+ newMergedMap->GetINameSpacePrefixMap_I()->Merge( map );
+ mergedMap = newMergedMap;
+ }
+
+ mpSerializer->serialize( node ? node->GetActualINode() : NULL, mergedMap ? mergedMap->GetActualINameSpacePrefixMap() : NULL, this,
+ &ReportErrorAndContinueABISafe, str->GetActualIUTF8String(), error, unknownExceptionCaught );
+ if ( error ) {
+ auto spError = IError::MakeShared( error );
+ error->Release();
+ throw spError;
+ }
+ if ( unknownExceptionCaught )
+ NOTIFY_ERROR( IError::kEDGeneral, kGECUnknownExceptionCaught, "Unknown Exception caught in the client code", IError::kESOperationFatal, false, false );
+ return str;
+ }
+
+ eConfigurableErrorCode APICALL ClientDOMSerializerWrapperImpl::ValidateValue( const uint64 & key, eDataType type, const CombinedDataValue & value ) const {
+ pcIError_base error( NULL );
+ uint32 unknownExceptionCaught( 0 );
+ auto retValue = mpSerializer->validate( key, static_cast< uint32 >( type ), value, error, unknownExceptionCaught );
+ if ( error ) {
+ auto spError = IError::MakeShared( error );
+ error->Release();
+ throw spError;
+ }
+ if ( unknownExceptionCaught )
+ NOTIFY_ERROR( IError::kEDGeneral, kGECUnknownExceptionCaught, "Unknown Exception caught in the client code", IError::kESOperationFatal, false, false );
+ return static_cast< eConfigurableErrorCode >( retValue );
+ }
+
+ spIUTF8String APICALL ClientDOMSerializerWrapperImpl::SerializeInternal(const spINode & node, XMP_OptionBits options, sizet padding, const char * newline, const char * indent, sizet baseIndent, const spcINameSpacePrefixMap & nameSpacePrefixMap) const {
+
+ return spIUTF8String();
+
+ }
+}
diff --git a/XMPCore/source/CompositeNodeImpl.cpp b/XMPCore/source/CompositeNodeImpl.cpp
new file mode 100644
index 0000000..e2d7797
--- /dev/null
+++ b/XMPCore/source/CompositeNodeImpl.cpp
@@ -0,0 +1,154 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#define IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED 1
+ #include "XMPCore/ImplHeaders/CompositeNodeImpl.h"
+#undef IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED
+
+#include "XMPCommon/Interfaces/IError_I.h"
+#include "XMPCore/XMPCoreErrorCodes.h"
+#include "XMPCore/Interfaces/IPath.h"
+#include "XMPCore/Interfaces/IPathSegment.h"
+#include "XMPCommon/Utilities/TSmartPointers_I.h"
+#include "XMPCommon/Interfaces/IUTF8String_I.h"
+#include "XMPCore/Interfaces/ISimpleNode.h"
+#include "XMPCore/Interfaces/IStructureNode_I.h"
+#include "XMPCore/Interfaces/IArrayNode.h"
+#include "XMPCore/Interfaces/INodeIterator.h"
+
+namespace AdobeXMPCore_Int {
+
+ static spISimpleNode GetArrayItemBasedOnSimpleQual( const spIArrayNode & arrayNode, const spcIUTF8String & nameSpace, const spcIUTF8String & name, const spcIUTF8String & value ) {
+ spINodeIterator it = arrayNode->Iterator();
+ while ( it ) {
+ spINode node = it->GetNode();
+ if ( node->HasQualifiers() ) {
+ spISimpleNode simpleQualifer = node->GetINode_I()->GetSimpleQualifier( nameSpace, name );
+ if ( simpleQualifer ) {
+ if ( value->compare( simpleQualifer->GetValue() ) == 0 )
+ return simpleQualifer;
+ }
+ }
+ it = it->Next();
+ }
+ return spISimpleNode();
+ }
+
+ INode_v1::eNodeType APICALL CompositeNodeImpl::GetNodeTypeAtPath( const spcIPath & path ) const {
+ auto node = const_cast< CompositeNodeImpl * >( this )->GetNodeAtPath( path );
+ if ( node ) return node->GetNodeType();
+ return INode_v1::kNTNone;
+ }
+
+ spINode APICALL CompositeNodeImpl::GetNodeAtPath( const spcIPath & path ) {
+ if ( !path )
+ return spINode();
+
+ spINode current = MakeUncheckedSharedPointer( this, __FILE__, __LINE__ );
+ spINode parent = current, result = current;
+
+ sizet segCount = path->Size();
+ for ( sizet i = 0; i < segCount && current; ++i ) {
+ spcIPathSegment segment = path->GetPathSegment( i + 1 );
+
+ switch ( segment->GetType() ) {
+
+ case IPathSegment::kPSTProperty:
+ {
+ auto node = parent->ConvertToStructureNode();
+ if ( node )
+ current = node->GetIStructureNode_I()->GetNode( segment->GetNameSpace(), segment->GetName() );
+ else
+ current = spINode();
+ }
+ break;
+
+ case IPathSegment::kPSTArrayIndex:
+ {
+ auto node = parent->ConvertToArrayNode();
+ if ( node )
+ current = node->GetNodeAtIndex( segment->GetIndex() );
+ else
+ current = spINode();
+ }
+ break;
+
+ case IPathSegment::kPSTQualifier:
+ if ( parent->HasQualifiers() ) {
+ current = current->GetINode_I()->GetQualifier( segment->GetNameSpace(), segment->GetName() );
+ } else {
+ current = spINode();
+ }
+ break;
+
+ case IPathSegment::kPSTQualifierSelector:
+ {
+ auto node = parent->ConvertToArrayNode();
+ if ( node ) {
+ current = GetArrayItemBasedOnSimpleQual( node, segment->GetNameSpace(), segment->GetName(), segment->GetValue() );
+ } else {
+ current = spINode();
+ }
+ }
+ break;
+
+ default:
+ NOTIFY_ERROR( IError_v1::kEDGeneral, kGECLogicalError,
+ "unhandled situtation occured", IError_v1::kESOperationFatal, true, static_cast< uint32 >( segment->GetType() ) );
+ break;
+ }
+
+ parent = result = current;
+ }
+ return result;
+ }
+
+ void APICALL CompositeNodeImpl::InsertNodeAtPath( const spINode & node, const spcIPath & path ) {
+ NOTIFY_ERROR( IError_v1::kEDGeneral, kGECNotImplemented,
+ "InsertNodeAtPath( path ) is not yet implemented", IError_v1::kESOperationFatal, false, false );
+ }
+
+ spINode APICALL CompositeNodeImpl::ReplaceNodeAtPath( const spINode & node, const spcIPath & path ) {
+ NOTIFY_ERROR( IError_v1::kEDGeneral, kGECNotImplemented,
+ "ReplaceNodeAtPath( path ) is not yet implemented", IError_v1::kESOperationFatal, false, false );
+ }
+
+ spINode APICALL CompositeNodeImpl::RemoveNodeAtPath( const spcIPath & path ) {
+ spINode node = GetNodeAtPath( path );
+ if ( node ) {
+ auto parentNode_I = node->GetINode_I()->GetRawParentPointer()->GetINode_I();
+ if ( node->IsQualifierNode() ) {
+ node = parentNode_I->ConvertToStructureNode()->GetIStructureNode_I()->RemoveNode( node->GetNameSpace(), node->GetName() );
+ } else if ( node->IsArrayItem() ) {
+ auto parentArrayNode = parentNode_I->ConvertToArrayNode();
+ node = parentArrayNode->RemoveNodeAtIndex( node->GetIndex() );
+ } else {
+ auto parentStructureNode = parentNode_I->ConvertToStructureNode()->GetIStructureNode_I();
+ node = parentStructureNode->RemoveNode( node->GetNameSpace(), node->GetName() );
+ }
+ }
+ return node;
+ }
+
+ bool CompositeNodeImpl::CheckSuitabilityToBeUsedAsChildNode( const spcINode & node ) const {
+ if ( node ) {
+ if ( node->GetParentNodeType() == INode_v1::kNTNone ) {
+ return true;
+ } else {
+ NOTIFY_ERROR( IError_v1::kEDDataModel, kDMECNodeAlreadyAChild,
+ "node is already a part of tree", IError_v1::kESOperationFatal, false, false );
+ }
+ } else {
+ NOTIFY_ERROR( IError_v1::kEDGeneral, kGECParametersNotAsExpected,
+ "invalid shared pointer", IError_v1::kESOperationFatal, false, false );
+ }
+ return false;
+ }
+
+}
diff --git a/XMPCore/source/CoreConfigurationManagerImpl.cpp b/XMPCore/source/CoreConfigurationManagerImpl.cpp
new file mode 100644
index 0000000..35a7bbe
--- /dev/null
+++ b/XMPCore/source/CoreConfigurationManagerImpl.cpp
@@ -0,0 +1,56 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#define IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED 1
+ #include "XMPCore/ImplHeaders/CoreConfigurationManagerImpl.h"
+#undef IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED
+
+#include "XMPCommon/Interfaces/IError_I.h"
+#include "XMPCore/XMPCoreErrorCodes.h"
+#include "XMPCommon/Utilities/TSmartPointers_I.h"
+
+namespace AdobeXMPCore_Int {
+
+ CoreConfigurationManagerImpl::CoreConfigurationManagerImpl() { }
+
+ static spICoreConfigurationManager ManageCoreConfigurationManager( bool destroy = false ) {
+ static spICoreConfigurationManager sCoreConfigurationManager;
+ if ( destroy ) {
+ sCoreConfigurationManager.reset();
+ } else {
+ if ( !sCoreConfigurationManager )
+ sCoreConfigurationManager = MakeUncheckedSharedPointer( new CoreConfigurationManagerImpl(), __FILE__, __LINE__, true );
+ }
+ return sCoreConfigurationManager;
+ }
+
+ void ICoreConfigurationManager_I::CreateCoreConfigurationManager() {
+ ManageCoreConfigurationManager();
+ }
+
+ void ICoreConfigurationManager_I::DestroyCoreConfigurationManager() {
+ ManageCoreConfigurationManager( true );
+ }
+
+}
+
+#if BUILDING_XMPCORE_LIB || SOURCE_COMPILING_XMPCORE_LIB
+namespace AdobeXMPCore {
+ using namespace AdobeXMPCore_Int;
+ spICoreConfigurationManager ICoreConfigurationManager_v1::MakeShared( pICoreConfigurationManager_base ptr ) {
+ if ( !ptr ) return spICoreConfigurationManager();
+ pICoreConfigurationManager p = ICoreConfigurationManager::GetInterfaceVersion() > 1 ? ptr->GetInterfacePointer< ICoreConfigurationManager >() : ptr;
+ return MakeUncheckedSharedPointer( p, __FILE__, __LINE__, false );
+ }
+
+ spICoreConfigurationManager ICoreConfigurationManager::GetCoreConfigurationManager() {
+ return AdobeXMPCore_Int::ManageCoreConfigurationManager();
+ }
+}
+#endif // BUILDING_XMPCORE_LIB || SOURCE_COMPILING_XMPCORE_LIB
diff --git a/XMPCore/source/CoreObjectFactoryImpl.cpp b/XMPCore/source/CoreObjectFactoryImpl.cpp
new file mode 100644
index 0000000..71fe1cc
--- /dev/null
+++ b/XMPCore/source/CoreObjectFactoryImpl.cpp
@@ -0,0 +1,158 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#define IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED 1
+ #include "XMPCore/ImplHeaders/CoreObjectFactoryImpl.h"
+#undef IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED
+
+#include "XMPCommon/Interfaces/IError_I.h"
+#include "XMPCore/XMPCoreErrorCodes.h"
+
+#include "XMPCommon/Interfaces/IUTF8String_I.h"
+
+#include "XMPCore/Interfaces/IPathSegment_I.h"
+#include "XMPCore/Interfaces/IPath_I.h"
+#include "XMPCore/Interfaces/INameSpacePrefixMap_I.h"
+#include "XMPCore/Interfaces/ISimpleNode_I.h"
+#include "XMPCore/Interfaces/IArrayNode_I.h"
+#include "XMPCore/Interfaces/IStructureNode_I.h"
+#include "XMPCore/Interfaces/IMetadata_I.h"
+#include "XMPCore/Interfaces/IDOMImplementationRegistry_I.h"
+#include "XMPCore/Interfaces/ICoreConfigurationManager_I.h"
+#include "XMPCommon/Utilities/TWrapperFunctions_I.h"
+
+#if ENABLE_CPP_DOM_MODEL
+
+namespace AdobeXMPCore_Int {
+
+ pcIPathSegment_base APICALL CoreObjectFactoryImpl::CreateArrayIndexPathSegment( const char * nameSpace, sizet nameSpaceLength, sizet index, pcIError_base & error ) __NOTHROW__ {
+ return ReturnRawPointerFromSharedPointer< const IPathSegment, pcIPathSegment_base >(
+ &IPathSegment::CreateArrayIndexPathSegment, error, __FILE__, __LINE__, nameSpace, nameSpaceLength, index );
+ }
+
+ pIArrayNode_base APICALL CoreObjectFactoryImpl::CreateArrayNode( uint32 arrayForm, const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) __NOTHROW__ {
+ switch ( static_cast< IArrayNode::eArrayForm >( arrayForm ) ) {
+ case IArrayNode::kAFOrdered:
+ return ReturnRawPointerFromSharedPointer< IArrayNode, pIArrayNode_base >(
+ &IArrayNode::CreateOrderedArrayNode, error, __FILE__, __LINE__, nameSpace, nameSpaceLength, name, nameLength );
+ break;
+
+ case IArrayNode::kAFUnordered:
+ return ReturnRawPointerFromSharedPointer< IArrayNode, pIArrayNode_base >(
+ &IArrayNode::CreateUnorderedArrayNode, error, __FILE__, __LINE__, nameSpace, nameSpaceLength, name, nameLength );
+ break;
+
+ case IArrayNode::kAFAlternative:
+ return ReturnRawPointerFromSharedPointer< IArrayNode, pIArrayNode_base >(
+ &IArrayNode::CreateAlternativeArrayNode, error, __FILE__, __LINE__, nameSpace, nameSpaceLength, name, nameLength );
+ break;
+
+ }
+ return NULL;
+ }
+
+ pIMetadata_base APICALL CoreObjectFactoryImpl::CreateMetadata( pcIError_base & error ) __NOTHROW__ {
+ return ReturnRawPointerFromSharedPointer< IMetadata, pIMetadata_base >(
+ &IMetadata::CreateMetadata, error, __FILE__, __LINE__ );
+ }
+
+ pINameSpacePrefixMap_base APICALL CoreObjectFactoryImpl::CreateNameSpacePrefixMap( pcIError_base & error ) __NOTHROW__ {
+ return ReturnRawPointerFromSharedPointer< INameSpacePrefixMap, pINameSpacePrefixMap_base >(
+ &INameSpacePrefixMap::CreateNameSpacePrefixMap, error, __FILE__, __LINE__ );
+ }
+
+ pIPath_base APICALL CoreObjectFactoryImpl::CreatePath( pcIError_base & error ) __NOTHROW__ {
+ return ReturnRawPointerFromSharedPointer< IPath, pIPath_base >(
+ &IPath::CreatePath, error, __FILE__, __LINE__ );
+ }
+
+ pcIPathSegment_base APICALL CoreObjectFactoryImpl::CreatePropertyPathSegment( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) __NOTHROW__ {
+ return ReturnRawPointerFromSharedPointer< const IPathSegment, pcIPathSegment_base >(
+ &IPathSegment::CreatePropertyPathSegment, error, __FILE__, __LINE__, nameSpace, nameSpaceLength, name, nameLength );
+ }
+
+ pcIPathSegment_base APICALL CoreObjectFactoryImpl::CreateQualifierPathSegment( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) __NOTHROW__ {
+ return ReturnRawPointerFromSharedPointer< const IPathSegment, pcIPathSegment_base >(
+ &IPathSegment::CreateQualifierPathSegment, error, __FILE__, __LINE__, nameSpace, nameSpaceLength, name, nameLength );
+ }
+
+ pcIPathSegment_base APICALL CoreObjectFactoryImpl::CreateQualifierSelectorPathSegment( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, const char * value, sizet valueLength, pcIError_base & error ) __NOTHROW__ {
+ return ReturnRawPointerFromSharedPointer< const IPathSegment, pcIPathSegment_base >(
+ &IPathSegment::CreateQualifierSelectorPathSegment, error, __FILE__, __LINE__, nameSpace, nameSpaceLength, name, nameLength, value, valueLength );
+ }
+
+ pISimpleNode_base APICALL CoreObjectFactoryImpl::CreateSimpleNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, const char * value, sizet valueLength, pcIError_base & error ) __NOTHROW__ {
+ return ReturnRawPointerFromSharedPointer< ISimpleNode, pISimpleNode_base >(
+ &ISimpleNode::CreateSimpleNode, error, __FILE__, __LINE__, nameSpace, nameSpaceLength, name, nameLength, value, valueLength );
+ }
+
+ pIStructureNode_base APICALL CoreObjectFactoryImpl::CreateStructureNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) __NOTHROW__ {
+ return ReturnRawPointerFromSharedPointer< IStructureNode, pIStructureNode_base >(
+ &IStructureNode::CreateStructureNode, error, __FILE__, __LINE__, nameSpace, nameSpaceLength, name, nameLength );
+ }
+
+ pICoreConfigurationManager_base APICALL CoreObjectFactoryImpl::GetCoreConfigurationManager( pcIError_base & error ) __NOTHROW__ {
+ return ReturnRawPointerFromSharedPointer< ICoreConfigurationManager, pICoreConfigurationManager_base >(
+ &ICoreConfigurationManager::GetCoreConfigurationManager, error, __FILE__, __LINE__ );
+ }
+
+ pIDOMImplementationRegistry_base CoreObjectFactoryImpl::GetDOMImplementationRegistry( pcIError_base & error ) __NOTHROW__ {
+ return ReturnRawPointerFromSharedPointer< IDOMImplementationRegistry, pIDOMImplementationRegistry_base >(
+ &IDOMImplementationRegistry::GetDOMImplementationRegistry, error, __FILE__, __LINE__ );
+ }
+
+ pcINameSpacePrefixMap_base CoreObjectFactoryImpl::GetDefaultNameSpacePrefixMap( pcIError_base & error ) __NOTHROW__ {
+ return ReturnRawPointerFromSharedPointer< const INameSpacePrefixMap, pcINameSpacePrefixMap_base >(
+ &INameSpacePrefixMap::GetDefaultNameSpacePrefixMap, error, __FILE__, __LINE__ );
+ }
+
+ pIPath_base CoreObjectFactoryImpl::ParsePath( const char * path, sizet pathLength, pcINameSpacePrefixMap_base map, pcIError_base & error ) __NOTHROW__ {
+ return ReturnRawPointerFromSharedPointer< IPath, pIPath_base, const char *, sizet, const spcINameSpacePrefixMap & >(
+ &IPath::ParsePath, error, __FILE__, __LINE__, path, pathLength, INameSpacePrefixMap::MakeShared( map ) );
+ }
+
+ pIError_base CoreObjectFactoryImpl::CreateError(uint32 domain, uint32 code, uint32 severity, pcIError_base & error) __NOTHROW__{
+ return ReturnRawPointerFromSharedPointer< IError_I, pIError_base, IError::eErrorDomain, IError::eErrorCode, IError::eErrorSeverity >(
+ &IError_I::CreateError, error, __FILE__, __LINE__, static_cast< IError::eErrorDomain >( domain ), static_cast< IError::eErrorCode >( code ), static_cast< IError::eErrorSeverity >( severity ) );
+ }
+
+ pIUTF8String_base CoreObjectFactoryImpl::CreateUTF8String(const char * buf, sizet count, pcIError_base & error) __NOTHROW__{
+ return ReturnRawPointerFromSharedPointer< IUTF8String, pIUTF8String_base >(
+ &IUTF8String_I::CreateUTF8String, error, __FILE__, (sizet) __LINE__, buf, count );
+ }
+
+ static pICoreObjectFactory ManageCoreObjectFactory( bool destroy = false ) {
+ static CoreObjectFactoryImpl coreObjectFactoryImplObj;
+ return &coreObjectFactoryImplObj;
+ }
+
+}
+
+namespace AdobeXMPCore {
+
+ void ICoreObjectFactory_v1::SetupCoreObjectFactory() {
+ AdobeXMPCore_Int::ManageCoreObjectFactory();
+ }
+
+ pICoreObjectFactory ICoreObjectFactory_v1::GetCoreObjectFactory() {
+ return AdobeXMPCore_Int::ManageCoreObjectFactory();
+ }
+
+ void ICoreObjectFactory_v1::DestroyCoreObjectFactory() {
+ AdobeXMPCore_Int::ManageCoreObjectFactory( true );
+ }
+}
+#endif
+extern "C" XMP_PUBLIC AdobeXMPCore::pICoreObjectFactory_base WXMPMeta_GetXMPDOMFactoryInstance_1() {
+#if ENABLE_CPP_DOM_MODEL
+ return AdobeXMPCore_Int::ManageCoreObjectFactory();
+#endif
+
+ return NULL;
+}
diff --git a/XMPCore/source/DOMImplementationRegistryImpl.cpp b/XMPCore/source/DOMImplementationRegistryImpl.cpp
new file mode 100644
index 0000000..2b520b5
--- /dev/null
+++ b/XMPCore/source/DOMImplementationRegistryImpl.cpp
@@ -0,0 +1,96 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#define IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED 1
+ #include "XMPCore/ImplHeaders/DOMImplementationRegistryImpl.h"
+ #include "XMPCore/ImplHeaders/RDFDOMParserImpl.h"
+ #include "XMPCore/ImplHeaders/RDFDOMSerializerImpl.h"
+#undef IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED
+
+#include "XMPCommon/Interfaces/IError_I.h"
+#include "XMPCore/XMPCoreErrorCodes.h"
+#include "XMPCommon/Interfaces/IUTF8String_I.h"
+#include "XMPCore/Interfaces/IDOMParser.h"
+#include "XMPCore/Interfaces/IDOMSerializer.h"
+#include "XMPCommon/Utilities/TSmartPointers_I.h"
+
+namespace AdobeXMPCore_Int {
+
+ bool APICALL DOMImplementationRegistryImpl::RegisterParser( const char * key, const spcIDOMParser & parser ) {
+ spcIUTF8String keyStr( IUTF8String_I::CreateUTF8String( key, AdobeXMPCommon::npos ) );
+ auto it = mParserMap.insert( std::pair< spcIUTF8String, spcIDOMParser >( keyStr, parser ) );
+ return it.second;
+ }
+
+ bool APICALL DOMImplementationRegistryImpl::RegisterSerializer( const char * key, const spcIDOMSerializer & serializer ) {
+ spcIUTF8String keyStr( IUTF8String_I::CreateUTF8String( key, AdobeXMPCommon::npos ) );
+ auto it = mSerializerMap.insert( std::pair< spcIUTF8String, spcIDOMSerializer >( keyStr, serializer ) );
+ return it.second;
+ }
+
+ spIDOMParser APICALL DOMImplementationRegistryImpl::GetParser( const char * key ) const {
+ spcIUTF8String keyStr( IUTF8String_I::CreateUTF8String( key, AdobeXMPCommon::npos ) );
+ auto it = mParserMap.find( keyStr );
+ if ( it != mParserMap.end() ) {
+ return it->second->Clone();
+ }
+ return spIDOMParser();
+ }
+
+ spIDOMSerializer APICALL DOMImplementationRegistryImpl::GetSerializer( const char * key ) const {
+ spcIUTF8String keyStr( IUTF8String_I::CreateUTF8String( key, AdobeXMPCommon::npos ) );
+ auto it = mSerializerMap.find( keyStr );
+ if ( it != mSerializerMap.end() ) {
+ return it->second->Clone();
+ }
+ return spIDOMSerializer();
+ }
+
+ static spIDOMImplementationRegistry ManageDOMImplementationRegistry( bool destroy = false ) {
+ static spIDOMImplementationRegistry sDOMImplementationRegistry;
+
+ if ( destroy ) {
+ if ( sDOMImplementationRegistry )
+ sDOMImplementationRegistry.reset();
+ return sDOMImplementationRegistry;
+ }
+
+ if ( !sDOMImplementationRegistry ) {
+ DOMImplementationRegistryImpl * ptr = new DOMImplementationRegistryImpl();
+ ptr->RegisterParser( "rdf", MakeUncheckedSharedPointer( new RDFDOMParserImpl(), __FILE__, __LINE__, true ) );
+ ptr->RegisterSerializer( "rdf", MakeUncheckedSharedPointer( new RDFDOMSerializerImpl(), __FILE__, __LINE__, true ) );
+ sDOMImplementationRegistry = MakeUncheckedSharedPointer( ptr, __FILE__, __LINE__, true );
+ }
+ return sDOMImplementationRegistry;
+ }
+
+ spIDOMImplementationRegistry IDOMImplementationRegistry_I::CreateDOMImplementationRegistry() {
+ return ManageDOMImplementationRegistry();
+ }
+
+ void IDOMImplementationRegistry_I::DestoryDOMImplementationRegistry() {
+ ManageDOMImplementationRegistry( true );
+ }
+
+}
+
+#if BUILDING_XMPCORE_LIB || SOURCE_COMPILING_XMPCORE_LIB
+namespace AdobeXMPCore {
+ using namespace AdobeXMPCore_Int;
+ spIDOMImplementationRegistry IDOMImplementationRegistry_v1::MakeShared( pIDOMImplementationRegistry_base ptr ) {
+ if ( !ptr ) return spIDOMImplementationRegistry();
+ pIDOMImplementationRegistry p = IDOMImplementationRegistry::GetInterfaceVersion() > 1 ? ptr->GetInterfacePointer< IDOMImplementationRegistry >() : ptr;
+ return MakeUncheckedSharedPointer( p, __FILE__, __LINE__, false );
+ }
+
+ spIDOMImplementationRegistry IDOMImplementationRegistry::GetDOMImplementationRegistry() {
+ return AdobeXMPCore_Int::ManageDOMImplementationRegistry();
+ }
+}
+#endif // BUILDING_XMPCORE_LIB || SOURCE_COMPILING_XMPCORE_LIB
diff --git a/XMPCore/source/DOMParserImpl.cpp b/XMPCore/source/DOMParserImpl.cpp
new file mode 100644
index 0000000..d215b8c
--- /dev/null
+++ b/XMPCore/source/DOMParserImpl.cpp
@@ -0,0 +1,325 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#define IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED 1
+ #include "XMPCore/ImplHeaders/DOMParserImpl.h"
+ #include "XMPCore/ImplHeaders/ClientDOMParserWrapperImpl.h"
+#undef IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED
+
+#include "XMPCommon/Interfaces/IError_I.h"
+#include "XMPCore/XMPCoreErrorCodes.h"
+#include "XMPCore/Interfaces/IArrayNode_I.h"
+#include "XMPCore/Interfaces/IMetadata_I.h"
+#include "XMPCore/Interfaces/INodeIterator.h"
+#include "XMPCommon/Interfaces/ISharedMutex.h"
+#include "XMPCommon/Utilities/AutoSharedLock.h"
+#include "XMPCommon/Utilities/TSmartPointers_I.h"
+
+namespace AdobeXMPCore_Int {
+
+ DOMParserImpl::DOMParserImpl()
+ : mSharedMutex( ISharedMutex::CreateSharedMutex() ) { }
+
+ spIDOMParser APICALL DOMParserImpl::Clone() const {
+ DOMParserImpl * cloned = clone();
+ if ( cloned ) {
+ AutoSharedLock lock( mSharedMutex );
+ cloned->mTreatKeyAsCaseInsensitiveCharBuffer = mTreatKeyAsCaseInsensitiveCharBuffer;
+ cloned->mAllowDifferentValueTypesForExistingEntries = mAllowDifferentValueTypesForExistingEntries;
+ if ( mKeysSet )
+ cloned->mKeysSet = new KeysSet( mKeysSet->begin(), mKeysSet->end() );
+
+ if ( mKeyValueTypeMap )
+ cloned->mKeyValueTypeMap = new keyValueTypeMap( mKeyValueTypeMap->begin(), mKeyValueTypeMap->end() );
+
+ for ( auto it = mMap.begin(), itEnd = mMap.end(); it != itEnd; ++it ) {
+ cloned->mMap[ it->first ] = it->second;
+ }
+ }
+ return MakeUncheckedSharedPointer( cloned, __FILE__, __LINE__, true );
+ }
+
+ spIMetadata APICALL DOMParserImpl::Parse( const char * buffer, sizet bufferLength ) {
+ auto node = ParseAsNode( buffer, bufferLength );
+ if ( node ) {
+ switch ( node->GetNodeType() ) {
+ case INode::kNTSimple:
+ case INode::kNTArray:
+ {
+ spIMetadata meta = IMetadata::CreateMetadata();
+ meta->AppendNode( node );
+ return meta;
+ }
+ break;
+
+ case INode::kNTStructure:
+ {
+ pIMetadata meta( NULL );
+ try {
+ meta = node->GetInterfacePointer< IMetadata >();
+ } catch ( spcIError err ) {
+ meta = NULL;
+ }
+ if ( meta ) {
+ return MakeUncheckedSharedPointer( meta, __FILE__, __LINE__ );
+ } else {
+ spIMetadata meta = IMetadata::CreateMetadata();
+ meta->AppendNode( node );
+ return meta;
+ }
+ }
+ break;
+
+ default:
+ NOTIFY_ERROR( IError::kEDGeneral, kGECInternalFailure, "Unhandled situation occured", IError::kESOperationFatal, false, false );
+ }
+ }
+ return spIMetadata();
+ }
+
+ static void AppendAsChildren( const spINode & contextNode, const spINode & parsedNode ) {
+ if ( !contextNode )
+ NOTIFY_ERROR( IError::kEDParser, kPECInvalidContextNode, "Context Node is invalid", IError::kESOperationFatal, false, false );
+ auto contextNodeType = contextNode->GetNodeType();
+ if ( contextNodeType != INode::kNTStructure && contextNodeType != INode::kNTArray )
+ NOTIFY_ERROR( IError::kEDParser, kPECContextNodeIsNonComposite, "Context Node is non composite", IError::kESOperationFatal,
+ true, static_cast< sizet >( contextNodeType ) );
+ pICompositeNode compositeContextNode = contextNode->GetInterfacePointer< ICompositeNode >();
+ pIMetadata meta( NULL );
+ try {
+ meta = parsedNode->GetInterfacePointer< IMetadata >();
+ } catch ( spcIError err ) {
+ meta = NULL;
+ }
+ if ( meta ) {
+ auto it = meta->Iterator();
+ while ( it ) {
+ auto childNode = it->GetNode();
+ it = it->Next();
+ childNode = meta->GetIMetadata_I()->RemoveNode( childNode->GetNameSpace(), childNode->GetName() );
+ compositeContextNode->AppendNode( childNode );
+ }
+ } else {
+ compositeContextNode->AppendNode( parsedNode );
+ }
+ }
+
+ static void ReplaceChildren( pIArrayNode contextArrayNode, const spINode & parsedNode ) {
+ contextArrayNode->Clear();
+ pIMetadata meta( NULL );
+ try {
+ meta = parsedNode->GetInterfacePointer< IMetadata >();
+ } catch ( spcIError err ) {
+ meta = NULL;
+ }
+ if ( meta ) {
+ auto it = meta->Iterator();
+ while ( it ) {
+ auto childNode = it->GetNode();
+ it = it->Next();
+ childNode = meta->GetIMetadata_I()->RemoveNode( childNode->GetNameSpace(), childNode->GetName() );
+ contextArrayNode->AppendNode( childNode );
+ }
+ } else {
+ contextArrayNode->AppendNode( parsedNode );
+ }
+ }
+
+ static void ReplaceChildren( pIStructureNode contextStructureNode, const spINode & parsedNode ) {
+ pIMetadata meta( NULL );
+ try {
+ meta = parsedNode->GetInterfacePointer< IMetadata >();
+ } catch ( spcIError err ) {
+ meta = NULL;
+ }
+ if ( meta ) {
+ auto it = meta->Iterator();
+ while ( it ) {
+ auto childNode = it->GetNode();
+ it = it->Next();
+ childNode = meta->GetIMetadata_I()->RemoveNode( childNode->GetNameSpace(), childNode->GetName() );
+ contextStructureNode->ReplaceNode( childNode );
+ }
+ } else {
+ contextStructureNode->ReplaceNode( parsedNode );
+ }
+ }
+
+ static void ReplaceChildren( const spINode & contextNode, const spINode & parsedNode ) {
+ if ( !contextNode )
+ NOTIFY_ERROR( IError::kEDParser, kPECInvalidContextNode, "Context Node is invalid", IError::kESOperationFatal, false, false );
+ auto contextNodeType = contextNode->GetNodeType();
+ if ( contextNodeType != INode::kNTStructure && contextNodeType != INode::kNTArray )
+ NOTIFY_ERROR( IError::kEDParser, kPECContextNodeIsNonComposite, "Context Node is non composite", IError::kESOperationFatal,
+ true, static_cast< sizet >( contextNodeType ) );
+ switch ( contextNodeType ) {
+ case INode::kNTArray:
+ ReplaceChildren( contextNode->GetInterfacePointer< IArrayNode >(), parsedNode );
+ break;
+
+ case INode::kNTStructure:
+ ReplaceChildren( contextNode->GetInterfacePointer< IStructureNode >(), parsedNode );
+ break;
+ }
+ }
+
+ static void AppendOrReplaceChildren( pIStructureNode contextStructureNode, const spINode & parsedNode ) {
+ pIMetadata meta( NULL );
+ try {
+ meta = parsedNode->GetInterfacePointer< IMetadata >();
+ } catch ( spcIError err ) {
+ meta = NULL;
+ }
+ if ( meta ) {
+ auto it = meta->Iterator();
+ while ( it ) {
+ auto childNode = it->GetNode();
+ it = it->Next();
+ childNode = meta->GetIMetadata_I()->RemoveNode( childNode->GetNameSpace(), childNode->GetName() );
+ if ( contextStructureNode->GetIStructureNode_I()->GetNode( childNode->GetNameSpace(), childNode->GetName() ) )
+ contextStructureNode->ReplaceNode( childNode );
+ else
+ contextStructureNode->AppendNode( childNode );
+ }
+ } else {
+ if ( contextStructureNode->GetIStructureNode_I()->GetNode( parsedNode->GetNameSpace(), parsedNode->GetName() ) )
+ contextStructureNode->ReplaceNode( parsedNode );
+ else
+ contextStructureNode->AppendNode( parsedNode );
+ }
+ }
+
+ static void AppendOrReplaceChildren( const spINode & contextNode, const spINode & parsedNode ) {
+ if ( !contextNode )
+ NOTIFY_ERROR( IError::kEDParser, kPECInvalidContextNode, "Context Node is invalid", IError::kESOperationFatal, false, false );
+ auto contextNodeType = contextNode->GetNodeType();
+ if ( contextNodeType != INode::kNTStructure && contextNodeType != INode::kNTArray )
+ NOTIFY_ERROR( IError::kEDParser, kPECContextNodeIsNonComposite, "Context Node is non composite", IError::kESOperationFatal,
+ true, static_cast< sizet >( contextNodeType ) );
+ switch ( contextNodeType ) {
+ case INode::kNTArray:
+ ReplaceChildren( contextNode->GetInterfacePointer< IArrayNode >(), parsedNode );
+ break;
+
+ case INode::kNTStructure:
+ AppendOrReplaceChildren( contextNode->GetInterfacePointer< IStructureNode >(), parsedNode );
+ break;
+ }
+ }
+
+ static void InsertBefore( const spINode & contextNode, const spINode & parsedNode ) {
+ if ( !contextNode )
+ NOTIFY_ERROR( IError::kEDParser, kPECInvalidContextNode, "Context Node is invalid", IError::kESOperationFatal, false, false );
+ if ( !contextNode->IsArrayItem() )
+ NOTIFY_ERROR( IError::kEDParser, kPECContextNodeParentIsNonArray, "Context Node's Parent is non array node", IError::kESOperationFatal, false, false );
+ pIMetadata meta( NULL );
+ try {
+ meta = parsedNode->GetInterfacePointer< IMetadata >();
+ } catch ( spcIError err ) {
+ meta = NULL;
+ }
+ pIArrayNode parentArrayNode = contextNode->GetINode_I()->GetRawParentPointer()->GetInterfacePointer< IArrayNode >();
+ if ( meta ) {
+ auto it = meta->Iterator();
+ while ( it ) {
+ auto childNode = it->GetNode();
+ it = it->Next();
+ childNode = meta->GetIMetadata_I()->RemoveNode( childNode->GetNameSpace(), childNode->GetName() );
+ parentArrayNode->InsertNodeAtIndex( childNode, contextNode->GetIndex() );
+ }
+ } else {
+ parentArrayNode->InsertNodeAtIndex( parsedNode, contextNode->GetIndex() );
+ }
+
+ }
+
+ static void InsertAfter( const spINode & contextNode, const spINode & parsedNode ) {
+ if ( !contextNode )
+ NOTIFY_ERROR( IError::kEDParser, kPECInvalidContextNode, "Context Node is invalid", IError::kESOperationFatal, false, false );
+ if ( !contextNode->IsArrayItem() )
+ NOTIFY_ERROR( IError::kEDParser, kPECContextNodeParentIsNonArray, "Context Node's Parent is non array node", IError::kESOperationFatal, false, false );
+ pIMetadata meta( NULL );
+ try {
+ meta = parsedNode->GetInterfacePointer< IMetadata >();
+ } catch ( spcIError err ) {
+ meta = NULL;
+ }
+ pIArrayNode parentArrayNode = contextNode->GetINode_I()->GetRawParentPointer()->GetInterfacePointer< IArrayNode >();
+ if ( meta ) {
+ auto it = meta->Iterator();
+ sizet index = contextNode->GetIndex() + 1;
+ while ( it ) {
+ auto childNode = it->GetNode();
+ it = it->Next();
+ childNode = meta->GetIMetadata_I()->RemoveNode( childNode->GetNameSpace(), childNode->GetName() );
+ parentArrayNode->InsertNodeAtIndex( childNode, index );
+ index = childNode->GetIndex() + 1;
+ }
+ } else {
+ parentArrayNode->InsertNodeAtIndex( parsedNode, contextNode->GetIndex() + 1 );
+ }
+ }
+
+ static void ReplaceNode( spINode & node, const spINode & parsedNode ) {
+ if ( node && node->IsArrayItem() && node->GetNodeType() != parsedNode->GetNodeType() ) {
+ NOTIFY_ERROR( IError::kEDDataModel, kDMECArrayItemTypeDifferent, "node type is different than what currently array can hold",
+ IError_v1::kESOperationFatal, true, static_cast< sizet >( node->GetNodeType() ), true, static_cast< sizet >( parsedNode->GetNodeType() ) );
+ }
+ node = parsedNode;
+ }
+
+ void APICALL DOMParserImpl::ParseWithSpecificAction( const char * buffer, sizet bufferLength, eActionType actionType, spINode & node ) {
+ auto parsedNode = ParseAsNode( buffer, bufferLength );
+
+ if ( parsedNode ) {
+ switch ( actionType ) {
+ case kATAppendAsChildren:
+ AppendAsChildren( node, parsedNode );
+ break;
+
+ case kATReplaceChildren:
+ ReplaceChildren( node, parsedNode );
+ break;
+
+ case kATAppendOrReplaceChildren:
+ AppendOrReplaceChildren( node, parsedNode );
+ break;
+
+ case kATInsertBefore:
+ InsertBefore( node, parsedNode );
+ break;
+
+ case kATInsertAfter:
+ InsertAfter( node, parsedNode );
+ break;
+
+ case kATReplace:
+ ReplaceNode( node, parsedNode );
+ break;
+
+ default:
+ NOTIFY_ERROR( IError::kEDGeneral, kGECNotImplemented, "Not yet implemented", IError::kESOperationFatal, true, static_cast< sizet >( actionType ) );
+ }
+
+ }
+ }
+
+ spISharedMutex APICALL DOMParserImpl::GetMutex() const {
+ return mSharedMutex;
+ }
+
+ AdobeXMPCore::spIDOMParser IDOMParser_I::CreateDOMParser( pIClientDOMParser_base clientDOMParser ) {
+ return MakeUncheckedSharedPointer( new ClientDOMParserWrapperImpl( clientDOMParser ), __FILE__, __LINE__, true );
+ }
+
+
+ void DOMParserImpl::SetErrorCallback(XMPMeta::ErrorCallbackInfo * ec) {
+ mGenericErrorCallbackPtr = ec;
+ }
+}
diff --git a/XMPCore/source/DOMSerializerImpl.cpp b/XMPCore/source/DOMSerializerImpl.cpp
new file mode 100644
index 0000000..07da8dc
--- /dev/null
+++ b/XMPCore/source/DOMSerializerImpl.cpp
@@ -0,0 +1,54 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#define IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED 1
+ #include "XMPCore/ImplHeaders/DOMSerializerImpl.h"
+ #include "XMPCore/ImplHeaders/ClientDOMSerializerWrapperImpl.h"
+#undef IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED
+
+#include "XMPCommon/Interfaces/IError_I.h"
+#include "XMPCore/XMPCoreErrorCodes.h"
+#include "XMPCommon/Interfaces/ISharedMutex.h"
+#include "XMPCommon/Utilities/AutoSharedLock.h"
+#include "XMPCommon/Utilities/TSmartPointers_I.h"
+
+namespace AdobeXMPCore_Int {
+
+ DOMSerializerImpl::DOMSerializerImpl()
+ : mSharedMutex( ISharedMutex::CreateSharedMutex() ) { }
+
+ spISharedMutex APICALL DOMSerializerImpl::GetMutex() const {
+ return mSharedMutex;
+ }
+
+ spIDOMSerializer APICALL DOMSerializerImpl::Clone() const {
+ DOMSerializerImpl * cloned = clone();
+ if ( cloned ) {
+ AutoSharedLock lock( mSharedMutex );
+ cloned->mTreatKeyAsCaseInsensitiveCharBuffer = mTreatKeyAsCaseInsensitiveCharBuffer;
+ cloned->mAllowDifferentValueTypesForExistingEntries = mAllowDifferentValueTypesForExistingEntries;
+ if ( mKeysSet )
+ cloned->mKeysSet = new KeysSet( mKeysSet->begin(), mKeysSet->end() );
+
+ if ( mKeyValueTypeMap )
+ cloned->mKeyValueTypeMap = new keyValueTypeMap( mKeyValueTypeMap->begin(), mKeyValueTypeMap->end() );
+
+ for ( auto it = mMap.begin(), itEnd = mMap.end(); it != itEnd; ++it ) {
+ cloned->mMap[ it->first ] = it->second;
+ }
+ }
+ return MakeUncheckedSharedPointer( cloned, __FILE__, __LINE__, true );
+ }
+
+ AdobeXMPCore::spIDOMSerializer IDOMSerializer_I::CreateDOMSerializer( pIClientDOMSerializer_base clientDOMSerializer ) {
+ return MakeUncheckedSharedPointer( new ClientDOMSerializerWrapperImpl( clientDOMSerializer ), __FILE__, __LINE__, true );
+ }
+
+
+}
diff --git a/XMPCore/source/ExpatAdapter.cpp b/XMPCore/source/ExpatAdapter.cpp
index 0d7813b..5fe0181 100644
--- a/XMPCore/source/ExpatAdapter.cpp
+++ b/XMPCore/source/ExpatAdapter.cpp
@@ -142,7 +142,7 @@ void ExpatAdapter::ParseBuffer ( const void * buffer, size_t length, bool last /
length = 1;
}
- status = XML_Parse ( this->parser, (const char *)buffer, length, last );
+ status = XML_Parse ( this->parser, (const char *)buffer, static_cast< XMP_StringLen >( length ), last );
#if BanAllEntityUsage
if ( this->isAborted ) {
@@ -275,7 +275,12 @@ static void StartNamespaceDeclHandler ( void * userData, XMP_StringPtr prefix, X
#endif
if ( XMP_LitMatch ( uri, "http://purl.org/dc/1.1/" ) ) uri = "http://purl.org/dc/elements/1.1/";
- (void) thiz->registeredNamespaces->Define ( uri, prefix, 0, 0 );
+ if (thiz->registeredNamespaces == sRegisteredNamespaces) {
+ (void)XMPMeta::RegisterNamespace(uri, prefix, 0, 0);
+ }
+ else {
+ (void)thiz->registeredNamespaces->Define(uri, prefix, 0, 0);
+ }
} // StartNamespaceDeclHandler
diff --git a/XMPCore/source/IArrayNode_I.cpp b/XMPCore/source/IArrayNode_I.cpp
new file mode 100644
index 0000000..b7099eb
--- /dev/null
+++ b/XMPCore/source/IArrayNode_I.cpp
@@ -0,0 +1,85 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+
+#include "XMPCore/Interfaces/IArrayNode_I.h"
+#include "XMPCommon/Utilities/TWrapperFunctions_I.h"
+#include "XMPCommon/Interfaces/IError_I.h"
+
+namespace AdobeXMPCore_Int {
+
+ pvoid APICALL IArrayNode_I::GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion ) {
+ return GetInterfacePointerInternal( interfaceID, interfaceVersion, true );
+ }
+
+ pvoid APICALL IArrayNode_I::getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunction< IArrayNode_I, pvoid, pvoid, uint64, uint32 >(
+ error, this, NULL, &IArrayNode_I::GetInterfacePointer, __FILE__, __LINE__, interfaceID, interfaceVersion );
+ }
+
+ pvoid APICALL IArrayNode_I::GetInterfacePointerInternal( uint64 interfaceID, uint32 interfaceVersion, bool isTopLevel ) {
+ if ( interfaceID == kIArrayNodeID ) {
+ switch ( interfaceVersion ) {
+ case 1:
+ return static_cast< IArrayNode_v1 * >( this );
+ break;
+
+ case kInternalInterfaceVersionNumber:
+ return this;
+ break;
+
+ default:
+ throw IError_I::CreateInterfaceVersionNotAvailableError(
+ IError_v1::kESOperationFatal, interfaceID, interfaceVersion, __FILE__, __LINE__ );
+ break;
+ }
+ } else {
+ pvoid returnValue( NULL );
+ returnValue = ICompositeNode_I::GetInterfacePointerInternal( interfaceID, interfaceVersion, false );
+ if ( returnValue ) return returnValue;
+ }
+ if ( isTopLevel )
+ throw IError_I::CreateInterfaceNotAvailableError(
+ IError_v1::kESOperationFatal, kIArrayNodeID, interfaceID, __FILE__, __LINE__ );
+ return NULL;
+ }
+
+ uint32 APICALL IArrayNode_I::getArrayForm( pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunction< IArrayNode_v1, uint32, eArrayForm >(
+ error, this, 0, &IArrayNode_v1::GetArrayForm, __FILE__, __LINE__ );
+ }
+
+ uint32 APICALL IArrayNode_I::getChildNodeType( pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunction< IArrayNode_v1, uint32, eNodeType >(
+ error, this, 0, &IArrayNode_v1::GetChildNodeType, __FILE__, __LINE__ );
+ }
+
+ pINode_base APICALL IArrayNode_I::getNodeAtIndex( sizet index, pcIError_base & error ) __NOTHROW__ {
+ typedef spINode( APICALL IArrayNode_v1::*Func )( sizet );
+ Func fnPtr = &IArrayNode_v1::GetNodeAtIndex;
+ return CallUnSafeFunctionReturningSharedPointer< IArrayNode_v1, pINode_base, INode, sizet >(
+ error, this, fnPtr, __FILE__, __LINE__, index );
+ }
+
+ void APICALL IArrayNode_I::insertNodeAtIndex( pINode_base node, sizet index, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunctionReturningVoid< IArrayNode_v1, const spINode &, sizet >(
+ error, this, &IArrayNode_v1::InsertNodeAtIndex, __FILE__, __LINE__, INode::MakeShared( node ), index );
+ }
+
+ pINode_base APICALL IArrayNode_I::removeNodeAtIndex( sizet index, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunctionReturningSharedPointer< IArrayNode_v1, pINode_base, INode, sizet >(
+ error, this, &IArrayNode_v1::RemoveNodeAtIndex, __FILE__, __LINE__, index );
+ }
+
+ pINode_base APICALL IArrayNode_I::replaceNodeAtIndex( pINode_base node, sizet index, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunctionReturningSharedPointer< IArrayNode_v1, pINode_base, INode, const spINode &, sizet >(
+ error, this, &IArrayNode_v1::ReplaceNodeAtIndex, __FILE__, __LINE__, INode::MakeShared( node ), index );
+ }
+
+}
diff --git a/XMPCore/source/ICompositeNode_I.cpp b/XMPCore/source/ICompositeNode_I.cpp
new file mode 100644
index 0000000..b590058
--- /dev/null
+++ b/XMPCore/source/ICompositeNode_I.cpp
@@ -0,0 +1,92 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+
+#include "XMPCore/Interfaces/ICompositeNode_I.h"
+#include "XMPCommon/Utilities/TWrapperFunctions_I.h"
+#include "XMPCommon/Interfaces/IError_I.h"
+#include "XMPCore/Interfaces/IPath.h"
+#include "XMPCore/Interfaces/INodeIterator.h"
+
+namespace AdobeXMPCore_Int {
+
+ pvoid APICALL ICompositeNode_I::GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion ) {
+ return GetInterfacePointerInternal( interfaceID, interfaceVersion, true );
+ }
+
+ pvoid APICALL ICompositeNode_I::getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunction< ICompositeNode_I, pvoid, pvoid, uint64, uint32 >(
+ error, this, NULL, &ICompositeNode_I::GetInterfacePointer, __FILE__, __LINE__, interfaceID, interfaceVersion );
+ }
+
+ pvoid APICALL ICompositeNode_I::GetInterfacePointerInternal( uint64 interfaceID, uint32 interfaceVersion, bool isTopLevel ) {
+ if ( interfaceID == kICompositeNodeID ) {
+ switch ( interfaceVersion ) {
+ case 1:
+ return static_cast< ICompositeNode_v1 * >( this );
+ break;
+
+ case kInternalInterfaceVersionNumber:
+ return this;
+ break;
+
+ default:
+ throw IError_I::CreateInterfaceVersionNotAvailableError(
+ IError_v1::kESOperationFatal, interfaceID, interfaceVersion, __FILE__, __LINE__ );
+ break;
+ }
+ } else {
+ pvoid returnValue( NULL );
+ returnValue = INode_I::GetInterfacePointerInternal( interfaceID, interfaceVersion, false );
+ if ( returnValue ) return returnValue;
+ }
+ if ( isTopLevel )
+ throw IError_I::CreateInterfaceNotAvailableError(
+ IError_v1::kESOperationFatal, kICompositeNodeID, interfaceID, __FILE__, __LINE__ );
+ return NULL;
+ }
+
+ uint32 APICALL ICompositeNode_I::getNodeTypeAtPath( pcIPath_base path, pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunction< ICompositeNode_v1, uint32, eNodeType, const spcIPath & >(
+ error, this, 0, &ICompositeNode_v1::GetNodeTypeAtPath, __FILE__, __LINE__, IPath_v1::MakeShared( path ) );
+ }
+
+ pINode_base APICALL ICompositeNode_I::getNodeAtPath( pcIPath_base path, pcIError_base & error ) __NOTHROW__ {
+ typedef spINode( APICALL ICompositeNode_v1::*Func )( const spcIPath & );
+ Func fnPtr = &ICompositeNode_v1::GetNodeAtPath;
+ return CallUnSafeFunctionReturningSharedPointer< ICompositeNode_v1, pINode_base, INode, const spcIPath & >(
+ error, this, fnPtr, __FILE__, __LINE__, IPath_v1::MakeShared( path ) );
+ }
+
+ void APICALL ICompositeNode_I::appendNode( pINode_base node, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunctionReturningVoid< ICompositeNode_v1, const spINode & >(
+ error, this, &ICompositeNode_v1::AppendNode, __FILE__, __LINE__, INode::MakeShared( node ) );
+ }
+
+ void APICALL ICompositeNode_I::insertNodeAtPath( pINode_base node, pcIPath_base path, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunctionReturningVoid< ICompositeNode_v1, const spINode &, const spcIPath & >(
+ error, this, &ICompositeNode_v1::InsertNodeAtPath, __FILE__, __LINE__, INode::MakeShared( node ), IPath::MakeShared( path ) );
+ }
+
+ pINode_base APICALL ICompositeNode_I::replaceNodeAtPath( pINode_base node, pcIPath_base path, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunctionReturningSharedPointer< ICompositeNode_v1, pINode_base, INode, const spINode &, const spcIPath & >(
+ error, this, &ICompositeNode_v1::ReplaceNodeAtPath, __FILE__, __LINE__, INode_v1::MakeShared( node ), IPath_v1::MakeShared( path ) );
+ }
+
+ pINode_base APICALL ICompositeNode_I::removeNodeAtPath( pcIPath_base path, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunctionReturningSharedPointer< ICompositeNode_v1, pINode_base, INode, const spcIPath & >(
+ error, this, &ICompositeNode_v1::RemoveNodeAtPath, __FILE__, __LINE__, IPath_v1::MakeShared( path ) );
+ }
+
+ pINodeIterator_base APICALL ICompositeNode_I::iterator( pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunctionReturningSharedPointer< ICompositeNode_v1, pINodeIterator_base, INodeIterator >(
+ error, this, &ICompositeNode_v1::Iterator, __FILE__, __LINE__ );
+ }
+
+} \ No newline at end of file
diff --git a/XMPCore/source/ICoreConfigurationManager_I.cpp b/XMPCore/source/ICoreConfigurationManager_I.cpp
new file mode 100644
index 0000000..27d6852
--- /dev/null
+++ b/XMPCore/source/ICoreConfigurationManager_I.cpp
@@ -0,0 +1,54 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+
+#include "XMPCore/Interfaces/ICoreConfigurationManager_I.h"
+#include "XMPCommon/Utilities/TWrapperFunctions_I.h"
+#include "XMPCommon/Interfaces/IError_I.h"
+
+namespace AdobeXMPCore_Int {
+
+ pvoid APICALL ICoreConfigurationManager_I::GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion ) {
+ return GetInterfacePointerInternal( interfaceID, interfaceVersion, true );
+ }
+
+ pvoid APICALL ICoreConfigurationManager_I::getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunction< ICoreConfigurationManager_I, pvoid, pvoid, uint64, uint32 >(
+ error, this, NULL, &ICoreConfigurationManager_I::GetInterfacePointer, __FILE__, __LINE__, interfaceID, interfaceVersion );
+ }
+
+ pvoid APICALL ICoreConfigurationManager_I::GetInterfacePointerInternal( uint64 interfaceID, uint32 interfaceVersion, bool isTopLevel ) {
+ if ( interfaceID == kICoreConfigurationManagerID ) {
+ switch ( interfaceVersion ) {
+ case 1:
+ return static_cast< ICoreConfigurationManager_v1 * >( this );
+ break;
+
+ case kInternalInterfaceVersionNumber:
+ return this;
+ break;
+
+ default:
+ throw IError_I::CreateInterfaceVersionNotAvailableError(
+ IError_v1::kESOperationFatal, interfaceID, interfaceVersion, __FILE__, __LINE__ );
+ break;
+ }
+ } else {
+ pvoid returnValue( NULL );
+ returnValue = IConfigurationManager_I::GetInterfacePointerInternal( interfaceID, interfaceVersion, false );
+ if ( returnValue ) return returnValue;
+ }
+
+ if ( isTopLevel )
+ throw IError_I::CreateInterfaceNotAvailableError(
+ IError_v1::kESOperationFatal, kICoreConfigurationManagerID, interfaceID, __FILE__, __LINE__ );
+ return NULL;
+ }
+
+} \ No newline at end of file
diff --git a/XMPCore/source/ICoreObjectFactory_I.cpp b/XMPCore/source/ICoreObjectFactory_I.cpp
new file mode 100644
index 0000000..ff2613a
--- /dev/null
+++ b/XMPCore/source/ICoreObjectFactory_I.cpp
@@ -0,0 +1,62 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+
+#include "XMPCore/Interfaces/ICoreObjectFactory_I.h"
+#include "XMPCommon/Utilities/TWrapperFunctions_I.h"
+#include "XMPCommon/Interfaces/IError_I.h"
+
+namespace AdobeXMPCore_Int {
+
+ pvoid APICALL ICoreObjectFactory_I::GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion ) {
+ return GetInterfacePointerInternal( interfaceID, interfaceVersion, true );
+ }
+
+ pvoid APICALL ICoreObjectFactory_I::getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunction< ICoreObjectFactory_I, pvoid, pvoid, uint64, uint32 >(
+ error, this, NULL, &ICoreObjectFactory_I::GetInterfacePointer, __FILE__, __LINE__, interfaceID, interfaceVersion );
+ }
+
+ pvoid APICALL ICoreObjectFactory_I::GetInterfacePointerInternal( uint64 interfaceID, uint32 interfaceVersion, bool isTopLevel ) {
+ if ( interfaceID == kICoreObjectFactoryID ) {
+ switch ( interfaceVersion ) {
+ case 1:
+ return static_cast< ICoreObjectFactory_v1 * >( this );
+ break;
+
+ case kInternalInterfaceVersionNumber:
+ return this;
+ break;
+
+ default:
+ throw IError_I::CreateInterfaceVersionNotAvailableError(
+ IError_v1::kESOperationFatal, interfaceID, interfaceVersion, __FILE__, __LINE__ );
+ break;
+ }
+ } else if ( interfaceID == kIObjectFactoryID ) {
+ switch ( interfaceVersion ) {
+ case 1:
+ return static_cast< IObjectFactory_v1 * >( this );
+ break;
+
+ default:
+ throw IError_I::CreateInterfaceVersionNotAvailableError(
+ IError_v1::kESOperationFatal, interfaceID, interfaceVersion, __FILE__, __LINE__ );
+ break;
+
+ }
+ }
+
+ if ( isTopLevel )
+ throw IError_I::CreateInterfaceNotAvailableError(
+ IError_v1::kESOperationFatal, kICoreObjectFactoryID, interfaceID, __FILE__, __LINE__ );
+ return NULL;
+ }
+
+} \ No newline at end of file
diff --git a/XMPCore/source/IDOMImplementationRegistry_I.cpp b/XMPCore/source/IDOMImplementationRegistry_I.cpp
new file mode 100644
index 0000000..ef5b7ce
--- /dev/null
+++ b/XMPCore/source/IDOMImplementationRegistry_I.cpp
@@ -0,0 +1,84 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+
+#include "XMPCore/Interfaces/IDOMImplementationRegistry_I.h"
+#include "XMPCommon/Utilities/TWrapperFunctions_I.h"
+#include "XMPCommon/Interfaces/IError_I.h"
+#include "XMPCore/Interfaces/IDOMParser_I.h"
+#include "XMPCore/Interfaces/IDOMSerializer_I.h"
+#include <stdexcept>
+
+namespace AdobeXMPCore_Int {
+
+ pvoid APICALL IDOMImplementationRegistry_I::GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion ) {
+ return GetInterfacePointerInternal( interfaceID, interfaceVersion, true );
+ }
+
+ pvoid APICALL IDOMImplementationRegistry_I::getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunction< IDOMImplementationRegistry_I, pvoid, pvoid, uint64, uint32 >(
+ error, this, NULL, &IDOMImplementationRegistry_I::GetInterfacePointer, __FILE__, __LINE__, interfaceID, interfaceVersion );
+ }
+
+ pvoid APICALL IDOMImplementationRegistry_I::GetInterfacePointerInternal( uint64 interfaceID, uint32 interfaceVersion, bool isTopLevel ) {
+ if ( interfaceID == kIDOMImplementationRegistryID ) {
+ switch ( interfaceVersion ) {
+ case 1:
+ return static_cast< IDOMImplementationRegistry_v1 * >( this );
+ break;
+
+ case kInternalInterfaceVersionNumber:
+ return this;
+ break;
+
+ default:
+ throw IError_I::CreateInterfaceVersionNotAvailableError(
+ IError_v1::kESOperationFatal, interfaceID, interfaceVersion, __FILE__, __LINE__ );
+ break;
+ }
+ }
+ if ( isTopLevel )
+ throw IError_I::CreateInterfaceNotAvailableError(
+ IError_v1::kESOperationFatal, kIDOMImplementationRegistryID, interfaceID, __FILE__, __LINE__ );
+ return NULL;
+ }
+
+ pIDOMParser_base APICALL IDOMImplementationRegistry_I::getParser( const char * key, pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunctionReturningSharedPointer< IDOMImplementationRegistry_v1, pIDOMParser_base, IDOMParser, const char * >(
+ error, this, &IDOMImplementationRegistry_v1::GetParser, __FILE__, __LINE__, key );
+ }
+
+ pIDOMSerializer_base APICALL IDOMImplementationRegistry_I::getSerializer( const char * key, pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunctionReturningSharedPointer< IDOMImplementationRegistry_v1, pIDOMSerializer_base, IDOMSerializer, const char * >(
+ error, this, &IDOMImplementationRegistry_v1::GetSerializer, __FILE__, __LINE__, key );
+ }
+
+ uint32 APICALL IDOMImplementationRegistry_I::registerParser( const char * key, pIClientDOMParser_base parser, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunction< IDOMImplementationRegistry_I, uint32, bool, const char *, const spcIDOMParser & >(
+ error, this, 0, &IDOMImplementationRegistry_I::RegisterParser, __FILE__, __LINE__, key, IDOMParser_I::CreateDOMParser( parser ) );
+ }
+
+ uint32 APICALL IDOMImplementationRegistry_I::registerSerializer( const char * key, pIClientDOMSerializer_base serializer, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunction< IDOMImplementationRegistry_I, uint32, bool, const char *, const spcIDOMSerializer & >(
+ error, this, 0, &IDOMImplementationRegistry_I::RegisterSerializer, __FILE__, __LINE__, key, IDOMSerializer_I::CreateDOMSerializer( serializer ) );
+ }
+
+ bool APICALL IDOMImplementationRegistry_I::RegisterParser(const char * key, pIClientDOMParser_base parser) {
+
+ spcIDOMParser spParser = IDOMParser_I::CreateDOMParser(parser);
+ return RegisterParser(key, spParser);
+ }
+
+ bool APICALL IDOMImplementationRegistry_I::RegisterSerializer(const char * key, pIClientDOMSerializer_base serializer) {
+
+ spcIDOMSerializer spSerializer = IDOMSerializer_I::CreateDOMSerializer(serializer);
+ return RegisterSerializer(key, spSerializer);
+ }
+
+} \ No newline at end of file
diff --git a/XMPCore/source/IDOMParser_I.cpp b/XMPCore/source/IDOMParser_I.cpp
new file mode 100644
index 0000000..cb231d8
--- /dev/null
+++ b/XMPCore/source/IDOMParser_I.cpp
@@ -0,0 +1,66 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+
+#include "XMPCore/Interfaces/IDOMParser_I.h"
+#include "XMPCommon/Utilities/TWrapperFunctions_I.h"
+#include "XMPCommon/Interfaces/IError_I.h"
+#include "XMPCore/Interfaces/IMetadata.h"
+
+namespace AdobeXMPCore_Int {
+
+ pvoid APICALL IDOMParser_I::GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion ) {
+ return GetInterfacePointerInternal( interfaceID, interfaceVersion, true );
+ }
+
+ pvoid APICALL IDOMParser_I::getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunction< IDOMParser_I, pvoid, pvoid, uint64, uint32 >(
+ error, this, NULL, &IDOMParser_I::GetInterfacePointer, __FILE__, __LINE__, interfaceID, interfaceVersion );
+ }
+
+ pvoid APICALL IDOMParser_I::GetInterfacePointerInternal( uint64 interfaceID, uint32 interfaceVersion, bool isTopLevel ) {
+ if ( interfaceID == kIDOMParserID ) {
+ switch ( interfaceVersion ) {
+ case 1:
+ return static_cast< IDOMParser_v1 * >( this );
+ break;
+
+ case kInternalInterfaceVersionNumber:
+ return this;
+ break;
+
+ default:
+ throw IError_I::CreateInterfaceVersionNotAvailableError(
+ IError_v1::kESOperationFatal, interfaceID, interfaceVersion, __FILE__, __LINE__ );
+ break;
+ }
+ }
+ if ( isTopLevel )
+ throw IError_I::CreateInterfaceNotAvailableError(
+ IError_v1::kESOperationFatal, kIDOMParserID, interfaceID, __FILE__, __LINE__ );
+ return NULL;
+ }
+
+ pIDOMParser_base APICALL IDOMParser_I::clone( pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunctionReturningSharedPointer< IDOMParser_v1, pIDOMParser_base, IDOMParser >(
+ error, this, &IDOMParser_v1::Clone, __FILE__, __LINE__ );
+ }
+
+ pIMetadata_base APICALL IDOMParser_I::parse( const char * buffer, sizet bufferLength, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunctionReturningSharedPointer< IDOMParser_v1, pIMetadata_base, IMetadata, const char *, sizet >(
+ error, this, &IDOMParser_v1::Parse, __FILE__, __LINE__, buffer, bufferLength );
+ }
+
+ void APICALL IDOMParser_I::parseWithSpecificAction( const char * buffer, sizet bufferLength, uint32 actionType, pINode_base node, pcIError_base & error ) __NOTHROW__ {
+ auto spNode = INode::MakeShared( node );
+ return CallUnSafeFunctionReturningVoid< IDOMParser_v1, const char *, sizet, eActionType, spINode & >(
+ error, this, &IDOMParser_v1::ParseWithSpecificAction, __FILE__, __LINE__, buffer, bufferLength, static_cast< eActionType >( actionType ), spNode );
+ }
+
+}
diff --git a/XMPCore/source/IDOMSerializer_I.cpp b/XMPCore/source/IDOMSerializer_I.cpp
new file mode 100644
index 0000000..104b7a5
--- /dev/null
+++ b/XMPCore/source/IDOMSerializer_I.cpp
@@ -0,0 +1,62 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+
+#include "XMPCore/Interfaces/IDOMSerializer_I.h"
+#include "XMPCommon/Utilities/TWrapperFunctions_I.h"
+#include "XMPCommon/Interfaces/IError_I.h"
+#include "XMPCore/Interfaces/INode.h"
+#include "XMPCommon/Interfaces/IUTF8String.h"
+#include "XMPCore/Interfaces/INameSpacePrefixMap.h"
+
+namespace AdobeXMPCore_Int {
+
+ pvoid APICALL IDOMSerializer_I::GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion ) {
+ return GetInterfacePointerInternal( interfaceID, interfaceVersion, true );
+ }
+
+ pvoid APICALL IDOMSerializer_I::getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunction< IDOMSerializer_I, pvoid, pvoid, uint64, uint32 >(
+ error, this, NULL, &IDOMSerializer_I::GetInterfacePointer, __FILE__, __LINE__, interfaceID, interfaceVersion );
+ }
+
+ pvoid APICALL IDOMSerializer_I::GetInterfacePointerInternal( uint64 interfaceID, uint32 interfaceVersion, bool isTopLevel ) {
+ if ( interfaceID == kIDOMSerializerID ) {
+ switch ( interfaceVersion ) {
+ case 1:
+ return static_cast< IDOMSerializer_v1 * >( this );
+ break;
+
+ case kInternalInterfaceVersionNumber:
+ return this;
+ break;
+
+ default:
+ throw IError_I::CreateInterfaceVersionNotAvailableError(
+ IError_v1::kESOperationFatal, interfaceID, interfaceVersion, __FILE__, __LINE__ );
+ break;
+ }
+ }
+ if ( isTopLevel )
+ throw IError_I::CreateInterfaceNotAvailableError(
+ IError_v1::kESOperationFatal, kIDOMSerializerID, interfaceID, __FILE__, __LINE__ );
+ return NULL;
+ }
+
+ pIDOMSerializer_base APICALL IDOMSerializer_I::clone( pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunctionReturningSharedPointer< IDOMSerializer_v1, pIDOMSerializer_base, IDOMSerializer >(
+ error, this, &IDOMSerializer_v1::Clone, __FILE__, __LINE__ );
+ }
+
+ pIUTF8String_base APICALL IDOMSerializer_I::serialize( pINode_base node, pcINameSpacePrefixMap_base map, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunctionReturningSharedPointer< IDOMSerializer_v1, pIUTF8String_base, IUTF8String, const spINode &, const spcINameSpacePrefixMap & >(
+ error, this, &IDOMSerializer_v1::Serialize, __FILE__, __LINE__, INode::MakeShared( node ), INameSpacePrefixMap::MakeShared( map ) );
+ }
+
+} \ No newline at end of file
diff --git a/XMPCore/source/IMetadata_I.cpp b/XMPCore/source/IMetadata_I.cpp
new file mode 100644
index 0000000..9ba8250
--- /dev/null
+++ b/XMPCore/source/IMetadata_I.cpp
@@ -0,0 +1,59 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+
+#include "XMPCore/Interfaces/IMetadata_I.h"
+#include "XMPCommon/Utilities/TWrapperFunctions_I.h"
+#include "XMPCommon/Interfaces/IError_I.h"
+#include "XMPCommon/Interfaces/IUTF8String_I.h"
+
+namespace AdobeXMPCore_Int {
+
+ pvoid APICALL IMetadata_I::GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion ) {
+ return GetInterfacePointerInternal( interfaceID, interfaceVersion, true );
+ }
+
+ pvoid APICALL IMetadata_I::getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunction< IMetadata_I, pvoid, pvoid, uint64, uint32 >(
+ error, this, NULL, &IMetadata_I::GetInterfacePointer, __FILE__, __LINE__, interfaceID, interfaceVersion );
+ }
+
+ pvoid APICALL IMetadata_I::GetInterfacePointerInternal( uint64 interfaceID, uint32 interfaceVersion, bool isTopLevel ) {
+ if ( interfaceID == kIMetadataID ) {
+ switch ( interfaceVersion ) {
+ case 1:
+ return static_cast< IMetadata_v1 * >( this );
+ break;
+
+ case kInternalInterfaceVersionNumber:
+ return this;
+ break;
+
+ default:
+ throw IError_I::CreateInterfaceVersionNotAvailableError(
+ IError_v1::kESOperationFatal, interfaceID, interfaceVersion, __FILE__, __LINE__ );
+ break;
+ }
+ } else {
+ pvoid returnValue( NULL );
+ returnValue = IStructureNode_I::GetInterfacePointerInternal( interfaceID, interfaceVersion, false );
+ if ( returnValue ) return returnValue;
+ }
+ if ( isTopLevel )
+ throw IError_I::CreateInterfaceNotAvailableError(
+ IError_v1::kESOperationFatal, kIMetadataID, interfaceID, __FILE__, __LINE__ );
+ return NULL;
+ }
+
+ pcIUTF8String_base APICALL IMetadata_I::getAboutURI( pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunctionReturningSharedPointer< IMetadata_v1, pcIUTF8String_base, const IUTF8String >(
+ error, this, &IMetadata_v1::GetAboutURI, __FILE__, __LINE__ );
+ }
+
+}
diff --git a/XMPCore/source/INameSpacePrefixMap_I.cpp b/XMPCore/source/INameSpacePrefixMap_I.cpp
new file mode 100644
index 0000000..68d7d09
--- /dev/null
+++ b/XMPCore/source/INameSpacePrefixMap_I.cpp
@@ -0,0 +1,84 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+
+#include "XMPCore/Interfaces/INameSpacePrefixMap_I.h"
+#include "XMPCommon/Utilities/TWrapperFunctions_I.h"
+#include "XMPCommon/Interfaces/IError_I.h"
+#include "XMPCommon/Interfaces/IUTF8String.h"
+
+namespace AdobeXMPCore_Int {
+
+ pvoid APICALL INameSpacePrefixMap_I::GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion ) {
+ return GetInterfacePointerInternal( interfaceID, interfaceVersion, true );
+ }
+
+ pvoid APICALL INameSpacePrefixMap_I::getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunction< INameSpacePrefixMap_I, pvoid, pvoid, uint64, uint32 >(
+ error, this, NULL, &INameSpacePrefixMap_I::GetInterfacePointer, __FILE__, __LINE__, interfaceID, interfaceVersion );
+ }
+
+ pvoid APICALL INameSpacePrefixMap_I::GetInterfacePointerInternal( uint64 interfaceID, uint32 interfaceVersion, bool isTopLevel ) {
+ if ( interfaceID == kINameSpacePrefixMapID ) {
+ switch ( interfaceVersion ) {
+ case 1:
+ return static_cast< INameSpacePrefixMap_v1 * >( this );
+ break;
+
+ case kInternalInterfaceVersionNumber:
+ return this;
+ break;
+
+ default:
+ throw IError_I::CreateInterfaceVersionNotAvailableError(
+ IError_v1::kESOperationFatal, interfaceID, interfaceVersion, __FILE__, __LINE__ );
+ break;
+ }
+ }
+ if ( isTopLevel )
+ throw IError_I::CreateInterfaceNotAvailableError(
+ IError_v1::kESOperationFatal, kINameSpacePrefixMapID, interfaceID, __FILE__, __LINE__ );
+ return NULL;
+ }
+
+ uint32 APICALL INameSpacePrefixMap_I::insert( const char * prefix, sizet prefixLength, const char * nameSpace, sizet nameSpaceLength, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunction< INameSpacePrefixMap_v1, uint32, bool, const char *, sizet, const char *, sizet >(
+ error, this, 0, &INameSpacePrefixMap_v1::Insert, __FILE__, __LINE__, prefix, prefixLength, nameSpace, nameSpaceLength );
+ }
+
+ uint32 APICALL INameSpacePrefixMap_I::remove( uint32 keyType, const char * key, sizet keyLength, pcIError_base & error ) __NOTHROW__ {
+ typedef bool ( APICALL INameSpacePrefixMap_v1::*Func )( const char *, sizet );
+ Func fnPtr = &INameSpacePrefixMap_v1::RemovePrefix;
+ if ( keyType == kNameSpaceIsParameter ) fnPtr = &INameSpacePrefixMap_v1::RemoveNameSpace;
+ return CallUnSafeFunction< INameSpacePrefixMap_v1, uint32, bool >(
+ error, this, 0, fnPtr, __FILE__, __LINE__, key, keyLength );
+ }
+
+ uint32 APICALL INameSpacePrefixMap_I::isPresent( uint32 keyType, const char * key, sizet keyLength, pcIError_base & error ) const __NOTHROW__ {
+ typedef bool ( APICALL INameSpacePrefixMap_v1::*Func )( const char *, sizet ) const;
+ Func fnPtr = &INameSpacePrefixMap_v1::IsPrefixPresent;
+ if ( keyType == kNameSpaceIsParameter ) fnPtr = &INameSpacePrefixMap_v1::IsNameSpacePresent;
+ return CallConstUnSafeFunction< INameSpacePrefixMap_v1, uint32, bool >(
+ error, this, 0, fnPtr, __FILE__, __LINE__, key, keyLength );
+ }
+
+ pcIUTF8String_base APICALL INameSpacePrefixMap_I::get( uint32 keyType, const char * key, sizet keyLength, pcIError_base & error ) const __NOTHROW__ {
+ typedef spcIUTF8String ( APICALL INameSpacePrefixMap_v1::*Func )( const char *, sizet ) const;
+ Func fnPtr = &INameSpacePrefixMap_v1::GetNameSpace;
+ if ( keyType == kNameSpaceIsParameter ) fnPtr = &INameSpacePrefixMap_v1::GetPrefix;
+ return CallConstUnSafeFunctionReturningSharedPointer< INameSpacePrefixMap_v1, pcIUTF8String_base, const IUTF8String >(
+ error, this, fnPtr, __FILE__, __LINE__, key, keyLength );
+ }
+
+ pINameSpacePrefixMap_base APICALL INameSpacePrefixMap_I::clone( pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunctionReturningSharedPointer< INameSpacePrefixMap_v1, pINameSpacePrefixMap_base, INameSpacePrefixMap >(
+ error, this, &INameSpacePrefixMap_v1::Clone, __FILE__, __LINE__ );
+ }
+
+}
diff --git a/XMPCore/source/INodeIterator_I.cpp b/XMPCore/source/INodeIterator_I.cpp
new file mode 100644
index 0000000..0867c9a
--- /dev/null
+++ b/XMPCore/source/INodeIterator_I.cpp
@@ -0,0 +1,78 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+
+#include "XMPCore/Interfaces/INodeIterator_I.h"
+#include "XMPCommon/Utilities/TWrapperFunctions_I.h"
+#include "XMPCommon/Interfaces/IError_I.h"
+#include "XMPCommon/Utilities/TSmartPointers_I.h"
+
+namespace AdobeXMPCore_Int {
+
+ pvoid APICALL INodeIterator_I::GetInterfacePointer(uint64 interfaceID, uint32 interfaceVersion) {
+ return GetInterfacePointerInternal(interfaceID, interfaceVersion, true);
+ }
+
+ pvoid APICALL INodeIterator_I::getInterfacePointer(uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error) __NOTHROW__{
+ return CallUnSafeFunction< INodeIterator_I, pvoid, pvoid, uint64, uint32 >(
+ error, this, NULL, &INodeIterator_I::GetInterfacePointer, __FILE__, __LINE__, interfaceID, interfaceVersion);
+ }
+
+ pvoid APICALL INodeIterator_I::GetInterfacePointerInternal(uint64 interfaceID, uint32 interfaceVersion, bool isTopLevel) {
+ if (interfaceID == kINodeIteratorID) {
+ switch (interfaceVersion) {
+ case 1:
+ return static_cast< INodeIterator_v1 * >(this);
+ break;
+
+ case kInternalInterfaceVersionNumber:
+ return this;
+ break;
+
+ default:
+ throw IError_I::CreateInterfaceVersionNotAvailableError(
+ IError_v1::kESOperationFatal, interfaceID, interfaceVersion, __FILE__, __LINE__);
+ break;
+ }
+ }
+ if (isTopLevel)
+ throw IError_I::CreateInterfaceNotAvailableError(
+ IError_v1::kESOperationFatal, kINodeIteratorID, interfaceID, __FILE__, __LINE__);
+ return NULL;
+ }
+
+
+ pINode_base APICALL INodeIterator_I::getNode( pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunctionReturningSharedPointer< INodeIterator_v1, pINode_base, INode >(
+ error, this, &INodeIterator_v1::GetNode, __FILE__, __LINE__ );
+ }
+
+ uint32 APICALL INodeIterator_I::getNodeType( pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunction< INodeIterator_v1, uint32, INode_v1::eNodeType >(
+ error, this, 0, &INodeIterator_v1::GetNodeType, __FILE__, __LINE__ );
+ }
+
+ pINodeIterator_base APICALL INodeIterator_I::next( pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunctionReturningSharedPointer< INodeIterator_v1, pINodeIterator, INodeIterator >(
+ error, this, &INodeIterator_v1::Next, __FILE__, __LINE__ );
+ }
+
+}
+
+#if BUILDING_XMPCORE_LIB || SOURCE_COMPILING_XMPCORE_LIB
+namespace AdobeXMPCore {
+ using namespace AdobeXMPCore_Int;
+ spINodeIterator INodeIterator_v1::MakeShared( pINodeIterator_base ptr ) {
+ if ( !ptr ) return spINodeIterator();
+ pINodeIterator p = INodeIterator::GetInterfaceVersion() > 1 ? ptr->GetInterfacePointer< INodeIterator >() : ptr;
+ return MakeUncheckedSharedPointer( p, __FILE__, __LINE__, false );
+ }
+}
+#endif // BUILDING_XMPCORE_LIB || SOURCE_COMPILING_XMPCORE_LIB
+
diff --git a/XMPCore/source/INode_I.cpp b/XMPCore/source/INode_I.cpp
new file mode 100644
index 0000000..003be46
--- /dev/null
+++ b/XMPCore/source/INode_I.cpp
@@ -0,0 +1,183 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+
+#include "XMPCore/Interfaces/INode_I.h"
+#include "XMPCommon/Utilities/TWrapperFunctions_I.h"
+#include "XMPCommon/Interfaces/IError_I.h"
+#include "XMPCommon/Interfaces/IUTF8String.h"
+#include "XMPCore/Interfaces/IPath.h"
+#include "XMPCore/Interfaces/ISimpleNode.h"
+#include "XMPCore/Interfaces/IMetadata.h"
+#include "XMPCore/Interfaces/IArrayNode.h"
+#include "XMPCore/Interfaces/INodeIterator.h"
+
+namespace AdobeXMPCore_Int {
+
+ pvoid APICALL INode_I::GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion ) {
+ return GetInterfacePointerInternal( interfaceID, interfaceVersion, true );
+ }
+
+ pvoid APICALL INode_I::getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunction< INode_I, pvoid, pvoid, uint64, uint32 >(
+ error, this, NULL, &INode_I::GetInterfacePointer, __FILE__, __LINE__, interfaceID, interfaceVersion );
+ }
+
+ pvoid APICALL INode_I::GetInterfacePointerInternal( uint64 interfaceID, uint32 interfaceVersion, bool isTopLevel ) {
+ if ( interfaceID == kINodeID ) {
+ switch ( interfaceVersion ) {
+ case 1:
+ return static_cast< INode_v1 * >( this );
+ break;
+
+ case kInternalInterfaceVersionNumber:
+ return this;
+ break;
+
+ default:
+ throw IError_I::CreateInterfaceVersionNotAvailableError(
+ IError_v1::kESOperationFatal, interfaceID, interfaceVersion, __FILE__, __LINE__ );
+ break;
+ }
+ }
+ if ( isTopLevel )
+ throw IError_I::CreateInterfaceNotAvailableError(
+ IError_v1::kESOperationFatal, kINodeID, interfaceID, __FILE__, __LINE__ );
+ return NULL;
+ }
+
+ pINode_base APICALL INode_I::getParent( pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunctionReturningSharedPointer< INode_v1, pINode_base, INode >(
+ error, this, &INode_v1::GetParent, __FILE__, __LINE__ );
+ }
+
+ uint32 APICALL INode_I::getParentNodeType( pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunction< INode_v1, uint32, eNodeType >(
+ error, this, 0, &INode_v1::GetParentNodeType, __FILE__, __LINE__ );
+ }
+
+ void APICALL INode_I::setName( const char * name, sizet nameLength, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunctionReturningVoid< INode_v1, const char *, sizet >(
+ error, this, &INode_v1::SetName, __FILE__, __LINE__, name, nameLength );
+ }
+
+ pcIUTF8String_base APICALL INode_I::getName( pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunctionReturningSharedPointer< INode_v1, pcIUTF8String_base, const IUTF8String >(
+ error, this, &INode_v1::GetName, __FILE__, __LINE__ );
+ }
+
+ void APICALL INode_I::setNameSpace( const char * nameSpace, sizet nameSpaceLength, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunctionReturningVoid< INode_v1, const char *, sizet >(
+ error, this, &INode_v1::SetNameSpace, __FILE__, __LINE__, nameSpace, nameSpaceLength );
+
+ }
+
+ pcIUTF8String_base APICALL INode_I::getNameSpace( pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunctionReturningSharedPointer< INode_v1, pcIUTF8String_base, const IUTF8String >(
+ error, this, &INode_v1::GetNameSpace, __FILE__, __LINE__ );
+ }
+
+ pIPath_base APICALL INode_I::getPath( pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunctionReturningSharedPointer< INode_v1, pIPath_base, IPath >(
+ error, this, &INode_v1::GetPath, __FILE__, __LINE__ );
+ }
+
+ pINodeIterator_base APICALL INode_I::qualifiersIterator( pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunctionReturningSharedPointer< INode_v1, pINodeIterator_base, INodeIterator >(
+ error, this, &INode_v1::QualifiersIterator, __FILE__, __LINE__ );
+ }
+
+ uint32 APICALL INode_I::getQualifierNodeType( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunction< INode_v1, uint32, eNodeType, const char *, sizet, const char *, sizet >(
+ error, this, 0, &INode_v1::GetQualifierNodeType, __FILE__, __LINE__, nameSpace, nameSpaceLength, name, nameLength );
+ }
+
+ pINode_base APICALL INode_I::getQualifier( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) __NOTHROW__ {
+ typedef spINode( APICALL INode_v1::*Func )( const char *, sizet, const char *, sizet );
+ Func fnPtr = &INode_v1::GetQualifier;
+ return CallUnSafeFunctionReturningSharedPointer< INode_v1, pINode_base, INode, const char *, sizet, const char *, sizet >(
+ error, this, fnPtr, __FILE__, __LINE__, nameSpace, nameSpaceLength, name, nameLength );
+ }
+
+ void APICALL INode_I::insertQualifier( pINode_base base, pcIError_base & error ) __NOTHROW__ {
+ CallUnSafeFunctionReturningVoid< INode_v1, const spINode & >( error, this, &INode_v1::InsertQualifier, __FILE__, __LINE__, INode_v1::MakeShared( base ) );
+ }
+
+ pINode_base APICALL INode_I::replaceQualifier( pINode_base node, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunctionReturningSharedPointer< INode_v1, pINode_base, INode, const spINode & >(
+ error, this, &INode_v1::ReplaceQualifier, __FILE__, __LINE__, INode_v1::MakeShared( node ) );
+ }
+
+ pINode_base APICALL INode_I::removeQualifier( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunctionReturningSharedPointer< INode_v1, pINode_base, INode, const char *, sizet, const char *, sizet >(
+ error, this, &INode_v1::RemoveQualifier, __FILE__, __LINE__, nameSpace, nameSpaceLength, name, nameLength );
+ }
+
+ uint32 APICALL INode_I::getNodeType( pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunction< INode_v1, uint32, eNodeType >( error, this, 0, &INode_v1::GetNodeType, __FILE__, __LINE__ );
+ }
+
+ uint32 APICALL INode_I::isArrayItem( pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunction< INode_v1, uint32, bool>( error, this, 0, &INode_v1::IsArrayItem, __FILE__, __LINE__ );
+ }
+
+ uint32 APICALL INode_I::isQualifierNode( pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunction< INode_v1, uint32, bool >( error, this, 0, &INode_v1::IsQualifierNode, __FILE__, __LINE__ );
+ }
+
+ sizet APICALL INode_I::getIndex( pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunction< INode_v1, sizet, sizet >( error, this, 0, &INode_v1::GetIndex, __FILE__, __LINE__ );
+ }
+
+ uint32 APICALL INode_I::hasQualifiers( pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunction< INode_v1, uint32, bool>( error, this, 0, &INode_v1::HasQualifiers, __FILE__, __LINE__ );
+ }
+
+ uint32 APICALL INode_I::hasContent( pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunction< INode_v1, uint32, bool>( error, this, 0, &INode_v1::HasContent, __FILE__, __LINE__ );
+ }
+
+ uint32 APICALL INode_I::isEmpty( pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunction< INode_v1, uint32, bool>( error, this, 0, &INode_v1::IsEmpty, __FILE__, __LINE__ );
+ }
+
+ uint32 APICALL INode_I::hasChanged( pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunction< INode_v1, uint32, bool>( error, this, 0, &INode_v1::HasChanged, __FILE__, __LINE__ );
+ }
+
+ void APICALL INode_I::clear( uint32 contents, uint32 qualifiers, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunctionReturningVoid< INode_v1, bool, bool >( error, this, &INode_v1::Clear, __FILE__, __LINE__, contents != 0, qualifiers != 0 );
+ }
+
+ pINode_base APICALL INode_I::clone( uint32 igoreEmptyNodes, uint32 ignoreNodesWithOnlyQualifiers, pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunctionReturningSharedPointer< INode_v1, pINode_base, INode, bool, bool >(
+ error, this, &INode_v1::Clone, __FILE__, __LINE__, igoreEmptyNodes != 0, ignoreNodesWithOnlyQualifiers != 0 );
+ }
+
+ pISimpleNode_base APICALL INode_I::convertToSimpleNode( pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunctionReturningSharedPointer< INode_v1, pISimpleNode_base, ISimpleNode >(
+ error, this, &INode_v1::ConvertToSimpleNode, __FILE__, __LINE__ );
+ }
+
+ pIStructureNode_base APICALL INode_I::convertToStructureNode( pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunctionReturningSharedPointer< INode_v1, pIStructureNode_base, IStructureNode >(
+ error, this, &INode_v1::ConvertToStructureNode, __FILE__, __LINE__ );
+ }
+
+ pIArrayNode_base APICALL INode_I::convertToArrayNode( pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunctionReturningSharedPointer< INode_v1, pIArrayNode_base, IArrayNode >(
+ error, this, &INode_v1::ConvertToArrayNode, __FILE__, __LINE__ );
+ }
+
+ pIMetadata_base APICALL INode_I::convertToMetadata( pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunctionReturningSharedPointer< INode_v1, pIMetadata_base, IMetadata >(
+ error, this, &INode_v1::ConvertToMetadata, __FILE__, __LINE__ );
+ }
+
+} \ No newline at end of file
diff --git a/XMPCore/source/IPathSegment_I.cpp b/XMPCore/source/IPathSegment_I.cpp
new file mode 100644
index 0000000..c94adb6
--- /dev/null
+++ b/XMPCore/source/IPathSegment_I.cpp
@@ -0,0 +1,70 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+
+#include "XMPCore/Interfaces/IPathSegment_I.h"
+#include "XMPCommon/Utilities/TWrapperFunctions_I.h"
+#include "XMPCommon/Interfaces/IError_I.h"
+#include "XMPCommon/Interfaces/IUTF8String.h"
+
+namespace AdobeXMPCore_Int {
+
+ pvoid APICALL IPathSegment_I::GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion ) {
+ return GetInterfacePointerInternal( interfaceID, interfaceVersion, true );
+ }
+
+ pvoid APICALL IPathSegment_I::getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunction< IPathSegment_I, pvoid, pvoid, uint64, uint32 >(
+ error, this, NULL, &IPathSegment_I::GetInterfacePointer, __FILE__, __LINE__, interfaceID, interfaceVersion );
+ }
+
+ pvoid APICALL IPathSegment_I::GetInterfacePointerInternal( uint64 interfaceID, uint32 interfaceVersion, bool isTopLevel ) {
+ if ( interfaceID == kIPathSegmentID ) {
+ switch ( interfaceVersion ) {
+ case 1:
+ return static_cast< IPathSegment_v1 * >( this );
+ break;
+
+ case kInternalInterfaceVersionNumber:
+ return this;
+ break;
+
+ default:
+ throw IError_I::CreateInterfaceVersionNotAvailableError(
+ IError_v1::kESOperationFatal, interfaceID, interfaceVersion, __FILE__, __LINE__ );
+ break;
+ }
+ }
+ if ( isTopLevel )
+ throw IError_I::CreateInterfaceNotAvailableError(
+ IError_v1::kESOperationFatal, kIPathSegmentID, interfaceID, __FILE__, __LINE__ );
+ return NULL;
+ }
+
+ pcIUTF8String_base APICALL IPathSegment_I::getNameSpace( pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunctionReturningSharedPointer< IPathSegment_v1, pcIUTF8String_base, const IUTF8String >(
+ error, this, &IPathSegment_v1::GetNameSpace, __FILE__, __LINE__ );
+ }
+
+ pcIUTF8String_base APICALL IPathSegment_I::getName( pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunctionReturningSharedPointer< IPathSegment_v1, pcIUTF8String_base, const IUTF8String >(
+ error, this, &IPathSegment_v1::GetName, __FILE__, __LINE__ );
+ }
+
+ uint32 APICALL IPathSegment_I::getType( pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunction< IPathSegment_v1, uint32, ePathSegmentType >(
+ error, this, 0, &IPathSegment_v1::GetType, __FILE__, __LINE__ );
+ }
+
+ pcIUTF8String_base APICALL IPathSegment_I::getValue( pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunctionReturningSharedPointer< IPathSegment_v1, pcIUTF8String_base, const IUTF8String >(
+ error, this, &IPathSegment_v1::GetValue, __FILE__, __LINE__ );
+ }
+
+} \ No newline at end of file
diff --git a/XMPCore/source/IPath_I.cpp b/XMPCore/source/IPath_I.cpp
new file mode 100644
index 0000000..d66d641
--- /dev/null
+++ b/XMPCore/source/IPath_I.cpp
@@ -0,0 +1,82 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+
+#include "XMPCore/Interfaces/IPath_I.h"
+#include "XMPCommon/Utilities/TWrapperFunctions_I.h"
+#include "XMPCommon/Interfaces/IError_I.h"
+#include "XMPCore/Interfaces/INameSpacePrefixMap.h"
+#include "XMPCore/Interfaces/IPathSegment.h"
+#include "XMPCommon/Interfaces/IUTF8String.h"
+
+namespace AdobeXMPCore_Int {
+
+ pvoid APICALL IPath_I::GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion ) {
+ return GetInterfacePointerInternal( interfaceID, interfaceVersion, true );
+ }
+
+ pvoid APICALL IPath_I::getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunction< IPath_I, pvoid, pvoid, uint64, uint32 >(
+ error, this, NULL, &IPath_I::GetInterfacePointer, __FILE__, __LINE__, interfaceID, interfaceVersion );
+ }
+
+ pvoid APICALL IPath_I::GetInterfacePointerInternal( uint64 interfaceID, uint32 interfaceVersion, bool isTopLevel ) {
+ if ( interfaceID == kIPathID ) {
+ switch ( interfaceVersion ) {
+ case 1:
+ return static_cast< IPath_v1 * >( this );
+ break;
+
+ case kInternalInterfaceVersionNumber:
+ return this;
+ break;
+
+ default:
+ throw IError_I::CreateInterfaceVersionNotAvailableError(
+ IError_v1::kESOperationFatal, interfaceID, interfaceVersion, __FILE__, __LINE__ );
+ break;
+ }
+ }
+ if ( isTopLevel )
+ throw IError_I::CreateInterfaceNotAvailableError(
+ IError_v1::kESOperationFatal, kIPathID, interfaceID, __FILE__, __LINE__ );
+ return NULL;
+ }
+
+ pcINameSpacePrefixMap_base APICALL IPath_I::registerNameSpacePrefixMap( pcINameSpacePrefixMap_base map, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunctionReturningSharedPointer< IPath_v1, pcINameSpacePrefixMap_base, const INameSpacePrefixMap, const spcINameSpacePrefixMap & >(
+ error, this, &IPath_v1::RegisterNameSpacePrefixMap, __FILE__, __LINE__, INameSpacePrefixMap::MakeShared( map ) );
+ }
+
+ pIUTF8String_base APICALL IPath_I::serialize( pcINameSpacePrefixMap_base map, pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunctionReturningSharedPointer< IPath_v1, pIUTF8String_base, IUTF8String, const spcINameSpacePrefixMap & >(
+ error, this, &IPath_v1::Serialize, __FILE__, __LINE__, INameSpacePrefixMap::MakeShared( map ) );
+ }
+
+ void APICALL IPath_I::appendPathSegment( pcIPathSegment_base segment, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunctionReturningVoid< IPath_v1, const spcIPathSegment &>(
+ error, this, &IPath_v1::AppendPathSegment, __FILE__, __LINE__, IPathSegment::MakeShared( segment ) );
+ }
+
+ pcIPathSegment_base APICALL IPath_I::removePathSegment( sizet index, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunctionReturningSharedPointer< IPath_v1, pcIPathSegment_base, const IPathSegment, sizet >(
+ error, this, &IPath_v1::RemovePathSegment, __FILE__, __LINE__, index );
+ }
+
+ pcIPathSegment_base APICALL IPath_I::getPathSegment( sizet index, pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunctionReturningSharedPointer< IPath_v1, pcIPathSegment_base, const IPathSegment, sizet >(
+ error, this, &IPath_v1::GetPathSegment, __FILE__, __LINE__, index );
+ }
+
+ pIPath_base APICALL IPath_I::clone( sizet startingIndex, sizet countOfSegemetns, pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunctionReturningSharedPointer< IPath_v1, pIPath_base, IPath, sizet, sizet >(
+ error, this, &IPath_v1::Clone, __FILE__, __LINE__, startingIndex, countOfSegemetns );
+ }
+
+}
diff --git a/XMPCore/source/ISimpleNode_I.cpp b/XMPCore/source/ISimpleNode_I.cpp
new file mode 100644
index 0000000..6e2ff34
--- /dev/null
+++ b/XMPCore/source/ISimpleNode_I.cpp
@@ -0,0 +1,74 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+
+#include "XMPCore/Interfaces/ISimpleNode_I.h"
+#include "XMPCommon/Utilities/TWrapperFunctions_I.h"
+#include "XMPCommon/Interfaces/IError_I.h"
+#include "XMPCommon/Interfaces/IUTF8String.h"
+
+namespace AdobeXMPCore_Int {
+
+ pvoid APICALL ISimpleNode_I::GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion ) {
+ return GetInterfacePointerInternal( interfaceID, interfaceVersion, true );
+ }
+
+ pvoid APICALL ISimpleNode_I::getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunction< ISimpleNode_I, pvoid, pvoid, uint64, uint32 >(
+ error, this, NULL, &ISimpleNode_I::GetInterfacePointer, __FILE__, __LINE__, interfaceID, interfaceVersion );
+ }
+
+ pvoid APICALL ISimpleNode_I::GetInterfacePointerInternal( uint64 interfaceID, uint32 interfaceVersion, bool isTopLevel ) {
+ pvoid returnValue( NULL );
+ if ( interfaceID == kISimpleNodeID ) {
+ switch ( interfaceVersion ) {
+ case 1:
+ return static_cast< ISimpleNode_v1 * >( this );
+ break;
+
+ case kInternalInterfaceVersionNumber:
+ return this;
+ break;
+
+ default:
+ throw IError_I::CreateInterfaceVersionNotAvailableError(
+ IError_v1::kESOperationFatal, interfaceID, interfaceVersion, __FILE__, __LINE__ );
+ break;
+ }
+ } else {
+ returnValue = INode_I::GetInterfacePointerInternal( interfaceID, interfaceVersion, false );
+ if ( returnValue ) return returnValue;
+ }
+ if ( isTopLevel )
+ throw IError_I::CreateInterfaceNotAvailableError(
+ IError_v1::kESOperationFatal, kISimpleNodeID, interfaceID, __FILE__, __LINE__ );
+ return NULL;
+ }
+
+ pcIUTF8String_base APICALL ISimpleNode_I::getValue( pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunctionReturningSharedPointer< ISimpleNode_v1, pcIUTF8String_base, const IUTF8String >(
+ error, this, &ISimpleNode_v1::GetValue, __FILE__, __LINE__ );
+ }
+
+ void APICALL ISimpleNode_I::setValue( const char * value, sizet valueLength, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunctionReturningVoid< ISimpleNode_v1, const char *, sizet >(
+ error, this, &ISimpleNode_v1::SetValue, __FILE__, __LINE__, value, valueLength );
+ }
+
+ uint32 APICALL ISimpleNode_I::isURIType( pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunction< ISimpleNode_v1, uint32, bool >(
+ error, this, 0, &ISimpleNode_v1::IsURIType, __FILE__, __LINE__ );
+ }
+
+ void APICALL ISimpleNode_I::setURIType( uint32 isURI, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunctionReturningVoid< ISimpleNode_v1, bool >(
+ error, this, &ISimpleNode_v1::SetURIType, __FILE__, __LINE__, isURI != 0 );
+ }
+
+}
diff --git a/XMPCore/source/IStructureNode_I.cpp b/XMPCore/source/IStructureNode_I.cpp
new file mode 100644
index 0000000..b07bcec
--- /dev/null
+++ b/XMPCore/source/IStructureNode_I.cpp
@@ -0,0 +1,78 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+
+#include "XMPCore/Interfaces/IStructureNode_I.h"
+#include "XMPCommon/Utilities/TWrapperFunctions_I.h"
+#include "XMPCommon/Interfaces/IError_I.h"
+
+namespace AdobeXMPCore_Int {
+
+ pvoid APICALL IStructureNode_I::GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion ) {
+ return GetInterfacePointerInternal( interfaceID, interfaceVersion, true );
+ }
+
+ pvoid APICALL IStructureNode_I::getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunction< IStructureNode_I, pvoid, pvoid, uint64, uint32 >(
+ error, this, NULL, &IStructureNode_I::GetInterfacePointer, __FILE__, __LINE__, interfaceID, interfaceVersion );
+ }
+
+ pvoid APICALL IStructureNode_I::GetInterfacePointerInternal( uint64 interfaceID, uint32 interfaceVersion, bool isTopLevel ) {
+ if ( interfaceID == kIStructureNodeID ) {
+ switch ( interfaceVersion ) {
+ case 1:
+ return static_cast< IStructureNode_v1 * >( this );
+ break;
+
+ case kInternalInterfaceVersionNumber:
+ return this;
+ break;
+
+ default:
+ throw IError_I::CreateInterfaceVersionNotAvailableError(
+ IError_v1::kESOperationFatal, interfaceID, interfaceVersion, __FILE__, __LINE__ );
+ break;
+ }
+ } else {
+ pvoid returnValue( NULL );
+ returnValue = ICompositeNode_I::GetInterfacePointerInternal( interfaceID, interfaceVersion, false );
+ if ( returnValue ) return returnValue;
+ }
+ if ( isTopLevel )
+ throw IError_I::CreateInterfaceNotAvailableError(
+ IError_v1::kESOperationFatal, kIStructureNodeID, interfaceID, __FILE__, __LINE__ );
+ return NULL;
+ }
+
+ pINode_base APICALL IStructureNode_I::getNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunctionReturningSharedPointer< IStructureNode_v1, pINode_base, INode, const char *, sizet, const char *, sizet >(
+ error, this, &IStructureNode_v1::GetNode, __FILE__, __LINE__, nameSpace, nameSpaceLength, name, nameLength );
+ }
+
+ uint32 APICALL IStructureNode_I::getChildNodeType( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) const __NOTHROW__ {
+ return CallConstUnSafeFunction< IStructureNode_v1, uint32, eNodeType, const char *, sizet, const char *, sizet >(
+ error, this, 0, &IStructureNode_v1::GetChildNodeType, __FILE__, __LINE__, nameSpace, nameSpaceLength, name, nameLength );
+ }
+
+ void APICALL IStructureNode_I::insertNode( pINode_base node, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunctionReturningVoid< IStructureNode_v1, const spINode & >(
+ error, this, &IStructureNode_v1::InsertNode, __FILE__, __LINE__, INode::MakeShared( node ) );
+ }
+
+ pINode_base APICALL IStructureNode_I::removeNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunctionReturningSharedPointer< IStructureNode_v1, pINode_base, INode, const char *, sizet, const char *, sizet >(
+ error, this, &IStructureNode_v1::RemoveNode, __FILE__, __LINE__, nameSpace, nameSpaceLength, name, nameLength );
+ }
+
+ pINode_base APICALL IStructureNode_I::replaceNode( pINode_base node, pcIError_base & error ) __NOTHROW__ {
+ return CallUnSafeFunctionReturningSharedPointer< IStructureNode_v1, pINode_base, INode, const spINode & >(
+ error, this, &IStructureNode_v1::ReplaceNode, __FILE__, __LINE__, INode::MakeShared( node ) );
+ }
+
+}
diff --git a/XMPCore/source/MetadataImpl.cpp b/XMPCore/source/MetadataImpl.cpp
new file mode 100644
index 0000000..f1c659b
--- /dev/null
+++ b/XMPCore/source/MetadataImpl.cpp
@@ -0,0 +1,445 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#define IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED 1
+ #include "XMPCore/ImplHeaders/MetadataImpl.h"
+#undef IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED
+
+#include "XMPCommon/Interfaces/IError_I.h"
+#include "XMPCore/XMPCoreErrorCodes.h"
+#include "XMPCore/Interfaces/INameSpacePrefixMap_I.h"
+#include "XMPCore/Interfaces/IArrayNode_I.h"
+#include "XMPCore/Interfaces/INodeIterator_I.h"
+#include "XMPCore/Interfaces/ISimpleNode_I.h"
+#include "XMPCore/source/XMPCore_Impl.hpp"
+
+#include "XMPCommon/Interfaces/IUTF8String_I.h"
+#include "XMPCommon/Utilities/AutoSharedLock.h"
+#include "XMPCommon/Utilities/TSmartPointers_I.h"
+#include "XMPCommon/Utilities/UTF8String.h"
+
+#include <assert.h>
+
+namespace AdobeXMPCore_Int {
+ static const char * kMetadataNameSpace( "http://metadata" );
+ static const AdobeXMPCommon::sizet kMetadataNameSpaceLength( 15 );
+ static const char * kMetadataLocalName( "_metadata_" );
+ static const AdobeXMPCommon::sizet kMetadataLocalNameLength( 10 );
+
+ MetadataImpl::MetadataImpl()
+ : StructureNodeImpl( kMetadataNameSpace, kMetadataNameSpaceLength, kMetadataLocalName, kMetadataLocalNameLength )
+ , NodeImpl( kMetadataNameSpace, kMetadataNameSpaceLength, kMetadataLocalName, kMetadataLocalNameLength )
+ , mAboutURI( IUTF8String_I::CreateUTF8String() )
+ , mSupportAliases( false ) { }
+
+ spcIUTF8String APICALL MetadataImpl::GetAboutURI() const {
+ AutoSharedLock lock( mSharedMutex );
+ return mAboutURI;
+ }
+
+ void APICALL MetadataImpl::SetAboutURI( const char * uri, sizet uriLength ) __NOTHROW__ {
+ AutoSharedLock lock( mSharedMutex, true );
+ mAboutURI->assign( uri, uriLength );
+ }
+
+ spcIUTF8String APICALL MetadataImpl::GetName() const {
+ return IUTF8String_I::CreateUTF8String();
+ }
+
+ spcIUTF8String APICALL MetadataImpl::GetNameSpace() const {
+ return IUTF8String_I::CreateUTF8String();
+ }
+
+ spINode APICALL MetadataImpl::GetParent() {
+ return spINode();
+ }
+
+ INode::eNodeType APICALL MetadataImpl::GetParentNodeType() const {
+ return INode::kNTNone;
+ }
+
+ void APICALL MetadataImpl::SetName( const char * name, sizet nameLength ) {
+ return;
+ }
+
+ void APICALL MetadataImpl::SetNameSpace( const char * nameSpace, sizet nameSpaceLength ) {
+ return;
+ }
+
+ void APICALL MetadataImpl::ClearContents() {
+ StructureNodeImpl::ClearContents();
+ {
+ AutoSharedLock lock( mSharedMutex, true );
+ mAboutURI->clear();
+ }
+ }
+
+ spINode APICALL MetadataImpl::CloneContents( bool ignoreEmptyNodes, bool ignoreNodesWithOnlyQualifiers, sizet qualifiersCount ) const {
+ spIMetadata newNode = IMetadata::CreateMetadata();
+ auto endIt = mChildrenMap.end();
+ for ( auto it = mChildrenMap.begin(); it != endIt; ++it ) {
+ spINode childNode = it->second->Clone( ignoreEmptyNodes, ignoreNodesWithOnlyQualifiers );
+ if ( childNode ) {
+ newNode->AppendNode( childNode );
+ }
+ }
+ newNode->SetAboutURI( mAboutURI->c_str(), mAboutURI->size() );
+ return newNode;
+ }
+
+ spIMetadata APICALL MetadataImpl::ConvertToMetadata() {
+ return MakeUncheckedSharedPointer( this, __FILE__, __LINE__ );
+ }
+
+ void APICALL MetadataImpl::EnableFeature( const char * key, sizet keyLength ) const __NOTHROW__ {
+ UTF8String keyStr( key, keyLength );
+ if ( keyStr.compare( "alias" ) == 0 )
+ mSupportAliases = true;
+ }
+
+ void APICALL MetadataImpl::DisableFeature( const char * key, sizet keyLength ) const __NOTHROW__ {
+ UTF8String keyStr( key, keyLength );
+ if ( keyStr.compare( "alias" ) == 0 )
+ mSupportAliases = false;
+ }
+
+ bool IsNodeAlias( const char * nameSpace, const char * name, XMP_ExpandedXPath & exPath ) {
+ spIUTF8String qualName = IUTF8String_I::CreateUTF8String();
+ auto defaultMap = INameSpacePrefixMap::GetDefaultNameSpacePrefixMap();
+ spcIUTF8String prefixStr = defaultMap->GetPrefix( nameSpace, AdobeXMPCommon::npos );
+ if ( !prefixStr ) {
+ return false;
+ }
+
+ qualName->append( prefixStr )->append( ":", AdobeXMPCommon::npos )->append( name, AdobeXMPCommon::npos );
+
+ bool aliasFound = sRegisteredAliasMap->count( qualName->c_str() ) > 0;
+ if ( aliasFound ) {
+ exPath = ( *sRegisteredAliasMap )[ qualName->c_str() ];
+ return aliasFound;
+ }
+ return aliasFound;
+ }
+
+ bool HandleConstAlias( const spIMetadata & meta, spINode & destNode, const XMP_ExpandedXPath & expandedXPath, sizet & nodeIndex ) {
+ if ( expandedXPath.empty() ) NOTIFY_ERROR( IError::kEDGeneral, kGECLogicalError, "Empty XPath", IError::kESOperationFatal, false, false );
+
+ if ( !( expandedXPath[ kSchemaStep ].options & kXMP_SchemaNode ) ) {
+ return false;
+ } else {
+ XMP_VarString namespaceName = expandedXPath[ kSchemaStep ].step.c_str();
+ size_t colonPos = expandedXPath[ kRootPropStep ].step.find( ":" );
+ assert( colonPos != std::string::npos );
+ XMP_VarString propertyName = expandedXPath[ kRootPropStep ].step.substr( colonPos + 1 );
+
+ // here find the node with this name
+ destNode = meta->GetNode( namespaceName.c_str(), namespaceName.size(), propertyName.c_str(), propertyName.size() );
+ if ( !destNode ) return false;
+ if ( expandedXPath.size() == 2 ) return true;
+ assert( destNode->GetNodeType() == INode::kNTArray );
+
+ if ( expandedXPath[ 2 ].options == kXMP_ArrayIndexStep ) {
+ assert( expandedXPath[ 2 ].step == "[1]" );
+ destNode = destNode->ConvertToArrayNode()->GetNodeAtIndex( 1 );
+ auto actualNodeType = destNode->GetNodeType();
+ if ( destNode ) {
+ if ( nodeIndex ) nodeIndex = 1;
+ return true;
+ }
+ return false;
+ } else if ( expandedXPath[ 2 ].options == kXMP_QualSelectorStep ) {
+ assert( expandedXPath[ 2 ].step == "[?xml:lang=\"x-default\"]" );
+ if ( !destNode || destNode->GetNodeType() != INode::kNTArray ) return false;
+ spINodeIterator iter = destNode->ConvertToArrayNode()->Iterator();
+ sizet index = 1;
+ while ( iter ) {
+ spINode node = iter->GetNode();
+ try {
+ spISimpleNode qualNode = node->GetSimpleQualifier( "http://www.w3.org/XML/1998/namespace", AdobeXMPCommon::npos, "lang", AdobeXMPCommon::npos );
+ if ( qualNode->GetValue()->compare( "x-default" ) == 0 ) {
+ destNode = node;
+ if ( nodeIndex ) nodeIndex = index;
+ return true;
+ }
+ } catch ( spcIError err ) {
+
+ } catch ( ... ) {}
+ index++;
+ iter = iter->Next();
+ }
+ return false;
+ }
+ return false;
+ }
+ }
+
+ spINode CreateTerminalNode( const char* nameSpace, const char * name, XMP_OptionBits options, const spcINode & nodeToBeCloned = spINode() ) {
+
+ spINode newNode;
+ if ( nodeToBeCloned ) {
+ newNode = nodeToBeCloned->Clone();
+ }
+
+ else if ( XMP_PropIsSimple( options ) ) {
+ newNode = ISimpleNode::CreateSimpleNode( nameSpace, AdobeXMPCommon::npos, name, AdobeXMPCommon::npos );
+ } else if ( XMP_PropIsStruct( options ) ) {
+ newNode = IStructureNode_v1::CreateStructureNode( nameSpace, AdobeXMPCommon::npos, name, AdobeXMPCommon::npos );
+ } else if ( XMP_PropIsArray( options ) ) {
+ if ( options & kXMP_PropArrayIsAltText )
+ newNode = IArrayNode_v1::CreateAlternativeArrayNode( nameSpace, AdobeXMPCommon::npos, name, AdobeXMPCommon::npos );
+ else if ( options & kXMP_PropArrayIsOrdered )
+ newNode = IArrayNode_v1::CreateOrderedArrayNode( nameSpace, AdobeXMPCommon::npos, name, AdobeXMPCommon::npos );
+ else
+ newNode = IArrayNode_v1::CreateUnorderedArrayNode( nameSpace, AdobeXMPCommon::npos, name, AdobeXMPCommon::npos );
+ }
+ return newNode;
+ }
+
+ bool HandleNonConstAlias( const spIMetadata & meta, XMP_ExpandedXPath & expandedXPath, bool createNodes, XMP_OptionBits leafOptions, spINode & destNode, sizet & nodeIndex, bool ignoreLastStep, const spINode & inputNode ) {
+ destNode = meta;
+ spcIUTF8String inputNodeValue;
+ if ( inputNode && inputNode->GetNodeType() == INode::kNTSimple ) {
+
+ inputNodeValue = inputNode->ConvertToSimpleNode()->GetValue();
+ }
+ bool isAliasBeingCreated = expandedXPath.size() == 2;
+ if ( expandedXPath.empty() )
+ NOTIFY_ERROR( IError::kEDDataModel, kDMECBadXPath, "Empty XPath", IError::kESOperationFatal, false, false );
+ if ( !( expandedXPath[ kSchemaStep ].options & kXMP_SchemaNode ) ) {
+ return false;
+ } else {
+ XMP_VarString namespaceName = expandedXPath[ kSchemaStep ].step.c_str();
+ size_t colonPos = expandedXPath[ kRootPropStep ].step.find( ":" );
+ assert( colonPos != std::string::npos );
+ XMP_VarString propertyName = expandedXPath[ kRootPropStep ].step.substr( colonPos + 1 );
+ spcINode childNode = meta->GetNode( namespaceName.c_str(), namespaceName.size(), propertyName.c_str(), propertyName.size() );
+ if ( !childNode && !createNodes ) return false;
+ if ( expandedXPath.size() == 2 ) {
+ if ( childNode ) return true;
+ XMP_OptionBits createOptions = 0;
+ spINode tempNode;
+ if ( isAliasBeingCreated ) tempNode = CreateTerminalNode( namespaceName.c_str(), propertyName.c_str(), leafOptions );
+ else tempNode = CreateTerminalNode( namespaceName.c_str(), propertyName.c_str(), createOptions );
+ if ( !tempNode ) return false;
+ if ( inputNodeValue ) tempNode->ConvertToSimpleNode()->SetValue( inputNodeValue->c_str(), inputNodeValue->size() );
+ if ( destNode == meta ) {
+ meta->InsertNode( tempNode );
+ } else {
+ destNode->ConvertToStructureNode()->AppendNode( tempNode );
+ }
+ destNode = tempNode;
+ if ( destNode ) return true;
+ return false;
+ }
+
+ XMP_Assert( expandedXPath.size() == 3 );
+ if ( expandedXPath[ 2 ].options == kXMP_ArrayIndexStep ) {
+ XMP_Assert( expandedXPath[ 2 ].step == "[1]" );
+ destNode = meta->GetNode( namespaceName.c_str(), namespaceName.size(), propertyName.c_str(), propertyName.size() );
+ if ( !destNode && !createNodes ) return false;
+ if ( !destNode ) {
+ spINode arrayNode = CreateTerminalNode( namespaceName.c_str(), propertyName.c_str(), kXMP_PropArrayIsOrdered | kXMP_PropValueIsArray );
+ meta->AppendNode( arrayNode );
+ destNode = arrayNode;
+ }
+
+ if ( destNode->ConvertToArrayNode()->GetNodeAtIndex( 1 ) ) {
+ destNode = destNode->ConvertToArrayNode()->GetNodeAtIndex( 1 );
+ if ( nodeIndex ) nodeIndex = 1;
+ return true;
+ } else {
+ spISimpleNode indexNode = ISimpleNode::CreateSimpleNode( namespaceName.c_str(), namespaceName.size(), propertyName.c_str(), propertyName.size() );
+ if ( inputNodeValue ) {
+ indexNode->SetValue( inputNodeValue->c_str(), inputNodeValue->size() );
+ }
+ destNode->ConvertToArrayNode()->InsertNodeAtIndex( indexNode, 1 );
+ destNode = indexNode;
+ return true;
+ }
+ return false;
+ } else if ( expandedXPath[ 2 ].options == kXMP_QualSelectorStep ) {
+ assert( expandedXPath[ 2 ].step == "[?xml:lang=\"x-default\"]" );
+ destNode = meta->GetNode( namespaceName.c_str(), namespaceName.size(), propertyName.c_str(), propertyName.size() );
+ if ( !destNode && !createNodes ) return false;
+ spINode arrayNode = CreateTerminalNode( namespaceName.c_str(), propertyName.c_str(), kXMP_PropValueIsArray | kXMP_PropArrayIsAltText);
+ meta->AppendNode( arrayNode );
+ destNode = arrayNode;
+ auto iter = destNode->ConvertToArrayNode()->Iterator();
+ XMP_Index index = 1;
+ while ( iter ) {
+ spINode node = iter->GetNode();
+ spINode qualNode = node->GetQualifier( "http://www.w3.org/XML/1998/namespace", AdobeXMPCommon::npos, "lang", AdobeXMPCommon::npos );
+ if ( qualNode->GetNodeType() == INode::kNTSimple ) {
+ if ( !qualNode->ConvertToSimpleNode()->GetValue()->compare( "x-default" ) ) {
+ destNode = node;
+ if ( nodeIndex ) nodeIndex = index;
+ return true;
+ }
+ }
+ index++;
+ iter = iter->Next();
+ }
+ spISimpleNode qualifierNode = ISimpleNode::CreateSimpleNode( "http://www.w3.org/XML/1998/namespace", AdobeXMPCommon::npos, "lang", AdobeXMPCommon::npos, "x-default", AdobeXMPCommon::npos );
+ if ( destNode->ConvertToArrayNode()->GetNodeAtIndex( 1 ) ) {
+ destNode = destNode->ConvertToArrayNode()->GetNodeAtIndex( 1 );
+ if ( nodeIndex ) nodeIndex = 1;
+ destNode->InsertQualifier( qualifierNode );
+ return true;
+ } else {
+ spISimpleNode indexNode = ISimpleNode::CreateSimpleNode( namespaceName.c_str(), AdobeXMPCommon::npos, propertyName.c_str(), AdobeXMPCommon::npos );
+ if ( inputNodeValue ) {
+ indexNode->SetValue( inputNodeValue->c_str(), inputNodeValue->size() );
+ }
+ destNode->ConvertToArrayNode()->InsertNodeAtIndex( indexNode, 1 );
+ destNode->InsertQualifier( qualifierNode );
+ destNode = indexNode;
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+
+ spINode APICALL MetadataImpl::ReplaceNode( const spINode & node ) {
+ if ( mSupportAliases ) {
+ XMP_ExpandedXPath exPath;
+ QualifiedName qName( node->GetNameSpace(), node->GetName() );
+ bool nodeIsAlias = IsNodeAlias( node->GetNameSpace()->c_str(), node->GetName()->c_str(), exPath );
+ if ( nodeIsAlias ) {
+ spINode actualNodeToBeRemoved;
+ sizet nodeIndex = 0;
+ auto spSelf = MakeUncheckedSharedPointer( this, __FILE__, __LINE__, false );
+ if ( HandleConstAlias( spSelf, actualNodeToBeRemoved, exPath, nodeIndex ) ) {
+ qName = QualifiedName( actualNodeToBeRemoved->GetNameSpace(), actualNodeToBeRemoved->GetName() );
+ }
+ }
+
+ if ( CheckSuitabilityToBeUsedAsChildNode( node ) && GetNode( qName.mNameSpace, qName.mName ) ) {
+ auto retValue = RemoveNode( qName.mNameSpace, qName.mName );
+ spINode destNode = node;
+ if ( nodeIsAlias ) {
+ sizet destNodeIndex = 0;
+ auto spSelf = MakeUncheckedSharedPointer( this, __FILE__, __LINE__, false );
+ if ( !HandleNonConstAlias( spSelf, exPath, true, 0, destNode, destNodeIndex, false, node ) ) {
+ return destNode;
+ }
+ }
+ InsertNode( destNode );
+ return retValue;
+ } else {
+ NOTIFY_ERROR( IError_v1::kEDDataModel, kDMECNoSuchNodeExists,
+ "no such node exists with the specified qualified name", IError_v1::kESOperationFatal,
+ true, node->GetNameSpace(), true, node->GetName() );
+ }
+ return spINode();
+ } else {
+ return StructureNodeImpl::ReplaceNode( node );
+ }
+ }
+
+ void APICALL MetadataImpl::InsertNode( const spINode & node ) {
+
+ if ( mSupportAliases ) {
+ if ( !node ) return;
+ XMP_ExpandedXPath exPath;
+ if ( IsNodeAlias( node->GetNameSpace()->c_str(), node->GetName()->c_str(), exPath ) ) {
+
+ spINode destNode;
+ sizet destNodeIndex = 0;
+ AutoSharedLock lock( mSharedMutex, true );
+ auto spSelf = MakeUncheckedSharedPointer(this, __FILE__, __LINE__, false);
+ if ( HandleNonConstAlias( spSelf, exPath, true, 0, destNode, destNodeIndex, false, node ) ) {
+ }
+ } else {
+
+ return StructureNodeImpl::InsertNode( node );
+ }
+ } else {
+ return StructureNodeImpl::InsertNode( node );
+ }
+
+ return;
+ }
+
+ spINode APICALL MetadataImpl::RemoveNode( const spcIUTF8String & nameSpace, const spcIUTF8String & name ) {
+ if ( mSupportAliases ) {
+ XMP_ExpandedXPath exPath;
+ if (IsNodeAlias(nameSpace->c_str(), name->c_str(), exPath)) {
+ spINode destNode;
+ sizet destNodeIndex = 0;
+ auto spSelf = MakeUncheckedSharedPointer(this, __FILE__, __LINE__, false);
+ AutoSharedLock lock(mSharedMutex, true);
+ /*if (!HandleConstAlias(spSelf, destNode, exPath, destNodeIndex)) {
+ destNode = spINode();
+ }
+ return destNode;*/
+ if (!HandleConstAlias(spSelf, destNode, exPath, destNodeIndex)) {
+ destNode = spINode();
+ return destNode;
+ }
+ else
+ {
+ return StructureNodeImpl::RemoveNode(destNode->GetNameSpace(), destNode->GetName());
+ }
+
+
+ }
+ else {
+
+ //return StructureNodeImpl::GetNode(nameSpace, name);
+ return StructureNodeImpl::RemoveNode(nameSpace, name);
+ }
+
+ } else {
+ return StructureNodeImpl::RemoveNode( nameSpace, name );
+ }
+ }
+
+ spINode APICALL MetadataImpl::GetNode( const spcIUTF8String & nameSpace, const spcIUTF8String & name ) {
+ if ( mSupportAliases ) {
+ XMP_ExpandedXPath exPath;
+ if (IsNodeAlias(nameSpace->c_str(), name->c_str(), exPath)) {
+ spINode destNode;
+ sizet destNodeIndex = 0;
+ AutoSharedLock lock(mSharedMutex, true);
+ auto spSelf = MakeUncheckedSharedPointer(this, __FILE__, __LINE__, false);
+ if (!HandleConstAlias(spSelf, destNode, exPath, destNodeIndex)) {
+ destNode = spINode();
+ }
+ return destNode;
+ }
+ else {
+
+ return StructureNodeImpl::GetNode(nameSpace, name);
+ }
+
+ } else {
+ return StructureNodeImpl::GetNode( nameSpace, name );
+ }
+ }
+
+}
+
+#if BUILDING_XMPCORE_LIB || SOURCE_COMPILING_XMPCORE_LIB
+namespace AdobeXMPCore {
+ using namespace AdobeXMPCore_Int;
+
+ spIMetadata IMetadata::CreateMetadata() {
+ return MakeUncheckedSharedPointer( new MetadataImpl(), __FILE__, __LINE__, true );
+ }
+
+ spIMetadata IMetadata_v1::MakeShared( pIMetadata_base ptr ) {
+ if ( !ptr ) return spIMetadata();
+ pIMetadata p = IMetadata::GetInterfaceVersion() > 1 ? ptr->GetInterfacePointer< IMetadata >() : ptr;
+ return XMP_COMPONENT_INT_NAMESPACE::MakeUncheckedSharedPointer( p, __FILE__, __LINE__, true );
+ }
+
+}
+#endif // BUILDING_XMPCORE_LIB || SOURCE_COMPILING_XMPCORE_LIB
diff --git a/XMPCore/source/NameSpacePrefixMapImpl.cpp b/XMPCore/source/NameSpacePrefixMapImpl.cpp
new file mode 100644
index 0000000..f95967e
--- /dev/null
+++ b/XMPCore/source/NameSpacePrefixMapImpl.cpp
@@ -0,0 +1,311 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#define IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED 1
+ #include "XMPCore/ImplHeaders/NameSpacePrefixMapImpl.h"
+#undef IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED
+
+#include "XMPCommon/Interfaces/IUTF8String_I.h"
+#include "XMPCommon/Interfaces/IError_I.h"
+#include "XMPCommon/Utilities/AutoSharedLock.h"
+#include "XMPCommon/Utilities/TSmartPointers_I.h"
+
+#include "source/XMP_LibUtils.hpp"
+#include "source/UnicodeInlines.incl_cpp"
+
+#include "XMPCore/XMPCoreErrorCodes.h"
+#include <cstring>
+
+namespace AdobeXMPCore_Int {
+
+ static sizet ActualLength( const char * parameter, sizet length ) {
+ if ( length == npos && parameter ) return strlen( parameter );
+ return length;
+ }
+
+ static bool VerifyParameters( bool prefixPresent, bool nameSpacePresent, const spcIUTF8String & prefix, const spcIUTF8String & nameSpace ) {
+ bool allOk = true;
+ if ( prefixPresent ) {
+ if ( !prefix ) {
+ NOTIFY_WARNING( IError_v1::kEDGeneral, kGECParametersNotAsExpected, "prefix is NULL", false, false );
+ allOk = false;
+ } else {
+ if ( prefix->size() == 0) {
+ NOTIFY_WARNING( IError_v1::kEDGeneral, kGECParametersNotAsExpected, "prefixLength is 0", false, false );
+ allOk = false;
+ }
+ }
+ }
+
+ if ( nameSpacePresent ) {
+ if ( !nameSpace ) {
+ if ( !nameSpace ) {
+ NOTIFY_WARNING( IError_v1::kEDGeneral, kGECParametersNotAsExpected, "nameSpace is NULL", false, false );
+ allOk = false;
+ } else {
+ if ( nameSpace->size() == 0 ) {
+ NOTIFY_WARNING( IError_v1::kEDGeneral, kGECParametersNotAsExpected, "nameSpaceLength is 0", false, false );
+ allOk = false;
+ }
+ }
+ }
+ }
+
+ return allOk;
+ }
+
+ static bool VerifyParameters( bool prefixPresent, bool nameSpacePresent, const char * prefix, const char * nameSpace, sizet prefixLength, sizet nameSpaceLength ) {
+ bool allOk = true;
+ if ( prefixPresent ) {
+ if ( !prefix ) {
+ NOTIFY_WARNING( IError_v1::kEDGeneral, kGECParametersNotAsExpected, "prefix is NULL", true, ( void * ) prefix );
+ allOk = false;
+ } else {
+ if ( prefixLength == npos ) prefixLength = strlen( prefix );
+ if ( prefixLength == 0 ) {
+ NOTIFY_WARNING( IError_v1::kEDGeneral, kGECParametersNotAsExpected, "prefixLength is 0", true, prefixLength );
+ allOk = false;
+ }
+ }
+ }
+
+ if ( nameSpacePresent ) {
+ if ( !nameSpace ) {
+ NOTIFY_WARNING( IError_v1::kEDGeneral, kGECParametersNotAsExpected, "nameSpace is NULL", true, ( void * ) nameSpace );
+ allOk = false;
+ } else {
+ if ( nameSpaceLength == npos ) nameSpaceLength = strlen( nameSpace );
+ if ( nameSpaceLength == 0 ) {
+ NOTIFY_WARNING( IError_v1::kEDGeneral, kGECParametersNotAsExpected, "nameSpaceLength is 0", true, nameSpaceLength );
+ allOk = false;
+ }
+ }
+ }
+
+ return allOk;
+ }
+
+ NameSpacePrefixMapImpl::NameSpacePrefixMapImpl() {}
+
+ // All virtual functions
+ bool APICALL NameSpacePrefixMapImpl::Insert( const char * prefix, sizet prefixLength, const char * nameSpace, sizet nameSpaceLength ) {
+ if ( VerifyParameters( true, true, prefix, nameSpace, prefixLength, nameSpaceLength ) ) {
+ prefixLength = ActualLength( prefix, prefixLength );
+ nameSpaceLength = ActualLength( nameSpace, nameSpaceLength );
+ try {
+ VerifySimpleXMLName( prefix, prefix + prefixLength );
+ } catch ( ... ) {
+ NOTIFY_ERROR( IError_v1::kEDDataModel, kDMECBadXPath, "prefix is not a valid XML Name", IError_v1::kESOperationFatal, true, prefix );
+ return false;
+ }
+ spcIUTF8String prefixStr = IUTF8String_I::CreateUTF8String( prefix, prefixLength );
+ spcIUTF8String nameSpaceStr = IUTF8String_I::CreateUTF8String( nameSpace, nameSpaceLength );
+
+ AutoSharedLock( mSharedMutex, true );
+
+ // remove old entries
+ if ( mPrefixToNameSpaceMap.find( prefixStr ) != mPrefixToNameSpaceMap.end() ) {
+ spcIUTF8String oldValue = mPrefixToNameSpaceMap[ prefixStr ];
+ mPrefixToNameSpaceMap.erase( prefixStr );
+ mNameSpaceToPrefixMap.erase( oldValue );
+ }
+
+ if ( mNameSpaceToPrefixMap.find( nameSpaceStr ) != mNameSpaceToPrefixMap.end() ) {
+ spcIUTF8String oldValue = mNameSpaceToPrefixMap[ nameSpaceStr ];
+ mPrefixToNameSpaceMap.erase( oldValue );
+ mNameSpaceToPrefixMap.erase( nameSpaceStr );
+ }
+
+ mNameSpaceToPrefixMap[ nameSpaceStr ] = prefixStr;
+ mPrefixToNameSpaceMap[ prefixStr ] = nameSpaceStr;
+ return true;
+ }
+ return false;
+ }
+
+ bool APICALL NameSpacePrefixMapImpl::RemovePrefix( const char * prefix, sizet prefixLength ) {
+ if ( VerifyParameters( true, false, prefix, NULL, prefixLength, 0 ) ) {
+ spcIUTF8String prefixStr = IUTF8String_I::CreateUTF8String( prefix, prefixLength );
+ AutoSharedLock lock( mSharedMutex, true );
+ if ( mPrefixToNameSpaceMap.find( prefixStr ) != mPrefixToNameSpaceMap.end() ) {
+ spcIUTF8String nameSpaceStr = mPrefixToNameSpaceMap[ prefixStr ];
+ mPrefixToNameSpaceMap.erase( prefixStr );
+ mNameSpaceToPrefixMap.erase( nameSpaceStr );
+ return true;
+ }
+ }
+ return false;
+ }
+
+ bool APICALL NameSpacePrefixMapImpl::RemoveNameSpace( const char * nameSpace, sizet nameSpaceLength ) {
+ if ( VerifyParameters( false, true, NULL, nameSpace, 0, nameSpaceLength ) ) {
+ spcIUTF8String nameSpaceStr = IUTF8String_I::CreateUTF8String( nameSpace, nameSpaceLength );
+ AutoSharedLock lock( mSharedMutex, true );
+ if ( mNameSpaceToPrefixMap.find( nameSpaceStr ) != mNameSpaceToPrefixMap.end() ) {
+ spcIUTF8String prefixStr = mNameSpaceToPrefixMap[ nameSpaceStr ];
+ mPrefixToNameSpaceMap.erase( prefixStr );
+ mNameSpaceToPrefixMap.erase( nameSpaceStr );
+ return true;
+ }
+ }
+ return false;
+ }
+
+ bool APICALL NameSpacePrefixMapImpl::IsPrefixPresent( const char * prefix, sizet prefixLength ) const {
+ if ( VerifyParameters( true, false, prefix, NULL, prefixLength, 0 ) ) {
+ spcIUTF8String prefixStr = IUTF8String_I::CreateUTF8String( prefix, prefixLength );
+ AutoSharedLock lock( mSharedMutex, true );
+ return mPrefixToNameSpaceMap.find( prefixStr ) != mPrefixToNameSpaceMap.end();
+ }
+ return false;
+ }
+
+ bool APICALL NameSpacePrefixMapImpl::IsNameSpacePresent( const char * nameSpace, sizet nameSpaceLength ) const {
+ if ( VerifyParameters( false, true, NULL, nameSpace, 0, nameSpaceLength ) ) {
+ spcIUTF8String nameSpaceStr = IUTF8String_I::CreateUTF8String( nameSpace, nameSpaceLength );
+ AutoSharedLock lock( mSharedMutex, true );
+ return mNameSpaceToPrefixMap.find( nameSpaceStr ) != mNameSpaceToPrefixMap.end();
+ }
+ return false;
+ }
+
+ spcIUTF8String APICALL NameSpacePrefixMapImpl::GetNameSpace( const char * prefix, sizet prefixLength ) const {
+ if ( VerifyParameters( true, false, prefix, NULL, prefixLength, 0 ) ) {
+ spcIUTF8String prefixStr = IUTF8String_I::CreateUTF8String( prefix, prefixLength );
+ AutoSharedLock lock( mSharedMutex, true );
+ auto it = mPrefixToNameSpaceMap.find( prefixStr );
+ if ( it != mPrefixToNameSpaceMap.end() )
+ return it->second;
+ }
+ return spcIUTF8String();
+ }
+
+ spcIUTF8String APICALL NameSpacePrefixMapImpl::GetNameSpace( const spcIUTF8String & prefix ) const {
+ if ( VerifyParameters( true, false, prefix, spcIUTF8String() ) ) {
+ AutoSharedLock lock( mSharedMutex, true );
+ auto it = mPrefixToNameSpaceMap.find( prefix );
+ if ( it != mPrefixToNameSpaceMap.end() )
+ return it->second;
+ }
+ return spcIUTF8String();
+ }
+
+ spcIUTF8String APICALL NameSpacePrefixMapImpl::GetPrefix( const char * nameSpace, sizet nameSpaceLength ) const {
+ if ( VerifyParameters( false, true, NULL, nameSpace, 0, nameSpaceLength ) ) {
+ spcIUTF8String nameSpaceStr = IUTF8String_I::CreateUTF8String( nameSpace, nameSpaceLength );
+ AutoSharedLock lock( mSharedMutex, true );
+ auto it = mNameSpaceToPrefixMap.find( nameSpaceStr );
+ if ( it != mNameSpaceToPrefixMap.end() )
+ return it->second;
+ }
+ return spcIUTF8String();
+ }
+
+ spcIUTF8String APICALL NameSpacePrefixMapImpl::GetPrefix( const spcIUTF8String & nameSpace ) const {
+ if ( VerifyParameters( false, true, spcIUTF8String(), nameSpace ) ) {
+ AutoSharedLock lock( mSharedMutex, true );
+ auto it = mNameSpaceToPrefixMap.find( nameSpace );
+ if ( it != mNameSpaceToPrefixMap.end() )
+ return it->second;
+ }
+ return spcIUTF8String();
+ }
+
+ sizet APICALL NameSpacePrefixMapImpl::Size() const __NOTHROW__ {
+ AutoSharedLock lock( mSharedMutex, false );
+ return mNameSpaceToPrefixMap.size();
+ }
+
+ void APICALL NameSpacePrefixMapImpl::Clear() __NOTHROW__ {
+ AutoSharedLock lock( mSharedMutex, true );
+ mNameSpaceToPrefixMap.clear();
+ mPrefixToNameSpaceMap.clear();
+ }
+
+ spINameSpacePrefixMap APICALL NameSpacePrefixMapImpl::Clone() const {
+ NameSpacePrefixMapImpl * ptr = new NameSpacePrefixMapImpl();
+ if ( !ptr )
+ NOTIFY_ERROR( IError_v1::kEDMemoryManagement, kMMECAllocationFailure, "Unable to allocate required memory", IError_v1::kESProcessFatal, false, false );
+ AutoSharedLock lock( mSharedMutex, false );
+
+ // Replacing the shallow copy with deep copy
+ auto iterator = mPrefixToNameSpaceMap.begin();
+ while ( iterator != mPrefixToNameSpaceMap.end() ) {
+ ptr->mPrefixToNameSpaceMap[ iterator->first ] = iterator->second;
+ iterator++;
+ }
+
+ iterator = mNameSpaceToPrefixMap.begin();
+ while ( iterator != mNameSpaceToPrefixMap.end() ) {
+ ptr->mNameSpaceToPrefixMap[ iterator->first ] = iterator->second;
+ iterator++;
+ }
+
+ return MakeUncheckedSharedPointer( ptr, __FILE__, __LINE__ );
+ }
+
+ void APICALL NameSpacePrefixMapImpl::Merge( const spcINameSpacePrefixMap & otherMap ) {
+ if ( otherMap ) {
+ const NameSpacePrefixMapImpl * otherMapPtr = dynamic_cast< const NameSpacePrefixMapImpl * >( otherMap.get() );
+ for (auto it = otherMapPtr->mPrefixToNameSpaceMap.begin(), itEnd = otherMapPtr->mPrefixToNameSpaceMap.end(); it != itEnd; ++it) {
+ Insert( it->first->c_str(), it->first->size(), it->second->c_str(), it->second->size() );
+ }
+ }
+ }
+
+ // All static functions of _I class.
+
+ static spINameSpacePrefixMap ManageDefaultNameSpacePrefixMap( bool destroy = false ) {
+ static spINameSpacePrefixMap sDefaultNameSpacePrefixMap;
+ if ( destroy ) {
+ sDefaultNameSpacePrefixMap.reset();
+ } else {
+ if ( !sDefaultNameSpacePrefixMap ) {
+ sDefaultNameSpacePrefixMap = INameSpacePrefixMap_I::CreateNameSpacePrefixMap();
+ sDefaultNameSpacePrefixMap->EnableThreadSafety();
+ }
+ }
+ return sDefaultNameSpacePrefixMap;
+ }
+
+ void INameSpacePrefixMap_I::CreateDefaultNameSpacePrefixMap() {
+ ManageDefaultNameSpacePrefixMap( false );
+ }
+
+ void INameSpacePrefixMap_I::DestroyDefaultNameSapcePrefixMap() {
+ ManageDefaultNameSpacePrefixMap( true );
+ }
+
+ bool INameSpacePrefixMap_I::InsertInDefaultNameSpacePrefixMap( const char * prefix, sizet prefixLength, const char * nameSpace, sizet nameSpaceLength ) {
+ return ManageDefaultNameSpacePrefixMap( false )->Insert( prefix, prefixLength, nameSpace, nameSpaceLength );
+ }
+}
+
+#if BUILDING_XMPCORE_LIB || SOURCE_COMPILING_XMPCORE_LIB
+
+namespace AdobeXMPCore {
+ using AdobeXMPCore_Int::MakeUncheckedSharedPointer;
+
+ spINameSpacePrefixMap INameSpacePrefixMap_v1::CreateNameSpacePrefixMap() {
+ return MakeUncheckedSharedPointer( new AdobeXMPCore_Int::NameSpacePrefixMapImpl(), __FILE__, __LINE__, true );
+ }
+
+ spcINameSpacePrefixMap INameSpacePrefixMap_v1::GetDefaultNameSpacePrefixMap() {
+ return AdobeXMPCore_Int::ManageDefaultNameSpacePrefixMap( false );
+ }
+
+ spINameSpacePrefixMap INameSpacePrefixMap_v1::MakeShared( pINameSpacePrefixMap_base ptr ) {
+ if ( !ptr ) return spINameSpacePrefixMap();
+ pINameSpacePrefixMap p = INameSpacePrefixMap::GetInterfaceVersion() > 1 ? ptr->GetInterfacePointer< INameSpacePrefixMap >() : ptr;
+ return MakeUncheckedSharedPointer( p, __FILE__, __LINE__, false );
+ }
+}
+
+#endif // BUILDING_XMPCORE_LIB || SOURCE_COMPILING_XMPCORE_LIB
+
diff --git a/XMPCore/source/NodeImpl.cpp b/XMPCore/source/NodeImpl.cpp
new file mode 100644
index 0000000..46375cc
--- /dev/null
+++ b/XMPCore/source/NodeImpl.cpp
@@ -0,0 +1,479 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#define IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED 1
+ #include "XMPCore/ImplHeaders/NodeImpl.h"
+#undef IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED
+
+#include "XMPCommon/Interfaces/IError_I.h"
+#include "XMPCore/XMPCoreErrorCodes.h"
+#include "XMPCommon/Interfaces/IUTF8String_I.h"
+#include "XMPCommon/Utilities/AutoSharedLock.h"
+#include "XMPCommon/Utilities/TSmartPointers_I.h"
+#include "XMPCore/Interfaces/IPath.h"
+#include "XMPCore/Interfaces/IPathSegment_I.h"
+#include "XMPCore/Interfaces/IStructureNode_I.h"
+
+#include "source/XMP_LibUtils.hpp"
+#include "source/UnicodeInlines.incl_cpp"
+#include <cstring>
+#include <algorithm>
+
+namespace AdobeXMPCore_Int {
+
+ // All virtual functions
+ static bool VerifyNameSpace( const char * nameSpace, sizet nameSpaceLength ) {
+ if ( ( nameSpace == NULL ) || ( nameSpaceLength == 0 ) || ( nameSpaceLength == AdobeXMPCommon::npos && strlen( nameSpace ) == 0 ) ) {
+ NOTIFY_ERROR( IError_v1::kEDGeneral, kGECParametersNotAsExpected,
+ "nameSpace can't be null or empty", IError_v1::kESOperationFatal,
+ true, ( void * ) nameSpace, true, nameSpaceLength, nameSpace, nameSpace );
+ return false;
+ }
+ return true;
+ }
+
+ static bool VerifyName( const char * name, sizet nameLength ) {
+ if ( ( name == NULL ) || ( nameLength == 0 ) || ( nameLength == AdobeXMPCommon::npos && strlen( name ) == 0 ) ) {
+ NOTIFY_ERROR( IError_v1::kEDGeneral, kGECParametersNotAsExpected,
+ "name can't be null or empty", IError_v1::kESOperationFatal,
+ true, ( void * ) name, true, nameLength, name, name );
+ return false;
+ }
+ if ( nameLength == AdobeXMPCommon::npos ) nameLength = strlen( name );
+ try {
+ if ( nameLength != 2 && strncmp( name, "[]", 2 ) != 0 )
+ VerifySimpleXMLName( name, name + nameLength );
+ } catch ( ... ) {
+ NOTIFY_ERROR( IError_v1::kEDDataModel, kDMECBadXPath,
+ "name is not a valid XML Name", IError_base::kESOperationFatal,
+ true, name );
+ return false;
+ }
+ return true;
+ }
+
+ static spcIPathSegment CreatePathSegmentToParent( pcINode node ) {
+ if ( node->IsQualifierNode() ) {
+ return IPathSegment_I::CreateQualifierPathSegment( node->GetNameSpace(), node->GetName() );
+ }
+ if ( node->IsArrayItem() ) {
+ return IPathSegment_I::CreateArrayIndexPathSegment( node->GetNameSpace(), node->GetIndex() );
+ }
+ return IPathSegment_I::CreatePropertyPathSegment( node->GetNameSpace(), node->GetName() );
+ }
+
+ static const char * kQualifierNodeNameSpace( "http://qualifiers" );
+ static const AdobeXMPCommon::sizet kQualifiersNodeNameSpaceLength( 17 );
+ static const char * kQualifierNodeLocalName( "_qualifiers_" );
+ static const AdobeXMPCommon::sizet kQualifierNodeLocalNameLength( 12 );
+
+ NodeImpl::NodeImpl( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength )
+ : mNameSpace( IUTF8String_I::CreateUTF8String( nameSpace, nameSpaceLength ) )
+ , mName( IUTF8String_I::CreateUTF8String( name, nameLength ) )
+ , mIndex( 0 )
+ , mpParent( NULL )
+ , mspParent()
+ , mChangeCount( 0 )
+ , mIsQualifierNode( false )
+ {
+ VerifyNameSpace( nameSpace, nameSpaceLength );
+ VerifyName( name, nameLength );
+ }
+
+ void APICALL NodeImpl::ChangeParent( pINode parent ) {
+ AutoSharedLock lock( mSharedMutex, true );
+ if ( mspParent ) {
+ if ( mspParent.get() == parent ) {
+ return;
+ } else {
+ mspParent.reset();
+ if ( mChangeCount > 1 ) {
+ mpParent->GetINode_I()->UnRegisterChange();
+ if ( parent ) parent->GetINode_I()->RegisterChange();
+ }
+ mpParent = parent;
+ updateParentSharedPointer();
+ }
+ } else {
+ if ( mChangeCount > 1 ) {
+ if ( mpParent ) mpParent->GetINode_I()->UnRegisterChange();
+ if ( parent ) parent->GetINode_I()->RegisterChange();
+ }
+ if ( parent ) parent->GetINode_I()->RegisterChange();
+ mpParent = parent;
+ updateParentSharedPointer();
+ }
+
+ if ( !mpParent ) {
+ mIsQualifierNode = false;
+ mIndex = 0;
+ }
+ }
+
+ pINode APICALL NodeImpl::GetRawParentPointer() {
+ AutoSharedLock lock( mSharedMutex );
+ return mpParent;
+ }
+
+ spINode APICALL NodeImpl::GetParent() {
+ AutoSharedLock lock( mSharedMutex );
+ if ( mpParent ) {
+ if ( mIsQualifierNode )
+ return MakeUncheckedSharedPointer( mpParent->GetINode_I()->GetRawParentPointer(), __FILE__, __LINE__ );
+ else
+ return MakeUncheckedSharedPointer( mpParent, __FILE__, __LINE__ );
+ }
+ else
+ return spINode();
+ }
+
+ void APICALL NodeImpl::SetName( const char * name, sizet nameLength ) {
+ if ( VerifyName( name, nameLength ) ) {
+ spIUTF8String newName = IUTF8String_I::CreateUTF8String( name, nameLength );
+ if ( mName->compare( newName ) == 0 ) return;
+ if ( mpParent ) {
+ if ( mpParent->GetINode_I()->ValidateNameOrNameSpaceChangeForAChild( mNameSpace, mName, mNameSpace, newName ) ) {
+ AutoSharedLock( mSharedMutex, true );
+ mName = newName;
+ RegisterChange();
+ } else {
+ NOTIFY_ERROR( IError_v1::kEDDataModel, kDMECNodeAlreadyExists,
+ "One of the sibling have same name and nameSpace combination", IError_v1::kESOperationFatal,
+ true, mNameSpace->c_str(), true, mName->c_str(), true, mNameSpace->c_str(), true, newName->c_str() );
+ }
+ } else {
+ AutoSharedLock( mSharedMutex, true );
+ mName = newName;
+ RegisterChange();
+ }
+ }
+ }
+
+ spcIUTF8String APICALL NodeImpl::GetName() const {
+ if ( this->IsArrayItem() )
+ return mpParent->GetName();
+ AutoSharedLock lock( mSharedMutex );
+ return mName;
+ }
+
+ void APICALL NodeImpl::SetNameSpace( const char * nameSpace, sizet nameSpaceLength ) {
+ if ( VerifyNameSpace( nameSpace, nameSpaceLength ) ) {
+ spIUTF8String newNameSpace = IUTF8String_I::CreateUTF8String( nameSpace, nameSpaceLength );
+ if ( mNameSpace->compare( newNameSpace ) == 0 ) return;
+ if ( mpParent ) {
+ if ( mpParent->GetINode_I()->ValidateNameOrNameSpaceChangeForAChild( mNameSpace, mName, newNameSpace, mName ) ) {
+ AutoSharedLock( mSharedMutex, true );
+ mNameSpace = newNameSpace;
+ RegisterChange();
+ } else {
+ NOTIFY_ERROR( IError_v1::kEDDataModel, kDMECNodeAlreadyExists,
+ "One of the sibling have same name and nameSpace combination", IError_v1::kESOperationFatal,
+ true, mNameSpace->c_str(), true, mName->c_str(), true, newNameSpace->c_str(), true, mName->c_str() );
+ }
+ } else {
+ AutoSharedLock( mSharedMutex, true );
+ mNameSpace = newNameSpace;
+ RegisterChange();
+ }
+ }
+ }
+
+ spcIUTF8String APICALL NodeImpl::GetNameSpace() const {
+ if ( this->IsArrayItem() )
+ return( mpParent->GetNameSpace() );
+ AutoSharedLock lock( mSharedMutex );
+ return mNameSpace;
+ }
+
+ spIPath APICALL NodeImpl::GetPath() const {
+ typedef std::vector< pcINode, TAllocator< pcINode > > pcINodeList;
+ pcINodeList pathToParent;
+
+ pcINode node = this;
+
+ while ( node != NULL ) {
+ pcINode_I node_I = node->GetINode_I();
+ if ( node_I->IsQualifierNode() ) {
+ node = node_I->GetRawParentPointer();
+ continue;
+ }
+ pathToParent.push_back( node );
+ node = node_I->GetRawParentPointer();
+ }
+
+ // reverse the array
+ std::reverse( pathToParent.begin(), pathToParent.end() );
+ spIPath xmpPath = IPath::CreatePath();
+ pcINode parent = NULL;
+
+ sizet nElements = pathToParent.size();
+ for ( sizet i = 0; i < nElements; i++ ) {
+ if ( pathToParent[ i ]->GetINode_I()->GetRawParentPointer() == NULL ) {
+ continue;
+ }
+
+ spcIPathSegment segment = CreatePathSegmentToParent( pathToParent[ i ] );
+
+ if ( segment ) {
+ xmpPath->AppendPathSegment( segment );
+ }
+
+ parent = pathToParent[ i ];
+ }
+ return xmpPath;
+ }
+
+ spINode APICALL NodeImpl::GetQualifier( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) {
+ {
+ AutoSharedLock lock( mSharedMutex );
+ if ( !mQualifiers ) return spINode();
+ }
+ return mQualifiers->GetNode( nameSpace, nameSpaceLength, name, nameLength );
+ }
+
+ spINode APICALL NodeImpl::GetQualifier( const spcIUTF8String & nameSpace, const spcIUTF8String & name ) {
+ {
+ AutoSharedLock lock( mSharedMutex );
+ if ( !mQualifiers ) return spINode();
+ }
+ return mQualifiers->GetIStructureNode_I()->GetNode( nameSpace, name );
+ }
+
+ void APICALL NodeImpl::InsertQualifier( const spINode & node ) {
+ CreateQualifierNode();
+ mQualifiers->InsertNode( node );
+ node->GetINode_I()->SetIsQualifierNode( true );
+ }
+
+ spINode APICALL NodeImpl::ReplaceQualifier( const spINode & node ) {
+ CreateQualifierNode();
+ auto retValue = mQualifiers->ReplaceNode( node );
+ node->GetINode_I()->SetIsQualifierNode( true );
+ return retValue;
+ }
+
+ spINode APICALL NodeImpl::RemoveQualifier( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) {
+ CreateQualifierNode();
+ return mQualifiers->RemoveNode( nameSpace, nameSpaceLength, name, nameLength );
+ }
+
+ spINode APICALL NodeImpl::RemoveQualifier( const spcIUTF8String & nameSpace, const spcIUTF8String & name ) {
+ CreateQualifierNode();
+ return mQualifiers->GetIStructureNode_I()->RemoveQualifier( nameSpace, name );
+ }
+
+ bool APICALL NodeImpl::IsArrayItem() const {
+ AutoSharedLock lock( mSharedMutex );
+ return mIndex > 0;
+ }
+
+ bool APICALL NodeImpl::HasQualifiers() const {
+ {
+ AutoSharedLock lock( mSharedMutex );
+ if ( !mQualifiers ) return false;
+ }
+ return mQualifiers->ChildCount() > 0;
+ }
+
+ bool APICALL NodeImpl::IsEmpty() const {
+ return !HasContent() && !HasQualifiers();
+ }
+
+ bool APICALL NodeImpl::HasChanged() const {
+ return mChangeCount != 0;
+ }
+
+ void APICALL NodeImpl::AcknowledgeChanges() const __NOTHROW__ {
+ {
+ AutoSharedLock lock( mSharedMutex );
+ if ( mChangeCount > 1 && mpParent )
+ mpParent->GetINode_I()->UnRegisterChange();
+ }
+
+ resetChangesForChildren();
+
+ {
+ AutoSharedLock lock( mSharedMutex );
+ if ( mQualifiers )
+ mQualifiers->AcknowledgeChanges();
+ }
+ AutoSharedLock lock( mSharedMutex, true );
+ mChangeCount = 0;
+ }
+
+ void APICALL NodeImpl::Clear( bool contents, bool qualifiers ) {
+ if ( qualifiers && mQualifiers ) {
+ mQualifiers->Clear();
+ }
+ if ( contents ) {
+ ClearContents();
+ RegisterChange();
+ }
+ }
+
+ spINode APICALL NodeImpl::Clone( bool ignoreEmptyNodes, bool ignoreNodesWithOnlyQualifiers ) const {
+ AutoSharedLock lock( mSharedMutex );
+
+ sizet qualifiersCount( mQualifiers ? mQualifiers->ChildCount() : 0 );
+
+ spIStructureNode qualifierNode;
+ // copy the qualifiers
+ if ( qualifiersCount > 0 ) {
+ auto node = mQualifiers->Clone( ignoreEmptyNodes, ignoreNodesWithOnlyQualifiers );
+ if ( node ) qualifierNode = node->ConvertToStructureNode();
+ qualifiersCount = qualifierNode ? qualifierNode->ChildCount() : 0;
+ }
+
+ spINode newNode = CloneContents( ignoreEmptyNodes, ignoreNodesWithOnlyQualifiers, qualifiersCount );
+
+ if ( newNode )
+ newNode->GetINode_I()->SetIsQualifierNode( newNode->IsQualifierNode() );
+
+ // set the qualifier
+ if ( newNode && qualifierNode && qualifiersCount > 0 ) {
+ newNode->GetINode_I()->SetQualifiers( qualifierNode );
+ }
+
+ return newNode;
+ }
+
+ void NodeImpl::updateParentSharedPointer( bool calledFromRelease ) {
+ if ( !calledFromRelease ) {
+ if ( !mspParent && mRefCount > 1 && mpParent )
+ mspParent = MakeUncheckedSharedPointer( mpParent, __FILE__, __LINE__, true );
+ } else {
+ if ( mspParent && mRefCount <= 2 )
+ mspParent.reset();
+ }
+ }
+
+ void NodeImpl::CreateQualifierNode() {
+ AutoSharedLock( mSharedMutex, true );
+ if ( !mQualifiers ) {
+ mQualifiers = IStructureNode::CreateStructureNode( kQualifierNodeNameSpace, kQualifierNodeLocalNameLength, kQualifierNodeLocalName, kQualifierNodeLocalNameLength );
+ mQualifiers->GetINode_I()->ChangeParent( this );
+ }
+ }
+
+ void NodeImpl::SetQualifiers( const spIStructureNode & node ) {
+ AutoSharedLock( mSharedMutex, true );
+ mQualifiers = node;
+ }
+
+ sizet APICALL NodeImpl::QualifiersCount() const __NOTHROW__ {
+ {
+ AutoSharedLock lock( mSharedMutex );
+ if ( !mQualifiers ) return 0;
+ }
+ return mQualifiers->ChildCount();
+ }
+
+ spINodeIterator APICALL NodeImpl::QualifiersIterator() {
+ {
+ AutoSharedLock lock( mSharedMutex );
+ if ( !mQualifiers ) return spINodeIterator();
+ }
+ return mQualifiers->Iterator();
+ }
+
+ bool NodeImpl::ValidateNameOrNameSpaceChangeForAChild( const spcIUTF8String & currentNameSpace, const spcIUTF8String & currentName, const spcIUTF8String & newNameSpace, const spcIUTF8String & newName ) {
+ return true;
+ }
+
+ INode_v1::eNodeType APICALL NodeImpl::GetParentNodeType() const {
+ if ( mpParent )
+ return mpParent->GetNodeType();
+ return INode_v1::kNTNone;
+ }
+
+ INode_v1::eNodeType APICALL NodeImpl::GetQualifierNodeType( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) const {
+ {
+ AutoSharedLock lock( mSharedMutex );
+ if ( !mQualifiers ) return INode::kNTNone;
+ }
+ return mQualifiers->GetChildNodeType( nameSpace, nameSpaceLength, name, nameLength );
+ }
+
+ spISimpleNode APICALL NodeImpl::ConvertToSimpleNode() {
+ return spISimpleNode();
+ }
+
+ spIStructureNode APICALL NodeImpl::ConvertToStructureNode() {
+ return spIStructureNode();
+ }
+
+ spIArrayNode APICALL NodeImpl::ConvertToArrayNode() {
+ return spIArrayNode();
+ }
+
+ spIMetadata APICALL NodeImpl::ConvertToMetadata() {
+ return spIMetadata();
+ }
+
+ void NodeImpl::UnRegisterChange() {
+ if ( mChangeCount > 0 )
+ mChangeCount--;
+ if ( mChangeCount == 0 && mpParent ) {
+ mpParent->GetINode_I()->UnRegisterChange();
+ }
+ }
+
+ void APICALL NodeImpl::Acquire() const __NOTHROW__ {
+ SharedObjectImpl::Acquire();
+ AutoSharedLock lock( mSharedMutex, true );
+ const_cast< NodeImpl * >( this )->updateParentSharedPointer();
+ }
+
+ void APICALL NodeImpl::Release() const __NOTHROW__ {
+ AutoSharedLock lock( mSharedMutex, true );
+ const_cast< NodeImpl * >( this )->updateParentSharedPointer( true );
+ SharedObjectImpl::Release();
+ }
+
+ void APICALL NodeImpl::AcquireInternal() const __NOTHROW__ {
+ SharedObjectImpl::AcquireInternal();
+ AutoSharedLock lock( mSharedMutex, true );
+ const_cast< NodeImpl * >( this )->updateParentSharedPointer();
+ }
+
+ void NodeImpl::RegisterChange() {
+ mChangeCount++;
+ if ( mChangeCount == 1 ) {
+ auto parent = GetRawParentPointer();
+ if ( parent ) parent->GetINode_I()->RegisterChange();
+ }
+ }
+
+ void NodeImpl::SetIndex( sizet currentIndex ) {
+ mIndex = currentIndex;
+ }
+
+ void NodeImpl::SetIsQualifierNode( bool isQualifierNode ) {
+ mIsQualifierNode = isQualifierNode;
+ }
+
+ bool APICALL NodeImpl::IsQualifierNode() const {
+ return mIsQualifierNode;
+ }
+
+ sizet APICALL NodeImpl::GetIndex() const {
+ return mIndex;
+ }
+
+}
+
+namespace AdobeXMPCore {
+ using namespace AdobeXMPCore_Int;
+ spINode INode_v1::MakeShared( pINode_base ptr ) {
+ if ( !ptr ) return spINode();
+ pINode p = INode::GetInterfaceVersion() > 1 ? ptr->GetInterfacePointer< INode >() : ptr;
+ return MakeUncheckedSharedPointer( p, __FILE__, __LINE__, false );
+ }
+
+}
diff --git a/XMPCore/source/PathImpl.cpp b/XMPCore/source/PathImpl.cpp
new file mode 100644
index 0000000..4589c79
--- /dev/null
+++ b/XMPCore/source/PathImpl.cpp
@@ -0,0 +1,186 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#define IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED 1
+ #include "XMPCore/ImplHeaders/PathImpl.h"
+#undef IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED
+
+#include "XMPCommon/Interfaces/IError_I.h"
+#include "XMPCore/XMPCoreErrorCodes.h"
+#include "XMPCommon/Interfaces/IUTF8String_I.h"
+#include "XMPCore/Interfaces/IPathSegment.h"
+#include "XMPCore/Interfaces/INameSpacePrefixMap_I.h"
+#include "XMPCommon/Utilities/UTF8String.h"
+#include "XMPCommon/Utilities/TSmartPointers_I.h"
+
+namespace AdobeXMPCore_Int {
+
+ // All virtual functions
+
+ spcINameSpacePrefixMap APICALL PathImpl::RegisterNameSpacePrefixMap( const spcINameSpacePrefixMap & map ) {
+ spcINameSpacePrefixMap old = mNameSpacePrefixMap;
+ mNameSpacePrefixMap = map->Clone();
+ return old;
+ }
+
+ static const char * sSegmentSeperator = "/";
+ static const char * sValueSeperator = ":";
+ static const char * sQualifierIndicator = "@";
+ static const char * sValueIndicatorBegin = "[";
+ static const char * sValueIndicatorEnd = "]";
+ static const char * sQualifierValueIndicator = "?";
+ static const char * sQualifierValueSeperator = "=";
+ static const char * sQuotes = "\"";
+
+ spIUTF8String APICALL PathImpl::Serialize( const spcINameSpacePrefixMap & map ) const {
+ bool firstSegment = true;
+
+ auto it = mSegments.begin();
+ auto endIt = mSegments.end();
+ spIUTF8String serailizedOutput = IUTF8String_I::CreateUTF8String();
+
+ for (it = mSegments.begin(); it != endIt; it++) {
+ spcIUTF8String nameSpace = it->get()->GetNameSpace();
+ spcIUTF8String nameSpaceOrPrefix;
+
+ if (!map && !mNameSpacePrefixMap)
+ nameSpaceOrPrefix = nameSpace;
+
+ if (map)
+ nameSpaceOrPrefix = map->GetINameSpacePrefixMap_I()->GetPrefix(nameSpace);
+ if (!nameSpaceOrPrefix && mNameSpacePrefixMap)
+ nameSpaceOrPrefix = mNameSpacePrefixMap->GetINameSpacePrefixMap_I()->GetPrefix(nameSpace);
+
+ if (!nameSpaceOrPrefix)
+ NOTIFY_ERROR(IError_v1::kEDDataModel, kDMECNameSpacePrefixMapEntryMissing,
+ "A required entry missing in the provided mapping table", IError_v1::kESOperationFatal, false, false);
+
+ switch (it->get()->GetType()) {
+ case IPathSegment_v1::kPSTProperty:
+ if (!firstSegment) {
+ serailizedOutput->append(sSegmentSeperator, npos);
+ }
+ serailizedOutput->append(nameSpaceOrPrefix)->append(sValueSeperator, npos)->append(it->get()->GetName());
+ break;
+
+ case IPathSegment_v1::kPSTArrayIndex:
+ {
+ //std::string strIndex = std::to_string(it->get()->GetIndex());
+ std::ostringstream oss;
+ oss << (it->get()->GetIndex());
+ std::string strIndex = oss.str();
+ serailizedOutput->append(sValueIndicatorBegin, npos)->append(strIndex.c_str(), strIndex.size())->append(sValueIndicatorEnd, npos);
+ }
+ break;
+
+ case IPathSegment_v1::kPSTQualifier:
+ if (!firstSegment) {
+ serailizedOutput->append(sSegmentSeperator, npos);
+ }
+ serailizedOutput->append(sQualifierIndicator, npos)->append(nameSpaceOrPrefix)->append(sValueSeperator, npos)->append(it->get()->GetName());
+ break;
+
+ case IPathSegment_v1::kPSTQualifierSelector:
+ serailizedOutput->append(sValueIndicatorBegin, npos)->append(sQualifierValueIndicator, npos)->append(it->get()->GetName())->
+ append(sQualifierValueSeperator, npos)->append(sQuotes, npos)->append(it->get()->GetValue())->
+ append(sQuotes, npos)->append(sValueIndicatorEnd, npos);
+
+ default:
+ break;
+ }
+
+ if (firstSegment) {
+ firstSegment = false;
+ }
+ }
+
+ return serailizedOutput;
+
+ }
+
+ void APICALL PathImpl::AppendPathSegment( const spcIPathSegment & segment ) {
+ if ( !segment )
+ NOTIFY_ERROR( IError_v1::kEDGeneral, kGECParametersNotAsExpected,
+ "Parameters to PathImpl::AppendPathSegment are not as expected", IError_v1::kESOperationFatal,
+ true, ( void * ) segment.get() );
+
+ mSegments.push_back( segment );
+ }
+
+ spcIPathSegment APICALL PathImpl::RemovePathSegment( sizet index ) {
+ if ( index - 1 >= mSegments.size() ) {
+ NOTIFY_ERROR( IError_v1::kEDGeneral, kGECIndexOutOfBounds,
+ "Requested Index to PathImpl::RemovePathSegment is out of bounds", IError_v1::kESOperationFatal, true, Size(), true, index );
+ } else {
+ spcIPathSegment returnValue = mSegments[ index - 1 ];
+ mSegments.erase( mSegments.begin() + index - 1 );
+ return returnValue;
+ }
+ return spcIPathSegment();
+ }
+
+ spcIPathSegment APICALL PathImpl::GetPathSegment( sizet index ) const {
+ if ( index - 1 >= mSegments.size() ) {
+ NOTIFY_ERROR( IError_v1::kEDGeneral, kGECIndexOutOfBounds,
+ "Requested Index to PathImpl::GetPathSegment is out of bounds", IError_v1::kESOperationFatal, true, Size(), true, index );
+ } else {
+ return mSegments[ index - 1 ];
+ }
+ return spcIPathSegment();
+ }
+
+ AdobeXMPCommon::sizet PathImpl::Size() const __NOTHROW__ {
+ return mSegments.size();
+ }
+
+ void APICALL PathImpl::Clear() __NOTHROW__ {
+ mSegments.clear();
+ }
+
+ spIPath APICALL PathImpl::Clone( sizet startingIndex, sizet countOfSegments ) const {
+ sizet totalCountOfSegments = mSegments.size();
+
+ if ( startingIndex - 1 >= totalCountOfSegments ) {
+ NOTIFY_ERROR( IError_v1::kEDGeneral, kGECIndexOutOfBounds,
+ "Requested startIndex to PathImpl::Clone is out of bounds", IError_v1::kESOperationFatal, true, Size(), true, startingIndex );
+ }
+ spIPath newPath = MakeUncheckedSharedPointer( new PathImpl(), __FILE__, __LINE__, true );
+
+ for ( sizet index = startingIndex; countOfSegments != 0; countOfSegments--, index++ ) {
+ newPath->AppendPathSegment( mSegments[ index - 1 ] );
+ if ( index == totalCountOfSegments )
+ break;
+ }
+ if ( mNameSpacePrefixMap )
+ newPath->RegisterNameSpacePrefixMap( mNameSpacePrefixMap->Clone() );
+ return newPath;
+ }
+
+}
+
+#if BUILDING_XMPCORE_LIB || SOURCE_COMPILING_XMPCORE_LIB
+namespace AdobeXMPCore {
+ using namespace AdobeXMPCore_Int;
+
+ spIPath IPath_v1::MakeShared( pIPath_base ptr ) {
+ if ( !ptr ) return spIPath();
+ pIPath p = IPath::GetInterfaceVersion() > 1 ? ptr->GetInterfacePointer< IPath >() : ptr;
+ return MakeUncheckedSharedPointer( p, __FILE__, __LINE__, false );
+ }
+
+ spIPath IPath_v1::CreatePath() {
+ return MakeUncheckedSharedPointer( new PathImpl(), __FILE__, __LINE__, true );
+ }
+
+ spIPath IPath_v1::ParsePath( const char * path, sizet pathLength, const spcINameSpacePrefixMap & map ) {
+ NOTIFY_ERROR( IError::kEDGeneral, kGECNotImplemented, "API is not implemented", IError::kESOperationFatal, true, "ParsePath" );
+ }
+
+}
+#endif // BUILDING_XMPCORE_LIB || SOURCE_COMPILING_XMPCORE_LIB
diff --git a/XMPCore/source/PathSegmentImpl.cpp b/XMPCore/source/PathSegmentImpl.cpp
new file mode 100644
index 0000000..2ef1aad
--- /dev/null
+++ b/XMPCore/source/PathSegmentImpl.cpp
@@ -0,0 +1,145 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#define IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED 1
+ #include "XMPCore/ImplHeaders/PathSegmentImpl.h"
+#undef IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED
+
+#include "XMPCommon/Interfaces/IError_I.h"
+#include "XMPCore/XMPCoreErrorCodes.h"
+#include "XMPCommon/Interfaces/IUTF8String_I.h"
+#include "XMPCommon/Utilities/TSmartPointers_I.h"
+
+#include <cstring>
+namespace AdobeXMPCore_Int {
+
+ // All virtual functions
+
+ PathSegmentImpl::PathSegmentImpl( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength,
+ const char * value, sizet valueLength, ePathSegmentType type, sizet index )
+ : mNameSpace( IUTF8String_I::CreateUTF8String( nameSpace, nameSpaceLength ) )
+ , mName( IUTF8String_I::CreateUTF8String( name, nameLength ) )
+ , mValue( IUTF8String_I::CreateUTF8String( value, valueLength ) )
+ , mType( type )
+ , mIndex( index ) { }
+
+ spcIUTF8String APICALL PathSegmentImpl::GetNameSpace() const {
+ return mNameSpace;
+ }
+
+ spcIUTF8String APICALL PathSegmentImpl::GetName() const {
+ return mName;
+ }
+
+ IPathSegment_v1::ePathSegmentType APICALL PathSegmentImpl::GetType() const {
+ return mType;
+ }
+
+ sizet APICALL PathSegmentImpl::GetIndex() const __NOTHROW__ {
+ return mIndex;
+ }
+
+ spcIUTF8String APICALL PathSegmentImpl::GetValue() const {
+ return mValue;
+ }
+
+ AdobeXMPCore::spcIPathSegment PathSegmentImpl::Clone() const {
+ return MakeUncheckedSharedPointer(
+ new PathSegmentImpl( this->mNameSpace->c_str(), this->mNameSpace->size(),
+ this->mName->c_str(), this->mName->size(), this->mValue->c_str(), this->mValue->size(), mType, mIndex ), __FILE__, __LINE__, true );
+ }
+
+ spcIPathSegment IPathSegment_I::CreatePropertyPathSegment( const spcIUTF8String & nameSpace, const spcIUTF8String & name ) {
+ return MakeUncheckedSharedPointer(
+ new PathSegmentImpl( nameSpace->c_str(), nameSpace->size(), name->c_str(), name->size(), NULL, AdobeXMPCommon::npos, kPSTProperty, kMaxSize ), __FILE__, __LINE__, true );
+ }
+
+ spcIPathSegment IPathSegment_I::CreateArrayIndexPathSegment( const spcIUTF8String & nameSpace, sizet index ) {
+ return MakeUncheckedSharedPointer(
+ new PathSegmentImpl( nameSpace->c_str(), nameSpace->size() , NULL, AdobeXMPCommon::npos, NULL, AdobeXMPCommon::npos, kPSTArrayIndex, index ), __FILE__, __LINE__, true );
+ }
+
+ spcIPathSegment IPathSegment_I::CreateQualifierPathSegment( const spcIUTF8String & nameSpace, const spcIUTF8String & name ) {
+ return MakeUncheckedSharedPointer(
+ new PathSegmentImpl( nameSpace->c_str(), nameSpace->size(), name->c_str(), name->size(), NULL, AdobeXMPCommon::npos, kPSTQualifier, kMaxSize ), __FILE__, __LINE__, true );
+ }
+
+ spcIPathSegment IPathSegment_I::CreateQualifierSelectorPathSegment( const spcIUTF8String & nameSpace, const spcIUTF8String & name, const spcIUTF8String & value ) {
+ return MakeUncheckedSharedPointer(
+ new PathSegmentImpl( nameSpace->c_str(), nameSpace->size(), name->c_str(), name->size(), value->c_str(), value->size(), kPSTQualifierSelector, kMaxSize ), __FILE__, __LINE__, true );
+ }
+
+}
+
+#if BUILDING_XMPCORE_LIB || SOURCE_COMPILING_XMPCORE_LIB
+namespace AdobeXMPCore {
+ using namespace AdobeXMPCore_Int;
+
+ spcIPathSegment IPathSegment_v1::CreatePropertyPathSegment( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) {
+ if ( nameSpace && nameSpaceLength == AdobeXMPCommon::npos )
+ nameSpaceLength = strlen( nameSpace );
+ if ( name && nameLength == AdobeXMPCommon::npos )
+ nameLength = strlen( name );
+
+ if ( nameSpace == NULL || name == NULL || nameSpaceLength == 0 || nameLength == 0 )
+ NOTIFY_ERROR( IError::kEDGeneral, kGECParametersNotAsExpected, "Parameters to CreatePropertyPathSegment() are not as expected",
+ IError::kESOperationFatal, true, ( void * ) nameSpace, true, ( void * ) name, true, nameSpaceLength, true, nameLength, nameSpace, nameSpace, name, name );
+ return MakeUncheckedSharedPointer(
+ new PathSegmentImpl( nameSpace, nameSpaceLength, name, nameLength, NULL, AdobeXMPCommon::npos, kPSTProperty, kMaxSize ), __FILE__, __LINE__, true );
+ }
+
+ spcIPathSegment IPathSegment_v1::CreateArrayIndexPathSegment( const char * nameSpace, sizet nameSpaceLength, sizet index ) {
+ if ( nameSpace && nameSpaceLength == AdobeXMPCommon::npos )
+ nameSpaceLength = strlen( nameSpace );
+ if ( nameSpace == NULL || nameSpaceLength == 0 )
+ NOTIFY_ERROR( IError::kEDGeneral, kGECParametersNotAsExpected, "Parameters to CreateArrayIndexPathSegment() are not as expected",
+ IError::kESOperationFatal, true, ( void * ) nameSpace, true, nameSpaceLength, nameSpace, nameSpace );
+ return MakeUncheckedSharedPointer(
+ new PathSegmentImpl( nameSpace, nameSpaceLength, NULL, AdobeXMPCommon::npos, NULL, AdobeXMPCommon::npos, kPSTArrayIndex, index ), __FILE__, __LINE__, true );
+ }
+
+ spcIPathSegment IPathSegment_v1::CreateQualifierPathSegment( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) {
+ if ( nameSpace && nameSpaceLength == AdobeXMPCommon::npos )
+ nameSpaceLength = strlen( nameSpace );
+ if ( name && nameLength == AdobeXMPCommon::npos )
+ nameLength = strlen( name );
+
+ if ( nameSpace == NULL || name == NULL || nameSpaceLength == 0 || nameLength == 0 )
+ NOTIFY_ERROR( IError::kEDGeneral, kGECParametersNotAsExpected, "Parameters to CreateQualifierPathSegment() are not as expected",
+ IError::kESOperationFatal, true, ( void * ) nameSpace, true, ( void * ) name, true, nameSpaceLength, true, nameLength, nameSpace, nameSpace, name, name );
+ return MakeUncheckedSharedPointer(
+ new PathSegmentImpl( nameSpace, nameSpaceLength, name, nameLength, NULL, AdobeXMPCommon::npos, kPSTQualifier, kMaxSize ), __FILE__, __LINE__, true );
+ }
+
+ spcIPathSegment IPathSegment_v1::CreateQualifierSelectorPathSegment( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength,
+ const char * value, sizet valueLength )
+ {
+ if ( nameSpace && nameSpaceLength == AdobeXMPCommon::npos )
+ nameSpaceLength = strlen( nameSpace );
+ if ( name && nameLength == AdobeXMPCommon::npos )
+ nameLength = strlen( name );
+ if ( value && valueLength == AdobeXMPCommon::npos )
+ valueLength = strlen( value );
+
+ if ( nameSpace == NULL || name == NULL || value == NULL || nameSpaceLength == 0 || nameLength == 0 || valueLength == 0 )
+ NOTIFY_ERROR( IError::kEDGeneral, kGECParametersNotAsExpected, "Parameters to CreateQualifierSelectorPathSegment() are not as expected",
+ IError::kESOperationFatal, true, ( void * ) nameSpace, true, ( void * ) name, true, ( void * ) value,
+ true, nameSpaceLength, true, nameLength, true, valueLength );
+ return MakeUncheckedSharedPointer(
+ new PathSegmentImpl( nameSpace, nameSpaceLength, name, nameLength, value, valueLength, kPSTQualifierSelector, kMaxSize ), __FILE__, __LINE__, true );
+ }
+
+ spIPathSegment IPathSegment_v1::MakeShared( pIPathSegment_base ptr ) {
+ if ( !ptr ) return spIPathSegment();
+ pIPathSegment p = IPathSegment::GetInterfaceVersion() > 1 ? ptr->GetInterfacePointer< IPathSegment >() : ptr;
+ return MakeUncheckedSharedPointer( p, __FILE__, __LINE__, false );
+ }
+}
+#endif // BUILDING_XMPCORE_LIB || SOURCE_COMPILING_XMPCORE_LIB
+
diff --git a/XMPCore/source/RDFDOMParserImpl.cpp b/XMPCore/source/RDFDOMParserImpl.cpp
new file mode 100644
index 0000000..a97153f
--- /dev/null
+++ b/XMPCore/source/RDFDOMParserImpl.cpp
@@ -0,0 +1,156 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#define IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED 1
+ #include "XMPCore/ImplHeaders/RDFDOMParserImpl.h"
+#undef IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED
+
+#include "XMPCommon/Interfaces/IError_I.h"
+#include "XMPCore/XMPCoreErrorCodes.h"
+#include "XMPCore/Interfaces/ISimpleNode_I.h"
+#include "XMPCore/Interfaces/IArrayNode_I.h"
+#include "XMPCore/Interfaces/IMetadata_I.h"
+#include "XMPCommon/Interfaces/IUTF8String_I.h"
+
+#include "XMPCore/source/XMPMeta.hpp"
+#include "XMPUtils.hpp"
+
+namespace AdobeXMPCore_Int {
+
+ const char * kArrayItemName = "arrayItem";
+ const char * kArrayItemNameSpace = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+
+ namespace Parser {
+ static uint64 kAllowedKeys[] = { IConfigurable::ConvertCharBufferToUint64( "rqMetaEl" ), IConfigurable::ConvertCharBufferToUint64( "sctAlias" ) };
+ static ConfigurableImpl::KeyValueTypePair kAllowedKeyValueTypes[] = {
+ std::make_pair( kAllowedKeys[ 0 ], IConfigurable::kDTBool ),
+ std::make_pair( kAllowedKeys[ 1 ], IConfigurable::kDTBool ) };
+ }
+
+ static void CreateAndPopulateNode( const spINode & parentNode, XMP_Node * node, bool nodeIsQualifier = false ) {
+ XMP_StringPtr nameSpaceStr, nameStr;
+ XMP_StringLen nameSpaceLen, nameLen;
+ node->GetFullQualifiedName( &nameSpaceStr, &nameSpaceLen, &nameStr, &nameLen );
+ if ( nameSpaceLen == 0 && nameLen == 0 ) { //true in case of array element
+ nameSpaceStr = kArrayItemNameSpace;
+ nameStr = kArrayItemName;
+ nameSpaceLen = strlen( kArrayItemNameSpace );
+ nameLen = strlen( kArrayItemName );
+ }
+
+ spINode spNode;
+ if ( XMP_PropIsSimple( node->options ) ) {
+ spISimpleNode spSimpleNode = ISimpleNode::CreateSimpleNode( nameSpaceStr, nameSpaceLen, nameStr, nameLen, node->value.c_str(), node->value.size() );
+ spSimpleNode->SetURIType( XMP_OptionIsSet( node->options, kXMP_PropValueIsURI ) );
+ spNode = spSimpleNode;
+ } else if ( XMP_PropIsStruct( node->options ) ) {
+ spIStructureNode spStructNode = IStructureNode::CreateStructureNode( nameSpaceStr, nameSpaceLen, nameStr, nameLen );
+ for ( sizet index = 0, count = node->children.size(); index < count; index++ )
+ CreateAndPopulateNode( spStructNode, node->children[ index ] );
+ spNode = spStructNode;
+ } else if ( XMP_PropIsArray( node->options ) ) {
+ IArrayNode::eArrayForm arrayNodeForm = IArrayNode::kAFUnordered;
+ if ( XMP_ArrayIsAlternate( node->options ) ) arrayNodeForm = IArrayNode::kAFAlternative;
+ else if ( XMP_ArrayIsOrdered( node->options ) ) arrayNodeForm = IArrayNode::kAFOrdered;
+ spIUTF8String nameSpaceUTF8Str( IUTF8String_I::CreateUTF8String( nameSpaceStr, nameSpaceLen ) );
+ spIUTF8String nameUTF8Str( IUTF8String_I::CreateUTF8String( nameStr, nameLen ) );
+ spIArrayNode spArrayNode = IArrayNode_I::CreateArrayNode( nameSpaceUTF8Str, nameUTF8Str, arrayNodeForm );
+ for ( sizet index = 0, count = node->children.size(); index < count; index++ )
+ CreateAndPopulateNode( spArrayNode, node->children[ index ] );
+ spNode = spArrayNode;
+ }
+
+ if ( spNode ) {
+ // append qualifiers.
+ if ( node->qualifiers.size() > 0 ) {
+ for ( sizet index = 0, count = node->qualifiers.size(); index < count; index++ ) {
+ CreateAndPopulateNode( spNode, node->qualifiers[ index ], true );
+ }
+ }
+ if ( nodeIsQualifier )
+ parentNode->InsertQualifier( spNode );
+ else
+ parentNode->GetInterfacePointer< ICompositeNode_v1 >()->AppendNode( spNode );
+ }
+
+ }
+
+ DOMParserImpl * APICALL RDFDOMParserImpl::clone() const {
+ return new RDFDOMParserImpl();
+ }
+
+ spINode APICALL RDFDOMParserImpl::ParseAsNode( const char * buffer, sizet bufferLength ) {
+ shared_ptr < XMPMeta > spMeta( new XMPMeta() );
+ try {
+
+ if (mGenericErrorCallbackPtr && mGenericErrorCallbackPtr->wrapperProc) {
+ spMeta->SetErrorCallback(mGenericErrorCallbackPtr->wrapperProc, mGenericErrorCallbackPtr->clientProc, mGenericErrorCallbackPtr->context, mGenericErrorCallbackPtr->limit);
+ spMeta->errorCallback.notifications = mGenericErrorCallbackPtr->notifications;
+ }
+ XMP_OptionBits options( 0 );
+ bool value;
+ if ( GetParameter( Parser::kAllowedKeys[ 0 ], value ) && value )
+ options |= kXMP_RequireXMPMeta;
+ if ( GetParameter( Parser::kAllowedKeys[ 1 ], value ) && value )
+ options |= kXMP_StrictAliasing;
+ spMeta->ParseFromBuffer( buffer, static_cast< XMP_StringLen >( bufferLength ), static_cast< XMP_OptionBits >( options ) );
+ } catch ( XMP_Error & xmpError ) {
+ IError::eErrorDomain domain( IError::kEDNone );
+ IError::eErrorCode code( kGECNone );
+ if ( mGenericErrorCallbackPtr && mGenericErrorCallbackPtr->wrapperProc ) {
+ mGenericErrorCallbackPtr->notifications = spMeta->errorCallback.notifications;
+ }
+#if ENABLE_CPP_DOM_MODEL
+ XMPUtils::MapXMPErrorToIError( xmpError.GetID(), domain, code );
+#endif
+ NOTIFY_ERROR( domain, code, "XMP Error caught", IError::kESOperationFatal, false, false );
+
+ }
+ if ( mGenericErrorCallbackPtr && mGenericErrorCallbackPtr->wrapperProc ) {
+ mGenericErrorCallbackPtr->notifications = spMeta->errorCallback.notifications;
+ }
+ spIMetadata metadata = IMetadata::CreateMetadata();
+ if ( spMeta ) {
+ metadata->SetAboutURI( spMeta->tree.name.c_str(), spMeta->tree.name.size() );
+
+ // all the top level children of this tree are actually top level namespace entries.
+ // name begin the namespace string and value contains the prefix with colon.
+ // actual nodes are below these top level children.
+ for ( sizet index = 0, count = spMeta->tree.children.size(); index < count; ++index ) {
+ XMP_Node * topLevelNode = spMeta->tree.children[ index ];
+ for ( sizet innerIndex = 0, innerCount = topLevelNode->children.size(); innerIndex < innerCount; ++innerIndex ) {
+ CreateAndPopulateNode( metadata, topLevelNode->children[ innerIndex ] );
+ }
+ }
+ }
+ metadata->AcknowledgeChanges();
+ return metadata;
+ }
+
+ eConfigurableErrorCode APICALL RDFDOMParserImpl::ValidateValue( const uint64 & key, eDataType type, const CombinedDataValue & value ) const {
+ return kCECNone;
+ }
+
+ void RDFDOMParserImpl::InitializeDefaultValues() {
+ TreatKeyAsCaseInsensitive( true );
+ AllowDifferentValueTypesForExistingEntries( false );
+
+ SetAllowedKeys( &Parser::kAllowedKeys[ 0 ], 2 );
+ SetAllowedValueTypesForKeys( &Parser::kAllowedKeyValueTypes[ 0 ], 2 );
+ SetParameter( Parser::kAllowedKeys[ 0 ], false );
+ SetParameter( Parser::kAllowedKeys[ 1 ], false );
+ }
+
+ void RDFDOMParserImpl::SetErrorCallback(XMPMeta::ErrorCallbackInfo * ec) {
+ mGenericErrorCallbackPtr = ec;
+ }
+
+
+
+}
diff --git a/XMPCore/source/RDFDOMSerializerImpl.cpp b/XMPCore/source/RDFDOMSerializerImpl.cpp
new file mode 100644
index 0000000..4888152
--- /dev/null
+++ b/XMPCore/source/RDFDOMSerializerImpl.cpp
@@ -0,0 +1,508 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#define IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED 1
+ #include "XMPCore/ImplHeaders/RDFDOMSerializerImpl.h"
+#undef IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED
+
+#include "XMPCommon/Interfaces/IError_I.h"
+#include "XMPCore/XMPCoreErrorCodes.h"
+
+#include "XMPCommon/Utilities/AutoSharedLock.h"
+
+#include "XMPCore/Interfaces/ISimpleNode_I.h"
+#include "XMPCore/Interfaces/IArrayNode_I.h"
+#include "XMPCore/Interfaces/IMetadata_I.h"
+#include "XMPCommon/Interfaces/IUTF8String_I.h"
+#include "XMPCore/Interfaces/INameSpacePrefixMap_I.h"
+#include "XMPCommon/Utilities/TSmartPointers_I.h"
+#include "XMPCommon/Utilities/UTF8String.h"
+#include "XMPCore/Interfaces/INodeIterator_I.h"
+
+#include "XMPMeta.hpp"
+
+// some declaration of functions defined in XMPMeta-Parse.cpp
+extern void NormalizeDCArrays( XMP_Node * xmpTree );
+extern void MoveExplicitAliases( XMP_Node * tree, XMP_OptionBits parseOptions, XMPMeta::ErrorCallbackInfo & errorCallback );
+extern void TouchUpDataModel( XMPMeta * xmp, XMPMeta::ErrorCallbackInfo & errorCallback );
+
+namespace AdobeXMPCore_Int {
+
+ namespace Serializer {
+ typedef enum {
+ kCPOmitPacketWrapper,
+ kCPMarkReadOnlyPacket,
+ kCPUseCompactFormat,
+ kCPUseCanonicalFormat,
+ kCPIncludeThumbnailPadding,
+ kCPUseExactPacketLength,
+ kCPOmitAllFormatting,
+ kCPOmitMetaElement,
+ kCPOmitRDFHash,
+ kCPUseEncoding,
+ kCPUseBigEndian,
+ kCPPaddingLength
+ } eConfigurableParameters;
+
+ static uint64 kAllowedKeys[] = {
+ IConfigurable::ConvertCharBufferToUint64( "oPktWrap" ),
+ IConfigurable::ConvertCharBufferToUint64( "mRoPkt " ),
+ IConfigurable::ConvertCharBufferToUint64( "uCompact" ),
+ IConfigurable::ConvertCharBufferToUint64( "uCanonic" ),
+ IConfigurable::ConvertCharBufferToUint64( "eThmbPad" ),
+ IConfigurable::ConvertCharBufferToUint64( "uExctLen" ),
+ IConfigurable::ConvertCharBufferToUint64( "oFormat " ),
+ IConfigurable::ConvertCharBufferToUint64( "oMetaEl " ),
+ IConfigurable::ConvertCharBufferToUint64( "oRDFHash" ),
+ IConfigurable::ConvertCharBufferToUint64( "encoding" ),
+ IConfigurable::ConvertCharBufferToUint64( "bgEndian"),
+ IConfigurable::ConvertCharBufferToUint64( "padLen " ),
+ };
+
+ static ConfigurableImpl::KeyValueTypePair kAllowedKeyValueTypes[] = {
+ std::make_pair( kAllowedKeys[ kCPOmitPacketWrapper ], IConfigurable::kDTBool ),
+ std::make_pair( kAllowedKeys[ kCPMarkReadOnlyPacket ], IConfigurable::kDTBool ),
+ std::make_pair( kAllowedKeys[ kCPUseCompactFormat ], IConfigurable::kDTBool ),
+ std::make_pair( kAllowedKeys[ kCPUseCanonicalFormat ], IConfigurable::kDTBool ),
+ std::make_pair( kAllowedKeys[ kCPIncludeThumbnailPadding ], IConfigurable::kDTBool ),
+ std::make_pair( kAllowedKeys[ kCPUseExactPacketLength ], IConfigurable::kDTBool ),
+ std::make_pair( kAllowedKeys[ kCPOmitAllFormatting ], IConfigurable::kDTBool ),
+ std::make_pair( kAllowedKeys[ kCPOmitMetaElement ], IConfigurable::kDTBool ),
+ std::make_pair( kAllowedKeys[ kCPOmitRDFHash ], IConfigurable::kDTBool ),
+ std::make_pair( kAllowedKeys[ kCPUseEncoding ], IConfigurable::kDTUint64 ),
+ std::make_pair( kAllowedKeys[ kCPUseBigEndian ], IConfigurable::kDTBool ),
+ std::make_pair( kAllowedKeys[ kCPPaddingLength ], IConfigurable::kDTUint64 )
+ };
+ }
+
+ // static utility functions
+ static spcIUTF8String CreateQualifiedName( const spINode & node, const spcINameSpacePrefixMap_I & userSuppliedMap, spINameSpacePrefixMap_I & generatedMap ) {
+ spIUTF8String qualName = IUTF8String_I::CreateUTF8String( NULL, AdobeXMPCommon::npos );
+ spcIUTF8String nameSpace = node->GetNameSpace();
+ static sizet count( 0 );
+
+ spcIUTF8String prefixStr = userSuppliedMap->GetPrefix( node->GetNameSpace() );
+
+ if ( !prefixStr && !generatedMap ) {
+ generatedMap = MakeUncheckedSharedPointer( INameSpacePrefixMap_I::CreateNameSpacePrefixMap()->GetINameSpacePrefixMap_I(), __FILE__, __LINE__, true );
+ count = 0;
+ }
+ else if (!prefixStr && generatedMap) {
+
+ if (generatedMap->GetPrefix(node->GetNameSpace())) {
+
+ prefixStr = generatedMap->GetPrefix(node->GetNameSpace());
+ }
+ }
+ if ( !prefixStr ) {
+
+ spIUTF8String autoGeneratedPrefix = IUTF8String_I::CreateUTF8String( NULL, AdobeXMPCommon::npos );
+ do {
+ autoGeneratedPrefix->clear();
+ autoGeneratedPrefix->append( "ns", (sizet) 2 );
+ //std::string numStr = std::to_string( ++count );
+ std::ostringstream oss;
+ oss << ++count;
+ std::string numStr = oss.str();
+ autoGeneratedPrefix->append( numStr.c_str(), numStr.size() );
+ } while (generatedMap->IsPrefixPresent ( autoGeneratedPrefix->c_str ( ), autoGeneratedPrefix->size ( ) ));
+ generatedMap->Insert( autoGeneratedPrefix->c_str(), autoGeneratedPrefix->size(), nameSpace->c_str(), nameSpace->size() );
+ prefixStr = autoGeneratedPrefix;
+ }
+
+ qualName->append( prefixStr );
+ qualName->append( ":", 1 );
+ qualName->append( node->GetName() );
+ return qualName;
+ }
+
+ bool FindPrefixFromUserSuppliedMap ( void * voidUserSuppliedMap, XMP_StringPtr nsURI, XMP_StringPtr * namespacePrefix, XMP_StringLen * prefixSize ) {
+ if (voidUserSuppliedMap) {
+ pcINameSpacePrefixMap userSuppliedMap = reinterpret_cast<pcINameSpacePrefixMap>( voidUserSuppliedMap );
+ auto prefix = userSuppliedMap->GetPrefix ( nsURI, AdobeXMPCommon::npos );
+ if (prefix) {
+ *namespacePrefix = prefix->c_str ( );
+ *prefixSize = prefix->size ( );
+ return true;
+ }
+ }
+ return false;
+ }
+
+ static XMP_Node * AddChildNode( XMP_Node * xmpParent, const spINode & node, const char * value, const spcINameSpacePrefixMap_I & userSuppliedMap, spINameSpacePrefixMap_I & generatedMap, bool isTopLevel ) {
+ bool isArrayItem = node->IsArrayItem();
+ if ( isTopLevel ) {
+ isArrayItem = false;
+ }
+
+ XMP_OptionBits childOptions = 0;
+
+ spcIUTF8String qualName = CreateQualifiedName( node, userSuppliedMap, generatedMap );
+
+ XMP_StringPtr childName = qualName->c_str();
+ XMP_StringPtr nameSpaceStrPtr = node->GetNameSpace()->c_str();
+
+ if ( isTopLevel ) {
+ // Lookup the schema node, adjust the XMP parent pointer.
+ XMP_Assert( xmpParent->parent == 0 ); // Incoming parent must be the tree root.
+ XMP_Node * schemaNode = FindSchemaNode( xmpParent, nameSpaceStrPtr, kXMP_CreateNodes, NULL, &FindPrefixFromUserSuppliedMap, generatedMap ? generatedMap->GetActualINameSpacePrefixMap() : NULL );
+ if ( schemaNode->options & kXMP_NewImplicitNode ) schemaNode->options ^= kXMP_NewImplicitNode; // Clear the implicit node bit.
+ // *** Should use "opt &= ~flag" (no conditional), need runtime check for proper 32 bit code.
+ xmpParent = schemaNode;
+
+ // If this is an alias set the isAlias flag in the node and the hasAliases flag in the tree.
+ XMP_StringPtr prefixForAlias( NULL );
+ XMP_StringLen prefixLenForAlias( 0 );
+ if ( sRegisteredNamespaces->GetPrefix( nameSpaceStrPtr, &prefixForAlias, &prefixLenForAlias ) && prefixForAlias && prefixLenForAlias > 0 ) {
+ spIUTF8String childNameForAlias( IUTF8String_I::CreateUTF8String( NULL, npos ) );
+ childNameForAlias->append( prefixForAlias, prefixLenForAlias )->append( node->GetName() );
+ if ( sRegisteredAliasMap->find( childNameForAlias->c_str() ) != sRegisteredAliasMap->end() ) {
+ childOptions |= kXMP_PropIsAlias;
+ schemaNode->parent->options |= kXMP_PropHasAliases;
+ }
+ }
+
+ }
+
+ if ( isArrayItem ) {
+ childName = kXMP_ArrayItemName;
+ }
+
+ // Add the new child to the XMP parent node.
+ XMP_Node * newChild = new XMP_Node( xmpParent, childName, value, childOptions );
+ xmpParent->children.push_back( newChild );
+
+ return newChild;
+ }
+
+ static XMP_Node * AddQualifierNode( XMP_Node * xmpParent, const spINode & node, const char * value, const spcINameSpacePrefixMap_I & userSuppliedMap, spINameSpacePrefixMap_I & generatedMap ) {
+ spcIUTF8String qualName = CreateQualifiedName( node, userSuppliedMap, generatedMap );
+ XMP_StringPtr childName = qualName->c_str();
+
+ static const char * kLanguageName = "lang";
+ static const char * kTypeName = "type";
+
+ const bool isLang = ( node->GetName()->compare( kLanguageName ) == 0 ) && ( node->GetNameSpace()->compare( kXMP_NS_XML ) == 0 );
+ const bool isType = ( node->GetName()->compare( kTypeName ) == 0 ) && ( node->GetNameSpace()->compare( kXMP_NS_RDF ) == 0 );
+
+ bool isArrayItem = node->IsArrayItem();
+
+ XMP_OptionBits childOptions = 0;
+
+ XMP_StringPtr nameSpaceStrPtr = node->GetNameSpace()->c_str();
+
+ if ( isArrayItem ) {
+ childName = kXMP_ArrayItemName;
+ }
+
+ XMP_Node * newQual = 0;
+
+ newQual = new XMP_Node( xmpParent, childName, value, kXMP_PropIsQualifier );
+
+ if ( !( isLang | isType ) ) {
+ xmpParent->qualifiers.push_back( newQual );
+ } else if ( isLang ) {
+ if ( xmpParent->qualifiers.empty() ) {
+ xmpParent->qualifiers.push_back( newQual );
+ } else {
+ xmpParent->qualifiers.insert( xmpParent->qualifiers.begin(), newQual );
+ }
+ xmpParent->options |= kXMP_PropHasLang;
+ } else {
+ XMP_Assert( isType );
+ if ( xmpParent->qualifiers.empty() ) {
+ xmpParent->qualifiers.push_back( newQual );
+ } else {
+ size_t offset = 0;
+ if ( XMP_PropHasLang( xmpParent->options ) ) offset = 1;
+ xmpParent->qualifiers.insert( xmpParent->qualifiers.begin() + offset, newQual );
+ }
+ xmpParent->options |= kXMP_PropHasType;
+ }
+
+ xmpParent->options |= kXMP_PropHasQualifiers;
+
+ return newQual;
+ }
+
+ void HandleNode( const spINode & node, XMP_Node * parent, const spcINameSpacePrefixMap_I & userSuppliedMap, spINameSpacePrefixMap_I & generatedMap, bool isTopLevel, bool isQualifierNode );
+
+ XMP_Node * HandleSimpleNode( const spISimpleNode & simpleNode, XMP_Node * parent, const spcINameSpacePrefixMap_I & userSuppliedMap, spINameSpacePrefixMap_I & generatedMap, bool isTopLevel, bool isQualifierNode ) {
+ XMP_Node * node = NULL;
+ if ( isQualifierNode ) {
+ node = AddQualifierNode( parent, simpleNode, simpleNode->GetValue()->c_str(), userSuppliedMap, generatedMap );
+ } else {
+ node = AddChildNode( parent, simpleNode, simpleNode->GetValue()->c_str(), userSuppliedMap, generatedMap, isTopLevel );
+ }
+ if ( simpleNode->IsURIType() )
+ node->options |= kXMP_PropValueIsURI;
+ return node;
+ }
+
+ XMP_Node * HandleStructureNode( const spIStructureNode & structureNode, XMP_Node * parent, const spcINameSpacePrefixMap_I & userSuppliedMap, spINameSpacePrefixMap_I & generatedMap, bool isTopLevel, bool isQualifierNode ) {
+ bool metadataNode = false;
+ if ( isTopLevel ) {
+ // check if it is a XMPMetadata node
+ spIMetadata metadata = structureNode->ConvertToMetadata();
+ if ( metadata ) {
+ metadataNode = true;
+ parent->name = metadata->GetAboutURI()->c_str();
+ }
+ }
+
+ XMP_Node * newComposite = NULL;
+ if ( !metadataNode ) {
+ if ( isQualifierNode ) {
+ newComposite = AddQualifierNode( parent, structureNode, "", userSuppliedMap, generatedMap );
+ } else {
+ newComposite = AddChildNode( parent, structureNode, "", userSuppliedMap, generatedMap, isTopLevel );
+ }
+ } else {
+ newComposite = parent;
+ }
+
+ if ( newComposite == 0 ) return NULL; // Ignore lower level errors.
+
+ newComposite->options |= kXMP_PropValueIsStruct;
+
+ // iterate over all the children
+ spINodeIterator it = structureNode->Iterator();
+
+ while ( it ) {
+ spINode spNode = it->GetNode();
+ if ( metadataNode )
+ HandleNode( spNode, newComposite, userSuppliedMap, generatedMap, true, false );
+ else
+ HandleNode( spNode, newComposite, userSuppliedMap, generatedMap, false, false );
+ it = it->Next();
+ }
+
+ return newComposite;
+ }
+
+ XMP_Node * HandleArrayNode( const spIArrayNode & arrayNode, XMP_Node * parent, const spcINameSpacePrefixMap_I & userSuppliedMap, spINameSpacePrefixMap_I & generatedMap, bool isTopLevel, bool isQualifierNode ) {
+ XMP_Node * newComposite = NULL;
+ if ( isQualifierNode ) {
+ newComposite = AddQualifierNode( parent, arrayNode, "", userSuppliedMap, generatedMap );
+ } else {
+ newComposite = AddChildNode( parent, arrayNode, "", userSuppliedMap, generatedMap, isTopLevel );
+ }
+
+ if ( newComposite == 0 ) return NULL; // Ignore lower level errors.
+
+ newComposite->options |= kXMP_PropValueIsArray;
+
+ IArrayNode::eArrayForm arrayNodeForm = arrayNode->GetArrayForm();
+ if ( arrayNodeForm == IArrayNode::kAFAlternative )
+ newComposite->options |= kXMP_PropValueIsArray | kXMP_PropArrayIsOrdered | kXMP_PropArrayIsAlternate;
+ else if ( arrayNodeForm == IArrayNode::kAFOrdered )
+ newComposite->options |= kXMP_PropValueIsArray | kXMP_PropArrayIsOrdered;
+
+ // iterate over all the children
+ spINodeIterator it = arrayNode->Iterator();
+
+ while ( it ) {
+ spINode spNode = it->GetNode();
+ HandleNode( spNode, newComposite, userSuppliedMap, generatedMap, false, false );
+ it = it->Next();
+ }
+ return newComposite;
+ }
+
+ void HandleNode( const spINode & node, XMP_Node * parent, const spcINameSpacePrefixMap_I & userSuppliedMap, spINameSpacePrefixMap_I & generatedMap, bool isTopLevel, bool isQualifierNode ) {
+ XMP_Node * nodeCreated = NULL;
+ if (!node) return;
+ switch ( node->GetNodeType() ) {
+ case INode::kNTSimple:
+ nodeCreated = HandleSimpleNode( node->ConvertToSimpleNode(), parent, userSuppliedMap, generatedMap, isTopLevel, isQualifierNode );
+ break;
+
+ case INode::kNTStructure:
+ nodeCreated = HandleStructureNode( node->ConvertToStructureNode(), parent, userSuppliedMap, generatedMap, isTopLevel, isQualifierNode );
+ break;
+
+ case INode::kNTArray:
+ nodeCreated = HandleArrayNode( node->ConvertToArrayNode(), parent, userSuppliedMap, generatedMap, isTopLevel, isQualifierNode );
+ break;
+
+ default:
+ break;
+ }
+
+ if ( node->HasQualifiers() && nodeCreated ) {
+ spINodeIterator it = node->QualifiersIterator();
+ while ( it ) {
+ spINode spNode = it->GetNode();
+ HandleNode( spNode, nodeCreated, userSuppliedMap, generatedMap, false, true );
+ it = it->Next();
+ }
+ }
+ }
+
+ DOMSerializerImpl * APICALL RDFDOMSerializerImpl::clone() const {
+ return new RDFDOMSerializerImpl();
+ }
+
+ static void GetSerializationOptions( pcIConfigurable configurationParameters, XMP_OptionBits & options, uint64 & paddingSize ) {
+ options = 0;
+ bool flag;
+ if ( configurationParameters->GetParameter( Serializer::kAllowedKeys[ Serializer::kCPOmitPacketWrapper ], flag ) && flag )
+ options |= kXMP_OmitPacketWrapper;
+ if ( configurationParameters->GetParameter( Serializer::kAllowedKeys[ Serializer::kCPMarkReadOnlyPacket ], flag ) && flag )
+ options |= kXMP_ReadOnlyPacket;
+ if ( configurationParameters->GetParameter( Serializer::kAllowedKeys[ Serializer::kCPUseCompactFormat ], flag ) && flag )
+ options |= kXMP_UseCompactFormat;
+ if ( configurationParameters->GetParameter( Serializer::kAllowedKeys[ Serializer::kCPUseCanonicalFormat ], flag ) && flag )
+ options |= kXMP_UseCanonicalFormat;
+ if ( configurationParameters->GetParameter( Serializer::kAllowedKeys[ Serializer::kCPIncludeThumbnailPadding ], flag ) && flag )
+ options |= kXMP_IncludeThumbnailPad;
+ if ( configurationParameters->GetParameter( Serializer::kAllowedKeys[ Serializer::kCPUseExactPacketLength ], flag ) && flag )
+ options |= kXMP_ExactPacketLength;
+ if ( configurationParameters->GetParameter( Serializer::kAllowedKeys[ Serializer::kCPOmitAllFormatting ], flag ) && flag )
+ options |= kXMP_OmitAllFormatting;
+ if ( configurationParameters->GetParameter( Serializer::kAllowedKeys[ Serializer::kCPOmitMetaElement ], flag ) && flag )
+ options |= kXMP_OmitXMPMetaElement;
+ if ( configurationParameters->GetParameter( Serializer::kAllowedKeys[ Serializer::kCPOmitRDFHash ], flag ) && !flag )
+ options |= kXMP_IncludeRDFHash;
+
+ uint64 encoding( 8 );
+ if ( !configurationParameters->GetParameter( Serializer::kAllowedKeys[ Serializer::kCPUseBigEndian ], flag ) )
+ flag = false;
+ if ( !configurationParameters->GetParameter( Serializer::kAllowedKeys[ Serializer::kCPUseEncoding ], encoding ) )
+ encoding = 8;
+
+ switch ( encoding ) {
+ case 16:
+ if ( flag ) options |= kXMP_EncodeUTF16Big; else options |= kXMP_EncodeUTF16Little;
+ break;
+
+ case 32:
+ if ( flag ) options |= kXMP_EncodeUTF32Big; else options |= kXMP_EncodeUTF32Little;
+ break;
+
+ default:
+ options |= kXMP_EncodeUTF8;
+ }
+
+ if ( !configurationParameters->GetParameter( Serializer::kAllowedKeys[ Serializer::kCPPaddingLength ], paddingSize ) )
+ paddingSize = 2048;
+ }
+
+
+
+ spIUTF8String APICALL RDFDOMSerializerImpl::Serialize( const spINode & node, const spcINameSpacePrefixMap & nameSpacePrefixMap ) {
+ XMP_OptionBits options = 0;
+ shared_ptr< XMPMeta > spMeta( new XMPMeta() );
+ spINameSpacePrefixMap_I genereatedMap;
+
+ spcINameSpacePrefixMap mergedMap = INameSpacePrefixMap::GetDefaultNameSpacePrefixMap();
+ if ( nameSpacePrefixMap ) {
+ spINameSpacePrefixMap newMergedMap = mergedMap->Clone();
+ newMergedMap->GetINameSpacePrefixMap_I()->Merge( nameSpacePrefixMap );
+ mergedMap = newMergedMap;
+ }
+ spINameSpacePrefixMap_I userSuppliedMap( MakeUncheckedSharedPointer( const_pointer_cast< INameSpacePrefixMap >( mergedMap )->GetINameSpacePrefixMap_I(), __FILE__, __LINE__, true ) );
+
+ // TODO:meta->SetErrorCallback()
+ HandleNode( node, &spMeta->tree, userSuppliedMap, genereatedMap, true, false );
+
+ NormalizeDCArrays( &( spMeta->tree ) );
+ if ( spMeta->tree.options & kXMP_PropHasAliases ) MoveExplicitAliases( &spMeta->tree, options, spMeta->errorCallback );
+ TouchUpDataModel( spMeta.get(), spMeta->errorCallback );
+
+ // Delete empty schema nodes. Do this last, other cleanup can make empty schema.
+ size_t schemaNum = 0;
+ while ( schemaNum < spMeta->tree.children.size() ) {
+ XMP_Node * currSchema = spMeta->tree.children[ schemaNum ];
+ if ( currSchema->children.size() > 0 ) {
+ ++schemaNum;
+ } else {
+ delete spMeta->tree.children[ schemaNum ]; // ! Delete the schema node itself.
+ spMeta->tree.children.erase( spMeta->tree.children.begin() + schemaNum );
+ }
+ }
+
+ std::string buffer;
+ uint64 padding;
+ GetSerializationOptions( this, options, padding );
+ spMeta->SerializeToBuffer( &buffer, options, padding, "", "", 0 );
+ spIUTF8String serializedOutput = IUTF8String_I::CreateUTF8String( buffer.c_str(), buffer.size() );
+ return serializedOutput;
+ }
+
+ eConfigurableErrorCode APICALL RDFDOMSerializerImpl::ValidateValue( const uint64 & key, eDataType type, const CombinedDataValue & value ) const {
+ if ( key == Serializer::kAllowedKeys[ Serializer::kCPUseEncoding ] ) {
+ if ( type == IConfigurable::kDTUint64 && ( value.uint64Value == 8 || value.uint64Value == 16 || value.uint64Value == 32 ) )
+ return kCECNone;
+ return kCECValueNotSupported;
+ }
+ return kCECNone;
+ }
+
+ void RDFDOMSerializerImpl::InitializeDefaultValues() {
+ TreatKeyAsCaseInsensitive( true );
+ AllowDifferentValueTypesForExistingEntries( false );
+
+ SetAllowedKeys( &Serializer::kAllowedKeys[ 0 ], 12 );
+ SetAllowedValueTypesForKeys( &Serializer::kAllowedKeyValueTypes[ 0 ], 12 );
+ SetParameter( Serializer::kAllowedKeys[ Serializer::kCPOmitPacketWrapper ], false );
+ SetParameter( Serializer::kAllowedKeys[ Serializer::kCPMarkReadOnlyPacket ], false );
+ SetParameter( Serializer::kAllowedKeys[ Serializer::kCPUseCompactFormat ], false );
+ SetParameter( Serializer::kAllowedKeys[ Serializer::kCPUseCanonicalFormat ], false );
+ SetParameter( Serializer::kAllowedKeys[ Serializer::kCPIncludeThumbnailPadding ], false );
+ SetParameter( Serializer::kAllowedKeys[ Serializer::kCPUseExactPacketLength ], false );
+ SetParameter( Serializer::kAllowedKeys[ Serializer::kCPOmitAllFormatting ], false );
+ SetParameter( Serializer::kAllowedKeys[ Serializer::kCPOmitMetaElement ], false );
+ SetParameter( Serializer::kAllowedKeys[ Serializer::kCPOmitRDFHash ], true );
+ SetParameter( Serializer::kAllowedKeys[ Serializer::kCPUseEncoding ], ( uint64 ) 8 );
+ SetParameter( Serializer::kAllowedKeys[ Serializer::kCPUseBigEndian ], false );
+ SetParameter( Serializer::kAllowedKeys[ Serializer::kCPPaddingLength ], ( uint64 ) 2048 );
+
+ }
+
+ spIUTF8String APICALL RDFDOMSerializerImpl::SerializeInternal(const spINode & node, XMP_OptionBits options, sizet padding, const char * newline, const char * indent, sizet baseIndent, const spcINameSpacePrefixMap & nameSpacePrefixMap) const {
+
+ shared_ptr< XMPMeta > spMeta(new XMPMeta());
+ spINameSpacePrefixMap_I genereatedMap;
+
+ spcINameSpacePrefixMap mergedMap = INameSpacePrefixMap::GetDefaultNameSpacePrefixMap();
+ if (nameSpacePrefixMap) {
+ spINameSpacePrefixMap newMergedMap = mergedMap->Clone();
+ newMergedMap->GetINameSpacePrefixMap_I()->Merge(nameSpacePrefixMap);
+ mergedMap = newMergedMap;
+ }
+ spINameSpacePrefixMap_I userSuppliedMap(MakeUncheckedSharedPointer(const_pointer_cast<INameSpacePrefixMap>(mergedMap)->GetINameSpacePrefixMap_I(), __FILE__, __LINE__, true));
+
+ // TODO:meta->SetErrorCallback()
+ HandleNode(node, &spMeta->tree, userSuppliedMap, genereatedMap, true, false);
+
+ NormalizeDCArrays(&(spMeta->tree));
+ if (spMeta->tree.options & kXMP_PropHasAliases) MoveExplicitAliases(&spMeta->tree, options, spMeta->errorCallback);
+ TouchUpDataModel(spMeta.get(), spMeta->errorCallback);
+
+ // Delete empty schema nodes. Do this last, other cleanup can make empty schema.
+ size_t schemaNum = 0;
+ while (schemaNum < spMeta->tree.children.size()) {
+ XMP_Node * currSchema = spMeta->tree.children[schemaNum];
+ if (currSchema->children.size() > 0) {
+ ++schemaNum;
+ }
+ else {
+ delete spMeta->tree.children[schemaNum]; // ! Delete the schema node itself.
+ spMeta->tree.children.erase(spMeta->tree.children.begin() + schemaNum);
+ }
+ }
+ std::string buffer;
+ spMeta->SerializeToBuffer(&buffer, options, padding, newline, indent, baseIndent);
+ spIUTF8String serializedOutput = IUTF8String_I::CreateUTF8String(buffer.c_str(), buffer.size());
+ return serializedOutput;
+
+ }
+
+} \ No newline at end of file
diff --git a/XMPCore/source/SimpleNodeImpl.cpp b/XMPCore/source/SimpleNodeImpl.cpp
new file mode 100644
index 0000000..69fcd87
--- /dev/null
+++ b/XMPCore/source/SimpleNodeImpl.cpp
@@ -0,0 +1,105 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#define IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED 1
+ #include "XMPCore/ImplHeaders/SimpleNodeImpl.h"
+#undef IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED
+
+#include "XMPCommon/Interfaces/IError_I.h"
+#include "XMPCore/XMPCoreErrorCodes.h"
+#include "XMPCommon/Interfaces/IUTF8String_I.h"
+#include "XMPCommon/Utilities/AutoSharedLock.h"
+#include "XMPCommon/Utilities/TSmartPointers_I.h"
+
+#include <assert.h>
+
+namespace AdobeXMPCore_Int {
+
+ SimpleNodeImpl::SimpleNodeImpl( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, const char * value, sizet valueLength )
+ : NodeImpl( nameSpace, nameSpaceLength, name, nameLength )
+ , mValue( IUTF8String_I::CreateUTF8String( value, valueLength ) )
+ , mIsURIType( false ) { }
+
+ spcIUTF8String APICALL SimpleNodeImpl::GetValue() const {
+ AutoSharedLock lock( mSharedMutex );
+ return mValue;
+ }
+
+ void APICALL SimpleNodeImpl::SetValue( const char * value, sizet valueLength ) {
+ AutoSharedLock lock( mSharedMutex, true );
+ mValue->assign( value, valueLength );
+ RegisterChange();
+ }
+
+ bool APICALL SimpleNodeImpl::IsURIType() const {
+ AutoSharedLock lock( mSharedMutex );
+ return mIsURIType;
+ }
+
+ void APICALL SimpleNodeImpl::SetURIType( bool isURI ) {
+ AutoSharedLock( mSharedMutex, true );
+ mIsURIType = isURI;
+ RegisterChange();
+ }
+
+ INode_v1::eNodeType APICALL SimpleNodeImpl::GetNodeType() const {
+ return INode_v1::kNTSimple;
+ }
+
+ bool APICALL SimpleNodeImpl::HasContent() const {
+ AutoSharedLock lock( mSharedMutex );
+ return !mValue->empty();
+ }
+
+ void APICALL SimpleNodeImpl::ClearContents() {
+ AutoSharedLock lock( mSharedMutex, true );
+ mValue->clear();
+ RegisterChange();
+ }
+
+ spINode APICALL SimpleNodeImpl::CloneContents( bool ignoreEmptyNodes, bool ignoreNodesWithOnlyQualifiers, sizet qualifiersCount ) const {
+ if ( ignoreEmptyNodes && mValue->empty() ) {
+ if ( ignoreNodesWithOnlyQualifiers )
+ return spINode();
+ else if ( !ignoreNodesWithOnlyQualifiers && qualifiersCount == 0 )
+ return spINode();
+ }
+
+ spISimpleNode newNode = ISimpleNode_I::CreateSimpleNode( mNameSpace, mName, mValue );
+ newNode->SetURIType( mIsURIType );
+ return newNode;
+ }
+
+ void SimpleNodeImpl::resetChangesForChildren() const { }
+
+ spISimpleNode APICALL SimpleNodeImpl::ConvertToSimpleNode() {
+ return MakeUncheckedSharedPointer( this, __FILE__, __LINE__ );
+ }
+
+ spISimpleNode ISimpleNode_I::CreateSimpleNode( const spcIUTF8String & nameSpace, const spcIUTF8String & name, const spcIUTF8String & value ) {
+ return MakeUncheckedSharedPointer(
+ new SimpleNodeImpl( nameSpace->c_str(), nameSpace->size(), name->c_str(), name->size(),
+ value ? value->c_str() : NULL, value ? value->size() : AdobeXMPCommon::npos ), __FILE__, __LINE__, true );
+ }
+
+}
+
+namespace AdobeXMPCore {
+ using namespace AdobeXMPCore_Int;
+ spISimpleNode ISimpleNode::CreateSimpleNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, const char * value, sizet valueLength ) {
+ return MakeUncheckedSharedPointer( new SimpleNodeImpl( nameSpace, nameSpaceLength, name, nameLength, value, valueLength ), __FILE__, __LINE__, true );
+ }
+
+ spISimpleNode ISimpleNode_v1::MakeShared( pISimpleNode_base ptr ) {
+ if ( !ptr ) return spISimpleNode();
+ pISimpleNode p = ISimpleNode::GetInterfaceVersion() > 1 ? ptr->GetInterfacePointer< ISimpleNode >() : ptr;
+ return MakeUncheckedSharedPointer( p, __FILE__, __LINE__, false );
+ }
+
+}
diff --git a/XMPCore/source/StructureNodeImpl.cpp b/XMPCore/source/StructureNodeImpl.cpp
new file mode 100644
index 0000000..646829e
--- /dev/null
+++ b/XMPCore/source/StructureNodeImpl.cpp
@@ -0,0 +1,231 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#define IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED 1
+ #include "XMPCore/ImplHeaders/StructureNodeImpl.h"
+ #include "XMPCore/ImplHeaders/TNodeIteratorImpl.h"
+#undef IMPLEMENTATION_HEADERS_CAN_BE_INCLUDED
+
+#include "XMPCommon/Interfaces/IError_I.h"
+#include "XMPCore/XMPCoreErrorCodes.h"
+#include "XMPCommon/Interfaces/IUTF8String_I.h"
+#include "XMPCommon/Utilities/AutoSharedLock.h"
+#include "XMPCore/Interfaces/INodeIterator_I.h"
+#include "XMPCommon/Utilities/TSmartPointers_I.h"
+
+namespace AdobeXMPCore_Int {
+
+ // All virtual functions
+
+ StructureNodeImpl::StructureNodeImpl( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength )
+ : NodeImpl( nameSpace, nameSpaceLength, name, nameLength ) { }
+
+ spINode APICALL StructureNodeImpl::GetNode( const spcIUTF8String & nameSpace, const spcIUTF8String & name ) {
+ if ( nameSpace->size() == 0 || name->size() == 0 )
+ return spINode();
+ QualifiedName qName( nameSpace, name );
+ AutoSharedLock lock( mSharedMutex );
+ auto it = mChildrenMap.find( qName );
+ if ( it != mChildrenMap.end() )
+ return MakeUncheckedSharedPointer( it->second.get(), __FILE__, __LINE__ );
+ return spINode();
+ }
+
+ spINode APICALL StructureNodeImpl::GetNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) {
+ spIUTF8String nameSpaceStr( IUTF8String_I::CreateUTF8String( nameSpace, nameSpaceLength ) );
+ spIUTF8String nameStr( IUTF8String_I::CreateUTF8String( name, nameLength ) );
+ return GetNode( nameSpaceStr, nameStr );
+ }
+
+ spINode APICALL StructureNodeImpl::RemoveNode( const spcIUTF8String & nameSpace, const spcIUTF8String & name ) {
+ if ( nameSpace->size() == 0 || name->size() == 0 )
+ return spINode();
+ QualifiedName qName( nameSpace, name );
+ AutoSharedLock lock( mSharedMutex, true );
+ auto it = mChildrenMap.find( qName );
+ if ( it == mChildrenMap.end() ) {
+ return spINode();
+ } else {
+ spINode node = it->second;
+ mChildrenMap.erase( it );
+ node->GetINode_I()->ChangeParent( NULL );
+ return node;
+ }
+ }
+
+ spINode APICALL StructureNodeImpl::RemoveNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) {
+ spIUTF8String nameSpaceStr( IUTF8String_I::CreateUTF8String( nameSpace, nameSpaceLength ) );
+ spIUTF8String nameStr( IUTF8String_I::CreateUTF8String( name, nameLength ) );
+ return RemoveNode( nameSpaceStr, nameStr );
+ }
+
+ INode_v1::eNodeType APICALL StructureNodeImpl::GetChildNodeType( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) const {
+ auto node = GetNode( nameSpace, nameSpaceLength, name, nameLength );
+ if ( node )
+ return node->GetNodeType();
+ return INode::kNTNone;
+ }
+
+ INode_v1::eNodeType APICALL StructureNodeImpl::GetNodeType() const {
+ return INode_v1::kNTStructure;
+ }
+
+ void APICALL StructureNodeImpl::InsertNode( const spINode & node ) {
+ if ( !CheckSuitabilityToBeUsedAsChildNode( node ) )
+ return;
+ QualifiedName qName( node->GetNameSpace(), node->GetName() );
+ AutoSharedLock lock( mSharedMutex, true );
+ auto it = mChildrenMap.find( qName );
+ if ( it == mChildrenMap.end() ) {
+ mChildrenMap[ qName ] = MakeUncheckedSharedPointer( node.get(), __FILE__, __LINE__ );
+ node->GetINode_I()->ChangeParent( this );
+ } else {
+ NOTIFY_ERROR( IError_v1::kEDDataModel, kDMECNodeAlreadyExists,
+ "a node already exists with the same qualified name", IError_v1::kESOperationFatal,
+ true, node->GetNameSpace(), true, node->GetName() );
+ }
+ }
+
+ spINode APICALL StructureNodeImpl::ReplaceNode( const spINode & node ) {
+ if ( CheckSuitabilityToBeUsedAsChildNode( node ) && GetNode( node->GetNameSpace(), node->GetName() ) ) {
+ auto retValue = RemoveNode( node->GetNameSpace(), node->GetName() );
+ InsertNode( node );
+ return retValue;
+ } else {
+ NOTIFY_ERROR( IError_v1::kEDDataModel, kDMECNoSuchNodeExists,
+ "no such node exists with the specified qualified name", IError_v1::kESOperationFatal,
+ true, node->GetNameSpace(), true, node->GetName() );
+ }
+ return spINode();
+ }
+
+ void APICALL StructureNodeImpl::AppendNode( const spINode & node ) {
+ InsertNode( node );
+ }
+
+ spINodeIterator APICALL StructureNodeImpl::Iterator() {
+ AutoSharedLock lock( mSharedMutex );
+ auto beginIt = mChildrenMap.begin(), endIt = mChildrenMap.end();
+ if ( beginIt == endIt )
+ return spINodeIterator();
+ else
+ return MakeUncheckedSharedPointer( new TNodeIteratorImpl< QualifiedNameNodeMap::iterator >( beginIt, endIt ), __FILE__, __LINE__, true );
+ }
+
+ sizet APICALL StructureNodeImpl::ChildCount() const __NOTHROW__ {
+ AutoSharedLock lock( mSharedMutex );
+ return mChildrenMap.size();
+ }
+
+ spIStructureNode APICALL StructureNodeImpl::ConvertToStructureNode() {
+ return MakeUncheckedSharedPointer( this, __FILE__, __LINE__ );
+ }
+
+ bool APICALL StructureNodeImpl::HasContent() const {
+ AutoSharedLock lock( mSharedMutex );
+ return mChildrenMap.size() > 0;
+ }
+
+ bool StructureNodeImpl::ValidateNameOrNameSpaceChangeForAChild( const spcIUTF8String & currentNameSpace, const spcIUTF8String & currentName, const spcIUTF8String & newNameSpace, const spcIUTF8String & newName ) {
+ auto node = GetNode( newNameSpace, newNameSpace );
+ if ( node ) {
+ return false;
+ } else {
+ node = RemoveNode( currentNameSpace, currentName );
+ AutoSharedLock( mSharedMutex, true );
+ mChildrenMap[ QualifiedName( newNameSpace, newName ) ] = node;
+ return true;
+ }
+ }
+
+ void APICALL StructureNodeImpl::ClearContents() {
+ AutoSharedLock lock( mSharedMutex, true );
+ for ( auto it = mChildrenMap.begin(), itEnd = mChildrenMap.end(); it != itEnd; ++it ) {
+ it->second->GetINode_I()->ChangeParent( NULL );
+ }
+ mChildrenMap.clear();
+ }
+
+ spINode APICALL StructureNodeImpl::CloneContents( bool ignoreEmptyNodes, bool ignoreNodesWithOnlyQualifiers, sizet qualifiersCount ) const {
+ AutoSharedLock lock( mSharedMutex );
+ spIStructureNode newNode;
+ if ( ignoreEmptyNodes && mChildrenMap.size() == 0 ) {
+ if ( ignoreNodesWithOnlyQualifiers )
+ return newNode;
+ else if ( !ignoreNodesWithOnlyQualifiers && qualifiersCount == 0 )
+ return newNode;
+ }
+
+ newNode = IStructureNode_I::CreateStructureNode( mNameSpace, mName );
+
+ auto endIt = mChildrenMap.end();
+ for ( auto it = mChildrenMap.begin(); it != endIt; ++it ) {
+ spINode childNode = it->second->Clone( ignoreEmptyNodes, ignoreNodesWithOnlyQualifiers );
+ if ( childNode ) {
+ newNode->AppendNode( childNode );
+ }
+ }
+
+ if ( ignoreEmptyNodes && newNode->ChildCount() == 0 ) {
+ if ( ignoreNodesWithOnlyQualifiers )
+ return spINode();
+ else if ( !ignoreNodesWithOnlyQualifiers && qualifiersCount == 0 )
+ return spINode();
+ }
+
+ return newNode;
+ }
+
+ void StructureNodeImpl::resetChangesForChildren() const {
+ AutoSharedLock lock( mSharedMutex );
+ for ( auto it = mChildrenMap.begin(), itEnd = mChildrenMap.end(); it != itEnd; ++it ) {
+ it->second->AcknowledgeChanges();
+ }
+ }
+
+ bool StructureNodeImpl::CompareQualifiedName::operator()( const QualifiedName & key1, const QualifiedName & key2 ) const {
+ int result = key1.mNameSpace->compare( key2.mNameSpace );
+
+ if ( result < 0 ) {
+ return true;
+ } else if ( result == 0 ) {
+ result = key1.mName->compare( key2.mName );
+ if ( result < 0 )
+ return true;
+ }
+ return false;
+ }
+
+ spIStructureNode IStructureNode_I::CreateStructureNode( const spcIUTF8String & nameSpace, const spcIUTF8String name ) {
+ return MakeUncheckedSharedPointer( new StructureNodeImpl(
+ nameSpace ? nameSpace->c_str() : NULL, nameSpace ? nameSpace->size() : 0,
+ name ? name->c_str() : NULL, name ? name->size(): 0 ), __FILE__, __LINE__ );
+ }
+
+ template<>
+ spINode TNodeIteratorImpl< StructureNodeImpl::QualifiedNameNodeMap::iterator >::GetNodeFromIterator( const StructureNodeImpl::QualifiedNameNodeMap::iterator & it ) const {
+ return MakeUncheckedSharedPointer( it->second.get(), __FILE__, __LINE__, false );
+ }
+}
+
+#if BUILDING_XMPCORE_LIB || SOURCE_COMPILING_XMPCORE_LIB
+namespace AdobeXMPCore {
+ using namespace AdobeXMPCore_Int;
+
+ spIStructureNode IStructureNode_v1::MakeShared( pIStructureNode_base ptr ) {
+ if ( !ptr ) return spIStructureNode();
+ pIStructureNode p = IStructureNode::GetInterfaceVersion() > 1 ? ptr->GetInterfacePointer< IStructureNode >() : ptr;
+ return MakeUncheckedSharedPointer( p, __FILE__, __LINE__, false );
+ }
+
+ spIStructureNode IStructureNode_v1::CreateStructureNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) {
+ return MakeUncheckedSharedPointer( new StructureNodeImpl( nameSpace, nameSpaceLength, name, nameLength ), __FILE__, __LINE__, true );
+ }
+}
+#endif // BUILDING_XMPCORE_LIB || SOURCE_COMPILING_XMPCORE_LIB
diff --git a/XMPCore/source/WXMPIterator.cpp b/XMPCore/source/WXMPIterator.cpp
index 401b468..1c3ebab 100644
--- a/XMPCore/source/WXMPIterator.cpp
+++ b/XMPCore/source/WXMPIterator.cpp
@@ -13,7 +13,6 @@
#include "XMPCore/source/XMPCore_Impl.hpp"
#include "XMPCore/source/XMPIterator.hpp"
-
#if XMP_WinBuild
#pragma warning ( disable : 4101 ) // unreferenced local variable
#pragma warning ( disable : 4189 ) // local variable is initialized but not referenced
@@ -46,7 +45,11 @@ WXMPIterator_PropCTor_1 ( XMPMetaRef xmpRef,
const XMPMeta & xmpObj = WtoXMPMeta_Ref ( xmpRef );
XMP_AutoLock metaLock ( &xmpObj.lock, kXMP_ReadLock );
- XMPIterator * iter = new XMPIterator ( xmpObj, schemaNS, propName, options );
+ XMPIterator * iter = NULL;
+ if (!iter) {
+
+ iter = new XMPIterator(xmpObj, schemaNS, propName, options);
+ }
++iter->clientRefs;
XMP_Assert ( iter->clientRefs == 1 );
wResult->ptrResult = XMPIteratorRef ( iter );
diff --git a/XMPCore/source/WXMPMeta.cpp b/XMPCore/source/WXMPMeta.cpp
index 61f13f1..b547f76 100644
--- a/XMPCore/source/WXMPMeta.cpp
+++ b/XMPCore/source/WXMPMeta.cpp
@@ -13,6 +13,11 @@
#include "XMPCore/source/XMPCore_Impl.hpp"
#include "XMPCore/source/XMPMeta.hpp"
+#include "XMPCore/source/XMPMeta2.hpp"
+#include "XMPCore/XMPCoreDefines.h"
+#if ENABLE_CPP_DOM_MODEL
+ #include "XMPCore/Interfaces/IMetadata_I.h"
+#endif
#if XMP_WinBuild
#pragma warning ( disable : 4101 ) // unreferenced local variable
@@ -76,7 +81,19 @@ WXMPMeta_CTor_1 ( WXMP_Result * wResult )
{
XMP_ENTER_Static ( "WXMPMeta_CTor_1" ) // No lib object yet, use the static entry.
- XMPMeta * xmpObj = new XMPMeta();
+ XMPMeta * xmpObj( NULL );
+ XMP_Bool isCreated = false;
+
+#if ENABLE_CPP_DOM_MODEL
+ if ( sUseNewCoreAPIs ) {
+ xmpObj = new XMPMeta2();
+ isCreated = true;
+ }
+#endif
+
+ if(!isCreated)
+ xmpObj = new XMPMeta();
+
++xmpObj->clientRefs;
XMP_Assert ( xmpObj->clientRefs == 1 );
wResult->ptrResult = XMPMetaRef ( xmpObj );
@@ -1005,11 +1022,56 @@ WXMPMeta_Clone_1 ( XMPMetaRef xmpObjRef,
{
XMP_ENTER_ObjRead ( XMPMeta, "WXMPMeta_Clone_1" )
- XMPMeta * xClone = new XMPMeta; // ! Don't need an output lock, final ref assignment in client glue.
+ XMPMeta * xClone ( NULL );
+ XMP_Bool isCloned = false;
+#if ENABLE_CPP_DOM_MODEL
+ if(sUseNewCoreAPIs) {
+ isCloned = true;
+ try {
+ const XMPMeta2 & temp = dynamic_cast< const XMPMeta2 & >( thiz );
+ xClone = new XMPMeta2;
+ }
+ catch ( ... ) {
+ xClone = new XMPMeta;
+ }
+ }
+#endif
+ if(!isCloned) {
+ xClone = new XMPMeta;
+ }
+
+
thiz.Clone ( xClone, options );
XMP_Assert ( xClone->clientRefs == 0 ); // ! Gets incremented in TXMPMeta::Clone.
wResult->ptrResult = xClone;
-
+
+ XMP_EXIT
+}
+
+void
+WXMPMeta_GetIXMPMetadata_1(XMPMetaRef xmpObjRef,
+ WXMP_Result * wResult )
+{
+ XMP_ENTER_ObjRead( XMPMeta, "WXMPMeta_GetIXMPMetadata_1" )
+ XMP_Bool haveResult = false;
+#if ENABLE_CPP_DOM_MODEL
+ if(sUseNewCoreAPIs){
+ haveResult = true;
+ try {
+ const XMPMeta2 & temp = dynamic_cast< const XMPMeta2 & >( thiz );
+ auto ptr = temp.mDOM.get();
+ wResult->ptrResult = ptr;
+ } catch ( ... ) {
+ wResult->ptrResult = NULL;
+ wResult->errMessage = "Not Available";
+ }
+ }
+#endif
+ if(!haveResult) {
+ wResult->ptrResult = NULL;
+ wResult->errMessage = "Not Available";
+ }
+
XMP_EXIT
}
@@ -1132,7 +1194,7 @@ WXMPMeta_SerializeToBuffer_1 ( XMPMetaRef xmpObjRef,
if ( indent == 0 ) indent = "";
thiz.SerializeToBuffer ( &localStr, options, padding, newline, indent, baseIndent );
- if ( pktString != 0 ) (*SetClientString) ( pktString, localStr.c_str(), localStr.size() );
+ if ( pktString != 0 ) (*SetClientString) ( pktString, localStr.c_str(), static_cast< XMP_StringLen >( localStr.size() ) );
XMP_EXIT
}
@@ -1184,8 +1246,17 @@ WXMPMeta_ResetErrorCallbackLimit_1 ( XMPMetaRef xmpObjRef,
XMP_EXIT
}
-// =================================================================================================
+void WXMPMeta_Use_CPP_DOM_APIs_1(XMP_Bool useNewCoreAPIs,
+ WXMP_Result * wResult )
+{
+#if ENABLE_CPP_DOM_MODEL
+ XMP_ENTER_Static ( "WXMPMeta_Use_CPP_DOM_APIs_1" )
+ sUseNewCoreAPIs = useNewCoreAPIs;
+ XMP_EXIT
+#endif
+}
+// =================================================================================================
#if __cplusplus
} /* extern "C" */
#endif
diff --git a/XMPCore/source/WXMPUtils.cpp b/XMPCore/source/WXMPUtils.cpp
index 6d8f995..a31453c 100644
--- a/XMPCore/source/WXMPUtils.cpp
+++ b/XMPCore/source/WXMPUtils.cpp
@@ -10,7 +10,6 @@
#include "public/include/XMP_Environment.h" // ! This must be the first include!
#include "public/include/XMP_Const.h"
-
#include "public/include/client-glue/WXMPUtils.hpp"
#include "XMPCore/source/XMPCore_Impl.hpp"
@@ -49,7 +48,7 @@ WXMPUtils_ComposeArrayItemPath_1 ( XMP_StringPtr schemaNS,
XMP_VarString localStr;
XMPUtils::ComposeArrayItemPath ( schemaNS, arrayName, itemIndex, &localStr );
- if ( itemPath != 0 ) (*SetClientString) ( itemPath, localStr.c_str(), localStr.size() );
+ if ( itemPath != 0 ) (*SetClientString) ( itemPath, localStr.c_str(), static_cast< XMP_StringLen >( localStr.size() ) );
XMP_EXIT
}
@@ -75,7 +74,7 @@ WXMPUtils_ComposeStructFieldPath_1 ( XMP_StringPtr schemaNS,
XMP_VarString localStr;
XMPUtils::ComposeStructFieldPath ( schemaNS, structName, fieldNS, fieldName, &localStr );
- if ( fieldPath != 0 ) (*SetClientString) ( fieldPath, localStr.c_str(), localStr.size() );
+ if ( fieldPath != 0 ) (*SetClientString) ( fieldPath, localStr.c_str(), static_cast< XMP_StringLen >( localStr.size() ));
XMP_EXIT
}
@@ -101,7 +100,7 @@ WXMPUtils_ComposeQualifierPath_1 ( XMP_StringPtr schemaNS,
XMP_VarString localStr;
XMPUtils::ComposeQualifierPath ( schemaNS, propName, qualNS, qualName, &localStr );
- if ( qualPath != 0 ) (*SetClientString) ( qualPath, localStr.c_str(), localStr.size() );
+ if ( qualPath != 0 ) (*SetClientString) ( qualPath, localStr.c_str(), static_cast< XMP_StringLen >( localStr.size() ) );
XMP_EXIT
}
@@ -125,7 +124,7 @@ WXMPUtils_ComposeLangSelector_1 ( XMP_StringPtr schemaNS,
XMP_VarString localStr;
XMPUtils::ComposeLangSelector ( schemaNS, arrayName, langName, &localStr );
- if ( selPath != 0 ) (*SetClientString) ( selPath, localStr.c_str(), localStr.size() );
+ if ( selPath != 0 ) (*SetClientString) ( selPath, localStr.c_str(), static_cast< XMP_StringLen >( localStr.size() ) );
XMP_EXIT
}
@@ -153,7 +152,7 @@ WXMPUtils_ComposeFieldSelector_1 ( XMP_StringPtr schemaNS,
XMP_VarString localStr;
XMPUtils::ComposeFieldSelector ( schemaNS, arrayName, fieldNS, fieldName, fieldValue, &localStr );
- if ( selPath != 0 ) (*SetClientString) ( selPath, localStr.c_str(), localStr.size() );
+ if ( selPath != 0 ) (*SetClientString) ( selPath, localStr.c_str(), static_cast< XMP_StringLen >( localStr.size() ));
XMP_EXIT
}
@@ -171,7 +170,7 @@ WXMPUtils_ConvertFromBool_1 ( XMP_Bool binValue,
XMP_VarString localStr;
XMPUtils::ConvertFromBool ( binValue, &localStr );
- if ( strValue != 0 ) (*SetClientString) ( strValue, localStr.c_str(), localStr.size() );
+ if ( strValue != 0 ) (*SetClientString) ( strValue, localStr.c_str(), static_cast< XMP_StringLen >( localStr.size() ) );
XMP_EXIT
}
@@ -192,7 +191,7 @@ WXMPUtils_ConvertFromInt_1 ( XMP_Int32 binValue,
XMP_VarString localStr;
XMPUtils::ConvertFromInt ( binValue, format, &localStr );
- if ( strValue != 0 ) (*SetClientString) ( strValue, localStr.c_str(), localStr.size() );
+ if ( strValue != 0 ) (*SetClientString) ( strValue, localStr.c_str(), static_cast< XMP_StringLen >( localStr.size() ) );
XMP_EXIT
}
@@ -213,7 +212,7 @@ WXMPUtils_ConvertFromInt64_1 ( XMP_Int64 binValue,
XMP_VarString localStr;
XMPUtils::ConvertFromInt64 ( binValue, format, &localStr );
- if ( strValue != 0 ) (*SetClientString) ( strValue, localStr.c_str(), localStr.size() );
+ if ( strValue != 0 ) (*SetClientString) ( strValue, localStr.c_str(), static_cast< XMP_StringLen >( localStr.size() ) );
XMP_EXIT
}
@@ -234,7 +233,7 @@ WXMPUtils_ConvertFromFloat_1 ( double binValue,
XMP_VarString localStr;
XMPUtils::ConvertFromFloat ( binValue, format, &localStr );
- if ( strValue != 0 ) (*SetClientString) ( strValue, localStr.c_str(), localStr.size() );
+ if ( strValue != 0 ) (*SetClientString) ( strValue, localStr.c_str(), static_cast< XMP_StringLen >( localStr.size() ) );
XMP_EXIT
}
@@ -252,7 +251,7 @@ WXMPUtils_ConvertFromDate_1 ( const XMP_DateTime & binValue,
XMP_VarString localStr;
XMPUtils::ConvertFromDate( binValue, &localStr );
- if ( strValue != 0 ) (*SetClientString) ( strValue, localStr.c_str(), localStr.size() );
+ if ( strValue != 0 ) (*SetClientString) ( strValue, localStr.c_str(), static_cast< XMP_StringLen >( localStr.size() ) );
XMP_EXIT
}
@@ -417,7 +416,7 @@ WXMPUtils_EncodeToBase64_1 ( XMP_StringPtr rawStr,
XMP_VarString localStr;
XMPUtils::EncodeToBase64 ( rawStr, rawLen, &localStr );
- if ( encodedStr != 0 ) (*SetClientString) ( encodedStr, localStr.c_str(), localStr.size() );
+ if ( encodedStr != 0 ) (*SetClientString) ( encodedStr, localStr.c_str(), static_cast< XMP_StringLen >( localStr.size()) );
XMP_EXIT
}
@@ -436,7 +435,7 @@ WXMPUtils_DecodeFromBase64_1 ( XMP_StringPtr encodedStr,
XMP_VarString localStr;
XMPUtils::DecodeFromBase64 ( encodedStr, encodedLen, &localStr );
- if ( rawStr != 0 ) (*SetClientString) ( rawStr, localStr.c_str(), localStr.size() );
+ if ( rawStr != 0 ) (*SetClientString) ( rawStr, localStr.c_str(), static_cast< XMP_StringLen >( localStr.size()) );
XMP_EXIT
}
@@ -461,9 +460,9 @@ WXMPUtils_PackageForJPEG_1 ( XMPMetaRef wxmpObj,
XMP_AutoLock metaLock ( &xmpObj.lock, kXMP_ReadLock );
XMPUtils::PackageForJPEG ( xmpObj, &localStdStr, &localExtStr, &localDigestStr );
- if ( stdStr != 0 ) (*SetClientString) ( stdStr, localStdStr.c_str(), localStdStr.size() );
- if ( extStr != 0 ) (*SetClientString) ( extStr, localExtStr.c_str(), localExtStr.size() );
- if ( digestStr != 0 ) (*SetClientString) ( digestStr, localDigestStr.c_str(), localDigestStr.size() );
+ if ( stdStr != 0 ) (*SetClientString) ( stdStr, localStdStr.c_str(), static_cast< XMP_StringLen >( localStdStr.size()) );
+ if ( extStr != 0 ) (*SetClientString) ( extStr, localExtStr.c_str(), static_cast< XMP_StringLen >( localExtStr.size()) );
+ if ( digestStr != 0 ) (*SetClientString) ( digestStr, localDigestStr.c_str(), static_cast< XMP_StringLen >( localDigestStr.size()) );
XMP_EXIT
}
@@ -518,7 +517,7 @@ WXMPUtils_CatenateArrayItems_1 ( XMPMetaRef wxmpObj,
XMP_AutoLock metaLock ( &xmpObj.lock, kXMP_ReadLock );
XMPUtils::CatenateArrayItems ( xmpObj, schemaNS, arrayName, separator, quotes, options, &localStr );
- if ( catedStr != 0 ) (*SetClientString) ( catedStr, localStr.c_str(), localStr.size() );
+ if ( catedStr != 0 ) (*SetClientString) ( catedStr, localStr.c_str(), static_cast< XMP_StringLen >( localStr.size() ));
XMP_EXIT
}
diff --git a/XMPCore/source/XMPCore_Impl.cpp b/XMPCore/source/XMPCore_Impl.cpp
index ddae20a..daec535 100644
--- a/XMPCore/source/XMPCore_Impl.cpp
+++ b/XMPCore/source/XMPCore_Impl.cpp
@@ -10,9 +10,7 @@
#include "public/include/XMP_Version.h"
#include "XMPCore/source/XMPCore_Impl.hpp"
#include "XMPCore/source/XMPMeta.hpp" // *** For use of GetNamespacePrefix in FindSchemaNode.
-
#include "source/UnicodeInlines.incl_cpp"
-
#include <algorithm>
using namespace std;
@@ -56,6 +54,8 @@ XMP_NamespaceTable * sRegisteredNamespaces = 0;
XMP_AliasMap * sRegisteredAliasMap = 0;
+XMP_ReadWriteLock * sDefaultNamespacePrefixMapLock = 0;
+
void * voidVoidPtr = 0; // Used to backfill null output parameters.
XMP_StringPtr voidStringPtr = 0;
XMP_StringLen voidStringLen = 0;
@@ -68,6 +68,60 @@ double voidDouble = 0.0;
XMP_DateTime voidDateTime;
WXMP_Result void_wResult;
+ #if ENABLE_CPP_DOM_MODEL
+ XMP_Bool sUseNewCoreAPIs = false;
+ #endif
+
+ #if ! XMP_StaticBuild
+
+ #undef malloc
+ #undef free
+ typedef void * (*XMP_AllocateProc) (size_t size);
+
+ typedef void(*XMP_DeleteProc) (void * ptr);
+
+ XMP_AllocateProc sXMP_MemAlloc = malloc;
+ XMP_DeleteProc sXMP_MemFree = free;
+ #define malloc(size) (*sXMP_MemAlloc) ( size )
+ #define free(addr) (*sXMP_MemFree) ( addr )
+
+ void * operator new ( size_t len ) throw ( std::bad_alloc )
+ {
+ void * mem = (*sXMP_MemAlloc) ( len );
+ if ( (mem == 0) && (len != 0) ) throw std::bad_alloc();
+ return mem;
+ }
+
+ void * operator new( std::size_t len, const std::nothrow_t & nothrow ) throw () {
+ void * mem = (*sXMP_MemAlloc) ( len );
+ return mem;
+ }
+
+ void * operator new[] ( size_t len ) throw ( std::bad_alloc )
+ {
+ void * mem = (*sXMP_MemAlloc) ( len );
+ if ( (mem == 0) && (len != 0) ) throw std::bad_alloc();
+ return mem;
+ }
+
+ void operator delete ( void * ptr ) throw()
+ {
+ if ( ptr != 0 ) (*sXMP_MemFree) ( ptr );
+ }
+
+ void operator delete ( void * ptr, const std::nothrow_t & nothrow ) throw ()
+ {
+ return operator delete( ptr );
+ }
+
+ void operator delete[] ( void * ptr ) throw()
+ {
+ if ( ptr != 0 ) (*sXMP_MemFree) ( ptr );
+ }
+
+#endif
+
+
// =================================================================================================
// Local Utilities
// ===============
@@ -212,7 +266,7 @@ FindIndexedItem ( XMP_Node * arrayNode, const XMP_VarString & indexStep, bool cr
// The value portion is a string quoted by ''' or '"'. The value may contain any character including
// a doubled quoting character. The value may be empty.
-static void
+void
SplitNameAndValue ( const XMP_VarString & selStep, XMP_VarString * nameStr, XMP_VarString * valueStr )
{
XMP_StringPtr partBegin = selStep.c_str();
@@ -263,7 +317,7 @@ SplitNameAndValue ( const XMP_VarString & selStep, XMP_VarString * nameStr, XMP_
static XMP_Index
LookupQualSelector ( XMP_Node * arrayNode, const XMP_VarString & qualName, XMP_VarString & qualValue )
{
- XMP_Index index;
+ size_t index;
if ( qualName == "xml:lang" ) {
@@ -273,7 +327,7 @@ LookupQualSelector ( XMP_Node * arrayNode, const XMP_VarString & qualName, XMP_V
} else {
- XMP_Index itemLim;
+ size_t itemLim;
for ( index = 0, itemLim = arrayNode->children.size(); index != itemLim; ++index ) {
const XMP_Node * currItem = arrayNode->children[index];
@@ -293,7 +347,7 @@ LookupQualSelector ( XMP_Node * arrayNode, const XMP_VarString & qualName, XMP_V
}
- return index;
+ return static_cast<XMP_Index>( index );
} // LookupQualSelector
@@ -348,7 +402,7 @@ FollowXPathStep ( XMP_Node * parentNode,
if ( stepKind == kXMP_ArrayIndexStep ) {
index = FindIndexedItem ( parentNode, nextStep.step, createNodes );
} else if ( stepKind == kXMP_ArrayLastStep ) {
- index = parentNode->children.size() - 1;
+ index = static_cast<XMP_Index>( parentNode->children.size() - 1 );
} else if ( stepKind == kXMP_FieldSelectorStep ) {
XMP_VarString fieldName, fieldValue;
SplitNameAndValue ( nextStep.step, &fieldName, &fieldValue );
@@ -588,7 +642,7 @@ ExpandXPath ( XMP_StringPtr schemaNS,
XMP_Assert ( (schemaNS != 0) && (propPath != 0) && (*propPath != 0) && (expandedXPath != 0) );
XMP_StringPtr stepBegin, stepEnd;
- XMP_StringPtr qualName, nameEnd;
+ XMP_StringPtr qualName = 0 , nameEnd = 0;
XMP_VarString currStep;
size_t resCount = 2; // Guess at the number of steps. At least 2, plus 1 for each '/' or '['.
@@ -748,7 +802,9 @@ XMP_Node *
FindSchemaNode ( XMP_Node * xmpTree,
XMP_StringPtr nsURI,
bool createNodes,
- XMP_NodePtrPos * ptrPos /* = 0 */ )
+ XMP_NodePtrPos * ptrPos /* = 0 */,
+ PrefixSearchFnPtr prefixSearchFnPtr/* = NULL*/,
+ void * privateData/* = NULL*/ )
{
XMP_Node * schemaNode = 0;
@@ -771,7 +827,13 @@ FindSchemaNode ( XMP_Node * xmpTree,
try {
XMP_StringPtr prefixPtr;
XMP_StringLen prefixLen;
- bool found = XMPMeta::GetNamespacePrefix ( nsURI, &prefixPtr, &prefixLen ); // *** Use map directly?
+ bool found ( false );
+ if (prefixSearchFnPtr && privateData) {
+ found = prefixSearchFnPtr ( privateData, nsURI, &prefixPtr, &prefixLen );
+ }
+ else {
+ found = XMPMeta::GetNamespacePrefix ( nsURI, &prefixPtr, &prefixLen ); // *** Use map directly?
+ }
XMP_Assert ( found );
schemaNode->value.assign ( prefixPtr, prefixLen );
} catch (...) { // Don't leak schemaNode in case of an exception before adding it to the children vector.
@@ -919,7 +981,7 @@ FindQualifierNode ( XMP_Node * parent,
XMP_Index
LookupFieldSelector ( const XMP_Node * arrayNode, XMP_StringPtr fieldName, XMP_StringPtr fieldValue )
{
- XMP_Index index, itemLim;
+ size_t index, itemLim;
for ( index = 0, itemLim = arrayNode->children.size(); index != itemLim; ++index ) {
@@ -942,7 +1004,7 @@ LookupFieldSelector ( const XMP_Node * arrayNode, XMP_StringPtr fieldName, XMP_S
}
if ( index == itemLim ) index = -1;
- return index;
+ return static_cast<XMP_Index>( index );
} // LookupFieldSelector
@@ -959,8 +1021,8 @@ LookupLangItem ( const XMP_Node * arrayNode, XMP_VarString & lang )
XMP_Throw ( "Language item must be used on array", kXMPErr_BadXPath );
}
- XMP_Index index = 0;
- XMP_Index itemLim = arrayNode->children.size();
+ size_t index = 0;
+ size_t itemLim = arrayNode->children.size();
for ( ; index != itemLim; ++index ) {
const XMP_Node * currItem = arrayNode->children[index];
@@ -970,7 +1032,7 @@ LookupLangItem ( const XMP_Node * arrayNode, XMP_VarString & lang )
}
if ( index == itemLim ) index = -1;
- return index;
+ return static_cast<XMP_Index>( index );
} // LookupLangItem
diff --git a/XMPCore/source/XMPCore_Impl.hpp b/XMPCore/source/XMPCore_Impl.hpp
index 180f581..52aa114 100644
--- a/XMPCore/source/XMPCore_Impl.hpp
+++ b/XMPCore/source/XMPCore_Impl.hpp
@@ -58,10 +58,28 @@ typedef XMP_AliasMap::const_iterator XMP_cAliasMapPos;
extern XMP_Int32 sXMP_InitCount;
+typedef void * (*XMP_AllocateProc) (size_t size);
+
+typedef void(*XMP_DeleteProc) (void * ptr);
+
+#if ! XMP_StaticBuild
+
+ extern XMP_AllocateProc sXMP_MemAlloc;
+ extern XMP_DeleteProc sXMP_MemFree;
+
+ #define malloc(size) (*sXMP_MemAlloc) ( size )
+ #define free(addr) (*sXMP_MemFree) ( addr )
+
+#endif
+
+
+extern XMP_Bool sUseNewCoreAPIs;
extern XMP_NamespaceTable * sRegisteredNamespaces;
extern XMP_AliasMap * sRegisteredAliasMap;
+extern XMP_ReadWriteLock * sDefaultNamespacePrefixMapLock;
+
#define WtoXMPMeta_Ref(xmpRef) (const XMPMeta &) (*((XMPMeta*)(xmpRef)))
#define WtoXMPMeta_Ptr(xmpRef) ((XMPMeta*)(xmpRef))
@@ -151,9 +169,9 @@ extern WXMP_Result void_wResult;
#define kXMP_ExistingOnly false
#define FindConstSchema(t,u) FindSchemaNode ( const_cast<XMP_Node*>(t), u, kXMP_ExistingOnly, 0 )
-#define FindConstChild(p,c) FindChildNode ( const_cast<XMP_Node*>(p), c, kXMP_ExistingOnly, 0 )
+#define FindConstChild(p,c) ::FindChildNode ( const_cast<XMP_Node*>(p), c, kXMP_ExistingOnly, 0 )
#define FindConstQualifier(p,c) FindQualifierNode ( const_cast<XMP_Node*>(p), c, kXMP_ExistingOnly, 0 )
-#define FindConstNode(t,p) FindNode ( const_cast<XMP_Node*>(t), p, kXMP_ExistingOnly, 0 )
+#define FindConstNode(t,p) ::FindNode ( const_cast<XMP_Node*>(t), p, kXMP_ExistingOnly, 0 )
extern XMP_OptionBits
VerifySetOptions ( XMP_OptionBits options, XMP_StringPtr propValue );
@@ -167,11 +185,15 @@ ExpandXPath ( XMP_StringPtr schemaNS,
XMP_StringPtr propPath,
XMP_ExpandedXPath * expandedXPath );
+typedef bool (*PrefixSearchFnPtr) ( void * privateData, XMP_StringPtr nsURI, XMP_StringPtr * namespacePrefix, XMP_StringLen * prefixSize );
+
extern XMP_Node *
FindSchemaNode ( XMP_Node * xmpTree,
XMP_StringPtr nsURI,
bool createNodes,
- XMP_NodePtrPos * ptrPos = 0 );
+ XMP_NodePtrPos * ptrPos = 0,
+ PrefixSearchFnPtr prefixSearchFnPtr = NULL,
+ void * privateData = NULL );
extern XMP_Node *
FindChildNode ( XMP_Node * parent,
@@ -229,7 +251,7 @@ static inline bool
IsPathPrefix ( XMP_StringPtr fullPath, XMP_StringPtr prefix )
{
bool isPrefix = false;
- XMP_StringLen prefixLen = strlen(prefix);
+ XMP_StringLen prefixLen = static_cast< XMP_StringLen >( strlen(prefix) );
if ( XMP_LitNMatch ( prefix, fullPath, prefixLen ) ) {
char separator = fullPath[prefixLen];
if ( (separator == 0) || (separator == '/') ||
@@ -334,6 +356,8 @@ public:
void GetLocalURI ( XMP_StringPtr * uriStr, XMP_StringLen * uriSize ) const;
+ void GetFullQualifiedName( XMP_StringPtr * uriStr, XMP_StringLen * uriSize, XMP_StringPtr * nameStr, XMP_StringLen * nameSize ) const;
+
void RemoveChildren()
{
for ( size_t i = 0, vLim = children.size(); i < vLim; ++i ) {
@@ -359,6 +383,8 @@ public:
this->RemoveQualifiers();
}
+ void SetValue( XMP_StringPtr value );
+
virtual ~XMP_Node() { RemoveChildren(); RemoveQualifiers(); };
private:
diff --git a/XMPCore/source/XMPIterator.cpp b/XMPCore/source/XMPIterator.cpp
index 5d0c24b..275e32f 100644
--- a/XMPCore/source/XMPIterator.cpp
+++ b/XMPCore/source/XMPIterator.cpp
@@ -489,9 +489,8 @@ XMPIterator::XMPIterator ( XMP_StringPtr schemaNS,
XMP_StringPtr propName,
XMP_OptionBits options ) : info(IterInfo(options,0)), clientRefs(0)
{
-
- XMP_Throw ( "Unimplemented XMPIterator constructor for global tables", kXMPErr_Unimplemented );
- void * p; p = &schemaNS; p = &propName; p = &options; // Avoid unused param warnings.
+ void * p; p = &schemaNS; p = &propName; p = &options; // Avoid unused param warnings.
+ XMP_Throw("Unimplemented XMPIterator constructor for global tables", kXMPErr_Unimplemented);
} // XMPIterator for global tables
@@ -553,7 +552,7 @@ XMPIterator::Next ( XMP_StringPtr * schemaNS,
}
*schemaNS = info.currSchema.c_str();
- *nsSize = info.currSchema.size();
+ *nsSize = static_cast<XMP_StringLen>(info.currSchema.size());
*propOptions = info.currPos->options;
@@ -565,7 +564,7 @@ XMPIterator::Next ( XMP_StringPtr * schemaNS,
if ( ! (*propOptions & kXMP_SchemaNode) ) {
*propPath = info.currPos->fullPath.c_str();
- *pathSize = info.currPos->fullPath.size();
+ *pathSize = static_cast<XMP_StringLen>(info.currPos->fullPath.size());
if ( info.options & kXMP_IterJustLeafName ) {
*propPath += info.currPos->leafOffset;
@@ -575,7 +574,7 @@ XMPIterator::Next ( XMP_StringPtr * schemaNS,
if ( ! (*propOptions & kXMP_PropCompositeMask) ) {
*propValue = xmpNode->value.c_str();
- *valueSize = xmpNode->value.size();
+ *valueSize = static_cast<XMP_StringLen>(xmpNode->value.size());
}
}
diff --git a/XMPCore/source/XMPIterator.hpp b/XMPCore/source/XMPIterator.hpp
index 1bdc1f3..544bf34 100644
--- a/XMPCore/source/XMPIterator.hpp
+++ b/XMPCore/source/XMPIterator.hpp
@@ -108,7 +108,7 @@ public:
virtual ~XMPIterator() RELEASE_NO_THROW;
- bool
+ virtual bool
Next ( XMP_StringPtr * schemaNS,
XMP_StringLen * nsSize,
XMP_StringPtr * propPath,
@@ -117,7 +117,7 @@ public:
XMP_StringLen * valueSize,
XMP_OptionBits * propOptions );
- void
+ virtual void
Skip ( XMP_OptionBits options );
// ! Expose so that wrappers and file static functions can see the data.
diff --git a/XMPCore/source/XMPIterator2.cpp b/XMPCore/source/XMPIterator2.cpp
new file mode 100644
index 0000000..586fa35
--- /dev/null
+++ b/XMPCore/source/XMPIterator2.cpp
@@ -0,0 +1,542 @@
+// =================================================================================================
+// Copyright 2003 Adobe Systems Incorporated
+// All Rights Reserved.
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+
+#include "public/include/XMP_Environment.h" // ! This must be the first include!
+#include "XMPCore/source/XMPCore_Impl.hpp"
+
+#include "XMPCore/XMPCoreDefines.h"
+#if ENABLE_CPP_DOM_MODEL
+#include "XMPCore/source/XMPIterator2.hpp"
+#include "XMPCore/source/XMPMeta2.hpp"
+#include "XMPCore/source/XMPUtils.hpp"
+#include "XMPCore/Interfaces/IMetadata_I.h"
+#include "XMPCore/Interfaces/INameSpacePrefixMap_I.h"
+#include "XMPCommon/Interfaces/IUTF8String_I.h"
+#include "XMPCore/Interfaces/ISimpleNode_I.h"
+#include <map>
+#include <string>
+#include <stdio.h> // For snprintf.
+
+#if XMP_WinBuild
+ #pragma warning ( disable : 4702 ) // unreachable code
+ #pragma warning ( disable : 4800 ) // forcing value to bool 'true' or 'false' (performance warning)
+ #pragma warning ( disable : 4996 ) // '...' was declared deprecated
+#endif
+
+// =================================================================================================
+// Support Routines
+// =================================================================================================
+
+
+#ifndef TraceIterators
+ #define TraceIterators 0
+#endif
+
+#if TraceIterators
+ static const char * sStageNames[] = { "before", "self", "qualifiers", "children" };
+#endif
+
+
+XMP_VarString GetNameSpace( const AdobeXMPCommon::spcIUTF8String & nameSpace )
+{
+ auto defaultMap = AdobeXMPCore::INameSpacePrefixMap::GetDefaultNameSpacePrefixMap()->GetINameSpacePrefixMap_I();
+ auto prefix = defaultMap->GetPrefix( nameSpace );
+ return prefix->c_str();
+}
+
+
+XMP_VarString NodeFullName( const AdobeXMPCore::spcINode & node )
+{
+ XMP_VarString name = GetNameSpace(node->GetNameSpace()) + ":" + node->GetName()->c_str();
+ return name;
+}
+
+void XMPIterator2::AddSchemaProperties(IteratorNode & iterSchema, const char * nameSpace)
+{
+ using namespace AdobeXMPCore;
+
+ for (auto childIter = mDOM->Iterator(); childIter; childIter = childIter->Next()) {
+
+ spINode childNode = childIter->GetNode();
+ //TODO check name
+ if (!strcmp(childNode->GetNameSpace()->c_str(), nameSpace)) {
+ iterSchema.nodeChildren.push_back(IteratorNode( XMPUtils::GetIXMPOptions(childNode), NodeFullName(childNode), 0 ));
+ }
+
+ }
+
+}
+ void XMPIterator2::SetCurrentSchema(XMP_StringPtr schemaName)
+{
+
+ info.currSchema = schemaName;
+
+} // SetCurrSchema
+
+ void XMPIterator2::SetCurrentSchema(XMP_VarString & schemaName)
+{
+
+ info.currSchema = schemaName;
+
+} // SetCurrSchema
+
+void XMPIterator2::AdvanceIteratorPosition()
+{
+
+ while (true) {
+
+ if (info.currPos == info.endPos) {
+
+ if (info.ancestors.empty()) break;
+
+ IteratorPosPair & parent = info.ancestors.back();
+ info.currPos = parent.first;
+ info.endPos = parent.second;
+ info.ancestors.pop_back();
+ }
+ else {
+
+ if (info.currPos->visitStage == kIter_BeforeVisit) {
+ if (info.currPos->options & kXMP_SchemaNode) SetCurrentSchema(info.currPos->fullPath);
+ break;
+ }
+
+
+ if (info.currPos->visitStage == kIter_VisitSelf) {
+
+ info.currPos->visitStage = kIter_VisitQualifiers;
+ if (!info.currPos->nodeQualifiers.empty()) {
+
+ info.ancestors.push_back(IteratorPosPair(info.currPos, info.endPos));
+ info.endPos = info.currPos->nodeQualifiers.end();
+ info.currPos = info.currPos->nodeQualifiers.begin();
+ break;
+ }
+ }
+
+ if (info.currPos->visitStage == kIter_VisitQualifiers) { // Just finished visiting the qualifiers.
+ info.currPos->nodeQualifiers.clear();
+ info.currPos->visitStage = kIter_VisitChildren; // Start visiting the children.
+ if (!info.currPos->nodeChildren.empty()) {
+ info.ancestors.push_back(IteratorPosPair(info.currPos, info.endPos));
+ info.endPos = info.currPos->nodeChildren.end(); // ! Set the parent's endPos before changing currPos!
+ info.currPos = info.currPos->nodeChildren.begin();
+ break;
+ }
+ }
+
+ if (info.currPos->visitStage == kIter_VisitChildren) {
+ info.currPos->nodeChildren.clear();
+ ++info.currPos;
+ continue;
+ }
+ }
+ }
+
+ XMP_Assert((info.currPos == info.endPos) || (info.currPos->visitStage == kIter_BeforeVisit));
+
+}
+
+AdobeXMPCore::spINode XMPIterator2::GetNextNode(bool & isSchema)
+{
+ using namespace AdobeXMPCore;
+ spINode xmpNode = spINode();
+
+ if (info.currPos->visitStage != kIter_BeforeVisit) AdvanceIteratorPosition();
+
+ bool isSchemaNode = false;
+ XMP_ExpandedXPath exPath;
+
+ while (info.currPos != info.endPos) {
+
+ isSchemaNode = XMP_NodeIsSchema(info.currPos->options);
+ if (isSchemaNode) {
+
+ SetCurrentSchema(info.currPos->fullPath);
+
+ isSchema = isSchemaNode;
+ }
+ else {
+
+ ExpandXPath(info.currSchema.c_str(), info.currPos->fullPath.c_str(), &exPath);
+ bool found = XMPUtils::FindCnstNode(mDOM, exPath, xmpNode);
+ }
+ if (xmpNode || isSchemaNode) break;
+
+ info.currPos->visitStage = kIter_VisitChildren;
+ info.currPos->nodeChildren.clear();
+ info.currPos->nodeQualifiers.clear();
+
+ AdvanceIteratorPosition();
+ }
+
+ if (info.currPos == info.endPos) return spINode();
+
+ XMP_Assert(info.currPos->visitStage == kIter_BeforeVisit);
+
+ if (info.currPos->visitStage == kIter_BeforeVisit) {
+
+ if (!isSchemaNode && !(info.options & kXMP_IterJustChildren)) {
+
+ AddNodeOffSpring(*info.currPos, xmpNode);
+ }
+ info.currPos->visitStage = kIter_VisitSelf;
+ }
+
+ return xmpNode;
+}
+
+void XMPIterator2::AddNodeOffSpring(IteratorNode &iterParent, const AdobeXMPCore::spINode & xmpParent)
+{
+
+ using namespace AdobeXMPCore;
+ XMP_VarString currPath(iterParent.fullPath);
+ size_t leafOffset = currPath.size();
+ if (xmpParent->HasQualifiers() && (!(info.options & kXMP_IterOmitQualifiers))) {
+
+ currPath += "/?"; // All qualifiers are named and use paths like "Prop/?Qual".
+ leafOffset += 2;
+
+ for ( auto qualIter = xmpParent->QualifiersIterator(); qualIter; qualIter = qualIter->Next() ) {
+
+ spINode qualNode = qualIter->GetNode();
+ //TOTO Add prefix too
+ currPath += NodeFullName( qualNode );
+
+ iterParent.nodeQualifiers.push_back( IteratorNode( XMPUtils::GetIXMPOptions( qualNode ), currPath, leafOffset ) );
+ currPath.erase( leafOffset );
+ }
+
+ leafOffset -= 2;
+ currPath.erase(leafOffset);
+
+ }
+ if (XMPUtils::GetNodeChildCount(xmpParent)) {
+
+
+
+ if (xmpParent->GetNodeType() == INode::kNTStructure) {
+ currPath += '/';
+ leafOffset += 1;
+ }
+ size_t childIdx = 0;
+ for (auto childIter = XMPUtils::GetNodeChildIterator(xmpParent); childIter; childIter = childIter->Next(), ++childIdx) {
+
+ spcINode xmpChild = childIter->GetNode();
+ if (xmpParent->GetNodeType() != INode::kNTArray) {
+ //TODO Add prefix as well
+ currPath += NodeFullName(xmpChild);
+ }
+ else {
+
+ char buffer[32]; // AUDIT: Using sizeof(buffer) below for snprintf length is safe.
+ #if XMP_WinBuild
+ snprintf(buffer, sizeof(buffer), "[%Iu]", childIdx + 1); // ! XPath indices are one-based.
+ #else
+ snprintf(buffer, sizeof(buffer), "[%zu]", childIdx + 1);
+ #endif
+ currPath += buffer;
+ }
+
+ iterParent.nodeChildren.push_back(IteratorNode(XMPUtils::GetIXMPOptions(xmpChild), currPath, leafOffset));
+ currPath.erase(leafOffset);
+
+ }
+
+
+ }
+
+
+
+ } // AddNodeOffspring
+
+// =================================================================================================
+// Constructors
+// =================================================================================================
+
+// -------------------------------------------------------------------------------------------------
+// XMPIterator
+// -----------
+//
+// Constructor for iterations over the nodes in an XMPMeta object. This builds a tree of iteration
+// nodes that caches the existing node names of the XMPMeta object. The iteration tree is a partial
+// replica of the XMPMeta tree. The initial iteration tree normally has just the root node, all of
+// the schema nodes for a full object iteration. Lower level nodes (children and qualifiers) are
+// added when the parent is visited. If the kXMP_IterJustChildren option is passed then the initial
+// iterator includes the children and the parent is marked as done. The iteration tree nodes are
+// pruned when they are no longer needed.
+
+XMPIterator2::XMPIterator2 ( const XMPMeta & xmpObjBase,
+ XMP_StringPtr schemaNS,
+ XMP_StringPtr propName,
+ XMP_OptionBits options) :XMPIterator(xmpObjBase, schemaNS, propName, options)
+{
+ using namespace AdobeXMPCore;
+ if ( (options & kXMP_IterClassMask) != kXMP_IterProperties ) {
+ XMP_Throw ( "Unsupported iteration kind", kXMPErr_BadOptions );
+ }
+ iteratorOptions = options;
+ info.options = options;
+
+ if(sUseNewCoreAPIs) {
+
+ const XMPMeta2 & tempPtr = dynamic_cast<const XMPMeta2 &>(xmpObjBase);
+
+ }
+ else {
+ XMP_Throw("Unsupported iteration kind", kXMPErr_BadOptions);
+ }
+
+ const XMPMeta2 & xmpObj = dynamic_cast<const XMPMeta2 &>(xmpObjBase);
+
+ spIMetadata root = xmpObj.mDOM;
+ mDOM = xmpObj.mDOM;
+ // *** Lock the XMPMeta object if we ever stop using a full DLL lock.
+
+ if ( *propName != 0 ) {
+ XMP_ExpandedXPath propPath;
+ ExpandXPath(schemaNS, propName, &propPath);
+ spINode destNode;
+ XMP_OptionBits destOptions = 0;
+ bool nodeFound = XMPUtils::FindCnstNode(root, propPath, destNode,&destOptions);
+
+ if (nodeFound) {
+
+ XMP_VarString rootName(propPath[1].step); // The schema is [0].
+ for (size_t i = 2; i < propPath.size(); ++i) {
+ XMP_OptionBits stepKind = GetStepKind(propPath[i].options);
+ if (stepKind <= kXMP_QualifierStep) rootName += '/';
+ rootName += propPath[i].step;
+ }
+
+ propName = rootName.c_str();
+ size_t leafOffset = rootName.size();
+ while ((leafOffset > 0) && (propName[leafOffset] != '/') && (propName[leafOffset] != '[')) --leafOffset;
+ if (propName[leafOffset] == '/') ++leafOffset;
+
+ info.tree.nodeChildren.push_back( IteratorNode( destOptions, propName, leafOffset ) );
+ SetCurrentSchema(propPath[kSchemaStep].step.c_str());
+ if (options & kXMP_IterJustChildren) {
+
+ AddNodeOffSpring(info.tree.nodeChildren.back(), destNode);
+ }
+
+ }
+
+
+ } else if ( *schemaNS != 0 ) {
+
+ info.tree.nodeChildren.push_back(IteratorNode(kXMP_SchemaNode, schemaNS, 0));
+ IteratorNode & iterSchema = info.tree.nodeChildren.back();
+
+ bool schemaFound = false;
+
+ for (auto childIter = mDOM->Iterator(); childIter; childIter = childIter->Next()) {
+
+ if (!strcmp(childIter->GetNode()->GetNameSpace()->c_str(), schemaNS)) {
+
+ schemaFound = true;
+ break;
+ }
+ }
+
+
+ if (schemaFound) AddSchemaProperties(iterSchema, schemaNS);
+
+ if (iterSchema.nodeChildren.empty()) {
+ info.tree.nodeChildren.pop_back(); // No properties, remove the schema node.
+ }
+ else {
+ SetCurrentSchema(schemaNS);
+ }
+
+
+ } else {
+
+ std::map < XMP_VarString, bool > schemaProperties;
+
+ for (auto childIter = mDOM->Iterator(); childIter; childIter = childIter->Next()) {
+
+ spINode childNode = childIter->GetNode();
+
+ schemaProperties[childNode->GetNameSpace()->c_str()] = true;
+ }
+
+
+ for (auto key : schemaProperties) {
+ //TODO check name
+ info.tree.nodeChildren.push_back(IteratorNode( kXMP_SchemaNode, key.first, 0 ));
+
+ IteratorNode & iterSchema = info.tree.nodeChildren.back();
+
+ if (!(info.options & kXMP_IterJustChildren)) {
+ AddSchemaProperties(iterSchema, key.first.c_str());
+ // if (iterSchema.nodeChildren.empty()) info.tree.nodeChildren.pop_back(); // No properties, remove the schema node.
+ }
+ }
+
+
+
+
+ }
+
+ info.currPos = info.tree.nodeChildren.begin();
+ info.endPos = info.tree.nodeChildren.end();
+
+ if ((info.options & kXMP_IterJustChildren) && (info.currPos != info.endPos) && (*schemaNS != 0)) {
+ info.currPos->visitStage = kIter_VisitSelf;
+ }
+
+
+
+} // XMPIterator for XMPMeta objects
+
+// -------------------------------------------------------------------------------------------------
+// XMPIterator
+// -----------
+//
+// Constructor for iterations over global tables such as registered namespaces or aliases.
+
+XMPIterator2::XMPIterator2 ( XMP_StringPtr schemaNS,
+ XMP_StringPtr propName,
+ XMP_OptionBits options) : XMPIterator(schemaNS, propName, options)
+{
+ void * p; p = &schemaNS; p = &propName; p = &options; // Avoid unused param warnings.
+ XMP_Throw("Unimplemented XMPIterator constructor for global tables", kXMPErr_Unimplemented);
+
+} // XMPIterator for global tables
+
+// -------------------------------------------------------------------------------------------------
+// ~XMPIterator
+// -----------
+
+XMPIterator2::~XMPIterator2() RELEASE_NO_THROW
+{
+
+ // Let everything else default.
+
+} // ~XMPIterator
+
+// =================================================================================================
+// Iteration Methods
+// =================================================================================================
+
+// -------------------------------------------------------------------------------------------------
+// Next
+// ----
+//
+// Do a preorder traversal of the cached nodes.
+
+// *** Need to document the relationships between currPos, endPos, and visitStage.
+
+bool
+XMPIterator2::Next ( XMP_StringPtr * schemaNS,
+ XMP_StringLen * nsSize,
+ XMP_StringPtr * propPath,
+ XMP_StringLen * pathSize,
+ XMP_StringPtr * propValue,
+ XMP_StringLen * valueSize,
+ XMP_OptionBits * propOptions )
+{
+
+ if (info.currPos == info.endPos) return false;
+ using namespace AdobeXMPCore;
+ using namespace AdobeXMPCommon;
+ bool isSchema = false;
+ spcINode xmpNode = GetNextNode(isSchema);
+ if (!xmpNode && !isSchema) return false;
+ bool isSchemaNode = isSchema;
+ if (info.options & kXMP_IterJustLeafNodes) {
+ while (isSchemaNode || ( xmpNode && XMPUtils::GetNodeChildCount(xmpNode))) {
+ info.currPos->visitStage = kIter_VisitQualifiers; // Skip to this node's children.
+ xmpNode = GetNextNode(isSchemaNode);
+ if (xmpNode == 0 && !isSchemaNode) return false;
+ isSchemaNode = XMP_NodeIsSchema(info.currPos->options);
+ }
+ }
+
+ *schemaNS = info.currSchema.c_str();
+ *nsSize = info.currSchema.size();
+
+
+ *propOptions = info.currPos->options;
+
+ *propPath = "";
+ *pathSize = 0;
+ *propValue = "";
+ *valueSize = 0;
+
+ if (!(*propOptions & kXMP_SchemaNode)) {
+
+ *propPath = info.currPos->fullPath.c_str();
+ *pathSize = info.currPos->fullPath.size();
+
+ if (info.options & kXMP_IterJustLeafName) {
+ *propPath += info.currPos->leafOffset;
+ *pathSize -= info.currPos->leafOffset;
+ if (! xmpNode->IsArrayItem()) {
+ *schemaNS = xmpNode->GetNameSpace()->c_str();
+ *nsSize = xmpNode->GetNameSpace()->size();
+ }
+ else {
+ *schemaNS = "";
+ *nsSize = 0;
+ }
+
+ }
+
+ if (!(*propOptions & kXMP_PropCompositeMask)) {
+ spcIUTF8String nodeValue = xmpNode->ConvertToSimpleNode()->GetValue();
+ *propValue = nodeValue->c_str();
+ *valueSize = nodeValue->size();
+ }
+
+ }
+
+ return true;
+} // Next
+
+// -------------------------------------------------------------------------------------------------
+// Skip
+// ----
+//
+// Skip some portion of the traversal related to the last visited node. We skip either that node's
+// children, or those children and the previous node's siblings. The implementation might look a bit
+// awkward because info.currNode always points to the next node to be visited. We might already have
+// moved past the things to skip, e.g. if the previous node was simple and the last of its siblings.
+
+enum {
+ kXMP_ValidIterSkipOptions = kXMP_IterSkipSubtree | kXMP_IterSkipSiblings
+};
+
+
+void
+XMPIterator2::Skip ( XMP_OptionBits iterOptions )
+{
+ // if ( (info.currPos == kIter_NullPos) ) XMP_Throw ( "No prior postion to skip from", kXMPErr_BadIterPosition );
+ if (iterOptions == 0) XMP_Throw("Must specify what to skip", kXMPErr_BadOptions);
+ if ((iterOptions & ~kXMP_ValidIterSkipOptions) != 0) XMP_Throw("Undefined options", kXMPErr_BadOptions);
+
+
+ if (iterOptions & kXMP_IterSkipSubtree) {
+
+ info.currPos->visitStage = kIter_VisitChildren;
+ }
+ else if (iterOptions & kXMP_IterSkipSiblings) {
+
+ info.currPos = info.endPos;
+ AdvanceIteratorPosition();
+ }
+
+} // Skip
+
+
+
+// =================================================================================================
+#endif // ENABLE_CPP_DOM_MODEL \ No newline at end of file
diff --git a/XMPCore/source/XMPIterator2.hpp b/XMPCore/source/XMPIterator2.hpp
new file mode 100644
index 0000000..6664a53
--- /dev/null
+++ b/XMPCore/source/XMPIterator2.hpp
@@ -0,0 +1,153 @@
+#ifndef __XMPIterator2_hpp__
+#define __XMPIterator2_hpp__
+
+// =================================================================================================
+// Copyright 2003 Adobe Systems Incorporated
+// All Rights Reserved.
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+
+#include "public/include/XMP_Environment.h"
+#include "public/include/XMP_Const.h"
+#include "XMPCore/source/XMPMeta.hpp"
+#include "XMPCore/source/XMPIterator.hpp"
+#include "XMPCore/XMPCoreFwdDeclarations_I.h"
+#include "XMPCore/Interfaces/IMetadata_I.h"
+#include "XMPCore/Interfaces/INodeIterator_I.h"
+#include <vector>
+// =================================================================================================
+
+
+// =================================================================================================
+
+
+struct IteratorNode;
+
+typedef std::vector< IteratorNode > IteratorOffSpring;
+typedef IteratorOffSpring::iterator IteratorPos;
+typedef std::pair<IteratorPos, IteratorPos> IteratorPosPair;
+typedef std::vector< IteratorPosPair> IteratorPosStack;
+struct IteratorNode
+{
+ AdobeXMPCore::spINode node;
+ XMP_Uns8 visitStage;
+ IteratorOffSpring nodeQualifiers, nodeChildren;
+ XMP_VarString fullPath;
+ size_t leafOffset;
+ XMP_OptionBits options;
+
+
+
+ IteratorNode() : options(0), leafOffset(0), visitStage(kIter_BeforeVisit)
+ {
+
+ };
+
+ IteratorNode(XMP_OptionBits _options, const XMP_VarString& _fullPath, size_t _leafOffset)
+ : options(_options), fullPath(_fullPath), leafOffset(_leafOffset), visitStage(kIter_BeforeVisit)
+ {
+
+ };
+};
+
+
+
+struct IteratorState
+{
+
+ XMP_VarString schema;
+ XMP_OptionBits options;
+
+ XMP_VarString currSchema;
+ IteratorPos currPos, endPos;
+ IteratorPosStack ancestors;
+ IteratorNode tree;
+
+
+
+ IteratorState() : options(0)
+ {
+
+ };
+
+ IteratorState(XMP_OptionBits _options) : options(_options)
+ {
+
+ };
+
+
+ IteratorState(const AdobeXMPCore::spINode & inNode, XMP_VarString inSchema, XMP_VarString inPath) {
+
+
+ /* schema = inSchema;
+ path = inPath;*/
+ }
+
+ IteratorState(const AdobeXMPCore::spcINode & inNode, XMP_VarString inSchema, XMP_VarString inPath) {
+
+ /*node = inNode;
+ schema = inSchema;
+ path = inPath;*/
+ }
+
+
+};
+class XMPIterator2: public XMPIterator {
+
+public:
+
+
+
+ XMPIterator2(const XMPMeta & xmpObj, // Construct a property iterator.
+ XMP_StringPtr schemaNS,
+ XMP_StringPtr propName,
+ XMP_OptionBits options);
+
+ XMPIterator2(XMP_StringPtr schemaNS, // Construct a table iterator.
+ XMP_StringPtr propName,
+ XMP_OptionBits options);
+
+ virtual ~XMPIterator2() RELEASE_NO_THROW;
+
+ bool
+ Next ( XMP_StringPtr * schemaNS,
+ XMP_StringLen * nsSize,
+ XMP_StringPtr * propPath,
+ XMP_StringLen * pathSize,
+ XMP_StringPtr * propValue,
+ XMP_StringLen * valueSize,
+ XMP_OptionBits * propOptions );
+
+ void
+ Skip ( XMP_OptionBits options );
+
+ // ! Expose so that wrappers and file static functions can see the data.
+
+
+
+
+private:
+
+
+
+ void AddNodeOffSpring(IteratorNode &iterParent, const AdobeXMPCore::spINode & xmpParent);
+ AdobeXMPCore::spINode GetNextNode(bool &);
+ void AdvanceIteratorPosition();
+ void SetCurrentSchema(XMP_VarString &fullPath);
+ void SetCurrentSchema(const char * fullPath);
+ void AddSchemaProperties(IteratorNode & iterSchema, const char * nameSpace);
+ XMP_OptionBits iteratorOptions;
+ XMP_VarString fullPath;
+ AdobeXMPCore::spINode currNode;
+ IteratorState info;
+ AdobeXMPCore::spIMetadata mDOM;
+
+
+};
+
+// =================================================================================================
+
+#endif // __XMPIterator2_hpp__
diff --git a/XMPCore/source/XMPMeta-GetSet.cpp b/XMPCore/source/XMPMeta-GetSet.cpp
index 112298a..18c024c 100644
--- a/XMPCore/source/XMPMeta-GetSet.cpp
+++ b/XMPCore/source/XMPMeta-GetSet.cpp
@@ -21,6 +21,27 @@
#include "source/UnicodeConversions.hpp"
#include "source/ExpatAdapter.hpp"
+
+#include "XMPCore/XMPCoreDefines.h"
+#if ENABLE_CPP_DOM_MODEL
+#include "third-party/zuid/interfaces/MD5.h"
+#include "XMPCore/Interfaces/IMetadata_I.h"
+#include "XMPCore/Interfaces/IPathSegment_I.h"
+#include "XMPCore/Interfaces/IPath_I.h"
+#include "XMPCore/Interfaces/INameSpacePrefixMap_I.h"
+#include "XMPCore/Interfaces/IDOMImplementationRegistry_I.h"
+#include "XMPCore/XMPCoreFwdDeclarations_I.h"
+#include "XMPCore/XMPCoreFwdDeclarations.h"
+#include "XMPCore/Interfaces/IStructureNode_I.h"
+#include "XMPCore/Interfaces/ISimpleNode_I.h"
+#include "XMPCore/Interfaces/IArrayNode_I.h"
+#include "XMPCore/Interfaces/INodeIterator.h"
+#include "XMPCore/Interfaces/ICoreObjectFactory.h"
+#include "XMPCommon/Interfaces/IUTF8String_I.h"
+#include "XMPCore/Interfaces/INode_I.h"
+#endif
+
+
#if XMP_DebugBuild
#include <iostream>
#endif
@@ -45,6 +66,30 @@ using namespace std;
typedef unsigned char XMP_CLTMatch;
+#if XMP_MARKER_EXTENSIBILITY_BACKWARD_COMPATIBILITY
+extern "C" {
+ void ReleaseXMP_Node(void * node) {
+ if (node) {
+ XMP_Node * ptr = (XMP_Node *)node;
+ delete ptr;
+ ptr = NULL;
+ }
+ }
+}
+
+#if ENABLE_CPP_DOM_MODEL
+extern "C" {
+ void ReleaseIStructureNode(void * node) {
+ if (node) {
+ AdobeXMPCore::pIStructureNode_base ptr = ( AdobeXMPCore::pIStructureNode_base )node;
+ ptr->Release();
+ node = NULL;
+ }
+ }
+}
+#endif
+#endif
+
enum { // Values for XMP_CLTMatch.
kXMP_CLT_NoValues,
kXMP_CLT_SpecificMatch,
@@ -68,14 +113,18 @@ enum { // Values for XMP_CLTMatch.
// -------------------------------------------------------------------------------------------------
// SetNodeValue
// ------------
-
static inline void
-SetNodeValue ( XMP_Node * node, XMP_StringPtr value )
+ SetNodeValue ( XMP_Node * node, XMP_StringPtr value )
+{
+ node->SetValue( value );
+} //SetNodeValue
+
+void XMP_Node::SetValue( XMP_StringPtr value )
{
#if XMP_DebugBuild // ! Hack to force an assert.
- if ( (node->name == "xmp:TestAssertNotify") && XMP_LitMatch ( value, "DoIt!" ) ) {
- XMP_Assert ( node->name != "xmp:TestAssertNotify" );
+ if ( (this->name == "xmp:TestAssertNotify") && XMP_LitMatch ( value, "DoIt!" ) ) {
+ XMP_Assert ( this->name != "xmp:TestAssertNotify" );
}
#endif
@@ -98,21 +147,21 @@ SetNodeValue ( XMP_Node * node, XMP_StringPtr value )
if ( *chPtr != 0 ) {
XMP_Uns32 cp = GetCodePoint ( (const XMP_Uns8 **) &chPtr ); // Throws for bad UTF-8.
if ( (cp == 0xFFFE) || (cp == 0xFFFF) ) {
- XMP_Throw ( "U+FFFE and U+FFFF are not allowed in XML", kXMPErr_BadXML );
+ XMP_Throw ( "U+FFFE and U+FFFF are not allowed in XML", kXMPErr_BadUnicode );
}
}
}
- if ( XMP_PropIsQualifier(node->options) && (node->name == "xml:lang") ) NormalizeLangValue ( &newValue );
+ if ( XMP_PropIsQualifier(this->options) && (this->name == "xml:lang") ) NormalizeLangValue ( &newValue );
- node->value.swap ( newValue );
+ this->value.swap ( newValue );
#if 0 // *** XMP_DebugBuild
- node->_valuePtr = node->value.c_str();
+ this->_valuePtr = this->value.c_str();
#endif
-} // SetNodeValue
+} // XMP_Node::SetValue
// -------------------------------------------------------------------------------------------------
@@ -168,7 +217,7 @@ DoSetArrayItem ( XMP_Node * arrayNode,
XMP_OptionBits options )
{
XMP_OptionBits itemLoc = options & kXMP_PropArrayLocationMask;
- XMP_Index arraySize = arrayNode->children.size();
+ XMP_Index arraySize = static_cast<XMP_Index>( arrayNode->children.size() );
options &= ~kXMP_PropArrayLocationMask;
options = VerifySetOptions ( options, itemValue );
@@ -377,7 +426,7 @@ XMPMeta::GetProperty ( XMP_StringPtr schemaNS,
if ( propNode == 0 ) return false;
*propValue = propNode->value.c_str();
- *valueSize = propNode->value.size();
+ *valueSize = static_cast<XMP_StringLen>( propNode->value.size() );
*options = propNode->options;
return true;
@@ -819,9 +868,9 @@ XMPMeta::GetLocalizedText ( XMP_StringPtr schemaNS,
if ( match == kXMP_CLT_NoValues ) return false;
*actualLang = itemNode->qualifiers[0]->value.c_str();
- *langSize = itemNode->qualifiers[0]->value.size();
+ *langSize = static_cast<XMP_Index>( itemNode->qualifiers[0]->value.size() );
*itemValue = itemNode->value.c_str();
- *valueSize = itemNode->value.size();
+ *valueSize = static_cast<XMP_Index>( itemNode->value.size() );
*options = itemNode->options;
return true;
diff --git a/XMPCore/source/XMPMeta-Parse.cpp b/XMPCore/source/XMPMeta-Parse.cpp
index 62b9404..49d9007 100644
--- a/XMPCore/source/XMPMeta-Parse.cpp
+++ b/XMPCore/source/XMPMeta-Parse.cpp
@@ -18,6 +18,8 @@
#include "source/UnicodeInlines.incl_cpp"
#include "source/UnicodeConversions.hpp"
#include "source/ExpatAdapter.hpp"
+#define STATIC_SAFE_API
+#include "source/SafeStringAPIs.h"
#if XMP_DebugBuild
#include <iostream>
@@ -178,7 +180,7 @@ static const XML_Node * FindRootNode ( const XMLParserAdapter & xmlParser, XMP_O
// *** This depends on the dc: namespace prefix.
-static void
+void
NormalizeDCArrays ( XMP_Node * xmpTree )
{
XMP_Node * dcSchema = FindSchemaNode ( xmpTree, kXMP_NS_DC, kXMP_ExistingOnly );
@@ -347,7 +349,7 @@ TransplantNamedAlias ( XMP_Node * oldParent, size_t oldNum, XMP_Node * newParent
// MoveExplicitAliases
// -------------------
-static void
+void
MoveExplicitAliases ( XMP_Node * tree, XMP_OptionBits parseOptions, XMPMeta::ErrorCallbackInfo & errorCallback )
{
tree->options ^= kXMP_PropHasAliases;
@@ -534,7 +536,7 @@ MigrateAudioCopyright ( XMPMeta * xmp, XMP_Node * dmCopyright )
// 3. Look for a double linefeed in the x-default value.
XMP_Assert ( xdIndex == 0 );
std::string & defaultValue = dcRightsArray->children[xdIndex]->value;
- XMP_Index lfPos = defaultValue.find ( kDoubleLF );
+ XMP_Index lfPos = static_cast<XMP_Index>( defaultValue.find ( kDoubleLF ));
if ( lfPos < 0 ) {
@@ -588,7 +590,7 @@ RepairAltText ( XMP_Node & tree, XMP_StringPtr schemaNS, XMP_StringPtr arrayName
arrayNode->options |= (kXMP_PropArrayIsOrdered | kXMP_PropArrayIsAlternate | kXMP_PropArrayIsAltText);
- for ( int i = arrayNode->children.size()-1; i >= 0; --i ) { // ! Need a signed index type.
+ for ( int i = static_cast<int>( arrayNode->children.size()-1 ); i >= 0; --i ) { // ! Need a signed index type.
XMP_Node * currChild = arrayNode->children[i];
@@ -630,7 +632,7 @@ RepairAltText ( XMP_Node & tree, XMP_StringPtr schemaNS, XMP_StringPtr arrayName
// TouchUpDataModel
// ----------------
-static void
+void
TouchUpDataModel ( XMPMeta * xmp, XMPMeta::ErrorCallbackInfo & errorCallback )
{
XMP_Node & tree = xmp->tree;
@@ -907,7 +909,7 @@ CountControlEscape ( const XMP_Uns8 * escStart, const XMP_Uns8 * bufEnd )
if ( (escValue == kTab) || (escValue == kLF) || (escValue == kCR) ) return 0; // An allowed escape.
- return escLen; // Found a full "prohibited" numeric escape.
+ return static_cast<int>(escLen); // Found a full "prohibited" numeric escape.
} // CountControlEscape
@@ -975,7 +977,7 @@ ProcessUTF8Portion ( XMLParserAdapter * xmlParser,
// Not a valid UTF-8 sequence. Replace the first byte with the Latin-1 equivalent.
xmlParser->ParseBuffer ( spanStart, (spanEnd - spanStart), false );
const char * replacement = kReplaceLatin1 [ *spanEnd - 0x80 ];
- xmlParser->ParseBuffer ( replacement, strlen ( replacement ), false );
+ xmlParser->ParseBuffer(replacement, strnlen_safe(replacement, Max_XMP_Uns32), false);
spanStart = spanEnd + 1; // ! The loop increment will do "spanEnd = spanStart".
}
@@ -1242,7 +1244,7 @@ XMPMeta::ParseFromBuffer ( XMP_StringPtr buffer,
XMP_OptionBits options )
{
if ( (buffer == 0) && (xmpSize != 0) ) XMP_Throw ( "Null parse buffer", kXMPErr_BadParam );
- if ( xmpSize == kXMP_UseNullTermination ) xmpSize = strlen ( buffer );
+ if (xmpSize == kXMP_UseNullTermination) xmpSize = static_cast<XMP_Index>(strnlen_safe(buffer, Max_XMP_Uns32));
const bool lastClientCall = ((options & kXMP_ParseMoreBuffers) == 0); // *** Could use FlagIsSet & FlagIsClear macros.
diff --git a/XMPCore/source/XMPMeta-Serialize.cpp b/XMPCore/source/XMPMeta-Serialize.cpp
index 9ac13fc..39a5270 100644
--- a/XMPCore/source/XMPMeta-Serialize.cpp
+++ b/XMPCore/source/XMPMeta-Serialize.cpp
@@ -153,7 +153,10 @@ DeclareOneNamespace ( XMP_StringPtr nsPrefix,
for ( ; indent > 0; --indent ) outputStr += indentStr;
outputStr += "xmlns:";
outputStr += nsPrefix;
- outputStr[outputStr.size()-1] = '='; // Change the colon to =.
+ if (outputStr[outputStr.size ( ) - 1] == ':')
+ outputStr[outputStr.size ( ) - 1] = '='; // Change the colon to =.
+ else
+ outputStr += '=';
outputStr += '"';
outputStr += nsURI;
outputStr += '"';
@@ -575,14 +578,14 @@ SerializeCanonicalRDFProperty ( const XMP_Node * propNode,
// This is an array.
outputStr += '>';
outputStr += newline;
- EmitRDFArrayTag ( propForm, outputStr, newline, indentStr, indent+1, propNode->children.size(), kIsStartTag );
+ EmitRDFArrayTag ( propForm, outputStr, newline, indentStr, indent+1, static_cast<XMP_Index>(propNode->children.size()), kIsStartTag );
if ( XMP_ArrayIsAltText(propNode->options) ) NormalizeLangArray ( (XMP_Node*)propNode );
for ( size_t childNum = 0, childLim = propNode->children.size(); childNum < childLim; ++childNum ) {
const XMP_Node * currChild = propNode->children[childNum];
SerializeCanonicalRDFProperty ( currChild, outputStr, newline, indentStr, indent+2,
useCanonicalRDF, kEmitAsNormalValue );
}
- EmitRDFArrayTag ( propForm, outputStr, newline, indentStr, indent+1, propNode->children.size(), kIsEndTag );
+ EmitRDFArrayTag ( propForm, outputStr, newline, indentStr, indent+1, static_cast<XMP_Index>(propNode->children.size()), kIsEndTag );
} else if ( ! hasRDFResourceQual ) {
@@ -908,12 +911,12 @@ SerializeCompactRDFElemProps ( const XMP_Node * parentNode,
outputStr += '>';
outputStr += newline;
- EmitRDFArrayTag ( propForm, outputStr, newline, indentStr, indent+1, propNode->children.size(), kIsStartTag );
+ EmitRDFArrayTag ( propForm, outputStr, newline, indentStr, indent+1, static_cast<XMP_Index>(propNode->children.size()), kIsStartTag );
if ( XMP_ArrayIsAltText(propNode->options) ) NormalizeLangArray ( (XMP_Node*)propNode );
SerializeCompactRDFElemProps ( propNode, outputStr, newline, indentStr, indent+2 );
- EmitRDFArrayTag ( propForm, outputStr, newline, indentStr, indent+1, propNode->children.size(), kIsEndTag );
+ EmitRDFArrayTag ( propForm, outputStr, newline, indentStr, indent+1, static_cast<XMP_Index>(propNode->children.size()), kIsEndTag );
} else {
@@ -1260,7 +1263,7 @@ XMPMeta::SerializeToBuffer ( XMP_VarString * rdfString,
padding = 0;
} else {
if ( padding == 0 ) {
- padding = kDefaultPad * unicodeUnitSize;
+ padding = static_cast<XMP_StringLen>(kDefaultPad * unicodeUnitSize);
} else if ( (padding >> 28) != 0 ) {
XMP_Throw ( "Outrageously large padding size", kXMPErr_BadOptions ); // Bigger than 256 MB.
}
diff --git a/XMPCore/source/XMPMeta.cpp b/XMPCore/source/XMPMeta.cpp
index fd8e8ac..b2f02b6 100644
--- a/XMPCore/source/XMPMeta.cpp
+++ b/XMPCore/source/XMPMeta.cpp
@@ -19,6 +19,19 @@
#include "source/UnicodeInlines.incl_cpp"
#include "source/UnicodeConversions.hpp"
+
+#include "XMPCore/XMPCoreDefines.h"
+#if ENABLE_CPP_DOM_MODEL
+ #include "XMPCommon/XMPCommon_I.h"
+ #include "XMPCore/Interfaces/ICoreConfigurationManager_I.h"
+ #include "XMPCommon/Interfaces/IMemoryAllocator.h"
+ #include "XMPCore/Interfaces/INameSpacePrefixMap_I.h"
+ #include "XMPCommon/ImplHeaders/SharedObjectImpl.h"
+ #include "XMPCore/Interfaces/ICoreObjectFactory_I.h"
+ #include "XMPCore/Interfaces/IDOMImplementationRegistry_I.h"
+#endif
+
+
#include <algorithm> // For sort and stable_sort.
#include <cstdio> // For snprintf.
@@ -36,6 +49,41 @@ using namespace std;
#endif
+ #if ENABLE_CPP_DOM_MODEL
+ #if !XMP_StaticBuild
+
+ #if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+ #endif
+ class InternalClientAllocator
+ : public AdobeXMPCommon::IMemoryAllocator
+ {
+ public:
+ virtual void * APICALL allocate( AdobeXMPCommon::sizet size ) __NOTHROW__ {
+ return sXMP_MemAlloc( size );
+ }
+
+ virtual void APICALL deallocate( void * ptr ) __NOTHROW__ {
+ sXMP_MemFree( ptr );
+ }
+
+ virtual void * APICALL reallocate( void * ptr, AdobeXMPCommon::sizet size ) __NOTHROW__ {
+ return NULL;
+ }
+
+ virtual ~InternalClientAllocator(){}
+
+ };
+ static InternalClientAllocator * sInternalClientAllocator( NULL );
+ #if XMP_WinBuild
+ #pragma warning( pop )
+ #endif
+
+ #endif // !XMP_StaticBuild
+ #endif // ENABLE_CPP_DOM_MODEL
+
+
// *** Use the XMP_PropIsXyz (Schema, Simple, Struct, Array, ...) macros
// *** Add debug codegen checks, e.g. that typical masking operations really work
// *** Change all uses of strcmp and strncmp to XMP_LitMatch and XMP_LitNMatch
@@ -68,7 +116,7 @@ const char * kXMPCore_EmbeddedCopyright = kXMPCoreName " " kXMP_CopyrightStr;
// DumpNodeOptions
// ---------------
-static void
+void
DumpNodeOptions ( XMP_OptionBits options,
XMP_TextOutputProc outProc,
void * refCon )
@@ -618,7 +666,7 @@ RegisterStandardAliases()
RegisterAlias ( kXMP_NS_TIFF, "Copyright", kXMP_NS_DC, "rights", 0 );
RegisterAlias ( kXMP_NS_TIFF, "DateTime", kXMP_NS_XMP, "ModifyDate", 0 );
RegisterAlias ( kXMP_NS_EXIF, "DateTimeDigitized", kXMP_NS_XMP, "CreateDate", 0 );
- RegisterAlias ( kXMP_NS_TIFF, "ImageDescription", kXMP_NS_DC, "description", 0 );
+ RegisterAlias ( kXMP_NS_TIFF, "ImageDescription", kXMP_NS_DC, "description", kXMP_PropArrayIsAltText );
RegisterAlias ( kXMP_NS_TIFF, "Software", kXMP_NS_XMP, "CreatorTool", 0 );
// Aliases from PNG to DC and XMP.
@@ -725,11 +773,25 @@ XMPMeta::Initialize()
#endif
if ( ! Initialize_LibUtils() ) return false;
+
+ #if ENABLE_CPP_DOM_MODEL
+ try {
+ AdobeXMPCore_Int::InitializeXMPCommonFramework();
+
+ } catch ( ... ) {
+ return false;
+ }
+ AdobeXMPCore_Int::INameSpacePrefixMap_I::CreateDefaultNameSpacePrefixMap();
+ sDefaultNamespacePrefixMapLock = new XMP_ReadWriteLock;
+
+ // Explicitly setting sUseNewCoreAPIs as false (default value)
+ sUseNewCoreAPIs = false;
+ #endif
+
xdefaultName = new XMP_VarString ( "x-default" );
sRegisteredNamespaces = new XMP_NamespaceTable;
sRegisteredAliasMap = new XMP_AliasMap;
-
InitializeUnicodeConversions();
@@ -803,6 +865,8 @@ XMPMeta::Initialize()
(void) RegisterNamespace ( "adobe:ns:meta/", "x", &voidPtr, &voidLen );
(void) RegisterNamespace ( "http://ns.adobe.com/iX/1.0/", "iX", &voidPtr, &voidLen );
+ (void) RegisterNamespace( kXMP_NS_iXML, "iXML", &voidPtr, &voidLen );
+
RegisterStandardAliases();
// Initialize the other core classes.
@@ -892,11 +956,21 @@ XMPMeta::Terminate() RELEASE_NO_THROW
XMPIterator::Terminate();
XMPUtils::Terminate();
-#if ENABLE_NEW_DOM_MODEL
- NS_XMPCOMMON::ITSingleton< NS_INT_XMPCORE::IXMPCoreObjectFactory >::DestroyInstance();
- NS_INT_XMPCOMMON::TerminateXMPCommonFramework();
+#if ENABLE_CPP_DOM_MODEL
+ AdobeXMPCore_Int::INameSpacePrefixMap_I::DestroyDefaultNameSapcePrefixMap();
+ AdobeXMPCore_Int::IDOMImplementationRegistry_I::DestoryDOMImplementationRegistry();
+ AdobeXMPCore_Int::ICoreObjectFactory_I::DestroyCoreObjectFactory();
+ AdobeXMPCore_Int::ICoreConfigurationManager_I::DestroyCoreConfigurationManager();
+ AdobeXMPCore_Int::TerminateXMPCommonFramework();
+ EliminateGlobal( sDefaultNamespacePrefixMapLock );
+ // Explicitly setting sUseNewCoreAPIs as false (default value)
+ sUseNewCoreAPIs = false;
+ #if !XMP_StaticBuild
+ EliminateGlobal( sInternalClientAllocator );
+ #endif
#endif
+
EliminateGlobal ( sRegisteredNamespaces );
EliminateGlobal ( sRegisteredAliasMap );
@@ -959,8 +1033,8 @@ XMPMeta::GetGlobalOptions()
XMPMeta::SetGlobalOptions ( XMP_OptionBits options )
{
- XMP_Throw ( "Unimplemented method XMPMeta::SetGlobalOptions", kXMPErr_Unimplemented );
- void * p; p = &options; // Avoid unused param warnings.
+ void * p; p = &options; // Avoid unused param warnings.
+ XMP_Throw("Unimplemented method XMPMeta::SetGlobalOptions", kXMPErr_Unimplemented);
} // SetGlobalOptions
@@ -976,8 +1050,18 @@ XMPMeta::RegisterNamespace ( XMP_StringPtr namespaceURI,
XMP_StringLen * prefixSize )
{
- return sRegisteredNamespaces->Define ( namespaceURI, suggestedPrefix, registeredPrefix, prefixSize );
-
+ bool returnValue = sRegisteredNamespaces->Define ( namespaceURI, suggestedPrefix, registeredPrefix, prefixSize );
+#if ENABLE_CPP_DOM_MODEL
+ const char * prefix = NULL;
+ XMP_StringLen len = 0;
+ sRegisteredNamespaces->GetPrefix( namespaceURI, &prefix, &len );
+ XMP_VarString prefixWithoutColon( prefix, len - 1 );
+ {
+ XMP_AutoLock aLock( sDefaultNamespacePrefixMapLock, true );
+ AdobeXMPCore_Int::INameSpacePrefixMap_I::InsertInDefaultNameSpacePrefixMap( prefixWithoutColon.c_str(), prefixWithoutColon.size(), namespaceURI, AdobeXMPCommon::npos );
+ }
+#endif
+ return returnValue;
} // RegisterNamespace
@@ -1131,7 +1215,7 @@ XMPMeta::CountArrayItems ( XMP_StringPtr schemaNS,
if ( arrayNode == 0 ) return 0;
if ( ! (arrayNode->options & kXMP_PropValueIsArray) ) XMP_Throw ( "The named property is not an array", kXMPErr_BadXPath );
- return arrayNode->children.size();
+ return static_cast<XMP_Index>( arrayNode->children.size() );
} // CountArrayItems
@@ -1146,7 +1230,7 @@ XMPMeta::GetObjectName ( XMP_StringPtr * namePtr,
{
*namePtr = tree.name.c_str();
- *nameLen = tree.name.size();
+ *nameLen = static_cast<XMP_Index>( tree.name.size() );
} // GetObjectName
@@ -1185,9 +1269,9 @@ XMPMeta::GetObjectOptions() const
void
XMPMeta::SetObjectOptions ( XMP_OptionBits options )
{
-
+ void * p; p = &options; // Avoid unused param warnings.
XMP_Throw ( "Unimplemented method XMPMeta::SetObjectOptions", kXMPErr_Unimplemented );
- void * p; p = &options; // Avoid unused param warnings.
+
} // SetObjectOptions
@@ -1282,7 +1366,7 @@ void XMP_Node::GetLocalURI ( XMP_StringPtr * uriStr, XMP_StringLen * uriSize ) c
if ( XMP_NodeIsSchema ( this->options ) ) {
if ( uriStr != 0 ) *uriStr = this->name.c_str();
- if ( uriSize != 0 ) *uriSize = this->name.size();
+ if ( uriSize != 0 ) *uriSize = static_cast<XMP_StringLen>( this->name.size() );
} else {
@@ -1296,6 +1380,34 @@ void XMP_Node::GetLocalURI ( XMP_StringPtr * uriStr, XMP_StringLen * uriSize ) c
}
+void XMP_Node::GetFullQualifiedName( XMP_StringPtr * uriStr, XMP_StringLen * uriSize, XMP_StringPtr * nameStr, XMP_StringLen * nameSize ) const
+{
+ if ( uriStr != 0 ) *uriStr = ""; // Set up empty defaults.
+ if ( uriSize != 0 ) *uriSize = 0;
+ if ( nameStr != 0 ) *nameStr = "";
+ if ( nameSize != 0 ) *nameSize = 0;
+
+ if ( this->name.empty() ) return;
+
+ if ( XMP_NodeIsSchema ( this->options ) ) {
+
+ if ( uriStr != 0 ) *uriStr = this->name.c_str();
+ if ( uriSize != 0 ) *uriSize = static_cast<XMP_StringLen>( this->name.size() );
+ if ( nameStr != 0 ) *nameStr = this->value.c_str();
+ if ( nameSize != 0 ) *nameSize = static_cast<XMP_StringLen>( this->value.size() );
+
+ } else {
+
+ size_t colonPos = this->name.find_first_of(':');
+ if ( colonPos == XMP_VarString::npos ) return; // ! Name of array items is "[]".
+
+ XMP_VarString prefix ( this->name, 0, colonPos );
+ XMPMeta::GetNamespaceURI ( prefix.c_str(), uriStr, uriSize );
+ *nameStr = this->name.c_str() + colonPos + 1;
+ *nameSize = static_cast<XMP_StringLen>( this->name.size() - colonPos - 1 );
+ }
+}
+
// =================================================================================================
// Error notifications
// ===================
diff --git a/XMPCore/source/XMPMeta.hpp b/XMPCore/source/XMPMeta.hpp
index 4ca9250..34b71aa 100644
--- a/XMPCore/source/XMPMeta.hpp
+++ b/XMPCore/source/XMPMeta.hpp
@@ -81,14 +81,14 @@ public:
// ---------------------------------------------------------------------------------------------
- bool
+ virtual bool
GetProperty ( XMP_StringPtr schemaNS,
XMP_StringPtr propName,
XMP_StringPtr * propValue,
XMP_StringLen * valueSize,
XMP_OptionBits * options ) const;
- bool
+ virtual bool
GetArrayItem ( XMP_StringPtr schemaNS,
XMP_StringPtr arrayName,
XMP_Index itemIndex,
@@ -96,7 +96,7 @@ public:
XMP_StringLen * valueSize,
XMP_OptionBits * options ) const;
- bool
+ virtual bool
GetStructField ( XMP_StringPtr schemaNS,
XMP_StringPtr structName,
XMP_StringPtr fieldNS,
@@ -105,7 +105,7 @@ public:
XMP_StringLen * valueSize,
XMP_OptionBits * options ) const;
- bool
+ virtual bool
GetQualifier ( XMP_StringPtr schemaNS,
XMP_StringPtr propName,
XMP_StringPtr qualNS,
@@ -116,20 +116,20 @@ public:
// ---------------------------------------------------------------------------------------------
- void
+ virtual void
SetProperty ( XMP_StringPtr schemaNS,
XMP_StringPtr propName,
XMP_StringPtr propValue,
XMP_OptionBits options );
- void
+ virtual void
SetArrayItem ( XMP_StringPtr schemaNS,
XMP_StringPtr arrayName,
XMP_Index itemIndex,
XMP_StringPtr itemValue,
XMP_OptionBits options );
- void
+ virtual void
AppendArrayItem ( XMP_StringPtr schemaNS,
XMP_StringPtr arrayName,
XMP_OptionBits arrayOptions,
@@ -144,7 +144,7 @@ public:
XMP_StringPtr fieldValue,
XMP_OptionBits options );
- void
+ virtual void
SetQualifier ( XMP_StringPtr schemaNS,
XMP_StringPtr propName,
XMP_StringPtr qualNS,
@@ -154,22 +154,22 @@ public:
// ---------------------------------------------------------------------------------------------
- void
+ virtual void
DeleteProperty ( XMP_StringPtr schemaNS,
XMP_StringPtr propName );
- void
+ virtual void
DeleteArrayItem ( XMP_StringPtr schemaNS,
XMP_StringPtr arrayName,
XMP_Index itemIndex );
- void
+ virtual void
DeleteStructField ( XMP_StringPtr schemaNS,
XMP_StringPtr structName,
XMP_StringPtr fieldNS,
XMP_StringPtr fieldName );
- void
+ virtual void
DeleteQualifier ( XMP_StringPtr schemaNS,
XMP_StringPtr propName,
XMP_StringPtr qualNS,
@@ -177,7 +177,7 @@ public:
// ---------------------------------------------------------------------------------------------
- bool
+ virtual bool
DoesPropertyExist ( XMP_StringPtr schemaNS,
XMP_StringPtr propName ) const;
@@ -200,7 +200,7 @@ public:
// ---------------------------------------------------------------------------------------------
- bool
+ virtual bool
GetLocalizedText ( XMP_StringPtr schemaNS,
XMP_StringPtr altTextName,
XMP_StringPtr genericLang,
@@ -211,7 +211,7 @@ public:
XMP_StringLen * valueSize,
XMP_OptionBits * options ) const;
- void
+ virtual void
SetLocalizedText ( XMP_StringPtr schemaNS,
XMP_StringPtr altTextName,
XMP_StringPtr genericLang,
@@ -219,7 +219,7 @@ public:
XMP_StringPtr itemValue,
XMP_OptionBits options );
- void
+ virtual void
DeleteLocalizedText ( XMP_StringPtr schemaNS,
XMP_StringPtr altTextName,
XMP_StringPtr genericLang,
@@ -291,11 +291,11 @@ public:
// ---------------------------------------------------------------------------------------------
- void
+ virtual void
GetObjectName ( XMP_StringPtr * namePtr,
XMP_StringLen * nameLen ) const;
- void
+ virtual void
SetObjectName ( XMP_StringPtr name );
XMP_OptionBits
@@ -304,31 +304,31 @@ public:
void
SetObjectOptions ( XMP_OptionBits options );
- void
+ virtual void
Sort();
- void
+ virtual void
Erase();
- void
+ virtual void
Clone ( XMPMeta * clone, XMP_OptionBits options ) const;
- XMP_Index
+ virtual XMP_Index
CountArrayItems ( XMP_StringPtr schemaNS,
XMP_StringPtr arrayName ) const;
- void
+ virtual void
DumpObject ( XMP_TextOutputProc outProc,
void * refCon ) const;
// ---------------------------------------------------------------------------------------------
- void
+ virtual void
ParseFromBuffer ( XMP_StringPtr buffer,
XMP_StringLen bufferSize,
XMP_OptionBits options );
- void
+ virtual void
SerializeToBuffer ( XMP_VarString * rdfString,
XMP_OptionBits options,
XMP_StringLen padding,
@@ -344,13 +344,13 @@ public:
void * context,
XMP_Uns32 limit );
- void
+ virtual void
SetErrorCallback ( XMPMeta_ErrorCallbackWrapper wrapperProc,
XMPMeta_ErrorCallbackProc clientProc,
void * context,
XMP_Uns32 limit );
- void
+ virtual void
ResetErrorCallbackLimit ( XMP_Uns32 limit );
class ErrorCallbackInfo : public GenericErrorCallback {
diff --git a/XMPCore/source/XMPMeta2-GetSet.cpp b/XMPCore/source/XMPMeta2-GetSet.cpp
new file mode 100644
index 0000000..f7f1d9b
--- /dev/null
+++ b/XMPCore/source/XMPMeta2-GetSet.cpp
@@ -0,0 +1,1356 @@
+// =================================================================================================
+// Copyright 2003 Adobe Systems Incorporated
+// All Rights Reserved.
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+//
+// Adobe patent application tracking #P435, entitled 'Unique markers to simplify embedding data of
+// one format in a file with a different format', inventors: Sean Parent, Greg Gilley.
+// =================================================================================================
+// =================================================================================================
+
+#include "XMPCore/XMPCoreDefines.h"
+#if ENABLE_CPP_DOM_MODEL
+#include "public/include/XMP_Environment.h" // ! This must be the first include!
+#include "XMPCore/source/XMPCore_Impl.hpp"
+
+
+#include "XMPCore/source/XMPMeta2.hpp"
+#include "XMPCore/source/XMPIterator.hpp"
+#include "XMPCore/source/XMPUtils.hpp"
+
+#include "public/include/XMP_Version.h"
+#include "source/UnicodeInlines.incl_cpp"
+#include "source/UnicodeConversions.hpp"
+#include "source/ExpatAdapter.hpp"
+#include "third-party/zuid/interfaces/MD5.h"
+#include "XMPCore/Interfaces/IMetadata_I.h"
+#include "XMPCore/Interfaces/IArrayNode_I.h"
+#include "XMPCore/Interfaces/ISimpleNode_I.h"
+#include "XMPCommon/Interfaces/IUTF8String_I.h"
+#include "XMPCore/Interfaces/IPathSegment_I.h"
+#include "XMPCore/Interfaces/IPath_I.h"
+#include "XMPCore/Interfaces/INameSpacePrefixMap_I.h"
+#include "XMPCore/Interfaces/IDOMImplementationRegistry_I.h"
+#include "XMPCore/Interfaces/IDOMParser.h"
+#include "XMPCore/Interfaces/IDOMSerializer.h"
+#include "XMPCore/Interfaces/INodeIterator.h"
+#include "XMPCore/Interfaces/IDOMParser_I.h"
+#include "XMPCore/Interfaces/IDOMSerializer_I.h"
+#include "XMPCore/Interfaces/ICoreConfigurationManager.h"
+
+
+
+#if XMP_DebugBuild
+ #include <iostream>
+#endif
+
+using namespace std;
+
+#if XMP_WinBuild
+ #pragma warning ( disable : 4533 ) // initialization of '...' is skipped by 'goto ...'
+ #pragma warning ( disable : 4702 ) // unreachable code
+ #pragma warning ( disable : 4800 ) // forcing value to bool 'true' or 'false' (performance warning)
+#endif
+
+
+
+// *** Use the XMP_PropIsXyz (Schema, Simple, Struct, Array, ...) macros
+// *** Add debug codegen checks, e.g. that typical masking operations really work
+// *** Change all uses of strcmp and strncmp to XMP_LitMatch and XMP_LitNMatch
+
+
+// =================================================================================================
+// Local Types and Constants
+// =========================
+
+typedef unsigned char XMP_CLTMatch;
+
+enum { // Values for XMP_CLTMatch.
+ kXMP_CLT_NoValues,
+ kXMP_CLT_SpecificMatch,
+ kXMP_CLT_SingleGeneric,
+ kXMP_CLT_MultipleGeneric,
+ kXMP_CLT_XDefault,
+ kXMP_CLT_FirstItem
+};
+const XMP_VarString xmlNameSpace = "http://www.w3.org/XML/1998/namespace";
+
+// =================================================================================================
+// Static Variables
+// ================
+
+
+// =================================================================================================
+// Local Utilities
+// ===============
+extern void SplitNameAndValue ( const XMP_VarString & selStep, XMP_VarString * nameStr, XMP_VarString * valueStr );
+
+extern void DumpNodeOptions ( XMP_OptionBits options,XMP_TextOutputProc outProc,void *refCon );
+using namespace AdobeXMPCore_Int;
+using namespace AdobeXMPCommon_Int;
+
+
+
+
+static void
+AppendIXMPLangItem ( const spIArrayNode & arrayNode, XMP_StringPtr itemLang, XMP_StringPtr itemValue )
+{
+
+
+
+ spISimpleNode newItem = ISimpleNode::CreateSimpleNode( arrayNode->GetNameSpace()->c_str(), arrayNode->GetNameSpace()->size(), arrayNode->GetName()->c_str(), arrayNode->GetName()->size(), "", AdobeXMPCommon::npos );
+ spISimpleNode langQual = ISimpleNode::CreateSimpleNode( xmlNameSpace.c_str(), xmlNameSpace.size(), "lang", AdobeXMPCommon::npos, "", AdobeXMPCommon::npos );
+
+ try {
+
+ XMPUtils::SetNode(newItem,itemValue,(kXMP_PropHasQualifiers | kXMP_PropHasLang));
+ XMPUtils::SetNode(langQual, itemLang, kXMP_PropIsQualifier);
+
+ } catch (...) {
+
+ newItem->Clear();
+ langQual->Clear();
+ throw;
+ }
+
+
+ newItem->InsertQualifier(langQual);
+ if ( (!arrayNode->ChildCount() || !XMP_LitMatch(langQual->GetValue()->c_str(),"x-default") )) {
+
+ size_t arraySize = arrayNode->ChildCount();
+ arrayNode->InsertNodeAtIndex(newItem, arraySize + 1);
+
+ } else {
+
+ arrayNode->InsertNodeAtIndex(newItem, 1);
+ }
+
+} // AppendLangItem
+
+
+
+
+// -------------------------------------------------------------------------------------------------
+// GetProperty
+// -----------
+
+
+
+
+
+XMPMeta2::XMPMeta2()
+{
+ mDOM = IMetadata::CreateMetadata();
+ mDOM->EnableFeature("alias", 5);
+ spRegistry = IDOMImplementationRegistry::GetDOMImplementationRegistry();
+ spParser = spRegistry->GetParser( "rdf" );
+}
+
+XMPMeta2::~XMPMeta2()
+{
+
+}
+
+
+
+bool
+XMPMeta2::GetProperty ( XMP_StringPtr schemaNS,
+ XMP_StringPtr propName,
+ XMP_StringPtr * propValue,
+ XMP_StringLen * valueSize,
+ XMP_OptionBits * options ) const
+{
+ XMP_Assert ( (schemaNS != 0) && (propName != 0) ); // Enforced by wrapper.
+ XMP_Assert ( (propValue != 0) && (valueSize != 0) && (options != 0) ); // Enforced by wrapper.
+ XMP_ExpandedXPath expPath;
+ ExpandXPath ( schemaNS, propName, &expPath );
+
+
+ auto defaultMap = INameSpacePrefixMap::GetDefaultNameSpacePrefixMap();
+ spINode destNode = mDOM;
+ bool qualifierFlag = false;
+ size_t pathStartIdx = 1;
+ if (expPath[kRootPropStep].options & kXMP_StepIsAlias) {
+
+ if (!XMPUtils::HandleConstAliasStep(mDOM, destNode, expPath, 0)) return false;
+ pathStartIdx = 2;
+
+ }
+ for ( size_t i = pathStartIdx, endIndex = expPath.size(); i < endIndex; i++ ) {
+
+ if(!destNode) return false;
+ XMP_VarString stepStr = expPath[i].step;
+ XMP_VarString prevStep = ( i == 0 ) ? "" : expPath[i - 1].step;
+ spcIUTF8String nameSpace ;
+
+ switch( expPath[i].options ) {
+ case kXMP_StructFieldStep:
+ {
+ size_t colonPos = stepStr.find(':');
+ XMP_VarString prefix = stepStr.substr( 0, colonPos );
+ // get the namespace from the prefix
+ nameSpace = defaultMap->GetNameSpace( prefix.c_str(), prefix.size() );
+ if(destNode->GetNodeType() == INode::kNTStructure) {
+ spIStructureNode tempNode = destNode->ConvertToStructureNode();
+ destNode = tempNode->GetNode(nameSpace->c_str(), AdobeXMPCommon::npos, stepStr.c_str() + colonPos + 1, AdobeXMPCommon::npos );
+ }
+ else {
+ return false;
+ }
+ }
+ break;
+ case kXMP_ArrayIndexStep:
+ {
+
+ if(destNode->GetNodeType() != INode::kNTArray) {
+ return false;
+ }
+ spIArrayNode tempNode = destNode->ConvertToArrayNode();
+ XMP_Index index = 0;
+ XMP_Assert ( (stepStr.length() >= 2) && (*( stepStr.begin()) == '[') && (stepStr[stepStr.length()-1] == ']') );
+ for ( size_t chNum = 1,chEnd = stepStr.length() -1 ; chNum != chEnd; ++chNum ) {
+ XMP_Assert ( ('0' <= stepStr[chNum]) && (stepStr[chNum] <= '9') );
+ index = (index * 10) + (stepStr[chNum] - '0');
+ }
+ if ( index < 1) XMP_Throw ( "Array index must be larger than one", kXMPErr_BadXPath );
+ size_t colonPos = prevStep.find(':');
+ XMP_VarString prefix = prevStep.substr( 0, colonPos );
+ nameSpace = defaultMap->GetNameSpace( prefix.c_str(), prefix.size() );
+ destNode = tempNode->GetNodeAtIndex( index );
+ }
+ break;
+ case kXMP_ArrayLastStep:
+ {
+ if(destNode->GetNodeType() != INode::kNTArray) {
+ return false;
+ }
+ spIArrayNode tempNode = destNode->ConvertToArrayNode();
+
+ size_t colonPos = prevStep.find(':');
+ XMP_VarString prefix = prevStep.substr( 0, colonPos );
+ nameSpace = defaultMap->GetNameSpace( prefix.c_str(), prefix.size() );
+ spINode parentNode = destNode;
+ if(parentNode && parentNode->GetNodeType()== INode::kNTArray) {
+ size_t childCount = parentNode->ConvertToArrayNode()->ChildCount();
+ if(!childCount) {
+ XMP_Throw ( "Array index overflow", kXMPErr_BadXPath );
+ }
+ destNode = tempNode->GetNodeAtIndex(childCount);
+ }
+
+ }
+ break;
+ case kXMP_QualifierStep:
+ {
+
+ XMP_Assert(stepStr[0]=='?');
+ stepStr = stepStr.substr(1);
+ size_t colonPos = stepStr.find(':');
+ XMP_VarString prefix = stepStr.substr( 0, colonPos);
+ nameSpace = defaultMap->GetNameSpace( prefix.c_str(), prefix.size() );
+ destNode = destNode->GetQualifier(nameSpace->c_str(), nameSpace->size(), stepStr.c_str() + colonPos + 1, AdobeXMPCommon::npos );
+ qualifierFlag = true;
+ }
+
+ break;
+
+ case kXMP_QualSelectorStep:
+ {
+
+ if(destNode->GetNodeType() != INode::kNTArray) {
+ return false;
+ }
+ spIArrayNode tempNode = destNode->ConvertToArrayNode();
+ XMP_VarString qualName, qualValue, qualNameSpace;
+ SplitNameAndValue (stepStr, &qualName, &qualValue );
+ spINode parentNode = destNode;
+ size_t colonPos = qualName.find(':');
+ XMP_VarString prefix = qualName.substr( 0, colonPos);
+ qualNameSpace = defaultMap->GetNameSpace( prefix.c_str(), prefix.size() )->c_str();
+ bool indexFound = false;
+ if(parentNode && parentNode->GetNodeType() == INode::kNTArray) {
+
+ spIArrayNode parentArrayNode = parentNode->ConvertToArrayNode();
+ size_t arrayChildCount = parentArrayNode->ChildCount();
+ for(size_t arrayIdx = 1; arrayIdx <= arrayChildCount; arrayIdx++) {
+ spINode currentArrayItem = parentArrayNode->GetNodeAtIndex(arrayIdx);
+ spINode qualNode = currentArrayItem->GetQualifier(qualNameSpace.c_str(), qualNameSpace.size(), qualName.c_str() + colonPos + 1, AdobeXMPCommon::npos );
+ if(!qualNode) continue;
+ XMP_VarString currentQualValue = qualNode->ConvertToSimpleNode()->GetValue()->c_str();
+ if( currentQualValue == qualValue) {
+ indexFound = true;
+ destNode = parentArrayNode->GetNodeAtIndex( arrayIdx);
+ break;
+ }
+ }
+
+ }
+ if(!indexFound) {
+ return false;
+ }
+ }
+ break;
+
+ case kXMP_FieldSelectorStep :
+ {
+
+ XMP_VarString fieldName, fieldValue, fieldNameSpace;
+ SplitNameAndValue (stepStr, &fieldName, &fieldValue );
+ spINode parentNode = destNode;
+ size_t colonPos = fieldName.find(':');
+ XMP_VarString prefix = fieldName.substr( 0, colonPos);
+ fieldNameSpace = defaultMap->GetNameSpace( prefix.c_str(), prefix.size() )->c_str();
+ bool indexFound = false;
+ if(parentNode && parentNode->GetNodeType() == INode::kNTArray) {
+
+ spIArrayNode parentArrayNode = parentNode->ConvertToArrayNode();
+ size_t arrayChildCount = parentArrayNode->ChildCount();
+ for(size_t arrayIdx = 1; arrayIdx <= arrayChildCount; arrayIdx++) {
+
+ spINode currentItem = parentArrayNode->GetNodeAtIndex(arrayIdx);
+
+ if(currentItem->GetNodeType() != INode::kNTStructure) {
+ return false;
+ }
+
+ spINode fieldNode = currentItem->ConvertToStructureNode()->GetNode(fieldNameSpace.c_str(), fieldNameSpace.size(), fieldName.c_str() + colonPos + 1, AdobeXMPCommon::npos );
+ if(!fieldNode || fieldNode->GetNodeType() != INode::kNTSimple) continue;
+ XMP_VarString currentFieldValue = fieldNode->ConvertToSimpleNode()->GetValue()->c_str();
+ if( currentFieldValue == fieldValue) {
+ indexFound = true;
+ destNode = parentArrayNode->GetNodeAtIndex( arrayIdx);
+ break;
+ }
+ }
+ }
+ if(!indexFound) {
+ return false;
+ }
+ }
+ break;
+ default:
+ break;
+
+ }
+
+ }
+
+
+ if (!destNode) {
+ return false;
+ }
+ if(options)*options = XMPUtils::GetIXMPOptions(destNode);
+ if ( destNode->GetNodeType() == INode::kNTSimple ) {
+
+ spcIUTF8String value = destNode->ConvertToSimpleNode()->GetValue();
+ *propValue = value->c_str();
+ *valueSize = static_cast<XMP_StringLen>( value->size() );
+ }
+ return true;
+
+} // GetProperty
+
+// -------------------------------------------------------------------------------------------------
+// CountArrayItems
+// ---------------
+
+XMP_Index
+XMPMeta2::CountArrayItems ( XMP_StringPtr schemaNS,
+ XMP_StringPtr arrayName ) const
+{
+ XMP_Assert ( (schemaNS != 0) && (arrayName != 0) ); // Enforced by wrapper.
+
+ XMP_ExpandedXPath expPath;
+ ExpandXPath ( schemaNS, arrayName, &expPath );
+
+ spINode arrayNode ;
+ XMP_OptionBits arrayOptions = 0;
+ if(!XMPUtils::FindCnstNode(this->mDOM, expPath, arrayNode, &arrayOptions)) return false;
+
+
+ if ( ! (arrayOptions & kXMP_PropValueIsArray) ) XMP_Throw ( "The named property is not an array", kXMPErr_BadXPath );
+ return static_cast<XMP_Index>( XMPUtils::GetNodeChildCount(arrayNode) );
+
+} // CountArrayItems
+
+
+void XMPMeta2::ParseFromBuffer ( XMP_StringPtr buffer, XMP_StringLen bufferSize, XMP_OptionBits options )
+{
+ bool lastClientCall = (options & kXMP_ParseMoreBuffers) ? false : true;
+ if (!mBuffer) {
+ mBuffer = IUTF8String_I::CreateUTF8String("", 0);
+ }
+ sizet bufferSizeIn64Bits = static_cast<sizet>(bufferSize);
+ if (bufferSize == kXMP_UseNullTermination) {
+ bufferSizeIn64Bits = std::string::npos;
+ }
+ mBuffer->append(buffer, bufferSizeIn64Bits);
+
+
+ if (!lastClientCall) {
+ return;
+ }
+
+ spParser->GetIDOMParser_I()->SetErrorCallback(&errorCallback);
+ mDOM = spParser->Parse( mBuffer->c_str(), mBuffer->size() );
+ mBuffer->clear();
+}
+
+void XMPMeta2::SerializeToBuffer ( XMP_VarString * rdfString,
+ XMP_OptionBits options,
+ XMP_StringLen padding,
+ XMP_StringPtr newline,
+ XMP_StringPtr indent,
+ XMP_Index baseIndent ) const
+{
+ auto spRegistry = IDOMImplementationRegistry::GetDOMImplementationRegistry();
+ auto rdfSerializer = spRegistry->GetSerializer( "rdf" );
+ auto str = rdfSerializer->GetIDOMSerializer_I()->SerializeInternal( mDOM, options, padding, newline, indent, baseIndent);
+ rdfString->clear();
+ if (str)
+ rdfString->append( str->c_str() );
+}
+
+
+void
+XMPMeta2::Sort()
+{
+ // need internal implementation of sort here
+ return;
+
+} // Sort
+
+void
+XMPMeta2::Erase()
+{
+
+ if ( this->xmlParser != 0 ) {
+ delete ( this->xmlParser );
+ this->xmlParser = 0;
+ }
+ mDOM->Clear();
+}
+// DoesPropertyExist
+// -----------------
+
+bool
+XMPMeta2::DoesPropertyExist ( XMP_StringPtr schemaNS,
+ XMP_StringPtr propName ) const
+{
+ XMP_Assert ( (schemaNS != 0) && (propName != 0) ); // Enforced by wrapper.
+
+ XMP_ExpandedXPath expPath;
+ ExpandXPath ( schemaNS, propName, &expPath );
+ spINode destNode;
+ XMP_OptionBits options;
+ return XMPUtils::FindCnstNode ( this->mDOM, expPath, destNode, &options );
+
+
+} // DoesPropertyExist
+
+// SetProperty
+// -----------
+
+// *** Should handle array items specially, calling SetArrayItem.
+
+void
+XMPMeta2::SetProperty ( XMP_StringPtr schemaNS,
+ XMP_StringPtr propName,
+ XMP_StringPtr propValue,
+ XMP_OptionBits options )
+{
+ XMP_Assert ( (schemaNS != 0) && (propName != 0) ); // Enforced by wrapper.
+
+ options = VerifySetOptions ( options, propValue );
+
+ XMP_ExpandedXPath expPath;
+ ExpandXPath ( schemaNS, propName, &expPath );
+
+ spINode node ;
+ bool propertyFound = XMPUtils::FindNode ( mDOM, expPath, kXMP_CreateNodes, options, node, 0 );
+ if (!propertyFound) XMP_Throw ( "Specified property does not exist", kXMPErr_BadXPath );
+
+ XMPUtils::SetNode ( node, propValue, options );
+
+} // SetProperty
+// -------------------------------------------------------------------------------------------------'
+// -------------------------------------------------------------------------------------------------
+// SetArrayItem
+// ------------
+
+void
+XMPMeta2::SetArrayItem ( XMP_StringPtr schemaNS,
+ XMP_StringPtr arrayName,
+ XMP_Index itemIndex,
+ XMP_StringPtr itemValue,
+ XMP_OptionBits options )
+{
+ XMP_Assert ( (schemaNS != 0) && (arrayName != 0) ); // Enforced by wrapper.
+
+ XMP_ExpandedXPath arrayPath;
+ ExpandXPath ( schemaNS, arrayName, &arrayPath );
+ spINode destNode;
+ if(!XMPUtils::FindNode ( mDOM, arrayPath, false,options, destNode ) ) {
+ XMP_Throw ( "Specified array does not exist", kXMPErr_BadXPath );
+ }
+ int x = destNode->GetNodeType();
+ if(destNode->GetNodeType() != INode::kNTArray) {
+ XMP_Throw ( "Specified array does not exist", kXMPErr_BadXPath );
+ }
+
+ spIArrayNode arrayNode = destNode->ConvertToArrayNode();
+ XMPUtils::DoSetArrayItem ( arrayNode, itemIndex, itemValue, options );
+
+} // SetArrayItem
+
+
+// -------------------------------------------------------------------------------------------------
+// AppendArrayItem
+// ---------------
+
+void
+XMPMeta2::AppendArrayItem ( XMP_StringPtr schemaNS,
+ XMP_StringPtr arrayName,
+ XMP_OptionBits arrayOptions,
+ XMP_StringPtr itemValue,
+ XMP_OptionBits options )
+{
+ // TO DO check in case array node doesn't already exist, and the parent of the array to be created is also an array -currently appending the array at the end of the existing array
+ XMP_Assert ( (schemaNS != 0) && (arrayName != 0) ); // Enforced by wrapper.
+
+ arrayOptions = VerifySetOptions ( arrayOptions, 0 );
+ if ( (arrayOptions & ~kXMP_PropArrayFormMask) != 0 ) {
+ XMP_Throw ( "Only array form flags allowed for arrayOptions", kXMPErr_BadOptions );
+ }
+
+
+ XMP_ExpandedXPath arrayPath;
+ ExpandXPath ( schemaNS, arrayName, &arrayPath );
+ spINode destNode;
+ spIArrayNode arrayNode;
+ XMP_OptionBits dummyOptions;
+ XMP_Index insertIndex = 0;
+ // either destNode will be the array node or it will be the parent node of the array
+ if(XMPUtils::FindCnstNode (mDOM, arrayPath, destNode, &dummyOptions )) {
+
+ if ( destNode->GetNodeType() != INode::kNTArray) {
+
+ XMP_Throw ( "The named property is not an array", kXMPErr_BadXPath );
+
+ }
+
+
+ }
+ else {
+
+ if ( arrayOptions == 0 ) XMP_Throw ( "Explicit arrayOptions required to create new array", kXMPErr_BadOptions );
+ XPathStepInfo lastPathSegment( arrayPath.back());
+ XMP_VarString arrayStep = lastPathSegment.step;
+ //arrayPath.pop_back();
+
+ if(!XMPUtils::FindNode(this->mDOM, arrayPath, kXMP_CreateNodes, arrayOptions, destNode, &insertIndex)) {
+ XMP_Throw ( "Failure creating array node", kXMPErr_BadXPath );
+ }
+
+ }
+ arrayNode = destNode->ConvertToArrayNode();
+ XMPUtils::DoSetArrayItem ( arrayNode, kXMP_ArrayLastItem, itemValue, (options | kXMP_InsertAfterItem) );
+
+
+
+} // AppendArrayItem
+
+// -------------------------------------------------------------------------------------------------
+// SetQualifier
+// ------------
+
+void
+XMPMeta2::SetQualifier ( XMP_StringPtr schemaNS,
+ XMP_StringPtr propName,
+ XMP_StringPtr qualNS,
+ XMP_StringPtr qualName,
+ XMP_StringPtr qualValue,
+ XMP_OptionBits options )
+{
+ XMP_Assert ( (schemaNS != 0) && (propName != 0) && (qualNS != 0) && (qualName != 0) ); // Enforced by wrapper.
+
+ XMP_ExpandedXPath expPath;
+ ExpandXPath ( schemaNS, propName, &expPath );
+ spINode destNode ;
+
+ if(!XMPUtils::FindCnstNode ( mDOM, expPath, destNode) )
+ XMP_Throw ( "Specified property does not exist", kXMPErr_BadXPath );
+
+ XMP_VarString qualPath;
+ XMPUtils::ComposeQualifierPath ( schemaNS, propName, qualNS, qualName, &qualPath );
+ SetProperty ( schemaNS, qualPath.c_str(), qualValue, options );
+
+}
+// SetQualifier
+
+// Clone
+// -----
+
+void
+XMPMeta2::Clone ( XMPMeta * clone, XMP_OptionBits options ) const
+{
+
+ XMPMeta2 * xmpMeta2Ptr = dynamic_cast<XMPMeta2 *>(clone);
+ // Possible to do a safer/better cast?
+ if (xmpMeta2Ptr== 0 ) XMP_Throw ( "Null clone pointer", kXMPErr_BadParam );
+ if ( options != 0 ) XMP_Throw ( "No options are defined yet", kXMPErr_BadOptions );
+
+ xmpMeta2Ptr->mDOM->Clear();
+ xmpMeta2Ptr->mDOM = mDOM->Clone()->ConvertToMetadata();
+
+} // Clone
+
+
+// -------------------------------------------------------------------------------------------------
+// DeleteProperty
+// --------------
+
+
+void
+XMPMeta2::DeleteProperty ( XMP_StringPtr schemaNS,
+ XMP_StringPtr propName )
+{
+ XMP_Assert ( (schemaNS != 0) && (propName != 0) ); // Enforced by wrapper.
+
+ XMP_ExpandedXPath expPath;
+ ExpandXPath ( schemaNS, propName, &expPath );
+
+ XMP_NodePtrPos ptrPos;
+ spINode propNode ;
+ XMP_OptionBits options = 0;
+ XMP_Index arrayIndex = 0;
+ if(!XMPUtils::FindCnstNode ( mDOM, expPath, propNode, &options, &arrayIndex ) || !propNode ) {
+
+ return;
+ }
+ if (!propNode) return;
+
+ spINode parentNode = propNode->GetParent();
+
+ // Erase the pointer from the parent's vector, then delete the node and all below it.
+
+ if ( (options & kXMP_PropIsQualifier) ) {
+
+ parentNode->RemoveQualifier( propNode->GetNameSpace()->c_str(), propNode->GetNameSpace()->size(),
+ propNode->GetName()->c_str(), propNode->GetName()->size() );
+
+
+ }
+ else if(parentNode->GetNodeType() == INode::kNTArray) {
+
+ spIArrayNode parentArrayNode = parentNode->ConvertToArrayNode();
+ parentArrayNode->RemoveNodeAtIndex(arrayIndex);
+
+
+ }
+ else if(parentNode->GetNodeType() == INode::kNTStructure) {
+ spIStructureNode parentStructureNode = parentNode->ConvertToStructureNode();
+ parentStructureNode->RemoveNode( propNode->GetNameSpace()->c_str(), propNode->GetNameSpace()->size(),
+ propNode->GetName()->c_str(), propNode->GetName()->size() );
+ }
+ // delete subtree - needed ?
+ //propNode->Clear();
+
+
+} // DeleteProperty
+
+void
+XMPMeta2::GetObjectName ( XMP_StringPtr * namePtr,
+ XMP_StringLen * nameLen ) const
+{
+ *namePtr = this->mDOM->GetAboutURI()->c_str();
+ *nameLen = static_cast<XMP_StringLen> ( this->mDOM->GetAboutURI()->size() );
+
+} // GetObjectName
+
+
+// -------------------------------------------------------------------------------------------------
+// SetObjectName
+// -------------
+
+void
+XMPMeta2::SetObjectName ( XMP_StringPtr name )
+{
+ VerifyUTF8 (name); // Throws if the string is not legit UTF-8.
+ this->mDOM->SetAboutURI(name, AdobeXMPCommon::npos );
+
+} // SetObjectName
+
+// -------------------------------------------------------------------------------------------------
+// ChooseLocalizedText
+// -------------------
+//
+// 1. Look for an exact match with the specific language.
+// 2. If a generic language is given, look for partial matches.
+// 3. Look for an "x-default" item.
+// 4. Choose the first item.
+
+static XMP_CLTMatch
+ChooseIXMPLocalizedText (
+ const spIArrayNode &arrayNode,
+ XMP_OptionBits &options,
+ XMP_StringPtr genericLang,
+ XMP_StringPtr specificLang,
+ spINode &itemNode )
+{
+ spINode currItem ;
+ const size_t itemLim = arrayNode->ChildCount();
+ size_t itemNum;
+ const XMP_VarString xmlLangQualifierName = "lang";
+
+ // See if the array has the right form. Allow empty alt arrays, that is what parsing returns.
+ // *** Should check alt-text bit when that is reliably maintained.
+
+ if ( ! ( XMP_ArrayIsAltText(options) ||
+ (!itemLim && XMP_ArrayIsAlternate(options)) ) ) {
+ XMP_Throw ( "Localized text array is not alt-text", kXMPErr_BadXPath );
+ }
+ if ( !itemLim ) {
+
+ return kXMP_CLT_NoValues;
+ }
+
+ for ( itemNum = 1; itemNum <= itemLim; ++itemNum ) {
+ currItem = arrayNode->GetNodeAtIndex(itemNum);
+ if ( currItem->GetNodeType()!= INode::kNTSimple ) {
+ XMP_Throw ( "Alt-text array item is not simple", kXMPErr_BadXPath );
+ }
+ if ( !currItem->HasQualifiers() || !currItem->GetQualifier(xmlNameSpace.c_str(), xmlNameSpace.size(), xmlLangQualifierName.c_str(), xmlLangQualifierName.size() ) ) {
+ XMP_Throw ( "Alt-text array item has no language qualifier", kXMPErr_BadXPath );
+ }
+ }
+
+ // Look for an exact match with the specific language.
+ spISimpleNode xmlLangQualifierNode, currItemValue;
+ for ( itemNum = 1; itemNum <= itemLim; ++itemNum ) {
+ currItem = arrayNode->GetNodeAtIndex(itemNum);
+ xmlLangQualifierNode = currItem->QualifiersIterator()->GetNode()->ConvertToSimpleNode();
+ currItemValue = currItem->ConvertToSimpleNode();
+ if ( !strcmp(xmlLangQualifierNode->GetValue()->c_str(), specificLang ) ) {
+ itemNode = currItem;
+ return kXMP_CLT_SpecificMatch;
+ }
+ }
+
+ if ( *genericLang != 0 ) {
+
+ // Look for the first partial match with the generic language.
+ const size_t genericLen = strlen ( genericLang );
+ for ( itemNum = 1; itemNum <= itemLim; ++itemNum ) {
+ currItem = arrayNode->GetNodeAtIndex(itemNum);
+ xmlLangQualifierNode = currItem->GetQualifier( xmlNameSpace.c_str(), xmlNameSpace.size(),
+ xmlLangQualifierName.c_str(), xmlLangQualifierName.size() )->ConvertToSimpleNode();
+ XMP_StringPtr currLang = xmlLangQualifierNode->GetValue()->c_str();
+ const size_t currLangSize = xmlLangQualifierNode->GetValue()->size();
+ if ( (currLangSize >= genericLen) &&
+ XMP_LitNMatch ( currLang, genericLang, genericLen ) &&
+ ((currLangSize == genericLen) || (currLang[genericLen] == '-')) ) {
+ itemNode = currItem;
+ break; // ! Don't return, need to look for other matches.
+ }
+ }
+
+ if ( itemNum <= itemLim ) {
+
+ // Look for a second partial match with the generic language.
+ for ( ++itemNum; itemNum <= itemLim; ++itemNum ) {
+ currItem = arrayNode->GetNodeAtIndex(itemNum);
+ xmlLangQualifierNode = currItem->GetQualifier( xmlNameSpace.c_str(), xmlNameSpace.size(),
+ xmlLangQualifierName.c_str(), xmlLangQualifierName.size() )->ConvertToSimpleNode();
+ XMP_StringPtr currLang = xmlLangQualifierNode->GetValue()->c_str();
+ const size_t currLangSize = xmlLangQualifierNode->GetValue()->size();
+ if ( (currLangSize >= genericLen) &&
+ XMP_LitNMatch ( currLang, genericLang, genericLen ) &&
+ ((currLangSize == genericLen) || (currLang[genericLen] == '-')) ) {
+ return kXMP_CLT_MultipleGeneric; // ! Leave itemNode with the first partial match.
+ }
+ }
+ return kXMP_CLT_SingleGeneric; // No second partial match was found.
+
+ }
+
+ }
+
+ // Look for an 'x-default' item.
+ for ( itemNum = 1; itemNum <= itemLim; ++itemNum ) {
+ currItem = arrayNode->GetNodeAtIndex(itemNum);
+ xmlLangQualifierNode = currItem->GetQualifier( xmlNameSpace.c_str(), xmlNameSpace.size(),
+ xmlLangQualifierName.c_str(), xmlLangQualifierName.size() )->ConvertToSimpleNode();
+ if ( !XMP_LitMatch(xmlLangQualifierNode->GetValue()->c_str(), "x-default" ) ) {
+ itemNode = currItem;
+ return kXMP_CLT_XDefault;
+ }
+ }
+
+ // Everything failed, choose the first item.
+ itemNode = arrayNode->GetNodeAtIndex(1);
+ return kXMP_CLT_FirstItem;
+
+} // ChooseLocalizedText
+
+
+
+// -------------------------------------------------------------------------------------------------
+// GetLocalizedText
+// ----------------
+
+bool
+XMPMeta2::GetLocalizedText ( XMP_StringPtr schemaNS,
+ XMP_StringPtr arrayName,
+ XMP_StringPtr _genericLang,
+ XMP_StringPtr _specificLang,
+ XMP_StringPtr * actualLang,
+ XMP_StringLen * langSize,
+ XMP_StringPtr * itemValue,
+ XMP_StringLen * valueSize,
+ XMP_OptionBits * options ) const
+{
+ // TO DO : options
+ XMP_Assert ( (schemaNS != 0) && (arrayName != 0) && (_genericLang != 0) && (_specificLang != 0) ); // Enforced by wrapper.
+ XMP_Assert ( (actualLang != 0) && (langSize != 0) ); // Enforced by wrapper.
+ XMP_Assert ( (itemValue != 0) && (valueSize != 0) && (options != 0) ); // Enforced by wrapper.
+
+ XMP_VarString zGenericLang ( _genericLang );
+ XMP_VarString zSpecificLang ( _specificLang );
+ NormalizeLangValue ( &zGenericLang );
+ NormalizeLangValue ( &zSpecificLang );
+
+ XMP_StringPtr genericLang = zGenericLang.c_str();
+ XMP_StringPtr specificLang = zSpecificLang.c_str();
+
+ XMP_ExpandedXPath arrayPath;
+ ExpandXPath ( schemaNS, arrayName, &arrayPath );
+ spINode arrayNode, itemNode;
+ XMP_OptionBits arrayOptions;
+ if(!XMPUtils::FindCnstNode( this->mDOM, arrayPath, arrayNode, &arrayOptions)) return false;
+ XMP_CLTMatch match = ChooseIXMPLocalizedText( arrayNode->ConvertToArrayNode(), arrayOptions, genericLang, specificLang, itemNode );
+ if ( match == kXMP_CLT_NoValues ) return false;
+
+ spISimpleNode qualifierNode = itemNode->GetQualifier( xmlNameSpace.c_str(), xmlNameSpace.size(), "lang", AdobeXMPCommon::npos )->ConvertToSimpleNode();
+ *actualLang = qualifierNode->GetValue()->c_str();
+ *langSize = static_cast<XMP_StringLen>( qualifierNode->GetValue()->size() );
+ spcIUTF8String itemNodeValue = itemNode->ConvertToSimpleNode()->GetValue();
+ *itemValue = itemNodeValue->c_str();
+ *valueSize = static_cast<XMP_StringLen>( itemNodeValue->size() );
+ *options = XMPUtils::GetIXMPOptions(itemNode);
+ return true;
+
+} // GetLocalizedText
+
+// -------------------------------------------------------------------------------------------------
+// DeleteLocalizedText
+// -------------------
+
+
+void
+XMPMeta2::DeleteLocalizedText ( XMP_StringPtr schemaNS,
+ XMP_StringPtr arrayName,
+ XMP_StringPtr _genericLang,
+ XMP_StringPtr _specificLang )
+{
+ XMP_Assert ( (schemaNS != 0) && (arrayName != 0) && (_genericLang != 0) && (_specificLang != 0) ); // Enforced by wrapper.
+
+ XMP_VarString zGenericLang ( _genericLang );
+ XMP_VarString zSpecificLang ( _specificLang );
+ NormalizeLangValue ( &zGenericLang );
+ NormalizeLangValue ( &zSpecificLang );
+
+ XMP_StringPtr genericLang = zGenericLang.c_str();
+ XMP_StringPtr specificLang = zSpecificLang.c_str();
+
+ XMP_ExpandedXPath arrayPath;
+ ExpandXPath ( schemaNS, arrayName, &arrayPath );
+
+ // Find the LangAlt array and the selected array item.
+ spINode destNode, itemNode;
+ spIArrayNode arrayNode;
+ XMP_OptionBits arrayOptions;
+ if(!XMPUtils::FindCnstNode( this->mDOM, arrayPath, destNode, &arrayOptions)) return;
+ arrayNode = destNode->ConvertToArrayNode();
+ size_t arraySize = arrayNode->ChildCount();
+ XMP_CLTMatch match = ChooseIXMPLocalizedText( arrayNode->ConvertToArrayNode(), arrayOptions, genericLang, specificLang, itemNode );
+ spcIUTF8String itemValue = itemNode->ConvertToSimpleNode()->GetValue();
+ if ( match != kXMP_CLT_SpecificMatch ) return;
+
+
+ size_t itemIndex = 1;
+ for ( ; itemIndex <= arraySize; ++itemIndex ) {
+ if ( arrayNode->GetNodeAtIndex(itemIndex) == itemNode ) break;
+ }
+ XMP_Enforce ( itemIndex <= arraySize );
+
+ // Decide if the selected item is x-default or not, find relevant matching item.
+ spISimpleNode qualNode ;
+ bool itemIsXDefault = false;
+
+ if ( itemNode->HasQualifiers() ) {
+ qualNode = itemNode->GetQualifier( xmlNameSpace.c_str(), xmlNameSpace.size(), "lang", AdobeXMPCommon::npos )->ConvertToSimpleNode();
+ if (XMP_LitMatch(qualNode->GetValue()->c_str(), "x-default")) itemIsXDefault = true;
+ }
+
+ if ( itemIsXDefault && (itemIndex != 1) ) { // Enforce the x-default is first policy.
+ auto sp = arrayNode->GetNodeAtIndex( itemIndex );
+ arrayNode->GetNodeAtIndex(1).swap( sp );
+ itemIndex = 1;
+ }
+
+ spINode assocNode;
+ size_t assocIndex = 0;
+ size_t assocIsXDefault = false;
+ if ( itemIsXDefault ) {
+
+ for ( assocIndex = 2; assocIndex <= arraySize; ++assocIndex ) {
+ spISimpleNode indexNode = arrayNode->GetNodeAtIndex( assocIndex )->ConvertToSimpleNode();
+ if ( !strcmp(indexNode->GetValue()->c_str(), itemValue->c_str()) ) {
+ assocNode = arrayNode->GetNodeAtIndex(assocIndex);
+ break;
+ }
+ }
+
+ }
+ else if ( itemIndex > 1 ) {
+
+ spcIUTF8String itemOneValue = arrayNode->GetNodeAtIndex( 1 )->ConvertToSimpleNode()->GetValue();
+ if ( !strcmp(itemOneValue->c_str(), itemValue->c_str()) ) {
+ qualNode = arrayNode->GetNodeAtIndex( 1 )->GetQualifier( xmlNameSpace.c_str(), xmlNameSpace.size(), "lang", AdobeXMPCommon::npos )->ConvertToSimpleNode();
+ if ( XMP_LitMatch(qualNode->GetValue()->c_str(),"x-default") ) {
+ assocNode = arrayNode->GetNodeAtIndex(1);
+ assocIndex = 1;
+ assocIsXDefault = true;
+ }
+ }
+
+ }
+ if ( !assocIndex) {
+ arrayNode->RemoveNodeAtIndex(itemIndex);
+ }
+ else if ( itemIndex < assocIndex ) {
+ arrayNode->RemoveNodeAtIndex(assocIndex);
+ arrayNode->RemoveNodeAtIndex(itemIndex);
+ }
+ else {
+ arrayNode->RemoveNodeAtIndex(itemIndex);
+ arrayNode->RemoveNodeAtIndex(assocIndex);
+ }
+
+} // DeleteLocalizedText
+// -------------------------------------------------------------------------------------------------
+
+// SetLocalizedText
+// ----------------
+
+
+void
+XMPMeta2::SetLocalizedText ( XMP_StringPtr schemaNS,
+ XMP_StringPtr arrayName,
+ XMP_StringPtr _genericLang,
+ XMP_StringPtr _specificLang,
+ XMP_StringPtr itemValue,
+ XMP_OptionBits options )
+{
+
+ // is new DOM enforcing that first qualifier should be a lang alt
+ IgnoreParam(options);
+
+ XMP_Assert ( (schemaNS != 0) && (arrayName != 0) && (_genericLang != 0) && (_specificLang != 0) ); // Enforced by wrapper.
+
+ XMP_VarString zGenericLang ( _genericLang );
+ XMP_VarString zSpecificLang ( _specificLang );
+ NormalizeLangValue ( &zGenericLang );
+ NormalizeLangValue ( &zSpecificLang );
+
+ XMP_StringPtr genericLang = zGenericLang.c_str();
+ XMP_StringPtr specificLang = zSpecificLang.c_str();
+
+ XMP_ExpandedXPath arrayPath;
+ ExpandXPath ( schemaNS, arrayName, &arrayPath );
+
+ // Find the array node and set the options if it was just created.
+ spINode destNode;
+ spIArrayNode arrayNode;
+ XMP_OptionBits arrayOptions;
+ if( !XMPUtils::FindCnstNode(this->mDOM, arrayPath, destNode) ) {
+
+ XPathStepInfo lastPathSegment( arrayPath.back());
+ XMP_VarString arrayStep = lastPathSegment.step;
+ XMP_Index insertIndex = 0;
+ if (!XMPUtils::FindNode(this->mDOM, arrayPath, kXMP_CreateNodes, kXMP_PropArrayIsAlternate | kXMP_PropValueIsArray, destNode, &insertIndex)) {
+ XMP_Throw ( "Failure creating array node", kXMPErr_BadXPath );
+ }
+
+ }
+
+ arrayNode = destNode->ConvertToArrayNode();
+ arrayOptions = XMPUtils::GetIXMPOptions(arrayNode);
+
+
+
+ size_t arrayChildCount = arrayNode->ChildCount();
+ if ( !arrayNode ) XMP_Throw ( "Failed to find or create array node", kXMPErr_BadXPath );
+ if ( ! XMP_ArrayIsAltText(arrayOptions) ) {
+ if ( !arrayChildCount && XMP_ArrayIsAlternate(arrayOptions) ) {
+ arrayOptions |= kXMP_PropArrayIsAltText;
+ }
+ else {
+ XMP_Throw ( "Localized text array is not alt-text", kXMPErr_BadXPath );
+ }
+ }
+
+ // Make sure the x-default item, if any, is first.
+
+ size_t itemNum, itemLim;
+ spcISimpleNode firstQualifier;
+ spINode xdItem;
+ bool haveXDefault = false;
+
+ for ( itemNum = 1, itemLim = arrayNode->ChildCount(); itemNum <= itemLim; ++itemNum ) {
+ spINode currItem = arrayNode->GetNodeAtIndex(itemNum);
+
+ XMP_Assert (XMP_PropHasLang(XMPUtils::GetIXMPOptions(currItem)));
+ if(!currItem->HasQualifiers()) {
+ XMP_Throw ( "Language qualifier must be first", kXMPErr_BadXPath );
+ }
+ firstQualifier = currItem->QualifiersIterator()->GetNode()->ConvertToSimpleNode();
+ if (!XMP_LitMatch(firstQualifier->GetName()->c_str(),"lang")) {
+ XMP_Throw ( "Language qualifier must be first", kXMPErr_BadXPath );
+ }
+ if (XMP_LitMatch(firstQualifier->GetValue()->c_str(),"x-default" )) {
+ xdItem = currItem;
+ haveXDefault = true;
+ break;
+ }
+ }
+
+ if ( haveXDefault && (itemNum != 1) ) {
+ //TODO or not to do
+ XMP_Assert ( XMP_LitMatch(firstQualifier->GetValue()->c_str(), "x-default") );
+ spcISimpleNode tempNode = arrayNode->GetNodeAtIndex( itemNum )->GetQualifier( xmlNameSpace.c_str(), xmlNameSpace.size(), "lang", AdobeXMPCommon::npos )->ConvertToSimpleNode();
+
+ firstQualifier.swap(tempNode);
+ }
+
+ spINode itemNode;
+ spcIUTF8String xdValue, itemNodeValue;
+ if(xdItem && xdItem->GetNodeType() == INode::kNTSimple) {
+ xdValue = xdItem->ConvertToSimpleNode()->GetValue();
+ }
+ XMP_CLTMatch match = ChooseIXMPLocalizedText ( arrayNode->ConvertToArrayNode(), arrayOptions, genericLang, specificLang, itemNode);
+ if(itemNode && itemNode->GetNodeType() == INode::kNTSimple) {
+ itemNodeValue = itemNode->ConvertToSimpleNode()->GetValue();
+ }
+ const bool specificXDefault = XMP_LitMatch ( specificLang, "x-default" );
+ switch ( match ) {
+
+ case kXMP_CLT_NoValues :
+
+ // Create the array items for the specificLang and x-default, with x-default first.
+ AppendIXMPLangItem ( arrayNode, "x-default", itemValue );
+ haveXDefault = true;
+ if ( ! specificXDefault ) AppendIXMPLangItem ( arrayNode, specificLang, itemValue );
+ break;
+
+ case kXMP_CLT_SpecificMatch :
+
+ if ( ! specificXDefault ) {
+ // Update the specific item, update x-default if it matches the old value.
+ if ( xdItem && haveXDefault && (xdItem != itemNode) && (XMP_LitMatch(xdValue->c_str(), itemNodeValue->c_str())) ) {
+ XMPUtils::SetNode ( xdItem, itemValue, XMPUtils::GetIXMPOptions( xdItem));
+ }
+ XMPUtils::SetNode(itemNode, itemValue,XMPUtils:: GetIXMPOptions(itemNode));
+
+ } else {
+ // Update all items whose values match the old x-default value.
+ XMP_Assert ( xdItem && haveXDefault && (xdItem.get() == itemNode.get()) );
+ for ( itemNum = 1, itemLim = arrayNode->ChildCount(); itemNum <= itemLim; ++itemNum ) {
+ spISimpleNode currItem = arrayNode->GetNodeAtIndex( itemNum )->ConvertToSimpleNode();
+ if ( (currItem.get() == xdItem.get() ) || (strcmp(currItem->GetValue()->c_str(), xdValue->c_str()) )) continue;
+ XMPUtils::SetNode ( currItem, itemValue, XMPUtils::GetIXMPOptions(currItem) );
+ }
+
+ XMPUtils::SetNode( xdItem, itemValue,XMPUtils:: GetIXMPOptions(xdItem));
+ }
+ break;
+
+ case kXMP_CLT_SingleGeneric :
+
+ // Update the generic item, update x-default if it matches the old value.
+ if ( xdItem && haveXDefault && (xdItem != itemNode) && (XMP_LitMatch(xdValue->c_str(),itemNodeValue->c_str()) ) ) {
+ XMPUtils::SetNode ( xdItem, itemValue, XMPUtils::GetIXMPOptions(xdItem) );
+ }
+ XMPUtils::SetNode( itemNode, itemValue,XMPUtils:: GetIXMPOptions(itemNode) ); // ! Do this after the x-default check!
+ break;
+
+ case kXMP_CLT_MultipleGeneric :
+
+ // Create the specific language, ignore x-default.
+ AppendIXMPLangItem ( arrayNode, specificLang, itemValue );
+ if ( specificXDefault ) haveXDefault = true;
+ break;
+
+ case kXMP_CLT_XDefault :
+
+ // Create the specific language, update x-default if it was the only item.
+ if ( arrayNode->ChildCount()== 1 ) XMPUtils::SetNode ( xdItem, itemValue, XMPUtils::GetIXMPOptions(xdItem) );
+ AppendIXMPLangItem ( arrayNode, specificLang, itemValue );
+ break;
+
+ case kXMP_CLT_FirstItem :
+
+ // Create the specific language, don't add an x-default item.
+ AppendIXMPLangItem ( arrayNode, specificLang, itemValue );
+ if ( specificXDefault ) haveXDefault = true;
+ break;
+
+ default :
+ XMP_Throw ( "Unexpected result from ChooseLocalizedText", kXMPErr_InternalFailure );
+
+ }
+
+ // Add an x-default at the front if needed.
+ if ( (! haveXDefault) && (arrayNode->ChildCount() == 1) ) {
+ AppendIXMPLangItem ( arrayNode, "x-default", itemValue );
+ }
+
+} // SetLocalizedText
+
+
+
+
+// -------------------------------------------------------------------------------------------------
+// DumpPropertyTree
+// ----------------
+
+// *** Extract the validation code into a separate routine to call on exit in debug builds.
+
+static void
+DumpIXMPPropertyTree ( const spcINode & currNode,
+ int indent,
+ size_t itemIndex,
+ XMP_TextOutputProc outProc,
+ void * refCon )
+{
+ if(!currNode) return;
+ char buffer [32]; // Decimal of a 64 bit int is at most about 20 digits.
+ XMP_OptionBits options = XMPUtils::GetIXMPOptions(currNode);
+ auto defaultMap = INameSpacePrefixMap::GetDefaultNameSpacePrefixMap();
+ XMP_VarString currNameSpace = defaultMap->GetPrefix(currNode->GetNameSpace()->c_str(), currNode->GetNameSpace()->size() )->c_str();
+ XMP_VarString nodeFullName = currNameSpace + ":" + currNode->GetName()->c_str();
+
+ OutProcIndent ( (size_t)indent );
+
+ size_t childCount = 0;
+ if ( itemIndex == 0 ) {
+ if ( options & kXMP_PropIsQualifier ) OutProcNChars ( "? ", 2 );
+ DumpClearString ( nodeFullName, outProc, refCon );
+ }
+ else {
+ OutProcNChars ( "[", 1 );
+ OutProcDecInt ( itemIndex );
+ OutProcNChars ( "]", 1 );
+ }
+
+ if ( ! (options & kXMP_PropCompositeMask) ) {
+ OutProcNChars ( " = \"", 4 );
+ DumpClearString ( currNode->ConvertToSimpleNode()->GetValue()->c_str(), outProc, refCon );
+ OutProcNChars ( "\"", 1 );
+ }
+
+ if ( options != 0 ) {
+ OutProcNChars ( " ", 2 );
+ DumpNodeOptions ( options, outProc, refCon );
+ }
+
+ if ( options & kXMP_PropHasLang ) {
+
+ spcISimpleNode firstQualifier = currNode->QualifiersIterator()->GetNode()->ConvertToSimpleNode();
+ if ( !currNode->HasQualifiers() || !(XMP_LitMatch(firstQualifier->GetName()->c_str(), "lang") ) ) {
+ OutProcLiteral ( " ** bad lang flag **" );
+ }
+ }
+ // *** Check rdf:type also.
+
+ if ( ! (options & kXMP_PropCompositeMask) ) {
+ if(currNode->GetNodeType() == INode::kNTArray) {
+ childCount = currNode->ConvertToArrayNode()->ChildCount();
+ }
+ if(currNode->GetNodeType() == INode::kNTStructure) {
+ childCount = currNode->ConvertToStructureNode()->ChildCount();
+ }
+ if ( childCount ) OutProcLiteral ( " ** bad children **" );
+
+ }
+ else if ( options & kXMP_PropValueIsArray ) {
+ if ( options & kXMP_PropValueIsStruct ) OutProcLiteral ( " ** bad comp flags **" );
+ }
+ else if ( (options & kXMP_PropCompositeMask) != kXMP_PropValueIsStruct ) {
+ OutProcLiteral ( " ** bad comp flags **" );
+ }
+
+ OutProcNewline();
+
+ if( currNode->HasQualifiers() ) {
+ auto qualIter = currNode->QualifiersIterator();
+ for (size_t qualNum = 0 ; qualIter; qualIter = qualIter->Next(), qualNum++ ) {
+ spcINode currQual = qualIter->GetNode();
+ XMP_OptionBits currQualOptions = XMPUtils::GetIXMPOptions(currQual);
+ if ( currQual->GetParent() && currQual->GetParent()->GetParent()!= currNode ) OutProcLiteral ( "** bad parent link => " );
+ if ( XMP_LitMatch(currQual->GetName()->c_str(), kXMP_ArrayItemName ) ) OutProcLiteral ( "** bad qual name => " );
+ if ( ! (currQualOptions & kXMP_PropIsQualifier) ) OutProcLiteral ( "** bad qual flag => " );
+ if ( XMP_LitMatch(currQual->GetName()->c_str(), "lang" )) {
+ if ( (qualNum != 0) || (! (options & kXMP_PropHasLang)) ) OutProcLiteral ( "** bad lang qual => " );
+ }
+
+ DumpIXMPPropertyTree ( currQual, indent + 2, 0, outProc, refCon );
+
+ }
+ }
+ spcINodeIterator childIter;
+ if(currNode->GetNodeType() == INode::kNTArray) {
+ childIter = currNode->ConvertToArrayNode()->Iterator();
+ }
+ if(currNode->GetNodeType() == INode::kNTStructure) {
+ childIter = currNode->ConvertToStructureNode()->Iterator();
+ }
+ for (size_t childNum = 0; childIter; childIter = childIter->Next(), childNum++) {
+ spcINode currentChild = childIter->GetNode();
+ XMP_OptionBits currentChildOptions = XMPUtils::GetIXMPOptions( currentChild);
+ if( !currentChild) continue;
+ if ( currentChild->GetParent() != currNode ) OutProcLiteral ( "** bad parent link => " );
+ if ( currentChildOptions & kXMP_PropIsQualifier ) OutProcLiteral ( "** bad qual flag => " );
+
+ if ( options & kXMP_PropValueIsArray ) {
+
+ itemIndex = childNum + 1;
+ if (XMP_LitMatch(currentChild->GetName()->c_str(), kXMP_ArrayItemName) ) OutProcLiteral ( "** bad item name => " );
+ }
+ else {
+
+ itemIndex = 0;
+ if ( XMP_LitMatch(currentChild->GetName()->c_str(), kXMP_ArrayItemName ) ) OutProcLiteral ( "** bad field name => " );
+ }
+
+ DumpIXMPPropertyTree ( currentChild, indent + 1, itemIndex, outProc, refCon );
+
+ }
+
+} // DumpPropertyTree
+
+
+// -------------------------------------------------------------------------------------------------
+// DumpObject
+// ----------
+
+void
+XMPMeta2::DumpObject ( XMP_TextOutputProc outProc,
+ void * refCon ) const
+{
+ // TODO
+ // value of mDOM ?
+
+
+ XMP_Assert ( outProc != 0 ); // ! Enforced by wrapper.
+ auto defaultMap = INameSpacePrefixMap::GetDefaultNameSpacePrefixMap();
+ OutProcLiteral ( "Dumping XMPMeta object \"" );
+ DumpClearString (mDOM->GetAboutURI()->c_str(), outProc, refCon );
+ OutProcNChars ( "\" ", 3 );
+ DumpNodeOptions ( XMPUtils::GetIXMPOptions(mDOM), outProc, refCon );
+ OutProcNewline();
+
+ // One can't possibly allocate mDOM a value ?!
+ /*
+ if ( ! tree.value.empty() ) {
+ OutProcLiteral ( "** bad root value ** \"" );
+ DumpClearString ( tree.value, outProc, refCon );
+ OutProcNChars ( "\"", 1 );
+ OutProcNewline();
+ }
+ */
+ if ( mDOM->HasQualifiers() ) {
+ OutProcLiteral ( "** bad root qualifiers **" );
+ OutProcNewline();
+ spINodeIterator qualIter = mDOM->QualifiersIterator();
+ for ( ; qualIter; qualIter = qualIter->Next() ) {
+ DumpIXMPPropertyTree ( qualIter->GetNode(), 3, 0, outProc, refCon );
+ }
+ }
+ map<std::string, bool> schemaUsed;
+ if ( mDOM->ChildCount() ) {
+
+ spINodeIterator childIter = mDOM->Iterator();
+ for ( ;childIter; childIter = childIter->Next() ) {
+
+ spINode currSchema = childIter->GetNode();
+ XMP_OptionBits currSchemaOptions = kXMP_SchemaNode;
+ if(!schemaUsed.count(currSchema->GetNameSpace()->c_str())) {
+ OutProcNewline();
+ OutProcIndent ( 1 );
+ XMP_VarString prefix = defaultMap->GetPrefix(currSchema->GetNameSpace()->c_str(), currSchema->GetNameSpace()->size() )->c_str();
+ prefix += ":";
+ DumpClearString ( prefix.c_str(), outProc, refCon );
+ OutProcNChars ( " ", 2 );
+ DumpClearString ( currSchema->GetNameSpace()->c_str(), outProc, refCon );
+ OutProcNChars ( " ", 2 );
+ DumpNodeOptions ( currSchemaOptions, outProc, refCon );
+ OutProcNewline();
+
+ if ( ! (currSchemaOptions & kXMP_SchemaNode) ) {
+ OutProcLiteral ( "** bad schema options **" );
+ OutProcNewline();
+ }
+
+ schemaUsed[currSchema->GetNameSpace()->c_str()] = true;
+ }
+
+ DumpIXMPPropertyTree ( currSchema, 2, 0, outProc, refCon );
+
+ }
+
+ }
+
+} // DumpObject
+
+
+
+// -------------------------------------------------------------------------------------------------
+// SetErrorCallback
+// ----------------
+
+void
+XMPMeta2::SetErrorCallback( XMPMeta_ErrorCallbackWrapper wrapperProc,
+ XMPMeta_ErrorCallbackProc clientProc,
+ void * context,
+ XMP_Uns32 limit)
+{
+ XMP_Assert(wrapperProc != 0); // Must always be set by the glue;
+
+ this->errorCallback.Clear();
+ this->errorCallback.wrapperProc = wrapperProc;
+ this->errorCallback.clientProc = clientProc;
+ this->errorCallback.context = context;
+ this->errorCallback.limit = limit;
+ spParser->GetIDOMParser_I()->SetErrorCallback(&errorCallback);
+
+} // SetErrorCallback
+
+// -------------------------------------------------------------------------------------------------
+// ResetErrorCallbackLimit
+// -----------------------
+
+void
+XMPMeta2::ResetErrorCallbackLimit(XMP_Uns32 limit)
+{
+
+ this->errorCallback.limit = limit;
+ this->errorCallback.notifications = 0;
+ this->errorCallback.topSeverity = kXMPErrSev_Recoverable;
+ spParser->GetIDOMParser_I()->SetErrorCallback(&errorCallback);
+
+} // ResetErrorCallbackLimit
+#endif
diff --git a/XMPCore/source/XMPMeta2.hpp b/XMPCore/source/XMPMeta2.hpp
new file mode 100644
index 0000000..bd1aa9b
--- /dev/null
+++ b/XMPCore/source/XMPMeta2.hpp
@@ -0,0 +1,190 @@
+#include "XMPCore/XMPCoreDefines.h"
+#if ENABLE_CPP_DOM_MODEL
+#ifndef __XMPMeta2_hpp__
+#define __XMPMeta2_hpp__
+
+
+#include "public/include/XMP_Environment.h"
+#include "public/include/XMP_Const.h"
+#include "XMPCore/source/XMPCore_Impl.hpp"
+#include "source/XMLParserAdapter.hpp"
+#include "XMPCore/source/XMPMeta.hpp"
+#include "XMPCore/XMPCoreFwdDeclarations_I.h"
+
+#ifndef DumpXMLParseTree
+ #define DumpXMLParseTree 0
+#endif
+
+extern XMP_VarString * xdefaultName; // Needed in XMPMeta-Parse.cpp, MoveExplicitAliases.
+
+class XMPIterator;
+class XMPUtils;
+
+class XMPMeta2 : public XMPMeta {
+public:
+
+
+
+
+ // ---------------------------------------------------------------------------------------------
+
+ XMPMeta2();
+
+ virtual ~XMPMeta2() RELEASE_NO_THROW;
+
+ // ---------------------------------------------------------------------------------------------
+
+ virtual bool
+ GetProperty ( XMP_StringPtr schemaNS,
+ XMP_StringPtr propName,
+ XMP_StringPtr * propValue,
+ XMP_StringLen * valueSize,
+ XMP_OptionBits * options ) const;
+
+ // ---------------------------------------------------------------------------------------------
+
+ virtual void
+ SetProperty ( XMP_StringPtr schemaNS,
+ XMP_StringPtr propName,
+ XMP_StringPtr propValue,
+ XMP_OptionBits options );
+
+
+ virtual void
+ SetArrayItem ( XMP_StringPtr schemaNS,
+ XMP_StringPtr arrayName,
+ XMP_Index itemIndex,
+ XMP_StringPtr itemValue,
+ XMP_OptionBits options );
+
+ virtual void
+ AppendArrayItem ( XMP_StringPtr schemaNS,
+ XMP_StringPtr arrayName,
+ XMP_OptionBits arrayOptions,
+ XMP_StringPtr itemValue,
+ XMP_OptionBits options );
+
+ virtual void
+ SetQualifier ( XMP_StringPtr schemaNS,
+ XMP_StringPtr propName,
+ XMP_StringPtr qualNS,
+ XMP_StringPtr qualName,
+ XMP_StringPtr qualValue,
+ XMP_OptionBits options );
+ /*
+ virtual void
+ SetStructField ( XMP_StringPtr schemaNS,
+ XMP_StringPtr structName,
+ XMP_StringPtr fieldNS,
+ XMP_StringPtr fieldName,
+ XMP_StringPtr fieldValue,
+ XMP_OptionBits options );
+
+
+
+
+
+
+ */
+ /*
+
+
+ // ---------------------------------------------------------------------------------------------
+ */
+ virtual bool
+ GetLocalizedText ( XMP_StringPtr schemaNS,
+ XMP_StringPtr altTextName,
+ XMP_StringPtr genericLang,
+ XMP_StringPtr specificLang,
+ XMP_StringPtr * actualLang,
+ XMP_StringLen * langSize,
+ XMP_StringPtr * itemValue,
+ XMP_StringLen * valueSize,
+ XMP_OptionBits * options ) const;
+ virtual void
+ SetLocalizedText ( XMP_StringPtr schemaNS,
+ XMP_StringPtr altTextName,
+ XMP_StringPtr genericLang,
+ XMP_StringPtr specificLang,
+ XMP_StringPtr itemValue,
+ XMP_OptionBits options );
+
+ virtual void
+ DeleteLocalizedText ( XMP_StringPtr schemaNS,
+ XMP_StringPtr altTextName,
+ XMP_StringPtr genericLang,
+ XMP_StringPtr specificLang);
+ virtual void
+ GetObjectName ( XMP_StringPtr * namePtr,
+ XMP_StringLen * nameLen ) const;
+
+ virtual void
+ SetObjectName ( XMP_StringPtr name );
+
+
+ virtual void
+ ParseFromBuffer ( XMP_StringPtr buffer,
+ XMP_StringLen bufferSize,
+ XMP_OptionBits options );
+ virtual void
+ SerializeToBuffer ( XMP_VarString * rdfString,
+ XMP_OptionBits options,
+ XMP_StringLen padding,
+ XMP_StringPtr newline,
+ XMP_StringPtr indent,
+ XMP_Index baseIndent ) const;
+ virtual void
+ Clone ( XMPMeta * clone, XMP_OptionBits options ) const;
+ virtual bool
+ DoesPropertyExist ( XMP_StringPtr schemaNS,
+ XMP_StringPtr propName ) const;
+ virtual void
+ Erase();
+ virtual void
+ Sort();
+ virtual XMP_Index
+ CountArrayItems ( XMP_StringPtr schemaNS,
+ XMP_StringPtr arrayName ) const;
+ virtual void
+ DeleteProperty ( XMP_StringPtr schemaNS,
+ XMP_StringPtr propName );
+ virtual void
+ DumpObject ( XMP_TextOutputProc outProc,
+ void * refCon ) const;
+
+ void
+ SetErrorCallback(XMPMeta_ErrorCallbackWrapper wrapperProc,
+ XMPMeta_ErrorCallbackProc clientProc,
+ void * context,
+ XMP_Uns32 limit);
+
+ void
+ ResetErrorCallbackLimit(XMP_Uns32 limit);
+
+
+ // ---------------------------------------------------------------------------------------------
+
+ AdobeXMPCore::spIMetadata mDOM;
+ AdobeXMPCore::spIDOMImplementationRegistry spRegistry;
+ AdobeXMPCore::spIDOMParser spParser;
+
+ friend class XMPIterator;
+ friend class XMPUtils;
+
+private:
+
+ AdobeXMPCommon::spIUTF8String mBuffer;
+ XMPMeta2 ( const XMPMeta2 & )
+ { XMP_Throw ( "Call to hidden constructor", kXMPErr_InternalFailure ); };
+ void operator= ( const XMPMeta2 & )
+ { XMP_Throw ( "Call to hidden operator=", kXMPErr_InternalFailure ); };
+
+ void ProcessXMLTree ( XMP_OptionBits options );
+ bool ProcessXMLBuffer ( XMP_StringPtr buffer, XMP_StringLen xmpSize, bool lastClientCall );
+ void ProcessRDF ( const XML_Node & xmlTree, XMP_OptionBits options );
+
+
+};
+
+#endif
+#endif \ No newline at end of file
diff --git a/XMPCore/source/XMPUtils-FileInfo.cpp b/XMPCore/source/XMPUtils-FileInfo.cpp
index 107fa58..6c7073f 100644
--- a/XMPCore/source/XMPUtils-FileInfo.cpp
+++ b/XMPCore/source/XMPUtils-FileInfo.cpp
@@ -9,8 +9,23 @@
#include "public/include/XMP_Environment.h" // ! This must be the first include!
#include "XMPCore/source/XMPCore_Impl.hpp"
+#include "XMPCore/XMPCoreDefines.h"
#include "XMPCore/source/XMPUtils.hpp"
-
+#if ENABLE_CPP_DOM_MODEL
+ #include "source/UnicodeInlines.incl_cpp"
+ #include "source/UnicodeConversions.hpp"
+ #include "source/ExpatAdapter.hpp"
+ #include "third-party/zuid/interfaces/MD5.h"
+ #include "XMPCore/Interfaces/IMetadata_I.h"
+ #include "XMPCore/Interfaces/IArrayNode_I.h"
+ #include "XMPCore/Interfaces/ISimpleNode_I.h"
+ #include "XMPCore/Interfaces/INodeIterator_I.h"
+ #include "XMPCore/Interfaces/IPathSegment_I.h"
+ #include "XMPCore/Interfaces/IPath_I.h"
+ #include "XMPCore/Interfaces/INameSpacePrefixMap_I.h"
+ #include "XMPCore/Interfaces/IDOMImplementationRegistry_I.h"
+ #include "XMPCommon/Interfaces/IUTF8String_I.h"
+#endif
#include <algorithm> // For binary_search.
#include <time.h>
@@ -127,7 +142,7 @@ ClassifyCharacter ( XMP_StringPtr fullString, size_t offset,
*uniChar = (*uniChar << 6) | (UnsByte(fullString[i]) & 0x3F);
}
- XMP_Uns32 upperBits = *uniChar >> 8; // First filter on just the high order 24 bits.
+ XMP_Uns32 upperBits = static_cast<XMP_Uns32>(*uniChar >> 8); // First filter on just the high order 24 bits.
if ( upperBits == 0xFF ) { // U+FFxx
@@ -481,7 +496,7 @@ static int CharStarLess (const char * left, const char * right )
#define IsExternalProperty(s,p) (! IsInternalProperty ( s, p ))
-static bool
+bool
IsInternalProperty ( const XMP_VarString & schema, const XMP_VarString & prop )
{
bool isInternal = false;
@@ -859,6 +874,122 @@ AppendSubtree ( const XMP_Node * sourceNode, XMP_Node * destParent,
// CatenateArrayItems
// ------------------
+
+#if ENABLE_CPP_DOM_MODEL
+// -------------------------------------------------------------------------------------------------
+// CatenateArrayItems_v2
+// ------------------
+
+/* class static */ void
+XMPUtils::CatenateArrayItems_v2(const XMPMeta & ptr,
+ XMP_StringPtr schemaNS,
+ XMP_StringPtr arrayName,
+ XMP_StringPtr separator,
+ XMP_StringPtr quotes,
+ XMP_OptionBits options,
+ XMP_VarString * catedStr)
+{
+ using namespace AdobeXMPCore;
+ using namespace AdobeXMPCommon;
+
+ if(sUseNewCoreAPIs) {
+ const XMPMeta2 & xmpObj = dynamic_cast<const XMPMeta2 &>(ptr);
+ XMP_Assert((schemaNS != 0) && (arrayName != 0)); // ! Enforced by wrapper.
+ XMP_Assert((separator != 0) && (quotes != 0) && (catedStr != 0)); // ! Enforced by wrapper.
+
+ size_t strLen, strPos, charLen;
+ UniCharKind charKind;
+ UniCodePoint currUCP, openQuote, closeQuote;
+
+ const bool allowCommas = ((options & kXMPUtil_AllowCommas) != 0);
+
+ spINode arrayNode; // ! Move up to avoid gcc complaints.
+ XMP_OptionBits arrayForm = 0, arrayOptions = 0;
+ spcINode currItem;
+
+ // Make sure the separator is OK. It must be one semicolon surrounded by zero or more spaces.
+ // Any of the recognized semicolons or spaces are allowed.
+
+ strPos = 0;
+ strLen = strlen(separator);
+ bool haveSemicolon = false;
+
+ while (strPos < strLen) {
+ ClassifyCharacter(separator, strPos, &charKind, &charLen, &currUCP);
+ strPos += charLen;
+ if (charKind == UCK_semicolon) {
+ if (haveSemicolon) XMP_Throw("Separator can have only one semicolon", kXMPErr_BadParam);
+ haveSemicolon = true;
+ }
+ else if (charKind != UCK_space) {
+ XMP_Throw("Separator can have only spaces and one semicolon", kXMPErr_BadParam);
+ }
+ };
+ if (!haveSemicolon) XMP_Throw("Separator must have one semicolon", kXMPErr_BadParam);
+
+ // Make sure the open and close quotes are a legitimate pair.
+
+ strLen = strlen(quotes);
+ ClassifyCharacter(quotes, 0, &charKind, &charLen, &openQuote);
+ if (charKind != UCK_quote) XMP_Throw("Invalid quoting character", kXMPErr_BadParam);
+
+ if (charLen == strLen) {
+ closeQuote = openQuote;
+ }
+ else {
+ strPos = charLen;
+ ClassifyCharacter(quotes, strPos, &charKind, &charLen, &closeQuote);
+ if (charKind != UCK_quote) XMP_Throw("Invalid quoting character", kXMPErr_BadParam);
+ if ((strPos + charLen) != strLen) XMP_Throw("Quoting string too long", kXMPErr_BadParam);
+ }
+ if (closeQuote != GetClosingQuote(openQuote)) XMP_Throw("Mismatched quote pair", kXMPErr_BadParam);
+
+ // Return an empty result if the array does not exist, hurl if it isn't the right form.
+
+ catedStr->erase();
+
+ XMP_ExpandedXPath arrayPath;
+ ExpandXPath(schemaNS, arrayName, &arrayPath);
+
+ XMPUtils::FindCnstNode((xmpObj.mDOM), arrayPath, arrayNode, &arrayOptions);
+
+ if (!arrayNode) return;
+
+ arrayForm = arrayOptions & kXMP_PropCompositeMask;
+ if ((!(arrayForm & kXMP_PropValueIsArray)) || (arrayForm & kXMP_PropArrayIsAlternate)) {
+ XMP_Throw("Named property must be non-alternate array", kXMPErr_BadParam);
+ }
+ size_t arrayChildCount = XMPUtils::GetNodeChildCount(arrayNode);
+ if (!arrayChildCount) return;
+
+ // Build the result, quoting the array items, adding separators. Hurl if any item isn't simple.
+ // Start the result with the first value, then add the rest with a preceeding separator.
+
+ spcINodeIterator arrayIter = XMPUtils::GetNodeChildIterator(arrayNode);
+
+ if ((XMPUtils::GetIXMPOptions(currItem) & kXMP_PropCompositeMask) != 0) XMP_Throw("Array items must be simple", kXMPErr_BadParam);
+
+ *catedStr = arrayIter->GetNode()->ConvertToSimpleNode()->GetValue()->c_str();
+ ApplyQuotes(catedStr, openQuote, closeQuote, allowCommas);
+
+ //ArrayNodes in the new DOM are homogeneous so need to check types of other items in the arary if the first one is Simple
+ for (arrayIter = arrayIter->Next(); arrayIter; arrayIter = arrayIter->Next()) {
+
+ XMP_VarString tempStr( arrayIter->GetNode()->ConvertToSimpleNode()->GetValue()->c_str());
+ ApplyQuotes(&tempStr, openQuote, closeQuote, allowCommas);
+ *catedStr += separator;
+ *catedStr += tempStr;
+ }
+ }
+ else {
+ return;
+ }
+
+
+} // CatenateArrayItems_v2
+
+#endif
+// -------------------------------------------------------------------------------------------------
/* class static */ void
XMPUtils::CatenateArrayItems ( const XMPMeta & xmpObj,
XMP_StringPtr schemaNS,
@@ -868,6 +999,19 @@ XMPUtils::CatenateArrayItems ( const XMPMeta & xmpObj,
XMP_OptionBits options,
XMP_VarString * catedStr )
{
+
+#if ENABLE_CPP_DOM_MODEL
+
+ if(sUseNewCoreAPIs) {
+
+ dynamic_cast<const XMPMeta2 &>(xmpObj);
+ CatenateArrayItems_v2(xmpObj, schemaNS, arrayName, separator, quotes, options, catedStr);
+ return;
+
+ }
+
+#endif
+
XMP_Assert ( (schemaNS != 0) && (arrayName != 0) ); // ! Enforced by wrapper.
XMP_Assert ( (separator != 0) && (quotes != 0) && (catedStr != 0) ); // ! Enforced by wrapper.
@@ -954,6 +1098,263 @@ XMPUtils::CatenateArrayItems ( const XMPMeta & xmpObj,
// -------------------------------------------------------------------------------------------------
+// SeparateArrayItems_v2
+// ------------------
+#if ENABLE_CPP_DOM_MODEL
+/* class static */ void
+XMPUtils::SeparateArrayItems_v2(XMPMeta * xmpObj2,
+XMP_StringPtr schemaNS,
+XMP_StringPtr arrayName,
+XMP_OptionBits options,
+XMP_StringPtr catedStr)
+{
+
+#if ENABLE_CPP_DOM_MODEL
+ using namespace AdobeXMPCore;
+ using namespace AdobeXMPCommon;
+ XMPMeta2 * xmpObj = NULL;
+ if(sUseNewCoreAPIs) {
+ xmpObj = dynamic_cast<XMPMeta2 *> (xmpObj2);
+ }
+
+#endif
+ XMP_Assert((schemaNS != 0) && (arrayName != 0) && (catedStr != 0)); // ! Enforced by wrapper.
+ // TODO - check if the array item name should be arrayname one or karrayitem
+ // TODO - check the find array in case array doesn't already exist
+ XMP_VarString itemValue;
+ size_t itemStart, itemEnd;
+ size_t nextSize, charSize = 0;
+ UniCharKind nextKind, charKind = UCK_normal;
+ UniCodePoint nextChar, uniChar = 0;
+ XMP_OptionBits arrayOptions = 0;
+
+
+ bool preserveCommas = false;
+ if (options & kXMPUtil_AllowCommas) {
+ preserveCommas = true;
+ options ^= kXMPUtil_AllowCommas;
+ }
+
+ options = VerifySetOptions(options, 0);
+ if (options & ~kXMP_PropArrayFormMask) XMP_Throw("Options can only provide array form", kXMPErr_BadOptions);
+
+ // Find the array node, make sure it is OK. Move the current children aside, to be readded later if kept.
+
+ XMP_ExpandedXPath arrayPath;
+ ExpandXPath(schemaNS, arrayName, &arrayPath);
+ spINode arrayNode;
+ if (XMPUtils::FindCnstNode(xmpObj->mDOM, arrayPath, arrayNode, &arrayOptions)){
+
+ XMP_OptionBits arrayForm = arrayOptions & kXMP_PropArrayFormMask;
+ if ((arrayForm == 0) || (arrayForm & kXMP_PropArrayIsAlternate)) {
+ XMP_Throw("Named property must be non-alternate array", kXMPErr_BadXPath);
+ }
+
+ if ((options != 0) && (options != arrayForm)) XMP_Throw("Mismatch of specified and existing array form", kXMPErr_BadXPath); // *** Right error?
+ }
+ else {
+ // The array does not exist, try to create it.
+
+ XPathStepInfo lastPathSegment(arrayPath.back());
+ XMP_VarString arrayStep = lastPathSegment.step;
+ //arrayPath.pop_back();
+ spINode destNode;
+ XMP_Index insertIndex = 0;
+ if (!XMPUtils::FindNode(xmpObj->mDOM, arrayPath, kXMP_CreateNodes, options, destNode, &insertIndex, true)) {
+ XMP_Throw("Failure creating array node", kXMPErr_BadXPath);
+ }
+ std::string arrayNameSpace, arrayName;
+ auto defaultMap = INameSpacePrefixMap::GetDefaultNameSpacePrefixMap();
+ arrayOptions = options;
+ XMPUtils::GetNameSpaceAndNameFromStepValue(lastPathSegment.step, defaultMap, arrayNameSpace, arrayName);
+ // Need to check Alternate first
+ if (arrayOptions & kXMP_PropArrayIsAlternate) {
+ arrayNode = IArrayNode::CreateAlternativeArrayNode( arrayNameSpace.c_str(), arrayNameSpace.size(), arrayName.c_str(), arrayName.size());
+ }
+ else if (arrayOptions & kXMP_PropArrayIsOrdered) {
+ arrayNode = IArrayNode::CreateOrderedArrayNode( arrayNameSpace.c_str(), arrayNameSpace.size(), arrayName.c_str(), arrayName.size() );
+ }
+ else if (arrayOptions & kXMP_PropArrayIsUnordered) {
+ arrayNode = IArrayNode::CreateUnorderedArrayNode( arrayNameSpace.c_str(), arrayNameSpace.size(), arrayName.c_str(), arrayName.size() );
+ }
+
+ else {
+ XMP_Throw("Failure creating array node", kXMPErr_BadXPath);
+ }
+ if (destNode->GetNodeType() == INode::kNTStructure) {
+
+ destNode->ConvertToStructureNode()->InsertNode(arrayNode);
+ }
+ else if (destNode->GetNodeType() == INode::kNTArray) {
+
+ destNode->ConvertToArrayNode()->AppendNode(arrayNode);
+ }
+ else {
+
+ XMP_Throw("Failure creating array node", kXMPErr_BadXPath);
+ }
+
+ if (!arrayNode) XMP_Throw("Failed to create named array", kXMPErr_BadXPath);
+ }
+
+
+ size_t oldChildCount = XMPUtils::GetNodeChildCount(arrayNode);
+ std::vector<XMP_VarString> oldArrayNodes;
+ std::vector<spINode> qualifiers;
+
+ // used to handle duplicates
+ std::vector<bool> oldArrayNodeSeen(oldChildCount, false);
+ spcINodeIterator oldArrayChildIter = XMPUtils::GetNodeChildIterator(arrayNode);
+
+ for (; oldArrayChildIter; oldArrayChildIter = oldArrayChildIter->Next()) {
+
+ oldArrayNodes.push_back( oldArrayChildIter->GetNode()->ConvertToSimpleNode()->GetValue()->c_str());
+ if (oldArrayChildIter->GetNode()->HasQualifiers()) {
+
+ qualifiers.push_back(oldArrayChildIter->GetNode()->Clone());
+ /*for ( auto it = oldArrayChildIter->GetNode()->QualifiersIterator(); it; it = it->Next() ) {
+ qualifiers.push_back( it->GetNode()->Clone() );
+ }*/
+ }
+ else {
+ qualifiers.push_back(spINode());
+ }
+
+ }
+
+ arrayNode->Clear(true, false);
+ // used to avoid typecasting repeatedly!
+ spIArrayNode tempArrayNode = arrayNode->ConvertToArrayNode();
+
+ size_t endPos = strlen(catedStr);
+
+ itemEnd = 0;
+ while (itemEnd < endPos) {
+
+
+
+ for (itemStart = itemEnd; itemStart < endPos; itemStart += charSize) {
+ ClassifyCharacter(catedStr, itemStart, &charKind, &charSize, &uniChar);
+ if ((charKind == UCK_normal) || (charKind == UCK_quote)) break;
+ }
+ if (itemStart >= endPos) break;
+
+ if (charKind != UCK_quote) {
+
+
+
+ for (itemEnd = itemStart; itemEnd < endPos; itemEnd += charSize) {
+
+ ClassifyCharacter(catedStr, itemEnd, &charKind, &charSize, &uniChar);
+
+ if ((charKind == UCK_normal) || (charKind == UCK_quote)) continue;
+ if ((charKind == UCK_comma) && preserveCommas) continue;
+ if (charKind != UCK_space) break;
+
+ if ((itemEnd + charSize) >= endPos) break; // Anything left?
+ ClassifyCharacter(catedStr, (itemEnd + charSize), &nextKind, &nextSize, &nextChar);
+ if ((nextKind == UCK_normal) || (nextKind == UCK_quote)) continue;
+ if ((nextKind == UCK_comma) && preserveCommas) continue;
+ break; // Have multiple spaces, or a space followed by a separator.
+
+ }
+
+ itemValue.assign(catedStr, itemStart, (itemEnd - itemStart));
+
+ }
+ else {
+
+ // Accumulate quoted values into a local string, undoubling internal quotes that
+ // match the surrounding quotes. Do not undouble "unmatching" quotes.
+
+ UniCodePoint openQuote = uniChar;
+ UniCodePoint closeQuote = GetClosingQuote(openQuote);
+
+ itemStart += charSize; // Skip the opening quote;
+ itemValue.erase();
+
+ for (itemEnd = itemStart; itemEnd < endPos; itemEnd += charSize) {
+
+ ClassifyCharacter(catedStr, itemEnd, &charKind, &charSize, &uniChar);
+
+ if ((charKind != UCK_quote) || (!IsSurroundingQuote(uniChar, openQuote, closeQuote))) {
+
+ // This is not a matching quote, just append it to the item value.
+ itemValue.append(catedStr, itemEnd, charSize);
+
+ }
+ else {
+
+ // This is a "matching" quote. Is it doubled, or the final closing quote? Tolerate
+ // various edge cases like undoubled opening (non-closing) quotes, or end of input.
+
+ if ((itemEnd + charSize) < endPos) {
+ ClassifyCharacter(catedStr, itemEnd + charSize, &nextKind, &nextSize, &nextChar);
+ }
+ else {
+ nextKind = UCK_semicolon; nextSize = 0; nextChar = 0x3B;
+ }
+
+ if (uniChar == nextChar) {
+ // This is doubled, copy it and skip the double.
+ itemValue.append(catedStr, itemEnd, charSize);
+ itemEnd += nextSize; // Loop will add in charSize.
+ }
+ else if (!IsClosingingQuote(uniChar, openQuote, closeQuote)) {
+ // This is an undoubled, non-closing quote, copy it.
+ itemValue.append(catedStr, itemEnd, charSize);
+ }
+ else {
+ // This is an undoubled closing quote, skip it and exit the loop.
+ itemEnd += charSize;
+ break;
+ }
+
+ }
+
+ } // Loop to accumulate the quoted value.
+
+ }
+
+ // Add the separated item to the array. Keep a matching old value in case it had separators.
+
+ size_t oldChild;
+
+ spISimpleNode newItem;
+ for (oldChild = 1; oldChild <= oldChildCount; ++oldChild) {
+ if (!oldArrayNodeSeen[oldChild - 1] && itemValue == oldArrayNodes[oldChild - 1]) break;
+ }
+
+
+ if (oldChild == oldChildCount + 1) {
+ // newItem = new XMP_Node ( arrayNode, kXMP_ArrayItemName, itemValue.c_str(), 0 );
+ newItem = ISimpleNode::CreateSimpleNode(arrayNode->GetNameSpace()->c_str(), arrayNode->GetNameSpace()->size(),
+ kXMP_ArrayItemName, AdobeXMPCommon::npos, itemValue.c_str());
+ }
+ else {
+ newItem = ISimpleNode::CreateSimpleNode(arrayNode->GetNameSpace()->c_str(), arrayNode->GetNameSpace()->size(),
+ kXMP_ArrayItemName, AdobeXMPCommon::npos, oldArrayNodes[oldChild - 1].c_str());
+ if (qualifiers[ oldChild - 1] && qualifiers[ oldChild - 1] ->HasQualifiers() ) {
+
+ for (auto it = qualifiers[oldChild - 1] ->QualifiersIterator(); it; it = it->Next()) {
+
+ newItem->InsertQualifier(it->GetNode()->Clone());
+ }
+ }
+ oldArrayNodeSeen[oldChild - 1] = true; // ! Don't match again, let duplicates be seen.
+ }
+
+ tempArrayNode->AppendNode(newItem);
+
+ } // Loop through all of the returned items.
+
+ // Delete any of the old children that were not kept.
+
+
+} // SeparateArrayItems_v2
+#endif
+
+// -------------------------------------------------------------------------------------------------
// SeparateArrayItems
// ------------------
@@ -964,6 +1365,13 @@ XMPUtils::SeparateArrayItems ( XMPMeta * xmpObj,
XMP_OptionBits options,
XMP_StringPtr catedStr )
{
+
+#if ENABLE_CPP_DOM_MODEL
+ if (sUseNewCoreAPIs) {
+ SeparateArrayItems_v2(xmpObj, schemaNS, arrayName, options, catedStr);
+ return;
+ }
+#endif
XMP_Assert ( (schemaNS != 0) && (arrayName != 0) && (catedStr != 0) ); // ! Enforced by wrapper.
XMP_VarString itemValue;
@@ -987,7 +1395,7 @@ XMPUtils::SeparateArrayItems ( XMPMeta * xmpObj,
XMP_ExpandedXPath arrayPath;
ExpandXPath ( schemaNS, arrayName, &arrayPath );
- XMP_Node * arrayNode = FindNode ( &xmpObj->tree, arrayPath, kXMP_ExistingOnly );
+ XMP_Node * arrayNode = ::FindNode( &xmpObj->tree, arrayPath, kXMP_ExistingOnly );
if ( arrayNode != 0 ) {
// The array exists, make sure the form is compatible. Zero arrayForm means take what exists.
@@ -998,7 +1406,7 @@ XMPUtils::SeparateArrayItems ( XMPMeta * xmpObj,
if ( (options != 0) && (options != arrayForm) ) XMP_Throw ( "Mismatch of specified and existing array form", kXMPErr_BadXPath ); // *** Right error?
} else {
// The array does not exist, try to create it.
- arrayNode = FindNode ( &xmpObj->tree, arrayPath, kXMP_CreateNodes, (options | kXMP_PropValueIsArray) );
+ arrayNode = ::FindNode( &xmpObj->tree, arrayPath, kXMP_CreateNodes, (options | kXMP_PropValueIsArray) );
if ( arrayNode == 0 ) XMP_Throw ( "Failed to create named array", kXMPErr_BadXPath );
}
@@ -1131,6 +1539,14 @@ XMPUtils::ApplyTemplate ( XMPMeta * workingXMP,
const XMPMeta & templateXMP,
XMP_OptionBits actions )
{
+
+#if ENABLE_CPP_DOM_MODEL
+ if (sUseNewCoreAPIs) {
+ ApplyTemplate_v2(workingXMP, templateXMP, actions);
+ return;
+ }
+#endif
+
bool doClear = XMP_OptionIsSet ( actions, kXMPTemplate_ClearUnnamedProperties );
bool doAdd = XMP_OptionIsSet ( actions, kXMPTemplate_AddNewProperties );
bool doReplace = XMP_OptionIsSet ( actions, kXMPTemplate_ReplaceExistingProperties );
@@ -1246,6 +1662,15 @@ XMPUtils::RemoveProperties ( XMPMeta * xmpObj,
XMP_StringPtr propName,
XMP_OptionBits options )
{
+
+#if ENABLE_CPP_DOM_MODEL
+ if (sUseNewCoreAPIs) {
+
+ RemoveProperties_v2(xmpObj, schemaNS, propName, options);
+ return;
+ }
+#endif
+
XMP_Assert ( (schemaNS != 0) && (propName != 0) ); // ! Enforced by wrapper.
const bool doAll = XMP_TestOption (options, kXMPUtil_DoAllProperties );
@@ -1262,7 +1687,7 @@ XMPUtils::RemoveProperties ( XMPMeta * xmpObj,
ExpandXPath ( schemaNS, propName, &expPath );
XMP_NodePtrPos propPos;
- XMP_Node * propNode = FindNode ( &(xmpObj->tree), expPath, kXMP_ExistingOnly, kXMP_NoOptions, &propPos );
+ XMP_Node * propNode = ::FindNode( &(xmpObj->tree), expPath, kXMP_ExistingOnly, kXMP_NoOptions, &propPos );
if ( propNode != 0 ) {
if ( doAll || IsExternalProperty ( expPath[kSchemaStep].step, expPath[kRootPropStep].step ) ) {
XMP_Node * parent = propNode->parent; // *** Should have XMP_Node::RemoveChild(pos).
@@ -1298,7 +1723,7 @@ XMPUtils::RemoveProperties ( XMPMeta * xmpObj,
for ( ; currAlias != endAlias; ++currAlias ) {
if ( strncmp ( currAlias->first.c_str(), nsPrefix, nsLen ) == 0 ) {
XMP_NodePtrPos actualPos;
- XMP_Node * actualProp = FindNode ( &xmpObj->tree, currAlias->second, kXMP_ExistingOnly, kXMP_NoOptions, &actualPos );
+ XMP_Node * actualProp = ::FindNode( &xmpObj->tree, currAlias->second, kXMP_ExistingOnly, kXMP_NoOptions, &actualPos );
if ( actualProp != 0 ) {
XMP_Node * rootProp = actualProp;
while ( ! XMP_NodeIsSchema ( rootProp->parent->options ) ) rootProp = rootProp->parent;
@@ -1348,6 +1773,15 @@ XMPUtils::DuplicateSubtree ( const XMPMeta & source,
XMP_StringPtr destRoot,
XMP_OptionBits options )
{
+
+#if ENABLE_CPP_DOM_MODEL
+ if(sUseNewCoreAPIs) {
+ (void)dynamic_cast<const XMPMeta2 &>(source);
+ return XMPUtils::DuplicateSubtree_v2(source, dest, sourceNS, sourceRoot, destNS, destRoot, options);
+ }
+
+#endif
+
IgnoreParam(options);
bool fullSourceTree = false;
@@ -1379,7 +1813,7 @@ XMPUtils::DuplicateSubtree ( const XMPMeta & source,
// The destination must be an existing empty struct, copy all of the source top level as fields.
ExpandXPath ( destNS, destRoot, &destPath );
- destNode = FindNode ( &dest->tree, destPath, kXMP_ExistingOnly );
+ destNode = ::FindNode( &dest->tree, destPath, kXMP_ExistingOnly );
if ( (destNode == 0) || (! XMP_PropIsStruct ( destNode->options )) ) {
XMP_Throw ( "Destination must be an existing struct", kXMPErr_BadXPath );
@@ -1461,10 +1895,10 @@ XMPUtils::DuplicateSubtree ( const XMPMeta & source,
sourceNode = FindConstNode ( &source.tree, sourcePath );
if ( sourceNode == 0 ) XMP_Throw ( "Can't find source subtree", kXMPErr_BadXPath );
- destNode = FindNode ( &dest->tree, destPath, kXMP_ExistingOnly ); // Dest must not yet exist.
+ destNode = ::FindNode ( &dest->tree, destPath, kXMP_ExistingOnly ); // Dest must not yet exist.
if ( destNode != 0 ) XMP_Throw ( "Destination subtree must not exist", kXMPErr_BadXPath );
- destNode = FindNode ( &dest->tree, destPath, kXMP_CreateNodes ); // Now create the dest.
+ destNode = ::FindNode ( &dest->tree, destPath, kXMP_CreateNodes ); // Now create the dest.
if ( destNode == 0 ) XMP_Throw ( "Can't create destination root node", kXMPErr_BadXPath );
// Make sure the destination is not within the source! The source can't be inside the destination
diff --git a/XMPCore/source/XMPUtils.cpp b/XMPCore/source/XMPUtils.cpp
index b39a908..8a8c4fc 100644
--- a/XMPCore/source/XMPUtils.cpp
+++ b/XMPCore/source/XMPUtils.cpp
@@ -21,8 +21,22 @@
#include <stdlib.h>
#include <locale.h>
#include <errno.h>
+#include <vector>
#include <stdio.h> // For snprintf.
+#if ENABLE_CPP_DOM_MODEL
+#include "source/UnicodeInlines.incl_cpp"
+#include "source/UnicodeConversions.hpp"
+#include "XMPMeta2.hpp"
+#include "XMPCore/Interfaces/IMetadata_I.h"
+#include "XMPCore/Interfaces/IArrayNode_I.h"
+#include "XMPCore/Interfaces/ISimpleNode_I.h"
+#include "XMPCommon/Interfaces/IUTF8String_I.h"
+#include "XMPCore/Interfaces/INameSpacePrefixMap.h"
+#include "XMPCore/Interfaces/INodeIterator.h"
+using namespace AdobeXMPCore;
+using namespace AdobeXMPCommon;
+#endif
#if XMP_WinBuild
#pragma warning ( disable : 4800 ) // forcing value to bool 'true' or 'false' (performance warning)
@@ -34,10 +48,1192 @@
// =========================
static const char * sBase64Chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-
+const XMP_VarString xmlNameSpace = "http://www.w3.org/XML/1998/namespace";
// =================================================================================================
// Local Utilities
// ===============
+extern void SplitNameAndValue ( const XMP_VarString & selStep, XMP_VarString * nameStr, XMP_VarString * valueStr );
+
+extern void DumpNodeOptions ( XMP_OptionBits options,XMP_TextOutputProc outProc,void *refCon );
+// -------------------------------------------------------------------------------------------------
+// SetINode
+// --------------
+
+#if ENABLE_CPP_DOM_MODEL
+
+void XMPUtils::SetNode ( const spINode & node , XMP_StringPtr value, XMP_OptionBits options )
+{
+ if (!node) return;
+ //TO DO check UTF-8
+ if ( options & kXMP_DeleteExisting ) {
+ XMP_ClearOption ( options, kXMP_DeleteExisting );
+ node->Clear();
+ }
+ if ( value != 0 ) {
+
+ if ( options & kXMP_PropCompositeMask ) XMP_Throw ( "Composite nodes can't have values", kXMPErr_BadXPath );
+ if ( !node ) return;
+ XMP_Assert( node->GetNodeType() == INode::kNTSimple);
+ spISimpleNode simpleNode = node->ConvertToSimpleNode();
+ std::string newValue = value;
+
+ XMP_Uns8* chPtr = (XMP_Uns8*) newValue.c_str(); // Check for valid UTF-8, replace ASCII controls with a space.
+ while ( *chPtr != 0 ) {
+ while ( (*chPtr != 0) && (*chPtr < 0x80) ) {
+ if ( *chPtr < 0x20 ) {
+ if ( (*chPtr != kTab) && (*chPtr != kLF) && (*chPtr != kCR) ) *chPtr = 0x20;
+ }
+ else if (*chPtr == 0x7F ) {
+ *chPtr = 0x20;
+ }
+ ++chPtr;
+ }
+
+ XMP_Assert ( (*chPtr == 0) || (*chPtr >= 0x80) );
+
+ if ( *chPtr != 0 ) {
+ XMP_Uns32 cp = GetCodePoint ( (const XMP_Uns8 **) &chPtr ); // Throws for bad UTF-8.
+ if ( (cp == 0xFFFE) || (cp == 0xFFFF) ) {
+ XMP_Throw ( "U+FFFE and U+FFFF are not allowed in XML", kXMPErr_BadUnicode );
+ }
+ }
+
+ }
+ if ( XMP_PropIsQualifier(options) && XMP_LitMatch(node->GetNameSpace()->c_str(), xmlNameSpace.c_str()) && XMP_LitMatch(node->GetName()->c_str(), "lang")) NormalizeLangValue ( &newValue );
+
+ simpleNode->SetValue(newValue.c_str(), newValue.size());
+ }
+ else {
+
+ if((node->GetNodeType() == INode::kNTStructure && (options & kXMP_PropValueIsArray)) || (node->GetNodeType() == INode::kNTArray && (options & kXMP_PropValueIsStruct))) {
+ XMP_Throw ( "Requested and existing composite form mismatch", kXMPErr_BadXPath );
+ }
+ node->Clear();
+
+ }
+
+} // SetINode
+XMP_OptionBits XMPUtils::ConvertNewArrayFormToOldArrayForm (const spcIArrayNode & arrayNode) {
+
+ XMP_OptionBits options = 0;
+ if(!arrayNode) return options;
+ if( arrayNode->GetArrayForm() == IArrayNode::kAFAlternative) return kXMP_PropArrayIsAlternate;
+ if( arrayNode->GetArrayForm() == IArrayNode::kAFOrdered) return kXMP_PropArrayIsOrdered;
+ if( arrayNode->GetArrayForm() == IArrayNode::kAFUnordered) return kXMP_PropArrayIsUnordered;
+ return 0;
+}
+
+spINode XMPUtils::CreateArrayChildNode( const spIArrayNode & arrayNode, XMP_OptionBits options) {
+
+ XMP_VarString nodeNameSpace = arrayNode->GetNameSpace()->c_str(), nodeName = arrayNode->GetName()->c_str();
+ spINode itemNode;
+ size_t arrayChildCount = arrayNode->ChildCount();
+ spINode firstChildNode;
+ if (!arrayChildCount) {
+ itemNode = XMPUtils::CreateTerminalNode(nodeNameSpace.c_str(), nodeName.c_str(), options);
+ return itemNode;
+ }
+ if(arrayChildCount) firstChildNode = arrayNode->GetNodeAtIndex(1);
+ XMP_OptionBits childOptions = 0;
+ if(firstChildNode && firstChildNode->GetNodeType() == INode::kNTArray) {
+ childOptions = ConvertNewArrayFormToOldArrayForm(firstChildNode->ConvertToArrayNode());
+ }
+ if(XMP_PropIsStruct(options) && (!arrayChildCount || firstChildNode->GetNodeType() == INode::kNTStructure ) ) {
+ itemNode = IStructureNode::CreateStructureNode(nodeNameSpace.c_str(), nodeNameSpace.size(), nodeName.c_str(), nodeName.size() );
+ }
+ else if(XMP_PropIsSimple(options) && (!arrayChildCount || firstChildNode->GetNodeType() == INode::kNTSimple ) ) {
+ itemNode = ISimpleNode::CreateSimpleNode(nodeNameSpace.c_str(), nodeNameSpace.size(), nodeName.c_str(), nodeName.size(), "", 0 );
+ }
+ else if((options & kXMP_PropArrayIsAlternate) && (childOptions & kXMP_PropArrayIsAlternate) ) {
+ itemNode = IArrayNode::CreateAlternativeArrayNode( nodeNameSpace.c_str(), nodeNameSpace.size(), nodeName.c_str(), nodeName.size() );
+ }
+ else if((options & kXMP_PropArrayIsOrdered) && (childOptions & kXMP_PropArrayIsOrdered)) {
+ itemNode = IArrayNode::CreateOrderedArrayNode( nodeNameSpace.c_str(), nodeNameSpace.size(), nodeName.c_str(), nodeName.size() );
+ }
+ else if((options & kXMP_PropArrayIsUnordered) && (childOptions & kXMP_PropArrayIsUnordered)) {
+ itemNode = IArrayNode::CreateUnorderedArrayNode( nodeNameSpace.c_str(), nodeNameSpace.size(), nodeName.c_str(), nodeName.size() );
+ }
+ if(!itemNode) XMP_Throw("Array has to be homogeneous", kXMPErr_BadXPath);
+
+ return itemNode;
+
+}
+
+void
+ XMPUtils::DoSetArrayItem ( const spIArrayNode &arrayNode,
+ XMP_Index itemIndex,
+ XMP_StringPtr itemValue,
+ XMP_OptionBits options )
+{
+ XMP_OptionBits itemLoc = options & kXMP_PropArrayLocationMask;
+ XMP_Index arraySize = static_cast<XMP_Index>( arrayNode->ChildCount() );
+ XMP_VarString arrayNameSpace = arrayNode->GetNameSpace()->c_str();
+ XMP_VarString arrayName = arrayNode->GetName()->c_str();
+ options &= ~kXMP_PropArrayLocationMask;
+ options = VerifySetOptions ( options, itemValue );
+
+ // Now locate or create the item node and set the value. Note the index parameter is one-based!
+ // The index can be in the range [0..size+1] or "last", normalize it and check the insert flags.
+ // The order of the normalization checks is important. If the array is empty we end up with an
+ // index and location to set item size+1.
+
+
+
+ spINode itemNode;
+ if ( itemIndex == kXMP_ArrayLastItem ) itemIndex = arraySize;
+ if ( (itemIndex == 0) && (itemLoc == kXMP_InsertAfterItem) ) {
+ itemIndex = 1;
+ itemLoc = kXMP_InsertBeforeItem;
+ }
+ if ( (itemIndex == arraySize) && (itemLoc == kXMP_InsertAfterItem) ) {
+ itemIndex += 1;
+ itemLoc = 0;
+ }
+ if ( (itemIndex == arraySize + 1) && (itemLoc == kXMP_InsertBeforeItem) ) itemLoc = 0;
+
+ if ( itemIndex == arraySize + 1 ) {
+
+ if ( itemLoc ) XMP_Throw ( "Can't insert before or after implicit new item", kXMPErr_BadIndex );
+ itemNode = CreateArrayChildNode(arrayNode, options);
+ arrayNode->InsertNodeAtIndex(itemNode, arraySize + 1);
+ }
+ else {
+
+ if ( (itemIndex < 1) || (itemIndex > arraySize) ) XMP_Throw ( "Array index out of bounds", kXMPErr_BadIndex );
+
+ if ( itemLoc == 0 ) {
+ itemNode = arrayNode->GetNodeAtIndex( itemIndex )->ConvertToSimpleNode();
+ }
+ else {
+ itemNode = CreateArrayChildNode(arrayNode, options);
+ if ( itemLoc == kXMP_InsertAfterItem ) ++itemIndex;
+ arrayNode->InsertNodeAtIndex (itemNode, itemIndex );
+ }
+
+ }
+ SetNode(itemNode, itemValue, options);
+
+} // DoSetIXMPArrayItem
+
+
+void XMPUtils::SetImplicitNodeInformation( bool & firstImplicitNodeFound,
+ spINode &implicitNodeRoot,
+ spINode &destNode,
+ XMP_Index &implicitNodeIndex,
+ XMP_Index index )
+{
+ if(!firstImplicitNodeFound) {
+ implicitNodeRoot = destNode;
+ firstImplicitNodeFound = true;
+ if( index) {
+ implicitNodeIndex = index;
+ }
+ }
+}
+void XMPUtils::GetNameSpaceAndNameFromStepValue( const std::string & stepStr,
+ const spcINameSpacePrefixMap & defaultMap,
+ std::string &stepNameSpace,
+ std::string &stepName)
+{
+ size_t colonPos = stepStr.find(':');
+ XMP_VarString prefix = stepStr.substr( 0, colonPos );
+ stepNameSpace = defaultMap->GetNameSpace( prefix.c_str(), prefix.size() )->c_str();
+ stepName = stepStr.substr( colonPos + 1);
+}
+
+// =================================================================================================
+// FindNode
+// ========
+//
+// Follow an expanded path expression to find or create a node. Returns a pointer to the node, and
+// optionally an iterator for the node's position in the parent's vector of children or qualifiers.
+// The iterator is unchanged if no child node (null) is returned.
+
+
+spINode XMPUtils::CreateTerminalNode(const char* nameSpace, const char * name, XMP_OptionBits options) {
+
+ spINode newNode;
+ if(XMP_PropIsSimple(options)) {
+
+ spISimpleNode simpleNode = ISimpleNode::CreateSimpleNode(nameSpace, AdobeXMPCommon::npos, name, AdobeXMPCommon::npos, NULL, 0 );
+ newNode = simpleNode;
+ }
+ if(XMP_PropIsStruct(options)){
+
+ spIStructureNode structNode = IStructureNode::CreateStructureNode(nameSpace, AdobeXMPCommon::npos, name, AdobeXMPCommon::npos);
+ newNode = structNode;
+ }
+ if(XMP_PropIsArray(options)) {
+
+ if ( options & kXMP_PropArrayIsAlternate )
+ newNode = IArrayNode::CreateAlternativeArrayNode( nameSpace, AdobeXMPCommon::npos, name, AdobeXMPCommon::npos );
+ else if(options & kXMP_PropArrayIsOrdered)
+ newNode = IArrayNode::CreateOrderedArrayNode( nameSpace, AdobeXMPCommon::npos, name, AdobeXMPCommon::npos );
+ else
+ newNode = IArrayNode::CreateUnorderedArrayNode( nameSpace, AdobeXMPCommon::npos, name, AdobeXMPCommon::npos );
+ }
+
+ return newNode;
+}
+
+bool XMPUtils::HandleConstAliasStep(const spIMetadata & mDOM,
+ spINode &destNode,
+ const XMP_ExpandedXPath & expandedXPath,
+ XMP_Index *nodeIndex
+ )
+{
+ destNode = mDOM;
+ if (expandedXPath.empty()) XMP_Throw("Empty XPath", kXMPErr_BadXPath);
+ if (!(expandedXPath[kRootPropStep].options & kXMP_StepIsAlias)) {
+
+ return false;
+
+ }
+ else {
+
+ XMP_AliasMapPos aliasPos = sRegisteredAliasMap->find(expandedXPath[kRootPropStep].step);
+ XMP_Assert(aliasPos != sRegisteredAliasMap->end());
+ XMP_VarString namespaceName = aliasPos->second[kSchemaStep].step.c_str();
+ size_t colonPos = aliasPos->second[kRootPropStep].step.find(":");
+ XMP_Assert(colonPos != std::string::npos);
+ XMP_VarString propertyName = aliasPos->second[kRootPropStep].step.substr( colonPos + 1);
+ destNode = mDOM->GetNode( namespaceName.c_str(), namespaceName.size(), propertyName.c_str(), propertyName.size() );
+ if (!destNode) return false;
+ if (aliasPos->second.size() == 2) return true;
+ XMP_Assert(destNode->GetNodeType() == INode::kNTArray);
+ if (aliasPos->second[2].options == kXMP_ArrayIndexStep) {
+
+ XMP_Assert(aliasPos->second[2].step == "[1]");
+ destNode = destNode->ConvertToArrayNode()->GetNodeAtIndex( 1 );
+ INode::eNodeType actualNodeType = destNode->GetNodeType();
+ if (destNode) {
+ if (nodeIndex) *nodeIndex = 1;
+ return true;
+ }
+ return false;
+ }
+ else if (aliasPos->second[2].options == kXMP_QualSelectorStep) {
+ XMP_Assert(aliasPos->second[2].step == "[?xml:lang=\"x-default\"]");
+ spcINodeIterator iter = XMPUtils::GetNodeChildIterator(destNode);
+ XMP_Index index = 1;
+ while (iter) {
+ spcINode node = iter->GetNode();
+ spcINode qualNode = node->GetQualifier(xmlNameSpace.c_str(), xmlNameSpace.size(), "lang", AdobeXMPCommon::npos );
+ if (qualNode->GetNodeType() == INode::kNTSimple) {
+ if (!strcmp("x-default", qualNode->ConvertToSimpleNode()->GetValue()->c_str())){
+ destNode = AdobeXMPCore_Int::const_pointer_cast<INode>(node);
+ if (nodeIndex) *nodeIndex = index;
+ return true;
+ }
+ }
+ index++;
+ iter =iter->Next();
+ }
+ return false;
+ }
+
+ return false;
+
+ }
+}
+bool XMPUtils::HandleAliasStep(const spIMetadata & mDOM,
+ XMP_ExpandedXPath &expandedXPath,
+ bool createNodes,
+ XMP_OptionBits leafOptions /* = 0 */,
+ spINode &destNode,
+ XMP_Index *nodeIndex,
+ bool ignoreLastStep
+ )
+
+{
+ destNode = mDOM;
+ bool isAliasBeingCreated = expandedXPath.size() == 2;
+ if (expandedXPath.empty()) XMP_Throw("Empty XPath", kXMPErr_BadXPath);
+ if (!(expandedXPath[kRootPropStep].options & kXMP_StepIsAlias)) {
+
+ return false;
+
+ }
+ else {
+
+ XMP_AliasMapPos aliasPos = sRegisteredAliasMap->find(expandedXPath[kRootPropStep].step);
+ XMP_Assert(aliasPos != sRegisteredAliasMap->end());
+ XMP_VarString namespaceName = aliasPos->second[kSchemaStep].step.c_str();
+ size_t colonPos = aliasPos->second[kRootPropStep].step.find(":");
+ XMP_Assert(colonPos != std::string::npos);
+ XMP_VarString propertyName = aliasPos->second[kRootPropStep].step.substr(colonPos + 1);
+ destNode = mDOM->GetNode(namespaceName.c_str(), namespaceName.size(), propertyName.c_str(), propertyName.size() );
+ if (!destNode && !createNodes) return false;
+ if (aliasPos->second.size() == 2) {
+ if (destNode) return true;
+ XMP_OptionBits createOptions = 0;
+ destNode = mDOM;
+ if (isAliasBeingCreated) createOptions = leafOptions;
+ spINode tempNode = CreateTerminalNode(namespaceName.c_str(), propertyName.c_str(), createOptions);
+ if (!tempNode) return false;
+ destNode->ConvertToStructureNode()->AppendNode( tempNode );
+ destNode = tempNode;
+ if (destNode) return true;
+ return false;
+ }
+
+
+ //XMP_Assert(destNode->GetNodeType() == INode::kNTArray);
+ XMP_Assert(aliasPos->second.size() == 3);
+ if (aliasPos->second[2].options == kXMP_ArrayIndexStep) {
+ XMP_Assert(aliasPos->second[2].step == "[1]");
+ destNode = mDOM->GetNode(namespaceName.c_str(), namespaceName.size(), propertyName.c_str(), propertyName.size() );
+ if (!destNode && !createNodes) return false;
+ if (!destNode) {
+ spINode arrayNode = CreateTerminalNode(namespaceName.c_str(), propertyName.c_str(), kXMP_PropArrayIsOrdered | kXMP_PropValueIsArray);
+ mDOM->AppendNode(arrayNode);
+ destNode = arrayNode;
+ }
+
+ if ( destNode->ConvertToArrayNode()->GetNodeAtIndex( 1 ) ) {
+ destNode = destNode->ConvertToArrayNode()->GetNodeAtIndex( 1 );
+ if (nodeIndex) *nodeIndex = 1;
+ return true;
+ }
+ else {
+ spISimpleNode indexNode = ISimpleNode::CreateSimpleNode( namespaceName.c_str(), namespaceName.size(), "[]", AdobeXMPCommon::npos, "", AdobeXMPCommon::npos );
+ destNode->ConvertToArrayNode()->InsertNodeAtIndex( indexNode, 1 );
+ destNode = destNode->ConvertToArrayNode()->GetNodeAtIndex( 1 );
+ return true;
+ }
+ return false;
+ }
+ else if (aliasPos->second[2].options == kXMP_QualSelectorStep) {
+ XMP_Assert(aliasPos->second[2].step == "[?xml:lang=\"x-default\"]");
+ destNode = mDOM->GetNode(namespaceName.c_str(), namespaceName.size(), propertyName.c_str(), propertyName.size() );
+ if (!destNode && !createNodes) return false;
+ spINode arrayNode = CreateTerminalNode(namespaceName.c_str(), propertyName.c_str(), kXMP_PropArrayIsAltText | kXMP_PropValueIsArray);
+ mDOM->AppendNode(arrayNode);
+ destNode = arrayNode;
+ spcINodeIterator iter = XMPUtils::GetNodeChildIterator(destNode);
+ XMP_Index index = 1;
+ while (iter) {
+ spcINode node = iter->GetNode();
+ spcINode qualNode = node->GetQualifier(xmlNameSpace.c_str(), xmlNameSpace.size(), "lang", AdobeXMPCommon::npos );
+ if (qualNode->GetNodeType() == INode::kNTSimple) {
+ if (!strcmp("x-default", qualNode->ConvertToSimpleNode()->GetValue()->c_str())){
+ destNode = AdobeXMPCore_Int::const_pointer_cast<INode>(node);
+ if (nodeIndex) *nodeIndex = index;
+ return true;
+ }
+ }
+ index++;
+ iter = iter->Next();
+ }
+ spISimpleNode qualifierNode = ISimpleNode::CreateSimpleNode(xmlNameSpace.c_str(), xmlNameSpace.size(), "lang", AdobeXMPCommon::npos, "x-default" );
+ if ( destNode->ConvertToArrayNode()->GetNodeAtIndex( 1 ) ) {
+ destNode = destNode->ConvertToArrayNode()->GetNodeAtIndex( 1 );
+ if (nodeIndex) *nodeIndex = 1;
+ destNode->InsertQualifier(qualifierNode);
+
+ return true;
+ }
+ else {
+ spISimpleNode indexNode = ISimpleNode::CreateSimpleNode(namespaceName.c_str(), namespaceName.size(), "[]", AdobeXMPCommon::npos );
+ destNode->ConvertToArrayNode()->InsertNodeAtIndex( indexNode, 1 );
+ destNode->InsertQualifier(qualifierNode);
+ destNode = destNode->ConvertToArrayNode()->GetNodeAtIndex( 1 );
+ return true;
+ }
+
+ }
+
+
+
+ }
+ return false;
+}
+bool XMPUtils:: FindNode ( const spIMetadata & mDOM,
+ XMP_ExpandedXPath & expPath,
+ bool createNodes,
+ XMP_OptionBits leafOptions /* = 0 */,
+ spINode &retNode,
+ XMP_Index *nodeIndex ,
+ bool ignoreLastStep
+ )
+{
+
+ // TO DO - Differentiate between failures on last step and steps before that
+ spINode destNode = mDOM;
+ spINode parentDestNode = mDOM;
+ bool firstImplicitNodeFound = false;
+ bool leafIsNew = false;
+ spINode implicitNodeRoot;
+ bool qualifierFlag = false;
+ XMP_Index implicitNodeIndex ; // used in case first implicit node's parent is an array
+ XMP_Assert ( (leafOptions == 0) || createNodes );
+
+ if ( expPath.empty() ) XMP_Throw ( "Empty XPath", kXMPErr_BadXPath );
+
+ auto defaultMap = INameSpacePrefixMap::GetDefaultNameSpacePrefixMap();
+ size_t pathStartIdx = 1;
+ if (expPath[kRootPropStep].options & kXMP_StepIsAlias) {
+
+ if (!HandleAliasStep(mDOM, expPath, createNodes, leafOptions, destNode,0, 0 )) return false;
+ pathStartIdx = 2;
+
+ }
+ try{
+ for (size_t i = pathStartIdx, endIndex = (ignoreLastStep) ? expPath.size() - 1 : expPath.size(); i < endIndex; i++) {
+ // split the path into prefix and property name
+ if (!destNode) goto EXIT;
+ XMP_VarString stepStr = expPath[i].step;
+ XMP_VarString prevStep = (i == 0) ? "" : expPath[i - 1].step;
+ spcIUTF8String nameSpace;
+ XMP_VarString stepName;
+
+ switch (expPath[i].options) {
+ case kXMP_StructFieldStep:
+ {
+ size_t colonPos = stepStr.find(':');
+ XMP_VarString prefix = stepStr.substr(0, colonPos);
+ // get the namespace from the prefix
+ nameSpace = defaultMap->GetNameSpace(prefix.c_str(), prefix.size());
+ stepName = stepStr.substr(colonPos + 1);
+ if (destNode->GetNodeType() == INode::kNTStructure) {
+ spIStructureNode tempNode = destNode->ConvertToStructureNode();
+ parentDestNode = destNode;
+ destNode = tempNode->GetNode(nameSpace->c_str(), nameSpace->size(), stepStr.c_str() + colonPos + 1, AdobeXMPCommon::npos );
+ if (destNode) continue;
+ if (!createNodes) return false;
+ if (i == (expPath.size() - 1)) {
+
+ spINode simpleInsertNode = CreateTerminalNode(nameSpace->c_str(), stepName.c_str(), leafOptions);
+ tempNode->InsertNode(simpleInsertNode);
+ destNode = simpleInsertNode;
+ SetImplicitNodeInformation(firstImplicitNodeFound, implicitNodeRoot, destNode, implicitNodeIndex);
+
+ }
+ else {
+
+ switch (expPath[i + 1].options) {
+
+ case kXMP_StructFieldStep:
+ {
+ // TODO : Exit and handle deletetion of implicit node
+ // TODO : structInsertNode :
+ spIStructureNode structInsertNode = IStructureNode::CreateStructureNode(nameSpace->c_str(), nameSpace->size(), stepName.c_str(), stepName.size() );
+ spIStructureNode parentStructNode = parentDestNode->ConvertToStructureNode();
+ parentStructNode->InsertNode(structInsertNode);
+ destNode = structInsertNode;
+ SetImplicitNodeInformation(firstImplicitNodeFound, implicitNodeRoot, destNode, implicitNodeIndex);
+
+ }
+ break;
+ case kXMP_FieldSelectorStep:
+ case kXMP_QualSelectorStep:
+ case kXMP_ArrayLastStep:
+ case kXMP_ArrayIndexStep:
+ {
+ // from where will you get arrayform ? which arrayform to set by default?
+ spIArrayNode arrayInsertNode = IArrayNode::CreateOrderedArrayNode(nameSpace->c_str(), nameSpace->size(), stepName.c_str(), stepName.size() );
+ spIStructureNode parentStructNode = parentDestNode->ConvertToStructureNode();
+ parentStructNode->InsertNode(arrayInsertNode);
+ destNode = arrayInsertNode;
+ SetImplicitNodeInformation(firstImplicitNodeFound, implicitNodeRoot, destNode, implicitNodeIndex);
+
+ }
+ break;
+ case kXMP_QualifierStep:
+ {
+ spISimpleNode simpleInsertNode = ISimpleNode::CreateSimpleNode(nameSpace->c_str(), nameSpace->size(), stepName.c_str(), stepName.size() );
+ spIStructureNode parentStructNode = parentDestNode->ConvertToStructureNode();
+ parentStructNode->InsertNode(simpleInsertNode);
+ destNode = simpleInsertNode;
+ SetImplicitNodeInformation(firstImplicitNodeFound, implicitNodeRoot, destNode, implicitNodeIndex);
+
+
+ }
+ default:
+ break;
+ }
+
+ }
+ }
+ else {
+ goto EXIT;
+ }
+ }
+ break;
+ case kXMP_ArrayIndexStep:
+ {
+ // TO DO : type array item
+ // if array not empty -> see type of first array element
+ // else if next is array type , arrayitem is array
+ // if next is struct select type, array item is struct
+ // if next is type qualifier , array item is simple property
+ // TODO : HANDLE EXIT CASE
+ //
+ // we should check if the previous segment is an array segment
+ if (destNode->GetNodeType() != INode::kNTArray) {
+ XMP_Throw("Indexing applied to non-array", kXMPErr_BadXPath);
+ }
+ spIArrayNode tempNode = destNode->ConvertToArrayNode();
+ size_t index = 0;
+ XMP_Assert((stepStr.length() >= 2) && (*(stepStr.begin()) == '[') && (stepStr[stepStr.length() - 1] == ']'));
+ for (size_t chNum = 1, chEnd = stepStr.length() - 1; chNum != chEnd; ++chNum) {
+ XMP_Assert(('0' <= stepStr[chNum]) && (stepStr[chNum] <= '9'));
+ index = (index * 10) + (stepStr[chNum] - '0');
+ }
+ if (index < 1) XMP_Throw("Array index must be larger than one", kXMPErr_BadXPath);
+ if (nodeIndex) *nodeIndex = static_cast<XMP_Index>(index);
+ size_t colonPos = prevStep.find(':');
+ XMP_VarString prefix = prevStep.substr(0, colonPos);
+ nameSpace = defaultMap->GetNameSpace(prefix.c_str(), prefix.size() );
+ stepName = kXMP_ArrayItemName;
+ parentDestNode = destNode;
+ destNode = tempNode->GetNodeAtIndex(index);
+
+ if (destNode) continue;
+ if (!createNodes) return false;
+ spIArrayNode parentArrayNode = parentDestNode->ConvertToArrayNode();
+ if (parentArrayNode->ChildCount() + 1 < index) goto EXIT;
+ if (i == expPath.size() - 1) {
+ // to do if array not empty create of type already existing type
+ /// else create simple node
+ spINode simpleInsertNode = CreateTerminalNode((nameSpace) ? nameSpace->c_str() : kXMP_NS_XMP, stepName.c_str(), leafOptions);
+ parentArrayNode->InsertNodeAtIndex(simpleInsertNode, index);
+ destNode = simpleInsertNode;
+ if (!firstImplicitNodeFound) {
+ firstImplicitNodeFound = true;
+ implicitNodeRoot = destNode;
+ implicitNodeIndex = static_cast<XMP_Index>(index);
+ }
+ }
+ else {
+
+ switch (expPath[i + 1].options) {
+
+ case kXMP_StructFieldStep:
+ {
+ // TODO : Exit and handle deletetion of implicit node
+
+ spIStructureNode structInsertNode = IStructureNode::CreateStructureNode(nameSpace->c_str(), nameSpace->size(), stepName.c_str(), stepName.size() );
+
+ parentArrayNode->InsertNodeAtIndex(structInsertNode, index);
+ destNode = structInsertNode;
+ SetImplicitNodeInformation(firstImplicitNodeFound, implicitNodeRoot, destNode, implicitNodeIndex, (XMP_Index)index);
+ }
+ break;
+ case kXMP_FieldSelectorStep:
+ case kXMP_QualSelectorStep:
+ case kXMP_ArrayLastStep:
+ case kXMP_ArrayIndexStep:
+ {
+ spIArrayNode arrayInsertNode = IArrayNode::CreateOrderedArrayNode(nameSpace->c_str(), nameSpace->size(), stepName.c_str(), stepName.size());
+ parentArrayNode->InsertNodeAtIndex(arrayInsertNode, index);
+ destNode = arrayInsertNode;
+ SetImplicitNodeInformation(firstImplicitNodeFound, implicitNodeRoot, destNode, implicitNodeIndex, (XMP_Index)index);
+ }
+ break;
+ case kXMP_QualifierStep:
+ {
+ spISimpleNode simpleInsertNode = ISimpleNode::CreateSimpleNode(nameSpace->c_str(), nameSpace->size(), stepName.c_str(), stepName.size() );
+ parentArrayNode->InsertNodeAtIndex(simpleInsertNode, index);
+ destNode = simpleInsertNode;
+ SetImplicitNodeInformation(firstImplicitNodeFound, implicitNodeRoot, destNode, implicitNodeIndex, (XMP_Index)index);
+
+ }
+ default:
+ break;
+ }
+
+ }
+
+ }
+ break;
+
+ case kXMP_ArrayLastStep:
+ {
+ // what is the interpretation of last when array is empty ? creating an array item for index 1 if creatNodes is true
+ // rest of the things are same as above case
+ // old implementation has an assertion failing for this case
+ if (destNode->GetNodeType() != INode::kNTArray) {
+ XMP_Throw("Indexing applied to non-array", kXMPErr_BadXPath);
+
+ }
+ spIArrayNode tempNode = destNode->ConvertToArrayNode();
+
+ size_t colonPos = prevStep.find(':');
+ XMP_VarString prefix = prevStep.substr(0, colonPos);
+ nameSpace = defaultMap->GetNameSpace(prefix.c_str(), prefix.size());
+ stepName = prevStep.substr(colonPos + 1);
+ spINode parentNode = destNode;
+ spIArrayNode parentArrayNode = parentNode->ConvertToArrayNode();
+ if (parentNode && parentNode->GetNodeType() == INode::kNTArray) {
+ size_t childCount = parentNode->ConvertToArrayNode()->ChildCount();
+ if (nodeIndex) *nodeIndex = (XMP_Index)childCount + 1;
+ if (childCount) {
+ destNode = parentArrayNode->GetNodeAtIndex(childCount);
+ continue;
+ }
+ if (!createNodes) return false;
+ if (i == expPath.size() - 1) {
+
+ spINode simpleInsertNode = CreateTerminalNode(nameSpace->c_str(), stepName.c_str(), leafOptions);
+ parentArrayNode->InsertNodeAtIndex(simpleInsertNode, 1);
+ destNode = simpleInsertNode;
+ SetImplicitNodeInformation(firstImplicitNodeFound, implicitNodeRoot, destNode, implicitNodeIndex, (XMP_Index)childCount + 1);
+ continue;
+ }
+ switch (expPath[i + 1].options) {
+
+ case kXMP_QualifierStep:
+ {
+ spISimpleNode simpleInsertNode = ISimpleNode::CreateSimpleNode(nameSpace->c_str(), nameSpace->size(), stepName.c_str(), stepName.size());
+ parentArrayNode->InsertNodeAtIndex(simpleInsertNode, 1);
+ destNode = simpleInsertNode;
+ SetImplicitNodeInformation(firstImplicitNodeFound, implicitNodeRoot, destNode, implicitNodeIndex, (XMP_Index)childCount + 1);
+ continue;
+ }
+ break;
+ case kXMP_ArrayIndexStep:
+ case kXMP_ArrayLastStep:
+ case kXMP_FieldSelectorStep:
+ case kXMP_QualSelectorStep:
+ {
+ spIArrayNode arrayInsertNode = IArrayNode::CreateOrderedArrayNode(nameSpace->c_str(), nameSpace->size(), stepName.c_str(), stepName.size() );
+ parentArrayNode->InsertNodeAtIndex(arrayInsertNode, childCount + 1);
+ destNode = arrayInsertNode;
+ SetImplicitNodeInformation(firstImplicitNodeFound, implicitNodeRoot, destNode, implicitNodeIndex, (XMP_Index)childCount + 1);
+ }
+ break;
+ case kXMP_StructFieldStep:
+ {
+ spIStructureNode structInsertNode = IStructureNode::CreateStructureNode(nameSpace->c_str(), nameSpace->size(), stepName.c_str(), stepName.size() );
+ parentArrayNode->InsertNodeAtIndex(structInsertNode, childCount + 1);
+ destNode = structInsertNode;
+ SetImplicitNodeInformation(firstImplicitNodeFound, implicitNodeRoot, destNode, implicitNodeIndex, (XMP_Index)childCount + 1);
+
+ }
+ break;
+
+ default:
+ break;
+ }
+
+
+ }
+
+ }
+ break;
+ case kXMP_QualifierStep:
+ {
+ // if qualifier exists for the parent node, continue
+ // else create qualifier if createnodes is true
+ XMP_Assert(stepStr[0] == '?');
+ stepStr = stepStr.substr(1);
+ size_t colonPos = stepStr.find(':');
+ XMP_VarString prefix = stepStr.substr(0, colonPos);
+ nameSpace = defaultMap->GetNameSpace(prefix.c_str(),prefix.size());
+ stepName = stepStr.substr(colonPos + 1);
+ qualifierFlag = true;
+ parentDestNode = destNode;
+ destNode = destNode->GetQualifier(nameSpace->c_str(), nameSpace->size(), stepName.c_str(), stepName.size() );
+ if (destNode) continue;
+ if (!createNodes) return false;
+ spISimpleNode qualifierNode = ISimpleNode::CreateSimpleNode(nameSpace->c_str(), nameSpace->size(), stepName.c_str(), stepName.size() );
+ parentDestNode->InsertQualifier(qualifierNode);
+ destNode = qualifierNode;
+ }
+
+ break;
+
+ case kXMP_QualSelectorStep:
+ {
+ // TODO - check the old behavior - checked - no implicit nodes except in one case
+ // TODO it is perhaps not required, can be done later
+ // if next path step is array(index/lastinddex/qualselect/fieldselect) - this will be an arraynode
+ // if next path step is a struct, this will be an structnode
+ // if next path step is a qualifier , this will be a simple property
+
+ if (destNode->GetNodeType() != INode::kNTArray) {
+ goto EXIT;
+ }
+ spIArrayNode tempNode = destNode->ConvertToArrayNode();
+ XMP_VarString qualName, qualValue, qualNameSpace;
+ SplitNameAndValue(stepStr, &qualName, &qualValue);
+ spINode parentNode = destNode;
+ size_t colonPos = qualName.find(':');
+ XMP_VarString prefix = qualName.substr(0, colonPos);
+ qualNameSpace = defaultMap->GetNameSpace(prefix.c_str(), prefix.size())->c_str();
+ bool indexFound = false;
+ if (parentNode && parentNode->GetNodeType() == INode::kNTArray) {
+
+ spIArrayNode parentArrayNode = parentNode->ConvertToArrayNode();
+ size_t arrayChildCount = parentArrayNode->ChildCount();
+ for (size_t arrayIdx = 1; arrayIdx <= arrayChildCount; arrayIdx++) {
+
+ spINode currentArrayItem = parentArrayNode->GetNodeAtIndex(arrayIdx);
+ spINode qualNode = currentArrayItem->GetQualifier(qualNameSpace.c_str(), qualNameSpace.size(), qualName.c_str() + colonPos + 1, AdobeXMPCommon::npos );
+ if (!qualNode) continue;
+ XMP_VarString currentQualValue = qualNode->ConvertToSimpleNode()->GetValue()->c_str();
+ if (currentQualValue == qualValue) {
+ indexFound = true;
+ destNode = parentArrayNode->GetNodeAtIndex(arrayIdx);
+ break;
+ }
+ }
+
+ }
+ if (!indexFound) {
+ goto EXIT;
+ }
+ }
+ break;
+
+ case kXMP_FieldSelectorStep:
+ {
+ // what if multiple indices match search criterion ?
+ // what if parent node isn't an array- exception or return false ?
+ // same issue what if one or more child nodes aren't structures ?
+ XMP_VarString fieldName, fieldValue, fieldNameSpace;
+ SplitNameAndValue(stepStr, &fieldName, &fieldValue);
+ spINode parentNode = destNode;
+ size_t colonPos = fieldName.find(':');
+ XMP_VarString prefix = fieldName.substr(0, colonPos);
+ fieldNameSpace = defaultMap->GetNameSpace(prefix.c_str(), prefix.size())->c_str();
+ bool indexFound = false;
+ if (parentNode && parentNode->GetNodeType() == INode::kNTArray) {
+
+ spIArrayNode parentArrayNode = parentNode->ConvertToArrayNode();
+ size_t arrayChildCount = parentArrayNode->ChildCount();
+ for (size_t arrayIdx = 1; arrayIdx <= arrayChildCount; arrayIdx++) {
+
+ spINode currentItem = parentArrayNode->GetNodeAtIndex(arrayIdx);
+
+ if (currentItem->GetNodeType() != INode::kNTStructure) {
+ goto EXIT;
+ }
+
+ spINode fieldNode = currentItem->ConvertToStructureNode()->GetNode(fieldNameSpace.c_str(), fieldNameSpace.size(), fieldName.c_str() + colonPos + 1, AdobeXMPCommon::npos );
+ if (!fieldNode || fieldNode->GetNodeType() != INode::kNTSimple) continue;
+ XMP_VarString currentFieldValue = fieldNode->ConvertToSimpleNode()->GetValue()->c_str();
+ if (currentFieldValue == fieldValue) {
+ indexFound = true;
+ destNode = parentArrayNode->GetNodeAtIndex(arrayIdx);
+ break;
+ }
+ }
+ }
+ if (!indexFound) {
+ goto EXIT;
+ }
+ }
+ break;
+ default:
+ break;
+
+ }
+
+ }
+ }
+ catch (...) {
+ if (firstImplicitNodeFound) {
+
+ spINode parentImplicitNode = implicitNodeRoot->GetParent();
+ if (parentImplicitNode->GetNodeType() == INode::kNTArray) {
+ parentImplicitNode->ConvertToArrayNode()->RemoveNodeAtIndex( implicitNodeIndex );
+ }
+ else if (parentImplicitNode->GetNodeType() == INode::kNTStructure) {
+ parentImplicitNode->ConvertToStructureNode()->RemoveNode(implicitNodeRoot->GetNameSpace()->c_str(), implicitNodeRoot->GetNameSpace()->size(), implicitNodeRoot->GetName()->c_str(), implicitNodeRoot->GetName()->size() );
+ }
+ }
+ throw;
+ }
+
+retNode = destNode;
+return true;
+
+EXIT:
+{
+ //XMP_Assert ( !destNode || (currNode == *currPos) );
+ //XMP_Assert ( (destNode!= 0) || (! createNodes) );
+ if(!destNode) {
+
+ if( firstImplicitNodeFound ) {
+
+ spINode parentImplicitNode = implicitNodeRoot->GetParent();
+ if(parentImplicitNode->GetNodeType() == INode::kNTArray) {
+ parentImplicitNode->ConvertToArrayNode()->RemoveNodeAtIndex( implicitNodeIndex );
+ }
+ else if(parentImplicitNode->GetNodeType()== INode::kNTStructure) {
+ parentImplicitNode->ConvertToStructureNode()->RemoveNode( implicitNodeRoot->GetNameSpace()->c_str(), implicitNodeRoot->GetNameSpace()->size(), implicitNodeRoot->GetName()->c_str(), implicitNodeRoot->GetName()->size() );
+ }
+ }
+ } return false;
+}
+return false;
+} // FindNode
+
+bool XMPUtils::FindCnstNode ( const spIMetadata & mDOM,XMP_ExpandedXPath &expPath , spINode &destNode, XMP_OptionBits *options , XMP_Index * arrayIndex )
+{
+ auto defaultMap = INameSpacePrefixMap::GetDefaultNameSpacePrefixMap();
+ destNode = mDOM;
+ bool qualifierFlag = false;
+ size_t pathStartIdx = 1;
+ if (expPath[kRootPropStep].options & kXMP_StepIsAlias) {
+
+ if (!HandleConstAliasStep(mDOM, destNode, expPath, 0)) return false;
+ pathStartIdx = 2;
+
+ }
+ for ( size_t i = pathStartIdx, endIndex = expPath.size(); i < endIndex; i++ ) {
+ // split the path into prefix and property name
+ if(!destNode) return false;
+ XMP_VarString stepStr = expPath[i].step;
+ XMP_VarString prevStep = (i == 0)? "" : expPath[i - 1].step;
+ spcIUTF8String nameSpace ;
+
+ switch( expPath[i].options ) {
+ case kXMP_StructFieldStep:
+ {
+ size_t colonPos = stepStr.find(':');
+ XMP_VarString prefix = stepStr.substr( 0, colonPos );
+ // get the namespace from the prefix
+ nameSpace = defaultMap->GetNameSpace( prefix.c_str(), prefix.size() );
+ if(destNode->GetNodeType() == INode::kNTStructure) {
+ spIStructureNode tempNode = destNode->ConvertToStructureNode();
+ destNode = tempNode->GetNode(nameSpace->c_str(), nameSpace->size(), stepStr.c_str() + colonPos + 1, AdobeXMPCommon::npos );
+ }
+ else {
+ XMP_Throw ( "Named children only allowed for schemas and structs", kXMPErr_BadXPath );
+ }
+ }
+ break;
+ case kXMP_ArrayIndexStep:
+ {
+ // should we check if previous segment is an array segment
+ if(destNode->GetNodeType() != INode::kNTArray) {
+ XMP_Throw ( "Indexes allowed for arrays only", kXMPErr_BadXPath );
+ }
+ spIArrayNode tempNode = destNode->ConvertToArrayNode();
+ XMP_Index index = 0;
+ XMP_Assert ( (stepStr.length() >= 2) && (*( stepStr.begin()) == '[') && (stepStr[stepStr.length()-1] == ']') );
+ for ( size_t chNum = 1,chEnd = stepStr.length() -1 ; chNum != chEnd; ++chNum ) {
+ XMP_Assert ( ('0' <= stepStr[chNum]) && (stepStr[chNum] <= '9') );
+ index = (index * 10) + (stepStr[chNum] - '0');
+ }
+ if ( index < 1) XMP_Throw ( "Array index must be larger than one", kXMPErr_BadXPath );
+ size_t colonPos = prevStep.find(':');
+ XMP_VarString prefix = prevStep.substr( 0, colonPos );
+ nameSpace = defaultMap->GetNameSpace( prefix.c_str(), prefix.size() );
+ destNode = tempNode->GetNodeAtIndex( index);
+ if(arrayIndex) *arrayIndex = index;
+ }
+ break;
+ case kXMP_ArrayLastStep:
+ {
+ if(destNode->GetNodeType() != INode::kNTArray) {
+ XMP_Throw ( "Indexes allowed for arrays only", kXMPErr_BadXPath );
+ }
+ spIArrayNode tempNode = destNode->ConvertToArrayNode();
+
+ size_t colonPos = prevStep.find(':');
+ XMP_VarString prefix = prevStep.substr( 0, colonPos );
+ nameSpace = defaultMap->GetNameSpace( prefix.c_str(), prefix.size() );
+ spINode parentNode = destNode;
+ if(parentNode && parentNode->GetNodeType()== INode::kNTArray) {
+ size_t childCount = parentNode->ConvertToArrayNode()->ChildCount();
+ if(!childCount) {
+ XMP_Throw ( "Array index overflow", kXMPErr_BadXPath );
+ }
+ destNode = tempNode->GetNodeAtIndex(childCount);
+ if(arrayIndex) *arrayIndex = (XMP_Index)childCount;
+ }
+
+ }
+ break;
+ case kXMP_QualifierStep:
+ {
+
+ XMP_Assert(stepStr[0]=='?');
+ stepStr = stepStr.substr(1);
+ size_t colonPos = stepStr.find(':');
+ XMP_VarString prefix = stepStr.substr( 0, colonPos);
+ nameSpace = defaultMap->GetNameSpace( prefix.c_str(), prefix.size() );
+ qualifierFlag = true;
+ destNode = destNode->GetQualifier(nameSpace->c_str(), nameSpace->size(), stepStr.c_str() + colonPos + 1, AdobeXMPCommon::npos);
+
+ // spINode node = mDOM->GetNode( path);
+ }
+
+ break;
+
+ case kXMP_QualSelectorStep:
+ {
+ // what if multiple indices match search criterion ?
+ if(destNode->GetNodeType() != INode::kNTArray) {
+ XMP_Throw ( "Indexes allowed for arrays only", kXMPErr_BadXPath );
+ }
+ spIArrayNode tempNode = destNode->ConvertToArrayNode();
+ XMP_VarString qualName, qualValue, qualNameSpace;
+ SplitNameAndValue (stepStr, &qualName, &qualValue );
+ spINode parentNode = destNode;
+ size_t colonPos = qualName.find(':');
+ XMP_VarString prefix = qualName.substr( 0, colonPos);
+ qualNameSpace = defaultMap->GetNameSpace( prefix.c_str(), prefix.size() )->c_str();
+ bool indexFound = false;
+ if(parentNode && parentNode->GetNodeType() == INode::kNTArray) {
+
+ spIArrayNode parentArrayNode = parentNode->ConvertToArrayNode();
+ size_t arrayChildCount = parentArrayNode->ChildCount();
+ for(size_t arrayIdx = 1; arrayIdx <= arrayChildCount; arrayIdx++) {
+
+ spINode currentArrayItem = parentArrayNode->GetNodeAtIndex(arrayIdx);
+ spINode qualNode = currentArrayItem->GetQualifier(qualNameSpace.c_str(), qualNameSpace.size(), qualName.c_str() + colonPos + 1, AdobeXMPCommon::npos );
+ if(!qualNode) continue;
+ XMP_VarString currentQualValue = qualNode->ConvertToSimpleNode()->GetValue()->c_str();
+ if( currentQualValue == qualValue) {
+ indexFound = true;
+ if(arrayIndex) *arrayIndex = (XMP_Index)arrayIdx;
+ destNode = parentArrayNode->GetNodeAtIndex( arrayIdx);
+ break;
+ }
+ }
+
+ }
+ if(!indexFound) {
+ return false;
+ }
+ }
+ break;
+
+ case kXMP_FieldSelectorStep :
+ {
+ // what if multiple indices match search criterion ?
+ // what if parent node isn't an array- exception or return false ?
+ // same issue what if one or more child nodes aren't structures ?
+ XMP_VarString fieldName, fieldValue, fieldNameSpace;
+ SplitNameAndValue (stepStr, &fieldName, &fieldValue );
+ spINode parentNode = destNode;
+ size_t colonPos = fieldName.find(':');
+ XMP_VarString prefix = fieldName.substr( 0, colonPos);
+ fieldNameSpace = defaultMap->GetNameSpace( prefix.c_str(), prefix.size() )->c_str();
+ bool indexFound = false;
+ if(parentNode && parentNode->GetNodeType() == INode::kNTArray) {
+
+ spIArrayNode parentArrayNode = parentNode->ConvertToArrayNode();
+ size_t arrayChildCount = parentArrayNode->ChildCount();
+ for(size_t arrayIdx = 1; arrayIdx <= arrayChildCount; arrayIdx++) {
+
+ spINode currentItem = parentArrayNode->GetNodeAtIndex(arrayIdx);
+
+ if(currentItem->GetNodeType() != INode::kNTStructure) {
+ return false;
+ }
+
+ spINode fieldNode = currentItem->ConvertToStructureNode()->GetNode(fieldNameSpace.c_str(), fieldNameSpace.size(), fieldName.c_str() + colonPos + 1, AdobeXMPCommon::npos );
+ if(!fieldNode || fieldNode->GetNodeType() != INode::kNTSimple) continue;
+ XMP_VarString currentFieldValue = fieldNode->ConvertToSimpleNode()->GetValue()->c_str();
+ if( currentFieldValue == fieldValue) {
+ indexFound = true;
+ if(arrayIndex) *arrayIndex = (XMP_Index)arrayIdx;
+ destNode = parentArrayNode->GetNodeAtIndex( arrayIdx);
+ break;
+ }
+ }
+ }
+ if(!indexFound) {
+ return false;
+ }
+ }
+ break;
+ default:
+ break;
+
+ }
+
+ }
+ if(!destNode) return false;
+ if(!options) return true;
+ *options = GetIXMPOptions(destNode);
+ return true;
+}
+
+size_t XMPUtils:: GetNodeChildCount(const spcINode & node){
+ size_t childCount = 0;
+ if( node->GetNodeType() == INode::kNTArray) {
+ childCount = node->ConvertToArrayNode()->ChildCount();
+ }
+ else if (node->GetNodeType() == INode::kNTStructure) {
+ childCount = node->ConvertToStructureNode()->ChildCount();
+ }
+ return childCount;
+
+}
+
+spcINodeIterator XMPUtils::GetNodeChildIterator(const spcINode & node){
+ spcINodeIterator childIter;
+ if( node->GetNodeType() == INode::kNTArray) {
+ childIter = node->ConvertToArrayNode()->Iterator();
+ }
+ else if (node->GetNodeType() == INode::kNTStructure) {
+ childIter = node->ConvertToStructureNode()->Iterator();
+ }
+ return childIter;
+
+}
+
+std::vector<spcINode> XMPUtils:: GetChildVector( const spINode & node) {
+
+ std::vector<spcINode> childNodes;
+ spcINodeIterator childIter = GetNodeChildIterator(node);
+ for(; childIter; childIter = childIter->Next()) {
+ childNodes.push_back(childIter->GetNode());
+ }
+ return childNodes;
+}
+XMP_OptionBits XMPUtils:: GetIXMPOptions( const spcINode & node) {
+
+ XMP_OptionBits options = 0;
+ if(!node) return options;
+ if ( node->HasQualifiers()) {
+ options |= kXMP_PropHasQualifiers;
+ // ( destNode->GetQualifier( "
+ if( node->GetQualifier(xmlNameSpace.c_str(), xmlNameSpace.size(), "lang", AdobeXMPCommon::npos )) {
+ options |= kXMP_PropHasLang;
+ }
+
+ if( node->GetQualifier("http://www.w3.org/1999/02/22-rdf-syntax-ns#", AdobeXMPCommon::npos, "type", AdobeXMPCommon::npos )) {
+ options |= kXMP_PropHasType;
+ }
+ }
+ XMP_VarString snamespace = node->GetNameSpace()->c_str();
+ XMP_VarString sname = node->GetName()->c_str();
+ spcINode parentNode = node->GetParent();
+
+ if (node->IsQualifierNode()){
+ options |= kXMP_PropIsQualifier;
+ }
+
+ if ( node->GetNodeType() == INode::kNTSimple ) {
+
+ if( node->ConvertToSimpleNode()->IsURIType()){
+ options |= kXMP_PropValueIsURI;
+ }
+
+ }
+ else if ( node->GetNodeType() == INode::kNTArray) {
+
+ spcIArrayNode arrayNode = node->ConvertToArrayNode();
+ options |= kXMP_PropValueIsArray;
+
+ switch(arrayNode->GetArrayForm()) {
+
+ case IArrayNode::kAFAlternative:
+ options |= kXMP_PropArrayIsAlternate;options|= kXMP_PropArrayIsOrdered;
+ break;
+
+ case IArrayNode::kAFOrdered:
+ options |= kXMP_PropArrayIsOrdered;
+ break;
+
+ case IArrayNode::kAFUnordered:
+ options |= kXMP_PropArrayIsUnordered;
+ break;
+
+ default:
+ return false;
+ break;
+ }
+ bool isAltTextArray = (arrayNode->GetArrayForm() == IArrayNode::kAFAlternative );
+
+ for( size_t arrayIndex = 1; arrayIndex <= arrayNode->ChildCount(); arrayIndex++) {
+ spcINode childNode = arrayNode->GetNodeAtIndex(arrayIndex);
+ if((childNode->GetNodeType() != INode::kNTSimple || !childNode->GetQualifier(xmlNameSpace.c_str(), xmlNameSpace.size(), "lang", AdobeXMPCommon::npos ))) {
+ isAltTextArray = false;
+ break;
+ }
+ }
+ if(isAltTextArray) {
+ options |= kXMP_PropArrayIsAltText;
+ }
+
+ }
+ else if( node->GetNodeType() == INode::kNTStructure && node->GetParent() ) {
+ options |= kXMP_PropValueIsStruct;
+ }
+ return options;
+}
+
+spINode
+XMPUtils::FindChildNode ( const spINode &parent,
+ XMP_StringPtr childName,
+ XMP_StringPtr childNameSpace,
+ bool createNodes,
+ size_t * pos /* = 0 */ )
+{
+ // need to pass childnamespace too
+ spINode childNode;
+ XMP_OptionBits parentOptions = XMPUtils::GetIXMPOptions(parent);
+ if ( ! (parentOptions & (kXMP_SchemaNode | kXMP_PropValueIsStruct)) ) {
+
+ if ( parentOptions & kXMP_PropValueIsArray ) {
+ XMP_Throw ( "Named children not allowed for arrays", kXMPErr_BadXPath );
+ }
+ }
+ spcINodeIterator childIter = XMPUtils::GetNodeChildIterator(parent);
+
+ for (size_t idx = 1 ; childIter; childIter = childIter->Next(), ++idx ) {
+ spcINode currChild = childIter->GetNode();
+
+ if (currChild && XMP_LitMatch(currChild->GetName()->c_str(), childName) && XMP_LitMatch(currChild->GetNameSpace()->c_str(), childNameSpace) ) {
+ childNode = AdobeXMPCore_Int::const_pointer_cast<INode>(currChild);
+ if(pos) *pos = idx;
+ break;
+ }
+ }
+
+ if ( (!childNode) && createNodes ) {
+ childNode = ISimpleNode::CreateSimpleNode(childNameSpace, AdobeXMPCommon::npos, childName, AdobeXMPCommon::npos );
+ parent->ConvertToStructureNode()->InsertNode( childNode );
+ }
+
+ XMP_Assert ( (childNode ) || (! createNodes) );
+ return childNode;
+
+} // FindChildNode
+
+spcIUTF8String XMPUtils::GetNodeValue( const spINode & node) {
+
+
+ if (node && node->GetNodeType() == INode::kNTSimple) {
+ return node->ConvertToSimpleNode()->GetValue();
+ }
+ return spIUTF8String();
+}
+
+
+XMP_Index XMPUtils::LookupFieldSelector_v2(const spIArrayNode & arrayNode, XMP_VarString fieldName, XMP_VarString fieldValue) {
+
+ XMP_Index destIdx = -1;
+ if (arrayNode->GetNodeType() != INode::kNTArray) return destIdx;
+ for (size_t index = 1, indexLim = arrayNode->ChildCount(); index <= indexLim; ++index) {
+
+ spINode childNode = arrayNode->GetNodeAtIndex(index);
+ if (childNode->GetNodeType() != INode::kNTStructure) {
+ XMP_Throw("Field selector must be used on array of struct", kXMPErr_BadXPath);
+ }
+ for (spcINodeIterator childNodeIter = XMPUtils::GetNodeChildIterator(childNode); childNodeIter; childNodeIter = childNodeIter->Next()) {
+ spcINode currentField = childNodeIter->GetNode();
+ if (!XMP_LitMatch(currentField->GetName()->c_str(), fieldName.c_str())) continue;
+ if (currentField->GetNodeType() != INode::kNTSimple) continue;
+ XMP_VarString currentFieldValue = currentField->ConvertToSimpleNode()->GetValue()->c_str();
+ if (currentFieldValue == fieldValue) {
+ return index;
+ }
+ }
+ }
+ return destIdx;
+}
+
+#endif
// -------------------------------------------------------------------------------------------------
// ANSI Time Functions
@@ -435,7 +1631,69 @@ EstimateSizeForJPEG ( const XMP_Node * xmpNode )
return estSize;
-} // EstimateSizeForJPEG
+}
+
+
+#if ENABLE_CPP_DOM_MODEL
+// -------------------------------------------------------------------------------------------------
+// EstimateSizeForJPEG
+// -------------------
+//
+// Estimate the serialized size for the subtree of an XMP_Node. Support for PackageForJPEG.
+
+static size_t
+EstimateSizeForJPEG(const spINode &xmpNode)
+{
+
+ size_t estSize = 0;
+ auto defaultMap = INameSpacePrefixMap::GetDefaultNameSpacePrefixMap();
+
+ size_t nameSize = xmpNode->GetName()->size() + 1 ;
+ nameSize += defaultMap->GetPrefix(xmpNode->GetNameSpace()->c_str(), xmpNode->GetNameSpace()->size())->size();
+
+ XMP_OptionBits xmpNodeOptions = XMPUtils::GetIXMPOptions(xmpNode);
+ bool includeName = (xmpNode->GetParent()->GetNodeType() != INode::kNTArray);
+
+ if (XMP_PropIsSimple(xmpNodeOptions)) {
+
+ if (includeName) estSize += (nameSize + 3); // Assume attribute form.
+ estSize += xmpNode->ConvertToSimpleNode()->GetValue()->size();
+ }
+ else if (XMP_PropIsArray(xmpNodeOptions)) {
+
+ // The form of the value portion is: <rdf:Xyz><rdf:li>...</rdf:li>...</rdf:Xyx>
+ if (includeName) estSize += (2 * nameSize + 5);
+ spIArrayNode structNode = xmpNode->ConvertToArrayNode();
+ size_t arraySize = structNode->ChildCount();
+ estSize += 9 + 10; // The rdf:Xyz tags.
+ estSize += arraySize * (8 + 9); // The rdf:li tags.
+
+ for (auto structIter = structNode->Iterator(); structIter; structIter = structIter->Next()) {
+
+ estSize += EstimateSizeForJPEG(structIter->GetNode());
+ }
+
+ }
+ else {
+
+ // The form is: <headTag rdf:parseType="Resource">...fields...</tailTag>
+ if (includeName) estSize += (2 * nameSize + 5);
+ spIStructureNode structNode = xmpNode->ConvertToStructureNode();
+ estSize += 25; // The rdf:parseType="Resource" attribute.
+ size_t fieldCount = structNode->ChildCount();
+
+ for (auto structIter = structNode->Iterator(); structIter; structIter = structIter->Next()) {
+
+ estSize += EstimateSizeForJPEG(structIter->GetNode());
+ }
+
+
+ }
+
+ return estSize;
+
+}
+#endif
// -------------------------------------------------------------------------------------------------
// MoveOneProperty
@@ -468,6 +1726,34 @@ static bool MoveOneProperty ( XMPMeta & stdXMP, XMPMeta * extXMP,
} // MoveOneProperty
+
+
+// -------------------------------------------------------------------------------------------------
+// MoveOneProperty
+// ---------------
+#if ENABLE_CPP_DOM_MODEL
+static bool MoveOneProperty(XMPMeta2 & stdXMP, XMPMeta2 * extXMP,
+ XMP_StringPtr schemaURI, XMP_StringPtr propName)
+{
+
+ spINode rootNode = stdXMP.mDOM;
+ if (!rootNode) return false;
+ spINode propNode = rootNode->ConvertToStructureNode()->GetNode(schemaURI, AdobeXMPCommon::npos, propName, AdobeXMPCommon::npos);
+ if (!propNode) return false;
+
+ spINode clonedNode = propNode->Clone();
+
+ spIStructureNode rootNode2 = extXMP->mDOM;
+
+ if (rootNode2->GetNode(schemaURI, AdobeXMPCommon::npos, propName, AdobeXMPCommon::npos )) {
+ rootNode2->RemoveNode(schemaURI, AdobeXMPCommon::npos, propName, AdobeXMPCommon::npos);
+ }
+ rootNode2->AppendNode(clonedNode);
+ rootNode->ConvertToStructureNode()->RemoveNode( schemaURI, AdobeXMPCommon::npos, propName, AdobeXMPCommon::npos );
+ return true;
+} // MoveOneProperty
+#endif
+
// -------------------------------------------------------------------------------------------------
// CreateEstimatedSizeMap
// ----------------------
@@ -477,7 +1763,9 @@ static bool MoveOneProperty ( XMPMeta & stdXMP, XMPMeta * extXMP,
#endif
typedef std::pair < XMP_VarString*, XMP_VarString* > StringPtrPair;
+typedef std::pair < const char *, const char * > StringPtrPair2;
typedef std::multimap < size_t, StringPtrPair > PropSizeMap;
+typedef std::multimap < size_t, StringPtrPair2 > PropSizeMap2;
static void CreateEstimatedSizeMap ( XMPMeta & stdXMP, PropSizeMap * propSizes )
{
@@ -510,6 +1798,71 @@ static void CreateEstimatedSizeMap ( XMPMeta & stdXMP, PropSizeMap * propSizes )
} // CreateEstimatedSizeMap
+#if ENABLE_CPP_DOM_MODEL
+static void CreateEstimatedSizeMap(XMPMeta2 & stdXMP, PropSizeMap2 * propSizes)
+{
+#if Trace_PackageForJPEG
+ printf(" Creating top level property map:\n");
+#endif
+
+
+
+ spIStructureNode rootNode = stdXMP.mDOM;
+
+ for (auto rootIter = rootNode->Iterator(); rootIter; rootIter = rootIter->Next()) {
+
+ const spINode & node = rootIter->GetNode();
+ if (!strcmp(node->GetNameSpace()->c_str(), kXMP_NS_XMP_Note) && !strcmp(node->GetName()->c_str(), "HasExtendedXMP")) continue;
+ size_t propSize = EstimateSizeForJPEG(node);
+ StringPtrPair2 namePair(node->GetNameSpace()->c_str(), node->GetName()->c_str());
+ PropSizeMap2::value_type mapValue(propSize, namePair);
+ (void)propSizes->insert(propSizes->upper_bound(propSize), mapValue);
+#if Trace_PackageForJPEG
+ printf(" %d bytes, %s in %s\n", propSize, stdProp->name.c_str(), stdSchema->name.c_str());
+#endif
+ }
+
+
+} // CreateEstimatedSizeMap
+#endif
+
+#if ENABLE_CPP_DOM_MODEL
+// -------------------------------------------------------------------------------------------------
+// MoveLargestProperty
+// -------------------
+
+static size_t MoveLargestProperty(XMPMeta2 & stdXMP, XMPMeta2 * extXMP, PropSizeMap2 & propSizes)
+{
+ XMP_Assert(!propSizes.empty());
+
+#if 0
+ // *** Xocde 2.3 on Mac OS X 10.4.7 seems to have a bug where this does not pick the last
+ // *** item in the map. We'll just avoid it on all platforms until thoroughly tested.
+ PropSizeMap::iterator lastPos = propSizes.end();
+ --lastPos; // Move to the actual last item.
+#else
+ PropSizeMap2::iterator lastPos = propSizes.begin();
+ PropSizeMap2::iterator nextPos = lastPos;
+ for (++nextPos; nextPos != propSizes.end(); ++nextPos) lastPos = nextPos;
+#endif
+
+ size_t propSize = lastPos->first;
+ const char * schemaURI = lastPos->second.first;
+ const char * propName = lastPos->second.second;
+
+#if Trace_PackageForJPEG
+ printf(" Move %s, %d bytes\n", propName, propSize);
+#endif
+
+ bool moved = MoveOneProperty(stdXMP, extXMP, schemaURI, propName);
+ XMP_Assert(moved);
+
+ propSizes.erase(lastPos);
+ return propSize;
+
+} // MoveLargestProperty
+#endif
+
// -------------------------------------------------------------------------------------------------
// MoveLargestProperty
// -------------------
@@ -600,7 +1953,7 @@ XMPUtils::ComposeArrayItemPath ( XMP_StringPtr schemaNS,
if ( (itemIndex < 0) && (itemIndex != kXMP_ArrayLastItem) ) XMP_Throw ( "Array index out of bounds", kXMPErr_BadParam );
- XMP_StringLen reserveLen = strlen(arrayName) + 2 + 32; // Room plus padding.
+ size_t reserveLen = strlen(arrayName) + 2 + 32; // Room plus padding.
XMP_VarString fullPath; // ! Allow for arrayName to be the incoming _fullPath.c_str().
fullPath.reserve ( reserveLen );
@@ -644,7 +1997,7 @@ XMPUtils::ComposeStructFieldPath ( XMP_StringPtr schemaNS,
ExpandXPath ( fieldNS, fieldName, &fieldPath );
if ( fieldPath.size() != 2 ) XMP_Throw ( "The fieldName must be simple", kXMPErr_BadXPath );
- XMP_StringLen reserveLen = strlen(structName) + fieldPath[kRootPropStep].step.size() + 1;
+ size_t reserveLen = strlen(structName) + fieldPath[kRootPropStep].step.size() + 1;
XMP_VarString fullPath; // ! Allow for arrayName to be the incoming _fullPath.c_str().
fullPath.reserve ( reserveLen );
@@ -681,7 +2034,7 @@ XMPUtils::ComposeQualifierPath ( XMP_StringPtr schemaNS,
ExpandXPath ( qualNS, qualName, &qualPath );
if ( qualPath.size() != 2 ) XMP_Throw ( "The qualifier name must be simple", kXMPErr_BadXPath );
- XMP_StringLen reserveLen = strlen(propName) + qualPath[kRootPropStep].step.size() + 2;
+ size_t reserveLen = strlen(propName) + qualPath[kRootPropStep].step.size() + 2;
XMP_VarString fullPath; // ! Allow for arrayName to be the incoming _fullPath.c_str().
fullPath.reserve ( reserveLen );
@@ -718,7 +2071,7 @@ XMPUtils::ComposeLangSelector ( XMP_StringPtr schemaNS,
XMP_VarString langName ( _langName );
NormalizeLangValue ( &langName );
- XMP_StringLen reserveLen = strlen(arrayName) + langName.size() + 14;
+ size_t reserveLen = strlen(arrayName) + langName.size() + 14;
XMP_VarString fullPath; // ! Allow for arrayName to be the incoming _fullPath.c_str().
fullPath.reserve ( reserveLen );
@@ -758,7 +2111,7 @@ XMPUtils::ComposeFieldSelector ( XMP_StringPtr schemaNS,
ExpandXPath ( fieldNS, fieldName, &fieldPath );
if ( fieldPath.size() != 2 ) XMP_Throw ( "The fieldName must be simple", kXMPErr_BadXPath );
- XMP_StringLen reserveLen = strlen(arrayName) + fieldPath[kRootPropStep].step.size() + strlen(fieldValue) + 5;
+ size_t reserveLen = strlen(arrayName) + fieldPath[kRootPropStep].step.size() + strlen(fieldValue) + 5;
XMP_VarString fullPath; // ! Allow for arrayName to be the incoming _fullPath.c_str().
fullPath.reserve ( reserveLen );
@@ -1480,6 +2833,14 @@ XMPUtils::PackageForJPEG ( const XMPMeta & origXMP,
XMP_VarString * extStr,
XMP_VarString * digestStr )
{
+
+#if ENABLE_CPP_DOM_MODEL
+ if(sUseNewCoreAPIs) {
+
+ const XMPMeta2 & orig = dynamic_cast<const XMPMeta2 &>(origXMP);
+ return XMPUtils::PackageForJPEG(orig, stdStr, extStr, digestStr);
+ }
+#endif
XMP_Assert ( (stdStr != 0) && (extStr != 0) && (digestStr != 0) ); // ! Enforced by wrapper.
enum { kStdXMPLimit = 65000 };
@@ -1676,6 +3037,225 @@ XMPUtils::PackageForJPEG ( const XMPMeta & origXMP,
} // PackageForJPEG
+
+#if ENABLE_CPP_DOM_MODEL
+// -------------------------------------------------------------------------------------------------
+// PackageForJPEG
+// --------------
+
+/* class static */ void
+XMPUtils::PackageForJPEG(const XMPMeta2 & origXMP,
+ XMP_VarString * stdStr,
+ XMP_VarString * extStr,
+ XMP_VarString * digestStr)
+{
+ XMP_Assert((stdStr != 0) && (extStr != 0) && (digestStr != 0)); // ! Enforced by wrapper.
+
+ enum { kStdXMPLimit = 65000 };
+ static const char * kPacketTrailer = "<?xpacket end=\"w\"?>";
+ static size_t kTrailerLen = strlen(kPacketTrailer);
+
+ XMP_VarString tempStr;
+ XMPMeta2 stdXMP, extXMP;
+ XMP_OptionBits keepItSmall = kXMP_UseCompactFormat | kXMP_OmitAllFormatting;
+
+ stdStr->erase();
+ extStr->erase();
+ digestStr->erase();
+
+ // Try to serialize everything. Note that we're making internal calls to SerializeToBuffer, so
+ // we'll be getting back the pointer and length for its internal string.
+
+ origXMP.SerializeToBuffer(&tempStr, keepItSmall, 1, "", "", 0);
+#if Trace_PackageForJPEG
+ printf("\nXMPUtils::PackageForJPEG - Full serialize %d bytes\n", tempStr.size());
+#endif
+
+ if (tempStr.size() > kStdXMPLimit) {
+
+ // Couldn't fit everything, make a copy of the input XMP and make sure there is no xmp:Thumbnails property.
+
+ stdXMP.mDOM = origXMP.mDOM->Clone()->ConvertToMetadata();
+
+
+ if (stdXMP.DoesPropertyExist(kXMP_NS_XMP, "Thumbnails")) {
+ stdXMP.DeleteProperty(kXMP_NS_XMP, "Thumbnails");
+ stdXMP.SerializeToBuffer(&tempStr, keepItSmall, 1, "", "", 0);
+#if Trace_PackageForJPEG
+ printf(" Delete xmp:Thumbnails, %d bytes left\n", tempStr.size());
+#endif
+ }
+
+ }
+
+ if (tempStr.size() > kStdXMPLimit) {
+
+ // Still doesn't fit, move all of the Camera Raw namespace. Add a dummy value for xmpNote:HasExtendedXMP.
+
+ stdXMP.SetProperty(kXMP_NS_XMP_Note, "HasExtendedXMP", "123456789-123456789-123456789-12", 0);
+
+ spIStructureNode currRootNode = stdXMP.mDOM;
+ std::vector<XMP_VarString> nodes;
+ for (auto rootPropIter = currRootNode->Iterator(); rootPropIter; rootPropIter = rootPropIter->Next()) {
+
+ auto rootPropNodeCloned = rootPropIter->GetNode()->Clone();
+ if (strcmp(rootPropNodeCloned->GetNameSpace()->c_str(), kXMP_NS_CameraRaw ) ) continue;
+ extXMP.mDOM->AppendNode(rootPropNodeCloned);
+ nodes.push_back(rootPropNodeCloned->GetName()->c_str());
+ }
+
+ for (size_t childIdx = 0, childLim = nodes.size(); childIdx != childLim; ++childIdx) {
+
+ stdXMP.mDOM->RemoveNode(kXMP_NS_CameraRaw, AdobeXMPCommon::npos, nodes[childIdx].c_str(), nodes[childIdx].size() );
+ }
+
+
+ if (nodes.size() != 0) {
+
+ stdXMP.SerializeToBuffer(&tempStr, keepItSmall, 1, "", "", 0);
+#if Trace_PackageForJPEG
+ printf(" Move Camera Raw schema, %d bytes left\n", tempStr.size());
+#endif
+ }
+
+ }
+
+ if (tempStr.size() > kStdXMPLimit) {
+
+ // Still doesn't fit, move photoshop:History.
+
+ bool moved = MoveOneProperty(stdXMP, &extXMP, kXMP_NS_Photoshop, "History");
+
+ if (moved) {
+ stdXMP.SerializeToBuffer(&tempStr, keepItSmall, 1, "", "", 0);
+#if Trace_PackageForJPEG
+ printf(" Move photoshop:History, %d bytes left\n", tempStr.size());
+#endif
+ }
+
+ }
+
+ if (tempStr.size() > kStdXMPLimit) {
+
+ // Still doesn't fit, move top level properties in order of estimated size. This is done by
+ // creating a multi-map that maps the serialized size to the string pair for the schema URI
+ // and top level property name. Since maps are inherently ordered, a reverse iteration of
+ // the map can be done to move the largest things first. We use a double loop to keep going
+ // until the serialization actually fits, in case the estimates are off.
+
+ PropSizeMap2 propSizes;
+ CreateEstimatedSizeMap(stdXMP, &propSizes);
+
+#if Trace_PackageForJPEG
+ if (!propSizes.empty()) {
+ printf(" Top level property map, smallest to largest:\n");
+ PropSizeMap::iterator mapPos = propSizes.begin();
+ PropSizeMap::iterator mapEnd = propSizes.end();
+ for (; mapPos != mapEnd; ++mapPos) {
+ size_t propSize = mapPos->first;
+ const char * schemaName = mapPos->second.first->c_str();
+ const char * propName = mapPos->second.second->c_str();
+ printf(" %d bytes, %s in %s\n", propSize, propName, schemaName);
+ }
+ }
+#endif
+
+#if 0 // Trace_PackageForJPEG *** Xcode 2.3 on 10.4.7 has bugs in backwards iteration
+ if (!propSizes.empty()) {
+ printf(" Top level property map, largest to smallest:\n");
+ PropSizeMap::iterator mapPos = propSizes.end();
+ PropSizeMap::iterator mapBegin = propSizes.begin();
+ for (--mapPos; true; --mapPos) {
+ size_t propSize = mapPos->first;
+ const char * schemaName = mapPos->second.first->c_str();
+ const char * propName = mapPos->second.second->c_str();
+ printf(" %d bytes, %s in %s\n", propSize, propName, schemaName);
+ if (mapPos == mapBegin) break;
+ }
+ }
+#endif
+
+ // Outer loop to make sure enough is actually moved.
+
+ while ((tempStr.size() > kStdXMPLimit) && (!propSizes.empty())) {
+
+ // Inner loop, move what seems to be enough according to the estimates.
+
+ size_t tempLen = tempStr.size();
+ while ((tempLen > kStdXMPLimit) && (!propSizes.empty())) {
+
+ size_t propSize = MoveLargestProperty(stdXMP, &extXMP, propSizes);
+ XMP_Assert(propSize > 0);
+
+ if (propSize > tempLen) propSize = tempLen; // ! Don't go negative.
+ tempLen -= propSize;
+
+ }
+
+ // Reserialize the remaining standard XMP.
+
+ stdXMP.SerializeToBuffer(&tempStr, keepItSmall, 1, "", "", 0);
+
+ }
+
+ }
+
+ if (tempStr.size() > kStdXMPLimit) {
+ // Still doesn't fit, throw an exception and let the client decide what to do.
+ // ! This should never happen with the policy of moving any and all top level properties.
+ XMP_Throw("Can't reduce XMP enough for JPEG file", kXMPErr_TooLargeForJPEG);
+ }
+
+ // Set the static output strings.
+
+ if (!extXMP.mDOM->ChildCount()) {
+
+ // Just have the standard XMP.
+ *stdStr = tempStr;
+
+ }
+ else {
+
+ // Have extended XMP. Serialize it, compute the digest, reset xmpNote:HasExtendedXMP, and
+ // reserialize the standard XMP.
+
+ extXMP.SerializeToBuffer(&tempStr, (keepItSmall | kXMP_OmitPacketWrapper), 0, "", "", 0);
+ *extStr = tempStr;
+
+ MD5_CTX context;
+ XMP_Uns8 digest[16];
+ MD5Init(&context);
+ MD5Update(&context, (XMP_Uns8*)tempStr.c_str(), (XMP_Uns32)tempStr.size());
+ MD5Final(digest, &context);
+
+ digestStr->reserve(32);
+ for (size_t i = 0; i < 16; ++i) {
+ XMP_Uns8 byte = digest[i];
+ digestStr->push_back(kHexDigits[byte >> 4]);
+ digestStr->push_back(kHexDigits[byte & 0xF]);
+ }
+
+ stdXMP.SetProperty(kXMP_NS_XMP_Note, "HasExtendedXMP", digestStr->c_str(), 0);
+ stdXMP.SerializeToBuffer(&tempStr, keepItSmall, 1, "", "", 0);
+ *stdStr = tempStr;
+
+ }
+
+ // Adjust the standard XMP padding to be up to 2KB.
+
+ XMP_Assert((stdStr->size() > kTrailerLen) && (stdStr->size() <= kStdXMPLimit));
+ const char * packetEnd = stdStr->c_str() + stdStr->size() - kTrailerLen;
+ XMP_Assert(XMP_LitMatch(packetEnd, kPacketTrailer));
+
+ size_t extraPadding = kStdXMPLimit - stdStr->size(); // ! Do this before erasing the trailer.
+ if (extraPadding > 2047) extraPadding = 2047;
+ stdStr->erase(stdStr->size() - kTrailerLen);
+ stdStr->append(extraPadding, ' ');
+ stdStr->append(kPacketTrailer);
+
+} // PackageForJPEG
+
+#endif
// -------------------------------------------------------------------------------------------------
// MergeFromJPEG
// -------------
@@ -1694,6 +3274,10 @@ XMPUtils::MergeFromJPEG ( XMPMeta * fullXMP,
} // MergeFromJPEG
+
+
+
+
// -------------------------------------------------------------------------------------------------
// CurrentDateTime
// ---------------
@@ -1978,6 +3562,10 @@ XMPUtils::CompareDateTime ( const XMP_DateTime & _in_left,
// =================================================================================================
+
+
+std::string * XMPUtils::WhiteSpaceStrPtr = NULL;
+
std::string& XMPUtils::Trim( std::string& string )
{
size_t pos = string.find_last_not_of( *WhiteSpaceStrPtr );
@@ -1992,6 +3580,162 @@ std::string& XMPUtils::Trim( std::string& string )
return string;
}
-std::string * XMPUtils::WhiteSpaceStrPtr = NULL;
+#if ENABLE_CPP_DOM_MODEL
+#include "XMPCore/XMPCoreErrorCodes.h"
+
+void XMPUtils::MapXMPErrorToIError( XMP_Int32 xmpErrorCode, IError::eErrorDomain & domain, IError::eErrorCode & code ) {
+
+ switch ( xmpErrorCode ) {
+ case kXMPErr_Unknown:
+ case kXMPErr_TBD:
+ code = kGECUnknownFailure;
+ domain = IError_base::kEDGeneral;
+ break;
+
+ case kXMPErr_Unavailable:
+ case kXMPErr_Unimplemented:
+ code = kGECNotImplemented;
+ domain = IError_base::kEDGeneral;
+ break;
+
+ case kXMPErr_BadObject:
+ case kXMPErr_BadParam:
+ case kXMPErr_BadValue:
+ code = kGECParametersNotAsExpected;
+ domain = IError_base::kEDGeneral;
+ break;
+
+ case kXMPErr_AssertFailure:
+ case kXMPErr_EnforceFailure:
+ code = kGECAssertionFailure;
+ domain = IError_base::kEDGeneral;
+ break;
+
+ case kXMPErr_InternalFailure:
+ code = kGECInternalFailure;
+ domain = IError_base::kEDGeneral;
+ break;
+
+ case kXMPErr_Deprecated:
+ code = kGECDeprecatedFunctionCall;
+ domain = IError_base::kEDGeneral;
+ break;
+
+ case kXMPErr_ExternalFailure:
+ code = kGECExternalFailure;
+ domain = IError_base::kEDGeneral;
+ break;
+
+ case kXMPErr_UserAbort:
+ case kXMPErr_ProgressAbort:
+ code = kGECUserAbort;
+ domain = IError_base::kEDGeneral;
+ break;
+
+ case kXMPErr_StdException:
+ code = kGECStandardException;
+ domain = IError_base::kEDGeneral;
+ break;
+
+ case kXMPErr_UnknownException:
+ code = kGECUnknownExceptionCaught;
+ domain = IError_base::kEDGeneral;
+ break;
+
+ case kXMPErr_NoMemory:
+ code = kMMECAllocationFailure;
+ domain = IError_base::kEDMemoryManagement;
+ break;
+
+ case kXMPErr_BadSchema:
+ code = kDMECBadSchema;
+ domain = IError_base::kEDDataModel;
+ break;
+
+ case kXMPErr_BadXPath:
+ code = kDMECBadXPath;
+ domain = IError_base::kEDDataModel;
+ break;
+
+ case kXMPErr_BadOptions:
+ code = kDMECBadOptions;
+ domain = IError_base::kEDDataModel;
+ break;
+
+ case kXMPErr_BadIndex:
+ code = kGECIndexOutOfBounds;
+ domain = IError_base::kEDGeneral;
+ break;
+
+ case kXMPErr_BadIterPosition:
+ code = kDMECBadIterPosition;
+ domain = IError_base::kEDDataModel;
+ break;
+
+ case kXMPErr_BadParse:
+ code = kPECBadXMP;
+ domain = IError_base::kEDParser;
+ break;
+
+ case kXMPErr_BadSerialize:
+ code = kSECSizeExceed;
+ domain = IError_base::kEDSerializer;
+ break;
+
+ case kXMPErr_BadFileFormat:
+ case kXMPErr_NoFileHandler:
+ case kXMPErr_TooLargeForJPEG:
+ case kXMPErr_NoFile:
+ case kXMPErr_FilePermission:
+ case kXMPErr_DiskSpace:
+ case kXMPErr_ReadError:
+ case kXMPErr_WriteError:
+ case kXMPErr_BadBlockFormat:
+ case kXMPErr_FilePathNotAFile:
+ case kXMPErr_RejectedFileExtension:
+ code = kGECNotImplemented;
+ domain = IError_base::kEDGeneral;
+ break;
+
+ case kXMPErr_BadXML:
+ code = kPECBadXML;
+ domain = IError_base::kEDParser;
+ break;
+
+ case kXMPErr_BadRDF:
+ code = kPECBadRDF;
+ domain = IError_base::kEDParser;
+ break;
+
+ case kXMPErr_BadXMP:
+ code = kPECBadXMP;
+ domain = IError_base::kEDParser;
+ break;
+
+ case kXMPErr_EmptyIterator:
+ code = kDMECEmptyIterator;
+ domain = IError_base::kEDDataModel;
+ break;
+
+ case kXMPErr_BadUnicode:
+ code = kDMECBadUnicode;
+ domain = IError_base::kEDDataModel;
+ break;
+
+ case kXMPErr_BadTIFF:
+ case kXMPErr_BadJPEG:
+ case kXMPErr_BadPSD:
+ case kXMPErr_BadPSIR:
+ case kXMPErr_BadIPTC:
+ case kXMPErr_BadMPEG:
+ default:
+ code = kGECNotImplemented;
+ domain = IError_base::kEDGeneral;
+ break;
+
+ }
+}
+
+#endif
// =================================================================================================
diff --git a/XMPCore/source/XMPUtils.hpp b/XMPCore/source/XMPUtils.hpp
index f9cfce1..a669e7f 100644
--- a/XMPCore/source/XMPUtils.hpp
+++ b/XMPCore/source/XMPUtils.hpp
@@ -15,175 +15,234 @@
#include "XMPCore/source/XMPMeta.hpp"
#include "XMPCore/source/XMPCore_Impl.hpp"
#include "public/include/client-glue/WXMPUtils.hpp"
+#include "XMPCore/XMPCoreDefines.h"
+
+#if ENABLE_CPP_DOM_MODEL
+#include "XMPCommon/Interfaces/IError.h"
+#include "XMPCore/XMPCoreFwdDeclarations.h"
+#include "XMPCore/source/XMPMeta2.hpp"
+#endif
+
+#include "XMPCore/source/XMPCore_Impl.hpp"
+#include "source/XMLParserAdapter.hpp"
+#include "XMPCore/source/XMPMeta.hpp"
+#include "third-party/zuid/interfaces/MD5.h"
+
+
+
+
// -------------------------------------------------------------------------------------------------
class XMPUtils {
public:
-
+
static bool
- Initialize(); // ! For internal use only!
-
+ Initialize(); // ! For internal use only!
+
static void
- Terminate() RELEASE_NO_THROW; // ! For internal use only!
+ Terminate() RELEASE_NO_THROW; // ! For internal use only!
+
+ // ---------------------------------------------------------------------------------------------
+
+#if ENABLE_CPP_DOM_MODEL
+ static void SetNode(const AdobeXMPCore::spINode & node, XMP_StringPtr value, XMP_OptionBits options);
+ static XMP_OptionBits ConvertNewArrayFormToOldArrayForm(const AdobeXMPCore::spcIArrayNode & arrayNode);
+ static AdobeXMPCore::spINode CreateArrayChildNode(const AdobeXMPCore::spIArrayNode & arrayNode, XMP_OptionBits options);
+ static void DoSetArrayItem(const AdobeXMPCore::spIArrayNode & arrayNode, XMP_Index itemIndex, XMP_StringPtr itemValue, XMP_OptionBits options);
+ static void SetImplicitNodeInformation(bool & firstImplicitNodeFound, AdobeXMPCore::spINode & implicitNodeRoot, AdobeXMPCore::spINode & destNode,
+ XMP_Index & implicitNodeIndex, XMP_Index index = 0);
+ static void GetNameSpaceAndNameFromStepValue(const XMP_VarString & stepStr, const AdobeXMPCore::spcINameSpacePrefixMap & defaultMap,
+ XMP_VarString & stepNameSpace, XMP_VarString & stepName);
+ static bool FindNode(const AdobeXMPCore::spIMetadata & mDOM, XMP_ExpandedXPath & expPath, bool createNodes, XMP_OptionBits leafOptions,
+ AdobeXMPCore::spINode & retNode, XMP_Index * nodeIndex = 0, bool ignoreLastStep = 0);
+ static bool FindCnstNode(const AdobeXMPCore::spIMetadata & mDOM, XMP_ExpandedXPath & expPath, AdobeXMPCore::spINode & destNode, XMP_OptionBits * options = 0,
+ XMP_Index * arrayIndex = 0);
+ static AdobeXMPCore::spINode FindChildNode(const AdobeXMPCore::spINode & parent, XMP_StringPtr childName, XMP_StringPtr childNameSpace, bool createNodes, size_t * pos /* = 0 */);
+ static size_t GetNodeChildCount(const AdobeXMPCore::spcINode & node);
+ static AdobeXMPCore::spcINodeIterator GetNodeChildIterator(const AdobeXMPCore::spcINode & node);
+ static std::vector< AdobeXMPCore::spcINode > GetChildVector(const AdobeXMPCore::spINode & node);
+ static XMP_OptionBits GetIXMPOptions(const AdobeXMPCore::spcINode & node);
+ static bool HandleConstAliasStep(const AdobeXMPCore::spIMetadata & mDOM, AdobeXMPCore::spINode & destNode, const XMP_ExpandedXPath & expandedXPath,
+ XMP_Index * nodeIndex = 0);
+ static bool HandleAliasStep(const AdobeXMPCore::spIMetadata & mDOM, XMP_ExpandedXPath & expandedXPath, bool createNodes, XMP_OptionBits leafOptions,
+ AdobeXMPCore::spINode & destNode, XMP_Index * nodeIndex, bool ignoreLastStep);
+ static AdobeXMPCommon::spcIUTF8String GetNodeValue(const AdobeXMPCore::spINode & node);
+ static XMP_Index LookupFieldSelector_v2(const AdobeXMPCore::spIArrayNode & arrayNode, XMP_VarString fieldName, XMP_VarString fieldValue);
+ static AdobeXMPCore::spINode CreateTerminalNode(const char* nameSpace, const char * name, XMP_OptionBits options);
+
+#endif
- // ---------------------------------------------------------------------------------------------
static void
- ComposeArrayItemPath ( XMP_StringPtr schemaNS,
- XMP_StringPtr arrayName,
- XMP_Index itemIndex,
- XMP_VarString * fullPath );
+ ComposeArrayItemPath(XMP_StringPtr schemaNS,
+ XMP_StringPtr arrayName,
+ XMP_Index itemIndex,
+ XMP_VarString * fullPath);
static void
- ComposeStructFieldPath ( XMP_StringPtr schemaNS,
- XMP_StringPtr structName,
- XMP_StringPtr fieldNS,
- XMP_StringPtr fieldName,
- XMP_VarString * fullPath );
+ ComposeStructFieldPath(XMP_StringPtr schemaNS,
+ XMP_StringPtr structName,
+ XMP_StringPtr fieldNS,
+ XMP_StringPtr fieldName,
+ XMP_VarString * fullPath);
static void
- ComposeQualifierPath ( XMP_StringPtr schemaNS,
- XMP_StringPtr propName,
- XMP_StringPtr qualNS,
- XMP_StringPtr qualName,
- XMP_VarString * fullPath );
+ ComposeQualifierPath(XMP_StringPtr schemaNS,
+ XMP_StringPtr propName,
+ XMP_StringPtr qualNS,
+ XMP_StringPtr qualName,
+ XMP_VarString * fullPath);
static void
- ComposeLangSelector ( XMP_StringPtr schemaNS,
- XMP_StringPtr arrayName,
- XMP_StringPtr langName,
- XMP_VarString * fullPath );
+ ComposeLangSelector(XMP_StringPtr schemaNS,
+ XMP_StringPtr arrayName,
+ XMP_StringPtr langName,
+ XMP_VarString * fullPath);
static void
- ComposeFieldSelector ( XMP_StringPtr schemaNS,
- XMP_StringPtr arrayName,
- XMP_StringPtr fieldNS,
- XMP_StringPtr fieldName,
- XMP_StringPtr fieldValue,
- XMP_VarString * fullPath );
+ ComposeFieldSelector(XMP_StringPtr schemaNS,
+ XMP_StringPtr arrayName,
+ XMP_StringPtr fieldNS,
+ XMP_StringPtr fieldName,
+ XMP_StringPtr fieldValue,
+ XMP_VarString * fullPath);
// ---------------------------------------------------------------------------------------------
static void
- ConvertFromBool ( bool binValue,
- XMP_VarString * strValue );
+ ConvertFromBool(bool binValue,
+ XMP_VarString * strValue);
static void
- ConvertFromInt ( XMP_Int32 binValue,
- XMP_StringPtr format,
- XMP_VarString * strValue );
+ ConvertFromInt(XMP_Int32 binValue,
+ XMP_StringPtr format,
+ XMP_VarString * strValue);
static void
- ConvertFromInt64 ( XMP_Int64 binValue,
- XMP_StringPtr format,
- XMP_VarString * strValue );
+ ConvertFromInt64(XMP_Int64 binValue,
+ XMP_StringPtr format,
+ XMP_VarString * strValue);
static void
- ConvertFromFloat ( double binValue,
- XMP_StringPtr format,
- XMP_VarString * strValue );
+ ConvertFromFloat(double binValue,
+ XMP_StringPtr format,
+ XMP_VarString * strValue);
static void
- ConvertFromDate ( const XMP_DateTime & binValue,
- XMP_VarString * strValue );
+ ConvertFromDate(const XMP_DateTime & binValue,
+ XMP_VarString * strValue);
// ---------------------------------------------------------------------------------------------
static bool
- ConvertToBool ( XMP_StringPtr strValue );
+ ConvertToBool(XMP_StringPtr strValue);
static XMP_Int32
- ConvertToInt ( XMP_StringPtr strValue );
+ ConvertToInt(XMP_StringPtr strValue);
static XMP_Int64
- ConvertToInt64 ( XMP_StringPtr strValue );
+ ConvertToInt64(XMP_StringPtr strValue);
static double
- ConvertToFloat ( XMP_StringPtr strValue );
+ ConvertToFloat(XMP_StringPtr strValue);
static void
- ConvertToDate ( XMP_StringPtr strValue,
- XMP_DateTime * binValue );
+ ConvertToDate(XMP_StringPtr strValue,
+ XMP_DateTime * binValue);
// ---------------------------------------------------------------------------------------------
static void
- CurrentDateTime ( XMP_DateTime * time );
+ CurrentDateTime(XMP_DateTime * time);
static void
- SetTimeZone ( XMP_DateTime * time );
+ SetTimeZone(XMP_DateTime * time);
static void
- ConvertToUTCTime ( XMP_DateTime * time );
+ ConvertToUTCTime(XMP_DateTime * time);
static void
- ConvertToLocalTime ( XMP_DateTime * time );
+ ConvertToLocalTime(XMP_DateTime * time);
static int
- CompareDateTime ( const XMP_DateTime & left,
- const XMP_DateTime & right );
+ CompareDateTime(const XMP_DateTime & left,
+ const XMP_DateTime & right);
// ---------------------------------------------------------------------------------------------
static void
- EncodeToBase64 ( XMP_StringPtr rawStr,
- XMP_StringLen rawLen,
- XMP_VarString * encodedStr );
+ EncodeToBase64(XMP_StringPtr rawStr,
+ XMP_StringLen rawLen,
+ XMP_VarString * encodedStr);
static void
- DecodeFromBase64 ( XMP_StringPtr encodedStr,
- XMP_StringLen encodedLen,
- XMP_VarString * rawStr );
+ DecodeFromBase64(XMP_StringPtr encodedStr,
+ XMP_StringLen encodedLen,
+ XMP_VarString * rawStr);
// ---------------------------------------------------------------------------------------------
static void
- PackageForJPEG ( const XMPMeta & xmpObj,
- XMP_VarString * stdStr,
- XMP_VarString * extStr,
- XMP_VarString * digestStr );
+ PackageForJPEG(const XMPMeta & xmpObj,
+ XMP_VarString * stdStr,
+ XMP_VarString * extStr,
+ XMP_VarString * digestStr);
+
+#if ENABLE_CPP_DOM_MODEL
static void
- MergeFromJPEG ( XMPMeta * fullXMP,
- const XMPMeta & extendedXMP );
+ PackageForJPEG(const XMPMeta2 & xmpObj,
+ XMP_VarString * stdStr,
+ XMP_VarString * extStr,
+ XMP_VarString * digestStr);
+#endif
+ static void
+ MergeFromJPEG(XMPMeta * fullXMP,
+ const XMPMeta & extendedXMP);
+
+
+
// ---------------------------------------------------------------------------------------------
static void
- CatenateArrayItems ( const XMPMeta & xmpObj,
- XMP_StringPtr schemaNS,
- XMP_StringPtr arrayName,
- XMP_StringPtr separator,
- XMP_StringPtr quotes,
- XMP_OptionBits options,
- XMP_VarString * catedStr );
+ CatenateArrayItems(const XMPMeta & xmpObj,
+ XMP_StringPtr schemaNS,
+ XMP_StringPtr arrayName,
+ XMP_StringPtr separator,
+ XMP_StringPtr quotes,
+ XMP_OptionBits options,
+ XMP_VarString * catedStr);
static void
- SeparateArrayItems ( XMPMeta * xmpObj,
- XMP_StringPtr schemaNS,
- XMP_StringPtr arrayName,
- XMP_OptionBits options,
- XMP_StringPtr catedStr );
+ SeparateArrayItems(XMPMeta * xmpObj,
+ XMP_StringPtr schemaNS,
+ XMP_StringPtr arrayName,
+ XMP_OptionBits options,
+ XMP_StringPtr catedStr);
static void
- ApplyTemplate ( XMPMeta * workingXMP,
- const XMPMeta & templateXMP,
- XMP_OptionBits actions );
+ ApplyTemplate(XMPMeta * workingXMP,
+ const XMPMeta & templateXMP,
+ XMP_OptionBits actions);
+
static void
- RemoveProperties ( XMPMeta * xmpObj,
- XMP_StringPtr schemaNS,
- XMP_StringPtr propName,
- XMP_OptionBits options );
+ RemoveProperties(XMPMeta * xmpObj,
+ XMP_StringPtr schemaNS,
+ XMP_StringPtr propName,
+ XMP_OptionBits options);
+
static void
- DuplicateSubtree ( const XMPMeta & source,
- XMPMeta * dest,
- XMP_StringPtr sourceNS,
- XMP_StringPtr sourceRoot,
- XMP_StringPtr destNS,
- XMP_StringPtr destRoot,
- XMP_OptionBits options );
+ DuplicateSubtree(const XMPMeta & source,
+ XMPMeta * dest,
+ XMP_StringPtr sourceNS,
+ XMP_StringPtr sourceRoot,
+ XMP_StringPtr destNS,
+ XMP_StringPtr destRoot,
+ XMP_OptionBits options);
+
// ---------------------------------------------------------------------------------------------
@@ -191,6 +250,56 @@ public:
static std::string * WhiteSpaceStrPtr;
+#if ENABLE_CPP_DOM_MODEL
+ static void MapXMPErrorToIError(XMP_Int32 xmpErrorCodes, AdobeXMPCommon::IError::eErrorDomain & domain, AdobeXMPCommon::IError::eErrorCode & code);
+ static bool SerializeExtensionAsJSON(const AdobeXMPCore::spINode & extensionNode, std::string & key, std::string & value);
+ static bool IsExtensionValidForBackwardCompatibility(const AdobeXMPCore::spINode & extensionNode);
+ static bool CreateExtensionNode(const AdobeXMPCore::spIStructureNode & xmpNode, const XMP_VarString & serializedJSON, const XMP_VarString & doubleQuotesStr);
+
+
+ static void
+ CatenateArrayItems_v2(const XMPMeta & xmpObj,
+ XMP_StringPtr schemaNS,
+ XMP_StringPtr arrayName,
+ XMP_StringPtr separator,
+ XMP_StringPtr quotes,
+ XMP_OptionBits options,
+ XMP_VarString * catedStr);
+ static void
+ SeparateArrayItems_v2(XMPMeta * xmpObj,
+ XMP_StringPtr schemaNS,
+ XMP_StringPtr arrayName,
+ XMP_OptionBits options,
+ XMP_StringPtr catedStr);
+
+ static void
+ RemoveProperties_v2(XMPMeta * xmpMetaPtr,
+ XMP_StringPtr schemaNS,
+ XMP_StringPtr propName,
+ XMP_OptionBits options);
+
+ static void
+ ApplyTemplate_v2(XMPMeta * workingXMP,
+ const XMPMeta & templateXMP,
+ XMP_OptionBits actions);
+
+ static void
+ DuplicateSubtree_v2(const XMPMeta & source,
+ XMPMeta * dest,
+ XMP_StringPtr sourceNS,
+ XMP_StringPtr sourceRoot,
+ XMP_StringPtr destNS,
+ XMP_StringPtr destRoot,
+ XMP_OptionBits options);
+
+#endif
+
+ static bool CreateExtensionNode(XMP_Node ** xmpNode, const XMP_VarString & serializedJSON, const XMP_VarString & doubleQuotesString);
+
+ static bool GetSerializedJSONForExtensionNode(const XMP_Node * xmpNode, XMP_VarString &extensionAsKey, XMP_VarString & serializedJSON);
+
+ static bool IsSuitableForJSONSerialization(const XMP_Node * xmpNode);
+
}; // XMPUtils
// =================================================================================================
diff --git a/XMPCore/source/XMPUtils2.cpp b/XMPCore/source/XMPUtils2.cpp
new file mode 100644
index 0000000..9d88cd3
--- /dev/null
+++ b/XMPCore/source/XMPUtils2.cpp
@@ -0,0 +1,921 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "public/include/XMP_Environment.h" // ! This must be the first include!
+#include "XMPCore/source/XMPCore_Impl.hpp"
+#include "XMPCore/XMPCoreDefines.h"
+#if ENABLE_CPP_DOM_MODEL
+
+#include "XMPCore/source/XMPUtils.hpp"
+#include "source/UnicodeInlines.incl_cpp"
+#include "source/UnicodeConversions.hpp"
+#include "source/ExpatAdapter.hpp"
+#include "third-party/zuid/interfaces/MD5.h"
+#include "XMPCore/Interfaces/IMetadata_I.h"
+#include "XMPCore/Interfaces/IArrayNode_I.h"
+#include "XMPCore/Interfaces/ISimpleNode_I.h"
+#include "XMPCore/Interfaces/INodeIterator.h"
+#include "XMPCore/Interfaces/IPathSegment_I.h"
+#include "XMPCore/Interfaces/IPath_I.h"
+#include "XMPCore/Interfaces/INameSpacePrefixMap_I.h"
+#include "XMPCore/Interfaces/IDOMImplementationRegistry_I.h"
+
+#include "XMPCommon/Interfaces/IUTF8String_I.h"
+
+const XMP_VarString xmlNameSpace = "http://www.w3.org/XML/1998/namespace";
+extern bool IsInternalProperty(const XMP_VarString & schema, const XMP_VarString & prop);
+extern const char * sListProps[];
+extern const char * sDateProps[];
+
+using namespace AdobeXMPCommon;
+using namespace AdobeXMPCore;
+
+// =================================================================================================
+// CloneSubtree
+// ============
+
+void
+CloneIXMPSubtree(const spcINode & origRoot, const spINode & cloneParent, bool skipEmpty /* = false */)
+{
+ spINode clonedRoot = origRoot->Clone(skipEmpty, true);
+ if (!clonedRoot) return;
+ if (cloneParent->GetNodeType() == INode::kNTArray) {
+ cloneParent->ConvertToArrayNode()->AppendNode( clonedRoot );
+ } else if (cloneParent->GetNodeType() == INode::kNTStructure) {
+ cloneParent->ConvertToStructureNode()->InsertNode( cloneParent );
+ }
+
+} // CloneSubtree
+
+// =================================================================================================
+// LookupLangItem
+// ==============
+//
+// ! Assumes that the language value is already normalized.
+
+XMP_Index
+LookupIXMPLangItem(const spcIArrayNode & arrayNode, XMP_VarString & lang)
+{
+ XMP_OptionBits arrayOptions = XMPUtils::GetIXMPOptions(arrayNode);
+ if (!(arrayOptions & kXMP_PropValueIsArray)) { // *** Check for alt-text?
+ XMP_Throw("Language item must be used on array", kXMPErr_BadXPath);
+ }
+
+ XMP_Index index = 1;
+ XMP_Index itemLim = arrayNode->ChildCount();
+
+ for (; index <= itemLim; ++index) {
+ spcINode currItem = arrayNode->GetNodeAtIndex(index);
+
+ if (!currItem->HasQualifiers()) continue;
+ spcINode langQual = currItem->GetQualifier(xmlNameSpace.c_str(), xmlNameSpace.size(), "lang", AdobeXMPCommon::npos );
+ if (!langQual) continue;
+ if (langQual->GetNodeType() != INode::kNTSimple) continue;
+ XMP_VarString langQualValue = langQual->ConvertToSimpleNode()->GetValue()->c_str();
+ if (langQualValue == lang) break;
+ }
+
+ if (index == itemLim + 1) index = -1;
+ return index;
+
+} // LookupLangItem
+// =================================================================================================
+
+
+// CompareSubtrees
+// ===============
+//
+// Compare 2 subtrees for semantic equality. The comparison includes value, qualifiers, and form.
+// Schemas, top level properties, struct fields, and qualifiers are allowed to have differing order,
+// the appropriate right node is found from the left node's name. Alt-text arrays are allowed to be
+// in differing language order, other arrays are compared in order.
+
+// *** Might someday consider sorting unordered arrays.
+// *** Should expose this through XMPUtils.
+
+
+bool
+CompareSubtrees(spcINode leftNode, spcINode rightNode)
+{
+ // Don't compare the names here, we want to allow the outermost roots to have different names.
+ XMP_OptionBits leftNodeOptions = XMPUtils::GetIXMPOptions(leftNode), rightNodeOptions = XMPUtils::GetIXMPOptions(rightNode);
+ if (leftNode->GetNodeType() != rightNode->GetNodeType()) return false;
+ if (leftNode->GetNodeType() == INode::kNTSimple) {
+ if ( strcmp( leftNode->ConvertToSimpleNode()->GetValue()->c_str(), rightNode->ConvertToSimpleNode()->GetValue()->c_str() ) ) {
+ return false;
+ }
+ }
+ if (XMPUtils::GetNodeChildCount(leftNode) != XMPUtils::GetNodeChildCount(rightNode)) return false;
+ if (leftNode->HasQualifiers() != rightNode->HasQualifiers() ) return false;
+ if (leftNode->HasQualifiers()) {
+ for (auto leftQualIter = leftNode->QualifiersIterator(); leftQualIter; leftQualIter = leftQualIter->Next()) {
+ spcINode leftQualNode = leftQualIter->GetNode();
+ spcINode righQualNode = rightNode->GetINode_I()->GetQualifier( leftQualNode->GetNameSpace(), leftQualNode->GetName() );
+ if (!righQualNode || !CompareSubtrees(leftQualNode, righQualNode)){
+ return false;
+ }
+
+ }
+ }
+
+ if (leftNode->GetNodeType() == INode::kNTStructure ) {
+ for ( auto leftChildIter = XMPUtils::GetNodeChildIterator(leftNode); leftChildIter; leftChildIter = leftChildIter->Next()) {
+ spcINode leftChildNode = leftChildIter->GetNode();
+ spcINode rightChildNode = XMPUtils::FindChildNode( AdobeXMPCore_Int::const_pointer_cast<INode>(rightNode), leftChildNode->GetName()->c_str(), leftChildNode->GetNameSpace()->c_str(), false, 0);
+ if (!rightChildNode || !CompareSubtrees(leftChildNode, rightChildNode)) {
+ return false;
+ }
+ }
+ }
+
+
+ else if (leftNodeOptions & kXMP_PropArrayIsAltText) {
+ // The parent node is an alt-text array.
+ auto leftNodeAsArray = leftNode->ConvertToArrayNode();
+ auto rightNodeAsArray = rightNode->ConvertToArrayNode();
+
+ size_t leftNodeChildCount = XMPUtils::GetNodeChildCount(leftNode);
+ for (size_t idx = 1; idx <= leftNodeChildCount; ++idx) {
+ spcINode leftChild = leftNodeAsArray->GetNodeAtIndex(idx);
+ spcINode leftChildFirstQualifier = leftChild->GetQualifier(xmlNameSpace.c_str(), xmlNameSpace.size(), "lang", AdobeXMPCommon::npos );
+ if (leftChildFirstQualifier) {
+ XMP_VarString leftChildFirstQualifierValue = leftChildFirstQualifier->ConvertToSimpleNode()->GetValue()->c_str();
+ size_t rightIdx = LookupIXMPLangItem( rightNodeAsArray, leftChildFirstQualifierValue );
+ if (rightIdx == -1) {
+ return false;
+ }
+ spcINode rightChild = rightNodeAsArray->GetNodeAtIndex( rightIdx );
+ if (!CompareSubtrees(leftChild, rightChild)) {
+ return false;
+ }
+ }
+
+ }
+
+
+ }
+ else {
+
+ // The parent must be simple or some other (not alt-text) kind of array.
+ XMP_Assert((!(leftNodeOptions & kXMP_PropCompositeMask)) || (leftNodeOptions & kXMP_PropValueIsArray));
+ auto leftNodeAsArray = leftNode->ConvertToArrayNode();
+ auto rightNodeAsArray = rightNode->ConvertToArrayNode();
+
+ size_t leftNodeChildCount = XMPUtils::GetNodeChildCount(leftNode);
+ for (size_t idx = 1; idx <= leftNodeChildCount; ++idx) {
+ spcINode leftChild = leftNodeAsArray->GetNodeAtIndex(idx);
+ spcINode rightChild = rightNodeAsArray->GetNodeAtIndex(idx);
+ if (!CompareSubtrees(leftChild, rightChild)) {
+ return false;
+ }
+ }
+
+ }
+ return true;
+}// CompareSubtrees
+
+// -------------------------------------------------------------------------------------------------
+// MergeArrayItems
+// ---------------
+
+static void
+MergeArrayItems(spINode newArray, spINode mergedArray)
+{
+ XMP_Assert(newArray->GetNodeType() == INode::kNTArray);
+ XMP_Assert(mergedArray->GetNodeType() == INode::kNTArray);
+
+ auto newArrayAsArrayNode = newArray->ConvertToArrayNode();
+ auto mergedArrayAsArrayNode = mergedArray->ConvertToArrayNode();
+
+ for (size_t newNum = 1, newLim = XMPUtils::GetNodeChildCount(newArray); newNum <= newLim; ++newNum) {
+
+ spcINode newItem = newArrayAsArrayNode->GetNodeAtIndex(newNum);
+ size_t mergedNum, mergedLim;
+ for (mergedNum = 1, mergedLim = XMPUtils::GetNodeChildCount(mergedArray) + 1; mergedNum < mergedLim; ++mergedNum) {
+ spcINode mergedItem = mergedArrayAsArrayNode->GetNodeAtIndex(mergedNum);
+ if (CompareSubtrees(newItem, mergedItem)) break;
+ }
+
+ if (mergedNum == mergedLim) CloneIXMPSubtree(newItem, mergedArray, false);
+
+ }
+
+} // MergeArrayItems
+static bool
+ItemValuesMatch(spcINode leftNode, spcINode rightNode)
+{
+ if (!leftNode && !rightNode) return true;
+ if (!leftNode || !rightNode) return false;
+ const XMP_OptionBits leftNodeOptions = XMPUtils::GetIXMPOptions(leftNode);
+ const XMP_OptionBits rightNodeOptions = XMPUtils::GetIXMPOptions(rightNode);
+ const XMP_OptionBits leftForm = leftNodeOptions & kXMP_PropCompositeMask;
+ const XMP_OptionBits rightForm = rightNodeOptions & kXMP_PropCompositeMask;
+
+ if (leftForm != rightForm) return false;
+
+ if (leftForm == 0) {
+
+ // Simple nodes, check the values and xml:lang qualifiers.
+ XMP_VarString leftValue = leftNode->ConvertToSimpleNode()->GetValue()->c_str();
+ XMP_VarString rightValue = rightNode->ConvertToSimpleNode()->GetValue()->c_str();
+ if (leftValue != rightValue) return false;
+ if ((leftNodeOptions & kXMP_PropHasLang) != (rightNodeOptions & kXMP_PropHasLang)) return false;
+ if (leftNodeOptions & kXMP_PropHasLang) {
+ spcINode leftDefaultQualifier = leftNode->GetQualifier( xmlNameSpace.c_str(), xmlNameSpace.size(), "lang", AdobeXMPCommon::npos );
+ spcINode rightDefaultQualifier = rightNode->GetQualifier( xmlNameSpace.c_str(), xmlNameSpace.size(), "lang", AdobeXMPCommon::npos );
+ if (!leftDefaultQualifier && !rightDefaultQualifier) return true;
+ if (!leftDefaultQualifier || !rightDefaultQualifier) return false;
+
+ XMP_VarString leftFirstQualValue = leftDefaultQualifier->ConvertToSimpleNode()->GetValue()->c_str();
+ XMP_VarString rightFirstQualValue = rightDefaultQualifier->ConvertToSimpleNode()->GetValue()->c_str();
+ if (leftFirstQualValue != rightFirstQualValue) {
+ return false;
+ }
+ }
+
+ }
+ else if (leftForm == kXMP_PropValueIsStruct) {
+
+ // Struct nodes, see if all fields match, ignoring order.
+ size_t leftNodeChildCount = XMPUtils::GetNodeChildCount(leftNode);
+ size_t rightNodeChildCount = XMPUtils::GetNodeChildCount(rightNode);
+ if (leftNodeChildCount != rightNodeChildCount) return false;
+
+ auto leftNodeChildIter = XMPUtils::GetNodeChildIterator(leftNode);
+ auto rightNodeChildIter = XMPUtils::GetNodeChildIterator(rightNode);
+ for (; leftNodeChildIter; leftNodeChildIter = leftNodeChildIter->Next(), rightNodeChildIter = rightNodeChildIter->Next()) {
+ spcINode leftField = leftNodeChildIter->GetNode();
+ spINode rightField = XMPUtils::FindChildNode( AdobeXMPCore_Int::const_pointer_cast<INode>(rightNode),
+ leftField->GetNameSpace()->c_str(), leftField->GetName()->c_str(), kXMP_ExistingOnly, 0);
+ if (!rightField || !ItemValuesMatch(leftField, rightField)) {
+ return false;
+ }
+
+ }
+
+ }
+ else {
+
+ // Array nodes, see if the "leftNode" values are present in the "rightNode", ignoring order, duplicates,
+ // and extra values in the rightNode-> The rightNode is the destination for AppendProperties.
+
+ XMP_Assert(leftForm & kXMP_PropValueIsArray);
+ size_t leftNodeChildCount = XMPUtils::GetNodeChildCount(leftNode);
+ size_t rightNodeChildCount = XMPUtils::GetNodeChildCount(rightNode);
+ auto leftNodeAsArrayNode = leftNode->ConvertToArrayNode();
+ auto rightNodeAsArrayNode = rightNode->ConvertToArrayNode();
+ for (size_t leftNum = 1; leftNum <= leftNodeChildCount; ++leftNum) {
+
+ spcINode leftItem = leftNodeAsArrayNode->GetNodeAtIndex(leftNum);
+ bool leftItemFound = false;
+ for (size_t rightNum = 1; rightNum <= rightNodeChildCount; ++rightNum) {
+
+ spcINode rightItem = rightNodeAsArrayNode->GetNodeAtIndex(rightNum);
+
+ if (ItemValuesMatch(leftItem, rightItem)) {
+ leftItemFound = true;
+ break;
+ }
+ }
+ if (!leftItemFound) return false;
+
+ }
+
+ }
+
+ return true; // All of the checks passed.
+
+} // ItemValuesMatch
+
+
+static void
+AppendSubtree(spcINode sourceNode, spINode &destParent,
+const bool mergeCompound, const bool replaceOld, const bool deleteEmpty)
+{
+
+ XMP_VarString sourceName = sourceNode->GetName()->c_str();
+ XMP_VarString sourceNamespace = sourceNode->GetNameSpace()->c_str();
+
+ XMP_VarString destName = destParent->GetName()->c_str();
+ XMP_VarString destNamespace = destParent->GetNameSpace()->c_str();
+ if (sourceName.find("UserComment") != XMP_VarString::npos) {
+ int y = 1;
+ y++;
+ }
+ // Need clone non empty only
+ // to do lang alt append
+ // to do lang alt
+ size_t destPos = 0;
+ spINode destNode = XMPUtils::FindChildNode(destParent, sourceNode->GetName()->c_str(), sourceNode->GetNameSpace()->c_str(), kXMP_ExistingOnly, &destPos);
+
+ bool valueIsEmpty = false;
+ XMP_OptionBits sourceNodeOptions = XMPUtils::GetIXMPOptions(sourceNode);
+
+ if (sourceNode->GetNodeType() == INode::kNTSimple) {
+ valueIsEmpty = sourceNode->ConvertToSimpleNode()->GetValue()->empty();
+ }
+ else {
+
+ valueIsEmpty = XMPUtils::GetNodeChildCount(sourceNode) == 0;
+ }
+
+
+ if (valueIsEmpty) {
+ if (sourceNode && deleteEmpty) {
+ destParent->ConvertToStructureNode()->GetIStructureNode_I()->RemoveNode( sourceNode->GetNameSpace(), sourceNode->GetName() );
+ }
+ return; // ! Done, empty values are either ignored or cause deletions.
+ }
+
+ if (!destNode) {
+ // The one easy case, the destination does not exist.
+ destNode = sourceNode->Clone(true, true); // TO DO need to skip empty nodes
+ if (!destNode) {
+ if (destParent->GetNodeType() == INode::kNTStructure) {
+ destParent->ConvertToStructureNode()->GetIStructureNode_I()->RemoveNode( sourceNode->GetNameSpace(), sourceNode->GetName() );
+ }
+ else if (destParent->GetNodeType() == INode::kNTArray) {
+ destParent->ConvertToArrayNode()->RemoveNodeAtIndex( destPos );
+ }
+ return;
+ }
+ if (destParent->GetNodeType() == INode::kNTStructure) {
+ destParent->ConvertToStructureNode()->InsertNode( destNode );
+ }
+ else if (destParent->GetNodeType() == INode::kNTArray) {
+ destParent->ConvertToArrayNode()->InsertNodeAtIndex( destNode, destPos );
+ }
+ // XMP_Assert ( (!destNode) || (! destNode->value.empty()) || (! destNode->children.empty()) );
+ return;
+ }
+
+ // If we get here we're going to modify an existing property, either replacing or merging.
+
+ XMP_Assert((!valueIsEmpty) && (destNode));
+
+ XMP_OptionBits sourceForm = XMPUtils::GetIXMPOptions(sourceNode) & kXMP_PropCompositeMask;
+ XMP_OptionBits destForm = XMPUtils::GetIXMPOptions(destNode) & kXMP_PropCompositeMask;
+
+ bool replaceThis = replaceOld; // ! Don't modify replaceOld, it gets passed to inner calls.
+ if (mergeCompound && (!XMP_PropIsSimple(sourceForm))) replaceThis = false;
+
+ if (replaceThis) {
+ if (destNode) {
+ destParent->ConvertToStructureNode()->GetIStructureNode_I()->RemoveNode( destNode->GetNameSpace(), destNode->GetName() );
+ }
+ destNode = sourceNode->Clone(true, true);
+ if (!destNode) return;
+ if ( destNode->GetParent() != destParent && destParent->GetNodeType() == INode::kNTStructure )
+ destParent->ConvertToStructureNode()->AppendNode( destNode );
+ else if (destNode->GetParent() != destParent && destParent->GetNodeType() == INode::kNTArray) {
+ destParent->ConvertToArrayNode()->InsertNodeAtIndex( destNode, destPos );
+ }
+ if (!XMP_PropIsSimple(XMPUtils::GetIXMPOptions(destNode)) && !XMPUtils::GetNodeChildCount(destNode)) {
+ // Don't keep an empty array or struct. The source might be implicitly empty due to
+ // all children being empty. In this case CloneOffspring should skip them.
+ if (destParent->GetNodeType() == INode::kNTStructure) {
+ destParent->ConvertToStructureNode()->GetIStructureNode_I()->RemoveNode( destNode->GetNameSpace(), destNode->GetName() );
+ }
+ else if (destParent->GetNodeType() == INode::kNTArray) {
+ destParent->ConvertToArrayNode()->RemoveNodeAtIndex( destPos );
+ }
+ }
+
+ return;
+
+ }
+
+ // From here on are cases for merging arrays or structs.
+
+ if (XMP_PropIsSimple(sourceForm) || (sourceForm != destForm)) return;
+
+ if (sourceForm == kXMP_PropValueIsStruct) {
+
+ auto sourceChildIter = XMPUtils::GetNodeChildIterator(sourceNode);
+ for (; sourceChildIter; sourceChildIter = sourceChildIter->Next()) {
+ spcINode sourceField = sourceChildIter->GetNode();
+ AppendSubtree(sourceField, destNode, mergeCompound, replaceOld, deleteEmpty);
+ if (deleteEmpty && !XMPUtils::GetNodeChildCount(destNode)) {
+ destParent->ConvertToStructureNode()->GetIStructureNode_I()->RemoveNode( destNode->GetNameSpace(), destNode->GetName() );
+ }
+ }
+
+
+ }
+ else if (sourceForm & kXMP_PropArrayIsAltText) {
+
+ XMP_Assert(mergeCompound);
+ spcIArrayNode sourceArrayNode = sourceNode->ConvertToArrayNode();
+ for (size_t sourceNum = 1, sourceLim = XMPUtils::GetNodeChildCount(sourceNode); sourceNum <= sourceLim && destNode; ++sourceNum) {
+
+ spcINode sourceItem = sourceArrayNode->GetNodeAtIndex(sourceNum);
+ spcIUTF8String sourceItemValue = sourceItem->ConvertToSimpleNode()->GetValue();
+ if (!sourceItem->HasQualifiers()) continue;
+ spcINode langQualNode = sourceItem->GetQualifier(xmlNameSpace.c_str(), xmlNameSpace.size(), "lang", AdobeXMPCommon::npos );
+ if (!langQualNode || langQualNode->GetNodeType() != INode::kNTSimple) continue;
+ XMP_VarString langValue = langQualNode->ConvertToSimpleNode()->GetValue()->c_str();
+ size_t destIndex = LookupIXMPLangItem( destNode->ConvertToArrayNode(), langValue );
+
+ if (sourceItemValue->empty()) {
+
+ if (deleteEmpty && (destIndex != -1)) {
+ //delete ( destNode->children[destIndex] );
+ //destNode->children.erase ( destNode->children.begin() + destIndex );
+ destNode->ConvertToArrayNode()->RemoveNodeAtIndex(destIndex);
+ if (!XMPUtils::GetNodeChildCount(destNode)) {
+
+ if (destParent->GetNodeType() == INode::kNTStructure) {
+ destParent->ConvertToStructureNode()->GetIStructureNode_I()->RemoveNode( destNode->GetNameSpace(), destNode->GetName() );
+ }
+ else if (destParent->GetNodeType() == INode::kNTArray) {
+ destParent->ConvertToArrayNode()->RemoveNodeAtIndex( destPos );
+ }
+ }
+ }
+
+ }
+ else {
+
+ if (destIndex != -1) {
+
+ // The source and dest arrays both have this language item.
+
+ if (replaceOld) {
+ auto temp = destNode->ConvertToArrayNode()->GetNodeAtIndex( destIndex );
+ temp->ConvertToSimpleNode()->SetValue(sourceItemValue->c_str(), sourceItemValue->size() );
+ }
+
+ }
+ else {
+
+
+ spcISimpleNode firstQualifier = sourceItem->GetSimpleQualifier( xmlNameSpace.c_str(), xmlNameSpace.size(), "lang", AdobeXMPCommon::npos );
+ if ((!XMP_LitMatch(firstQualifier->GetValue()->c_str(), "x-default")) || !XMPUtils::GetNodeChildCount(destNode)) {
+
+ CloneIXMPSubtree(sourceItem, destNode, true);
+ }
+ else {
+
+ spINode destItem = AdobeXMPCore_Int::ISimpleNode_I::CreateSimpleNode( sourceItem->GetNameSpace(), sourceItem->GetName(), sourceItemValue );
+ destNode->ConvertToArrayNode()->InsertNodeAtIndex(destItem, 1);
+ }
+
+ }
+
+ }
+
+ }
+
+ }
+
+ else if (sourceForm & kXMP_PropValueIsArray) {
+ auto sourceNodeChildIter = XMPUtils::GetNodeChildIterator(sourceNode);
+ for (; sourceNodeChildIter; sourceNodeChildIter = sourceNodeChildIter->Next()) {
+ spcINode sourceItem = sourceNodeChildIter->GetNode();
+
+ spIArrayNode arrayNode = destNode->ConvertToArrayNode();
+ size_t arrayChildCount = arrayNode->ChildCount();
+ size_t foundIndex = arrayChildCount + 1;
+ for (size_t arrayIdx = 1; arrayIdx <= arrayChildCount; arrayIdx++) {
+ spINode destItem = arrayNode->GetNodeAtIndex(arrayIdx);
+ //XMP_VarString destValue = INode_I::AdaptConstNodeTo_I<ISimpleNode, INode::kNTSimple>(destItem)->GetValue_I()->c_str();
+ if (ItemValuesMatch(destItem, sourceItem)) {
+ foundIndex = arrayIdx;
+ break;
+ }
+
+ }
+ if (foundIndex == arrayChildCount + 1) {
+
+ CloneIXMPSubtree(sourceItem, destNode, true);
+
+ }
+
+ }
+
+
+ }
+
+} // AppendSubtree_v2
+
+// -------------------------------------------------------------------------------------------------
+// ApplyTemplate
+// -------------
+
+/* class static */ void
+XMPUtils::ApplyTemplate_v2( XMPMeta * workingXMPBasePtr,
+ const XMPMeta & templateXMPBasePtr,
+ XMP_OptionBits actions)
+{
+ XMPMeta2 * workingXMP = dynamic_cast<XMPMeta2 *>(workingXMPBasePtr);
+ if (!workingXMPBasePtr) return;
+ const XMPMeta2 & templateXMP = dynamic_cast<const XMPMeta2 &> (templateXMPBasePtr);
+ bool doClear = XMP_OptionIsSet(actions, kXMPTemplate_ClearUnnamedProperties);
+ bool doAdd = XMP_OptionIsSet(actions, kXMPTemplate_AddNewProperties);
+ bool doReplace = XMP_OptionIsSet(actions, kXMPTemplate_ReplaceExistingProperties);
+
+ bool deleteEmpty = XMP_OptionIsSet(actions, kXMPTemplate_ReplaceWithDeleteEmpty);
+ doReplace |= deleteEmpty; // Delete-empty implies Replace.
+ deleteEmpty &= (!doClear); // Clear implies not delete-empty, but keep the implicit Replace.
+
+ bool doAll = XMP_OptionIsSet(actions, kXMPTemplate_IncludeInternalProperties);
+
+ auto defaultMap = INameSpacePrefixMap::GetDefaultNameSpacePrefixMap()->GetINameSpacePrefixMap_I();
+
+ if (doClear) {
+
+ // Visit the top level working properties, delete if not in the template.
+ auto topLevelPropIter = XMPUtils::GetNodeChildIterator(workingXMP->mDOM);
+ std::vector<spcINode> propsToBeDeleted; // needed to avoid problems related with deletion and invalid const iterator
+
+ for (; topLevelPropIter; topLevelPropIter = topLevelPropIter->Next()) {
+ spcINode topLevelProp = topLevelPropIter->GetNode();
+ XMP_VarString currNameSpace = defaultMap->GetPrefix(topLevelProp->GetNameSpace())->c_str();
+ XMP_VarString nodeFullName = currNameSpace + ":" + topLevelProp->GetName()->c_str();
+ if (doAll || !IsInternalProperty(topLevelProp->GetNameSpace()->c_str(), nodeFullName)) {
+ if (!templateXMP.mDOM->GetIStructureNode_I()->GetNode(topLevelProp->GetNameSpace(), topLevelProp->GetName())) {
+ propsToBeDeleted.push_back(topLevelProp);
+ }
+ }
+
+ }
+ for (size_t idx = 0; idx < propsToBeDeleted.size(); idx++) {
+ workingXMP->mDOM->GetIStructureNode_I()->RemoveNode(propsToBeDeleted[idx]->GetNameSpace(), propsToBeDeleted[idx]->GetName());
+ }
+
+ }
+
+ if (doAdd | doReplace) {
+
+ auto templateTopPropIter = XMPUtils::GetNodeChildIterator(templateXMP.mDOM);
+ for (; templateTopPropIter; templateTopPropIter = templateTopPropIter->Next()) {
+ spcINode currentTemplateTopProp = templateTopPropIter->GetNode();
+ XMP_VarString currNameSpace = defaultMap->GetPrefix(currentTemplateTopProp->GetNameSpace())->c_str();
+ XMP_VarString nodeFullName = currNameSpace + ":" + currentTemplateTopProp->GetName()->c_str();
+ XMP_ExpandedXPath expPath;
+ ExpandXPath(currentTemplateTopProp->GetNameSpace()->c_str(), nodeFullName.c_str(), &expPath);
+ spINode destNode;
+ spINode templateXMPRoot = workingXMP->mDOM;
+ if (!currentTemplateTopProp) continue;
+ if (doAll || !IsInternalProperty(currentTemplateTopProp->GetNameSpace()->c_str(), nodeFullName)){
+ AppendSubtree ( currentTemplateTopProp, templateXMPRoot, doAdd, doReplace, deleteEmpty );
+ }
+ }
+ }
+
+
+} // ApplyTemplate_v2
+
+// -------------------------------------------------------------------------------------------------
+// DuplicateSubtree
+// ----------------
+
+
+void CloneContents(spINode sourceNode, spINode &destNode) {
+
+
+ if (sourceNode->GetNodeType() == INode::kNTSimple) {
+
+ spISimpleNode sourceSimpleNode = sourceNode->ConvertToSimpleNode();
+ spISimpleNode destSimpleNode = AdobeXMPCore_Int::ISimpleNode_I::CreateSimpleNode(destNode->GetNameSpace(), destNode->GetName(), sourceSimpleNode->GetValue() );
+ destNode = destSimpleNode;
+ }
+ else if (sourceNode->GetNodeType() == INode::kNTArray)
+ {
+ spIArrayNode arraySourceNode = sourceNode->ConvertToArrayNode();
+ spIArrayNode destArrayNode = AdobeXMPCore_Int::IArrayNode_I::CreateArrayNode(destNode->GetNameSpace(), destNode->GetName(), arraySourceNode->GetArrayForm());
+ destNode = destArrayNode;
+ for (auto childIter = arraySourceNode->Iterator(); childIter; childIter = childIter->Next()) {
+
+ spINode childCloned = childIter->GetNode()->Clone();
+ destArrayNode->AppendNode(childCloned);
+ }
+
+ destNode = destArrayNode;
+
+ }
+ else {
+
+ spIStructureNode arraySourceNode = sourceNode->ConvertToStructureNode();
+
+ spIStructureNode destArrayNode = destNode->ConvertToStructureNode();
+ for (auto childIter = arraySourceNode->Iterator(); childIter; childIter = childIter->Next()) {
+
+ spINode childCloned = childIter->GetNode()->Clone();
+ destArrayNode->AppendNode(childCloned);
+ }
+
+ destNode = destArrayNode;
+
+ }
+
+ if (sourceNode->HasQualifiers()) {
+
+
+ for (auto qualIter = sourceNode->QualifiersIterator(); qualIter; qualIter = qualIter->Next()) {
+
+ spINode clonedQual = qualIter->GetNode()->Clone();
+ destNode->InsertQualifier(clonedQual);
+ }
+ }
+}
+
+/* class static */ void
+XMPUtils::DuplicateSubtree_v2(const XMPMeta & sourceBasePtr,
+XMPMeta * destBasePtr,
+XMP_StringPtr sourceNS,
+XMP_StringPtr sourceRoot,
+XMP_StringPtr destNS,
+XMP_StringPtr destRoot,
+XMP_OptionBits options)
+{
+
+ XMPMeta2 * dest = dynamic_cast<XMPMeta2 *>(destBasePtr);
+
+ if (!dest) return;
+ const XMPMeta2 & source = dynamic_cast<const XMPMeta2 &> (sourceBasePtr);
+
+ IgnoreParam(options);
+ // TODO : Use of testnode == soucenode seems slightly dodgy, verify if it works in null case, simple case, subtree case
+ bool fullSourceTree = false;
+ bool fullDestTree = false;
+
+ XMP_ExpandedXPath sourcePath, destPath;
+
+ spINode sourceNode;
+ spINode destNode;
+
+ XMP_Assert((sourceNS != 0) && (*sourceNS != 0));
+ XMP_Assert((sourceRoot != 0) && (*sourceRoot != 0));
+ XMP_Assert((dest != 0) && (destNS != 0) && (destRoot != 0));
+
+ if (*destNS == 0) destNS = sourceNS;
+ if (*destRoot == 0) destRoot = sourceRoot;
+
+ if (XMP_LitMatch(sourceNS, "*")) fullSourceTree = true;
+ if (XMP_LitMatch(destNS, "*")) fullDestTree = true;
+
+ if ((&source == dest) && (fullSourceTree | fullDestTree)) {
+ XMP_Throw("Can't duplicate tree onto itself", kXMPErr_BadParam);
+ }
+
+ if (fullSourceTree & fullDestTree) XMP_Throw("Use Clone for full tree to full tree", kXMPErr_BadParam);
+
+ if (fullSourceTree) {
+
+ // The destination must be an existing empty struct, copy all of the source top level as fields.
+
+ ExpandXPath(destNS, destRoot, &destPath);
+
+ XMP_OptionBits destOptions = 0;
+ if (!XMPUtils::FindCnstNode(dest->mDOM, destPath, destNode, &destOptions)) {
+ XMP_Throw("Destination must be an existing struct", kXMPErr_BadXPath);
+ }
+ if (!XMP_PropIsStruct(destOptions)) {
+ XMP_Throw("Destination must be an existing struct", kXMPErr_BadXPath);
+ }
+
+ if (XMPUtils::GetNodeChildCount(destNode)) {
+ if (options & kXMP_DeleteExisting) {
+ destNode->Clear();
+ }
+ else {
+ XMP_Throw("Destination must be an empty struct", kXMPErr_BadXPath);
+ }
+ }
+ sourceNode = source.mDOM;
+ CloneContents(sourceNode, destNode);
+
+ }
+ else if (fullDestTree) {
+
+ // The source node must be an existing struct, copy all of the fields to the dest top level.
+
+ XMP_ExpandedXPath srcPath;
+ ExpandXPath(sourceNS, sourceRoot, &srcPath);
+ spINode sourceNode;
+ XMP_OptionBits sourceNodeOptions = 0;
+ XMPUtils::FindCnstNode(source.mDOM, srcPath, sourceNode, &sourceNodeOptions);
+
+ if ((!sourceNode) || (!XMP_PropIsStruct(sourceNodeOptions))) {
+ XMP_Throw("Source must be an existing struct", kXMPErr_BadXPath);
+ }
+
+ destNode = dest->mDOM;
+
+ if (XMPUtils::GetNodeChildCount(destNode)) {
+ if (options & kXMP_DeleteExisting) {
+ destNode->Clear();
+ }
+ else {
+ XMP_Throw("Destination tree must be empty", kXMPErr_BadXPath);
+ }
+ }
+
+
+ for (auto sourceChildIter = XMPUtils::GetNodeChildIterator(sourceNode); sourceChildIter; sourceChildIter = sourceChildIter->Next()) {
+
+ spINode copyNode = sourceChildIter->GetNode()->Clone();
+ if (destNode->GetNodeType() == INode::kNTStructure){
+ destNode->ConvertToStructureNode()->AppendNode(copyNode);
+ }
+
+ }
+ }
+ else {
+
+ // Find the root nodes for the source and destination subtrees.
+
+ ExpandXPath(sourceNS, sourceRoot, &sourcePath);
+ ExpandXPath(destNS, destRoot, &destPath);
+ spINode destNodeCopy;
+ if (!XMPUtils::FindCnstNode(source.mDOM, sourcePath, sourceNode)) {
+ XMP_Throw("Can't find source subtree", kXMPErr_BadXPath);
+ }
+ if (XMPUtils::FindCnstNode(dest->mDOM, destPath, destNode)) {
+ XMP_Throw("Destination subtree must not exist", kXMPErr_BadXPath);
+ }
+
+
+ if (!XMPUtils::FindNode(dest->mDOM, destPath, kXMP_CreateNodes, 0, destNode)) { // Now create the dest.
+ XMP_Throw("Can't create destination root node", kXMPErr_BadXPath);
+ }
+
+ // Make sure the destination is not within the source! The source can't be inside the destination
+ // because the source already existed and the destination was just created.
+
+ if (&source == dest) {
+ for (spINode testNode = destNode; testNode; testNode = testNode->GetParent()){
+ if (testNode.get() == sourceNode.get()) {
+
+ XMP_Throw("Destination subtree is within the source subtree", kXMPErr_BadXPath);
+ }
+ }
+ }
+
+ // *** Could use a CloneTree util here and maybe elsewhere.
+ //destNode = sourceNode->Clone();
+
+ if (sourceNode->GetNodeType() == INode::kNTSimple) {
+
+ spISimpleNode sourceSimpleNode = sourceNode->ConvertToSimpleNode();
+ spISimpleNode destSimpleNode = AdobeXMPCore_Int::ISimpleNode_I::CreateSimpleNode(destNode->GetNameSpace(), destNode->GetName(),
+ sourceSimpleNode->GetValue() );
+ destNodeCopy = destSimpleNode;
+ }
+ else if (sourceNode->GetNodeType() == INode::kNTArray)
+ {
+ spIArrayNode arraySourceNode = sourceNode->ConvertToArrayNode();
+ spIArrayNode destArrayNode = AdobeXMPCore_Int::IArrayNode_I::CreateArrayNode(destNode->GetNameSpace(), destNode->GetName(), arraySourceNode->GetArrayForm());
+ destNodeCopy = destArrayNode;
+ for (auto childIter = arraySourceNode->Iterator(); childIter; childIter = childIter->Next()) {
+
+ spINode childCloned = childIter->GetNode()->Clone();
+ destArrayNode->AppendNode(childCloned);
+ }
+
+ destNodeCopy = destArrayNode;
+
+ }
+ else {
+
+ spIStructureNode arraySourceNode = sourceNode->ConvertToStructureNode();
+ spIStructureNode destArrayNode = AdobeXMPCore_Int::IStructureNode_I::CreateStructureNode(destNode->GetNameSpace(), destNode->GetName());
+ destNodeCopy = destArrayNode;
+ for (auto childIter = arraySourceNode->Iterator(); childIter; childIter = childIter->Next()) {
+
+ spINode childCloned = childIter->GetNode()->Clone();
+ destArrayNode->AppendNode(childCloned);
+ }
+
+ destNodeCopy = destArrayNode;
+
+ }
+
+ if (sourceNode->HasQualifiers()) {
+
+
+ for (auto qualIter = sourceNode->QualifiersIterator(); qualIter; qualIter = qualIter->Next()) {
+
+ spINode clonedQual = qualIter->GetNode()->Clone();
+ destNodeCopy->InsertQualifier(clonedQual);
+ }
+ }
+
+ dest->mDOM->ReplaceNode(destNodeCopy);
+ }
+
+} // DuplicateSubtree_v2
+
+// -------------------------------------------------------------------------------------------------
+// RemoveProperties
+// ----------------
+
+/* class static */ void
+XMPUtils::RemoveProperties_v2(XMPMeta * xmpMetaPtr,
+ XMP_StringPtr schemaNS,
+ XMP_StringPtr propName,
+ XMP_OptionBits options)
+{
+ using namespace AdobeXMPCommon;
+ using namespace AdobeXMPCore;
+ XMPMeta2 * xmpObj = dynamic_cast<XMPMeta2 *> (xmpMetaPtr);
+ if (!xmpObj) {
+ return;
+ }
+ // Handle aliases in remove properties
+ XMP_Assert((schemaNS != 0) && (propName != 0)); // ! Enforced by wrapper.
+
+ const bool doAll = XMP_TestOption(options, kXMPUtil_DoAllProperties);
+ const bool includeAliases = XMP_TestOption(options, kXMPUtil_IncludeAliases);
+
+ if (*propName != 0) {
+
+ // Remove just the one indicated property. This might be an alias, the named schema might
+ // not actually exist. So don't lookup the schema node.
+
+ if (*schemaNS == 0) XMP_Throw("Property name requires schema namespace", kXMPErr_BadParam);
+
+ XMP_ExpandedXPath expPath;
+
+ ExpandXPath(schemaNS, propName, &expPath);
+ XMP_Index propIndex = 0;
+ spINode propNode;
+ if (XMPUtils::FindNode(xmpObj->mDOM, expPath, kXMP_ExistingOnly, kXMP_NoOptions, propNode, &propIndex)) {
+ if (doAll || !IsInternalProperty(expPath[kSchemaStep].step, expPath[kRootPropStep].step)) {
+ spINode parentNode = propNode->GetParent(); // *** Should have XMP_Node::RemoveChild(pos).
+
+ if (parentNode->GetNodeType() == INode::kNTStructure) {
+ parentNode->ConvertToStructureNode()->GetIStructureNode_I()->RemoveNode( propNode->GetNameSpace(), propNode->GetName() );
+ }
+ else if (parentNode->GetNodeType() == INode::kNTArray) {
+ parentNode->ConvertToArrayNode()->RemoveNodeAtIndex(propIndex);
+ }
+ }
+ }
+
+ }
+ else if (*schemaNS != 0) {
+ std::vector<spINode> topLevelNodesToBeDeleted;
+ for (auto topLevelIter = xmpObj->mDOM->Iterator(); topLevelIter; topLevelIter = topLevelIter->Next()) {
+ spINode topLevelProp = topLevelIter->GetNode();
+ if (XMP_LitMatch(topLevelProp->GetNameSpace()->c_str(), schemaNS)) {
+ topLevelNodesToBeDeleted.push_back(topLevelProp);
+ }
+ }
+ for (size_t propIdx = 0; propIdx < topLevelNodesToBeDeleted.size(); ++propIdx) {
+
+ xmpObj->mDOM->GetIStructureNode_I()->RemoveNode(topLevelNodesToBeDeleted[propIdx]->GetNameSpace(), topLevelNodesToBeDeleted[propIdx]->GetName());
+ }
+ if (includeAliases) {
+ // Removing Aliases
+ XMP_StringPtr nsPrefix;
+ XMP_StringLen nsLen;
+ (void)XMPMeta::GetNamespacePrefix(schemaNS, &nsPrefix, &nsLen);
+
+ XMP_AliasMapPos currAlias = sRegisteredAliasMap->begin();
+ XMP_AliasMapPos endAlias = sRegisteredAliasMap->end();
+
+ for (; currAlias != endAlias; ++currAlias) {
+ if (strncmp(currAlias->first.c_str(), nsPrefix, nsLen) == 0) {
+ spINode destNode;
+ XMP_Index actualPos = 0;
+ size_t colonPos = currAlias->first.find_first_of(":");
+
+ xmpObj->mDOM->RemoveNode( schemaNS, AdobeXMPCommon::npos, currAlias->first.substr( colonPos + 1 ).c_str(), AdobeXMPCommon::npos );
+ /*if (!XMPUtils::FindCnstNode(xmpObj->mDOM, currAlias->second, destNode, 0, &actualPos)) continue;
+ if (!destNode) continue;
+ spINode rootProp = destNode;
+ while (rootProp && rootProp->GetParent() != xmpObj->mDOM) {
+ rootProp = rootProp->GetParent();
+ }
+ if (doAll || !IsInternalProperty(rootProp->GetNameSpace()->c_str(), rootProp->GetName()->c_str())) {
+ spINode parentNode = destNode->GetParent();
+ if (destNode->IsArrayItem()){
+ INode_I::AdaptNodeTo_I<IArrayNode, INode::kNTArray>(parentNode)->RemoveNode_I(actualPos);
+ }
+ else {
+ INode_I::AdaptNodeTo_I<IStructureNode, INode::kNTStructure>(parentNode)->RemoveNode_I(destNode->GetNameSpace()->c_str(), destNode->GetName()->c_str());
+ }
+ }*/
+
+ }
+ }
+
+ }
+
+ }
+ else {
+
+ xmpObj->mDOM->Clear();
+ }
+
+} // RemoveProperties_v2
+#endif
+
diff --git a/XMPFiles/build/CMakeLists.txt b/XMPFiles/build/CMakeLists.txt
index 76bdae0..2bd632d 100644
--- a/XMPFiles/build/CMakeLists.txt
+++ b/XMPFiles/build/CMakeLists.txt
@@ -9,7 +9,7 @@
# ==============================================================================
# define minimum cmake version
-cmake_minimum_required(VERSION 2.8.6)
+cmake_minimum_required(VERSION 3.5.2)
# Enable folder grouping of projects in IDEs
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
@@ -41,6 +41,7 @@ include(${CMAKE_CURRENT_SOURCE_DIR}/${XMP_THIS_PROJECT_RELATIVEPATH}/build/XMP_C
set(TP_ZUID_PATH "${XMPROOT_DIR}/third-party/zuid/interfaces")
+set(TP_EXPAT_PATH "${PROJECT_ROOT}/../../third-party/expat/lib/")
set(LIB_ADOBEXMP XMPCore)
# ==============================================================================
diff --git a/XMPFiles/build/CMakeListsCommon.txt b/XMPFiles/build/CMakeListsCommon.txt
index 2f116d0..234d0d0 100644
--- a/XMPFiles/build/CMakeListsCommon.txt
+++ b/XMPFiles/build/CMakeListsCommon.txt
@@ -22,7 +22,6 @@ source_group("Header Files\\Internal Headers\\Common Code" FILES ${INTERNAL_HEAD
file (GLOB INTERNAL_HEADER_FILEHANDLERS ${SOURCE_ROOT}/FileHandlers/*.hpp)
list (REMOVE_ITEM INTERNAL_HEADER_FILEHANDLERS
${SOURCE_ROOT}/FileHandlers/AIFF_Handler.hpp
- ${SOURCE_ROOT}/FileHandlers/GIF_Handler.hpp
)
source_group("Header Files\\Internal Headers\\File Handlers" FILES ${INTERNAL_HEADER_FILEHANDLERS})
@@ -36,9 +35,7 @@ file (GLOB INTERNAL_HEADER_FORMATSUPPORT_WAVE ${SOURCE_ROOT}/FormatSupport/WAVE/
source_group("Header Files\\Internal Headers\\Format Support\\WAVE" FILES ${INTERNAL_HEADER_FORMATSUPPORT_WAVE})
file (GLOB INTERNAL_HEADER_FORMATSUPPORT ${SOURCE_ROOT}/FormatSupport/*.hpp)
-list (REMOVE_ITEM INTERNAL_HEADER_FORMATSUPPORT
- ${SOURCE_ROOT}/FormatSupport/GIF_Support.hpp
- )
+
list (REMOVE_ITEM INTERNAL_HEADER_FORMATSUPPORT
# ${SOURCE_ROOT}/source/MD5.cpp
${XMPROOT_DIR}/source/UnicodeConversions.cpp
@@ -74,6 +71,14 @@ list (REMOVE_ITEM HEADERFILES_THIRDPARTY_ZLIB
)
source_group("Header Files\\ThirdParty\\zlib" FILES ${HEADERFILES_THIRDPARTY_ZLIB})
+list (APPEND FILES_THIRDPARTY_EXPAT
+ ${TP_EXPAT_PATH}/xmlparse.c
+ ${TP_EXPAT_PATH}/xmlrole.c
+ ${TP_EXPAT_PATH}/xmltok.c
+ )
+list (APPEND FILES_THIRDPARTY_EXPAT ${RESOURCE_ROOT}/../../XMPCore/resource/${XMP_PLATFORM_SHORT}/expat_config.h)
+source_group("Source Files\\ThirdParty\\expat" FILES ${FILES_THIRDPARTY_EXPAT})
+
list (APPEND HEADERFILES
${XMPROOT_DIR}/source/Host_IO.hpp
${XMPROOT_DIR}/source/XIO.hpp
@@ -120,9 +125,7 @@ file (GLOB SOURCEFILES_FILEHANDLERS ${SOURCE_ROOT}/FileHandlers/*.cpp)
list (APPEND SOURCEFILES_FILEHANDLERS
${SOURCE_ROOT}/FileHandlers/AIFF_Handler.hpp
)
-list (REMOVE_ITEM SOURCEFILES_FILEHANDLERS
- ${SOURCE_ROOT}/FileHandlers/GIF_Handler.cpp
- )
+
source_group("Source Files\\File Handlers" FILES ${SOURCEFILES_FILEHANDLERS})
file (GLOB SOURCEFILES_FORMATSUPPORT_AIFF ${SOURCE_ROOT}/FormatSupport/AIFF/*.cpp)
@@ -135,9 +138,7 @@ file (GLOB SOURCEFILES_FORMATSUPPORT_WAVE ${SOURCE_ROOT}/FormatSupport/WAVE/*.cp
source_group("Source Files\\Format Support\\WAVE" FILES ${SOURCEFILES_FORMATSUPPORT_WAVE})
file (GLOB SOURCEFILES_FORMATSUPPORT ${SOURCE_ROOT}/FormatSupport/*.cpp)
-list (REMOVE_ITEM SOURCEFILES_FORMATSUPPORT
- ${SOURCE_ROOT}/FormatSupport/GIF_Support.cpp
- )
+
source_group("Source Files\\Format Support" FILES ${SOURCEFILES_FORMATSUPPORT})
if (NOT APPLE_IOS)
@@ -160,6 +161,13 @@ if (NOT APPLE_IOS)
source_group("Source Files\\PluginHandler" FILES ${SOURCEFILES_PLUGINHANDLER})
endif()
+#Core & Common public source files
+file (GLOB PUBLIC_XMPCOMMON_CLIENTGLUE_FILES ${XMPROOT_DIR}/public/include/XMPCommon/source/*.*)
+source_group("Source Files\\Public\\XMPCommon" FILES ${PUBLIC_XMPCOMMON_CLIENTGLUE_FILES})
+
+file (GLOB PUBLIC_XMPCORE_CLIENTGLUE_FILES ${XMPROOT_DIR}/public/include/XMPCore/source/*.*)
+source_group("Source Files\\Public\\XMPCore" FILES ${PUBLIC_XMPCORE_CLIENTGLUE_FILES})
+
list (APPEND HEADERFILES_THIRDPARTY_ZLIB
${XMPROOT_DIR}/third-party/zlib/adler32.c
${XMPROOT_DIR}/third-party/zlib/compress.c
@@ -197,13 +205,17 @@ list(APPEND SOURCE_FILES
${SOURCEFILES_FORMATSUPPORT_WAVE}
${SOURCEFILES_FORMATSUPPORT}
${SOURCEFILES_PLUGINHANDLER}
+ ${PUBLIC_XMPCOMMON_CLIENTGLUE_FILES}
+ ${PUBLIC_XMPCORE_CLIENTGLUE_FILES}
${HEADERFILES_THIRDPARTY_ZLIB}
+ ${FILES_THIRDPARTY_EXPAT}
)
# include directories
include_directories(${XMPROOT_DIR})
include_directories(${XMPROOT_DIR}/public/include)
-include_directories(${XMPROOT_DIR}/third-party/expat/zlib)
+include_directories(${TP_EXPAT_PATH})
+include_directories(${XMPROOT_DIR}/third-party/expat/public/lib)
include_directories(${XMPROOT_DIR}/XMPFilesPlugins/api/source)
include_directories(${RESOURCE_ROOT}/${XMP_PLATFORM_SHORT})
@@ -214,25 +226,47 @@ link_directories(${OUTPUT_DIR})
# Define what to do, lib, exe, etc
if (UNIX AND APPLE AND NOT ${XMP_BUILD_STATIC})
# preprocess Info.plist
- add_custom_target(${TARGET_NAME}InfoPlist
- COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
- COMMAND if [ $(CONFIGURATION) != Debug ]; then
- ${GCCTOOL} -E -P -x c ${RESOURCE_ROOT}/${XMP_PLATFORM_SHORT}/${TARGET_NAME}.plist
- -F${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/
- -DPRODUCT_NAME=${TARGET_NAME} -DMAC_ENV=1 -DNDEBUG=1
- -include ${RESOURCE_ROOT}/${XMP_PLATFORM_SHORT}/${TARGET_NAME}PList.h
- -o ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/Info.plist
- \; else
- ${GCCTOOL} -E -P -x c ${RESOURCE_ROOT}/${XMP_PLATFORM_SHORT}/${TARGET_NAME}.plist
- -F${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/
- -DPRODUCT_NAME=${TARGET_NAME} -DMAC_ENV=1 -DDEBUG=1
- -include ${RESOURCE_ROOT}/${XMP_PLATFORM_SHORT}/${TARGET_NAME}PList.h
- -o ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/Info.plist
- \; fi
- COMMAND rm -f ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/../CMakeFiles/${TARGET_NAME}.dir/Info.plist
- COMMAND cp ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/Info.plist ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/../CMakeFiles/${TARGET_NAME}.dir/Info.plist
- COMMENT "Preprocessing Info-plist"
- )
+ if(NOT APPLE_IOS)
+ add_custom_target(${TARGET_NAME}InfoPlist
+ COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
+ COMMAND if [ $(CONFIGURATION) != Debug ]; then
+ ${GCCTOOL} -E -P -x c ${RESOURCE_ROOT}/${XMP_PLATFORM_SHORT}/${TARGET_NAME}.plist
+ -F${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/
+ -DPRODUCT_NAME=${TARGET_NAME} -DMAC_ENV=1 -DNDEBUG=1
+ -include ${RESOURCE_ROOT}/${XMP_PLATFORM_SHORT}/${TARGET_NAME}PList.h
+ -o ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/Info.plist
+ \; else
+ ${GCCTOOL} -E -P -x c ${RESOURCE_ROOT}/${XMP_PLATFORM_SHORT}/${TARGET_NAME}.plist
+ -F${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/
+ -DPRODUCT_NAME=${TARGET_NAME} -DMAC_ENV=1 -DDEBUG=1
+ -include ${RESOURCE_ROOT}/${XMP_PLATFORM_SHORT}/${TARGET_NAME}PList.h
+ -o ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/Info.plist
+ \; fi
+ COMMAND rm -f ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/../CMakeFiles/${TARGET_NAME}.dir/Info.plist
+ COMMAND cp ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/Info.plist ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/../CMakeFiles/${TARGET_NAME}.dir/Info.plist
+ COMMENT "Preprocessing Info-plist"
+ )
+ else()
+ add_custom_target(${TARGET_NAME}InfoPlist
+ COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
+ COMMAND if [ $(CONFIGURATION) != Debug ]; then
+ ${GCCTOOL} -E -P -x c ${RESOURCE_ROOT}/ios/${TARGET_NAME}.plist
+ -F${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/
+ -DPRODUCT_NAME=${TARGET_NAME} -DIOS_ENV=1 -DNDEBUG=1
+ -include ${RESOURCE_ROOT}/ios/${TARGET_NAME}PList.h
+ -o ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/Info.plist
+ \; else
+ ${GCCTOOL} -E -P -x c ${RESOURCE_ROOT}/ios/${TARGET_NAME}.plist
+ -F${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/
+ -DPRODUCT_NAME=${TARGET_NAME} -DIOS_ENV=1 -DDEBUG=1
+ -include ${RESOURCE_ROOT}/ios/${TARGET_NAME}PList.h
+ -o ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/Info.plist
+ \; fi
+ COMMAND rm -f ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/../CMakeFiles/${TARGET_NAME}.dir/Info.plist
+ COMMAND cp ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/Info.plist ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/../CMakeFiles/${TARGET_NAME}.dir/Info.plist
+ COMMENT "Preprocessing Info-plist"
+ )
+ endif()
set(DEPENDENCY_LIST "ALL:${TARGET_NAME}InfoPlist" "DLL:XMPCore")
else ()
set(DEPENDENCY_LIST "DLL:XMPCore")
@@ -258,13 +292,17 @@ else(WIN32)
endif()
endif()
-set(FRAMEWORK_LIST "Mac:CoreFoundation" "Mac:CoreServices" "Mac:${LIB_ADOBEXMP}" "Mac:${XMP_PLATFORM_LINK}")
+set(FRAMEWORK_LIST "ALL:CoreFoundation" "Mac:CoreServices" "ALL:${LIB_ADOBEXMP}" "ALL:${XMP_PLATFORM_LINK}")
AddMacFramework(${TARGET_NAME} FRAMEWORK_LIST)
if(UNIX)
if (NOT APPLE)
SetPlatformLinkFlags(${TARGET_NAME} "-Xlinker --version-script -Xlinker \"${RESOURCE_ROOT}/${XMP_PLATFORM_SHORT}/${TARGET_NAME}.exp\"" "")
else()
+ if(APPLE_IOS AND NOT XMP_BUILD_STATIC)
+ set_target_properties(${TARGET_NAME} PROPERTIES XCODE_ATTRIBUTE_DYLIB_INSTALL_NAME_BASE "@rpath")
+ set_target_properties(${TARGET_NAME} PROPERTIES XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "com.adobe.Adobe${TARGET_NAME}")
+ endif()
set_target_properties(${TARGET_NAME} PROPERTIES BUILD_WITH_INSTALL_RPATH ON INSTALL_NAME_DIR "@executable_path/../Frameworks")
SetPlatformLinkFlags(${TARGET_NAME} "-exported_symbols_list \"${RESOURCE_ROOT}/${XMP_PLATFORM_SHORT}/${TARGET_NAME}.exp\"" "${XMPFILES_LIB}")
endif()
diff --git a/XMPFiles/resource/ios/expat_config.h b/XMPFiles/resource/ios/expat_config.h
new file mode 100644
index 0000000..a21de6e
--- /dev/null
+++ b/XMPFiles/resource/ios/expat_config.h
@@ -0,0 +1,107 @@
+/* expat_config.h. Generated by configure. */
+/* expat_config.h.in. Generated from configure.in by autoheader. */
+
+/* *** Tweaked by hand for 32 bit Xcode builds on PowerPC and x86 */
+
+#if __BIG_ENDIAN__
+
+ /* 1234 = LIL_ENDIAN, 4321 = BIGENDIAN */
+ #define BYTEORDER 4321
+
+ /* whether byteorder is bigendian */
+ #define WORDS_BIGENDIAN 1
+
+#else
+
+ /* 1234 = LIL_ENDIAN, 4321 = BIGENDIAN */
+ #define BYTEORDER 1234
+
+ /* whether byteorder is bigendian */
+ /* #define WORDS_BIGENDIAN 1 */
+
+#endif
+
+/* Define to 1 if you have the `bcopy' function. */
+#define HAVE_BCOPY 1
+
+/* Define to 1 if you have the <check.h> header file. */
+/* #undef HAVE_CHECK_H */
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#define HAVE_DLFCN_H 1
+
+/* Define to 1 if you have the <fcntl.h> header file. */
+#define HAVE_FCNTL_H 1
+
+/* Define to 1 if you have the `getpagesize' function. */
+#define HAVE_GETPAGESIZE 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the `memmove' function. */
+#define HAVE_MEMMOVE 1
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have a working `mmap' system call. */
+#define HAVE_MMAP 1
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "expat-bugs@mail.libexpat.org"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "expat"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "expat 1.95.8"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "expat"
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "1.95.8"
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Define to specify how much context to retain around the current parse
+ point. */
+#define XML_CONTEXT_BYTES 1024
+
+/* Define to make parameter entity parsing functionality available. */
+/* #define XML_DTD 1 */
+
+/* Define to make XML Namespaces functionality available. */
+#define XML_NS 1
+
+/* Define to empty if `const' does not conform to ANSI C. */
+/* #undef const */
+
+/* Define to `long' if <sys/types.h> does not define. */
+/* #undef off_t */
+
+/* Define to `unsigned' if <sys/types.h> does not define. */
+/* #undef size_t */
diff --git a/XMPFiles/resource/linux/expat_config.h b/XMPFiles/resource/linux/expat_config.h
new file mode 100644
index 0000000..7d147e7
--- /dev/null
+++ b/XMPFiles/resource/linux/expat_config.h
@@ -0,0 +1,120 @@
+/* expat_config.h. Generated by configure. */
+/* expat_config.h.in. Generated from configure.in by autoheader. */
+
+/* *** Tweaked by hand for generic UNIX builds **** */
+
+#ifdef WORDS_BIGENDIAN
+ #error "WORDS_BIGENDIAN must be initially undefined"
+#endif
+
+#if TargetOS == i80386linux
+ /* #undef WORDS_BIGENDIAN */
+ #define HAVE_MMAP 1
+ #define HAVE_STDINT_H 1
+ /* #undef const */
+#elif TargetOS == sparcsolaris
+ #define WORDS_BIGENDIAN 1
+ #define HAVE_MMAP 1
+ /* #undef HAVE_STDINT_H */
+ /* #undef const */
+#elif TargetOS == rs60000aix
+ #define WORDS_BIGENDIAN 1
+ /* #undef HAVE_MMAP */
+ /* #undef HAVE_STDINT_H */
+ /* #undef const */
+#elif TargetOS == hppahpux
+ #define WORDS_BIGENDIAN 1
+ /* #undef HAVE_MMAP */
+ /* #undef HAVE_STDINT_H */
+ #define const
+#elif TargetOS == ia64hpux
+ #define WORDS_BIGENDIAN 1
+ /* #undef HAVE_MMAP */
+ /* #undef HAVE_STDINT_H */
+ #define const
+#else
+ #error "Unknown target OS"
+#endif
+
+/* 1234 = LIL_ENDIAN, 4321 = BIGENDIAN */
+#if WORDS_BIGENDIAN
+ #define BYTEORDER 4321
+#else
+ #define BYTEORDER 1234
+#endif
+
+/* Define to 1 if you have the `bcopy' function. */
+#define HAVE_BCOPY 1
+
+/* Define to 1 if you have the <check.h> header file. */
+/* #undef HAVE_CHECK_H */
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#define HAVE_DLFCN_H 1
+
+/* Define to 1 if you have the <fcntl.h> header file. */
+#define HAVE_FCNTL_H 1
+
+/* Define to 1 if you have the `getpagesize' function. */
+#define HAVE_GETPAGESIZE 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the `memmove' function. */
+#define HAVE_MEMMOVE 1
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "expat-bugs@mail.libexpat.org"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "expat"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "expat 1.95.8"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "expat"
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "1.95.8"
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Define to specify how much context to retain around the current parse
+ point. */
+#define XML_CONTEXT_BYTES 1024
+
+/* Define to make parameter entity parsing functionality available. */
+/* #define XML_DTD 1 */
+
+/* Define to make XML Namespaces functionality available. */
+#define XML_NS 1
+
+/* Define to `long' if <sys/types.h> does not define. */
+/* #undef off_t */
+
+/* Define to `unsigned' if <sys/types.h> does not define. */
+/* #undef size_t */
diff --git a/XMPFiles/resource/mac/expat_config.h b/XMPFiles/resource/mac/expat_config.h
new file mode 100644
index 0000000..a21de6e
--- /dev/null
+++ b/XMPFiles/resource/mac/expat_config.h
@@ -0,0 +1,107 @@
+/* expat_config.h. Generated by configure. */
+/* expat_config.h.in. Generated from configure.in by autoheader. */
+
+/* *** Tweaked by hand for 32 bit Xcode builds on PowerPC and x86 */
+
+#if __BIG_ENDIAN__
+
+ /* 1234 = LIL_ENDIAN, 4321 = BIGENDIAN */
+ #define BYTEORDER 4321
+
+ /* whether byteorder is bigendian */
+ #define WORDS_BIGENDIAN 1
+
+#else
+
+ /* 1234 = LIL_ENDIAN, 4321 = BIGENDIAN */
+ #define BYTEORDER 1234
+
+ /* whether byteorder is bigendian */
+ /* #define WORDS_BIGENDIAN 1 */
+
+#endif
+
+/* Define to 1 if you have the `bcopy' function. */
+#define HAVE_BCOPY 1
+
+/* Define to 1 if you have the <check.h> header file. */
+/* #undef HAVE_CHECK_H */
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#define HAVE_DLFCN_H 1
+
+/* Define to 1 if you have the <fcntl.h> header file. */
+#define HAVE_FCNTL_H 1
+
+/* Define to 1 if you have the `getpagesize' function. */
+#define HAVE_GETPAGESIZE 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the `memmove' function. */
+#define HAVE_MEMMOVE 1
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have a working `mmap' system call. */
+#define HAVE_MMAP 1
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "expat-bugs@mail.libexpat.org"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "expat"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "expat 1.95.8"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "expat"
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "1.95.8"
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Define to specify how much context to retain around the current parse
+ point. */
+#define XML_CONTEXT_BYTES 1024
+
+/* Define to make parameter entity parsing functionality available. */
+/* #define XML_DTD 1 */
+
+/* Define to make XML Namespaces functionality available. */
+#define XML_NS 1
+
+/* Define to empty if `const' does not conform to ANSI C. */
+/* #undef const */
+
+/* Define to `long' if <sys/types.h> does not define. */
+/* #undef off_t */
+
+/* Define to `unsigned' if <sys/types.h> does not define. */
+/* #undef size_t */
diff --git a/XMPFiles/resource/win/expat_config.h b/XMPFiles/resource/win/expat_config.h
new file mode 100644
index 0000000..e6d2f63
--- /dev/null
+++ b/XMPFiles/resource/win/expat_config.h
@@ -0,0 +1,99 @@
+#if WIN_ENV
+ #pragma warning ( disable : 4244 ) // possible loss of data (temporary for 64 bit builds)
+#endif
+
+/* expat_config.h. Generated by configure. */
+/* expat_config.h.in. Generated from configure.in by autoheader. */
+
+/* *** Tweaked by hand for 32 bit Windows builds */
+
+/* 1234 = LIL_ENDIAN, 4321 = BIGENDIAN */
+#define BYTEORDER 1234
+
+/* Define to 1 if you have the `bcopy' function. */
+/* #define HAVE_BCOPY 1 */
+
+/* Define to 1 if you have the <check.h> header file. */
+/* #undef HAVE_CHECK_H */
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+/* #define HAVE_DLFCN_H 1 */
+
+/* Define to 1 if you have the <fcntl.h> header file. */
+/* #define HAVE_FCNTL_H 1 */
+
+/* Define to 1 if you have the `getpagesize' function. */
+/* #define HAVE_GETPAGESIZE 1 */
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+/* #define HAVE_INTTYPES_H 1 */
+
+/* Define to 1 if you have the `memmove' function. */
+#define HAVE_MEMMOVE 1
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have a working `mmap' system call. */
+/* #define HAVE_MMAP 1 */
+
+/* Define to 1 if you have the <stdint.h> header file. */
+/* #define HAVE_STDINT_H 1 */
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+/* #define HAVE_STRINGS_H 1 */
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+/* #define HAVE_SYS_STAT_H 1 */
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+/* #define HAVE_SYS_TYPES_H 1 */
+
+/* Define to 1 if you have the <unistd.h> header file. */
+/* #define HAVE_UNISTD_H 1 */
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "expat-bugs@mail.libexpat.org"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "expat"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "expat 1.95.8"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "expat"
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "1.95.8"
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* whether byteorder is bigendian */
+/* #define WORDS_BIGENDIAN 1 */
+
+/* Define to specify how much context to retain around the current parse
+ point. */
+#define XML_CONTEXT_BYTES 1024
+
+/* Define to make parameter entity parsing functionality available. */
+/* #define XML_DTD 1 */
+
+/* Define to make XML Namespaces functionality available. */
+#define XML_NS 1
+
+/* Define to empty if `const' does not conform to ANSI C. */
+/* #undef const */
+
+/* Define to `long' if <sys/types.h> does not define. */
+/* #undef off_t */
+
+/* Define to `unsigned' if <sys/types.h> does not define. */
+/* #undef size_t */
diff --git a/XMPFiles/source/FileHandlers/GIF_Handler.cpp b/XMPFiles/source/FileHandlers/GIF_Handler.cpp
new file mode 100644
index 0000000..ded9954
--- /dev/null
+++ b/XMPFiles/source/FileHandlers/GIF_Handler.cpp
@@ -0,0 +1,423 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2008 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+//
+// This file includes implementation of GIF file metadata, according to GIF89a Specification.
+// https://www.w3.org/Graphics/GIF/spec-gif89a.txt
+// The Graphics Interchange Format(c) is the Copyright property of CompuServe Incorporated.
+// GIF(sm) is a Service Mark property of CompuServe Incorporated.
+// All Rights Reserved . http://www.w3.org/Consortium/Legal
+//
+// =================================================================================================
+
+#include "public/include/XMP_Environment.h" // ! Must be the first #include!
+
+#include "XMPFiles/source/FileHandlers/GIF_Handler.hpp"
+#include "source/XIO.hpp"
+
+// =================================================================================================
+/// \file GIF_Handler.hpp
+/// \brief File format handler for GIF.
+///
+/// This handler ...
+///
+// =================================================================================================
+
+// =================================================================================================
+// GIF_MetaHandlerCTor
+// ====================
+
+XMPFileHandler * GIF_MetaHandlerCTor ( XMPFiles * parent )
+{
+ return new GIF_MetaHandler ( parent );
+
+} // GIF_MetaHandlerCTor
+
+#define GIF_89_Header_LEN 6
+#define GIF_89_Header_DATA "\x47\x49\x46\x38\x39\x61" // must be GIF89a, nothing else as XMP is supported only in 89a version
+
+#define APP_ID_LEN 11
+#define XMP_APP_ID_DATA "\x58\x4D\x50\x20\x44\x61\x74\x61\x58\x4D\x50"
+
+#define MAGIC_TRAILER_LEN 258
+
+// =================================================================================================
+// GIF_CheckFormat
+// ===============
+
+bool GIF_CheckFormat ( XMP_FileFormat format,
+ XMP_StringPtr filePath,
+ XMP_IO* fileRef,
+ XMPFiles * parent )
+{
+ IgnoreParam(format); IgnoreParam(fileRef); IgnoreParam(parent);
+ XMP_Assert ( format == kXMP_GIFFile );
+
+ if ( fileRef->Length() < GIF_89_Header_LEN ) return false;
+ XMP_Uns8 buffer[ GIF_89_Header_LEN ];
+
+ fileRef->Rewind();
+ fileRef->Read( buffer, GIF_89_Header_LEN );
+ if ( !CheckBytes( buffer, GIF_89_Header_DATA, GIF_89_Header_LEN ) ) return false;
+
+ return true;
+
+} // GIF_CheckFormat
+
+// =================================================================================================
+// GIF_MetaHandler::GIF_MetaHandler
+// ==================================
+
+GIF_MetaHandler::GIF_MetaHandler( XMPFiles * _parent ) : XMPPacketOffset( 0 ), XMPPacketLength( 0 ), trailerOffset( 0 )
+{
+ this->parent = _parent;
+ this->handlerFlags = kGIF_HandlerFlags;
+ // It MUST be UTF-8.
+ this->stdCharForm = kXMP_Char8Bit;
+
+}
+
+// =================================================================================================
+// GIF_MetaHandler::~GIF_MetaHandler
+// ===================================
+
+GIF_MetaHandler::~GIF_MetaHandler()
+{
+}
+
+// =================================================================================================
+// GIF_MetaHandler::CacheFileData
+// ===============================
+
+void GIF_MetaHandler::CacheFileData()
+{
+ this->containsXMP = false;
+
+ XMP_IO * fileRef = this->parent->ioRef;
+
+ // Try to navigate through the blocks to find the XMP block.
+ if ( this->ParseGIFBlocks( fileRef ) )
+ {
+ // XMP packet present
+ this->xmpPacket.assign( XMPPacketLength, ' ' );
+
+ // 13 bytes for the block size and 2 bytes for Extension ID and Label
+ this->SeekFile( fileRef, XMPPacketOffset, kXMP_SeekFromStart );
+ fileRef->ReadAll( ( void* )this->xmpPacket.data(), XMPPacketLength );
+
+ this->packetInfo.offset = XMPPacketOffset;
+ this->packetInfo.length = XMPPacketLength;
+ this->containsXMP = true;
+ }
+ // else no XMP
+
+} // GIF_MetaHandler::CacheFileData
+
+// =================================================================================================
+// GIF_MetaHandler::ProcessXMP
+// ===========================
+//
+// Process the raw XMP and legacy metadata that was previously cached.
+
+void GIF_MetaHandler::ProcessXMP()
+{
+ this->processedXMP = true; // Make sure we only come through here once.
+
+ // Process the XMP packet.
+
+ if ( ! this->xmpPacket.empty() ) {
+
+ XMP_Assert ( this->containsXMP );
+ XMP_StringPtr packetStr = this->xmpPacket.c_str();
+ XMP_StringLen packetLen = (XMP_StringLen) this->xmpPacket.size();
+
+ this->xmpObj.ParseFromBuffer ( packetStr, packetLen );
+
+ this->containsXMP = true;
+
+ }
+
+} // GIF_MetaHandler::ProcessXMP
+
+// =================================================================================================
+// GIF_MetaHandler::ParseGIFBlocks
+// ===========================
+
+bool GIF_MetaHandler::ParseGIFBlocks( XMP_IO* fileRef )
+{
+ fileRef->Rewind();
+
+ // Checking for GIF header
+ XMP_Uns8 buffer[ GIF_89_Header_LEN ];
+
+ fileRef->Read( buffer, GIF_89_Header_LEN );
+ XMP_Enforce( memcmp( buffer, GIF_89_Header_DATA, GIF_89_Header_LEN ) == 0 );
+
+ bool IsXMPExists = false;
+ bool IsTrailerExists = false;
+
+ ReadLogicalScreenDesc( fileRef );
+
+ // Parsing rest of the blocks
+ while ( fileRef->Offset() != fileRef->Length() )
+ {
+ XMP_Uns8 blockType;
+
+ // Read the block type byte
+ fileRef->Read( &blockType, 1 );
+
+ if ( blockType == kXMP_block_ImageDesc )
+ {
+
+ // ImageDesc is a special case, So read data just like its structure.
+ long tableSize = 0;
+ XMP_Uns8 fields;
+ // Reading Dimesnions of image as
+ // 2 bytes = Image Left Position
+ // + 2 bytes = Image Right Position
+ // + 2 bytes = Image Width
+ // + 2 bytes = Image Height
+ // = 8 bytes
+ this->SeekFile( fileRef, 8, kXMP_SeekFromCurrent );
+
+ // Reading one byte for Packed Fields
+ fileRef->Read( &fields, 1 );
+
+ // Getting Local Table Size and skipping table size
+ if ( fields & 0x80 )
+ {
+ tableSize = ( 1 << ( ( fields & 0x07 ) + 1 ) ) * 3;
+ this->SeekFile( fileRef, tableSize, kXMP_SeekFromCurrent );
+ }
+
+ // 1 byte LZW Minimum code size
+ this->SeekFile( fileRef, 1, kXMP_SeekFromCurrent );
+
+ XMP_Uns8 subBlockSize;
+ // 1 byte compressed sub-block size
+ fileRef->Read( &subBlockSize, 1 );
+
+ while ( subBlockSize != 0x00 )
+ {
+ // Skipping compressed data sub-block
+ this->SeekFile( fileRef, subBlockSize, kXMP_SeekFromCurrent );
+
+ // 1 byte compressed sub-block size
+ fileRef->Read( &subBlockSize, 1 );
+ }
+
+ }
+ else if ( blockType == kXMP_block_Extension )
+ {
+ XMP_Uns8 extensionLbl;
+ XMP_Uns32 blockSize = 0;
+ XMP_Uns64 blockOffset = fileRef->Offset();
+
+ // Extension Label
+ fileRef->Read( &extensionLbl, 1 );
+
+ // Block or Sub-Block size
+ fileRef->Read( &blockSize, 1 );
+
+ // Checking for Application Extension label and blockSize
+ if ( extensionLbl == 0xFF && blockSize == APP_ID_LEN )
+ {
+ XMP_Uns8 idData[ APP_ID_LEN ];
+ fileRef->Read( idData, APP_ID_LEN, true );
+
+ // Checking For XMP ID
+ if ( memcmp( idData, XMP_APP_ID_DATA, APP_ID_LEN ) == 0 )
+ {
+ XMPPacketOffset = fileRef->Offset();
+ IsXMPExists = true;
+ }
+
+ // Parsing sub-blocks
+ XMP_Uns8 subBlockSize;
+ fileRef->Read( &subBlockSize, 1 );
+ while ( subBlockSize != 0x00 )
+ {
+ this->SeekFile( fileRef, subBlockSize, kXMP_SeekFromCurrent );
+ fileRef->Read( &subBlockSize, 1 );
+ }
+ if ( IsXMPExists )
+ XMPPacketLength = static_cast< XMP_Uns32 >( fileRef->Offset() - XMPPacketOffset - MAGIC_TRAILER_LEN );
+ }
+ else
+ {
+ // Extension block other than Application Extension
+ while ( blockSize != 0x00 )
+ {
+ // Seeking block size or sub-block size
+ this->SeekFile( fileRef, blockSize, kXMP_SeekFromCurrent );
+
+ // Block Size
+ fileRef->Read( &blockSize, 1 );
+ }
+ }
+ }
+ else if ( blockType == kXMP_block_Trailer )
+ {
+ // 1 byte is subtracted for block type
+ trailerOffset = fileRef->Offset() - 1;
+ IsTrailerExists = true;
+ break;
+ }
+ else
+ XMP_Throw( "Invaild GIF Block", kXMPErr_BadBlockFormat );
+ }
+
+ if ( !IsTrailerExists )
+ XMP_Throw( "No trailer exists for GIF file", kXMPErr_BadFileFormat );
+
+ return IsXMPExists;
+
+} // GIF_MetaHandler::ParseGIFBlocks
+
+// =================================================================================================
+// GIF_MetaHandler::ReadLogicalScreenDesc
+// ===========================
+
+void GIF_MetaHandler::ReadLogicalScreenDesc( XMP_IO* fileRef )
+{
+ XMP_Uns8 fields;
+
+ // 2 bytes for Screen Width
+ // + 2 bytes for Screen Height
+ // = 4 Bytes
+ this->SeekFile( fileRef, 4, kXMP_SeekFromCurrent );
+
+ // 1 byte for Packed Fields
+ fileRef->Read( &fields, 1 );
+
+ // 1 byte for Background Color Index
+ // + 1 byte for Pixel Aspect Ratio
+ // = 2 bytes
+ this->SeekFile( fileRef, 2, kXMP_SeekFromCurrent );
+
+ // Look for Global Color Table if exists
+ if ( fields & 0x80 )
+ {
+ long tableSize = ( 1 << ( ( fields & 0x07 ) + 1 ) ) * 3;
+ this->SeekFile( fileRef, tableSize, kXMP_SeekFromCurrent );
+ }
+
+} // GIF_MetaHandler::ReadLogicalScreenDesc
+
+// =================================================================================================
+// GIF_MetaHandler::SeekFile
+// ===========================
+
+void GIF_MetaHandler::SeekFile( XMP_IO * fileRef, XMP_Int64 offset, SeekMode mode )
+{
+ if ( offset > fileRef->Length() || ( mode == kXMP_SeekFromCurrent && fileRef->Offset() + offset > fileRef->Length() ) )
+ {
+ XMP_Throw( "Out of range seek operation", kXMPErr_InternalFailure );
+ }
+ else
+ fileRef->Seek( offset, mode );
+
+} // GIF_MetaHandler::SeekFile
+
+// =================================================================================================
+// GIF_MetaHandler::UpdateFile
+// ===========================
+
+void GIF_MetaHandler::UpdateFile ( bool doSafeUpdate )
+{
+ XMP_Assert( !doSafeUpdate ); // This should only be called for "unsafe" updates.
+
+ if ( ! this->needsUpdate ) return;
+
+ XMP_IO * fileRef = this->parent->ioRef;
+
+ XMP_StringPtr packetStr = xmpPacket.c_str();
+ XMP_StringLen newPacketLength = (XMP_StringLen)xmpPacket.size();
+
+ if ( newPacketLength == XMPPacketLength )
+ {
+ this->SeekFile( fileRef, this->packetInfo.offset, kXMP_SeekFromStart );
+ fileRef->Write( this->xmpPacket.c_str(), newPacketLength );
+ }
+ else
+ {
+ XMP_IO* tempFile = fileRef->DeriveTemp();
+ if ( tempFile == 0 ) XMP_Throw( "Failure creating GIF temp file", kXMPErr_InternalFailure );
+
+ this->WriteTempFile( tempFile );
+ fileRef->AbsorbTemp();
+ }
+
+ this->needsUpdate = false;
+
+} // GIF_MetaHandler::UpdateFile
+
+// =================================================================================================
+// GIF_MetaHandler::WriteTempFile
+// ==============================
+
+void GIF_MetaHandler::WriteTempFile ( XMP_IO* tempRef )
+{
+ XMP_Assert( this->needsUpdate );
+
+ XMP_IO* originalRef = this->parent->ioRef;
+ originalRef->Rewind();
+
+ tempRef->Truncate ( 0 );
+
+ if ( XMPPacketOffset != 0 )
+ {
+ // Copying blocks before XMP Application Block
+ XIO::Copy( originalRef, tempRef, XMPPacketOffset );
+
+ // Writing XMP Packet
+ tempRef->Write( this->xmpPacket.c_str(), (XMP_Uns32)this->xmpPacket.size() );
+
+ // Copying Rest of the file
+ originalRef->Seek( XMPPacketLength, kXMP_SeekFromCurrent );
+ XIO::Copy( originalRef, tempRef, originalRef->Length() - originalRef->Offset() );
+
+ }
+ else
+ {
+ if ( trailerOffset == 0 )
+ XMP_Throw( "Not able to write XMP packet in GIF file", kXMPErr_BadFileFormat );
+
+ // Copying blocks before XMP Application Block
+ XIO::Copy( originalRef, tempRef, trailerOffset );
+
+ // Writing Extension Introducer
+ XIO::WriteUns8( tempRef, kXMP_block_Extension );
+
+ // Writing Application Extension label
+ XIO::WriteUns8( tempRef, 0xFF );
+
+ // Writing Application Extension label
+ XIO::WriteUns8( tempRef, APP_ID_LEN );
+
+ // Writing Application Extension label
+ tempRef->Write( XMP_APP_ID_DATA, APP_ID_LEN );
+
+ // Writing XMP Packet
+ tempRef->Write( this->xmpPacket.c_str(), (XMP_Uns32)this->xmpPacket.size() );
+
+ // Writing Magic trailer
+ XMP_Uns8 magicByte = 0x01;
+ tempRef->Write( &magicByte, 1 );
+ for ( magicByte = 0xFF; magicByte != 0x00; --magicByte )
+ tempRef->Write( &magicByte, 1 );
+ tempRef->Write( &magicByte, 1 );
+ tempRef->Write( &magicByte, 1 );
+
+ // Copying Rest of the file
+ XIO::Copy( originalRef, tempRef, originalRef->Length() - originalRef->Offset() );
+
+ }
+
+} // GIF_MetaHandler::WriteTempFile
+
+// =================================================================================================
diff --git a/XMPFiles/source/FileHandlers/GIF_Handler.hpp b/XMPFiles/source/FileHandlers/GIF_Handler.hpp
new file mode 100644
index 0000000..10ef3f9
--- /dev/null
+++ b/XMPFiles/source/FileHandlers/GIF_Handler.hpp
@@ -0,0 +1,90 @@
+#ifndef __GIF_Handler_hpp__
+#define __GIF_Handler_hpp__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2008 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+//
+// This file includes implementation of GIF file metadata, according to GIF89a Specification.
+// https://www.w3.org/Graphics/GIF/spec-gif89a.txt
+// The Graphics Interchange Format(c) is the Copyright property of CompuServe Incorporated.
+// GIF(sm) is a Service Mark property of CompuServe Incorporated.
+// All Rights Reserved . http://www.w3.org/Consortium/Legal
+//
+//Derived from PNG_Handler.hpp by Ian Jacobi
+// =================================================================================================
+
+#include "public/include/XMP_Environment.h" // ! Must be the first #include!
+
+#include "public/include/XMP_Const.h"
+#include "public/include/XMP_IO.hpp"
+
+#include "XMPFiles/source/XMPFiles_Impl.hpp"
+
+// =================================================================================================
+/// \file GIF_Handler.hpp
+/// \brief File format handler for GIF.
+///
+/// This header ...
+///
+// =================================================================================================
+
+// *** Could derive from Basic_Handler - buffer file tail in a temp file.
+
+extern XMPFileHandler* GIF_MetaHandlerCTor ( XMPFiles* parent );
+
+extern bool GIF_CheckFormat ( XMP_FileFormat format,
+ XMP_StringPtr filePath,
+ XMP_IO* fileRef,
+ XMPFiles* parent );
+
+static const XMP_OptionBits kGIF_HandlerFlags = ( kXMPFiles_CanInjectXMP |
+ kXMPFiles_CanExpand |
+ kXMPFiles_PrefersInPlace |
+ kXMPFiles_AllowsOnlyXMP |
+ kXMPFiles_ReturnsRawPacket |
+ kXMPFiles_NeedsReadOnlyPacket
+ );
+
+class GIF_MetaHandler : public XMPFileHandler
+{
+public:
+
+ void CacheFileData();
+ void ProcessXMP();
+
+ void UpdateFile ( bool doSafeUpdate );
+ void WriteTempFile ( XMP_IO* tempRef );
+
+ bool SafeWriteFile ();
+
+ GIF_MetaHandler ( XMPFiles* parent );
+ virtual ~GIF_MetaHandler();
+
+private:
+
+ enum GIFBlockType
+ {
+ kXMP_block_ImageDesc = 0x2C,
+ kXMP_block_Extension = 0x21,
+ kXMP_block_Trailer = 0x3B,
+ kXMP_block_Header = 0x47
+ };
+
+ XMP_Uns64 XMPPacketOffset;
+ XMP_Uns32 XMPPacketLength;
+ XMP_Uns64 trailerOffset;
+
+ bool ParseGIFBlocks( XMP_IO * fileRef );
+ void ReadLogicalScreenDesc( XMP_IO* fileRef );
+ void SeekFile( XMP_IO * fileRef, XMP_Int64 offset, SeekMode mode );
+
+}; // GIF_MetaHandler
+
+// =================================================================================================
+
+#endif /* __GIF_Handler_hpp__ */
diff --git a/XMPFiles/source/FileHandlers/JPEG_Handler.cpp b/XMPFiles/source/FileHandlers/JPEG_Handler.cpp
index bdc5505..a37f78e 100644
--- a/XMPFiles/source/FileHandlers/JPEG_Handler.cpp
+++ b/XMPFiles/source/FileHandlers/JPEG_Handler.cpp
@@ -24,6 +24,8 @@
#include "third-party/zuid/interfaces/MD5.h"
+#include <algorithm>
+
using namespace std;
// =================================================================================================
@@ -651,8 +653,7 @@ void JPEG_MetaHandler::ProcessXMP()
// Process the legacy metadata.
if ( haveIPTC && (! haveXMP) && (iptcDigestState == kDigestMatches) ) iptcDigestState = kDigestMissing;
- bool parseIPTC = (iptcDigestState != kDigestMatches) || (! readOnly);
- if ( parseIPTC ) iptc.ParseMemoryDataSets ( iptcInfo.dataPtr, iptcInfo.dataLen );
+ if (iptcInfo.dataLen) iptc.ParseMemoryDataSets ( iptcInfo.dataPtr, iptcInfo.dataLen );
ImportPhotoData ( exif, iptc, psir, iptcDigestState, &this->xmpObj, options );
this->containsXMP = true; // Assume we had something for the XMP.
@@ -961,7 +962,7 @@ void JPEG_MetaHandler::WriteTempFile ( XMP_IO* tempRef )
}
if ( copySegment && (signatureLen == kExtXMPSignatureLength) &&
- CheckBytes ( &buffer[0], kExtXMPSignatureString, kExtXMPPrefixLength ) ) {
+ CheckBytes ( &buffer[0], kExtXMPSignatureString, kExtXMPSignatureLength ) ) {
copySegment = false;
}
diff --git a/XMPFiles/source/FileHandlers/MP3_Handler.cpp b/XMPFiles/source/FileHandlers/MP3_Handler.cpp
index 3215e72..e9520f3 100644
--- a/XMPFiles/source/FileHandlers/MP3_Handler.cpp
+++ b/XMPFiles/source/FileHandlers/MP3_Handler.cpp
@@ -14,11 +14,14 @@
#include "XMPFiles/source/XMPFiles_Impl.hpp"
#include "XMPFiles/source/FormatSupport/Reconcile_Impl.hpp"
+#include "source/UnicodeConversions.hpp"
#include "source/XMPFiles_IO.hpp"
#include "source/XIO.hpp"
#include "XMPFiles/source/FileHandlers/MP3_Handler.hpp"
+#include <sstream>
+
// =================================================================================================
/// \file MP3_Handler.cpp
/// \brief MP3 handler class.
@@ -204,7 +207,10 @@ void MP3_MetaHandler::CacheFileData()
// read frames
XMP_Uns32 xmpID = XMP_V23_ID;
- if ( this->majorVersion == 2 ) xmpID = XMP_V22_ID;
+ if ( this->majorVersion == 2 )
+ {
+ xmpID = XMP_V22_ID;
+ }
while ( file->Offset() < this->oldTagSize ) {
@@ -442,10 +448,9 @@ void MP3_MetaHandler::ProcessXMP()
if ( xmpObj.GetProperty_Date ( kXMP_NS_XMP, "CreateDate", &oldDateTime, 0 ) )
{
- haveNewDateTime = haveNewDateTime &&
- ( (newDateTime.year != oldDateTime.year) ||
- ( (newDateTime.month != 0 ) && ( (newDateTime.day != oldDateTime.day) || (newDateTime.month != oldDateTime.month) ) ) ||
- ( newDateTime.hasTime && ( (newDateTime.hour != oldDateTime.hour) || (newDateTime.minute != oldDateTime.minute) ) ) );
+ haveNewDateTime = haveNewDateTime && ( (newDateTime.year != oldDateTime.year) || ( (newDateTime.month != 0 )
+ && ( (newDateTime.day != oldDateTime.day) || (newDateTime.month != oldDateTime.month) ) )
+ || ( newDateTime.hasTime && ( (newDateTime.hour != oldDateTime.hour) || (newDateTime.minute != oldDateTime.minute) ) ) );
}
// NOTE: no further validation nessesary the function "SetProperty_Date" will care about validating date and time
// any exception will be caught and block import
@@ -727,3 +732,4 @@ void MP3_MetaHandler::WriteTempFile ( XMP_IO* tempRef )
IgnoreParam(tempRef);
XMP_Throw ( "MP3_MetaHandler::WriteTempFile: Not supported", kXMPErr_Unimplemented );
} // MP3_MetaHandler::WriteTempFile
+
diff --git a/XMPFiles/source/FileHandlers/MP3_Handler.hpp b/XMPFiles/source/FileHandlers/MP3_Handler.hpp
index 05345c6..6916f2e 100644
--- a/XMPFiles/source/FileHandlers/MP3_Handler.hpp
+++ b/XMPFiles/source/FileHandlers/MP3_Handler.hpp
@@ -23,14 +23,12 @@ extern bool MP3_CheckFormat ( XMP_FileFormat format,
XMP_StringPtr filePath,
XMP_IO* fileRef,
XMPFiles * parent );
-
static const XMP_OptionBits kMP3_HandlerFlags = (kXMPFiles_CanInjectXMP |
kXMPFiles_CanExpand |
kXMPFiles_PrefersInPlace |
kXMPFiles_AllowsOnlyXMP |
- kXMPFiles_ReturnsRawPacket|
+ kXMPFiles_ReturnsRawPacket |
kXMPFiles_CanReconcile);
-
class MP3_MetaHandler : public XMPFileHandler
{
public:
@@ -43,7 +41,6 @@ public:
void WriteTempFile ( XMP_IO* tempRef );
void ProcessXMP();
-
private:
////////////////////////////////////////////////////////////////////////////////////
// instance vars
diff --git a/XMPFiles/source/FileHandlers/MPEG4_Handler.cpp b/XMPFiles/source/FileHandlers/MPEG4_Handler.cpp
index 905f19f..ee25d7a 100644
--- a/XMPFiles/source/FileHandlers/MPEG4_Handler.cpp
+++ b/XMPFiles/source/FileHandlers/MPEG4_Handler.cpp
@@ -179,8 +179,8 @@ static inline bool IsXMPUUID ( XMP_IO * fileRef,XMP_Uns64 contentSize, bool unmo
//
// An MPEG-4 or modern QuickTime file is an instance of an ISO Base Media file, ISO 14496-12 and -14.
// A classic QuickTime file has the same physical box structure, but somewhat different box types.
-// The ISO files must begin with an 'ftyp' box containing 'mp41', 'mp42', 'f4v ', or 'qt ' in the
-// compatible brands.
+// The ISO files must begin with an 'ftyp' box containing 'mp41', 'mp42', 'f4v ', 'qt ', 'isom','3gp4',
+// '3g2a','3g2b' or '3g2c' in the compatible brands.
//
// The general box structure is:
//
@@ -259,8 +259,11 @@ bool MPEG4_CheckFormat ( XMP_FileFormat format,
parent->format = kXMP_MOVFile;
parent->tempUI32 = MOOV_Manager::kFileIsModernQT;
return true;
- } else if ( (brand == ISOMedia::k_mp41) || (brand == ISOMedia::k_mp42) ||
- (brand == ISOMedia::k_f4v) || ( brand == ISOMedia::k_avc1 ) ) {
+ }
+ else if ( ( brand == ISOMedia::k_mp41 ) || ( brand == ISOMedia::k_mp42 ) ||
+ ( brand == ISOMedia::k_f4v ) || ( brand == ISOMedia::k_avc1 ) || ( brand == ISOMedia::k_isom ) ||
+ ( brand == ISOMedia::k_3gp4 ) || ( brand == ISOMedia::k_3g2a ) || ( brand == ISOMedia::k_3g2b ) ||
+ ( brand == ISOMedia::k_3g2c ) ) {
haveCompatibleBrand = true; // Need to keep looking in case 'qt ' follows.
}
@@ -1774,7 +1777,7 @@ static void AttemptFileRepair ( XMP_IO* qtFile, XMP_Int64 fileSpace, QTErrorMode
}
AtomInfo info;
- XMP_Int64 headerSize;
+ XMP_Int64 headerSize(0);
// Process the top level atoms until an error is found.
@@ -2062,7 +2065,7 @@ void MPEG4_MetaHandler::CacheFileData()
bool xmpOnly = XMP_OptionIsSet ( openFlags, kXMPFiles_OpenOnlyXMP );
bool haveISOFile = (this->fileMode == MOOV_Manager::kFileIsNormalISO);
- bool uuidFound = (! haveISOFile); // Ignore the XMP 'uuid' box for QuickTime files.
+ bool xmpUuidFound = (! haveISOFile); // Ignore the XMP 'uuid' box for QuickTime files.
bool moovIgnored = (xmpOnly & haveISOFile); // Ignore the 'moov' box for XMP-only ISO files.
bool moovFound = moovIgnored;
@@ -2089,24 +2092,24 @@ void MPEG4_MetaHandler::CacheFileData()
this->moovBoxPos = boxPos;
this->moovBoxSize = (XMP_Uns32)fullMoovSize;
moovFound = true;
- if ( uuidFound ) break; // Exit the loop when both are found.
+ if ( xmpUuidFound ) break; // Exit the loop when both are found.
- } else if ( (! uuidFound) && (currBox.boxType == ISOMedia::k_uuid) && IsXMPUUID(fileRef,currBox.contentSize) ) {
+ } else if ( (! xmpUuidFound) && (currBox.boxType == ISOMedia::k_uuid) && ( memcmp( currBox.idUUID, ISOMedia::k_xmpUUID, 16 ) == 0 ) ) {
XMP_Uns64 fullUuidSize = currBox.headerSize + currBox.contentSize;
if ( fullUuidSize > moovBoxSizeLimit ) { // From here on we know 32-bit offsets are safe.
XMP_Throw ( "Oversize XMP 'uuid' box", kXMPErr_EnforceFailure );
}
- this->packetInfo.offset = boxPos + currBox.headerSize + 16; // The 16 is for the UUID.
- this->packetInfo.length = (XMP_Int32) (currBox.contentSize - 16);
+ this->packetInfo.offset = boxPos + currBox.headerSize ;
+ this->packetInfo.length = (XMP_Int32) (currBox.contentSize);
this->xmpPacket.assign ( this->packetInfo.length, ' ' );
fileRef->ReadAll ( (void*)this->xmpPacket.data(), this->packetInfo.length );
this->xmpBoxPos = boxPos;
this->xmpBoxSize = (XMP_Uns32)fullUuidSize;
- uuidFound = true;
+ xmpUuidFound = true;
if ( moovFound ) break; // Exit the loop when both are found.
}
@@ -2679,7 +2682,7 @@ void MPEG4_MetaHandler::OptimizeFileLayout()
needsOptimization = mdatFound;
if ( xmpFound ) break; // Don't need to look further.
- } else if ( currBox.boxType == ISOMedia::k_uuid && IsXMPUUID(originalFile,currBox.contentSize) ) {
+ } else if ( currBox.boxType == ISOMedia::k_uuid && ( memcmp( currBox.idUUID, ISOMedia::k_xmpUUID, 16 ) == 0 ) ) {
xmpFound = true;
xmpIndex = boxCount-1; // Need later for optimization.
@@ -3009,7 +3012,7 @@ void MPEG4_MetaHandler::UpdateFile ( bool doSafeUpdate )
// The uuid form of XMP has the 16-byte UUID in front of the XMP packet. Form the complete
// box (including size/type header) for UpdateTopLevelBox.
RawDataBlock uuidBox;
- XMP_Uns32 uuidSize = 4+4 + 16 + (XMP_Uns32)this->xmpPacket.size();
+ XMP_Uns32 uuidSize = 4 + 4 + 16 + (XMP_Uns32)this->xmpPacket.size();
uuidBox.assign ( uuidSize, 0 );
PutUns32BE ( uuidSize, &uuidBox[0] );
PutUns32BE ( ISOMedia::k_uuid, &uuidBox[4] );
diff --git a/XMPFiles/source/FileHandlers/P2_Handler.cpp b/XMPFiles/source/FileHandlers/P2_Handler.cpp
index 4a2e508..982744d 100644
--- a/XMPFiles/source/FileHandlers/P2_Handler.cpp
+++ b/XMPFiles/source/FileHandlers/P2_Handler.cpp
@@ -718,6 +718,7 @@ void P2_MetaHandler::SetStartTimecodeFromLegacyXML ( XML_NodePtr legacyVideoCont
} else if ( p2FrameRate == "50p" ) {
dmTimeFormat = "50Timecode";
+ this->AdjustTimeCode( p2StartTimecode, false );
} else if ( p2FrameRate == "59.94p" ) {
@@ -726,6 +727,7 @@ void P2_MetaHandler::SetStartTimecodeFromLegacyXML ( XML_NodePtr legacyVideoCont
} else if ( XMP_LitMatch ( p2DropFrameFlag, "false" ) ) {
dmTimeFormat = "5994NonDropTimecode";
}
+ this->AdjustTimeCode( p2StartTimecode, false );
} else if ( (p2FrameRate == "59.94i") || (p2FrameRate == "29.97p") ) {
@@ -767,6 +769,56 @@ void P2_MetaHandler::SetStartTimecodeFromLegacyXML ( XML_NodePtr legacyVideoCont
} // P2_MetaHandler::SetStartTimecodeFromLegacyXML
+// =================================================================================================
+// P2_MetaHandler::AdjustTimeCode
+// ===========================================
+
+void P2_MetaHandler::AdjustTimeCode( std::string & p2Timecode, const XMP_Bool & isXMPtoXMLConversion )
+{
+ /*
+ XMP is storing frame number for 50P and 59.94P as [0-49] and [0-59] respectively,
+ but NRT XML can store frame number for these format as [0-29].
+ So, XMP need to adjust values for these cases.
+ */
+ try
+ {
+ XMP_Int64 strLength = p2Timecode.length();
+ XMP_Int64 index = strLength - 1;
+ for (; index > 0; --index)
+ if (p2Timecode.at(index) == ':')
+ break;
+ std::string FFValue;
+ if ( index == strLength - 2 ) // HH:MM:SS:F
+ FFValue = p2Timecode.substr(index + 1, 1);
+ else if ( index == strLength - 3 )
+ FFValue = p2Timecode.substr(index + 1, 2); // HH:MM:SS:FF
+ else
+ throw; // Invalid format
+ stringstream timeCodeStream (FFValue);
+ XMP_Uns32 frameNumber;
+ timeCodeStream >> frameNumber;
+ if (isXMPtoXMLConversion) // Conversion from XMP to XML so doing half the value
+ {
+ frameNumber /= 2;
+ XMP_Assert(frameNumber >= 0 && frameNumber < 30);
+ }
+ else // Conversion from XML to XMP so doubling the value
+ {
+ XMP_Assert(frameNumber >= 0 && frameNumber < 30);
+ frameNumber *= 2;
+ }
+ timeCodeStream.clear();
+ timeCodeStream << p2Timecode.substr(0, index + 1);
+ if (frameNumber < 10)
+ timeCodeStream << '0';
+ timeCodeStream << frameNumber;
+ p2Timecode = timeCodeStream.str();
+ }
+ catch (...)
+ {
+ XMP_Throw("P2 Invalid Timecode.", kXMPErr_InternalFailure);
+ }
+} // P2_MetaHandler::AdjustTimeCode
// =================================================================================================
// P2_MetaHandler::SetGPSPropertyFromLegacyXML
@@ -1235,7 +1287,35 @@ void P2_MetaHandler::UpdateFile ( bool doSafeUpdate )
updateLegacyXML = true;
}
}
+ }
+ // Half the startTimeCode frame number value in XML if require so
+ std::string xmpStartTimeCode;
+ bool isTimecodeExists = this->xmpObj.GetStructField(kXMP_NS_DM, "startTimecode", kXMP_NS_DM, "timeValue", &xmpStartTimeCode, 0);
+ if (isTimecodeExists)
+ {
+ std::string frameFormat;
+ this->xmpObj.GetStructField(kXMP_NS_DM, "startTimecode", kXMP_NS_DM, "timeFormat", &frameFormat, 0);
+ if (frameFormat == "50Timecode" || frameFormat == "5994DropTimecode" || frameFormat == "5994NonDropTimecode")
+ {
+ p2Clip = this->p2ClipManager.GetManagedClip();
+ XMP_StringPtr p2NS = p2Clip->GetP2RootNode()->ns.c_str();
+ XML_NodePtr legacyVideoContext = p2Clip->GetEssenceListNode();
+ if (legacyVideoContext != 0)
+ {
+ legacyVideoContext = legacyVideoContext->GetNamedElement(p2NS, "Video");
+ XML_NodePtr legacyProp = legacyVideoContext->GetNamedElement(p2NS, "StartTimecode");
+ if ((legacyProp != 0) && legacyProp->IsLeafContentNode())
+ {
+ AdjustTimeCode( xmpStartTimeCode, true );
+ if (xmpStartTimeCode != legacyProp->GetLeafContentValue())
+ {
+ legacyProp->SetLeafContentValue(xmpStartTimeCode.c_str());
+ updateLegacyXML = true;
+ }
+ }
+ }
+ }
}
std::string newDigest;
diff --git a/XMPFiles/source/FileHandlers/P2_Handler.hpp b/XMPFiles/source/FileHandlers/P2_Handler.hpp
index 5e492ee..8ef6da3 100644
--- a/XMPFiles/source/FileHandlers/P2_Handler.hpp
+++ b/XMPFiles/source/FileHandlers/P2_Handler.hpp
@@ -99,6 +99,7 @@ private:
void SetStartTimecodeFromLegacyXML ( XML_NodePtr legacyVideoContext, bool digestFound );
void SetGPSPropertyFromLegacyXML ( XML_NodePtr legacyLocationContext, bool digestFound, XMP_StringPtr propName, XMP_StringPtr legacyPropName );
void SetAltitudeFromLegacyXML ( XML_NodePtr legacyLocationContext, bool digestFound );
+ void AdjustTimeCode( std::string & p2Timecode, const XMP_Bool & isXMPtoXMLConversion );
XML_Node * ForceChildElement ( XML_Node * parent, XMP_StringPtr localName, XMP_Int32 indent, XMP_Bool insertAtFront );
diff --git a/XMPFiles/source/FileHandlers/PSD_Handler.cpp b/XMPFiles/source/FileHandlers/PSD_Handler.cpp
index 1db6ec9..cbcf4df 100644
--- a/XMPFiles/source/FileHandlers/PSD_Handler.cpp
+++ b/XMPFiles/source/FileHandlers/PSD_Handler.cpp
@@ -250,8 +250,7 @@ void PSD_MetaHandler::ProcessXMP()
// Process the legacy metadata.
if ( haveIPTC && (! haveXMP) && (iptcDigestState == kDigestMatches) ) iptcDigestState = kDigestMissing;
- bool parseIPTC = (iptcDigestState != kDigestMatches) || (! readOnly);
- if ( parseIPTC ) iptc.ParseMemoryDataSets ( iptcInfo.dataPtr, iptcInfo.dataLen );
+ if (iptcInfo.dataLen) iptc.ParseMemoryDataSets ( iptcInfo.dataPtr, iptcInfo.dataLen );
ImportPhotoData ( exif, iptc, psir, iptcDigestState, &this->xmpObj, options );
this->containsXMP = true; // Assume we now have something in the XMP.
diff --git a/XMPFiles/source/FileHandlers/PostScript_Handler.cpp b/XMPFiles/source/FileHandlers/PostScript_Handler.cpp
index d21ab8d..4467794 100644
--- a/XMPFiles/source/FileHandlers/PostScript_Handler.cpp
+++ b/XMPFiles/source/FileHandlers/PostScript_Handler.cpp
@@ -885,7 +885,11 @@ void PostScript_MetaHandler::ParsePSFile()
if (CheckBytes ( ioBuf.ptr, Uns8Ptr("iler"), 4 ))
{
ioBuf.ptr+=4;
- while(!IsNewline(*ioBuf.ptr)) ++ioBuf.ptr;
+ while ( !IsNewline( *ioBuf.ptr ) )
+ {
+ if ( !CheckFileSpace( fileRef, &ioBuf, 1 ) ) return;
+ ++ioBuf.ptr;
+ }
setTokenInfo(kPS_Trailer,begStartpos,ioBuf.filePos+ioBuf.ptr-ioBuf.data-begStartpos);
}
}
diff --git a/XMPFiles/source/FileHandlers/RIFF_Handler.cpp b/XMPFiles/source/FileHandlers/RIFF_Handler.cpp
index 7d6fdb3..5884390 100644
--- a/XMPFiles/source/FileHandlers/RIFF_Handler.cpp
+++ b/XMPFiles/source/FileHandlers/RIFF_Handler.cpp
@@ -71,10 +71,11 @@ RIFF_MetaHandler::RIFF_MetaHandler ( XMPFiles * _parent )
this->oldFileSize = this->newFileSize = this->trailingGarbageSize = 0;
this->level = 0;
- this->listInfoChunk = this->listTdatChunk = 0;
+ this->listInfoChunk = this->listTdatChunk = this->listHdlrChunk = 0;
this->dispChunk = this->bextChunk = this->cr8rChunk = this->prmlChunk = 0;
this->xmpChunk = 0;
this->lastChunk = 0;
+ this->iditChunk = 0;
this->hasListInfoINAM = false;
}
diff --git a/XMPFiles/source/FileHandlers/RIFF_Handler.hpp b/XMPFiles/source/FileHandlers/RIFF_Handler.hpp
index d8c83a2..bfa7b2a 100644
--- a/XMPFiles/source/FileHandlers/RIFF_Handler.hpp
+++ b/XMPFiles/source/FileHandlers/RIFF_Handler.hpp
@@ -57,11 +57,12 @@ public:
// state variables, needed during parsing
XMP_Uns8 level;
- RIFF::ContainerChunk *listInfoChunk, *listTdatChunk;
+ RIFF::ContainerChunk *listInfoChunk, *listTdatChunk,*listHdlrChunk;
RIFF::ValueChunk* dispChunk;
RIFF::ValueChunk* bextChunk;
RIFF::ValueChunk* cr8rChunk;
RIFF::ValueChunk* prmlChunk;
+ RIFF::ValueChunk* iditChunk;
RIFF::XMPChunk* xmpChunk;
RIFF::ContainerChunk* lastChunk;
bool hasListInfoINAM; // needs to be known for the special 3-way merge around dc:title
diff --git a/XMPFiles/source/FileHandlers/SVG_Handler.cpp b/XMPFiles/source/FileHandlers/SVG_Handler.cpp
new file mode 100644
index 0000000..93ef108
--- /dev/null
+++ b/XMPFiles/source/FileHandlers/SVG_Handler.cpp
@@ -0,0 +1,689 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+//
+// This file includes implementation of SVG metadata, according to Scalable Vector Graphics (SVG) 1.1 Specification.
+// "https://www.w3.org/TR/2003/REC-SVG11-20030114/"
+// Copyright © 1994-2002 World Wide Web Consortium, (Massachusetts Institute of Technology,
+// Institut National de Recherche en Informatique et en Automatique, Keio University).
+// All Rights Reserved . http://www.w3.org/Consortium/Legal
+//
+// =================================================================================================
+
+#include "public/include/XMP_Environment.h" // ! XMP_Environment.h must be the first included header.
+
+#include "public/include/XMP_Const.h"
+#include "public/include/XMP_IO.hpp"
+
+#include "XMPFiles/source/XMPFiles_Impl.hpp"
+#include "source/XMPFiles_IO.hpp"
+#include "source/XIO.hpp"
+
+#include "XMPFiles/source/FileHandlers/SVG_Handler.hpp"
+
+using namespace std;
+
+/*
+ Currently supporting only UTF-8 encoded SVG
+*/
+
+// =================================================================================================
+// SVG_CheckFormat
+// ===============
+
+bool SVG_CheckFormat( XMP_FileFormat format,
+ XMP_StringPtr filePath,
+ XMP_IO * fileRef,
+ XMPFiles * parent )
+{
+ // 8K buffer is provided just to handle maximum SVG files
+ // We can't check for SVG element in whole file which could take a lot of time for valid XML files
+ IgnoreParam( filePath ); IgnoreParam( parent );
+
+ XMP_Assert( format == kXMP_SVGFile );
+
+ fileRef->Rewind();
+
+ XMP_Uns8 buffer[ 1024 ];
+
+ // Reading 4 bytes for BOM
+ XMP_Uns32 bytesRead = fileRef->Read( buffer, 4 );
+ if ( bytesRead != 4 )
+ return false;
+
+ // Checking for UTF-16 BOM and UTF-32 BOM
+ if ( ( buffer[ 0 ] == 0xFF && buffer[ 1 ] == 0xFE ) || ( buffer[ 0 ] == 0xFE && buffer[ 1 ] == 0xFF ) || ( buffer[ 0 ] == buffer[ 1 ] == 0x00 && buffer[ 2 ] == 0xFE && buffer[ 3 ] == 0xFF ) )
+ {
+ return false;
+ }
+
+ // Initially we are intersted only in "svg" element.
+ SVG_Adapter * svgChecker = new SVG_Adapter();
+ if ( svgChecker == 0 )
+ return false;
+
+ bool isSVG = false;
+
+ fileRef->Rewind();
+ for ( XMP_Uns8 index = 0; index < 8; ++index )
+ {
+ XMP_Int32 ioCount = fileRef->Read( buffer, sizeof( buffer ) );
+ if ( ioCount == 0 ) break;
+
+ // Checking for well formed XML
+ if ( !svgChecker->ParseBufferNoThrow( buffer, ioCount, false /* not the end */ ) )
+ break;
+
+ if ( svgChecker->tree.GetNamedElement( "http://www.w3.org/2000/svg", "svg" ) )
+ {
+ isSVG = true;
+ break;
+ }
+ }
+
+ if ( svgChecker )
+ delete ( svgChecker );
+
+ return isSVG;
+
+} // SVG_CheckFormat
+
+// =================================================================================================
+// SVG_MetaHandlerCTor
+// ===================
+
+XMPFileHandler * SVG_MetaHandlerCTor( XMPFiles * parent )
+{
+ return new SVG_MetaHandler( parent );
+
+} // SVG_MetaHandlerCTor
+
+// =================================================================================================
+// SVG_MetaHandler::SVG_MetaHandler
+// ================================
+
+SVG_MetaHandler::SVG_MetaHandler( XMPFiles * _parent ) : svgNode( 0 ), svgAdapter( 0 ), isTitleUpdateReq( false ), isDescUpdateReq( false )
+{
+ this->parent = _parent;
+ this->handlerFlags = kSVG_HandlerFlags;
+ this->stdCharForm = kXMP_Char8Bit;
+
+}
+
+// =================================================================================================
+// SVG_MetaHandler::~SVG_MetaHandler
+// =================================
+
+SVG_MetaHandler::~SVG_MetaHandler()
+{
+
+ if ( this->svgAdapter != 0 )
+ {
+ delete ( this->svgAdapter );
+ this->svgAdapter = 0;
+ }
+}
+
+// =================================================================================================
+// SVG_MetaHandler::GetSerializeOptions
+// ===================================
+//
+// Override default implementation to ensure Canonical packet.
+
+XMP_OptionBits SVG_MetaHandler::GetSerializeOptions()
+{
+
+ return ( kXMP_UseCanonicalFormat );
+
+} // SVG_MetaHandler::GetSerializeOptions
+
+// =================================================================================================
+// SVG_MetaHandler::CacheFileData
+// ==============================
+
+void SVG_MetaHandler::CacheFileData()
+{
+ XMP_Assert( !this->containsXMP );
+
+ XMP_IO * fileRef = this->parent->ioRef;
+
+ XMP_Uns8 marker[ 4 ];
+ fileRef->Rewind();
+ fileRef->Read( marker, 4 );
+
+ // Checking for UTF-16 BOM and UTF-32 BOM
+ if ( ( marker[ 0 ] == 0xFF && marker[ 1 ] == 0xFE ) || ( marker[ 0 ] == 0xFE && marker[ 1 ] == 0xFF ) || ( marker[ 0 ] == marker[ 1 ] == 0x00 && marker[ 2 ] == 0xFE && marker[ 3 ] == 0xFF ) )
+ {
+ XMP_Error error( kXMPErr_BadXML, "Invalid SVG file" );
+ this->NotifyClient( &this->parent->errorCallback, kXMPErrSev_OperationFatal, error );
+ }
+
+ // Creating a new SVG Parser
+ svgAdapter = new SVG_Adapter();
+ if ( svgAdapter == 0 )
+ XMP_Throw( "SVG_MetaHandler: Can't create SVG adapter", kXMPErr_NoMemory );
+ svgAdapter->SetErrorCallback( &this->parent->errorCallback );
+
+ // Registering all the required tags to SVG Parser
+ svgAdapter->RegisterPI( "xpacket" );
+ svgAdapter->RegisterElement( "metadata", "svg" );
+ svgAdapter->RegisterElement( "xmpmeta", "metadata" );
+ svgAdapter->RegisterElement( "RDF", "metadata" );
+ svgAdapter->RegisterElement( "title", "svg" );
+ svgAdapter->RegisterElement( "desc", "svg" );
+
+ // Parsing the whole buffer
+ fileRef->Rewind();
+ XMP_Uns8 buffer[ 64 * 1024 ];
+ while ( true ) {
+ XMP_Int32 ioCount = fileRef->Read( buffer, sizeof( buffer ) );
+ if ( ioCount == 0 || !svgAdapter->IsParsingRequire() ) break;
+ svgAdapter->ParseBuffer( buffer, ioCount, false /* not the end */ );
+ }
+ svgAdapter->ParseBuffer( 0, 0, true ); // End the parse.
+
+ XML_Node & xmlTree = this->svgAdapter->tree;
+ XML_NodePtr rootElem = 0;
+
+ for ( size_t i = 0, limit = xmlTree.content.size(); i < limit; ++i )
+ {
+ if ( xmlTree.content[ i ]->kind == kElemNode ) {
+ rootElem = xmlTree.content[ i ];
+ }
+ }
+ if ( rootElem == 0 )
+ XMP_Throw( "Not a valid SVG File", kXMPErr_BadFileFormat );
+
+ XMP_StringPtr rootLocalName = rootElem->name.c_str() + rootElem->nsPrefixLen;
+
+ if ( ! XMP_LitMatch( rootLocalName, "svg" ) )
+ XMP_Throw( "Not able to parse such SVG File", kXMPErr_BadFileFormat );
+
+ // Making SVG node as Root Node
+ svgNode = rootElem;
+
+ bool FoundPI = false;
+ bool FoundWrapper = false;
+ XML_NodePtr metadataNode = svgNode->GetNamedElement( rootElem->ns.c_str(), "metadata" );
+
+ // We are intersted only in the Metadata tag of outer SVG element
+ // XMP should be present only in metadata Node of SVG
+ if ( metadataNode != NULL )
+ {
+ XMP_Int64 packetLength = -1;
+ XMP_Int64 packetOffset = -1;
+ XMP_Int64 PIOffset = svgAdapter->GetPIOffset( "xpacket", 1 );
+ OffsetStruct wrapperOffset = svgAdapter->GetElementOffsets( "xmpmeta" );
+ OffsetStruct rdfOffset = svgAdapter->GetElementOffsets( "RDF" );
+
+ // Checking XMP PI's position
+ if ( PIOffset != -1 )
+ {
+ if ( wrapperOffset.startOffset != -1 && wrapperOffset.startOffset < PIOffset )
+ packetOffset = wrapperOffset.startOffset;
+ else
+ {
+ XMP_Int64 trailerOffset = svgAdapter->GetPIOffset( "xpacket", 2 );
+ XML_NodePtr trailerNode = metadataNode->GetNamedElement( "", "xpacket", 1 );
+ if ( trailerOffset != -1 || trailerNode != 0 )
+ {
+ packetLength = 2; // "<?" = 2
+ packetLength += trailerNode->name.length(); // Node's name
+ packetLength += 1; // Empty Space after Node's name
+ packetLength += trailerNode->value.length(); // Value
+ packetLength += 2; // "?>" = 2
+ packetLength += ( trailerOffset - PIOffset );
+ packetOffset = PIOffset;
+ }
+ }
+ }
+ else if ( wrapperOffset.startOffset != -1 ) // XMP Wrapper is present without PI
+ {
+ XML_NodePtr wrapperNode = metadataNode->GetNamedElement( "adobe:ns:meta/", "xmpmeta" );
+ if ( wrapperNode != 0 )
+ {
+ std::string trailerWrapper = "</x:xmpmeta>";
+ packetLength = trailerWrapper.length();
+ packetLength += ( wrapperOffset.endOffset - wrapperOffset.startOffset );
+ packetOffset = wrapperOffset.startOffset;
+ }
+ }
+ else // RDF packet is present without PI and wrapper
+ {
+ XML_NodePtr rdfNode = metadataNode->GetNamedElement( "http://www.w3.org/1999/02/22-rdf-syntax-ns#", "RDF" );
+ if ( rdfNode != 0 )
+ {
+ std::string rdfTrailer = "</rdf:RDF>";
+ packetLength = rdfTrailer.length();
+ packetLength += ( rdfOffset.endOffset - rdfOffset.startOffset );
+ packetOffset = rdfOffset.startOffset;
+ }
+ }
+
+ // Fill the necesarry information and packet with XMP data
+ if ( packetOffset != -1 )
+ {
+ this->packetInfo.offset = packetOffset;
+ this->packetInfo.length = ( XMP_Int32 ) packetLength;
+ this->xmpPacket.assign( this->packetInfo.length, ' ' );
+ fileRef->Seek( packetOffset, kXMP_SeekFromStart );
+ fileRef->ReadAll( ( void* )this->xmpPacket.data(), this->packetInfo.length );
+ FillPacketInfo( this->xmpPacket, &this->packetInfo );
+ this->containsXMP = true;
+ return;
+ }
+ }
+ this->containsXMP = false;
+
+} // SVG_MetaHandler::CacheFileData
+
+// =================================================================================================
+// SVG_MetaHandler::ProcessXMP
+// ==============================
+
+void SVG_MetaHandler::ProcessXMP()
+{
+ //
+ // Here we are intersted in Only 2 childs, title and desc
+ //
+ this->processedXMP = true; // Make sure we only come through here once.
+
+ if ( svgNode == NULL )
+ return;
+
+ if ( !this->xmpPacket.empty() ) {
+ XMP_Assert( this->containsXMP );
+ this->xmpObj.ParseFromBuffer( this->xmpPacket.c_str(), ( XMP_StringLen )this->xmpPacket.size() );
+ }
+
+ // Description
+ XML_NodePtr descNode = svgNode->GetNamedElement( svgNode->ns.c_str(), "desc" );
+ if ( descNode != 0 && descNode->content.size() == 1 && descNode->content[0]->kind == kCDataNode )
+ {
+ this->xmpObj.SetLocalizedText( kXMP_NS_DC, "description", "", "x-default", descNode->content[0]->value, kXMP_DeleteExisting );
+ this->containsXMP = true;
+ }
+
+ // Title
+ XML_NodePtr titleNode = svgNode->GetNamedElement( svgNode->ns.c_str(), "title" );
+ if ( titleNode != 0 && titleNode->content.size() == 1 && titleNode->content[ 0 ]->kind == kCDataNode )
+ {
+ this->xmpObj.SetLocalizedText( kXMP_NS_DC, "title", "", "x-default", titleNode->content[0]->value, kXMP_DeleteExisting );
+ this->containsXMP = true;
+ }
+
+} // SVG_MetaHandler::ProcessXMP
+
+// =================================================================================================
+// SVG_MetaHandler::ProcessTitle
+// ===========================
+// It is handling the updation and deletion case
+void SVG_MetaHandler::ProcessTitle( XMP_IO* sourceRef, XMP_IO * destRef, const std::string &value, XMP_Int64 &currentOffset, const OffsetStruct & titleOffset )
+{
+ if ( value.empty() )
+ {
+ XIO::Copy( sourceRef, destRef, titleOffset.startOffset - currentOffset );
+ sourceRef->Seek( titleOffset.nextOffset, kXMP_SeekFromStart );
+ currentOffset = titleOffset.nextOffset;
+ }
+ else
+ {
+ std::string titleElement = "<title>";
+ XIO::Copy( sourceRef, destRef, titleOffset.startOffset - currentOffset + titleElement.length() );
+ destRef->Write( value.c_str(), static_cast< int >( value.length() ) );
+ sourceRef->Seek( titleOffset.endOffset, kXMP_SeekFromStart );
+ currentOffset = titleOffset.endOffset;
+ }
+} // SVG_MetaHandler::ProcessTitle
+
+// =================================================================================================
+// SVG_MetaHandler::ProcessDescription
+// ===========================
+// It is handling the updation and deletion case
+void SVG_MetaHandler::ProcessDescription( XMP_IO* sourceRef, XMP_IO * destRef, const std::string &value, XMP_Int64 &currentOffset, const OffsetStruct & descOffset )
+{
+ if ( value.empty() )
+ {
+ XIO::Copy( sourceRef, destRef, descOffset.startOffset - currentOffset );
+ sourceRef->Seek( descOffset.nextOffset, kXMP_SeekFromStart );
+ currentOffset = descOffset.nextOffset;
+ }
+ else
+ {
+ std::string descElement = "<desc>";
+ XIO::Copy( sourceRef, destRef, descOffset.startOffset - currentOffset + descElement.length() );
+ destRef->Write( value.c_str(), static_cast< int >( value.length() ) );
+ sourceRef->Seek( descOffset.endOffset, kXMP_SeekFromStart );
+ currentOffset = descOffset.endOffset;
+ }
+
+} // SVG_MetaHandler::ProcessDescription
+
+// =================================================================================================
+// SVG_MetaHandler::InsertNewTitle
+// ===========================
+// It is handling the insertion case
+void SVG_MetaHandler::InsertNewTitle( XMP_IO * destRef, const std::string &value )
+{
+ std::string titleElement = "<title>";
+ destRef->Write( titleElement.c_str(), static_cast< int >( titleElement.length() ) );
+ destRef->Write( value.c_str(), static_cast< int >( value.length() ) );
+ titleElement = "</title>\n";
+ destRef->Write( titleElement.c_str(), static_cast< int >( titleElement.length() ) );
+
+} // SVG_MetaHandler::InsertNewTitle
+
+// =================================================================================================
+// SVG_MetaHandler::InsertNewDescription
+// ===========================
+// It is handling the insertion case
+void SVG_MetaHandler::InsertNewDescription( XMP_IO * destRef, const std::string &value )
+{
+ std::string descElement = "<desc>";
+ destRef->Write( descElement.c_str(), static_cast< int >( descElement.length() ) );
+ destRef->Write( value.c_str(), static_cast< int >( value.length() ) );
+ descElement = "</desc>\n";
+ destRef->Write( descElement.c_str(), static_cast< int >( descElement.length() ) );
+
+} // SVG_MetaHandler::InsertNewDescription
+
+// =================================================================================================
+// SVG_MetaHandler::InsertNewMetadata
+// ===========================
+// It is handling the insertion case
+void SVG_MetaHandler::InsertNewMetadata( XMP_IO * destRef, const std::string &value )
+{
+
+ std::string metadataElement = "<metadata>";
+ destRef->Write( metadataElement.c_str(), static_cast< int >( metadataElement.length() ) );
+ destRef->Write( value.c_str(), static_cast< int >( value.length() ) );
+ metadataElement = "</metadata>\n";
+ destRef->Write( metadataElement.c_str(), static_cast< int >( metadataElement.length() ) );
+
+} // SVG_MetaHandler::InsertNewMetadata
+
+// =================================================================================================
+// SVG_MetaHandler::UpdateFile
+// ===========================
+
+void SVG_MetaHandler::UpdateFile( bool doSafeUpdate )
+{
+ XMP_Assert( !doSafeUpdate ); // This should only be called for "unsafe" updates.
+
+ XMP_IO* sourceRef = this->parent->ioRef;
+
+ if ( sourceRef == NULL || svgNode == NULL )
+ return;
+
+ // Checking whether Title updation requires or not
+ std::string title;
+ XML_NodePtr titleNode = svgNode->GetNamedElement( svgNode->ns.c_str(), "title" );
+ (void) this->xmpObj.GetLocalizedText( kXMP_NS_DC, "title", "", "x-default", 0, &title, 0 );
+ if ( ( titleNode == NULL ) == ( title.empty() ) )
+ {
+ if ( titleNode != NULL && titleNode->content.size() == 1 && titleNode->content[ 0 ]->kind == kCDataNode && !XMP_LitMatch( titleNode->content[ 0 ]->value.c_str(), title.c_str() ) )
+ isTitleUpdateReq = true;
+ }
+ else
+ isTitleUpdateReq = true;
+
+ // Checking whether Description updation requires or not
+ std::string description;
+ XML_NodePtr descNode = svgNode->GetNamedElement( svgNode->ns.c_str(), "desc" );
+ ( void ) this->xmpObj.GetLocalizedText( kXMP_NS_DC, "description", "", "x-default", 0, &description, 0 );
+ if ( ( descNode == NULL ) == ( description.empty() ) )
+ {
+ if ( descNode != NULL && descNode->content.size() == 1 && descNode->content[ 0 ]->kind == kCDataNode && !XMP_LitMatch( descNode->content[ 0 ]->value.c_str(), description.c_str() ) )
+ isDescUpdateReq = true;
+ }
+ else
+ isDescUpdateReq = true;
+
+ // If any updation is required then don't do inplace replace
+ bool isUpdateRequire = isTitleUpdateReq | isDescUpdateReq | (this->packetInfo.offset == kXMPFiles_UnknownOffset);
+
+ // Inplace Updation of XMP
+ if ( !isUpdateRequire && this->xmpPacket.size() == this->packetInfo.length )
+ {
+ sourceRef->Seek( this->packetInfo.offset, kXMP_SeekFromStart );
+ sourceRef->Write( this->xmpPacket.c_str(), static_cast< int >( this->xmpPacket.size() ) );
+ }
+ else
+ {
+ // Inplace is not possibe, So perform full updation
+ try
+ {
+ XMP_IO* tempRef = sourceRef->DeriveTemp();
+ this->WriteTempFile( tempRef );
+ }
+ catch ( ... )
+ {
+ sourceRef->DeleteTemp();
+ throw;
+ }
+
+ sourceRef->AbsorbTemp();
+ }
+
+ this->needsUpdate = false;
+
+} // SVG_MetaHandler::UpdateFile
+
+// =================================================================================================
+// SVG_MetaHandler::WriteTempFile
+// ==============================
+//
+void SVG_MetaHandler::WriteTempFile( XMP_IO* tempRef )
+{
+ XMP_Assert( this->needsUpdate );
+
+ XMP_IO* sourceRef = this->parent->ioRef;
+ if ( sourceRef == NULL || svgNode == NULL )
+ return;
+
+ tempRef->Rewind();
+ sourceRef->Rewind();
+
+ XMP_Int64 currentOffset = svgAdapter->firstSVGElementOffset;
+ XIO::Copy( sourceRef, tempRef, currentOffset );
+
+ OffsetStruct titleOffset = svgAdapter->GetElementOffsets( "title" );
+ OffsetStruct descOffset = svgAdapter->GetElementOffsets( "desc" );
+ OffsetStruct metadataOffset = svgAdapter->GetElementOffsets( "metadata" );
+
+ std::string title;
+ std::string description;
+
+ XML_NodePtr titleNode = svgNode->GetNamedElement( svgNode->ns.c_str(), "title" );
+ ( void ) this->xmpObj.GetLocalizedText( kXMP_NS_DC, "title", "", "x-default", 0, &title, 0 );
+
+ XML_NodePtr descNode = svgNode->GetNamedElement( svgNode->ns.c_str(), "desc" );
+ ( void ) this->xmpObj.GetLocalizedText( kXMP_NS_DC, "description", "", "x-default", 0, &description, 0 );
+
+ // Need to cover the case of both workflows
+ // This would have been called after inplace is not possible
+ // This would have called for safe update
+ if ( !isTitleUpdateReq )
+ {
+ if ( ( titleNode == NULL ) == ( title.empty() ) )
+ {
+ if ( titleNode != NULL && titleNode->content.size() == 1 && titleNode->content[ 0 ]->kind == kCDataNode && !XMP_LitMatch( titleNode->content[ 0 ]->value.c_str(), title.c_str() ) )
+ isTitleUpdateReq = true;
+ }
+ else
+ isTitleUpdateReq = true;
+ }
+ if ( !isDescUpdateReq )
+ {
+ if ( ( descNode == NULL ) == ( description.empty() ) )
+ {
+ if ( descNode != NULL && descNode->content.size() == 1 && descNode->content[ 0 ]->kind == kCDataNode && !XMP_LitMatch( descNode->content[ 0 ]->value.c_str(), description.c_str() ) )
+ isDescUpdateReq = true;
+ }
+ else
+ isDescUpdateReq = true;
+ }
+
+ // Initial Insertion/Updation
+
+ // Insert/Update Title if requires
+ // Don't insert/update it if Metadata or desc child comes before title child
+ bool isTitleWritten = !isTitleUpdateReq;
+ if ( isTitleUpdateReq )
+ {
+ // Insertion Case
+ if ( titleNode == NULL )
+ {
+ InsertNewTitle( tempRef, title );
+ isTitleWritten = true;
+ }
+ else if ( ( descOffset.startOffset == -1 || titleOffset.startOffset < descOffset.startOffset ) // Updation/Deletion Case
+ && ( metadataOffset.startOffset == -1 || titleOffset.startOffset < metadataOffset.startOffset ) )
+ {
+ ProcessTitle( sourceRef, tempRef, title, currentOffset, titleOffset );
+ isTitleWritten = true;
+ }
+ }
+
+ // Insert/Update Description if requires
+ // Don't insert/update it if Metadata child comes before desc child
+ bool isDescWritten = !isDescUpdateReq;
+ if ( isDescUpdateReq )
+ {
+ if ( descNode == NULL )
+ {
+ if ( titleOffset.nextOffset != -1 )
+ {
+ XIO::Copy( sourceRef, tempRef, titleOffset.nextOffset - currentOffset );
+ currentOffset = titleOffset.nextOffset;
+ }
+ InsertNewDescription( tempRef, description );
+ isDescWritten = true;
+ }
+ else if ( metadataOffset.startOffset == -1 || descOffset.startOffset < metadataOffset.startOffset )
+ {
+ ProcessDescription( sourceRef, tempRef, description, currentOffset, descOffset );
+ isDescWritten = true;
+ }
+ }
+
+ // Insert/Update Metadata if requires
+ // Don't insert/update it if case is DTM
+ bool isMetadataWritten = false;
+ if ( metadataOffset.startOffset == -1 )
+ {
+ if ( descOffset.nextOffset != -1 )
+ {
+ XIO::Copy( sourceRef, tempRef, descOffset.nextOffset - currentOffset );
+ currentOffset = descOffset.nextOffset;
+ }
+ else if ( titleOffset.nextOffset != -1 )
+ {
+ XIO::Copy( sourceRef, tempRef, titleOffset.nextOffset - currentOffset );
+ currentOffset = titleOffset.nextOffset;
+ }
+ InsertNewMetadata( tempRef, this->xmpPacket );
+ isMetadataWritten = true;
+ }
+ else if ( !( !isTitleWritten && isDescWritten && titleOffset.startOffset < metadataOffset.startOffset ) ) // Not DTM
+ {
+ // No XMP packet was present in the file
+ if ( this->packetInfo.offset == kXMPFiles_UnknownOffset )
+ {
+ std::string metadataElement = "<metadata>";
+ XIO::Copy( sourceRef, tempRef, metadataOffset.startOffset - currentOffset + metadataElement.length() );
+ currentOffset = sourceRef->Offset();
+ tempRef->Write( this->xmpPacket.c_str(), static_cast< int >( this->xmpPacket.length() ) );
+ }
+ else // Replace XMP Packet
+ {
+ XIO::Copy( sourceRef, tempRef, this->packetInfo.offset - currentOffset );
+ tempRef->Write( this->xmpPacket.c_str(), static_cast< int >( this->xmpPacket.length() ) );
+ sourceRef->Seek( this->packetInfo.offset + this->packetInfo.length, kXMP_SeekFromStart );
+ currentOffset = sourceRef->Offset();
+ }
+ isMetadataWritten = true;
+ }
+
+ // If simple cases was followed then copy rest file
+ if ( isTitleWritten && isDescWritten && isMetadataWritten )
+ {
+ XIO::Copy( sourceRef, tempRef, ( sourceRef->Length() - currentOffset ) );
+ return;
+ }
+
+ // If the case is not Simple (TDM) then perform these operations
+ if ( isDescWritten ) // TDM, DTM, DMT
+ {
+ if ( !isTitleWritten ) // DTM, DMT
+ {
+ if ( titleOffset.startOffset < metadataOffset.startOffset ) // DTM
+ {
+ ProcessTitle( sourceRef, tempRef, title, currentOffset, titleOffset );
+ isTitleWritten = true;
+
+ if ( this->packetInfo.offset == kXMPFiles_UnknownOffset )
+ {
+ std::string metadataElement = "<metadata>";
+ XIO::Copy( sourceRef, tempRef, metadataOffset.startOffset - currentOffset + metadataElement.length() );
+ currentOffset = sourceRef->Offset();
+ tempRef->Write( this->xmpPacket.c_str(), static_cast< int >( this->xmpPacket.length() ) );
+ }
+ else
+ {
+ XIO::Copy( sourceRef, tempRef, this->packetInfo.offset - currentOffset );
+ tempRef->Write( this->xmpPacket.c_str(), static_cast< int >( this->xmpPacket.length() ) );
+ sourceRef->Seek( this->packetInfo.offset + this->packetInfo.length, kXMP_SeekFromStart );
+ currentOffset = sourceRef->Offset();
+ }
+ isMetadataWritten = true;
+
+ }
+ else // DMT
+ {
+ ProcessTitle( sourceRef, tempRef, title, currentOffset, titleOffset );
+ isTitleWritten = true;
+ }
+ }
+ // Else
+ // Would have already covered this case: TDM
+
+ }
+ else // TMD, MDT, MTD
+ {
+ if ( isTitleWritten ) // TMD
+ {
+ ProcessDescription( sourceRef, tempRef, description, currentOffset, descOffset );
+ isDescWritten = true;
+ }
+ else // MDT or MTD
+ {
+ if ( titleOffset.startOffset < descOffset.startOffset ) // MTD
+ {
+ ProcessTitle( sourceRef, tempRef, title, currentOffset, titleOffset );
+ isTitleWritten = true;
+
+ ProcessDescription( sourceRef, tempRef, description, currentOffset, descOffset );
+ isDescWritten = true;
+ }
+ else // MDT
+ {
+ ProcessDescription( sourceRef, tempRef, description, currentOffset, descOffset );
+ isDescWritten = true;
+
+ ProcessTitle( sourceRef, tempRef, title, currentOffset, titleOffset );
+ isTitleWritten = true;
+ }
+ }
+ }
+
+ // Finally Everything would have been written
+ XMP_Enforce( isTitleWritten && isDescWritten && isMetadataWritten );
+ XIO::Copy( sourceRef, tempRef, ( sourceRef->Length() - currentOffset ) );
+ this->needsUpdate = false;
+
+} // SVG_MetaHandler::WriteTempFile
diff --git a/XMPFiles/source/FileHandlers/SVG_Handler.hpp b/XMPFiles/source/FileHandlers/SVG_Handler.hpp
new file mode 100644
index 0000000..4790a98
--- /dev/null
+++ b/XMPFiles/source/FileHandlers/SVG_Handler.hpp
@@ -0,0 +1,76 @@
+#ifndef __SVG_Handler_hpp__
+#define __SVG_Handler_hpp__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+//
+// This file includes implementation of SVG metadata, according to Scalable Vector Graphics (SVG) 1.1 Specification.
+// "https://www.w3.org/TR/2003/REC-SVG11-20030114/"
+// Copyright © 1994-2002 World Wide Web Consortium, (Massachusetts Institute of Technology,
+// Institut National de Recherche en Informatique et en Automatique, Keio University).
+// All Rights Reserved . http://www.w3.org/Consortium/Legal
+//
+// =================================================================================================
+
+#include "public/include/XMP_Environment.h" // ! XMP_Environment.h must be the first included header.
+
+#include "public/include/XMP_Const.h"
+#include "public/include/XMP_IO.hpp"
+
+#include "XMPFiles/source/XMPFiles_Impl.hpp"
+#include "XMPFiles/source/FormatSupport/SVG_Adapter.hpp"
+
+extern XMPFileHandler* SVG_MetaHandlerCTor( XMPFiles* parent );
+
+extern bool SVG_CheckFormat( XMP_FileFormat format,
+ XMP_StringPtr filePath,
+ XMP_IO * fileRef,
+ XMPFiles * parent );
+
+static const XMP_OptionBits kSVG_HandlerFlags = ( kXMPFiles_CanInjectXMP |
+ kXMPFiles_CanExpand |
+ kXMPFiles_CanRewrite |
+ kXMPFiles_PrefersInPlace |
+ kXMPFiles_CanReconcile |
+ kXMPFiles_ReturnsRawPacket |
+ kXMPFiles_AllowsSafeUpdate );
+
+class SVG_MetaHandler : public XMPFileHandler {
+
+public:
+
+ void CacheFileData();
+ void ProcessXMP();
+
+ void UpdateFile( bool doSafeUpdate );
+ void WriteTempFile( XMP_IO* tempRef );
+
+ XMP_OptionBits GetSerializeOptions();
+
+ SVG_MetaHandler( XMPFiles* parent );
+ virtual ~SVG_MetaHandler();
+
+private:
+
+ SVG_MetaHandler() {};
+ SVG_Adapter * svgAdapter;
+ XML_NodePtr svgNode;
+ bool isTitleUpdateReq;
+ bool isDescUpdateReq;
+
+ void ProcessTitle( XMP_IO* sourceRef, XMP_IO * destRef, const std::string &value, XMP_Int64 &currentOffset, const OffsetStruct & titleOffset );
+ void ProcessDescription( XMP_IO* sourceRef, XMP_IO * destRef, const std::string &value, XMP_Int64 &currentOffset, const OffsetStruct & descOffset );
+ void InsertNewTitle( XMP_IO * destRef, const std::string &value );
+ void InsertNewDescription( XMP_IO * destRef, const std::string &value );
+ void InsertNewMetadata( XMP_IO * destRef, const std::string &value );
+
+}; // SVG_MetaHandler
+
+// =================================================================================================
+
+#endif /* __SVG_Handler_hpp__ */
diff --git a/XMPFiles/source/FileHandlers/TIFF_Handler.cpp b/XMPFiles/source/FileHandlers/TIFF_Handler.cpp
index a09b879..66075bd 100644
--- a/XMPFiles/source/FileHandlers/TIFF_Handler.cpp
+++ b/XMPFiles/source/FileHandlers/TIFF_Handler.cpp
@@ -272,8 +272,7 @@ void TIFF_MetaHandler::ProcessXMP()
// Process the legacy metadata.
if ( haveIPTC && (! haveXMP) && (iptcDigestState == kDigestMatches) ) iptcDigestState = kDigestMissing;
- bool parseIPTC = (iptcDigestState != kDigestMatches) || (! readOnly);
- if ( parseIPTC ) iptc.ParseMemoryDataSets ( iptcInfo.dataPtr, iptcInfo.dataLen );
+ if (iptcInfo.dataLen) iptc.ParseMemoryDataSets ( iptcInfo.dataPtr, iptcInfo.dataLen );
ImportPhotoData ( tiff, iptc, psir, iptcDigestState, &this->xmpObj, options );
this->containsXMP = true; // Assume we now have something in the XMP.
diff --git a/XMPFiles/source/FileHandlers/XDCAMEX_Handler.cpp b/XMPFiles/source/FileHandlers/XDCAMEX_Handler.cpp
index 826cc0b..74c7c00 100644
--- a/XMPFiles/source/FileHandlers/XDCAMEX_Handler.cpp
+++ b/XMPFiles/source/FileHandlers/XDCAMEX_Handler.cpp
@@ -624,12 +624,18 @@ void XDCAMEX_MetaHandler::GetTakeDuration ( const std::string & takeURI, std::st
std::string takeDir ( takeURI );
takeDir.erase ( 0, 1 ); // Change the leading "//" to "/", then all '/' to kDirChar.
+#if XMP_MacBuild
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunreachable-code"
+#endif
if ( kDirChar != '/' ) {
for ( size_t i = 0, limit = takeDir.size(); i < limit; ++i ) {
if ( takeDir[i] == '/' ) takeDir[i] = kDirChar;
}
}
-
+#if XMP_MacBuild
+#pragma clang diagnostic pop
+#endif
std::string takePath ( this->rootPath );
takePath += kDirChar;
takePath += "BPAV";
diff --git a/XMPFiles/source/FileHandlers/XDCAMFAM_Handler.cpp b/XMPFiles/source/FileHandlers/XDCAMFAM_Handler.cpp
new file mode 100644
index 0000000..ded65c4
--- /dev/null
+++ b/XMPFiles/source/FileHandlers/XDCAMFAM_Handler.cpp
@@ -0,0 +1,677 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+// =================================================================================================
+//
+// This handler will handle FAM/FTP variant of XDCAM.
+// More information could be found in XDCAM_Handler.cpp
+//
+// =================================================================================================
+
+#include "public/include/XMP_Environment.h" // ! XMP_Environment.h must be the first included header.
+
+#include "public/include/XMP_Const.h"
+#include "public/include/XMP_IO.hpp"
+
+#include "XMPFiles/source/XMPFiles_Impl.hpp"
+#include "source/XMPFiles_IO.hpp"
+#include "source/XIO.hpp"
+#include "source/IOUtils.hpp"
+
+#include "XMPFiles/source/FileHandlers/XDCAMFAM_Handler.hpp"
+#include "XMPFiles/source/FormatSupport/XDCAM_Support.hpp"
+#include "XMPFiles/source/FormatSupport/PackageFormat_Support.hpp"
+
+bool XDCAMFAM_CheckFormat ( XMP_FileFormat format,
+ const std::string & rootPath,
+ const std::string & groupName,
+ const std::string & parentName,
+ const std::string & leafName,
+ XMPFiles * parent )
+{
+ /* isXDStyle = true Means SxS Memory or XDStyle
+ , = false Means Professional Disk */
+ bool isXDStyle = false;
+ if ( (format != kXMP_XDCAM_FAMFile) && (format != kXMP_UnknownFile) ) return false;
+ if ( groupName.empty() != parentName.empty() ) return false;
+
+ if ( groupName.empty() && ( Host_IO::GetChildMode ( rootPath.c_str(), "PROAV" ) == Host_IO::kFMode_IsFolder ) ) return false;
+
+ std::string tempPath = rootPath;
+
+ if ( !parentName.empty() )
+ {
+ // Real Absolute Path exists
+ if ( ! ( parentName == "CLIP" || parentName == "SUB" || parentName == "LOCAL" ) )
+ return false;
+ tempPath += kDirChar + groupName;
+ }
+
+ // Some basic Checks
+ if ( Host_IO::GetChildMode ( tempPath.c_str(), "DISCMETA.XML" ) != Host_IO::kFMode_IsFile ) return false;
+ if ( Host_IO::GetChildMode( tempPath.c_str(), "MEDIAPRO.XML" ) != Host_IO::kFMode_IsFile ) return false;
+ if ( ( Host_IO::GetChildMode( tempPath.c_str(), "Take" ) == Host_IO::kFMode_IsFolder ) || ( Host_IO::GetChildMode( tempPath.c_str(), "Local" ) == Host_IO::kFMode_IsFolder ) )
+ isXDStyle = true;
+
+ // XDStyle can't have INDEX.XML
+ if ( isXDStyle && ( Host_IO::GetChildMode( tempPath.c_str(), "INDEX.XML" ) == Host_IO::kFMode_IsFile ) )
+ return false;
+ // XDStyle can't have ALIAS.XML
+ if( isXDStyle && ( Host_IO::GetChildMode( tempPath.c_str(), "ALIAS.XML" ) == Host_IO::kFMode_IsFile ) )
+ return false;
+ // Non-XDStyle can't have CUEUP.XML file
+ if( ( !isXDStyle ) && ( Host_IO::GetChildMode( tempPath.c_str(), "CUEUP.XML" ) == Host_IO::kFMode_IsFile ) )
+ return false;
+
+ // We will get metadata from NRT file inside Clip folder only
+ tempPath += kDirChar;
+ tempPath += "Clip";
+ tempPath += kDirChar;
+
+ std::string clipName = leafName;
+ size_t length = clipName.length();
+
+ // Proxy file support
+ if ( ( parentName == "SUB" ) )
+ {
+ if( clipName.at( length - 3 ) != 'S' || ( ! IsDigit( clipName.at( length - 2 ) ) ) || ( ! IsDigit( clipName.at( length - 1 ) ) ) )
+ return false;
+ clipName.erase( clipName.begin() + length - 3, clipName.end() );
+ }
+
+ tempPath += clipName;
+
+ // .MXF file Existence with case sensitive is the new check inserted
+ std::string mxfPath = tempPath + ".MXF";
+ if ( Host_IO::GetFileMode ( mxfPath.c_str() ) != Host_IO::kFMode_IsFile )
+ {
+ mxfPath = tempPath + ".mxf";
+ if ( Host_IO::GetFileMode ( mxfPath.c_str() ) != Host_IO::kFMode_IsFile )
+ return false;
+ }
+
+ tempPath += "M01.XML";
+ if ( Host_IO::GetFileMode ( tempPath.c_str() ) != Host_IO::kFMode_IsFile )
+ return false;
+ return true;
+
+} // XDCAMFAM_CheckFormat
+
+XMPFileHandler * XDCAMFAM_MetaHandlerCTor ( XMPFiles * parent )
+{
+ return new XDCAMFAM_MetaHandler ( parent );
+
+} // XDCAM_MetaHandlerCTor
+
+// =================================================================================================
+// XDCAMFAM_MetaHandler::XDCAMFAM_MetaHandler
+// ====================================
+XDCAMFAM_MetaHandler::XDCAMFAM_MetaHandler ( XMPFiles * _parent ) : XDCAM_MetaHandler(_parent), isXDStyle( false )
+{
+ this->handlerFlags = kXDCAMFAM_HandlerFlags;
+ // Setting the various path variables
+ this->SetPathVariables ( this->parent->GetFilePath() );
+} // XDCAMFAM_MetaHandler::XDCAMFAM_MetaHandler
+
+
+// =================================================================================================
+// XDCAMFAM_MetaHandler::SetPathVariables
+// ====================================
+void XDCAMFAM_MetaHandler::SetPathVariables ( const std::string & clientPath )
+{
+ // No need to check for existing or non existing as would have been done at check file format if ForceGivenHandler flag is not provided
+ std::string tempPath = clientPath;
+ std::string parentName, GroupName;
+ std::string ignored;
+
+ XIO::SplitLeafName ( &tempPath, &this->clipName );
+
+ this->rootPath = tempPath;
+
+ if ( ! Host_IO::Exists( clientPath.c_str() ) )
+ {
+ // Logical Path exists
+ // No need to extract extension as clipname is given without extension
+ if ( ( Host_IO::GetChildMode( tempPath.c_str(), "INDEX.XML" ) != Host_IO::kFMode_IsFile ) )
+ this->isXDStyle = true;
+ tempPath += kDirChar;
+ tempPath += "Clip";
+ XMP_Assert( Host_IO::GetFileMode( tempPath.c_str() ) == Host_IO::kFMode_IsFolder );
+ }
+ else
+ {
+ // Real Absolute Path exists
+ XIO::SplitFileExtension ( &this->clipName, &ignored );
+ XIO::SplitLeafName ( &tempPath, &parentName );
+ if ( ( Host_IO::GetChildMode( tempPath.c_str(), "INDEX.XML" ) != Host_IO::kFMode_IsFile ) )
+ this->isXDStyle = true;
+ this->rootPath = tempPath;
+
+ size_t length = this->clipName.length();
+
+ // Proxy file support
+ if ( parentName == "Sub" )
+ {
+ XMP_Assert( IsDigit( clipName.at( length - 2 ) ) && IsDigit( clipName.at( length - 1 ) ) );
+ XMP_Assert( this->clipName.at( length - 3 ) == 'S' );
+ this->clipName.erase( this->clipName.begin() + length - 3, clipName.end() );
+ tempPath += kDirChar ;
+ tempPath += "Clip";
+ }
+ else
+ tempPath += kDirChar + parentName;
+ }
+
+ // Checks for Clip folder in XDCAM
+ XMP_Assert ( Host_IO::GetChildMode ( rootPath.c_str(), "Clip" ) == Host_IO::kFMode_IsFolder );
+
+ tempPath += kDirChar;
+ tempPath += this->clipName;
+ std::string mxfPath;
+
+ // Case sensitive Extension support to check for clipname.MXF or clipname.mxf as already cover in Checkformat
+ if ( !( MakeClipFilePath( &mxfPath, ".MXF", true ) || MakeClipFilePath( &mxfPath, ".mxf", true ) ) )
+ {
+ XMP_Error error( kXMPErr_FilePathNotAFile, "Clip MXF file must be exist" );
+ NotifyClient( &this->parent->errorCallback, kXMPErrSev_FileFatal, error );
+ }
+
+ // NRT file Check as already cover in checkformat
+ if ( ! MakeClipFilePath ( &this->mNRTFilePath, "M01.XML", true ) )
+ {
+ XMP_Error error( kXMPErr_FilePathNotAFile, "Clip NRT XML file must be exist" );
+ NotifyClient( &this->parent->errorCallback, kXMPErrSev_FileFatal, error );
+ }
+
+ // Setting correct sidecar path
+ if ( this->isXDStyle || (Host_IO::GetChildMode ( rootPath.c_str(), "UserData" ) == Host_IO::kFMode_IsFolder ) )
+ {
+ if ( ! ( MakeClipFilePath( &this->sidecarPath, ".xmp", true ) || MakeClipFilePath( &this->sidecarPath, ".XMP", true ) ) )
+ this->sidecarPath = mxfPath + ".xmp";
+ }
+ else
+ {
+ if ( ! ( MakeClipFilePath( &this->sidecarPath, "M01.XMP", true ) || MakeClipFilePath( &this->sidecarPath, "M01.xmp", true ) ) )
+ this->sidecarPath = tempPath + "M01.XMP";
+ }
+
+} // XDCAMFAM_MetaHandler::SetPathVariables
+
+// =================================================================================================
+// XDCAMFAM_MetaHandler::FillAssociatedResources
+// ====================================
+void XDCAMFAM_MetaHandler::FillAssociatedResources( std::vector<std::string> * resourceList )
+{
+ //Add RootPath
+ std::string filePath = rootPath + kDirChar;
+ PackageFormat_Support::AddResourceIfExists( resourceList, filePath );
+
+ // Get the files present directly inside root folder.
+ filePath = rootPath + kDirChar + "ALIAS.XML";
+ PackageFormat_Support::AddResourceIfExists(resourceList, filePath);
+
+ // INDEX.XML doesn't exist for XDStyle
+ if( ! this->isXDStyle )
+ {
+ filePath = rootPath + kDirChar + "INDEX.XML";
+ PackageFormat_Support::AddResourceIfExists(resourceList, filePath);
+ }
+
+ filePath = rootPath + kDirChar + "DISCMETA.XML";
+ PackageFormat_Support::AddResourceIfExists(resourceList, filePath);
+
+ filePath = rootPath + kDirChar + "MEDIAPRO.XML";
+ PackageFormat_Support::AddResourceIfExists(resourceList, filePath);
+ filePath = rootPath + kDirChar + "MEDIAPRO.BUP";
+ PackageFormat_Support::AddResourceIfExists(resourceList, filePath);
+
+ // CUEUP.XML don't exist for Professional Disk XDCAM
+ if( this->isXDStyle )
+ {
+ filePath = rootPath + kDirChar + "CUEUP.XML";
+ PackageFormat_Support::AddResourceIfExists(resourceList, filePath);
+ filePath = rootPath + kDirChar + "CUEUP.BUP";
+ PackageFormat_Support::AddResourceIfExists(resourceList, filePath);
+ }
+
+ // Add the UserData folder
+ filePath = rootPath + kDirChar + "UserData" + kDirChar;
+ PackageFormat_Support::AddResourceIfExists(resourceList, filePath);
+
+
+ // Get the files present inside clip folder.
+ XMP_VarString clipPath = rootPath + kDirChar + "Clip" + kDirChar ;
+ size_t oldCount = resourceList->size();
+
+ XMP_VarString regExp;
+ XMP_StringVector regExpVec;
+
+ regExp = "^" + clipName + ".MXF$";
+ regExpVec.push_back ( regExp );
+ regExp = "^" + clipName + "M\\d\\d.XML$";
+ regExpVec.push_back ( regExp );
+ if ( this->isXDStyle )
+ {
+ regExp = "^" + clipName + "R\\d\\d.BIM$";
+ regExpVec.push_back ( regExp );
+ }
+ else
+ {
+ regExp = "^" + clipName + "M\\d\\d.KLV$";
+ regExpVec.push_back ( regExp );
+ }
+ IOUtils::GetMatchingChildren ( *resourceList, clipPath, regExpVec, false, true, true );
+ PackageFormat_Support::AddResourceIfExists( resourceList, this->sidecarPath);
+ if ( resourceList->size() <= oldCount )
+ {
+ PackageFormat_Support::AddResourceIfExists(resourceList, clipPath);
+ }
+
+ //Get the files Under Sub folder
+ clipPath = rootPath + kDirChar + "Sub" + kDirChar ;
+ regExpVec.clear();
+ regExp = "^" + clipName + "S\\d\\d.MXF$";
+ regExpVec.push_back ( regExp );
+ oldCount = resourceList->size();
+ IOUtils::GetMatchingChildren ( *resourceList, clipPath, regExpVec, false, true, true );
+ // Add Sub folder if no file inside this, was added.
+ if ( resourceList->size() <= oldCount )
+ {
+ PackageFormat_Support::AddResourceIfExists(resourceList, clipPath);
+ }
+
+ // Get the files Under Local folder if it is XDStyle
+ if ( isXDStyle )
+ {
+ clipPath = rootPath + kDirChar + "Local" + kDirChar ;
+ regExpVec.clear();
+ // ClipInfo file
+ regExp = "^" + clipName + "C\\d\\d.SMI$";
+ regExpVec.push_back ( regExp );
+ // Picture pointer file
+ regExp = "^" + clipName + "I\\d\\d.PPN$";
+ regExpVec.push_back ( regExp );
+ oldCount = resourceList->size();
+ IOUtils::GetMatchingChildren ( *resourceList, clipPath, regExpVec, false, true, true );
+ // Add Local folder if no file inside this, was added.
+ if ( resourceList->size() <= oldCount )
+ {
+ PackageFormat_Support::AddResourceIfExists(resourceList, clipPath);
+ }
+ }
+
+ // Add the Edit lists associated to this clip
+ XMP_StringVector editInfoList;
+ bool atLeastOneFileAdded = false;
+ clipPath = rootPath + kDirChar + "Edit" + kDirChar ;
+ if ( GetInfoFiles ( editInfoList , clipPath ) )
+ {
+ size_t noOfEditInfoFiles = editInfoList.size() ;
+ for( size_t count = 0; count < noOfEditInfoFiles; count++ )
+ {
+ atLeastOneFileAdded = PackageFormat_Support::AddResourceIfExists(resourceList, editInfoList[count]) ? true : atLeastOneFileAdded;
+
+ XMP_VarString editNRTFile = editInfoList[count] ;
+ size_t filenamelen = editNRTFile.length() ;
+ if ( editNRTFile[ filenamelen - 7 ] == 'E'
+ && IsDigit( editNRTFile[ filenamelen - 6 ] )
+ && IsDigit( editNRTFile[ filenamelen - 5 ] ) )
+ {
+ editNRTFile.erase( editNRTFile.begin() + filenamelen - 7, editNRTFile.end() ) ;
+ }
+ else
+ {
+ editNRTFile.erase( editNRTFile.begin() + filenamelen - 4, editNRTFile.end() ) ;
+ }
+
+ XMP_VarString fileName;
+ size_t pos = editNRTFile.find_last_of ( kDirChar );
+ fileName = editNRTFile.substr ( pos + 1 );
+ XMP_VarString regExp = "^" + fileName + "M\\d\\d.XML$";
+ oldCount = resourceList->size();
+ IOUtils::GetMatchingChildren ( *resourceList, clipPath, regExp, false, true, true );
+ atLeastOneFileAdded = resourceList->size() > oldCount;
+
+ }
+ }
+ // Add Edit folder if no file inside this, was added.
+ if ( !atLeastOneFileAdded )
+ {
+ PackageFormat_Support::AddResourceIfExists(resourceList, clipPath);
+ }
+
+ atLeastOneFileAdded = false;
+
+ // Add the Takes associated to this clip,
+ // Take folder exists only for XDStyle
+ if( this->isXDStyle )
+ {
+ XMP_StringVector takeList;
+ clipPath = rootPath + kDirChar + "Take" + kDirChar ;
+ if( GetInfoFiles ( takeList , clipPath ) )
+ {
+ size_t noOfTakes = takeList.size() ;
+ for( size_t count = 0; count < noOfTakes; count++ )
+ {
+ atLeastOneFileAdded = PackageFormat_Support::AddResourceIfExists(resourceList, takeList[count]) ? true : atLeastOneFileAdded;
+ XMP_VarString takeNRTFile = takeList[count] ;
+ size_t filenamelen = takeList[count].length() ;
+ if ( takeNRTFile[ filenamelen - 7 ] == 'U'
+ && IsDigit( takeNRTFile[ filenamelen - 6 ] )
+ && IsDigit( takeNRTFile[ filenamelen - 5 ] ) )
+ {
+ takeNRTFile.erase( takeNRTFile.begin() + filenamelen - 7, takeNRTFile.end() ) ;
+ }
+ else
+ {
+ takeNRTFile.erase( takeNRTFile.begin() + filenamelen - 4, takeNRTFile.end() ) ;
+ }
+
+ XMP_VarString fileName;
+ size_t pos = takeNRTFile.find_last_of ( kDirChar );
+ fileName = takeNRTFile.substr ( pos + 1 );
+ XMP_VarString regExp = "^" + fileName + "M\\d\\d.XML$";
+ oldCount = resourceList->size();
+ IOUtils::GetMatchingChildren ( *resourceList, clipPath, regExp, false, true, true );
+ atLeastOneFileAdded = resourceList->size() > oldCount;
+ }
+ }
+ // Add Take folder if no file inside this, was added.
+ if(!atLeastOneFileAdded)
+ {
+ filePath = rootPath + kDirChar + "Take" + kDirChar;
+ PackageFormat_Support::AddResourceIfExists(resourceList, filePath);
+ }
+ }
+
+ // Add the Planning Metadata Files associated to this clip
+ // Planning Metadata exist for both SxS and Professional Disk
+ XMP_StringVector planList;
+ clipPath = rootPath + kDirChar + "General" + kDirChar + "Sony" + kDirChar+ "Planning" + kDirChar;
+ if( GetPlanningFiles ( planList , clipPath ) )
+ {
+ size_t noOfPlans = planList.size() ;
+ for( size_t count = 0; count < noOfPlans; count++ )
+ {
+ resourceList->push_back( planList[count] );
+ }
+ }
+} // XDCAMFAM_MetaHandler::FillAssociatedResources
+
+// =================================================================================================
+// XDCAMFAM_MetaHandler::MakeClipFilePath
+// ====================================
+bool XDCAMFAM_MetaHandler::MakeClipFilePath ( std::string * path, XMP_StringPtr suffix, bool checkFile /* = false */ )
+{
+
+ *path = this->rootPath;
+ *path += kDirChar;
+
+ *path += "Clip"; // ! Yes, mixed case.
+
+ *path += kDirChar;
+ *path += this->clipName;
+ *path += suffix;
+
+ if ( ! checkFile ) return true;
+ return Host_IO::Exists ( path->c_str() );
+
+} // XDCAMFAM_MetaHandler::MakeClipFilePath
+
+// =================================================================================================
+// XDCAMFAM_MetaHandler::MakeLocalFilePath
+// ====================================
+bool XDCAMFAM_MetaHandler::MakeLocalFilePath ( std::string * path, XMP_Uns8 fileType, bool checkFile /* = false */ )
+{
+
+ *path = this->rootPath;
+ *path += kDirChar;
+
+ *path += "Local"; // ! Yes, mixed case.
+
+ *path += kDirChar;
+ *path += this->clipName;
+
+ if( fileType == k_LocalPPNFile )
+ *path += "I01.PPN";
+ else if ( fileType == k_LocalClipInfoFile )
+ *path += "S01.SMI";
+ else
+ return false;
+
+ if ( ! checkFile ) return true;
+ return Host_IO::Exists ( path->c_str() );
+
+} // XDCAMFAM_MetaHandler::MakeLocalFilePath
+
+
+// =================================================================================================
+// XDCAMFAM_MetaHandler::GetMediaProMetadata
+// ====================================
+bool XDCAMFAM_MetaHandler::GetMediaProMetadata ( SXMPMeta * xmpObjPtr,
+ const std::string& clipUMID,
+ bool digestFound )
+{
+ // Build a directory string to the MEDIAPRO file.
+ std::string mediaproPath;
+ MakeMediaproPath ( &mediaproPath );
+ return XDCAM_Support::GetMediaProLegacyMetadata ( xmpObjPtr, clipUMID, mediaproPath, digestFound );
+} // XDCAMFAM_MetaHandler::GetMediaProMetadata
+
+// =================================================================================================
+// XDCAMFAM_MetaHandler::GetPlanningFiles
+// ====================================
+bool XDCAMFAM_MetaHandler::GetPlanningFiles ( std::vector<std::string> &planInfoList, std::string pathToFolder)
+{
+ std::string clipUmid;
+ bool found = false;
+
+ if( GetClipUmid ( clipUmid ) )
+ {
+ if ( Host_IO::Exists( pathToFolder.c_str() ) &&
+ Host_IO::GetFileMode( pathToFolder.c_str() ) == Host_IO::kFMode_IsFolder
+ )
+ {
+ Host_IO::AutoFolder planFolder;
+ std::string listChild;
+
+ planFolder.folder = Host_IO::OpenFolder ( pathToFolder.c_str() );
+ while ( Host_IO::GetNextChild ( planFolder.folder, &listChild ) ) {
+ size_t filenamelen = listChild.size();
+ std::string listFilePath = pathToFolder + listChild ;
+ if ( ! ( filenamelen > 4 &&
+ ( listChild.compare ( filenamelen - 4, 4 , ".XML" ) == 0
+ ||
+ listChild.compare ( filenamelen - 4, 4 , ".xml" ) == 0
+ )
+ &&
+ Host_IO::GetFileMode( listFilePath.c_str() ) == Host_IO::kFMode_IsFile
+ ) ) continue;
+ if( IsClipsPlanning ( clipUmid , listFilePath.c_str() ) )
+ {
+ found = true ;
+ planInfoList.push_back( listFilePath );
+ }
+ }
+ }
+ }
+ return found;
+} // XDCAMFAM_MetaHandler::GetPlanningFiles
+
+// =================================================================================================
+// XDCAMFAM_MetaHandler::IsClipsPlanning
+// ====================================
+bool XDCAMFAM_MetaHandler::IsClipsPlanning ( std::string clipUmid , XMP_StringPtr planPath )
+{
+ ExpatAdapter* planniingExpat = 0 ;
+ XMP_StringPtr nameSpace = 0 ;
+ try {
+ readXMLFile( planPath, planniingExpat );
+ if ( planniingExpat != 0 )
+ {
+ XML_Node & xmlTree = planniingExpat->tree;
+ XML_NodePtr rootElem = 0;
+
+ for ( size_t i = 0, limit = xmlTree.content.size(); i < limit; ++i ) {
+ if ( xmlTree.content[i]->kind == kElemNode ) {
+ rootElem = xmlTree.content[i];
+ }
+ }
+ if ( rootElem != 0 )
+ {
+ XMP_StringPtr rootLocalName = rootElem->name.c_str() + rootElem->nsPrefixLen;
+
+ if ( XMP_LitMatch ( rootLocalName, "PlanningMetadata" ) )
+ {
+ nameSpace = rootElem->ns.c_str() ;
+ size_t noOfMaterialGroups = rootElem->CountNamedElements ( nameSpace, "MaterialGroup" ) ;
+ while( noOfMaterialGroups-- )
+ {
+ XML_NodePtr mgNode = rootElem->GetNamedElement( nameSpace, "MaterialGroup" );
+ size_t noOfMaterialElements = mgNode->CountNamedElements ( nameSpace, "Material" ) ;
+ while( noOfMaterialElements-- )
+ {
+ XML_NodePtr materialNode = mgNode->GetNamedElement( nameSpace, "Material" );
+ XMP_StringPtr materialType = materialNode->GetAttrValue ( "type" );
+ if ( materialType && XMP_LitMatch( materialType , "clip" ) )
+ {
+ XMP_StringPtr umidValue = materialNode->GetAttrValue ( "umidRef" );
+ if ( umidValue != 0 && XMP_LitMatch( umidValue , clipUmid.c_str() ) )
+ {
+ delete ( planniingExpat ) ;
+ return true;
+ }
+ }
+
+ }
+ }
+ }
+ }
+ }
+
+ } catch ( ... ) {
+ }
+ delete ( planniingExpat ) ;
+ return false;
+} // XDCAMFAM_MetaHandler::IsClipsPlanning
+
+// =================================================================================================
+// XDCAMFAM_MetaHandler::GetInfoFiles
+// ====================================
+bool XDCAMFAM_MetaHandler::GetInfoFiles ( std::vector<std::string> &infoList, std::string pathToFolder)
+{
+ std::string clipUmid;
+ bool found = false;
+
+ if( GetClipUmid ( clipUmid ) )
+ {
+ if ( Host_IO::Exists( pathToFolder.c_str() ) &&
+ Host_IO::GetFileMode( pathToFolder.c_str() ) == Host_IO::kFMode_IsFolder
+ )
+ {
+ Host_IO::AutoFolder infoFolder;
+ std::string listChild;
+
+ infoFolder.folder = Host_IO::OpenFolder ( pathToFolder.c_str() );
+ while ( Host_IO::GetNextChild ( infoFolder.folder, &listChild ) ) {
+ size_t filenamelen = listChild.size();
+ std::string listFilePath = pathToFolder + listChild ;
+ if ( ! ( filenamelen > 7 &&
+ listChild.compare ( filenamelen - 4, 4 , ".SMI" ) == 0 &&
+ Host_IO::GetFileMode( listFilePath.c_str() ) == Host_IO::kFMode_IsFile
+ ) ) continue;
+ if( RefersClipUmid ( clipUmid , listFilePath.c_str() ) )
+ {
+ found = true ;
+ infoList.push_back( listFilePath );
+ }
+ }
+ }
+ }
+ return found;
+} // XDCAMFAM_MetaHandler::GetInfoFiles
+
+// =================================================================================================
+// XDCAMFAM_MetaHandler::GetClipUmid
+// ==============================
+bool XDCAMFAM_MetaHandler::GetClipUmid ( std::string &clipUmid )
+{
+ std::string clipInfoPath;
+ ExpatAdapter* clipInfoExpat = 0 ;
+ bool umidFound = false;
+ XMP_StringPtr nameSpace = 0;
+ try {
+ if ( this->MakeLocalFilePath ( &clipInfoPath, k_LocalClipInfoFile, true ) )
+ {
+ readXMLFile( clipInfoPath.c_str(), clipInfoExpat );
+ if ( clipInfoExpat != 0 )
+ {
+ XML_Node & xmlTree = clipInfoExpat->tree;
+ XML_NodePtr rootElem = 0;
+
+ for ( size_t i = 0, limit = xmlTree.content.size(); i < limit; ++i ) {
+ if ( xmlTree.content[i]->kind == kElemNode ) {
+ rootElem = xmlTree.content[i];
+ }
+ }
+ if ( rootElem != 0 )
+ {
+ XMP_StringPtr rootLocalName = rootElem->name.c_str() + rootElem->nsPrefixLen;
+
+ if ( XMP_LitMatch ( rootLocalName, "smil" ) )
+ {
+ XMP_StringPtr umidValue = rootElem->GetAttrValue ( "umid" );
+ if ( umidValue != 0 ) {
+ clipUmid = umidValue;
+ umidFound = true;
+ }
+ }
+ }
+ }
+ }
+ if( ! umidFound )
+ { //try to get the umid from the NRT metadata
+ delete ( clipInfoExpat ) ; clipInfoExpat = 0;
+ this->MakeClipFilePath ( &clipInfoPath, "M01.XML" ) ;
+ readXMLFile( clipInfoPath.c_str(), clipInfoExpat ) ;
+ if ( clipInfoExpat != 0 )
+ {
+ XML_Node & xmlTree = clipInfoExpat->tree;
+ XML_NodePtr rootElem = 0;
+ for ( size_t i = 0, limit = xmlTree.content.size(); i < limit; ++i ) {
+ if ( xmlTree.content[i]->kind == kElemNode ) {
+ rootElem = xmlTree.content[i];
+ }
+ }
+ if ( rootElem != 0 )
+ {
+ XMP_StringPtr rootLocalName = rootElem->name.c_str() + rootElem->nsPrefixLen;
+
+ if ( XMP_LitMatch ( rootLocalName, "NonRealTimeMeta" ) )
+ {
+ nameSpace = rootElem->ns.c_str() ;
+ XML_NodePtr targetProp = rootElem->GetNamedElement ( nameSpace, "TargetMaterial" );
+ if ( (targetProp != 0) && targetProp->IsEmptyLeafNode() ) {
+ XMP_StringPtr umidValue = targetProp->GetAttrValue ( "umidRef" );
+ if ( umidValue != 0 ) {
+ clipUmid = umidValue;
+ umidFound = true;
+ }
+ }
+ }
+ }
+ }
+ }
+ } catch ( ... ) {
+ }
+ delete ( clipInfoExpat ) ;
+ return umidFound;
+} // XDCAMFAM_MetaHandler::GetClipUmid
+
+// =================================================================================================
diff --git a/XMPFiles/source/FileHandlers/XDCAMFAM_Handler.hpp b/XMPFiles/source/FileHandlers/XDCAMFAM_Handler.hpp
new file mode 100644
index 0000000..b53e55b
--- /dev/null
+++ b/XMPFiles/source/FileHandlers/XDCAMFAM_Handler.hpp
@@ -0,0 +1,71 @@
+#ifndef __XDCAMFAM_Handler_hpp__
+#define __XDCAMFAM_Handler_hpp__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "public/include/XMP_Environment.h" // ! This must be the first include.
+#include "XMPFiles/source/FileHandlers/XDCAM_Handler.hpp"
+
+
+extern XMPFileHandler * XDCAMFAM_MetaHandlerCTor ( XMPFiles * parent );
+
+extern bool XDCAMFAM_CheckFormat ( XMP_FileFormat format,
+ const std::string & rootPath,
+ const std::string & gpName,
+ const std::string & parentName,
+ const std::string & leafName,
+ XMPFiles * parent );
+
+static const XMP_OptionBits kXDCAMFAM_HandlerFlags = (kXMPFiles_CanInjectXMP |
+ kXMPFiles_CanExpand |
+ kXMPFiles_CanRewrite |
+ kXMPFiles_PrefersInPlace |
+ kXMPFiles_CanReconcile |
+ kXMPFiles_AllowsOnlyXMP |
+ kXMPFiles_ReturnsRawPacket |
+ kXMPFiles_HandlerOwnsFile |
+ kXMPFiles_AllowsSafeUpdate |
+ kXMPFiles_FolderBasedFormat);
+
+
+class XDCAMFAM_MetaHandler : public XDCAM_MetaHandler
+{
+
+public:
+
+ void FillAssociatedResources ( std::vector<std::string> * resourceList );
+ XDCAMFAM_MetaHandler ( XMPFiles * _parent );
+ virtual ~XDCAMFAM_MetaHandler() { };
+
+private:
+
+ bool isXDStyle;
+
+ bool MakeClipFilePath ( std::string * path, XMP_StringPtr suffix, bool checkFile = false );
+ void SetPathVariables ( const std::string & clientPath );
+ bool GetMediaProMetadata ( SXMPMeta * xmpObjPtr, const std::string& clipUMID, bool digestFound );
+ bool GetInfoFiles ( std::vector<std::string> &infoList, std::string pathToFolder) ;
+ bool GetPlanningFiles ( std::vector<std::string> &planInfoList, std::string pathToFolder) ;
+ bool IsClipsPlanning ( std::string clipUmid , XMP_StringPtr planPath ) ;
+ bool GetClipUmid ( std::string &clipUmid );
+ bool MakeLocalFilePath ( std::string * path, XMP_Uns8 fileType, bool checkFile = false );
+
+ XDCAMFAM_MetaHandler() : XDCAM_MetaHandler() {}; // Hidden on purpose.
+
+ enum
+ {
+ k_LocalPPNFile,
+ k_LocalClipInfoFile
+ };
+
+}; // XDCAMFAM_MetaHandler
+
+// =================================================================================================
+#endif /* __XDCAMFAM_Handler_hpp__ */
diff --git a/XMPFiles/source/FileHandlers/XDCAMSAM_Handler.cpp b/XMPFiles/source/FileHandlers/XDCAMSAM_Handler.cpp
new file mode 100644
index 0000000..f0303df
--- /dev/null
+++ b/XMPFiles/source/FileHandlers/XDCAMSAM_Handler.cpp
@@ -0,0 +1,429 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "public/include/XMP_Environment.h" // ! XMP_Environment.h must be the first included header.
+
+#include "public/include/XMP_Const.h"
+#include "public/include/XMP_IO.hpp"
+
+#include "XMPFiles/source/XMPFiles_Impl.hpp"
+#include "source/XMPFiles_IO.hpp"
+#include "source/XIO.hpp"
+#include "source/IOUtils.hpp"
+
+#include "XMPFiles/source/FileHandlers/XDCAMSAM_Handler.hpp"
+#include "XMPFiles/source/FormatSupport/XDCAM_Support.hpp"
+#include "XMPFiles/source/FormatSupport/PackageFormat_Support.hpp"
+
+bool XDCAMSAM_CheckFormat ( XMP_FileFormat format,
+ const std::string & rootPath,
+ const std::string & groupName,
+ const std::string & parentName,
+ const std::string & leafName,
+ XMPFiles * parent )
+{
+ // We only support file in CLPR folder not in other folders
+
+ if ( ( format != kXMP_XDCAM_SAMFile ) && ( format != kXMP_UnknownFile ) ) return false;
+
+ // parentName or groupName empty means Logical path exists
+ if ( groupName.empty() != parentName.empty() ) return false;
+
+ std::string tempPath = rootPath;
+ std::string clipName = leafName;
+
+ if ( groupName.empty() )
+ {
+ // Logical clip exists
+ tempPath += kDirChar;
+ tempPath += "PROAV";
+
+ // Simple checks to ensure presence or absence of Management files or CLPR folder
+ if ( Host_IO::GetChildMode ( tempPath.c_str(), "INDEX.XML" ) != Host_IO::kFMode_IsFile ) return false;
+ if ( Host_IO::GetChildMode ( tempPath.c_str(), "DISCMETA.XML" ) != Host_IO::kFMode_IsFile ) return false;
+ if ( Host_IO::GetChildMode ( tempPath.c_str(), "DISCINFO.XML" ) != Host_IO::kFMode_IsFile ) return false;
+ if ( Host_IO::GetChildMode ( tempPath.c_str(), "CLPR" ) != Host_IO::kFMode_IsFolder ) return false;
+ if ( Host_IO::GetChildMode( tempPath.c_str(), "MEDIAPRO.XML" ) == Host_IO::kFMode_IsFile ) return false;
+ tempPath += kDirChar;
+ tempPath += "CLPR";
+ tempPath += kDirChar + leafName;
+ }
+ else if ( groupName == "CLPR" )
+ {
+ // XMP provides support only to files inside CLPR
+ // Simple checks to ensure presence or absence of Management files
+ if ( Host_IO::GetChildMode ( tempPath.c_str(), "INDEX.XML" ) != Host_IO::kFMode_IsFile ) return false;
+ if ( Host_IO::GetChildMode ( tempPath.c_str(), "DISCMETA.XML" ) != Host_IO::kFMode_IsFile ) return false;
+ if ( Host_IO::GetChildMode ( tempPath.c_str(), "DISCINFO.XML" ) != Host_IO::kFMode_IsFile ) return false;
+ if ( ( Host_IO::GetChildMode( tempPath.c_str(), "MEDIAPRO.XML" ) == Host_IO::kFMode_IsFile ) ) return false;
+
+ tempPath += kDirChar + groupName;
+ tempPath += kDirChar + parentName;
+ size_t length = clipName.length();
+ const char fileType = clipName.at ( length - 3 );
+ if ( IsDigit( clipName.at( length - 1 ) ) && IsDigit( clipName.at( length - 2 ) ) )
+ {
+ // Last 3rd characater shows what is the file type
+ switch ( fileType )
+ {
+ case 'A' : // Audio
+ case 'C' : // ClipInfo
+ case 'I' : // Picture pointer
+ case 'M' : // NRT
+ case 'R' : // Real Time
+ case 'S' : // Sub (Proxy)
+ case 'V' : // Video
+ break;
+ default: // Unknown
+ return false;
+ }
+ clipName.erase ( clipName.begin() + length - 3, clipName.end() );
+ }
+ }
+ else
+ return false;
+ tempPath += kDirChar + clipName;
+ tempPath += "M01.XML";
+
+ // Checking for NRT file
+ if ( Host_IO::GetFileMode ( tempPath.c_str() ) != Host_IO::kFMode_IsFile )
+ return false;
+
+ return true;
+
+} // XDCAMSAM_CheckFormat
+
+XMPFileHandler * XDCAMSAM_MetaHandlerCTor ( XMPFiles * parent )
+{
+ return new XDCAMSAM_MetaHandler ( parent );
+} // XDCAMSAM_MetaHandlerCTor
+
+
+// =================================================================================================
+// XDCAMSAM_MetaHandler::XDCAMSAM_MetaHandler
+// ====================================
+XDCAMSAM_MetaHandler::XDCAMSAM_MetaHandler ( XMPFiles * _parent ) : XDCAM_MetaHandler(_parent)
+{
+ this->handlerFlags = kXDCAMSAM_HandlerFlags;
+ // Setting the various path variables
+ this->SetPathVariables ( this->parent->GetFilePath() );
+
+} // XDCAMSAM_MetaHandler::XDCAMSAM_MetaHandler
+
+// =================================================================================================
+// XDCAMSAM_MetaHandler::SetPathVariables
+// ====================================
+void XDCAMSAM_MetaHandler::SetPathVariables ( const std::string & clientPath )
+{
+ // No need to check for existing or non existing as would have been done at check file format if ForceGivenHandler flag is not provided
+ std::string tempPath = clientPath;
+ std::string parentName, groupName;
+ std::string ignored;
+
+ std::string leafName;
+ XIO::SplitLeafName ( &tempPath, &leafName );
+
+ if ( ! Host_IO::Exists( clientPath.c_str() ) )
+ {
+ // logical path exists
+ // No need to extract extension as clipname is given without extension
+ this->rootPath = tempPath;
+ tempPath += kDirChar;
+ tempPath += "PROAV";
+
+ XMP_Assert ( Host_IO::GetChildMode( tempPath.c_str(), "MEDIAPRO.XML" ) != Host_IO::kFMode_IsFile );
+
+ tempPath += kDirChar;
+ tempPath += "CLPR";
+ tempPath += kDirChar + leafName;
+ }
+ else
+ {
+ // Real Absolute Path exists
+ XIO::SplitFileExtension ( &leafName, &ignored );
+
+ XIO::SplitLeafName ( &tempPath, &parentName );
+ XIO::SplitLeafName ( &tempPath, &groupName );
+
+ std::string proav;
+ XIO::SplitLeafName ( &tempPath, &proav );
+ XMP_Assert ( proav == "PROAV" );
+
+ this->rootPath = tempPath;
+
+
+ XMP_Assert ( groupName == "CLPR" );
+
+ // Real Path may be ..PROAV//CLPR//clipName//clipname.MXF
+ // So XMP check for ..PROAV//CLPR//clipName//clipNameM01.xml
+ // XNP sidecar file will be ..PROAV//CLPR//clipName//clipNameM01.XMP
+ size_t length = leafName.length();
+
+ XMP_Assert ( IsDigit( leafName.at( length - 2 ) ) && IsDigit( leafName.at( length - 1 ) ) );
+ // Last 3rd character of file will inform us about its type
+ const char fileType = leafName.at( length - 3 );
+
+ // A = Audio, C = ClipInfo, I = Picture Pointer, M = Non-Realtime, R = Realtime, S = Sub (Proxy), V = Video
+ XMP_Assert ( fileType == 'A' || fileType == 'C' || fileType == 'I' || fileType == 'M' || fileType == 'R' || fileType == 'S' || fileType == 'V' );
+
+ leafName.erase ( leafName.begin() + length - 3, leafName.end() );
+
+ tempPath += kDirChar + proav;
+ tempPath += kDirChar + groupName;
+ tempPath += kDirChar + parentName;
+ }
+
+ this->clipName = leafName;
+
+
+ tempPath += kDirChar;
+ tempPath += leafName;
+
+ // NRT file Check as already cover in checkformat
+ if ( ! MakeClipFilePath( &this->mNRTFilePath, "M01.XML", true ) )
+ {
+ XMP_Error error( kXMPErr_FilePathNotAFile, "Clip NRT XML file must be exist" );
+ NotifyClient( &this->parent->errorCallback, kXMPErrSev_FileFatal, error );
+ }
+
+ // Setting correct sidecar path covering both .XMP and .xmp
+ if ( ! ( MakeClipFilePath( &this->sidecarPath, "M01.XMP", true ) || MakeClipFilePath( &this->sidecarPath, "M01.xmp", true ) ) )
+ this->sidecarPath = tempPath + "M01.XMP";
+
+} // XDCAMSAM_MetaHandler::SetPathVariables
+
+// =================================================================================================
+// XDCAMSAM_MetaHandler::FillAssociatedResources
+// ====================================
+void XDCAMSAM_MetaHandler::FillAssociatedResources( std::vector<std::string> * resourceList )
+{
+
+ std::string proavPath = rootPath + kDirChar + "PROAV" + kDirChar;
+ std::string filePath;
+
+ //Add RootPath
+ filePath = rootPath + kDirChar;
+ PackageFormat_Support::AddResourceIfExists( resourceList, filePath );
+
+ // Get the files present directly inside PROAV folder.
+ filePath = proavPath + "INDEX.XML";
+ PackageFormat_Support::AddResourceIfExists(resourceList, filePath);
+ filePath = proavPath + "INDEX.BUP";
+ PackageFormat_Support::AddResourceIfExists(resourceList, filePath);
+
+ filePath = proavPath + "DISCINFO.XML";
+ PackageFormat_Support::AddResourceIfExists(resourceList, filePath);
+ filePath = proavPath + "DISCINFO.BUP";
+ PackageFormat_Support::AddResourceIfExists(resourceList, filePath);
+
+ filePath = proavPath + "DISCMETA.XML";
+ PackageFormat_Support::AddResourceIfExists(resourceList, filePath);
+
+ // Covering files in clipname folder in CLPR folder
+ XMP_VarString clipPath = proavPath + "CLPR" + kDirChar + clipName + kDirChar;
+ XMP_VarString regExp;
+ XMP_StringVector regExpVec;
+
+ // ClipInfo file
+ regExp = "^" + clipName + "C\\d\\d.SMI$";
+ regExpVec.push_back ( regExp );
+ // Non-Real time metadata file
+ regExp = "^" + clipName + "M\\d\\d.XML$";
+ regExpVec.push_back ( regExp );
+ // Video file
+ regExp = "^" + clipName + "V\\d\\d.MXF$";
+ regExpVec.push_back ( regExp );
+ // Audio File
+ regExp = "^" + clipName + "A\\d\\d.MXF$";
+ regExpVec.push_back ( regExp );
+ // Real time metadata file
+ regExp = "^" + clipName + "R\\d\\d.BIM$";
+ regExpVec.push_back ( regExp );
+ // Picture pointer file
+ regExp = "^" + clipName + "I\\d\\d.PPN$";
+ regExpVec.push_back ( regExp );
+ // Sub(Proxy) files
+ regExp = "^" + clipName + "S\\d\\d.MXF$";
+ regExpVec.push_back ( regExp );
+ IOUtils::GetMatchingChildren ( *resourceList, clipPath, regExpVec, false, true, true );
+
+ // Adding sidecar file if exixts
+ PackageFormat_Support::AddResourceIfExists(resourceList, this->sidecarPath);
+
+ // Add the Edit lists that refer this clip
+ std::vector<std::string> editInfoList;
+ if( GetEditInfoFiles ( editInfoList ) )
+ {
+ size_t noOfEditInfoFiles = editInfoList.size() ;
+ for( size_t count = 0; count < noOfEditInfoFiles; count++ )
+ {
+ PackageFormat_Support::AddResourceIfExists(resourceList, editInfoList[count]);
+ std::string editNRTFile = editInfoList[count].c_str() ;
+ size_t filenamelen = editInfoList[count].length() ;
+ editNRTFile[ filenamelen - 7 ] = 'M';
+ editNRTFile[ filenamelen - 3 ] = 'X';
+ editNRTFile[ filenamelen - 2 ] = 'M';
+ editNRTFile[ filenamelen - 1 ] = 'L';
+ PackageFormat_Support::AddResourceIfExists(resourceList, editNRTFile );
+ }
+ }
+} // XDCAMSAM_MetaHandler::FillAssociatedResources
+
+// =================================================================================================
+// XDCAMSAM_MetaHandler::MakeClipFilePath
+// ====================================
+bool XDCAMSAM_MetaHandler::MakeClipFilePath ( std::string * path, XMP_StringPtr suffix, bool checkFile /* = false */ )
+{
+ *path = this->rootPath;
+ *path += kDirChar;
+ *path += "PROAV";
+ *path += kDirChar;
+
+ *path += "CLPR"; // ! Yes, mixed case.
+
+ *path += kDirChar;
+ *path += this->clipName;
+ *path += kDirChar;
+ *path += this->clipName;
+ *path += suffix;
+
+ if ( ! checkFile ) return true;
+ return Host_IO::Exists ( path->c_str() );
+
+} // XDCAMSAM_MetaHandler::MakeClipFilePath
+
+// =================================================================================================
+// XDCAMSAM_MetaHandler::GetEditInfoFiles
+// ====================================
+bool XDCAMSAM_MetaHandler::GetEditInfoFiles ( std::vector<std::string> &editInfoList )
+{
+ std::string clipUmid;
+ bool found = false;
+
+ if( GetClipUmid ( clipUmid ) )
+ {
+ std::string editFolderPath = this->rootPath + kDirChar + "PROAV" + kDirChar + "EDTR" + kDirChar ;
+ if ( Host_IO::Exists( editFolderPath.c_str() ) &&
+ Host_IO::GetFileMode( editFolderPath.c_str() ) == Host_IO::kFMode_IsFolder
+ )
+ {
+ Host_IO::AutoFolder edtrFolder, editFolder;
+ std::string edtrChildName, edlistChild;
+
+ edtrFolder.folder = Host_IO::OpenFolder ( editFolderPath.c_str() );
+ while ( Host_IO::GetNextChild ( edtrFolder.folder, &edtrChildName ) ) {
+ size_t childLen = edtrChildName.size();
+ std::string editListFolderPath = editFolderPath + edtrChildName + kDirChar ;
+ if ( ! ( childLen == 5 &&
+ edtrChildName[0] == 'E' &&
+ IsDigit( edtrChildName[1] ) &&
+ IsDigit( edtrChildName[2] ) &&
+ IsDigit( edtrChildName[3] ) &&
+ IsDigit( edtrChildName[4] ) &&
+ Host_IO::GetFileMode( editListFolderPath.c_str() ) == Host_IO::kFMode_IsFolder
+ ) ) continue;
+
+ editFolder.folder = Host_IO::OpenFolder ( editListFolderPath.c_str() );
+ while ( Host_IO::GetNextChild ( editFolder.folder, &edlistChild ) ) {
+ size_t filenamelen = edlistChild.size();
+ std::string editListFilePath = editListFolderPath + edlistChild ;
+ if ( ! ( filenamelen == 12 &&
+ edlistChild.compare ( filenamelen - 4, 4 , ".SMI" ) == 0 &&
+ edlistChild.compare ( 0, edtrChildName.size(), edtrChildName ) == 0 &&
+ Host_IO::GetFileMode( editListFilePath.c_str() ) == Host_IO::kFMode_IsFile
+ ) ) continue;
+ if( RefersClipUmid ( clipUmid , editListFilePath.c_str() ) )
+ {
+ found = true ;
+ editInfoList.push_back( editListFilePath );
+ }
+ }
+ }
+ }
+ }
+ return found;
+} // XDCAMSAM_MetaHandler::GetEditInfoFiles
+
+// =================================================================================================
+// XDCAMSAM_MetaHandler::GetClipUmid
+// ==============================
+bool XDCAMSAM_MetaHandler::GetClipUmid ( std::string &clipUmid )
+{
+ std::string clipInfoPath;
+ ExpatAdapter* clipInfoExpat = 0 ;
+ bool umidFound = false;
+ XMP_StringPtr nameSpace = 0;
+ try {
+ this->MakeClipFilePath ( &clipInfoPath, "C01.SMI" ) ;
+ readXMLFile( clipInfoPath.c_str(), clipInfoExpat );
+ if ( clipInfoExpat != 0 )
+ {
+ XML_Node & xmlTree = clipInfoExpat->tree;
+ XML_NodePtr rootElem = 0;
+
+ for ( size_t i = 0, limit = xmlTree.content.size(); i < limit; ++i ) {
+ if ( xmlTree.content[i]->kind == kElemNode ) {
+ rootElem = xmlTree.content[i];
+ }
+ }
+ if ( rootElem != 0 )
+ {
+ XMP_StringPtr rootLocalName = rootElem->name.c_str() + rootElem->nsPrefixLen;
+
+ if ( XMP_LitMatch ( rootLocalName, "smil" ) )
+ {
+ XMP_StringPtr umidValue = rootElem->GetAttrValue ( "umid" );
+ if ( umidValue != 0 ) {
+ clipUmid = umidValue;
+ umidFound = true;
+ }
+ }
+ }
+ }
+ if( ! umidFound )
+ { //try to get the umid from the NRT metadata
+ delete ( clipInfoExpat ) ; clipInfoExpat = 0;
+ this->MakeClipFilePath ( &clipInfoPath, "M01.XML" ) ;
+ readXMLFile( clipInfoPath.c_str(), clipInfoExpat ) ;
+ if ( clipInfoExpat != 0 )
+ {
+ XML_Node & xmlTree = clipInfoExpat->tree;
+ XML_NodePtr rootElem = 0;
+ for ( size_t i = 0, limit = xmlTree.content.size(); i < limit; ++i ) {
+ if ( xmlTree.content[i]->kind == kElemNode ) {
+ rootElem = xmlTree.content[i];
+ }
+ }
+ if ( rootElem != 0 )
+ {
+ XMP_StringPtr rootLocalName = rootElem->name.c_str() + rootElem->nsPrefixLen;
+
+ if ( XMP_LitMatch ( rootLocalName, "NonRealTimeMeta" ) )
+ {
+ nameSpace = rootElem->ns.c_str() ;
+ XML_NodePtr targetProp = rootElem->GetNamedElement ( nameSpace, "TargetMaterial" );
+ if ( (targetProp != 0) && targetProp->IsEmptyLeafNode() ) {
+ XMP_StringPtr umidValue = targetProp->GetAttrValue ( "umidRef" );
+ if ( umidValue != 0 ) {
+ clipUmid = umidValue;
+ umidFound = true;
+ }
+ }
+ }
+ }
+ }
+ }
+ } catch ( ... ) {
+ }
+ delete ( clipInfoExpat ) ;
+ return umidFound;
+} // XDCAMSAM_MetaHandler::GetClipUmid
+
+// =================================================================================================
+
diff --git a/XMPFiles/source/FileHandlers/XDCAMSAM_Handler.hpp b/XMPFiles/source/FileHandlers/XDCAMSAM_Handler.hpp
new file mode 100644
index 0000000..b68334b
--- /dev/null
+++ b/XMPFiles/source/FileHandlers/XDCAMSAM_Handler.hpp
@@ -0,0 +1,58 @@
+#ifndef __XDCAMSAM_Handler_hpp__
+#define __XDCAMSAM_Handler_hpp__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "public/include/XMP_Environment.h" // ! This must be the first include.
+#include "XMPFiles/source/FileHandlers/XDCAM_Handler.hpp"
+
+
+extern XMPFileHandler * XDCAMSAM_MetaHandlerCTor ( XMPFiles * parent );
+
+extern bool XDCAMSAM_CheckFormat ( XMP_FileFormat format,
+ const std::string & rootPath,
+ const std::string & groupName,
+ const std::string & parentName,
+ const std::string & leafName,
+ XMPFiles * parent );
+
+static const XMP_OptionBits kXDCAMSAM_HandlerFlags = (kXMPFiles_CanInjectXMP |
+ kXMPFiles_CanExpand |
+ kXMPFiles_CanRewrite |
+ kXMPFiles_PrefersInPlace |
+ kXMPFiles_CanReconcile |
+ kXMPFiles_AllowsOnlyXMP |
+ kXMPFiles_ReturnsRawPacket |
+ kXMPFiles_HandlerOwnsFile |
+ kXMPFiles_AllowsSafeUpdate |
+ kXMPFiles_FolderBasedFormat);
+
+class XDCAMSAM_MetaHandler : public XDCAM_MetaHandler
+{
+
+public:
+
+ void FillAssociatedResources ( std::vector<std::string> * resourceList );
+ XDCAMSAM_MetaHandler ( XMPFiles * _parent );
+ virtual ~XDCAMSAM_MetaHandler() { };
+
+private:
+
+ bool MakeClipFilePath ( std::string * path, XMP_StringPtr suffix, bool checkFile = false );
+ void SetPathVariables ( const std::string & clientPath );
+ bool GetEditInfoFiles ( std::vector<std::string> &editInfoList );
+ bool GetClipUmid ( std::string &clipUmid );
+
+ XDCAMSAM_MetaHandler() : XDCAM_MetaHandler() {}; // Hidden on purpose.
+
+}; // XDCAMSAM_MetaHandler
+
+// =================================================================================================
+#endif /* __XDCAMSAM_Handler_hpp__ */
diff --git a/XMPFiles/source/FileHandlers/XDCAM_Handler.cpp b/XMPFiles/source/FileHandlers/XDCAM_Handler.cpp
index 2a05be9..397b049 100644
--- a/XMPFiles/source/FileHandlers/XDCAM_Handler.cpp
+++ b/XMPFiles/source/FileHandlers/XDCAM_Handler.cpp
@@ -194,358 +194,15 @@ using namespace std;
// ! also made sure that for a logical clip path the rootPath is an existing folder, and that the
// ! file exists for a full file path.
-bool XDCAM_CheckFormat ( XMP_FileFormat format,
- const std::string & _rootPath,
- const std::string & _gpName,
- const std::string & parentName,
- const std::string & leafName,
- XMPFiles * parent )
-{
- std::string rootPath = _rootPath; // ! Need tweaking in the existing file cases (FAM and SAM).
- std::string gpName = _gpName;
-
- bool isFAM = false;
-
- std::string tempPath, childName;
-
- std::string clipName = leafName;
-
- // Do some basic checks on the root path and component names. Decide if this is FAM or SAM.
-
- if ( gpName.empty() != parentName.empty() ) return false; // Must be both empty or both non-empty.
-
- if ( gpName.empty() ) {
-
- // This is the logical clip path case. Just look for PROAV to see if this is FAM or SAM.
- if ( Host_IO::GetChildMode ( rootPath.c_str(), "PROAV" ) != Host_IO::kFMode_IsFolder ) isFAM = true;
-
- } else {
-
- // This is the existing file case. See if this is FAM or SAM, tweak the clip name as needed.
-
- if ( (parentName == "CLIP") || (parentName == "EDIT") || (parentName == "SUB") ) {
- // ! The standard says Clip/Edit/Sub, but the caller has already shifted to upper case.
- isFAM = true;
- } else if ( (gpName != "CLPR") && (gpName != "EDTR") ) {
- return false;
- }
-
- if ( isFAM ) {
-
- // Put the proper root path together. Clean up the clip name if needed.
-
- if ( ! rootPath.empty() ) rootPath += kDirChar;
- rootPath += gpName;
- gpName.erase();
-
- // XMPilot has no ALIAS.XML, but does have a UserData folder, don't change the first
- // letter of the clip name for XMPilot.
- if ( (Host_IO::GetChildMode ( rootPath.c_str(), "ALIAS.XML" ) != Host_IO::kFMode_IsFile) &&
- (Host_IO::GetChildMode ( rootPath.c_str(), "UserData" ) != Host_IO::kFMode_IsFolder) ) {
- clipName[0] = 'C'; // ! See notes above about pending bug.
- }
-
- if ( clipName.size() > 3 ) {
- size_t clipMid = clipName.size() - 3;
- char c1 = clipName[clipMid];
- char c2 = clipName[clipMid+1];
- char c3 = clipName[clipMid+2];
- if ( ('A' <= c1) && (c1 <= 'Z') &&
- ('0' <= c2) && (c2 <= '9') && ('0' <= c3) && (c3 <= '9') ) {
- clipName.erase ( clipMid );
- }
- }
-
- } else {
-
- // Fix the clip name. Check for and strip the "PROAV" suffix on the root path.
-
- clipName = parentName; // ! We have a folder with the (almost) exact clip name.
- clipName[0] = 'C';
-
- std::string proav;
- XIO::SplitLeafName ( &rootPath, &proav );
- MakeUpperCase ( &proav );
- if ( (rootPath.empty()) || (proav != "PROAV") ) return false;
-
- }
-
- }
-
- // Make sure the general XDCAM package structure is legit. Set tempPath as a bogus path of the
- // form <root>/<FAM-or-SAM>/<clip>, e.g. ".../MyMovie/FAM/C0001". This is passed the handler via
- // the tempPtr hackery.
-
- if ( isFAM ) {
-
- if ( (format != kXMP_XDCAM_FAMFile) && (format != kXMP_UnknownFile) ) return false;
-
- tempPath = rootPath;
-
- // XMPilot does not have INDEX.XML but does have UserData.
- if ( (Host_IO::GetChildMode ( tempPath.c_str(), "INDEX.XML" ) != Host_IO::kFMode_IsFile) &&
- !((Host_IO::GetChildMode ( rootPath.c_str(), "UserData" ) == Host_IO::kFMode_IsFolder)
- // Changes introduced by Sony for XDCAM Memory SxS format in the FAM file structure are
- // 1) There is no INDEX.XML in the root directory for XDCAM Memory SxS.
- // 2) There is a new Take folder(similar to XDCAMEX) in the root directory.
- || (Host_IO::GetChildMode ( tempPath.c_str(), "Take" ) == Host_IO::kFMode_IsFolder))) return false;
- if ( Host_IO::GetChildMode ( tempPath.c_str(), "DISCMETA.XML" ) != Host_IO::kFMode_IsFile ) return false;
- if ( Host_IO::GetChildMode ( tempPath.c_str(), "MEDIAPRO.XML" ) != Host_IO::kFMode_IsFile ) return false;
-
- tempPath += kDirChar;
- tempPath += "Clip"; // ! Yes, mixed case.
- tempPath += kDirChar;
- tempPath += clipName;
- tempPath += "M01.XML";
- if ( Host_IO::GetFileMode ( tempPath.c_str() ) != Host_IO::kFMode_IsFile ) return false;
-
- tempPath = rootPath;
- tempPath += kDirChar;
- tempPath += "FAM";
- tempPath += kDirChar;
- tempPath += clipName;
-
- } else {
-
- if ( (format != kXMP_XDCAM_SAMFile) && (format != kXMP_UnknownFile) ) return false;
-
- // We already know about the PROAV folder, just check below it.
-
- tempPath = rootPath;
- tempPath += kDirChar;
- tempPath += "PROAV";
-
- if ( Host_IO::GetChildMode ( tempPath.c_str(), "INDEX.XML" ) != Host_IO::kFMode_IsFile ) return false;
- if ( Host_IO::GetChildMode ( tempPath.c_str(), "DISCMETA.XML" ) != Host_IO::kFMode_IsFile ) return false;
- if ( Host_IO::GetChildMode ( tempPath.c_str(), "DISCINFO.XML" ) != Host_IO::kFMode_IsFile ) return false;
- if ( Host_IO::GetChildMode ( tempPath.c_str(), "CLPR" ) != Host_IO::kFMode_IsFolder ) return false;
-
- tempPath += kDirChar;
- tempPath += "CLPR";
- tempPath += kDirChar;
- tempPath += clipName;
- if ( Host_IO::GetFileMode ( tempPath.c_str() ) != Host_IO::kFMode_IsFolder ) return false;
-
- tempPath += kDirChar;
- tempPath += clipName;
- tempPath += "M01.XML";
- if ( Host_IO::GetFileMode ( tempPath.c_str() ) != Host_IO::kFMode_IsFile ) return false;
-
- tempPath = rootPath;
- tempPath += kDirChar;
- tempPath += "SAM";
- tempPath += kDirChar;
- tempPath += clipName;
-
- }
-
- // Save the pseudo-path for the handler object. A bit of a hack, but the only way to get info
- // from here to there.
-
- size_t pathLen = tempPath.size() + 1; // Include a terminating nul.
- parent->tempPtr = malloc ( pathLen );
- if ( parent->tempPtr == 0 ) XMP_Throw ( "No memory for XDCAM clip info", kXMPErr_NoMemory );
- memcpy ( parent->tempPtr, tempPath.c_str(), pathLen ); // AUDIT: Safe, allocated above.
-
- return true;
-
-} // XDCAM_CheckFormat
-
-// =================================================================================================
-
-static void* CreatePseudoClipPath ( const std::string & clientPath ) {
-
- // Used to create the clip pseudo path when the CheckFormat function is skipped.
-
- std::string pseudoPath = clientPath;
- std::string clipName;
- bool isSAM;
-
- size_t pathLen;
- void* tempPtr = 0;
-
- if ( ! Host_IO::Exists ( pseudoPath.c_str() ) ) {
-
- // This is the logical clip path case. Look for PROAV to see if this is FAM or SAM.
-
- XIO::SplitLeafName ( &pseudoPath, &clipName ); // Extract the logical clip name, no extension.
- isSAM = ( Host_IO::GetChildMode ( pseudoPath.c_str(), "PROAV" ) == Host_IO::kFMode_IsFolder );
-
- } else {
-
- // The client passed a physical path. We have separate cases for FAM and SAM. If the last
- // folder, the parent of the file, is Clip, Edit, or Sub (ignoring case) then this is FAM
- // and things are a bit messy. For SAM, the parent folder is the almost clip name.
-
- std::string parentName, ignored;
-
- XIO::SplitLeafName ( &pseudoPath, &clipName ); // Extract the logical clip name.
- XIO::SplitFileExtension ( &clipName, &ignored );
-
- XIO::SplitLeafName ( &pseudoPath, &parentName );
- MakeUpperCase ( &parentName );
- isSAM = ( (parentName != "CLIP") && (parentName != "EDIT") && (parentName != "SUB") );
-
- if ( isSAM ) {
-
- // SAM is easy, the parent name is almost the clip name, the first letter gets coerced
- // to 'C'. There are 2 other folders to remove from the path.
-
- clipName = parentName;
- clipName[0] = 'C';
- XIO::SplitLeafName ( &pseudoPath, &ignored ); // Remove the 2 intermediate folder levels.
- XIO::SplitLeafName ( &pseudoPath, &ignored );
-
- } else {
-
- // FAM is a bit messy, study the comments and code of XDCAM_CheckFormat for details.
-
- if ( Host_IO::GetChildMode ( pseudoPath.c_str(), "ALIAS.XML" ) != Host_IO::kFMode_IsFile ) {
- clipName[0] = 'C'; // ! See notes in XDCAM_CheckFormat about pending bug.
- }
-
- if ( clipName.size() > 3 ) {
- size_t clipMid = clipName.size() - 3;
- char c1 = clipName[clipMid];
- char c2 = clipName[clipMid+1];
- char c3 = clipName[clipMid+2];
- if ( ('A' <= c1) && (c1 <= 'Z') &&
- ('0' <= c2) && (c2 <= '9') && ('0' <= c3) && (c3 <= '9') ) {
- clipName.erase ( clipMid );
- }
- }
-
- }
-
- }
-
- pseudoPath += kDirChar;
- if ( isSAM ) {
- pseudoPath += "SAM";
- } else {
- pseudoPath += "FAM";
- }
- pseudoPath += kDirChar;
- pseudoPath += clipName;
-
- pathLen = pseudoPath.size() + 1; // Include a terminating nul.
- tempPtr = malloc ( pathLen );
- if ( tempPtr == 0 ) XMP_Throw ( "No memory for XDCAM clip info", kXMPErr_NoMemory );
- memcpy ( tempPtr, pseudoPath.c_str(), pathLen );
-
- return tempPtr;
-
-} // CreatePseudoClipPath
-
-// =================================================================================================
-// XDCAM_MetaHandlerCTor
-// =====================
-
-XMPFileHandler * XDCAM_MetaHandlerCTor ( XMPFiles * parent )
-{
- return new XDCAM_MetaHandler ( parent );
-
-} // XDCAM_MetaHandlerCTor
-
-
-// =================================================================================================
-// XDCAM_MetaHandler::SetSidecarPath
-// ====================================
-void XDCAM_MetaHandler::SetSidecarPath()
-{
- // Here, we set the appropriate sidecar name for this format.
- // If, the format if XMPilot (no INDEX.XML but UserData folder present) or
- // SxS (no INDEX.XML but Take folder present) then sidecar name will be
- // old name used by MXFHandler i.e, {clipName}.MXF.xmp or {clipname}.mxf.xmp
- // For all other cases, new side car name i.e, {clipname}M01.XMP will be used.
-
- try
- {
- if(this->isFAM && Host_IO::GetChildMode ( this->rootPath.c_str(), "INDEX.XML" ) != Host_IO::kFMode_IsFile &&
- (Host_IO::GetChildMode ( rootPath.c_str(), "UserData" ) == Host_IO::kFMode_IsFolder
- || Host_IO::GetChildMode ( this->rootPath.c_str(), "Take" ) == Host_IO::kFMode_IsFolder) )
- {
- // this is either XMPilot or SxS format.
- XMP_VarString mxfFilePath;
- if(MakeClipFilePath ( &mxfFilePath , ".MXF", true ) || MakeClipFilePath ( &mxfFilePath , ".mxf", true ) )
- {
- Host_IO::FileRef hostRef = Host_IO::Open ( mxfFilePath.c_str(), Host_IO::openReadOnly );
- if ( hostRef != Host_IO::noFileRef )
- {
-
- XMPFiles_IO mxfFile ( hostRef, mxfFilePath.c_str() , Host_IO::openReadOnly );
-
- if ( Host_IO::Length(hostRef) >= 16 )
- {
- XMP_Uns8 buffer[16];
- Host_IO::Seek(hostRef, 0, kXMP_SeekFromStart);
- XMP_Uns32 readBytes = Host_IO::Read(hostRef, buffer, 16 );
-
- if ( ( readBytes == 16 ) &&
- ( GetUns32BE(&buffer[0]) == 0x060E2B34 ) &&
- ( GetUns32BE(&buffer[4]) == 0x02050101 ) &&
- ( GetUns32BE(&buffer[8]) == 0x0D010201 ) &&
- ( ( GetUns32BE(&buffer[12]) & 0xFFFF00FF ) == 0x01020000 )
- )
- {
- std::string pathtomxfclip=Host_IO::GetCasePreservedName(mxfFilePath);
- if ( pathtomxfclip != "" )
- {
- std::string ext;
- XIO::SplitFileExtension( &pathtomxfclip, &ext , false);
- ext="."+ext;
- MakeClipFilePath ( &mxfFilePath , ext.c_str() , false );
- this->sidecarPath = mxfFilePath + ".xmp";
- }
- }
- }
- }
- }
- }
- }
- catch( ... )
- {
- // Use new side car name.
- }
- if(this->sidecarPath.empty())
- {
- MakeClipFilePath ( &this->sidecarPath , "M01.XMP", false ) ;
- }
-}// XDCAM_MetaHandler::SetSidecarPath
-
// =================================================================================================
// XDCAM_MetaHandler::XDCAM_MetaHandler
// ====================================
-
-XDCAM_MetaHandler::XDCAM_MetaHandler ( XMPFiles * _parent ) : isFAM(false), expat(0),clipMetadata(NULL)
+XDCAM_MetaHandler::XDCAM_MetaHandler ( XMPFiles * _parent ) : expat(0), clipMetadata(NULL)
{
this->parent = _parent; // Inherited, can't set in the prefix.
- this->handlerFlags = kXDCAM_HandlerFlags;
this->stdCharForm = kXMP_Char8Bit;
- // Extract the root path, clip name, and FAM/SAM flag from tempPtr.
-
- if ( this->parent->tempPtr == 0 ) {
- // The CheckFormat call might have been skipped.
- this->parent->tempPtr = CreatePseudoClipPath ( this->parent->GetFilePath() );
- }
-
- this->rootPath.assign ( (char*) this->parent->tempPtr );
- free ( this->parent->tempPtr );
- this->parent->tempPtr = 0;
-
- XIO::SplitLeafName ( &this->rootPath, &this->clipName );
-
- std::string temp;
- XIO::SplitLeafName ( &this->rootPath, &temp );
- XMP_Assert ( (temp == "FAM") || (temp == "SAM") );
- if ( temp == "FAM" ) this->isFAM = true;
- // backward compatibility ensured for XMPilot Clips
- // XMPilot is FAM
- this->SetSidecarPath();
- XMP_Assert ( this->isFAM ? (this->parent->format == kXMP_XDCAM_FAMFile) : (this->parent->format == kXMP_XDCAM_SAMFile) );
-
} // XDCAM_MetaHandler::XDCAM_MetaHandler
// =================================================================================================
@@ -564,35 +221,6 @@ XDCAM_MetaHandler::~XDCAM_MetaHandler()
} // XDCAM_MetaHandler::~XDCAM_MetaHandler
// =================================================================================================
-// XDCAM_MetaHandler::MakeClipFilePath
-// ===================================
-
-bool XDCAM_MetaHandler::MakeClipFilePath ( std::string * path, XMP_StringPtr suffix, bool checkFile /* = false */ )
-{
-
- *path = this->rootPath;
- *path += kDirChar;
-
- if ( this->isFAM ) {
- *path += "Clip"; // ! Yes, mixed case.
- } else {
- *path += "PROAV";
- *path += kDirChar;
- *path += "CLPR";
- *path += kDirChar;
- *path += this->clipName;
- }
-
- *path += kDirChar;
- *path += this->clipName;
- *path += suffix;
-
- if ( ! checkFile ) return true;
- return Host_IO::Exists ( path->c_str() );
-
-} // XDCAM_MetaHandler::MakeClipFilePath
-
-// =================================================================================================
// XDCAM_MetaHandler::MakeMediaproPath
// ===================================
@@ -616,6 +244,10 @@ bool XDCAM_MetaHandler::MakeMediaproPath ( std::string * path, bool checkFile /*
#define kHexDigits "0123456789ABCDEF"
+// =================================================================================================
+// XDCAM_MetaHandler::MakeLegacyDigest
+// ================================
+
void XDCAM_MetaHandler::MakeLegacyDigest ( std::string * digestStr )
{
digestStr->erase();
@@ -664,7 +296,7 @@ void XDCAM_MetaHandler::MakeLegacyDigest ( std::string * digestStr )
} // XDCAM_MetaHandler::MakeLegacyDigest
// =================================================================================================
-// P2_MetaHandler::CleanupLegacyXML
+// XDCAM_MetaHandler::CleanupLegacyXML
// ================================
void XDCAM_MetaHandler::CleanupLegacyXML()
@@ -676,6 +308,10 @@ void XDCAM_MetaHandler::CleanupLegacyXML()
} // XDCAM_MetaHandler::CleanupLegacyXML
+// =================================================================================================
+// XDCAM_MetaHandler::readXMLFile
+// ================================
+
void XDCAM_MetaHandler::readXMLFile( XMP_StringPtr filePath, ExpatAdapter* &expat )
{
Host_IO::FileRef hostRef = Host_IO::Open ( filePath, Host_IO::openReadOnly );
@@ -705,27 +341,25 @@ static inline bool operator< ( const XMP_DateTime & left, const XMP_DateTime & r
return (compare < 0);
}
+// =================================================================================================
+// XDCAM_MetaHandler::GetFileModDate
+// ================================
+
bool XDCAM_MetaHandler::GetFileModDate ( XMP_DateTime * modDate )
{
- // The XDCAM FAM locations of metadata:
- // MEDIAPRO.XML // Has non-XMP metadata.
- // Clip:
- // C0001_50i_DVCAM_43_4chM01.XML // Has non-XMP metadata.
- // C0001_50i_DVCAM_43_4chM01.XMP
-
- // The XDCAM SAM locations of metadata:
- // PROAV:
- // CLPR:
- // C0001:
- // C0001M01.XML // Has non-XMP metadata.
- // C0001M01.XMP
+ // Modify date is found in the increasing priority order
+ //
+ // MEDIAPRO.XML
+ // Non-Real time metadata file
+ // XMP file
bool ok, haveDate = false;
std::string fullPath;
XMP_DateTime oneDate, junkDate;
if ( modDate == 0 ) modDate = &junkDate;
+ // MEDIAPRO.XML
std::string mediaproPath;
ok = MakeMediaproPath ( &mediaproPath, true /* checkFile */ );
if ( ok ) ok = Host_IO::GetModifyDate ( mediaproPath.c_str(), &oneDate );
@@ -734,15 +368,19 @@ bool XDCAM_MetaHandler::GetFileModDate ( XMP_DateTime * modDate )
haveDate = true;
}
- ok = this->MakeClipFilePath ( &fullPath, "M01.XML", true /* checkFile */ );
- if ( ok ) ok = Host_IO::GetModifyDate ( fullPath.c_str(), &oneDate );
+ // Non-Real time metadata file
+ ok = Host_IO::Exists( this->mNRTFilePath.c_str() );
+ //ok = this->MakeClipFilePath ( &fullPath, "M01.XML", true /* checkFile */ );
+ if ( ok ) ok = Host_IO::GetModifyDate ( this->mNRTFilePath.c_str(), &oneDate );
if ( ok ) {
if ( (! haveDate) || (*modDate < oneDate) ) *modDate = oneDate;
haveDate = true;
}
- ok = this->MakeClipFilePath ( &fullPath, "M01.XMP", true /* checkFile */ );
- if ( ok ) ok = Host_IO::GetModifyDate ( fullPath.c_str(), &oneDate );
+ // XMP file
+ ok = Host_IO::Exists( this->sidecarPath.c_str() );
+ //ok = this->MakeClipFilePath ( &fullPath, "M01.XMP", true /* checkFile */ );
+ if ( ok ) ok = Host_IO::GetModifyDate ( this->sidecarPath.c_str(), &oneDate );
if ( ok ) {
if ( (! haveDate) || (*modDate < oneDate) ) *modDate = oneDate;
haveDate = true;
@@ -752,140 +390,6 @@ bool XDCAM_MetaHandler::GetFileModDate ( XMP_DateTime * modDate )
} // XDCAM_MetaHandler::GetFileModDate
-
-// =================================================================================================
-// XDCAM_MetaHandler::GetClipUmid
-// ==============================
-bool XDCAM_MetaHandler::GetClipUmid ( std::string &clipUmid )
-{
- std::string clipInfoPath;
- ExpatAdapter* clipInfoExpat = 0 ;
- bool umidFound = false;
- XMP_StringPtr nameSpace = 0;
- try {
- this->MakeClipFilePath ( &clipInfoPath, "C01.SMI" ) ;
- readXMLFile( clipInfoPath.c_str(), clipInfoExpat );
- if ( clipInfoExpat != 0 )
- {
- XML_Node & xmlTree = clipInfoExpat->tree;
- XML_NodePtr rootElem = 0;
-
- for ( size_t i = 0, limit = xmlTree.content.size(); i < limit; ++i ) {
- if ( xmlTree.content[i]->kind == kElemNode ) {
- rootElem = xmlTree.content[i];
- }
- }
- if ( rootElem != 0 )
- {
- XMP_StringPtr rootLocalName = rootElem->name.c_str() + rootElem->nsPrefixLen;
-
- if ( XMP_LitMatch ( rootLocalName, "smil" ) )
- {
- XMP_StringPtr umidValue = rootElem->GetAttrValue ( "umid" );
- if ( umidValue != 0 ) {
- clipUmid = umidValue;
- umidFound = true;
- }
- }
- }
- }
- if( ! umidFound )
- { //try to get the umid from the NRT metadata
- delete ( clipInfoExpat ) ; clipInfoExpat = 0;
- this->MakeClipFilePath ( &clipInfoPath, "M01.XML" ) ;
- readXMLFile( clipInfoPath.c_str(), clipInfoExpat ) ;
- if ( clipInfoExpat != 0 )
- {
- XML_Node & xmlTree = clipInfoExpat->tree;
- XML_NodePtr rootElem = 0;
- for ( size_t i = 0, limit = xmlTree.content.size(); i < limit; ++i ) {
- if ( xmlTree.content[i]->kind == kElemNode ) {
- rootElem = xmlTree.content[i];
- }
- }
- if ( rootElem != 0 )
- {
- XMP_StringPtr rootLocalName = rootElem->name.c_str() + rootElem->nsPrefixLen;
-
- if ( XMP_LitMatch ( rootLocalName, "NonRealTimeMeta" ) )
- {
- nameSpace = rootElem->ns.c_str() ;
- XML_NodePtr targetProp = rootElem->GetNamedElement ( nameSpace, "TargetMaterial" );
- if ( (targetProp != 0) && targetProp->IsEmptyLeafNode() ) {
- XMP_StringPtr umidValue = targetProp->GetAttrValue ( "umidRef" );
- if ( umidValue != 0 ) {
- clipUmid = umidValue;
- umidFound = true;
- }
- }
- }
- }
- }
- }
- } catch ( ... ) {
- }
- delete ( clipInfoExpat ) ;
- return umidFound;
-}// XDCAM_MetaHandler::GetClipUmid
-
-// =================================================================================================
-// XDCAM_MetaHandler::IsClipsPlanning
-// ==================================
-bool XDCAM_MetaHandler::IsClipsPlanning ( std::string clipUmid , XMP_StringPtr planPath )
-{
- ExpatAdapter* planniingExpat = 0 ;
- XMP_StringPtr nameSpace = 0 ;
- try {
- readXMLFile( planPath, planniingExpat );
- if ( planniingExpat != 0 )
- {
- XML_Node & xmlTree = planniingExpat->tree;
- XML_NodePtr rootElem = 0;
-
- for ( size_t i = 0, limit = xmlTree.content.size(); i < limit; ++i ) {
- if ( xmlTree.content[i]->kind == kElemNode ) {
- rootElem = xmlTree.content[i];
- }
- }
- if ( rootElem != 0 )
- {
- XMP_StringPtr rootLocalName = rootElem->name.c_str() + rootElem->nsPrefixLen;
-
- if ( XMP_LitMatch ( rootLocalName, "PlanningMetadata" ) )
- {
- nameSpace = rootElem->ns.c_str() ;
- size_t noOfMaterialGroups = rootElem->CountNamedElements ( nameSpace, "MaterialGroup" ) ;
- while( noOfMaterialGroups-- )
- {
- XML_NodePtr mgNode = rootElem->GetNamedElement( nameSpace, "MaterialGroup" );
- size_t noOfMaterialElements = mgNode->CountNamedElements ( nameSpace, "Material" ) ;
- while( noOfMaterialElements-- )
- {
- XML_NodePtr materialNode = mgNode->GetNamedElement( nameSpace, "Material" );
- XMP_StringPtr materialType = materialNode->GetAttrValue ( "type" );
- if ( materialType && XMP_LitMatch( materialType , "clip" ) )
- {
- XMP_StringPtr umidValue = materialNode->GetAttrValue ( "umidRef" );
- if ( umidValue != 0 && XMP_LitMatch( umidValue , clipUmid.c_str() ) )
- {
- delete ( planniingExpat ) ;
- return true;
- }
- }
-
- }
- }
- }
- }
- }
-
- } catch ( ... ) {
- }
- delete ( planniingExpat ) ;
- return false;
-} // XDCAM_MetaHandler::IsClipsPlanning
-
-
// =================================================================================================
// XDCAM_MetaHandler::RefersClipUmid
// ==================================
@@ -948,144 +452,9 @@ bool XDCAM_MetaHandler::RefersClipUmid ( std::string clipUmid , XMP_StringPtr ed
return false;
} // XDCAM_MetaHandler::RefersClipUmid
-inline bool IsDigit( char c )
-{
- return c >= '0' && c <= '9';
-}
-
-
-// =================================================================================================
-// XDCAM_MetaHandler::GetEditInfoFilesSAM
-// ======================================
-bool XDCAM_MetaHandler::GetEditInfoFilesSAM ( std::vector<std::string> &editInfoList )
-{
- std::string clipUmid;
- bool found = false;
-
- if( GetClipUmid ( clipUmid ) )
- {
- std::string editFolderPath = this->rootPath + kDirChar + "PROAV" + kDirChar + "EDTR" + kDirChar ;
- if ( Host_IO::Exists( editFolderPath.c_str() ) &&
- Host_IO::GetFileMode( editFolderPath.c_str() ) == Host_IO::kFMode_IsFolder
- )
- {
- Host_IO::AutoFolder edtrFolder, editFolder;
- std::string edtrChildName, edlistChild;
-
- edtrFolder.folder = Host_IO::OpenFolder ( editFolderPath.c_str() );
- while ( Host_IO::GetNextChild ( edtrFolder.folder, &edtrChildName ) ) {
- size_t childLen = edtrChildName.size();
- std::string editListFolderPath = editFolderPath + edtrChildName + kDirChar ;
- if ( ! ( childLen == 5 &&
- edtrChildName[0] == 'E' &&
- IsDigit( edtrChildName[1] ) &&
- IsDigit( edtrChildName[2] ) &&
- IsDigit( edtrChildName[3] ) &&
- IsDigit( edtrChildName[4] ) &&
- Host_IO::GetFileMode( editListFolderPath.c_str() ) == Host_IO::kFMode_IsFolder
- ) ) continue;
-
- editFolder.folder = Host_IO::OpenFolder ( editListFolderPath.c_str() );
- while ( Host_IO::GetNextChild ( editFolder.folder, &edlistChild ) ) {
- size_t filenamelen = edlistChild.size();
- std::string editListFilePath = editListFolderPath + edlistChild ;
- if ( ! ( filenamelen == 12 &&
- edlistChild.compare ( filenamelen - 4, 4 , ".SMI" ) == 0 &&
- edlistChild.compare ( 0, edtrChildName.size(), edtrChildName ) == 0 &&
- Host_IO::GetFileMode( editListFilePath.c_str() ) == Host_IO::kFMode_IsFile
- ) ) continue;
- if( RefersClipUmid ( clipUmid , editListFilePath.c_str() ) )
- {
- found = true ;
- editInfoList.push_back( editListFilePath );
- }
- }
- }
- }
- }
- return found;
-} // XDCAM_MetaHandler::GetEditInfoFilesSAM
-
-// =================================================================================================
-// XDCAM_MetaHandler::GetInfoFilesFAM
-// ==================================
-bool XDCAM_MetaHandler::GetInfoFilesFAM ( std::vector<std::string> &editInfoList, std::string pathToFolder)
-{
- std::string clipUmid;
- bool found = false;
-
- if( GetClipUmid ( clipUmid ) )
- {
- if ( Host_IO::Exists( pathToFolder.c_str() ) &&
- Host_IO::GetFileMode( pathToFolder.c_str() ) == Host_IO::kFMode_IsFolder
- )
- {
- Host_IO::AutoFolder editFolder;
- std::string edlistChild;
-
- editFolder.folder = Host_IO::OpenFolder ( pathToFolder.c_str() );
- while ( Host_IO::GetNextChild ( editFolder.folder, &edlistChild ) ) {
- size_t filenamelen = edlistChild.size();
- std::string editListFilePath = pathToFolder + edlistChild ;
- if ( ! ( filenamelen > 7 &&
- edlistChild.compare ( filenamelen - 4, 4 , ".SMI" ) == 0 &&
- Host_IO::GetFileMode( editListFilePath.c_str() ) == Host_IO::kFMode_IsFile
- ) ) continue;
- if( RefersClipUmid ( clipUmid , editListFilePath.c_str() ) )
- {
- found = true ;
- editInfoList.push_back( editListFilePath );
- }
- }
- }
- }
- return found;
-} // XDCAM_MetaHandler::GetInfoFilesFAM
-
-// =================================================================================================
-// XDCAM_MetaHandler::GetPlanningFilesFAM
-// ======================================
-bool XDCAM_MetaHandler::GetPlanningFilesFAM ( std::vector<std::string> &planInfoList, std::string pathToFolder)
-{
- std::string clipUmid;
- bool found = false;
-
- if( GetClipUmid ( clipUmid ) )
- {
- if ( Host_IO::Exists( pathToFolder.c_str() ) &&
- Host_IO::GetFileMode( pathToFolder.c_str() ) == Host_IO::kFMode_IsFolder
- )
- {
- Host_IO::AutoFolder planFolder;
- std::string listChild;
-
- planFolder.folder = Host_IO::OpenFolder ( pathToFolder.c_str() );
- while ( Host_IO::GetNextChild ( planFolder.folder, &listChild ) ) {
- size_t filenamelen = listChild.size();
- std::string listFilePath = pathToFolder + listChild ;
- if ( ! ( filenamelen > 4 &&
- ( listChild.compare ( filenamelen - 4, 4 , ".XML" ) == 0
- ||
- listChild.compare ( filenamelen - 4, 4 , ".xml" ) == 0
- )
- &&
- Host_IO::GetFileMode( listFilePath.c_str() ) == Host_IO::kFMode_IsFile
- ) ) continue;
- if( IsClipsPlanning ( clipUmid , listFilePath.c_str() ) )
- {
- found = true ;
- planInfoList.push_back( listFilePath );
- }
- }
- }
- }
- return found;
-} // XDCAM_MetaHandler::GetPlanningFilesFAM
-
// =================================================================================================
// XDCAM_MetaHandler::IsMetadataWritable
// =======================================
-
bool XDCAM_MetaHandler::IsMetadataWritable ( )
{
std::vector<std::string> metadataFiles;
@@ -1099,310 +468,12 @@ bool XDCAM_MetaHandler::IsMetadataWritable ( )
}// XDCAM_MetaHandler::IsMetadataWritable
// =================================================================================================
-// XDCAM_MetaHandler::FillFAMAssociatedResources
-// =============================================
-void XDCAM_MetaHandler::FillFAMAssociatedResources ( std::vector<std::string> * resourceList )
-{
- // The possible associated resources:
- // .../MyMovie/
- // ALIAS.XML
- // INDEX.XML
- // DISCMETA.XML
- // MEDIAPRO.XML
- // MEDIAPRO.BUP
- // CUEUP.XML
- // CUEUP.BUP
- // Clip/
- // AAAAA.MXF AAAAA is the clipname with clipserial
- // XX is a counter which will start from from 01 and can go upto 99 based
- // on number of files present in this folder with same extension and same clipname/editListName/Takename.
- // AAAAAMXX.XML
- // AAAAAMXX.XMP
- // AAAAARXX.BIM
- // Sub/
- // AAAAASXX.MXF
- // Local/
- // AAAAACXX.SMI
- // AAAAACXX.PPN
- // Edit/ DDDDD is the editListName
- // DDDDDEXX.SMI
- // DDDDDMXX.XML
- // Take/ TTTTT is the Takename
- // TTTTT.SMI
- // TTTTTUNN.SMI NN is a counter which goes from 01 to N-1 where N is number of media, this
- // take is divided into. For Nth, TTTTT.SMI shall be picked up.
- // TTTTTMXX.XML
- // General/
- // Sony/
- // Planning/ AAAAA is the clipname without clipserial
- // YYYYMMDDHHMISS is DateTime
- // BBBBB_YYYYMMDDHHMISS.xml
- // UserData/
- //
-
- //Add RootPath
- std::string filePath = rootPath + kDirChar;
- PackageFormat_Support::AddResourceIfExists( resourceList, filePath );
-
- // Get the files present directly inside root folder.
- filePath = rootPath + kDirChar + "ALIAS.XML";
- PackageFormat_Support::AddResourceIfExists(resourceList, filePath);
-
- filePath = rootPath + kDirChar + "INDEX.XML";
- PackageFormat_Support::AddResourceIfExists(resourceList, filePath);
-
- filePath = rootPath + kDirChar + "DISCMETA.XML";
- PackageFormat_Support::AddResourceIfExists(resourceList, filePath);
-
- filePath = rootPath + kDirChar + "MEDIAPRO.XML";
- PackageFormat_Support::AddResourceIfExists(resourceList, filePath);
- filePath = rootPath + kDirChar + "MEDIAPRO.BUP";
- PackageFormat_Support::AddResourceIfExists(resourceList, filePath);
-
- filePath = rootPath + kDirChar + "CUEUP.XML";
- PackageFormat_Support::AddResourceIfExists(resourceList, filePath);
- filePath = rootPath + kDirChar + "CUEUP.BUP";
- PackageFormat_Support::AddResourceIfExists(resourceList, filePath);
-
- // Add the UserData folder which is used to identify the format in any way
- filePath = rootPath + kDirChar + "UserData" + kDirChar;
- PackageFormat_Support::AddResourceIfExists(resourceList, filePath);
-
- XMP_VarString clipPath = rootPath + kDirChar + "Clip" + kDirChar ;
-
- size_t oldCount = resourceList->size();
- // Get the files present inside clip folder.
- XMP_VarString regExp;
- XMP_StringVector regExpVec;
-
- regExp = "^" + clipName + ".MXF$";
- regExpVec.push_back ( regExp );
- regExp = "^" + clipName + "M\\d\\d.XML$";
- regExpVec.push_back ( regExp );
- regExp = "^" + clipName + "R\\d\\d.BIM$";
- regExpVec.push_back ( regExp );
- IOUtils::GetMatchingChildren ( *resourceList, clipPath, regExpVec, false, true, true );
- PackageFormat_Support::AddResourceIfExists(resourceList, this->sidecarPath);
- if ( resourceList->size() <= oldCount )
- {
- PackageFormat_Support::AddResourceIfExists(resourceList, clipPath);
- }
-
- //Get the files Under Sub folder
- clipPath = rootPath + kDirChar + "Sub" + kDirChar ;
- regExpVec.clear();
- regExp = "^" + clipName + "S\\d\\d.MXF$";
- regExpVec.push_back ( regExp );
- oldCount = resourceList->size();
- IOUtils::GetMatchingChildren ( *resourceList, clipPath, regExpVec, false, true, true );
- // Add Sub folder if no file inside this, was added.
- if ( resourceList->size() <= oldCount )
- {
- PackageFormat_Support::AddResourceIfExists(resourceList, clipPath);
- }
-
- //Get the files Under Local folder
- clipPath = rootPath + kDirChar + "Local" + kDirChar ;
- regExpVec.clear();
- regExp = "^" + clipName + "C\\d\\d.SMI$";
- regExpVec.push_back ( regExp );
- regExp = "^" + clipName + "I\\d\\d.PPN$";
- regExpVec.push_back ( regExp );
- oldCount = resourceList->size();
- IOUtils::GetMatchingChildren ( *resourceList, clipPath, regExpVec, false, true, true );
-
- //Add the Edit lists associated to this clip
- XMP_StringVector editInfoList;
- bool atLeastOneFileAdded = false;
- clipPath = rootPath + kDirChar + "Edit" + kDirChar ;
- if ( GetInfoFilesFAM ( editInfoList , clipPath ) )
- {
- size_t noOfEditInfoFiles = editInfoList.size() ;
- for( size_t count = 0; count < noOfEditInfoFiles; count++ )
- {
- atLeastOneFileAdded = PackageFormat_Support::AddResourceIfExists(resourceList, editInfoList[count]) ? true : atLeastOneFileAdded;
- std::string editNRTFile = editInfoList[count] ;
- size_t filenamelen = editInfoList[count].length() ;
- editNRTFile[ filenamelen - 7 ] = 'M';
- editNRTFile[ filenamelen - 3 ] = 'X';
- editNRTFile[ filenamelen - 2 ] = 'M';
- editNRTFile[ filenamelen - 1 ] = 'L';
- atLeastOneFileAdded = PackageFormat_Support::AddResourceIfExists(resourceList, editNRTFile ) ? true : atLeastOneFileAdded;
- }
- }
- // Add Edit folder if no file inside this, was added.
- if ( !atLeastOneFileAdded )
- {
- PackageFormat_Support::AddResourceIfExists(resourceList, clipPath);
- }
-
- atLeastOneFileAdded = false;
-
- //Add the Takes associated to this clip
- XMP_StringVector takeList;
- clipPath = rootPath + kDirChar + "Take" + kDirChar ;
- if( GetInfoFilesFAM ( takeList , clipPath ) )
- {
- size_t noOfTakes = takeList.size() ;
- for( size_t count = 0; count < noOfTakes; count++ )
- {
- atLeastOneFileAdded = PackageFormat_Support::AddResourceIfExists(resourceList, takeList[count]) ? true : atLeastOneFileAdded;
- XMP_VarString takeNRTFile = takeList[count] ;
- size_t filenamelen = takeList[count].length() ;
- if ( takeNRTFile[ filenamelen - 7 ] == 'U'
- && IsDigit( takeNRTFile[ filenamelen - 6 ] )
- && IsDigit( takeNRTFile[ filenamelen - 5 ] ) )
- {
- takeNRTFile.erase( takeNRTFile.begin() + filenamelen - 7, takeNRTFile.end() ) ;
- }
- else
- {
- takeNRTFile.erase( takeNRTFile.begin() + filenamelen - 4, takeNRTFile.end() ) ;
- }
-
- XMP_VarString fileName;
- size_t pos = takeNRTFile.find_last_of ( kDirChar );
- fileName = takeNRTFile.substr ( pos + 1 );
- XMP_VarString regExp = "^" + fileName + "M\\d\\d.XML$";
- oldCount = resourceList->size();
- IOUtils::GetMatchingChildren ( *resourceList, clipPath, regExp, false, true, true );
- atLeastOneFileAdded = resourceList->size() > oldCount;
- }
- }
- // Add Take folder if no file inside this, was added.
- if(!atLeastOneFileAdded)
- {
- filePath = rootPath + kDirChar + "Take" + kDirChar;
- PackageFormat_Support::AddResourceIfExists(resourceList, filePath);
- }
-
- //Add the Planning Metadata Files associated to this clip
- XMP_StringVector planList;
- clipPath = rootPath + kDirChar + "General" + kDirChar + "Sony" + kDirChar+ "Planning" + kDirChar;
- if( GetPlanningFilesFAM ( planList , clipPath ) )
- {
- size_t noOfPlans = planList.size() ;
- for( size_t count = 0; count < noOfPlans; count++ )
- {
- resourceList->push_back( planList[count] );
- }
- }
-} // XDCAM_MetaHandler::FillFAMAssociatedResources
-
-// =================================================================================================
-// XDCAM_MetaHandler::FillSAMAssociatedResources
-// =============================================
-void XDCAM_MetaHandler::FillSAMAssociatedResources ( std::vector<std::string> * resourceList )
-{
- // The possible associated resources:
- // .../MyMovie/
- // PROAV/
- // INDEX.XML
- // INDEX.BUP
- // DISCMETA.XML
- // DISCINFO.XML
- // DISCINFO.BUP
- // CLPR/
- // CXXXX/ XXXX is ClipSerial and NN is a counter which will start from from 01 and can go upto 99 based
- // on number of files present in this folder with same extension.
- // CXXXXCNN.SMI
- // CXXXXVNN.MXF
- // CXXXXANN.MXF
- // CXXXXRNN.BIM
- // CXXXXINN.PPN
- // CXXXXMNN.XML
- // CXXXXSNN.MXF
- // EDTR/
- // EXXXX:
- // EXXXXENN.SMI
- // EXXXXMNN.XML
- //
- std::string proavPath = rootPath + kDirChar + "PROAV" + kDirChar;
- std::string filePath;
- //Add RootPath
- filePath = rootPath + kDirChar;
- PackageFormat_Support::AddResourceIfExists( resourceList, filePath );
-
- // Get the files present directly inside PROAV folder.
- filePath = proavPath + "INDEX.XML";
- PackageFormat_Support::AddResourceIfExists(resourceList, filePath);
- filePath = proavPath + "INDEX.BUP";
- PackageFormat_Support::AddResourceIfExists(resourceList, filePath);
-
- filePath = proavPath + "DISCINFO.XML";
- PackageFormat_Support::AddResourceIfExists(resourceList, filePath);
- filePath = proavPath + "DISCINFO.BUP";
- PackageFormat_Support::AddResourceIfExists(resourceList, filePath);
-
- filePath = proavPath + "DISCMETA.XML";
- PackageFormat_Support::AddResourceIfExists(resourceList, filePath);
-
- XMP_VarString clipPath = proavPath + "CLPR" + kDirChar + clipName + kDirChar;
- XMP_VarString regExp;
- XMP_StringVector regExpVec;
-
- regExp = "^" + clipName + "C\\d\\d.SMI$";
- regExpVec.push_back ( regExp );
- regExp = "^" + clipName + "M\\d\\d.XML$";
- regExpVec.push_back ( regExp );
- regExp = "^" + clipName + "V\\d\\d.MXF$";
- regExpVec.push_back ( regExp );
- regExp = "^" + clipName + "A\\d\\d.MXF$";
- regExpVec.push_back ( regExp );
- regExp = "^" + clipName + "R\\d\\d.BIM$";
- regExpVec.push_back ( regExp );
- regExp = "^" + clipName + "I\\d\\d.PPN$";
- regExpVec.push_back ( regExp );
- regExp = "^" + clipName + "S\\d\\d.MXF$";
- regExpVec.push_back ( regExp );
- IOUtils::GetMatchingChildren ( *resourceList, clipPath, regExpVec, false, true, true );
- PackageFormat_Support::AddResourceIfExists(resourceList, this->sidecarPath);
- //Add the Edit lists that refer this clip
- std::vector<std::string> editInfoList;
- if( GetEditInfoFilesSAM ( editInfoList ) )
- {
- size_t noOfEditInfoFiles = editInfoList.size() ;
- for( size_t count = 0; count < noOfEditInfoFiles; count++ )
- {
- PackageFormat_Support::AddResourceIfExists(resourceList, editInfoList[count]);
- std::string editNRTFile = editInfoList[count].c_str() ;
- size_t filenamelen = editInfoList[count].length() ;
- editNRTFile[ filenamelen - 7 ] = 'M';
- editNRTFile[ filenamelen - 3 ] = 'X';
- editNRTFile[ filenamelen - 2 ] = 'M';
- editNRTFile[ filenamelen - 1 ] = 'L';
- PackageFormat_Support::AddResourceIfExists(resourceList, editNRTFile );
- }
- }
-}// XDCAM_MetaHandler::FillSAMAssociatedResources
-
-// =================================================================================================
-// XDCAM_MetaHandler::FillAssociatedResources
-// ======================================
-void XDCAM_MetaHandler::FillAssociatedResources ( std::vector<std::string> * resourceList )
-{
- if( this->isFAM )
- FillFAMAssociatedResources ( resourceList );
- else
- FillSAMAssociatedResources ( resourceList );
-}
-// =================================================================================================
// XDCAM_MetaHandler::FillMetadataFiles
// ====================================
void XDCAM_MetaHandler::FillMetadataFiles ( std::vector<std::string> * metadataFiles )
{
- std::string noExtPath, filePath;
-
- if(this->isFAM) {
- noExtPath = rootPath + kDirChar + "Clip" + kDirChar + clipName;
- } else {
- noExtPath = rootPath + kDirChar + "PROAV" + kDirChar + "CLPR" +
- kDirChar + clipName + kDirChar + clipName;
- }
-
- metadataFiles->push_back ( this->sidecarPath );
- filePath = noExtPath + "M01.XML";
- metadataFiles->push_back ( filePath );
+ metadataFiles->push_back( this->sidecarPath );
+ metadataFiles->push_back( this->mNRTFilePath );
} // XDCAM_MetaHandler::FillMetadataFiles
@@ -1419,7 +490,6 @@ void XDCAM_MetaHandler::CacheFileData()
}
// See if the clip's .XMP file exists.
-
if ( ! Host_IO::Exists ( this->sidecarPath.c_str() ) ) return; // No XMP.
// Read the entire .XMP file. We know the XMP exists, New_XMPFiles_IO is supposed to return 0
@@ -1428,6 +498,7 @@ void XDCAM_MetaHandler::CacheFileData()
bool readOnly = XMP_OptionIsClear ( this->parent->openFlags, kXMPFiles_OpenForUpdate );
XMP_Assert ( this->parent->ioRef == 0 );
+
XMPFiles_IO* xmpFile = XMPFiles_IO::New_XMPFiles_IO ( this->sidecarPath.c_str(), readOnly );
if ( xmpFile == 0 ) XMP_Throw ( "XDCAM XMP file open failure", kXMPErr_InternalFailure );
this->parent->ioRef = xmpFile;
@@ -1454,20 +525,6 @@ void XDCAM_MetaHandler::CacheFileData()
// XDCAM_MetaHandler::GetMediaProMetadata
// ======================================
-bool XDCAM_MetaHandler::GetMediaProMetadata ( SXMPMeta * xmpObjPtr,
- const std::string& clipUMID,
- bool digestFound )
-{
- if (!this->isFAM) return false;
-
- // Build a directory string to the MEDIAPRO file.
-
- std::string mediaproPath;
- MakeMediaproPath ( &mediaproPath );
- return XDCAM_Support::GetMediaProLegacyMetadata ( xmpObjPtr, clipUMID, mediaproPath, digestFound );
-
-}
-
// =================================================================================================
// XDCAM_MetaHandler::ProcessXMP
// =============================
@@ -1492,10 +549,10 @@ void XDCAM_MetaHandler::ProcessXMP()
}
// NonRealTimeMeta -> XMP by schema
- std::string xmlPath, umid;
- this->MakeClipFilePath ( &xmlPath, "M01.XML" );
+ std::string xmlPath = this->mNRTFilePath;
+ std::string umid;
- readXMLFile( xmlPath.c_str(),this->expat );
+ readXMLFile( xmlPath.c_str(), this->expat );
if ( this->expat == 0 ) return;
// The root element should be NonRealTimeMeta in some namespace. Take whatever this file uses.
@@ -1590,7 +647,7 @@ void XDCAM_MetaHandler::UpdateFile ( bool doSafeUpdate )
std::string legacyXML, xmlPath;
this->expat->tree.Serialize ( &legacyXML );
- this->MakeClipFilePath ( &xmlPath, "M01.XML" );
+ xmlPath = this->mNRTFilePath;
bool haveXML = Host_IO::Exists ( xmlPath.c_str() );
if ( ! haveXML ) Host_IO::Create ( xmlPath.c_str() );
diff --git a/XMPFiles/source/FileHandlers/XDCAM_Handler.hpp b/XMPFiles/source/FileHandlers/XDCAM_Handler.hpp
index f03ada8..e70621a 100644
--- a/XMPFiles/source/FileHandlers/XDCAM_Handler.hpp
+++ b/XMPFiles/source/FileHandlers/XDCAM_Handler.hpp
@@ -24,25 +24,10 @@
///
// =================================================================================================
-extern XMPFileHandler * XDCAM_MetaHandlerCTor ( XMPFiles * parent );
-
-extern bool XDCAM_CheckFormat ( XMP_FileFormat format,
- const std::string & rootPath,
- const std::string & gpName,
- const std::string & parentName,
- const std::string & leafName,
- XMPFiles * parent );
-
-static const XMP_OptionBits kXDCAM_HandlerFlags = (kXMPFiles_CanInjectXMP |
- kXMPFiles_CanExpand |
- kXMPFiles_CanRewrite |
- kXMPFiles_PrefersInPlace |
- kXMPFiles_CanReconcile |
- kXMPFiles_AllowsOnlyXMP |
- kXMPFiles_ReturnsRawPacket |
- kXMPFiles_HandlerOwnsFile |
- kXMPFiles_AllowsSafeUpdate |
- kXMPFiles_FolderBasedFormat);
+inline bool IsDigit( char c )
+{
+ return c >= '0' && c <= '9';
+}
class XDCAM_MetaHandler : public XMPFileHandler
{
@@ -50,8 +35,7 @@ public:
bool GetFileModDate ( XMP_DateTime * modDate );
- void FillMetadataFiles ( std::vector<std::string> * metadataFiles );
- void FillAssociatedResources ( std::vector<std::string> * resourceList );
+ virtual void FillAssociatedResources ( std::vector<std::string> * resourceList ) {};
bool IsMetadataWritable ( ) ;
void CacheFileData();
@@ -66,31 +50,31 @@ public:
XDCAM_MetaHandler ( XMPFiles * _parent );
virtual ~XDCAM_MetaHandler();
-private:
+protected:
- XDCAM_MetaHandler() : isFAM(false), expat(0), clipMetadata(0) {}; // Hidden on purpose.
+ XDCAM_MetaHandler() : expat(0), clipMetadata(0) {}; // Hidden on purpose.
- bool MakeClipFilePath ( std::string * path, XMP_StringPtr suffix, bool checkFile = false );
+ virtual bool MakeClipFilePath ( std::string * path, XMP_StringPtr suffix, bool checkFile = false ) { return false; }
+ virtual void SetPathVariables ( const std::string & clientPath ) { }
+ virtual bool GetMediaProMetadata ( SXMPMeta * xmpObjPtr, const std::string& clipUMID, bool digestFound ) {
+ return false;
+ }
bool MakeMediaproPath ( std::string * path, bool checkFile = false );
- void MakeLegacyDigest ( std::string * digestStr );
- void CleanupLegacyXML();
- void SetSidecarPath();
-
+ virtual bool GetClipUmid ( std::string &clipUmid ) { return false; }
void readXMLFile( XMP_StringPtr filePath,ExpatAdapter* &expat );
- bool GetClipUmid ( std::string &clipUmid ) ;
- bool IsClipsPlanning ( std::string clipUmid , XMP_StringPtr planPath ) ;
bool RefersClipUmid ( std::string clipUmid , XMP_StringPtr editInfoPath ) ;
- bool GetInfoFilesFAM ( std::vector<std::string> &InfoList, std::string pathToFolder) ;
- bool GetPlanningFilesFAM ( std::vector<std::string> &planInfoList, std::string pathToFolder) ;
- bool GetEditInfoFilesSAM ( std::vector<std::string> &editInfoList ) ;
- void FillFAMAssociatedResources ( std::vector<std::string> * resourceList );
- void FillSAMAssociatedResources ( std::vector<std::string> * resourceList );
+ std::string rootPath, clipName, sidecarPath;
+
+ std::string mNRTFilePath;
+ std::string oldSidecarPath;
- bool GetMediaProMetadata ( SXMPMeta * xmpObjPtr, const std::string& clipUMID, bool digestFound );
+private:
- std::string rootPath, clipName, xdcNS, legacyNS, sidecarPath;
+ void FillMetadataFiles ( std::vector<std::string> * metadataFiles );
+ void MakeLegacyDigest ( std::string * digestStr );
+ void CleanupLegacyXML();
- bool isFAM;
+ std::string xdcNS, legacyNS;
ExpatAdapter * expat;
XML_Node * clipMetadata; // ! Don't delete, points into the Expat tree.
diff --git a/XMPFiles/source/FormatSupport/ID3_Support.cpp b/XMPFiles/source/FormatSupport/ID3_Support.cpp
index e33e39e..abe0923 100644
--- a/XMPFiles/source/FormatSupport/ID3_Support.cpp
+++ b/XMPFiles/source/FormatSupport/ID3_Support.cpp
@@ -447,50 +447,53 @@ void ID3v2Frame::release()
// =================================================================================================
-void ID3v2Frame::setFrameValue ( const std::string& rawvalue, bool needDescriptor,
- bool utf16, bool isXMPPRIVFrame, bool needEncodingByte )
+void ID3v2Frame::setFrameValue( const std::string& rawvalue, bool needDescriptor,
+ bool utf16, bool isXMPPRIVFrame, bool needEncodingByte, bool isAlreadyEncoded /* = false */ )
{
std::string value;
if ( isXMPPRIVFrame ) {
- XMP_Assert ( (! needDescriptor) && (! utf16) );
+ XMP_Assert( ( !needDescriptor ) && ( !utf16 ) );
- value.append ( "XMP\0", 4 );
- value.append ( rawvalue );
- value.append ( "\0", 1 ); // final zero byte
+ value.append( "XMP\0", 4 );
+ value.append( rawvalue );
+ value.append( "\0", 1 ); // final zero byte
- } else {
+ }
+ else if ( !isAlreadyEncoded ) {
if ( needEncodingByte ) {
if ( utf16 ) {
- value.append ( "\x1", 1 );
- } else {
- value.append ( "\x0", 1 );
+ value.append( "\x1", 1 );
+ }
+ else {
+ value.append( "\x0", 1 );
}
}
- if ( needDescriptor ) value.append ( "eng", 3 );
+ if ( needDescriptor ) value.append( "eng", 3 );
if ( utf16 ) {
- if ( needDescriptor ) value.append ( "\xFF\xFE\0\0", 4 );
+ if ( needDescriptor ) value.append( "\xFF\xFE\0\0", 4 );
- value.append ( "\xFF\xFE", 2 );
+ value.append( "\xFF\xFE", 2 );
std::string utf16str;
- ToUTF16 ( (XMP_Uns8*) rawvalue.c_str(), rawvalue.size(), &utf16str, false );
- value.append ( utf16str );
- value.append ( "\0\0", 2 );
+ ToUTF16( ( XMP_Uns8* ) rawvalue.c_str(), rawvalue.size(), &utf16str, false );
+ value.append( utf16str );
+ value.append( "\0\0", 2 );
- } else {
+ }
+ else {
std::string convertedValue;
- ReconcileUtils::UTF8ToLatin1 ( rawvalue.c_str(), rawvalue.size(), &convertedValue );
+ ReconcileUtils::UTF8ToLatin1( rawvalue.c_str(), rawvalue.size(), &convertedValue );
- if ( needDescriptor ) value.append ( "\0", 1 );
- value.append ( convertedValue );
- value.append ( "\0", 1 );
+ if ( needDescriptor ) value.append( "\0", 1 );
+ value.append( convertedValue );
+ value.append( "\0", 1 );
}
@@ -499,10 +502,19 @@ void ID3v2Frame::setFrameValue ( const std::string& rawvalue, bool needDescripto
this->changed = true;
this->release();
- this->contentSize = (XMP_Int32) value.size();
- XMP_Validate ( (this->contentSize < 20*1024*1024), "XMP Property exceeds 20MB in size", kXMPErr_InternalFailure );
- this->content = new char [ this->contentSize ];
- memcpy ( this->content, value.c_str(), this->contentSize );
+ if ( isAlreadyEncoded )
+ {
+ XMP_Assert( ( !needDescriptor ) && ( !utf16 ) && value.empty() );
+ this->contentSize = ( XMP_Int32 ) rawvalue.size();
+ }
+ else
+ this->contentSize = ( XMP_Int32 ) value.size();
+ XMP_Validate( ( this->contentSize < 20 * 1024 * 1024 ), "XMP Property exceeds 20MB in size", kXMPErr_InternalFailure );
+ this->content = new char[ this->contentSize ];
+ if ( isAlreadyEncoded )
+ memcpy( this->content, rawvalue.c_str(), this->contentSize );
+ else
+ memcpy( this->content, value.c_str(), this->contentSize );
} // ID3v2Frame::setFrameValue
@@ -850,7 +862,7 @@ void ID3v1Tag::write ( XMP_IO* file, SXMPMeta* meta )
}
- if ( meta->GetProperty ( kXMP_NS_DM, "trackNumber", &utf8, kXMP_NoOptions ) ) {
+ if ( meta->GetProperty ( kXMP_NS_DM, "trackNumber", &utf8, (XMP_OptionBits *) kXMP_NoOptions ) ) {
XMP_Uns8 trackNo = 0;
try {
diff --git a/XMPFiles/source/FormatSupport/ID3_Support.hpp b/XMPFiles/source/FormatSupport/ID3_Support.hpp
index 5228fd7..299c27c 100644
--- a/XMPFiles/source/FormatSupport/ID3_Support.hpp
+++ b/XMPFiles/source/FormatSupport/ID3_Support.hpp
@@ -137,7 +137,7 @@ namespace ID3_Support {
void release();
void setFrameValue ( const std::string& rawvalue, bool needDescriptor = false,
- bool utf16 = false, bool isXMPPRIVFrame = false, bool needEncodingByte = true );
+ bool utf16 = false, bool isXMPPRIVFrame = false, bool needEncodingByte = true, bool isAlreadyEncoded = false );
XMP_Int64 read ( XMP_IO* file, XMP_Uns8 majorVersion );
void write ( XMP_IO* file, XMP_Uns8 majorVersion );
diff --git a/XMPFiles/source/FormatSupport/IPTC_Support.cpp b/XMPFiles/source/FormatSupport/IPTC_Support.cpp
index a6ff864..3a3421c 100644
--- a/XMPFiles/source/FormatSupport/IPTC_Support.cpp
+++ b/XMPFiles/source/FormatSupport/IPTC_Support.cpp
@@ -250,8 +250,10 @@ void IPTC_Manager::ParseMemoryDataSets ( const void* data, XMP_Uns32 length, boo
if ( (dsLen == 3) && (memcmp ( iptcPtr, "\x1B\x25\x47", 3 ) == 0) ) this->utf8Encoding = true;
}
- XMP_Uns16 mapID = recNum*1000 + dsNum;
- DataSetInfo dsInfo ( recNum, dsNum, dsLen, iptcPtr );
+ XMP_Uns16 mapID = recNum*1000 + dsNum;
+ DataSetInfo dsInfo( recNum, dsNum, dsLen );
+ if ( dsLen != 0 )
+ dsInfo.dataPtr = iptcPtr;
DataSetMap::iterator dsPos = this->dataSets.find ( mapID );
bool repeatable = false;
@@ -405,6 +407,10 @@ IPTC_Writer::~IPTC_Writer()
void IPTC_Writer::SetDataSet_UTF8 ( XMP_Uns8 dsNum, const void* utf8Ptr, XMP_Uns32 utf8Len, long which /* = -1 */ )
{
+ // No need to process if data is of zero length
+ if ( utf8Len == 0 )
+ return;
+
const DataSetCharacteristics* knownDS = FindKnownDataSet ( dsNum );
if ( knownDS == 0 ) XMP_Throw ( "Can only set known IPTC DataSets", kXMPErr_InternalFailure );
@@ -413,7 +419,10 @@ void IPTC_Writer::SetDataSet_UTF8 ( XMP_Uns8 dsNum, const void* utf8Ptr, XMP_Uns
XMP_Uns8 * tempPtr;
XMP_Uns32 dataLen;
std::string localStr;
-
+#if XMP_MacBuild
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunreachable-code"
+#endif
if ( kUTF8_Mode == kUTF8_AlwaysMode ) {
// Always use UTF-8.
@@ -463,6 +472,9 @@ void IPTC_Writer::SetDataSet_UTF8 ( XMP_Uns8 dsNum, const void* utf8Ptr, XMP_Uns
}
}
+#if XMP_MacBuild
+#pragma clang diagnostic pop
+#endif
// Set the value for this DataSet, making a non-transient copy of the value. Respect UTF-8 character
// boundaries when truncating. This is easy to check. If the first truncated byte has 10 in the
@@ -674,15 +686,16 @@ void IPTC_Writer::ConvertToUTF8()
for ( ; dsPos != dsEnd; ++dsPos ) {
DataSetInfo & dsInfo = dsPos->second;
-
- ReconcileUtils::LocalToUTF8 ( dsInfo.dataPtr, dsInfo.dataLen, &utf8Str );
- this->DisposeLooseValue ( dsInfo );
-
- dsInfo.dataLen = (XMP_Uns32)utf8Str.size();
- dsInfo.dataPtr = (XMP_Uns8*) malloc ( dsInfo.dataLen );
- if ( dsInfo.dataPtr == 0 ) XMP_Throw ( "Out of memory", kXMPErr_NoMemory );
- memcpy ( dsInfo.dataPtr, utf8Str.data(), dsInfo.dataLen ); // AUDIT: Safe, malloc'ed dataLen bytes above.
-
+ if ( dsInfo.dataLen != 0 )
+ {
+ ReconcileUtils::LocalToUTF8( dsInfo.dataPtr, dsInfo.dataLen, &utf8Str );
+ this->DisposeLooseValue( dsInfo );
+
+ dsInfo.dataLen = ( XMP_Uns32 ) utf8Str.size();
+ dsInfo.dataPtr = ( XMP_Uns8* ) malloc( dsInfo.dataLen );
+ if ( dsInfo.dataPtr == 0 ) XMP_Throw( "Out of memory", kXMPErr_NoMemory );
+ memcpy( dsInfo.dataPtr, utf8Str.data(), dsInfo.dataLen ); // AUDIT: Safe, malloc'ed dataLen bytes above.
+ }
}
this->utf8Encoding = true;
@@ -706,15 +719,16 @@ void IPTC_Writer::ConvertToLocal()
for ( ; dsPos != dsEnd; ++dsPos ) {
DataSetInfo & dsInfo = dsPos->second;
-
- ReconcileUtils::UTF8ToLocal ( dsInfo.dataPtr, dsInfo.dataLen, &localStr );
- this->DisposeLooseValue ( dsInfo );
-
- dsInfo.dataLen = (XMP_Uns32)localStr.size();
- dsInfo.dataPtr = (XMP_Uns8*) malloc ( dsInfo.dataLen );
- if ( dsInfo.dataPtr == 0 ) XMP_Throw ( "Out of memory", kXMPErr_NoMemory );
- memcpy ( dsInfo.dataPtr, localStr.data(), dsInfo.dataLen ); // AUDIT: Safe, malloc'ed dataLen bytes above.
-
+ if ( dsInfo.dataLen != 0 )
+ {
+ ReconcileUtils::UTF8ToLocal( dsInfo.dataPtr, dsInfo.dataLen, &localStr );
+ this->DisposeLooseValue( dsInfo );
+
+ dsInfo.dataLen = ( XMP_Uns32 ) localStr.size();
+ dsInfo.dataPtr = ( XMP_Uns8* ) malloc( dsInfo.dataLen );
+ if ( dsInfo.dataPtr == 0 ) XMP_Throw( "Out of memory", kXMPErr_NoMemory );
+ memcpy( dsInfo.dataPtr, localStr.data(), dsInfo.dataLen ); // AUDIT: Safe, malloc'ed dataLen bytes above.
+ }
}
this->utf8Encoding = false;
diff --git a/XMPFiles/source/FormatSupport/IPTC_Support.hpp b/XMPFiles/source/FormatSupport/IPTC_Support.hpp
index 4c2d2bc..e81f1e0 100644
--- a/XMPFiles/source/FormatSupport/IPTC_Support.hpp
+++ b/XMPFiles/source/FormatSupport/IPTC_Support.hpp
@@ -156,6 +156,8 @@ public:
XMP_Uns32 dataLen;
XMP_Uns8 * dataPtr; // ! The data is read-only. Raw data pointer, beware of character encoding.
DataSetInfo() : recNum(0), dsNum(0), dataLen(0), dataPtr(0) {};
+ DataSetInfo( XMP_Uns8 _recNum, XMP_Uns8 _dsNum, XMP_Uns32 _dataLen )
+ : recNum( _recNum ), dsNum( _dsNum ), dataLen( _dataLen ), dataPtr( 0 ) {};
DataSetInfo ( XMP_Uns8 _recNum, XMP_Uns8 _dsNum, XMP_Uns32 _dataLen, XMP_Uns8 * _dataPtr )
: recNum(_recNum), dsNum(_dsNum), dataLen(_dataLen), dataPtr(_dataPtr) {};
};
diff --git a/XMPFiles/source/FormatSupport/ISOBaseMedia_Support.cpp b/XMPFiles/source/FormatSupport/ISOBaseMedia_Support.cpp
index d4a8076..b1ee77c 100644
--- a/XMPFiles/source/FormatSupport/ISOBaseMedia_Support.cpp
+++ b/XMPFiles/source/FormatSupport/ISOBaseMedia_Support.cpp
@@ -55,7 +55,8 @@ const XMP_Uns8 * GetBoxInfo ( const XMP_Uns8 * boxPtr, const XMP_Uns8 * boxLimit
if ( info == 0 ) info = &voidInfo;
info->boxType = info->headerSize = 0;
info->contentSize = 0;
-
+ memset( info->idUUID, 0, 16 );
+
if ( boxPtr >= boxLimit ) XMP_Throw ( "Bad offset to GetBoxInfo", kXMPErr_InternalFailure );
if ( (boxLimit - boxPtr) < 8 ) { // Is there enough space for a standard box header?
@@ -68,8 +69,22 @@ const XMP_Uns8 * GetBoxInfo ( const XMP_Uns8 * boxPtr, const XMP_Uns8 * boxLimit
info->boxType = GetUns32BE ( boxPtr+4 );
if ( u32Size >= 8 ) {
- info->headerSize = 8; // Normal explicit size case.
- info->contentSize = u32Size - 8;
+ if( info->boxType == ISOMedia::k_uuid )
+ {
+ if ( (boxLimit - boxPtr) < 24 )
+ { // Is there enough space for a uuid box header?
+ if ( throwErrors ) XMP_Throw ( "No space for UUID box header", kXMPErr_BadFileFormat );
+ info->headerSize = (XMP_Uns32) (boxLimit - boxPtr);
+ return boxLimit;
+ }
+ info->headerSize = 8 + 16; // 16 for ID in UUID
+ memcpy( info->idUUID, boxPtr + 8, 16 );
+ }
+ else
+ {
+ info->headerSize = 8; // Normal explicit size case.
+ }
+ info->contentSize = u32Size - info->headerSize;
} else if ( u32Size == 0 ) {
info->headerSize = 8; // The box goes to EoF - treat it as "to limit".
info->contentSize = (boxLimit - boxPtr) - 8;
@@ -115,6 +130,7 @@ XMP_Uns64 GetBoxInfo ( XMP_IO* fileRef, const XMP_Uns64 boxOffset, const XMP_Uns
if ( info == 0 ) info = &voidInfo;
info->boxType = info->headerSize = 0;
info->contentSize = 0;
+ memset( info->idUUID, 0, 16 );
if ( boxOffset >= boxLimit ) XMP_Throw ( "Bad offset to GetBoxInfo", kXMPErr_InternalFailure );
@@ -131,8 +147,22 @@ XMP_Uns64 GetBoxInfo ( XMP_IO* fileRef, const XMP_Uns64 boxOffset, const XMP_Uns
info->boxType = GetUns32BE ( &buffer[4] );
if ( u32Size >= 8 ) {
- info->headerSize = 8; // Normal explicit size case.
- info->contentSize = u32Size - 8;
+ if( info->boxType == ISOMedia::k_uuid )
+ {
+ if ( (boxLimit - boxOffset) < 24 )
+ { // Is there enough space for a uuid box header?
+ if ( throwErrors ) XMP_Throw ( "No space for UUID box header", kXMPErr_BadFileFormat );
+ info->headerSize = (XMP_Uns32) (boxLimit - boxOffset);
+ return boxLimit;
+ }
+ info->headerSize = 8 + 16; // 16 for ID in UUID
+ (void) fileRef->ReadAll ( info->idUUID, 16 );
+ }
+ else
+ {
+ info->headerSize = 8; // Normal explicit size case.
+ }
+ info->contentSize = u32Size - info->headerSize;
} else if ( u32Size == 0 ) {
info->headerSize = 8; // The box goes to EoF.
info->contentSize = fileRef->Length() - (boxOffset + 8);
diff --git a/XMPFiles/source/FormatSupport/ISOBaseMedia_Support.hpp b/XMPFiles/source/FormatSupport/ISOBaseMedia_Support.hpp
index 728293f..a7c8feb 100644
--- a/XMPFiles/source/FormatSupport/ISOBaseMedia_Support.hpp
+++ b/XMPFiles/source/FormatSupport/ISOBaseMedia_Support.hpp
@@ -37,6 +37,11 @@ namespace ISOMedia {
ISOboxType(k_f4v ,0x66347620UL)SEPARATOR \
ISOboxType(k_avc1,0x61766331UL)SEPARATOR \
ISOboxType(k_qt ,0x71742020UL)SEPARATOR \
+ ISOboxType(k_isom,0x69736F6DUL)SEPARATOR \
+ ISOboxType(k_3gp4,0x33677034UL)SEPARATOR \
+ ISOboxType(k_3g2a,0x33673261UL)SEPARATOR \
+ ISOboxType(k_3g2b,0x33673262UL)SEPARATOR \
+ ISOboxType(k_3g2c,0x33673263UL)SEPARATOR \
\
ISOboxType(k_moov,0x6D6F6F76UL)SEPARATOR /* Container Box, no version/flags. */ \
ISOboxType(k_mvhd,0x6D766864UL)SEPARATOR /* Data FullBox, has version/flags. */ \
@@ -93,16 +98,17 @@ namespace ISOMedia {
bool IsKnownBoxType(XMP_Uns32 boxType) ;
void TerminateGlobals();
- static XMP_Uns32 k_xmpUUID [4] = { MakeUns32BE ( 0xBE7ACFCBUL ),
- MakeUns32BE ( 0x97A942E8UL ),
- MakeUns32BE ( 0x9C719994UL ),
- MakeUns32BE ( 0x91E3AFACUL ) };
+ static XMP_Uns8 k_xmpUUID [16] = { 0xBE, 0x7A, 0xCF, 0xCB, 0x97, 0xA9, 0x42, 0xE8, 0x9C, 0x71, 0x99, 0x94, 0x91, 0xE3, 0xAF, 0xAC };
struct BoxInfo {
XMP_Uns32 boxType; // In memory as native endian!
XMP_Uns32 headerSize; // Normally 8 or 16, less than 8 if available space is too small.
XMP_Uns64 contentSize; // Always the real size, never 0 for "to EoF".
- BoxInfo() : boxType(0), headerSize(0), contentSize(0) {};
+ XMP_Uns8 idUUID[16]; // ID of the uuid atom if present
+ BoxInfo() : boxType(0), headerSize(0), contentSize(0)
+ {
+ memset( idUUID, 0, 16 );
+ };
};
// Get basic info about a box in memory, returning a pointer to the following box.
diff --git a/XMPFiles/source/FormatSupport/MOOV_Support.cpp b/XMPFiles/source/FormatSupport/MOOV_Support.cpp
index 959df44..50b02eb 100644
--- a/XMPFiles/source/FormatSupport/MOOV_Support.cpp
+++ b/XMPFiles/source/FormatSupport/MOOV_Support.cpp
@@ -59,6 +59,8 @@ void MOOV_Manager::FillBoxInfo ( const BoxNode & node, BoxInfo * info ) const
info->childCount = (XMP_Uns32)node.children.size();
info->contentSize = node.contentSize;
info->content = PickContentPtr ( node );
+ if( node.boxType == ISOMedia::k_uuid )
+ memcpy( info->idUUID, node.idUUID, 16);
} // MOOV_Manager::FillBoxInfo
@@ -249,7 +251,10 @@ void MOOV_Manager::ParseNestedBoxes ( BoxNode * parentNode, const std::string &
(isoInfo.contentSize == 0) ) continue; // Skip trailing padding that QT sometimes writes.
XMP_Uns32 childOffset = (XMP_Uns32) (currChild - moovOrigin);
- parentNode->children.push_back ( BoxNode ( childOffset, isoInfo.boxType, isoInfo.headerSize, (XMP_Uns32)isoInfo.contentSize ) );
+ if( isoInfo.boxType == ISOMedia::k_uuid )
+ parentNode->children.push_back ( BoxNode ( childOffset, isoInfo.boxType, isoInfo.headerSize, (XMP_Uns8 *)isoInfo.idUUID, (XMP_Uns32)isoInfo.contentSize ) );
+ else
+ parentNode->children.push_back ( BoxNode ( childOffset, isoInfo.boxType, isoInfo.headerSize, (XMP_Uns32)isoInfo.contentSize ) );
BoxNode * newChild = &parentNode->children.back();
#if TraceParseMoovTree
@@ -300,13 +305,17 @@ void MOOV_Manager::NoteChange()
//
// Save the new data, set this box's changed flag, and set the top changed flag.
-void MOOV_Manager::SetBox ( BoxRef theBox, const void* dataPtr, XMP_Uns32 size )
+void MOOV_Manager::SetBox ( BoxRef theBox, const void* dataPtr, XMP_Uns32 size , const XMP_Uns8 * idUUID )
{
XMP_Enforce ( size < moovBoxSizeLimit );
BoxNode * node = (BoxNode*)theBox;
if ( node->contentSize == size ) {
-
+ if( node->boxType == ISOMedia::k_uuid && idUUID != 0 )
+ {
+ memcpy ( node->idUUID, idUUID, 16 );
+ this->moovNode.changed = true;
+ }
XMP_Uns8 * oldContent = PickContentPtr ( *node );
if ( memcmp ( oldContent, dataPtr, size ) == 0 ) return; // No change.
memcpy ( oldContent, dataPtr, size ); // Update the old content in-place
@@ -323,6 +332,8 @@ void MOOV_Manager::SetBox ( BoxRef theBox, const void* dataPtr, XMP_Uns32 size )
memcpy ( &node->changedContent[0], dataPtr, size );
node->contentSize = size;
node->changed = true;
+ if( node->boxType == ISOMedia::k_uuid && idUUID != 0)
+ memcpy ( node->idUUID, idUUID, 16 );
this->moovNode.changed = true;
#if TraceUpdateMoovTree
@@ -342,7 +353,7 @@ void MOOV_Manager::SetBox ( BoxRef theBox, const void* dataPtr, XMP_Uns32 size )
//
// Like above, but create the path to the box if necessary.
-void MOOV_Manager::SetBox ( const char * boxPath, const void* dataPtr, XMP_Uns32 size )
+void MOOV_Manager::SetBox ( const char * boxPath, const void* dataPtr, XMP_Uns32 size , const XMP_Uns8 * idUUID )
{
XMP_Enforce ( size < moovBoxSizeLimit );
@@ -363,11 +374,11 @@ void MOOV_Manager::SetBox ( const char * boxPath, const void* dataPtr, XMP_Uns32
parentRef = currRef;
currRef = this->GetTypeChild ( parentRef, boxType, 0 );
- if ( currRef == 0 ) currRef = this->AddChildBox ( parentRef, boxType, 0, 0 );
+ if ( currRef == 0 ) currRef = this->AddChildBox ( parentRef, boxType, 0, 0 , idUUID );
}
- this->SetBox ( currRef, dataPtr, size );
+ this->SetBox ( currRef, dataPtr, size, idUUID );
} // MOOV_Manager::SetBox
@@ -375,12 +386,15 @@ void MOOV_Manager::SetBox ( const char * boxPath, const void* dataPtr, XMP_Uns32
// MOOV_Manager::AddChildBox
// =========================
-MOOV_Manager::BoxRef MOOV_Manager::AddChildBox ( BoxRef parentRef, XMP_Uns32 childType, const void* dataPtr, XMP_Uns32 size )
+MOOV_Manager::BoxRef MOOV_Manager::AddChildBox ( BoxRef parentRef, XMP_Uns32 childType, const void* dataPtr, XMP_Uns32 size , const XMP_Uns8 * idUUID )
{
BoxNode * parent = (BoxNode*)parentRef;
XMP_Assert ( parent != 0 );
- parent->children.push_back ( BoxNode ( 0, childType, 0, 0 ) );
+ if( childType == ISOMedia::k_uuid && idUUID != 0)
+ parent->children.push_back ( BoxNode ( 0, childType, 0, idUUID, 0 ) );
+ else
+ parent->children.push_back ( BoxNode ( 0, childType, 0, 0 ) );
BoxNode * newNode = &parent->children.back();
this->SetBox ( newNode, dataPtr, size );
@@ -436,6 +450,8 @@ XMP_Uns32 MOOV_Manager::NewSubtreeSize ( const BoxNode & node, const std::string
{
XMP_Uns32 subtreeSize = 8 + node.contentSize; // All boxes will have 8 byte headers.
+ if( node.boxType == ISOMedia::k_uuid )
+ subtreeSize += 16; // id of uuid is 16 bytes long
if ( (node.boxType == ISOMedia::k_free) || (node.boxType == ISOMedia::k_wide) ) {
}
@@ -493,7 +509,12 @@ XMP_Uns8 * MOOV_Manager::AppendNewSubtree ( const BoxNode & node, const std::str
XMP_Uns8 * boxOrigin = newPtr; // Save origin to fill in the final size.
PutUns32BE ( node.boxType, (newPtr + 4) );
IncrNewPtr ( 8 );
-
+ if( node.boxType == ISOMedia::k_uuid ) // For uuid, additional 16 bytes is stored for ID
+ {
+ XMP_Enforce ( (XMP_Uns32)(newEnd - newPtr) >= ( 16 + node.contentSize ) );
+ memcpy( newPtr, node.idUUID, 16 );
+ IncrNewPtr ( 16 );
+ }
if ( node.contentSize != 0 ) {
const XMP_Uns8 * content = PickContentPtr( node );
memcpy ( newPtr, content, node.contentSize );
diff --git a/XMPFiles/source/FormatSupport/MOOV_Support.hpp b/XMPFiles/source/FormatSupport/MOOV_Support.hpp
index 7d34ca2..9dc785c 100644
--- a/XMPFiles/source/FormatSupport/MOOV_Support.hpp
+++ b/XMPFiles/source/FormatSupport/MOOV_Support.hpp
@@ -44,7 +44,11 @@ public:
XMP_Uns32 childCount; // ! A 'meta' box has both content (version/flags) and children!
XMP_Uns32 contentSize; // Does not include the size of nested boxes.
const XMP_Uns8 * content; // Null if contentSize is zero.
- BoxInfo() : boxType(0), childCount(0), contentSize(0), content(0) {};
+ XMP_Uns8 idUUID[16]; // ID of the uuid atom if present
+ BoxInfo() : boxType(0), childCount(0), contentSize(0), content(0)
+ {
+ memset ( idUUID ,0, 16 );
+ };
};
// ---------------------------------------------------------------------------------------------
@@ -73,10 +77,10 @@ public:
void NoteChange();
- void SetBox ( BoxRef theBox, const void* dataPtr, XMP_Uns32 size );
- void SetBox ( const char * boxPath, const void* dataPtr, XMP_Uns32 size );
+ void SetBox ( BoxRef theBox, const void* dataPtr, XMP_Uns32 size , const XMP_Uns8 * idUUID = 0 );
+ void SetBox ( const char * boxPath, const void* dataPtr, XMP_Uns32 size , const XMP_Uns8 * idUUID = 0 );
- BoxRef AddChildBox ( BoxRef parentRef, XMP_Uns32 childType, const void * dataPtr, XMP_Uns32 size );
+ BoxRef AddChildBox ( BoxRef parentRef, XMP_Uns32 childType, const void * dataPtr, XMP_Uns32 size , const XMP_Uns8 * idUUID = 0 );
// ---------------------------------------------------------------------------------------------
// DeleteNthChild - Delete the overall n-th child, return true if there was one.
@@ -195,15 +199,26 @@ private:
XMP_Uns32 offset; // The offset in the fullSubtree, 0 if not in the parse.
XMP_Uns32 boxType;
XMP_Uns32 headerSize; // The actual header size in the fullSubtree, 0 if not in the parse.
- XMP_Uns32 contentSize; // The current content size, does not include nested boxes.
+ XMP_Uns32 contentSize; // The current content size, does not include nested boxes or id.
BoxList children;
+ XMP_Uns8 idUUID[16];
RawDataBlock changedContent; // Might be empty even if changed is true.
bool changed; // If true, the content is in changedContent, else in fullSubtree.
- BoxNode() : offset(0), boxType(0), headerSize(0), contentSize(0), changed(false) {};
+ BoxNode() : offset(0), boxType(0), headerSize(0), contentSize(0), changed(false)
+ {
+ memset ( idUUID, 0, 16 );
+ };
BoxNode ( XMP_Uns32 _offset, XMP_Uns32 _boxType, XMP_Uns32 _headerSize, XMP_Uns32 _contentSize )
- : offset(_offset), boxType(_boxType), headerSize(_headerSize), contentSize(_contentSize), changed(false) {};
-
+ : offset(_offset), boxType(_boxType), headerSize(_headerSize), contentSize(_contentSize), changed(false)
+ {
+ memset ( idUUID, 0, 16 );
+ };
+ BoxNode ( XMP_Uns32 _offset, XMP_Uns32 _boxType, XMP_Uns32 _headerSize, const XMP_Uns8 * _idUUID, XMP_Uns32 _contentSize )
+ : offset(_offset), boxType(_boxType), headerSize(_headerSize), contentSize(_contentSize), changed(false)
+ {
+ memcpy ( idUUID, _idUUID, 16 );
+ };
};
XMP_Uns8 fileMode;
diff --git a/XMPFiles/source/FormatSupport/RIFF.cpp b/XMPFiles/source/FormatSupport/RIFF.cpp
index 4d9a0c1..6930190 100644
--- a/XMPFiles/source/FormatSupport/RIFF.cpp
+++ b/XMPFiles/source/FormatSupport/RIFF.cpp
@@ -52,21 +52,20 @@ Chunk* getChunk ( ContainerChunk* parent, RIFF_MetaHandler* handler )
return new ContainerChunk( parent, handler );
case kChunk_LIST:
{
- if ( level != 1 ) break; // only care on this level
+ if ( level != 1 ) break; // only care on this level
// look further (beyond 4+4 = beyond id+size) to check on relevance
file->Seek ( 8, kXMP_SeekFromCurrent );
XMP_Uns32 containerType = XIO::PeekUns32_LE ( file );
file->Seek ( -8, kXMP_SeekFromCurrent );
- bool isRelevantList = ( containerType== kType_INFO || containerType == kType_Tdat );
- if ( !isRelevantList ) break;
-
- return new ContainerChunk( parent, handler );
+ bool isRelevantList = ( containerType== kType_INFO || containerType == kType_Tdat || containerType == kType_hdrl );
+ if ( !isRelevantList ) break;
+ return new ContainerChunk( parent, handler );
}
case kChunk_XMP:
- if ( level != 1 ) break; // ignore on inappropriate levels (might be compound metadata?)
- return new XMPChunk( parent, handler );
+ if ( level != 1 ) break; // ignore on inappropriate levels (might be compound metadata?)
+ return new XMPChunk( parent, handler );
case kChunk_DISP:
{
if ( level != 1 ) break; // only care on this level
@@ -114,6 +113,13 @@ Chunk* getChunk ( ContainerChunk* parent, RIFF_MetaHandler* handler )
JunkChunk* r = new JunkChunk( parent, handler );
return r;
}
+ case kChunk_IDIT:
+ {
+ if ( level != 2 ) break; // only care on this level
+ ValueChunk* r = new ValueChunk( parent, handler );
+ handler->iditChunk = r;
+ return r;
+ }
}
// this "default:" section must be ouside switch bracket, to be
// reachable by all those break statements above:
@@ -267,7 +273,8 @@ ContainerChunk::ContainerChunk( ContainerChunk* parent, RIFF_MetaHandler* handle
// has *relevant* subChunks? (there might be e.g. non-INFO LIST chunks we don't care about)
bool hasSubChunks = ( ( this->id == kChunk_RIFF ) ||
( this->id == kChunk_LIST && this->containerType == kType_INFO ) ||
- ( this->id == kChunk_LIST && this->containerType == kType_Tdat )
+ ( this->id == kChunk_LIST && this->containerType == kType_Tdat ) ||
+ ( this->id == kChunk_LIST && this->containerType == kType_hdrl )
);
XMP_Int64 endOfChunk = this->oldPos + this->oldSize;
@@ -330,6 +337,8 @@ ContainerChunk::ContainerChunk( ContainerChunk* parent, RIFF_MetaHandler* handle
handler->listInfoChunk = this;
if ( level==1 && this->id==kChunk_LIST && this->containerType == kType_Tdat )
handler->listTdatChunk = this;
+ if ( level == 1 && this->id == kChunk_LIST && this->containerType == kType_hdrl )
+ handler->listHdlrChunk = this;
}
else // skip non-interest container chunk
{
@@ -814,8 +823,6 @@ chunkVectIter ContainerChunk::getChild( Chunk* needle )
chunkVectIter iter;
for( iter = this->children.begin(); iter != this->children.end(); iter++ )
{
- Chunk* temp1 = *iter;
- Chunk* temp2 = needle;
if ( (*iter) == needle ) return iter;
}
return this->children.end();
diff --git a/XMPFiles/source/FormatSupport/RIFF.hpp b/XMPFiles/source/FormatSupport/RIFF.hpp
index e2451e5..4bb1f6e 100644
--- a/XMPFiles/source/FormatSupport/RIFF.hpp
+++ b/XMPFiles/source/FormatSupport/RIFF.hpp
@@ -70,6 +70,7 @@ namespace RIFF {
// other relevant chunks
const XMP_Uns32 kChunk_XMP = 0x584D505F; // "_PMX"
+ const XMP_Uns32 kChunk_IDIT = 0x54494449; // "TIDI"
// relevant for Index Correction
// LIST:
diff --git a/XMPFiles/source/FormatSupport/RIFF_Support.cpp b/XMPFiles/source/FormatSupport/RIFF_Support.cpp
index 1e2fad1..a64c98e 100644
--- a/XMPFiles/source/FormatSupport/RIFF_Support.cpp
+++ b/XMPFiles/source/FormatSupport/RIFF_Support.cpp
@@ -22,6 +22,8 @@
#include "XMPFiles/source/FormatSupport/RIFF_Support.hpp"
#include "XMPFiles/source/FormatSupport/Reconcile_Impl.hpp"
+#include <sstream>
+
#define MIN(a, b) ((a) < (b) ? (a) : (b))
using namespace RIFF;
@@ -37,6 +39,9 @@ XMP_Int32 MAX_BEXT_SIZE = 100 * 1024 * 1024;
XMP_Int32 CR8R_SIZE = 0x5C;
XMP_Int32 PRML_SIZE = 0x122;
+// IDIT chunk size
+XMP_Int32 IDIT_SIZE = 0x1A;
+
static const char* sHexChars = "0123456789ABCDEF";
// Encode a string of raw data bytes into a HexString (w/o spaces, i.e. "DEADBEEF").
@@ -290,6 +295,89 @@ static void importBextChunkToXMP( RIFF_MetaHandler* handler, ValueChunk* bextChu
}
} // importBextChunkToXMP
+static XMP_Int32 GetMonth( const char * valuePtr )
+{
+ // This will check 3 characters (4,5,6) of the input and return corresponding months as 1,2,...,12
+ // else it will return 0
+ // Input should as follows : wda mon dd hh:mm:ss yyyy\n\0
+ char firstChar = tolower( valuePtr[ 4 ] );
+ char secondChar = tolower( valuePtr[ 5 ] );
+ char thirdChar = tolower( valuePtr[ 6 ] );
+ if ( firstChar == 'j' && secondChar == 'a' && thirdChar == 'n' )
+ return 1;
+ if ( firstChar == 'f' && secondChar == 'e' && thirdChar == 'b' )
+ return 2;
+ if ( firstChar == 'm' && secondChar == 'a' )
+ {
+ if ( thirdChar == 'r' )
+ return 3;
+ if ( thirdChar == 'y' )
+ return 5;
+ }
+ if ( firstChar == 'a' && secondChar == 'p' && thirdChar == 'r' )
+ return 4;
+ if ( firstChar == 'j' && secondChar == 'u' )
+ {
+ if ( thirdChar == 'n' )
+ return 6;
+ if ( thirdChar == 'l' )
+ return 7;
+ }
+ if ( firstChar == 'a' && secondChar == 'u' && thirdChar == 'g' )
+ return 8;
+ if ( firstChar == 's' && secondChar == 'e' && thirdChar == 'p' )
+ return 9;
+ if ( firstChar == 'o' && secondChar == 'c' && thirdChar == 't' )
+ return 10;
+ if ( firstChar == 'n' && secondChar == 'o' && thirdChar == 'v' )
+ return 11;
+ if ( firstChar == 'd' && secondChar == 'e' && thirdChar == 'c' )
+ return 12;
+ return 0;
+}
+
+static XMP_Uns32 GatherUnsignedInt ( const char * strPtr, size_t count )
+{
+ XMP_Uns32 value = 0;
+ const char * strEnd = strPtr + count;
+
+ while ( strPtr < strEnd ) {
+ if ( *strPtr == ' ' ) ++strPtr;
+ else break;
+ }
+
+ while ( strPtr < strEnd ) {
+ char ch = *strPtr;
+ if ( (ch < '0') || (ch > '9') ) break;
+ value = value*10 + (ch - '0');
+ ++strPtr;
+ }
+
+ return value;
+
+} // GatherUnsignedInt
+
+static void importIditChunkToXMP( RIFF_MetaHandler* handler, ValueChunk* iditChunk )
+{
+ // if there iss a IDIT chunk, there is data...
+ handler->containsXMP = true; // very important for treatment on caller level
+
+ // Size has been already checked in calling function
+ XMP_Enforce( iditChunk->oldSize == IDIT_SIZE + 8 );
+ const char * valuePtr = iditChunk->oldValue.c_str();
+ XMP_Enforce( valuePtr[ IDIT_SIZE - 2 ] == 0x0A );
+ XMP_Enforce( valuePtr[ 13 ] == ':' && valuePtr[ 16 ] == ':' );
+ XMP_DateTime dateTime;
+ dateTime.month = GetMonth( valuePtr );
+ dateTime.day = GatherUnsignedInt( valuePtr + 8, 2 );
+ dateTime.hour = GatherUnsignedInt( valuePtr + 11, 2 );
+ dateTime.minute = GatherUnsignedInt( valuePtr + 14, 2 );
+ dateTime.second = GatherUnsignedInt( valuePtr + 17, 2 );
+ dateTime.year = GatherUnsignedInt( valuePtr + 20, 4 );
+ handler->xmpObj.SetProperty_Date( kXMP_NS_EXIF, "DateTimeOriginal", dateTime );
+
+} // importIditChunkToXMP
+
static void importPrmLToXMP( RIFF_MetaHandler* handler, ValueChunk* prmlChunk )
{
bool haveXMP = false;
@@ -540,6 +628,13 @@ void importProperties( RIFF_MetaHandler* handler )
} // if size sufficient
} // handler->dispChunk
+ // IDIT chunk --------------------------------------------------------------
+ if ( handler->parent->format == kXMP_AVIFile && // Only for AVI file
+ handler->iditChunk != 0 && handler->iditChunk->oldSize == IDIT_SIZE + 8 ) // Including header size i.e, ID + size
+ {
+ importIditChunkToXMP( handler, handler->iditChunk );
+ }
+
} // importProperties
////////////////////////////////////////////////////////////////////////////////
@@ -613,7 +708,7 @@ static void exportXMPtoBextChunk( RIFF_MetaHandler* handler, ValueChunk** bextCh
// prepare buffer, need to know CodingHistory size as the only variable
XMP_Int32 bextBufferSize = MIN_BEXT_SIZE - 8; // -8 because of header
std::string value;
- if ( xmp->GetProperty( bextCodingHistory.ns, bextCodingHistory.prop, &value, kXMP_NoOptions ))
+ if ( xmp->GetProperty( bextCodingHistory.ns, bextCodingHistory.prop, &value, (XMP_OptionBits *) kXMP_NoOptions ))
{
bextBufferSize += ((XMP_StringLen)value.size()) + 1 ; // add to size (and a trailing zero)
}
@@ -625,35 +720,35 @@ static void exportXMPtoBextChunk( RIFF_MetaHandler* handler, ValueChunk** bextCh
// grab props, write into buffer, remove from XMP ///////////////////////////
// bextDescription ------------------------------------------------
- if ( xmp->GetProperty( bextDescription.ns, bextDescription.prop, &value, kXMP_NoOptions ) )
+ if ( xmp->GetProperty( bextDescription.ns, bextDescription.prop, &value, (XMP_OptionBits *) kXMP_NoOptions ) )
{
setBextField( &value, (XMP_Uns8*) buffer, 0, 256 );
xmp->DeleteProperty( bextDescription.ns, bextDescription.prop) ;
chunkUsed = true;
}
// bextOriginator -------------------------------------------------
- if ( xmp->GetProperty( bextOriginator.ns , bextOriginator.prop, &value, kXMP_NoOptions ) )
+ if ( xmp->GetProperty( bextOriginator.ns , bextOriginator.prop, &value, (XMP_OptionBits *) kXMP_NoOptions ) )
{
setBextField( &value, (XMP_Uns8*) buffer, 256, 32 );
xmp->DeleteProperty( bextOriginator.ns , bextOriginator.prop );
chunkUsed = true;
}
// bextOriginatorRef ----------------------------------------------
- if ( xmp->GetProperty( bextOriginatorRef.ns , bextOriginatorRef.prop, &value, kXMP_NoOptions ) )
+ if ( xmp->GetProperty( bextOriginatorRef.ns , bextOriginatorRef.prop, &value, (XMP_OptionBits *) kXMP_NoOptions ) )
{
setBextField( &value, (XMP_Uns8*) buffer, 256+32, 32 );
xmp->DeleteProperty( bextOriginatorRef.ns , bextOriginatorRef.prop );
chunkUsed = true;
}
// bextOriginationDate --------------------------------------------
- if ( xmp->GetProperty( bextOriginationDate.ns , bextOriginationDate.prop, &value, kXMP_NoOptions ) )
+ if ( xmp->GetProperty( bextOriginationDate.ns , bextOriginationDate.prop, &value, (XMP_OptionBits *) kXMP_NoOptions ) )
{
setBextField( &value, (XMP_Uns8*) buffer, 256+32+32, 10 );
xmp->DeleteProperty( bextOriginationDate.ns , bextOriginationDate.prop );
chunkUsed = true;
}
// bextOriginationTime --------------------------------------------
- if ( xmp->GetProperty( bextOriginationTime.ns , bextOriginationTime.prop, &value, kXMP_NoOptions ) )
+ if ( xmp->GetProperty( bextOriginationTime.ns , bextOriginationTime.prop, &value, (XMP_OptionBits *) kXMP_NoOptions ) )
{
setBextField( &value, (XMP_Uns8*) buffer, 256+32+32+10, 8 );
xmp->DeleteProperty( bextOriginationTime.ns , bextOriginationTime.prop );
@@ -661,7 +756,7 @@ static void exportXMPtoBextChunk( RIFF_MetaHandler* handler, ValueChunk** bextCh
}
// bextTimeReference ----------------------------------------------
// thanx to friendly byte order, all 8 bytes can be written in one go:
- if ( xmp->GetProperty( bextTimeReference.ns, bextTimeReference.prop, &value, kXMP_NoOptions ) )
+ if ( xmp->GetProperty( bextTimeReference.ns, bextTimeReference.prop, &value, (XMP_OptionBits *) kXMP_NoOptions ) )
{
try
{
@@ -684,7 +779,7 @@ static void exportXMPtoBextChunk( RIFF_MetaHandler* handler, ValueChunk** bextCh
xmp->DeleteProperty( bextVersion.ns, bextVersion.prop );
// bextUMID -------------------------------------------------------
- if ( xmp->GetProperty( bextUMID.ns, bextUMID.prop, &value, kXMP_NoOptions ) )
+ if ( xmp->GetProperty( bextUMID.ns, bextUMID.prop, &value, (XMP_OptionBits *) kXMP_NoOptions ) )
{
std::string rawStr;
@@ -703,7 +798,7 @@ static void exportXMPtoBextChunk( RIFF_MetaHandler* handler, ValueChunk** bextCh
}
// bextCodingHistory ----------------------------------------------
- if ( xmp->GetProperty( bextCodingHistory.ns, bextCodingHistory.prop, &value, kXMP_NoOptions ) )
+ if ( xmp->GetProperty( bextCodingHistory.ns, bextCodingHistory.prop, &value, (XMP_OptionBits *) kXMP_NoOptions ) )
{
std::string ascii;
convertToASCII( value.data(), (XMP_StringLen) value.size() , &ascii, (XMP_StringLen) value.size() );
@@ -809,6 +904,237 @@ static void exportXMPtoCr8rChunk ( RIFF_MetaHandler* handler, ValueChunk** cr8rC
}
+// Returns numbers of leap years between 1800 and provided year value. Both end values will be inclusive for getting this field.
+// For leap year this will be handled later in GetIDITString() function
+static XMP_Uns32 GetLeapYearsNumber( const XMP_Uns32 & year )
+{
+
+ XMP_Uns32 numLeapYears = ( year / 4 );
+ numLeapYears -= ( year / 100 );
+ numLeapYears += ( ( year + 200 ) / 400 ); // 200 is added becuase our base is 1800 which give modulas 200 by divinding with 400
+ return numLeapYears;
+
+} //GetLeapYearsNumber
+
+static XMP_Uns32 GetDays( const XMP_Int32 & month, const bool &isLeapYear )
+{
+ // Adding number of days as per last month of the provided year
+ // Leap year case is handled later
+ XMP_Uns32 numDays = 0;
+ switch ( month )
+ {
+ case 2:
+ numDays = 31;
+ break;
+ case 3:
+ numDays = 31 + 28;
+ break;
+ case 4:
+ numDays = 31 + 28 + 31;
+ break;
+ case 5:
+ numDays = 31 + 28 + 31 + 30;
+ break;
+ case 6:
+ numDays = 31 + 28 + 31 + 30 + 31;
+ break;
+ case 7:
+ numDays = 31 + 28 + 31 + 30 + 31 + 30;
+ break;
+ case 8:
+ numDays = 31 + 28 + 31 + 30 + 31 + 30 + 31;
+ break;
+ case 9:
+ numDays = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31;
+ break;
+ case 10:
+ numDays = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30;
+ break;
+ case 11:
+ numDays = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31;
+ break;
+ case 12:
+ numDays = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30;
+ break;
+ default:
+ break;
+ }
+
+ // Adding one day for leap year and month above than feb
+ if ( isLeapYear == true && month > 2 )
+ numDays += 1;
+
+ return numDays;
+
+} // GetDays
+
+static const std::string GetIDITString( const XMP_DateTime & targetDate )
+{
+ // Date 1 Jan 1800 is treating as base date for handling this issue
+ // 1800 is chosen becuase of consistency in calender after 1752
+
+ XMP_Uns64 numOfDays = 0; // Specifies number of days after 1 jan 1800
+ XMP_Uns32 year = targetDate.year - 1800;
+
+ // 2000 was the first exception when year dividing by 100 was still a leap year
+ bool isLeapYear = ( year % 4 != 0 ) ? false : ( year % 100 != 0 ) ? true : ( ( year % 400 != 200 ) ? false : true );
+
+ // Adding days according to normal year and adjusting days for leap years
+ numOfDays = 365 * year;
+ numOfDays += GetLeapYearsNumber( year );
+
+ // Adding days according to the month
+ numOfDays += GetDays( targetDate.month, isLeapYear );
+
+ // GetLeapYearsNumber() function is also considering provided year for calculating number of leap numbers between provided year
+ // and 1800. This consideration is done by inclusive both end values. So both GetLeapYearsNumber() and GetDays() would have added
+ // extra day for higher end year for leap year.
+ // So, we need to decrease one day from number of days field
+ if ( isLeapYear )
+ --numOfDays;
+
+ // Adding days according to provided month
+ numOfDays += targetDate.day;
+
+ // Weekday starting from Wednesday i.e., Wed will be the first day of the week.
+ // This day was choosen because 1 Jan 1800 was Wednesday
+ XMP_Uns8 weekDayNum = numOfDays % 7;
+ std::string weekDay;
+ switch ( weekDayNum )
+ {
+ case 0:
+ weekDay = "Tue";
+ break;
+ case 1:
+ weekDay = "Wed";
+ break;
+ case 2:
+ weekDay = "Thu";
+ break;
+ case 3:
+ weekDay = "Fri";
+ break;
+ case 4:
+ weekDay = "Sat";
+ break;
+ case 5:
+ weekDay = "Sun";
+ break;
+ case 6:
+ weekDay = "Mon";
+ break;
+ default:
+ break;
+ }
+
+ // Stream to convert into IDIT format
+ std::stringstream iditStream;
+ iditStream << weekDay;
+ iditStream.put( ' ' );
+
+ // IDIT needs 3 character codes for month
+ const char * monthArray[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
+ iditStream << monthArray[ targetDate.month - 1 ];
+ iditStream.put( ' ' );
+
+ if ( targetDate.day < 10 )
+ iditStream.put( '0' );
+ iditStream << targetDate.day;
+ iditStream.put( ' ' );
+
+ if ( targetDate.hour < 10 )
+ iditStream.put( '0' );
+ iditStream << targetDate.hour;
+ iditStream.put( ':' );
+
+ if ( targetDate.minute < 10 )
+ iditStream.put( '0' );
+ iditStream << targetDate.minute;
+ iditStream.put( ':' );
+
+ if ( targetDate.second < 10 )
+ iditStream.put( '0' );
+ iditStream << targetDate.second;
+ iditStream.put( ' ' );
+
+ // No need to handle casese for year 1 to 999
+ /*
+ if ( targetDate.year < 10 )
+ iditStream << " ";
+ else if ( targetDate.year < 100 )
+ iditStream << " ";
+ else if ( targetDate.year < 1000 )
+ iditStream << " ";
+ */
+ // Year will be in the range of 1800-3999
+ iditStream << targetDate.year;
+
+ // Adding new line charcter for IDIT
+ iditStream.put( '\n' );
+
+ return iditStream.str();
+
+} // GetIDITString
+
+static void exportXMPtoIDITChunk( RIFF_MetaHandler* handler )
+{
+ // exif:DateTimeOriginal -> IDIT chunk
+ ContainerChunk * hdlrChunk = handler->listHdlrChunk;
+ if ( hdlrChunk == 0 )
+ XMP_Throw( "Header of AVI file (hdlr chunk) must exists", kXMPErr_BadFileFormat );
+
+ XMP_DateTime dateTime;
+ bool propExists = handler->xmpObj.GetProperty_Date( kXMP_NS_EXIF, "DateTimeOriginal", &dateTime, 0 );
+ if ( !propExists )
+ {
+ if ( handler->iditChunk != 0 )
+ {
+ // Exception would have thrown if we don't find hdlr chunk for AVI file
+ XMP_Assert( hdlrChunk != 0 );
+ bool isSuccess = hdlrChunk->removeValue( kChunk_IDIT );
+ if ( !isSuccess )
+ XMP_Throw( "Removal of IDIT block fails", kXMPErr_InternalFailure );
+ handler->iditChunk = 0;
+ hdlrChunk->hasChange = true;
+ }
+ // Else no need to do anything
+ }
+ else
+ {
+ if ( dateTime.year < 1800 || dateTime.year > 3999 )
+ XMP_Throw( "For IDIT block, XMP currently supports years in between 1800 and 3999 (Both inclusive).", kXMPErr_InternalFailure );
+
+ /*
+ Conversion need to be done from XMP date time to IDIT structure.
+ XMP_DateTime accepts any value but IDIT needs to have weekday, month-day, month, year and time.
+ */
+
+ // Silently modifying dateTime for invalid dates.
+ if ( dateTime.month < 1 )
+ dateTime.month = 1;
+ if ( dateTime.month > 12 )
+ dateTime.month = 12;
+ if ( dateTime.day < 1 )
+ dateTime.day = 1;
+ if ( dateTime.day > 31 )
+ dateTime.day = 31;
+
+ const std::string iditString = GetIDITString( dateTime );
+
+ // If no IDIT exits then create one
+ if ( handler->iditChunk == 0 )
+ handler->iditChunk = new ValueChunk( hdlrChunk, std::string(), kChunk_IDIT );
+ else if ( strncmp( iditString.c_str(), handler->iditChunk->oldValue.c_str(), IDIT_SIZE ) == 0 ) // Equal
+ return;
+
+ // Setting the IDIT value
+ handler->iditChunk->hasChange = true;
+ handler->iditChunk->SetValue( iditString, true );
+
+ }
+
+} // exportXMPtoIDITChunk
+
static void exportXMPtoListChunk( XMP_Uns32 id, XMP_Uns32 containerType,
RIFF_MetaHandler* handler, ContainerChunk** listChunk, Mapping mapping[])
{
@@ -887,12 +1213,12 @@ void exportAndRemoveProperties ( RIFF_MetaHandler* handler )
exportXMPtoCr8rChunk ( handler, &handler->cr8rChunk );
- // 1/4 BWF Bext extension chunk -----------------------------------------------
+ // 1/5 BWF Bext extension chunk -----------------------------------------------
if ( handler->parent->format == kXMP_WAVFile ) { // applies only to WAV
exportXMPtoBextChunk ( handler, &handler->bextChunk );
}
- // 2/4 DISP chunk
+ // 2/5 DISP chunk
if ( handler->parent->format == kXMP_WAVFile ) { // create for WAVE only
std::string actualLang, xmpValue;
@@ -928,12 +1254,16 @@ void exportAndRemoveProperties ( RIFF_MetaHandler* handler )
}
- // 3/4 LIST:INFO
+ // 3/5 LIST:INFO
exportXMPtoListChunk ( kChunk_LIST, kType_INFO, handler, &handler->listInfoChunk, listInfoProps );
- // 4/4 LIST:Tdat
+ // 4/5 LIST:Tdat
exportXMPtoListChunk ( kChunk_LIST, kType_Tdat, handler, &handler->listTdatChunk, listTdatProps );
+ // 5/5 LIST:HDRL:IDIT
+ if ( handler->parent->format == kXMP_AVIFile )
+ exportXMPtoIDITChunk ( handler );
+
}
} // namespace RIFF
diff --git a/XMPFiles/source/FormatSupport/ReconcileIPTC.cpp b/XMPFiles/source/FormatSupport/ReconcileIPTC.cpp
index df9d676..142cdd6 100644
--- a/XMPFiles/source/FormatSupport/ReconcileIPTC.cpp
+++ b/XMPFiles/source/FormatSupport/ReconcileIPTC.cpp
@@ -193,7 +193,7 @@ void PhotoDataUtils::ImportIPTC_Date ( XMP_Uns8 dateID, const IPTC_Manager & ipt
IPTC_Manager::DataSetInfo dsInfo;
size_t count = iptc.GetDataSet ( dateID, &dsInfo );
- if ( count == 0 ) return;
+ if ( count == 0 || dsInfo.dataLen == 0 ) return;
size_t chPos, digits;
XMP_DateTime xmpDate;
@@ -205,7 +205,7 @@ void PhotoDataUtils::ImportIPTC_Date ( XMP_Uns8 dateID, const IPTC_Manager & ipt
xmpDate.year = (xmpDate.year * 10) + (dsInfo.dataPtr[chPos] - '0');
}
- if ( dsInfo.dataPtr[chPos] == '-' ) ++chPos;
+ if ( ( chPos < dsInfo.dataLen ) && dsInfo.dataPtr[chPos] == '-' ) ++chPos;
for ( digits = 0; digits < 2; ++digits, ++chPos ) {
if ( (chPos >= dsInfo.dataLen) || (dsInfo.dataPtr[chPos] < '0') || (dsInfo.dataPtr[chPos] > '9') ) break;
xmpDate.month = (xmpDate.month * 10) + (dsInfo.dataPtr[chPos] - '0');
@@ -213,7 +213,7 @@ void PhotoDataUtils::ImportIPTC_Date ( XMP_Uns8 dateID, const IPTC_Manager & ipt
if ( xmpDate.month < 1 ) xmpDate.month = 1;
if ( xmpDate.month > 12 ) xmpDate.month = 12;
- if ( dsInfo.dataPtr[chPos] == '-' ) ++chPos;
+ if ( ( chPos < dsInfo.dataLen ) && dsInfo.dataPtr[chPos] == '-' ) ++chPos;
for ( digits = 0; digits < 2; ++digits, ++chPos ) {
if ( (chPos >= dsInfo.dataLen) || (dsInfo.dataPtr[chPos] < '0') || (dsInfo.dataPtr[chPos] > '9') ) break;
xmpDate.day = (xmpDate.day * 10) + (dsInfo.dataPtr[chPos] - '0');
@@ -227,7 +227,7 @@ void PhotoDataUtils::ImportIPTC_Date ( XMP_Uns8 dateID, const IPTC_Manager & ipt
// Now add the time portion if present.
count = iptc.GetDataSet ( timeID, &dsInfo );
- if ( count != 0 ) {
+ if ( count != 0 && dsInfo.dataLen > 0 ) {
chPos = 0;
for ( digits = 0; digits < 2; ++digits, ++chPos ) {
@@ -237,7 +237,7 @@ void PhotoDataUtils::ImportIPTC_Date ( XMP_Uns8 dateID, const IPTC_Manager & ipt
if ( xmpDate.hour < 0 ) xmpDate.hour = 0;
if ( xmpDate.hour > 23 ) xmpDate.hour = 23;
- if ( dsInfo.dataPtr[chPos] == ':' ) ++chPos;
+ if ( ( chPos < dsInfo.dataLen ) && dsInfo.dataPtr[chPos] == ':' ) ++chPos;
for ( digits = 0; digits < 2; ++digits, ++chPos ) {
if ( (chPos >= dsInfo.dataLen) || (dsInfo.dataPtr[chPos] < '0') || (dsInfo.dataPtr[chPos] > '9') ) break;
xmpDate.minute = (xmpDate.minute * 10) + (dsInfo.dataPtr[chPos] - '0');
@@ -245,7 +245,7 @@ void PhotoDataUtils::ImportIPTC_Date ( XMP_Uns8 dateID, const IPTC_Manager & ipt
if ( xmpDate.minute < 0 ) xmpDate.minute = 0;
if ( xmpDate.minute > 59 ) xmpDate.minute = 59;
- if ( dsInfo.dataPtr[chPos] == ':' ) ++chPos;
+ if ( ( chPos < dsInfo.dataLen ) && dsInfo.dataPtr[chPos] == ':' ) ++chPos;
for ( digits = 0; digits < 2; ++digits, ++chPos ) {
if ( (chPos >= dsInfo.dataLen) || (dsInfo.dataPtr[chPos] < '0') || (dsInfo.dataPtr[chPos] > '9') ) break;
xmpDate.second = (xmpDate.second * 10) + (dsInfo.dataPtr[chPos] - '0');
@@ -255,11 +255,11 @@ void PhotoDataUtils::ImportIPTC_Date ( XMP_Uns8 dateID, const IPTC_Manager & ipt
xmpDate.hasTime = true;
- if ( (dsInfo.dataPtr[chPos] != ' ') && (dsInfo.dataPtr[chPos] != 0) ) { // Tolerate a missing TZ.
+ if ( ( chPos < dsInfo.dataLen ) && (dsInfo.dataPtr[chPos] != ' ') && (dsInfo.dataPtr[chPos] != 0) ) { // Tolerate a missing TZ.
- if ( dsInfo.dataPtr[chPos] == '+' ) {
+ if ( ( chPos < dsInfo.dataLen ) && ( dsInfo.dataPtr[chPos] == '+' ) ) {
xmpDate.tzSign = kXMP_TimeEastOfUTC;
- } else if ( dsInfo.dataPtr[chPos] == '-' ) {
+ } else if ( ( chPos < dsInfo.dataLen ) && dsInfo.dataPtr[chPos] == '-' ) {
xmpDate.tzSign = kXMP_TimeWestOfUTC;
} else if ( chPos != dsInfo.dataLen ) {
return; // The DataSet is ill-formed.
@@ -273,7 +273,7 @@ void PhotoDataUtils::ImportIPTC_Date ( XMP_Uns8 dateID, const IPTC_Manager & ipt
if ( xmpDate.tzHour < 0 ) xmpDate.tzHour = 0;
if ( xmpDate.tzHour > 23 ) xmpDate.tzHour = 23;
- if ( dsInfo.dataPtr[chPos] == ':' ) ++chPos;
+ if ( ( chPos < dsInfo.dataLen ) && dsInfo.dataPtr[chPos] == ':' ) ++chPos;
for ( digits = 0; digits < 2; ++digits, ++chPos ) {
if ( (chPos >= dsInfo.dataLen) || (dsInfo.dataPtr[chPos] < '0') || (dsInfo.dataPtr[chPos] > '9') ) break;
xmpDate.tzMinute = (xmpDate.tzMinute * 10) + (dsInfo.dataPtr[chPos] - '0');
@@ -367,8 +367,6 @@ static void ImportIPTC_SubjectCode ( const IPTC_Manager & iptc, SXMPMeta * xmp )
void PhotoDataUtils::Import2WayIPTC ( const IPTC_Manager & iptc, SXMPMeta * xmp, int iptcDigestState )
{
- if ( iptcDigestState == kDigestMatches ) return; // Ignore the IPTC if the digest matches.
-
std::string oldStr, newStr;
IPTC_Writer oldIPTC;
@@ -386,9 +384,9 @@ void PhotoDataUtils::Import2WayIPTC ( const IPTC_Manager & iptc, SXMPMeta * xmp,
bool haveXMP = xmp->DoesPropertyExist ( thisDS.xmpNS, thisDS.xmpProp );
newCount = PhotoDataUtils::GetNativeInfo ( iptc, thisDS.dsNum, iptcDigestState, haveXMP, &newInfo );
- if ( newCount == 0 ) continue; // GetNativeInfo returns 0 for ignored local text.
-
- if ( iptcDigestState == kDigestMissing ) {
+ if ( ( newCount == 0 ) || ( newInfo.dataLen == 0 ) ) continue; // GetNativeInfo returns 0 for ignored local text.
+ // For no data in dataset, don't import or delete anything
+ if ( iptcDigestState == kDigestMissing || iptcDigestState == kDigestMatches ) {
if ( haveXMP ) continue; // Keep the existing XMP.
} else if ( ! PhotoDataUtils::IsValueDifferent ( iptc, oldIPTC, thisDS.dsNum ) ) {
continue; // Don't import values that match the previous export.
diff --git a/XMPFiles/source/FormatSupport/ReconcileTIFF.cpp b/XMPFiles/source/FormatSupport/ReconcileTIFF.cpp
index e43a1e5..f9e1165 100644
--- a/XMPFiles/source/FormatSupport/ReconcileTIFF.cpp
+++ b/XMPFiles/source/FormatSupport/ReconcileTIFF.cpp
@@ -306,9 +306,7 @@ size_t PhotoDataUtils::GetNativeInfo ( const IPTC_Manager & iptc, XMP_Uns8 id, i
{
size_t iptcCount = 0;
- if ( (digestState == kDigestDiffers) || ((digestState == kDigestMissing) && (! haveXMP)) ) {
- iptcCount = iptc.GetDataSet ( id, info );
- }
+ iptcCount = iptc.GetDataSet ( id, info );
if ( ignoreLocalText && (iptcCount > 0) && (! iptc.UsingUTF8()) ) {
// Check to see if the new value(s) should be ignored.
@@ -2283,11 +2281,10 @@ static void Import3WayDateTime ( XMP_Uns16 exifTag, const TIFF_Manager & exif, c
haveXMP = xmp->GetProperty ( xmpNS, xmpProp, &xmpValue, 0 );
iptcCount = PhotoDataUtils::GetNativeInfo ( iptc, iptcDS, iptcDigestState, haveXMP, &iptcInfo );
haveIPTC = (iptcCount > 0);
- XMP_Assert ( (iptcDigestState == kDigestMatches) ? (! haveIPTC) : true );
haveExif = (! haveXMP) && (! haveIPTC) && PhotoDataUtils::GetNativeInfo ( exif, kTIFF_ExifIFD, exifTag, &exifInfo );
XMP_Assert ( (! (haveExif & haveXMP)) & (! (haveExif & haveIPTC)) );
- if ( haveIPTC ) {
+ if ( haveIPTC && ((iptcDigestState == kDigestDiffers) || (!haveXMP && !haveExif)) ) {
PhotoDataUtils::ImportIPTC_Date ( iptcDS, iptc, xmp );
@@ -2360,7 +2357,6 @@ void PhotoDataUtils::Import3WayItems ( const TIFF_Manager & exif, const IPTC_Man
haveXMP = xmp->GetLocalizedText ( kXMP_NS_DC, "rights", "", "x-default", 0, &xmpValue, 0 );
iptcCount = PhotoDataUtils::GetNativeInfo ( iptc, kIPTC_CopyrightNotice, iptcDigestState, haveXMP, &iptcInfo );
haveIPTC = (iptcCount > 0);
- XMP_Assert ( (iptcDigestState == kDigestMatches) ? (! haveIPTC) : true );
haveExif = (! haveXMP) && (! haveIPTC) && PhotoDataUtils::GetNativeInfo ( exif, kTIFF_PrimaryIFD, kTIFF_Copyright, &exifInfo );
XMP_Assert ( (! (haveExif & haveXMP)) & (! (haveExif & haveIPTC)) );
@@ -2370,7 +2366,7 @@ void PhotoDataUtils::Import3WayItems ( const TIFF_Manager & exif, const IPTC_Man
}
}
- if ( haveIPTC ) {
+ if ( haveIPTC && ((iptcDigestState == kDigestDiffers) || (!haveXMP && !haveExif)) ) {
PhotoDataUtils::ImportIPTC_LangAlt ( iptc, xmp, kIPTC_CopyrightNotice, kXMP_NS_DC, "rights" );
} else if ( haveExif && PhotoDataUtils::IsValueDifferent ( exifInfo, xmpValue, &exifValue ) ) {
xmp->SetLocalizedText ( kXMP_NS_DC, "rights", "", "x-default", exifValue.c_str() );
@@ -2383,11 +2379,10 @@ void PhotoDataUtils::Import3WayItems ( const TIFF_Manager & exif, const IPTC_Man
haveXMP = xmp->GetLocalizedText ( kXMP_NS_DC, "description", "", "x-default", 0, &xmpValue, 0 );
iptcCount = PhotoDataUtils::GetNativeInfo ( iptc, kIPTC_Description, iptcDigestState, haveXMP, &iptcInfo );
haveIPTC = (iptcCount > 0);
- XMP_Assert ( (iptcDigestState == kDigestMatches) ? (! haveIPTC) : true );
haveExif = (! haveXMP) && (! haveIPTC) && PhotoDataUtils::GetNativeInfo ( exif, kTIFF_PrimaryIFD, kTIFF_ImageDescription, &exifInfo );
XMP_Assert ( (! (haveExif & haveXMP)) & (! (haveExif & haveIPTC)) );
- if ( haveIPTC ) {
+ if ( haveIPTC && ((iptcDigestState == kDigestDiffers) || (!haveXMP && !haveExif)) ) {
PhotoDataUtils::ImportIPTC_LangAlt ( iptc, xmp, kIPTC_Description, kXMP_NS_DC, "description" );
} else if ( haveExif && PhotoDataUtils::IsValueDifferent ( exifInfo, xmpValue, &exifValue ) ) {
xmp->SetLocalizedText ( kXMP_NS_DC, "description", "", "x-default", exifValue.c_str() );
@@ -2401,11 +2396,10 @@ void PhotoDataUtils::Import3WayItems ( const TIFF_Manager & exif, const IPTC_Man
haveExif = PhotoDataUtils::GetNativeInfo ( exif, kTIFF_PrimaryIFD, kTIFF_Artist, &exifInfo );
iptcCount = PhotoDataUtils::GetNativeInfo ( iptc, kIPTC_Creator, iptcDigestState, haveXMP, &iptcInfo );
haveIPTC = (iptcCount > 0);
- XMP_Assert ( (iptcDigestState == kDigestMatches) ? (! haveIPTC) : true );
haveExif = (! haveXMP) && (! haveIPTC) && PhotoDataUtils::GetNativeInfo ( exif, kTIFF_PrimaryIFD, kTIFF_Artist, &exifInfo );
XMP_Assert ( (! (haveExif & haveXMP)) & (! (haveExif & haveIPTC)) );
- if ( haveIPTC ) {
+ if ( haveIPTC && ((iptcDigestState == kDigestDiffers) || (!haveXMP && !haveExif)) ) {
PhotoDataUtils::ImportIPTC_Array ( iptc, xmp, kIPTC_Creator, kXMP_NS_DC, "creator" );
} else if ( haveExif && PhotoDataUtils::IsValueDifferent ( exifInfo, xmpValue, &exifValue ) ) {
SXMPUtils::SeparateArrayItems ( xmp, kXMP_NS_DC, "creator",
diff --git a/XMPFiles/source/FormatSupport/SVG_Adapter.cpp b/XMPFiles/source/FormatSupport/SVG_Adapter.cpp
new file mode 100644
index 0000000..750848d
--- /dev/null
+++ b/XMPFiles/source/FormatSupport/SVG_Adapter.cpp
@@ -0,0 +1,464 @@
+// =================================================================================================
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved.
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+//
+// This file includes implementation of SVG metadata, according to Scalable Vector Graphics (SVG) 1.1 Specification.
+// "https://www.w3.org/TR/2003/REC-SVG11-20030114/"
+// Copyright © 1994-2002 World Wide Web Consortium, (Massachusetts Institute of Technology,
+// Institut National de Recherche en Informatique et en Automatique, Keio University).
+// All Rights Reserved . http://www.w3.org/Consortium/Legal
+//
+// =================================================================================================
+
+#include "public/include/XMP_Environment.h" // ! Must be the first #include!
+
+#include "XMPFiles/source/FormatSupport/SVG_Adapter.hpp"
+
+#include "third-party/expat/lib/expat.h"
+#include <string.h>
+
+using namespace std;
+
+#if XMP_WinBuild
+#pragma warning ( disable : 4996 ) // '...' was declared deprecated
+#endif
+
+#define FullNameSeparator '@'
+
+// =================================================================================================
+
+static void StartNamespaceDeclHandler( void * userData, XMP_StringPtr prefix, XMP_StringPtr uri );
+static void EndNamespaceDeclHandler( void * userData, XMP_StringPtr prefix );
+static void StartElementHandler( void * userData, XMP_StringPtr name, XMP_StringPtr* attrs );
+static void EndElementHandler( void * userData, XMP_StringPtr name );
+static void CharacterDataHandler( void * userData, XMP_StringPtr cData, int len );
+static void ProcessingInstructionHandler( void * userData, XMP_StringPtr target, XMP_StringPtr data );
+static void DeclarationHandler( void *userData, const XML_Char *version, const XML_Char *encoding, int standalone );
+
+static bool isRequireData = false;
+static XMP_Uns32 reqDepth = 0;
+
+// Flag is provided to support behaviour like Expat Adapter
+#if BanAllEntityUsage
+
+// For now we do this by banning DOCTYPE entirely. This is easy and consistent with what is
+// available in recent Java XML parsers. Another, somewhat less drastic, approach would be to
+// ban all entity declarations. We can't allow declarations and ban references, Expat does not
+// call the SkippedEntityHandler for references in attribute values.
+
+// ! Standard entities (&amp;, &lt;, &gt;, &quot;, &apos;, and numeric character references) are
+// ! not banned. Expat handles them transparently no matter what.
+
+static void StartDoctypeDeclHandler( void * userData, XMP_StringPtr doctypeName,
+ XMP_StringPtr sysid, XMP_StringPtr pubid, int has_internal_subset );
+
+#endif
+
+// =================================================================================================
+
+SVG_Adapter::SVG_Adapter() : parser(0), registeredNamespaces(0), firstSVGElementOffset(-1), depth(0)
+{
+
+ this->parser = XML_ParserCreateNS( 0, FullNameSeparator );
+
+ if ( this->parser == 0 ) {
+ XMP_Error error( kXMPErr_NoMemory, "Failure creating Expat parser" );
+ this->NotifyClient( kXMPErrSev_ProcessFatal, error );
+ }
+ else
+ {
+ this->registeredNamespaces = new XMP_NamespaceTable();
+
+ XML_SetUserData( this->parser, this );
+ XML_SetNamespaceDeclHandler( this->parser, StartNamespaceDeclHandler, EndNamespaceDeclHandler );
+ XML_SetElementHandler( this->parser, StartElementHandler, EndElementHandler );
+ XML_SetCharacterDataHandler( this->parser, CharacterDataHandler );
+ XML_SetProcessingInstructionHandler( this->parser, ProcessingInstructionHandler );
+ XML_SetXmlDeclHandler( this->parser, DeclarationHandler );
+
+#if BanAllEntityUsage
+ XML_SetStartDoctypeDeclHandler( this->parser, StartDoctypeDeclHandler );
+ isAborted = false;
+#endif
+
+ this->parseStack.push_back( &this->tree ); // Push the XML root node.
+ }
+} // SVG_Adapter::SVG_Adapter
+
+// =================================================================================================
+
+SVG_Adapter::~SVG_Adapter()
+{
+ if ( this->parser != 0 ) XML_ParserFree( this->parser );
+ this->parser = 0;
+
+ if ( this->registeredNamespaces != 0 ) delete ( this->registeredNamespaces );
+ this->registeredNamespaces = 0;
+
+} // SVG_Adapter::~SVG_Adapter
+
+// =================================================================================================
+
+OffsetStruct SVG_Adapter::GetElementOffsets( std::string elementName )
+{
+ IteratorStringOffsetStruct iterator = this->mOffsetsMap.find( elementName );
+ if ( iterator != mOffsetsMap.end() )
+ return iterator->second;
+
+ return OffsetStruct();
+} // SVG_Adapter::GetElementOffset
+
+// =================================================================================================
+
+void SVG_Adapter::RegisterElement( std::string elementName, std::string reqParent )
+{
+ IteratorStringOffsetStruct iterator = this->mOffsetsMap.find( elementName );
+ if ( iterator == mOffsetsMap.end() )
+ {
+ this->mOffsetsMap.insert( iterator, std::pair<std::string, OffsetStruct>( elementName, OffsetStruct( reqParent ) ) );
+ }
+} // SVG_Adapter::RegisterElement
+
+// =================================================================================================
+
+XMP_Int64 SVG_Adapter::GetPIOffset( std::string PIName, XMP_Uns32 requiredIndex /* = 1 */ )
+{
+ if ( this->parser != 0 )
+ {
+ std::pair<IteratorStringXMP_Int64, IteratorStringXMP_Int64> iterator = this->mPIWithOffsetMap.equal_range( PIName );
+ if ( iterator.first != iterator.second )
+ {
+ XMP_Uns32 index = 0;
+ IteratorStringXMP_Int64 indexIterator = iterator.first;
+ for ( ; index < ( requiredIndex - 1 ) && indexIterator != iterator.second; ++indexIterator, ++index );
+ if ( index == requiredIndex - 1 )
+ return indexIterator->second;
+ }
+ }
+ return -1;
+} // SVG_Adapter::GetPIOffset
+
+// =================================================================================================
+
+void SVG_Adapter::RegisterPI( std::string PIName )
+{
+ IteratorStringXMP_Int64 iterator = this->mPIWithOffsetMap.find( PIName );
+ if ( iterator == mPIWithOffsetMap.end() )
+ {
+ this->mPIWithOffsetMap.insert( iterator, std::pair<std::string, XMP_Int64>( PIName, -1 ) );
+ }
+} // SVG_Adapter::RegisterPI
+
+// =================================================================================================
+
+XMP_Bool SVG_Adapter::IsParsingRequire( )
+{
+ for ( IteratorStringOffsetStruct iterator = this->mOffsetsMap.begin(); iterator != this->mOffsetsMap.end(); ++iterator )
+ {
+ if ( iterator->second.startOffset == -1 || iterator->second.endOffset == -1 || iterator->second.nextOffset == -1 )
+ return true;
+ }
+ return false;
+} // SVG_Adapter::IsParsingRequire
+
+// =================================================================================================
+
+// This version of parsing throw an error
+void SVG_Adapter::ParseBuffer( const void * buffer, size_t length, bool last /* = true */ )
+{
+ enum XML_Status status;
+
+ if ( length == 0 ) { // Expat does not like empty buffers.
+ if ( !last ) return;
+ const char * kOneSpace = " ";
+ buffer = kOneSpace;
+ length = 1;
+ }
+
+ status = XML_Parse( this->parser, ( const char * ) buffer, static_cast< XMP_StringLen >( length ), last );
+
+#if BanAllEntityUsage
+ if ( this->isAborted ) {
+ XMP_Error error( kXMPErr_BadXML, "DOCTYPE is not allowed" )
+ this->NotifyClient( kXMPErrSev_Recoverable, error );
+ }
+#endif
+
+ if ( status != XML_STATUS_OK ) {
+
+ XMP_Error error( kXMPErr_BadXML, "Invalid SVG file" );
+ this->NotifyClient( kXMPErrSev_OperationFatal, error );
+
+ }
+
+} // SVG_Adapter::ParseBuffer
+
+// =================================================================================================
+
+// This version of parsing doesn't throw error but returns false if any error is encountered
+// This is required just for checkformat
+XMP_Bool SVG_Adapter::ParseBufferNoThrow( const void * buffer, size_t length, bool last /* = true */ )
+{
+ enum XML_Status status;
+
+ if ( length == 0 ) { // Expat does not like empty buffers.
+ if ( !last ) return false;
+ const char * kOneSpace = " ";
+ buffer = kOneSpace;
+ length = 1;
+ }
+
+ status = XML_Parse( this->parser, ( const char * ) buffer, static_cast< XMP_StringLen >( length ), last );
+
+#if BanAllEntityUsage
+ if ( this->isAborted ) {
+ XMP_Error error( kXMPErr_BadXML, "DOCTYPE is not allowed" )
+ this->NotifyClient( kXMPErrSev_Recoverable, error );
+ }
+#endif
+
+ if ( status != XML_STATUS_OK )
+ return false;
+ else
+ return true;
+
+} // SVG_Adapter::ParseBufferNoThrow
+
+// =================================================================================================
+
+static void ParseFullNS( XMP_StringPtr fullName, string & NS, string &localName )
+{
+ // Expat delivers the full name as a catenation of namespace URI, separator, and local name.
+ size_t sepPos = strlen( fullName );
+ for ( --sepPos; sepPos > 0; --sepPos ) {
+ if ( fullName[ sepPos ] == FullNameSeparator ) break;
+ }
+
+ if ( fullName[ sepPos ] == FullNameSeparator )
+ {
+ localName = fullName + sepPos + 1;
+ NS.assign( fullName, sepPos );
+ }
+ else
+ localName = fullName;
+
+} // ParseFullNS
+
+// =================================================================================================
+
+static void StartNamespaceDeclHandler( void * userData, XMP_StringPtr prefix, XMP_StringPtr uri )
+{
+
+ SVG_Adapter * thiz = ( SVG_Adapter* ) userData;
+
+ if ( prefix == 0 ) prefix = "_dflt_"; // Have default namespace.
+ if ( uri == 0 ) return; // Ignore, have xmlns:pre="", no URI to register.
+
+ ( void ) thiz->registeredNamespaces->Define( uri, prefix, 0, 0 );
+
+} // StartNamespaceDeclHandler
+
+// =================================================================================================
+
+static void EndNamespaceDeclHandler( void * userData, XMP_StringPtr prefix )
+{
+ IgnoreParam( userData );
+ IgnoreParam( prefix );
+ if ( prefix == 0 ) prefix = "_dflt_"; // Have default namespace.
+
+} // EndNamespaceDeclHandler
+
+// =================================================================================================
+
+static void StartElementHandler( void * userData, XMP_StringPtr name, XMP_StringPtr* attrs )
+{
+ // In case, if name is NULL then ParseBuffer would return with error status
+ SVG_Adapter * thiz = ( SVG_Adapter* ) userData;
+ thiz->depth++;
+ if ( thiz->depth > 3 )
+ return;
+ else if ( thiz->firstSVGElementOffset == -1 && thiz->depth == 2 )
+ thiz->firstSVGElementOffset = XML_GetCurrentByteIndex( thiz->parser );
+ else
+ {
+ if ( !thiz->mPrevRequiredElement.empty() )
+ {
+ IteratorStringOffsetStruct iterator = thiz->mOffsetsMap.find( thiz->mPrevRequiredElement );
+ if ( iterator != thiz->mOffsetsMap.end() )
+ iterator->second.nextOffset = XML_GetCurrentByteIndex( thiz->parser );
+ thiz->mPrevRequiredElement.clear();
+ }
+ }
+
+ string NS, localName;
+ ParseFullNS( name, NS, localName );
+
+ IteratorStringOffsetStruct iterator = thiz->mOffsetsMap.find( localName );
+ if ( iterator == thiz->mOffsetsMap.end() && localName != "svg" )
+ return;
+
+ XML_Node * parentNode = thiz->parseStack.back();
+ XML_Node * elemNode = new XML_Node( parentNode, "", kElemNode );
+
+ if ( strncmp( localName.c_str(), name, localName.length() ) != 0 )
+ {
+ XMP_StringPtr prefix;
+ XMP_StringLen prefixLen;
+ bool found = thiz->registeredNamespaces->GetPrefix( NS.c_str(), &prefix, &prefixLen );
+ if ( !found ) {
+ XMP_Error error( kXMPErr_ExternalFailure, "Unknown URI in Expat full name" );
+ thiz->NotifyClient( kXMPErrSev_OperationFatal, error );
+ }
+ elemNode->ns = NS;
+ elemNode->nsPrefixLen = prefixLen; // ! Includes the ':'.
+
+ if ( strcmp( prefix, "_dflt_:" ) == 0 )
+ {
+ elemNode->name = localName;
+ elemNode->nsPrefixLen = 0;
+ }
+ else
+ {
+ elemNode->name = prefix;
+ elemNode->name += localName;
+ }
+ }
+ else
+ {
+ elemNode->name = localName; // The name is not in a namespace.
+ }
+
+ parentNode->content.push_back( elemNode );
+ thiz->parseStack.push_back( elemNode );
+
+ if ( iterator != thiz->mOffsetsMap.end() && iterator->second.parent == parentNode->name )
+ {
+ reqDepth = thiz->depth;
+ isRequireData = true;
+ if ( iterator->second.startOffset == -1 )
+ iterator->second.startOffset = XML_GetCurrentByteIndex( thiz->parser );
+ }
+ else
+ {
+ isRequireData = false;
+ }
+
+} // StartElementHandler
+
+// =================================================================================================
+
+static void EndElementHandler( void * userData, XMP_StringPtr name )
+{
+ SVG_Adapter * thiz = ( SVG_Adapter* ) userData;
+
+ thiz->depth--;
+ if ( thiz->depth > 2 )
+ return;
+
+ string NS, localName;
+ ParseFullNS( name, NS, localName );
+
+ IteratorStringOffsetStruct iterator = thiz->mOffsetsMap.find( localName );
+ if ( iterator != thiz->mOffsetsMap.end() )
+ {
+ // StartOffset flag is provided to reject the elements of non-required namespace
+ // Endoffset flag is provided to maintain state of first available element
+ // Depth flag is provided to support for workflow like <title><title>...</title></title>
+ if ( iterator->second.startOffset != -1 && iterator->second.endOffset == -1 && thiz->depth == reqDepth - 1 )
+ {
+ iterator->second.endOffset = XML_GetCurrentByteIndex( thiz->parser );
+ thiz->mPrevRequiredElement = localName;
+ }
+ }
+ else if ( localName != "svg" )
+ return;
+
+ ( void ) thiz->parseStack.pop_back();
+
+} // EndElementHandler
+
+// =================================================================================================
+
+static void CharacterDataHandler( void * userData, XMP_StringPtr cData, int len )
+{
+ if ( !isRequireData )
+ return;
+ isRequireData = false;
+ SVG_Adapter * thiz = ( SVG_Adapter* ) userData;
+
+ if ( ( cData == 0 ) || ( len == 0 ) ) { cData = ""; len = 0; }
+
+ XML_Node * parentNode = thiz->parseStack.back();
+ XML_Node * cDataNode = new XML_Node( parentNode, "", kCDataNode );
+
+ cDataNode->value.assign( cData, len );
+ parentNode->content.push_back( cDataNode );
+
+} // CharacterDataHandler
+
+// =================================================================================================
+
+static void ProcessingInstructionHandler( void * userData, XMP_StringPtr target, XMP_StringPtr data )
+{
+
+ if ( target == NULL || strncmp( target, "xpacket", 7 ) != 0 )
+ return; // Ignore all PIs except the XMP packet wrapper.
+ SVG_Adapter * thiz = ( SVG_Adapter* ) userData;
+ XML_Node * parentNode = thiz->parseStack.back();
+ if ( parentNode->name != "metadata" )
+ return;
+ IteratorStringXMP_Int64 iterator = thiz->mPIWithOffsetMap.find( target );
+ if ( iterator != thiz->mPIWithOffsetMap.end() )
+ {
+ if ( iterator->second == -1 )
+ iterator->second = XML_GetCurrentByteIndex( thiz->parser );
+ else
+ thiz->mPIWithOffsetMap.insert( std::pair<std::string, XMP_Int64>( target, XML_GetCurrentByteIndex( thiz->parser ) ) );
+ }
+
+ if ( data == 0 ) data = "";
+ XML_Node * piNode = new XML_Node( parentNode, target, kPINode );
+
+ piNode->value.assign( data );
+ parentNode->content.push_back( piNode );
+
+} // ProcessingInstructionHandler
+
+// =================================================================================================
+
+static void DeclarationHandler( void *userData, const XML_Char *version, const XML_Char *encoding, int standalone )
+{
+ if ( encoding == NULL || strlen( encoding ) != 5 ||
+ ( tolower( encoding[ 0 ] ) == 'u'
+ && tolower( encoding[ 1 ] ) == 't'
+ && tolower( encoding[ 2 ] ) == 'f'
+ && encoding[ 3 ] == '-'
+ && encoding[ 4 ] == '8' ) )
+ return;
+ else
+ {
+ SVG_Adapter * thiz = ( SVG_Adapter* ) userData;
+ ( void ) ( XML_StopParser( thiz->parser, false ) );
+ }
+} // DeclarationHandler
+
+// =================================================================================================
+
+#if BanAllEntityUsage
+static void StartDoctypeDeclHandler( void * userData, XMP_StringPtr doctypeName,
+ XMP_StringPtr sysid, XMP_StringPtr pubid, int has_internal_subset )
+{
+ IgnoreParam( userData );
+
+ SVG_Adapter * thiz = ( SVG_Adapter* ) userData;
+
+ thiz->isAborted = true; // ! Can't throw an exception across the plain C Expat frames.
+ ( void ) XML_StopParser( thiz->parser, XML_FALSE /* not resumable */ );
+
+} // StartDoctypeDeclHandler
+#endif
+
+// =================================================================================================
diff --git a/XMPFiles/source/FormatSupport/SVG_Adapter.hpp b/XMPFiles/source/FormatSupport/SVG_Adapter.hpp
new file mode 100644
index 0000000..0c325a5
--- /dev/null
+++ b/XMPFiles/source/FormatSupport/SVG_Adapter.hpp
@@ -0,0 +1,79 @@
+#ifndef __SVG_Adapter_hpp__
+#define __SVG_Adapter_hpp__
+
+// =================================================================================================
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved.
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+//
+// This file includes implementation of SVG metadata, according to Scalable Vector Graphics (SVG) 1.1 Specification.
+// "https://www.w3.org/TR/2003/REC-SVG11-20030114/"
+// Copyright © 1994-2002 World Wide Web Consortium, (Massachusetts Institute of Technology,
+// Institut National de Recherche en Informatique et en Automatique, Keio University).
+// All Rights Reserved . http://www.w3.org/Consortium/Legal
+//
+// =================================================================================================
+
+#include "public/include/XMP_Environment.h" // ! Must be the first #include!
+#include "source/XMLParserAdapter.hpp"
+
+// =================================================================================================
+// Derived SVG parser adapter for Expat.
+// =================================================================================================
+
+#ifndef BanAllEntityUsage
+#define BanAllEntityUsage 0
+#endif
+
+struct XML_ParserStruct; // ! Hack to avoid exposing expat.h to all clients.
+typedef struct XML_ParserStruct *XML_Parser;
+typedef std::map<std::string, XMP_Int64>::iterator IteratorStringXMP_Int64;
+
+struct OffsetStruct
+{
+ XMP_Int64 startOffset;
+ XMP_Int64 nextOffset;
+ XMP_Int64 endOffset;
+ std::string parent;
+ OffsetStruct() : startOffset( -1 ), nextOffset( -1 ), endOffset( -1 ) {}
+ OffsetStruct( std::string reqParent ) : startOffset( -1 ), nextOffset( -1 ), endOffset( -1 ), parent( reqParent ) {}
+};
+
+typedef std::map<std::string, OffsetStruct>::iterator IteratorStringOffsetStruct;
+
+class SVG_Adapter : public XMLParserAdapter {
+public:
+
+ XML_Parser parser;
+ XMP_NamespaceTable * registeredNamespaces;
+
+#if BanAllEntityUsage
+ bool isAborted;
+#endif
+
+ SVG_Adapter( );
+ virtual ~SVG_Adapter();
+
+ virtual void ParseBuffer( const void * buffer, size_t length, bool last = true );
+ virtual XMP_Bool ParseBufferNoThrow( const void * buffer, size_t length, bool last = true );
+
+ virtual OffsetStruct GetElementOffsets( std::string elementName );
+ virtual void RegisterElement( std::string elementName, std::string reqParent );
+
+ virtual XMP_Int64 GetPIOffset( std::string PIName, XMP_Uns32 requiredIndex = 1 );
+ virtual void RegisterPI( std::string PIName );
+ virtual XMP_Bool IsParsingRequire();
+
+ std::multimap<std::string, XMP_Int64> mPIWithOffsetMap;
+ std::map<std::string, OffsetStruct> mOffsetsMap;
+ XMP_Int64 firstSVGElementOffset;
+
+ std::string mPrevRequiredElement;
+ XMP_Uns32 depth;
+};
+
+// =================================================================================================
+
+#endif // __SVG_Adapter_hpp__
diff --git a/XMPFiles/source/FormatSupport/TIFF_FileWriter.cpp b/XMPFiles/source/FormatSupport/TIFF_FileWriter.cpp
index a3bf808..20c6012 100644
--- a/XMPFiles/source/FormatSupport/TIFF_FileWriter.cpp
+++ b/XMPFiles/source/FormatSupport/TIFF_FileWriter.cpp
@@ -571,7 +571,7 @@ bool TIFF_FileWriter::IsLegacyChanged()
// TIFF_FileWriter::ParseMemoryStream
// ==================================
-void TIFF_FileWriter::ParseMemoryStream ( const void* data, XMP_Uns32 length, bool copyData /* = true */ )
+void TIFF_FileWriter::ParseMemoryStream ( const void* data, XMP_Uns32 length, bool copyData /* = true */, bool isAlreadyLittle /*= false */ )
{
this->DeleteExistingInfo();
this->memParsed = true;
@@ -732,7 +732,18 @@ XMP_Uns32 TIFF_FileWriter::ProcessMemoryIFD ( XMP_Uns32 ifdOffset, XMP_Uns8 ifd
ifdPtr += (2 + tagCount*12);
ifdInfo.origNextIFD = this->GetUns32 ( ifdPtr );
-
+// The following code modifies a file in case it is invalid, we should keep this fix so that we can track this issue if we receive client bugs for this
+#if 0
+ if (ifdInfo.origNextIFD != 0) {
+ if ( (ifdInfo.origNextIFD < 8) || (ifdInfo.origNextIFD > (this->tiffLength - kEmptyIFDLength)) ) {
+ // Next IFD offset is invalid. Ignore it.
+ ifdInfo.origNextIFD = 0;
+ // Should we try to patch it?
+ ifdInfo.changed = true;
+ this->changed = true;
+ }
+ }
+#endif
return ifdInfo.origNextIFD;
} // TIFF_FileWriter::ProcessMemoryIFD
@@ -779,13 +790,13 @@ void TIFF_FileWriter::ParseFileStream ( XMP_IO* fileRef )
}
const InternalTagInfo* exifIFDTag = this->FindTagInIFD ( kTIFF_PrimaryIFD, kTIFF_ExifIFDPointer );
- if ( (exifIFDTag != 0) && (exifIFDTag->type == kTIFF_LongType) && (exifIFDTag->count == 1) ) {
+ if ( ( exifIFDTag != 0 ) && ( ( exifIFDTag->type == kTIFF_LongType || exifIFDTag->type == kTIFF_IFDType ) && ( exifIFDTag->count == 1 ) ) ) {
XMP_Uns32 exifOffset = this->GetUns32 ( exifIFDTag->dataPtr );
(void) this->ProcessFileIFD ( kTIFF_ExifIFD, exifOffset, fileRef );
}
const InternalTagInfo* gpsIFDTag = this->FindTagInIFD ( kTIFF_PrimaryIFD, kTIFF_GPSInfoIFDPointer );
- if ( (gpsIFDTag != 0) && (gpsIFDTag->type == kTIFF_LongType) && (gpsIFDTag->count == 1) ) {
+ if ( ( gpsIFDTag != 0 ) && ( ( gpsIFDTag->type == kTIFF_LongType || gpsIFDTag->type == kTIFF_IFDType ) && ( gpsIFDTag->count == 1 ) ) ) {
XMP_Uns32 gpsOffset = this->GetUns32 ( gpsIFDTag->dataPtr );
if ( IsOffsetValid (gpsOffset, 8, ifdLimit ) ) { // Remove a bad GPS IFD offset.
(void) this->ProcessFileIFD ( kTIFF_GPSInfoIFD, gpsOffset, fileRef );
@@ -797,7 +808,7 @@ void TIFF_FileWriter::ParseFileStream ( XMP_IO* fileRef )
}
const InternalTagInfo* interopIFDTag = this->FindTagInIFD ( kTIFF_ExifIFD, kTIFF_InteroperabilityIFDPointer );
- if ( (interopIFDTag != 0) && (interopIFDTag->type == kTIFF_LongType) && (interopIFDTag->dataLen == 4) ) {
+ if ( ( interopIFDTag != 0 ) && ( ( interopIFDTag->type == kTIFF_LongType || interopIFDTag->type == kTIFF_IFDType ) && ( interopIFDTag->dataLen == 4 ) ) ) {
XMP_Uns32 interopOffset = this->GetUns32 ( interopIFDTag->dataPtr );
if ( IsOffsetValid (interopOffset, 8, ifdLimit ) ) { // Remove a bad Interoperability IFD offset.
(void) this->ProcessFileIFD ( kTIFF_InteropIFD, interopOffset, fileRef );
diff --git a/XMPFiles/source/FormatSupport/TIFF_MemoryReader.cpp b/XMPFiles/source/FormatSupport/TIFF_MemoryReader.cpp
index a3b6ace..31192c7 100644
--- a/XMPFiles/source/FormatSupport/TIFF_MemoryReader.cpp
+++ b/XMPFiles/source/FormatSupport/TIFF_MemoryReader.cpp
@@ -528,8 +528,8 @@ bool TIFF_MemoryReader::GetTag_EncodedString ( XMP_Uns8 ifd, XMP_Uns16 id, std::
// ====================================
// *** Need to tell TIFF/Exif from TIFF/EP, DNG files are the latter.
-
-void TIFF_MemoryReader::ParseMemoryStream ( const void* data, XMP_Uns32 length, bool copyData /* = true */ )
+// isAlredyLittle is provided for case when data contain no information about Endianess, So need not to check for header
+void TIFF_MemoryReader::ParseMemoryStream ( const void* data, XMP_Uns32 length, bool copyData /* = true */, bool isAlredyLittle /* = false */ )
{
// Get rid of any current TIFF.
@@ -560,13 +560,31 @@ void TIFF_MemoryReader::ParseMemoryStream ( const void* data, XMP_Uns32 length,
this->tiffLength = length;
XMP_Uns32 ifdLimit = this->tiffLength - 6; // An IFD must start before this offset.
-
- // Find and process the primary, Exif, GPS, and Interoperability IFDs.
-
- XMP_Uns32 primaryIFDOffset = this->CheckTIFFHeader ( this->tiffStream, length );
+ XMP_Uns32 primaryIFDOffset = 0;
XMP_Uns32 tnailIFDOffset = 0;
+ // Find and process the primary, Exif, GPS, and Interoperability IFDs.
+
+ // If already is in little Endian then no need to check for Check TIFF header
+ if ( isAlredyLittle )
+ {
+ this->nativeEndian = ! kBigEndianHost;
+ this->GetUns16 = GetUns16LE;
+ this->GetUns32 = GetUns32LE;
+ this->GetFloat = GetFloatLE;
+ this->GetDouble = GetDoubleLE;
+
+ this->PutUns16 = PutUns16LE;
+ this->PutUns32 = PutUns32LE;
+ this->PutFloat = PutFloatLE;
+ this->PutDouble = PutDoubleLE;
+ tnailIFDOffset = this->ProcessOneIFD ( primaryIFDOffset, kTIFF_PrimaryIFD, true );
+ }
+ else
+ {
+ primaryIFDOffset = this->CheckTIFFHeader ( this->tiffStream, length );
- if ( primaryIFDOffset != 0 ) tnailIFDOffset = this->ProcessOneIFD ( primaryIFDOffset, kTIFF_PrimaryIFD );
+ if ( primaryIFDOffset != 0 ) tnailIFDOffset = this->ProcessOneIFD ( primaryIFDOffset, kTIFF_PrimaryIFD );
+ }
// ! Need the thumbnail IFD for checking full Exif APP1 in some JPEG files!
if ( tnailIFDOffset != 0 ) {
@@ -611,14 +629,25 @@ void TIFF_MemoryReader::ParseMemoryStream ( const void* data, XMP_Uns32 length,
// =================================================================================================
// TIFF_MemoryReader::ProcessOneIFD
// ================================
+// ModifiedInitialCheck is provided for case when data contain no header
-XMP_Uns32 TIFF_MemoryReader::ProcessOneIFD ( XMP_Uns32 ifdOffset, XMP_Uns8 ifd )
+XMP_Uns32 TIFF_MemoryReader::ProcessOneIFD ( XMP_Uns32 ifdOffset, XMP_Uns8 ifd, bool ModifiedInitialCheck /* = false */ )
{
TweakedIFDInfo& ifdInfo = this->containedIFDs[ifd];
- if ( (ifdOffset < 8) || (ifdOffset > (this->tiffLength - kEmptyIFDLength)) ) {
- XMP_Error error(kXMPErr_BadTIFF, "Bad IFD offset" );
- this->NotifyClient ( kXMPErrSev_FileFatal, error );
+ if( ModifiedInitialCheck )
+ {
+ if ((ifdOffset > (this->tiffLength)) ) {
+ XMP_Error error(kXMPErr_BadTIFF, "Bad IFD offset" );
+ this->NotifyClient ( kXMPErrSev_FileFatal, error );
+ }
+ }
+ else
+ {
+ if ( (ifdOffset < 8) || (ifdOffset > (this->tiffLength - kEmptyIFDLength)) ) {
+ XMP_Error error(kXMPErr_BadTIFF, "Bad IFD offset" );
+ this->NotifyClient ( kXMPErrSev_FileFatal, error );
+ }
}
XMP_Uns8* ifdPtr = this->tiffStream + ifdOffset;
diff --git a/XMPFiles/source/FormatSupport/TIFF_Support.hpp b/XMPFiles/source/FormatSupport/TIFF_Support.hpp
index b43fe42..6d4860b 100644
--- a/XMPFiles/source/FormatSupport/TIFF_Support.hpp
+++ b/XMPFiles/source/FormatSupport/TIFF_Support.hpp
@@ -91,10 +91,11 @@ enum { // Constants for the type field of a tag, as defined by TIFF.
kTIFF_SRationalType = 10,
kTIFF_FloatType = 11,
kTIFF_DoubleType = 12,
- kTIFF_LastType = 12
+ kTIFF_IFDType = 13,
+ kTIFF_LastType = kTIFF_IFDType
};
-static const size_t kTIFF_TypeSizes[] = { 0, 1, 1, 2, 4, 8, 1, 1, 2, 4, 8, 4, 8 };
+static const size_t kTIFF_TypeSizes[] = { 0, 1, 1, 2, 4, 8, 1, 1, 2, 4, 8, 4, 8, 4 };
static const bool kTIFF_IsIntegerType[] = { 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0 };
static const bool kTIFF_IsRationalType[] = { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 };
@@ -643,8 +644,9 @@ public:
// The condenseStream parameter to UpdateMemoryStream can be used to rewrite the full stream
// instead of appending. This will discard any MakerNote tags and risks breaking offsets that
// are hidden. This can be necessary though to try to make the TIFF fit in a JPEG file.
-
- virtual void ParseMemoryStream ( const void* data, XMP_Uns32 length, bool copyData = true ) = 0;
+
+ // isAlredyLittle is provided for case when data contain no information about Endianess, So need not to check for header
+ virtual void ParseMemoryStream ( const void* data, XMP_Uns32 length, bool copyData = true, bool isAlreadyLittle = false ) = 0;
virtual void ParseFileStream ( XMP_IO* fileRef ) = 0;
virtual void IntegrateFromPShop6 ( const void * buriedPtr, size_t buriedLen ) = 0;
@@ -740,7 +742,8 @@ public:
bool IsChanged() { return false; };
bool IsLegacyChanged() { return false; };
- void ParseMemoryStream ( const void* data, XMP_Uns32 length, bool copyData = true );
+ // isAlredyLittle is provided for case when data contain no information about Endianess, So need not to check for header
+ void ParseMemoryStream ( const void* data, XMP_Uns32 length, bool copyData = true, bool isAlreadyLittle = false );
void ParseFileStream ( XMP_IO* fileRef ) { NotAppropriate(); };
void IntegrateFromPShop6 ( const void * buriedPtr, size_t buriedLen ) { NotAppropriate(); };
@@ -782,7 +785,8 @@ private:
static void SortIFD ( TweakedIFDInfo* thisIFD );
- XMP_Uns32 ProcessOneIFD ( XMP_Uns32 ifdOffset, XMP_Uns8 ifd );
+ // ModifiedInitialCheck is provided for case when data contain no header
+ XMP_Uns32 ProcessOneIFD ( XMP_Uns32 ifdOffset, XMP_Uns8 ifd, bool ModifiedInitialCheck = false );
const TweakedIFDEntry* FindTagInIFD ( XMP_Uns8 ifd, XMP_Uns16 id ) const;
@@ -850,7 +854,8 @@ public:
enum { kDoNotCopyData = false };
- void ParseMemoryStream ( const void* data, XMP_Uns32 length, bool copyData = true );
+ // isAlredyLittle is provided for case when data contain no information about Endianess, So need not to check for header
+ void ParseMemoryStream ( const void* data, XMP_Uns32 length, bool copyData = true, bool isAlreadyLittle = false );
void ParseFileStream ( XMP_IO* fileRef );
void IntegrateFromPShop6 ( const void * buriedPtr, size_t buriedLen );
diff --git a/XMPFiles/source/FormatSupport/TimeConversionUtils.hpp b/XMPFiles/source/FormatSupport/TimeConversionUtils.hpp
index bf7ed04..73ba9ff 100644
--- a/XMPFiles/source/FormatSupport/TimeConversionUtils.hpp
+++ b/XMPFiles/source/FormatSupport/TimeConversionUtils.hpp
@@ -12,7 +12,10 @@
#include "public/include/XMP_Environment.h" // ! XMP_Environment.h must be the first included header.
#include "public/include/XMP_Const.h"
-
+#include <string>
+#include <sstream>
+#include <iomanip>
+#include <cmath>
#include "XMPFiles/source/XMPFiles_Impl.hpp"
namespace TimeConversionUtils {
diff --git a/XMPFiles/source/FormatSupport/WAVE/CartMetadata.h b/XMPFiles/source/FormatSupport/WAVE/CartMetadata.h
index 29266a7..b007afc 100644
--- a/XMPFiles/source/FormatSupport/WAVE/CartMetadata.h
+++ b/XMPFiles/source/FormatSupport/WAVE/CartMetadata.h
@@ -58,6 +58,14 @@ public:
struct StoredCartTimer {
XMP_Uns32 usage;
XMP_Uns32 value;
+
+ bool operator == (const StoredCartTimer & other ) const {
+ return usage == other.usage && value == other.value;
+ }
+
+ bool operator != ( const StoredCartTimer & other ) const {
+ return usage != other.usage || value != other.value;
+ }
};
enum { kPostTimerLength = 8 };
diff --git a/XMPFiles/source/FormatSupport/WAVE/INFOMetadata.cpp b/XMPFiles/source/FormatSupport/WAVE/INFOMetadata.cpp
index 335acd7..9bdeb94 100644
--- a/XMPFiles/source/FormatSupport/WAVE/INFOMetadata.cpp
+++ b/XMPFiles/source/FormatSupport/WAVE/INFOMetadata.cpp
@@ -152,7 +152,7 @@ XMP_Uns64 INFOMetadata::serialize( XMP_Uns8** outBuffer )
{
TValueObject<std::string>* strObj = dynamic_cast<TValueObject<std::string>*>(iter->second);
- XMP_Uns32 chunkSize = kChunkHeaderSize + strObj->getValue().length();
+ XMP_Uns32 chunkSize = kChunkHeaderSize + strObj->getValue().length() + 1; // 1 byte is added for NULL termination string
if( chunkSize & 1 )
{
@@ -194,7 +194,7 @@ XMP_Uns64 INFOMetadata::serialize( XMP_Uns8** outBuffer )
TValueObject<std::string>* strObj = dynamic_cast<TValueObject<std::string>*>(iter->second);
std::string value = strObj->getValue();
XMP_Uns32 id = iter->first;
- XMP_Uns32 size = value.length();
+ XMP_Uns32 size = value.length() + 1; // Null terminated string
if( size & 1 && strObj->hasChanged() )
{
@@ -221,7 +221,7 @@ XMP_Uns64 INFOMetadata::serialize( XMP_Uns8** outBuffer )
memcpy( buffer+offset+kSizeChunkID, &size, kSizeChunkSize );
//size has been changed in little endian format. Change it back to bigendina
size = LE.getUns32( &size );
- memcpy( buffer+offset+kChunkHeaderSize, value.c_str(), size );
+ memcpy( buffer+offset+kChunkHeaderSize, value.c_str(), value.length() );
//
// update pointer
diff --git a/XMPFiles/source/FormatSupport/WAVE/WAVEReconcile.cpp b/XMPFiles/source/FormatSupport/WAVE/WAVEReconcile.cpp
index 8c3067b..db15dab 100644
--- a/XMPFiles/source/FormatSupport/WAVE/WAVEReconcile.cpp
+++ b/XMPFiles/source/FormatSupport/WAVE/WAVEReconcile.cpp
@@ -10,6 +10,8 @@
#include "public/include/XMP_Environment.h" // ! XMP_Environment.h must be the first included header.
#include "public/include/XMP_Const.h"
+#include <string.h>
+
#include "XMPFiles/source/FormatSupport/WAVE/WAVEReconcile.h"
#include "XMPFiles/source/FormatSupport/WAVE/DISPMetadata.h"
#include "XMPFiles/source/FormatSupport/WAVE/INFOMetadata.h"
@@ -26,6 +28,7 @@
#include "XMPFiles/source/FormatSupport/Reconcile_Impl.hpp"
+
using namespace IFF_RIFF;
// ************** legacy Mappings ***************** //
@@ -57,7 +60,7 @@ static const MetadataPropertyInfo kBextProperties[] =
{ NULL }
};
-static const char * kDM_takeNumber = "takeNumber";
+static const char * kDM_shotNumber = "shotNumber";
static const char * kDM_audioSampleType = "audioSampleType";
static const char * kDM_scene = "scene";
static const char * kDM_tapeName = "tapeName";
@@ -68,12 +71,17 @@ static const char * kDM_startTimecode = "startTimecode";
static const char * kDM_timeFormat = "timeFormat";
static const char * kDM_timeValue = "timeValue";
static const char * kDM_good = "good";
+static const char * kIXML_trackList = "trackList";
+static const char * kIXML_channelIndex = "channelIndex";
+static const char * kIXML_interleaveIndex = "interleaveIndex";
+static const char * kIXML_Name = "name";
+static const char * kIXML_Function = "function";
static const MetadataPropertyInfo kiXMLProperties[] =
{
// XMP NS XMP Property Name Native Metadata Identifier Native Datatype XMP Datatype Delete Priority ExportPolicy
{ kXMP_NS_DM, kDM_tapeName, iXMLMetadata::kTape, kNativeType_StrUTF8, kXMPType_Simple, false, false, kExport_Always }, //xmpDM:tapeName <-> iXML:TAPE
- { kXMP_NS_DM, kDM_takeNumber, iXMLMetadata::kTake, kNativeType_Uns64, kXMPType_Simple, false, false, kExport_Always }, //xmpDM:tapeName <-> iXML:TAPE
+ { kXMP_NS_DM, kDM_shotNumber, iXMLMetadata::kTake, kNativeType_StrUTF8, kXMPType_Simple, false, false, kExport_Always }, //xmpDM:shotNumber <-> iXML:TAKE
{ kXMP_NS_DM, kDM_scene, iXMLMetadata::kScene, kNativeType_StrUTF8, kXMPType_Simple, false, false, kExport_Always }, //xmpDM:scene <-> iXML:SCENE
{ kXMP_NS_DM, kDM_logComment, iXMLMetadata::kNote, kNativeType_StrUTF8, kXMPType_Simple, false, false, kExport_Always }, //xmpDM:logComment <-> iXML:NOTE
{ kXMP_NS_DM, kDM_projectName, iXMLMetadata::kProject, kNativeType_StrUTF8, kXMPType_Simple, false, false, kExport_Always }, //xmpDM:project <-> iXML:PROJECT
@@ -93,6 +101,7 @@ static const MetadataPropertyInfo kiXMLProperties[] =
// special case for timeReference // bext:timeReference <-> iXML:TIMESTAMP_SAMPLES_SINCE_MIDNIGHT_HO and iXML:TIMESTAMP_SAMPLES_SINCE_MIDNIGHT_HI
// special case for startTimeCode // xmpDM:startTimecode <-> iXML:TIMECODE_RATE, iXML:TIMECODE_FLAG and bext:timeReference.
{ kXMP_NS_BWF, kBWF_timeStampSampleRate, iXMLMetadata::kTimeStampSampleRate, kNativeType_Uns64, kXMPType_Simple, false, false, kExport_NoDelete }, // bext::timeStampSampleRate <-> iXML
+ // special case for TRACK_LIST // ixml:Track_List <-> ixml:trackList
{ NULL }
};
@@ -985,6 +994,37 @@ void IFF_RIFF::WAVEReconcile::exportSpecialXMPToiXML( SXMPMeta & inXMP, IMetadat
outNativeMeta.deleteValue( iXMLMetadata::kBWFTimeReferenceHigh );
outNativeMeta.deleteValue( iXMLMetadata::kBWFTimeReferenceLow );
}
+
+ // track list
+ try {
+ if ( inXMP.DoesPropertyExist( kXMP_NS_iXML, kIXML_trackList ) ) {
+ XMP_OptionBits options( 0 );
+ if ( inXMP.GetProperty( kXMP_NS_iXML, kIXML_trackList, NULL, &options ) &&
+ XMP_OptionIsSet( options, kXMP_PropArrayIsOrdered ) )
+ {
+ XMP_Index count = inXMP.CountArrayItems( kXMP_NS_iXML, kIXML_trackList );
+ std::vector< iXMLMetadata::TrackListInfo > trackListInfo( count );
+ for ( XMP_Index i = 0; i < count; i++ ) {
+ iXMLMetadata::TrackListInfo & trackRef = trackListInfo[i];
+ std::string trackPath;
+ SXMPUtils::ComposeArrayItemPath( kXMP_NS_iXML, kIXML_trackList, i + 1, &trackPath );
+ std::string fieldPath;
+ SXMPUtils::ComposeStructFieldPath( kXMP_NS_iXML, trackPath.c_str(), kXMP_NS_iXML, kIXML_channelIndex, &fieldPath );
+ XMP_Int64 int64Value;
+ inXMP.GetProperty_Int64( kXMP_NS_iXML, fieldPath.c_str(), &int64Value, &options );
+ trackRef.mChannelIndex = int64Value;
+ inXMP.GetStructField( kXMP_NS_iXML, trackPath.c_str(), kXMP_NS_iXML, kIXML_Name, &trackRef.mName, &options );
+ inXMP.GetStructField( kXMP_NS_iXML, trackPath.c_str(), kXMP_NS_iXML, kIXML_Function, &trackRef.mFunction, &options );
+ }
+ outNativeMeta.setArray< iXMLMetadata::TrackListInfo >( iXMLMetadata::kTrackList, trackListInfo.data(), count );
+ inXMP.DeleteProperty( kXMP_NS_iXML, kIXML_trackList );
+ }
+ } else {
+ outNativeMeta.deleteValue( iXMLMetadata::kTrackList );
+ }
+ } catch( ... ) {
+ // do nothing
+ }
}
bool IFF_RIFF::WAVEReconcile::exportSpecialiXMLToXMP( IMetadata & inNativeMeta, SXMPMeta & outXMP )
@@ -1063,5 +1103,30 @@ bool IFF_RIFF::WAVEReconcile::exportSpecialiXMLToXMP( IMetadata & inNativeMeta,
}
}
+ // special case for iXML:trackList
+ if ( inNativeMeta.valueExists( iXMLMetadata::kTrackList ) )
+ {
+ XMP_Uns32 countOfTracks( 0 );
+ const iXMLMetadata::TrackListInfo * trackInfoArray =
+ inNativeMeta.getArray< iXMLMetadata::TrackListInfo >( iXMLMetadata::kTrackList, countOfTracks );
+ if ( countOfTracks > 0 && trackInfoArray != NULL ) {
+ outXMP.DeleteProperty( kXMP_NS_iXML, kIXML_trackList );
+ outXMP.SetProperty( kXMP_NS_iXML, kIXML_trackList, 0, kXMP_PropArrayIsOrdered );
+ for ( XMP_Uns32 i = 0; i < countOfTracks; i++ ) {
+ std::string trackPath;
+ SXMPUtils::ComposeArrayItemPath( kXMP_NS_iXML, kIXML_trackList, i + 1, &trackPath );
+ const iXMLMetadata::TrackListInfo & ref = trackInfoArray[i];
+ std::string value;
+ SXMPUtils::ConvertFromInt64( ref.mChannelIndex, "%llu", &value );
+ outXMP.SetStructField( kXMP_NS_iXML, trackPath.c_str(), kXMP_NS_iXML, kIXML_channelIndex, value );
+ if ( ref.mName.size() > 0 )
+ outXMP.SetStructField( kXMP_NS_iXML, trackPath.c_str(), kXMP_NS_iXML, kIXML_Name, ref.mName );
+ if ( ref.mFunction.size() > 0 )
+ outXMP.SetStructField( kXMP_NS_iXML, trackPath.c_str(), kXMP_NS_iXML, kIXML_Function, ref.mFunction );
+ }
+ changed = true;
+ }
+ }
+
return changed;
}
diff --git a/XMPFiles/source/FormatSupport/WAVE/iXMLMetadata.cpp b/XMPFiles/source/FormatSupport/WAVE/iXMLMetadata.cpp
index 5df7439..9b52c79 100644
--- a/XMPFiles/source/FormatSupport/WAVE/iXMLMetadata.cpp
+++ b/XMPFiles/source/FormatSupport/WAVE/iXMLMetadata.cpp
@@ -21,7 +21,7 @@ namespace IFF_RIFF {
static const char * tagNames[ iXMLMetadata::kLastEntry ] = {
"TAPE", //kTape, // std::string
- "TAKE", //kTake, // XMP_Uns64
+ "TAKE", //kTake, // std::string
"SCENE", //kScene, // std::string
"NOTE", //kNote, // std::string
"PROJECT", //kProject, // std::string
@@ -44,11 +44,18 @@ namespace IFF_RIFF {
"TIMESTAMP_SAMPLE_RATE", //kTimeStampSampleRate, // XMP_Uns64
"TIMESTAMP_SAMPLES_SINCE_MIDNIGHT_LO", //kTimeStampSampleSinceMidnightLow, // XMP_Uns32
"TIMESTAMP_SAMPLES_SINCE_MIDNIGHT_HI", //kTimeStampSampleSinceMidnightHi, // XMP_Uns32
+ "TRACK_LIST", //kTrackList // std::vector< TrackListInfo >
};
static const char * rootTagName = "BWFXML";
static const char * speedTagName = "SPEED";
static const char * bextTagName = "BEXT";
+ static const char * trackCountTagName = "TRACK_COUNT";
+ static const char * trackTagName = "TRACK";
+ static const char * trackChannelIndexTagName = "CHANNEL_INDEX";
+ static const char * trackInterleaveIndexTagName = "INTERLEAVE_INDEX";
+ static const char * trackNameTagName = "NAME";
+ static const char * trackFunctionTagName = "FUNCTION";
iXMLMetadata::iXMLMetadata()
: mRootNode( NULL )
@@ -194,6 +201,7 @@ namespace IFF_RIFF {
switch( id )
{
case kTape:
+ case kTake:
case kScene:
case kNote:
case kProject:
@@ -213,7 +221,6 @@ namespace IFF_RIFF {
}
break;
- case kTake:
case kFileSampleRate:
case kAudioBitDepth:
case kBWFTimeReferenceLow:
@@ -230,6 +237,19 @@ namespace IFF_RIFF {
ret = false;
break;
+ case kTrackList:
+ ret = true;
+ {
+ TArrayObject< TrackListInfo > * trackListInfoArrayObj = dynamic_cast< TArrayObject< TrackListInfo > *>( &valueObj );
+ if ( trackListInfoArrayObj ) {
+ XMP_Uns32 nElements ( 0 );
+ const TrackListInfo * trackListInfoPtr = trackListInfoArrayObj->getArray( nElements );
+ if ( nElements > 0 && trackListInfoPtr != NULL )
+ ret = false;
+ }
+ }
+ break;
+
default:
ret = true;
}
@@ -252,6 +272,15 @@ namespace IFF_RIFF {
XMPFileHandler::NotifyClient( mErrorCallback, severity, error );
}
+ static std::string & Trim( std::string & str ) {
+ static const char * whiteSpaceChars = " \t\n\r\v";
+ size_t pos = str.find_last_not_of( whiteSpaceChars );
+ if ( pos != std::string::npos ) {
+ str.erase( pos + 1 );
+ }
+ return str;
+ }
+
static XMP_Uns64 ConvertStringToUns64( const std::string & strValue ) {
int count;
char nextCh;
@@ -269,7 +298,7 @@ namespace IFF_RIFF {
if ( strValue.size() > 0 ) {
XMP_Uns64 uValue;
try {
- uValue = ConvertStringToUns64( strValue );
+ uValue = ConvertStringToUns64( Trim( strValue ) );
} catch( ... ) {
// some nodes like tape can be non integer also. Treat it as warning
XMP_Error error( kXMPErr_BadFileFormat, "iXML Metadata reconciliation failure: node is supposed to have integer value" );
@@ -298,7 +327,7 @@ namespace IFF_RIFF {
// top level properties
ParseAndSetStringProperty( mRootNode, kTape );
- ParseAndSetIntegerProperty( mRootNode, kTake );
+ ParseAndSetStringProperty( mRootNode, kTake );
ParseAndSetStringProperty( mRootNode, kScene );
ParseAndSetStringProperty( mRootNode, kNote );
ParseAndSetStringProperty( mRootNode, kProject );
@@ -331,6 +360,12 @@ namespace IFF_RIFF {
ParseAndSetStringProperty( bextNode, kBWFHistory );
ParseAndSetStringProperty( bextNode, kBWFUMID );
}
+
+ // TRACK_LIST
+ XML_Node * trackListNode = mRootNode->GetNamedElement( "", tagNames[ kTrackList ] );
+ if ( trackListNode ) {
+ ParseAndSetTrackListInfo( trackListNode );
+ }
}
void iXMLMetadata::UpdateStringProperty( XML_Node * parentNode, XMP_Uns32 id ) {
@@ -431,10 +466,67 @@ namespace IFF_RIFF {
}
}
+ void iXMLMetadata::UpdateTrackListInfo( XML_Node * parentNode ) {
+ if ( valueExists( kTrackList ) ) {
+ XMP_Uns32 size;
+ const TrackListInfo * arrayObj( NULL );
+ try {
+ arrayObj = this->getArray< TrackListInfo >( kTrackList, size );
+ } catch( ... ) {
+ XMP_Error error( kXMPErr_BadValue, "iXML Metadata reconciliation failure: expected the array of TrackListInfo type" );
+ NotifyClient( kXMPErrSev_Recoverable, error );
+ return;
+ }
+
+ if ( size > 0 ) {
+ XML_Node * node = parentNode->GetNamedElement( "", tagNames[ kTrackList ] );
+
+ if ( node == NULL ) {
+ node = new XML_Node( parentNode, tagNames[ kTrackList ], kElemNode );
+ if ( node == NULL ) {
+ XMP_Error error( kXMPErr_NoMemory, "Unable to create new objects" );
+ NotifyClient( kXMPErrSev_OperationFatal, error );
+ return;
+ }
+ parentNode->content.push_back( node );
+ }
+
+ // add count
+ std::string count = ConvertUns64ToString( size );
+ UpdateXMLNode( node, trackCountTagName, count );
+
+ for ( XMP_Uns32 i = 0; i < size; i++ ) {
+ XML_Node * track = node->GetNamedElement( "", trackTagName, i );
+ if ( track == NULL ) {
+ track = new XML_Node( parentNode, trackTagName, kElemNode );
+ if ( track == NULL ) {
+ XMP_Error error( kXMPErr_NoMemory, "Unable to create new objects" );
+ NotifyClient( kXMPErrSev_OperationFatal, error );
+ return;
+ }
+ node->content.push_back( track );
+ }
+ const TrackListInfo & ref = arrayObj[i];
+ count = ConvertUns64ToString( ref.mChannelIndex );
+ UpdateXMLNode( track, trackChannelIndexTagName, count );
+ if ( ref.mChannelIndex != i + 1 )
+ count = ConvertUns64ToString( i + 1 );
+ UpdateXMLNode( track, trackInterleaveIndexTagName, count );
+ UpdateXMLNode( track, trackNameTagName, ref.mName );
+ UpdateXMLNode( track, trackFunctionTagName, ref.mFunction );
+ }
+ } else {
+ RemoveXMLNode( parentNode, tagNames[ kTrackList ] );
+ }
+ } else {
+ RemoveXMLNode( parentNode, tagNames[ kTrackList ] );
+ }
+ }
+
void iXMLMetadata::UpdateProperties() {
// top level properties
UpdateStringProperty( mRootNode, kTape );
- UpdateIntegerProperty( mRootNode, kTake );
+ UpdateStringProperty( mRootNode, kTake );
UpdateStringProperty( mRootNode, kScene );
UpdateStringProperty( mRootNode, kNote );
UpdateStringProperty( mRootNode, kProject );
@@ -468,6 +560,7 @@ namespace IFF_RIFF {
UpdateStringProperty( bextNode, kBWFUMID );
}
+ UpdateTrackListInfo( mRootNode );
}
bool iXMLMetadata::valueValid( XMP_Uns32 id, ValueObject * valueObj ) {
@@ -477,7 +570,7 @@ namespace IFF_RIFF {
break;
case kTake:
- return validateInt( valueObj );
+ return validateStringSize( valueObj );
break;
case kScene:
@@ -752,8 +845,12 @@ namespace IFF_RIFF {
}
std::string iXMLMetadata::ParseStringValue( XML_Node * parentNode, XMP_Uns32 id ) {
+ return ParseStringValue( parentNode, tagNames[ id ] );
+ }
+
+ std::string iXMLMetadata::ParseStringValue( XML_Node * parentNode, const char * tagName, bool recoverable ) {
std::string nodeValue;
- XML_Node * node = parentNode->GetNamedElement( "", tagNames[ id ] );
+ XML_Node * node = parentNode->GetNamedElement( "", tagName );
if ( node ) {
if ( node->IsLeafContentNode() && node->content.size() != 0 ) {
size_t lengthOfValue = node->content[0]->value.size();
@@ -762,12 +859,84 @@ namespace IFF_RIFF {
}
} else {
XMP_Error error( kXMPErr_BadBlockFormat, "iXML Metadata reconciliation failure: node was supposed to be a leaf node" );
- NotifyClient( kXMPErrSev_Recoverable, error );
+ NotifyClient( recoverable ? kXMPErrSev_Recoverable : kXMPErrSev_OperationFatal, error );
}
+ } else {
+ XMP_Error error ( recoverable ? kXMPErrSev_Recoverable : kXMPErrSev_OperationFatal, "iXML Metadata reconciliation failure: node not present" );
}
return nodeValue;
}
+ XMP_Uns64 iXMLMetadata::ParseUns64Value( XML_Node * parentNode, const char * tagName ) {
+ std::string strValue = ParseStringValue( parentNode, tagName, false );
+
+ if ( strValue.size() > 0 ) {
+ XMP_Uns64 uValue;
+ try {
+ uValue = ConvertStringToUns64( Trim( strValue ) );
+ } catch( ... ) {
+ // some nodes like tape can be non integer also. Treat it as warning
+ XMP_Error error( kXMPErr_BadFileFormat, "iXML Metadata reconciliation failure: node is supposed to have integer value" );
+ NotifyClient( kXMPErrSev_OperationFatal, error );
+ }
+ return uValue;
+ }
+ return Max_XMP_Uns64;
+ }
+
+ void iXMLMetadata::ParseAndSetTrackListInfo( XML_Node * parentNode ) {
+ XMP_Uns64 trackCount( 0 );
+ try {
+ trackCount = ParseUns64Value( parentNode, trackCountTagName );
+ } catch( ... ) {
+ XMP_Error error( kXMPErr_BadBlockFormat, "iXML Metadata reconciliation failure: failed parsing track list" );
+ NotifyClient( kXMPErrSev_Recoverable, error );
+ return;
+ }
+ std::vector< TrackListInfo > trackInfoListVector( trackCount );
+
+ for ( size_t i = 0; i < trackCount; i++ ) {
+ XML_Node * trackElement = parentNode->GetNamedElement( "", trackTagName, i );
+ if ( trackElement ) {
+ XMP_Uns64 channelIndex( 0 ), interleaveIndex( 0 );
+ std::string name, function;
+
+ try {
+ channelIndex = ParseUns64Value( trackElement, trackChannelIndexTagName );
+ interleaveIndex = ParseUns64Value( trackElement, trackInterleaveIndexTagName );
+ name = ParseStringValue( trackElement, trackNameTagName );
+ function = ParseStringValue( trackElement, trackFunctionTagName );
+ } catch( ... ) {
+ XMP_Error error( kXMPErr_BadBlockFormat, "iXML Metadata reconciliation failure: failed parsing track list" );
+ NotifyClient( kXMPErrSev_Recoverable, error );
+ return;
+ }
+
+ // check value of interleave index it should be between 1 and trackCount.
+ if ( interleaveIndex > 0 && interleaveIndex <= trackCount
+ && trackInfoListVector[ interleaveIndex - 1 ].mChannelIndex == 0 )
+ {
+ TrackListInfo & currentElement = trackInfoListVector[ interleaveIndex - 1 ];
+ currentElement.mChannelIndex = channelIndex;
+ currentElement.mName = name;
+ currentElement.mFunction = function;
+ } else {
+ XMP_Error error( kXMPErr_BadBlockFormat, "iXML Metadata reconciliation failure: interleave index is not correct" );
+ NotifyClient( kXMPErrSev_Recoverable, error );
+ return;
+ }
+ } else {
+ XMP_Error error( kXMPErr_BadBlockFormat, "iXML Metadata reconciliation failure: number of track elements is less than expected" );
+ NotifyClient( kXMPErrSev_Recoverable, error );
+ return;
+ }
+ }
+
+ if ( trackCount > 0 ) {
+ this->setArray( kTrackList, trackInfoListVector.data(), ( XMP_Uns32 ) trackInfoListVector.size() );
+ }
+ }
+
bool iXMLMetadata::validateTimeCodeFlag( ValueObject * value ) {
bool returnValue = validateStringSize( value, 2, 3 );
if ( returnValue ) {
@@ -812,4 +981,8 @@ namespace IFF_RIFF {
return false;
}
+ bool iXMLMetadata::validateTrackListInfo( ValueObject * value ) {
+ return true;
+ }
+
}
diff --git a/XMPFiles/source/FormatSupport/WAVE/iXMLMetadata.h b/XMPFiles/source/FormatSupport/WAVE/iXMLMetadata.h
index 815fe85..5c18268 100644
--- a/XMPFiles/source/FormatSupport/WAVE/iXMLMetadata.h
+++ b/XMPFiles/source/FormatSupport/WAVE/iXMLMetadata.h
@@ -28,10 +28,35 @@ namespace IFF_RIFF {
class iXMLMetadata : public IMetadata
{
public:
+
+ class TrackListInfo {
+ public:
+ TrackListInfo() : mChannelIndex( 0 ) {}
+
+ TrackListInfo( XMP_Uns64 channelIndex, const std::string & name, const std::string & function )
+ : mChannelIndex( channelIndex )
+ , mName( name )
+ , mFunction( function ) {}
+
+ bool operator == ( const TrackListInfo & other ) const {
+ return mChannelIndex == other.mChannelIndex &&
+ mName.compare( other.mName ) == 0 &&
+ mFunction.compare( other.mFunction ) == 0;
+ }
+
+ bool operator != ( const TrackListInfo & other ) const {
+ return !( this->operator==( other ) );
+ }
+
+ XMP_Uns64 mChannelIndex;
+ std::string mName;
+ std::string mFunction;
+ };
+
enum
{
kTape, // std::string
- kTake, // XMP_Uns64
+ kTake, // std::string
kScene, // std::string
kNote, // std::string
kProject, // std::string
@@ -54,6 +79,7 @@ namespace IFF_RIFF {
kTimeStampSampleRate, // XMP_Uns64
kTimeStampSampleSinceMidnightLow, // XMP_Uns32
kTimeStampSampleSinceMidnightHigh, // XMP_Uns32
+ kTrackList, // std::vector< TrackListInfo >
kLastEntry
};
@@ -118,6 +144,10 @@ namespace IFF_RIFF {
void UpdateProperties();
std::string ParseStringValue( XML_Node * parentNode, XMP_Uns32 id );
+ std::string ParseStringValue( XML_Node * parentNode, const char * tagName, bool recoverableError = true );
+ XMP_Uns64 ParseUns64Value( XML_Node * parentNode, const char * tagName );
+
+ void ParseAndSetTrackListInfo( XML_Node * parentNode );
void ParseAndSetStringProperty( XML_Node * parentNode, XMP_Uns32 id );
void ParseAndSetIntegerProperty( XML_Node * parentNode, XMP_Uns32 id );
void ParseAndSetBoolProperty( XML_Node * parentNode, XMP_Uns32 id );
@@ -125,6 +155,7 @@ namespace IFF_RIFF {
void UpdateStringProperty( XML_Node * parentNode, XMP_Uns32 id );
void UpdateIntegerProperty( XML_Node * parentNode, XMP_Uns32 id );
void UpdateBoolProperty( XML_Node * parentNode, XMP_Uns32 id );
+ void UpdateTrackListInfo( XML_Node * parentNode );
void UpdateXMLNode( XML_Node * parentNode, const char * localName, const std::string & value );
void RemoveXMLNode( XML_Node * parentNode, const char * localName );
@@ -140,7 +171,7 @@ namespace IFF_RIFF {
bool validateUMID( ValueObject * value );
bool validateTimeCodeFlag( ValueObject * value );
bool validateRational( ValueObject * value );
-
+ bool validateTrackListInfo( ValueObject * value );
private:
// Operators hidden on purpose
iXMLMetadata( const iXMLMetadata& ) {};
diff --git a/XMPFiles/source/FormatSupport/XMPScanner.cpp b/XMPFiles/source/FormatSupport/XMPScanner.cpp
index 6d8fe82..14552de 100644
--- a/XMPFiles/source/FormatSupport/XMPScanner.cpp
+++ b/XMPFiles/source/FormatSupport/XMPScanner.cpp
@@ -20,11 +20,7 @@
#include "public/include/XMP_Const.h"
-#if TestRunnerBuild
- #define EnablePacketScanning 1
-#else
- #include "XMPFiles/source/XMPFiles_Impl.hpp"
-#endif
+
#include "XMPFiles/source/FormatSupport/XMPScanner.hpp"
@@ -38,6 +34,12 @@
#include <fstream>
#endif
+#if TestRunnerBuild
+#define EnablePacketScanning 1
+#else
+#include "XMPFiles/source/XMPFiles_Impl.hpp"
+#endif
+
#ifndef UseStringPushBack // VC++ 6.x does not provide push_back for strings!
#define UseStringPushBack 0
#endif
diff --git a/XMPFiles/source/HandlerRegistry.cpp b/XMPFiles/source/HandlerRegistry.cpp
index abaa3a4..cc58d34 100644
--- a/XMPFiles/source/HandlerRegistry.cpp
+++ b/XMPFiles/source/HandlerRegistry.cpp
@@ -22,6 +22,7 @@
#include "XMPFiles/source/FileHandlers/JPEG_Handler.hpp"
#include "XMPFiles/source/FileHandlers/PSD_Handler.hpp"
#include "XMPFiles/source/FileHandlers/TIFF_Handler.hpp"
+ #include "XMPFiles/source/FileHandlers/GIF_Handler.hpp"
#endif
#if EnableDynamicMediaHandlers
@@ -36,8 +37,9 @@
#include "XMPFiles/source/FileHandlers/RIFF_Handler.hpp"
#include "XMPFiles/source/FileHandlers/SonyHDV_Handler.hpp"
#include "XMPFiles/source/FileHandlers/SWF_Handler.hpp"
- #include "XMPFiles/source/FileHandlers/XDCAM_Handler.hpp"
#include "XMPFiles/source/FileHandlers/XDCAMEX_Handler.hpp"
+ #include "XMPFiles/source/FileHandlers/XDCAMFAM_Handler.hpp"
+ #include "XMPFiles/source/FileHandlers/XDCAMSAM_Handler.hpp"
#endif
#if EnableMiscHandlers
@@ -45,6 +47,7 @@
#include "XMPFiles/source/FileHandlers/PNG_Handler.hpp"
#include "XMPFiles/source/FileHandlers/PostScript_Handler.hpp"
#include "XMPFiles/source/FileHandlers/UCF_Handler.hpp"
+ #include "XMPFiles/source/FileHandlers/SVG_Handler.hpp"
#endif
//#if EnablePacketScanning
@@ -121,8 +124,8 @@ void HandlerRegistry::initialize()
#if EnableDynamicMediaHandlers
allOK &= this->registerFolderHandler ( kXMP_P2File, kP2_HandlerFlags, P2_CheckFormat, P2_MetaHandlerCTor );
allOK &= this->registerFolderHandler ( kXMP_SonyHDVFile, kSonyHDV_HandlerFlags, SonyHDV_CheckFormat, SonyHDV_MetaHandlerCTor );
- allOK &= this->registerFolderHandler ( kXMP_XDCAM_FAMFile, kXDCAM_HandlerFlags, XDCAM_CheckFormat, XDCAM_MetaHandlerCTor );
- allOK &= this->registerFolderHandler ( kXMP_XDCAM_SAMFile, kXDCAM_HandlerFlags, XDCAM_CheckFormat, XDCAM_MetaHandlerCTor );
+ allOK &= this->registerFolderHandler ( kXMP_XDCAM_FAMFile, kXDCAMFAM_HandlerFlags, XDCAMFAM_CheckFormat, XDCAMFAM_MetaHandlerCTor );
+ allOK &= this->registerFolderHandler ( kXMP_XDCAM_SAMFile, kXDCAMSAM_HandlerFlags, XDCAMSAM_CheckFormat, XDCAMSAM_MetaHandlerCTor );
allOK &= this->registerFolderHandler ( kXMP_XDCAM_EXFile, kXDCAMEX_HandlerFlags, XDCAMEX_CheckFormat, XDCAMEX_MetaHandlerCTor );
#endif
@@ -133,6 +136,7 @@ void HandlerRegistry::initialize()
allOK &= this->registerNormalHandler ( kXMP_JPEGFile, kJPEG_HandlerFlags, JPEG_CheckFormat, JPEG_MetaHandlerCTor );
allOK &= this->registerNormalHandler ( kXMP_PhotoshopFile, kPSD_HandlerFlags, PSD_CheckFormat, PSD_MetaHandlerCTor );
allOK &= this->registerNormalHandler ( kXMP_TIFFFile, kTIFF_HandlerFlags, TIFF_CheckFormat, TIFF_MetaHandlerCTor );
+ allOK &= this->registerNormalHandler( kXMP_GIFFile, kGIF_HandlerFlags, GIF_CheckFormat, GIF_MetaHandlerCTor );
#endif
#if EnableDynamicMediaHandlers
@@ -154,6 +158,7 @@ void HandlerRegistry::initialize()
// ! EPS and PostScript have the same handler, EPS is a proper subset of PostScript.
allOK &= this->registerNormalHandler ( kXMP_EPSFile, kPostScript_HandlerFlags, PostScript_CheckFormat, PostScript_MetaHandlerCTor );
allOK &= this->registerNormalHandler ( kXMP_PostScriptFile, kPostScript_HandlerFlags, PostScript_CheckFormat, PostScript_MetaHandlerCTor );
+ allOK &= this->registerNormalHandler ( kXMP_SVGFile, kSVG_HandlerFlags, SVG_CheckFormat, SVG_MetaHandlerCTor );
#endif
// ------------------------------------------------------------------------------------
diff --git a/XMPFiles/source/NativeMetadataSupport/IMetadata.h b/XMPFiles/source/NativeMetadataSupport/IMetadata.h
index b85239b..608d4a2 100644
--- a/XMPFiles/source/NativeMetadataSupport/IMetadata.h
+++ b/XMPFiles/source/NativeMetadataSupport/IMetadata.h
@@ -237,7 +237,7 @@ template<class T> void IMetadata::setValue( XMP_Uns32 id, const T& value )
//
// check if the value is "empty"
//
- if( this->isEmptyValue( id, *valueObj ) )
+ if( valueObj == NULL || this->isEmptyValue( id, *valueObj ) )
{
//
// value is "empty", delete it
diff --git a/XMPFiles/source/NativeMetadataSupport/IReconcile.h b/XMPFiles/source/NativeMetadataSupport/IReconcile.h
index 16a0109..d28d5c4 100644
--- a/XMPFiles/source/NativeMetadataSupport/IReconcile.h
+++ b/XMPFiles/source/NativeMetadataSupport/IReconcile.h
@@ -11,6 +11,7 @@
#define _IReconcile_h_
#include <string>
+#include <vector>
#ifndef TXMP_STRING_TYPE
#define TXMP_STRING_TYPE std::string
diff --git a/XMPFiles/source/NativeMetadataSupport/ValueObject.h b/XMPFiles/source/NativeMetadataSupport/ValueObject.h
index cc8b444..cd4b6d9 100644
--- a/XMPFiles/source/NativeMetadataSupport/ValueObject.h
+++ b/XMPFiles/source/NativeMetadataSupport/ValueObject.h
@@ -108,7 +108,13 @@ template<class T> inline void TArrayObject<T>::setArray( const T* buffer, XMP_Un
if( mArray != NULL && mSize == numElements )
{
- doSet = ( memcmp( mArray, buffer, numElements*sizeof(T) ) != 0 );
+ doSet = false;
+ for( size_t i = 0; i < mSize; i++ ) {
+ if ( mArray[i] != buffer[i] ) {
+ doSet = true;
+ break;
+ }
+ }
}
if( doSet )
@@ -121,7 +127,9 @@ template<class T> inline void TArrayObject<T>::setArray( const T* buffer, XMP_Un
mArray = new T[numElements];
mSize = numElements;
- memcpy( mArray, buffer, numElements*sizeof(T) );
+ for ( size_t i = 0; i < mSize; i++ ) {
+ mArray[i] = buffer[i];
+ }
mDirty = true;
}
diff --git a/XMPFiles/source/PluginHandler/FileHandlerInstance.cpp b/XMPFiles/source/PluginHandler/FileHandlerInstance.cpp
index 3d2ffd8..c70a794 100644
--- a/XMPFiles/source/PluginHandler/FileHandlerInstance.cpp
+++ b/XMPFiles/source/PluginHandler/FileHandlerInstance.cpp
@@ -49,70 +49,116 @@ void FileHandlerInstance::CacheFileData()
if( error.mErrorID != kXMPErr_NoError )
{
if ( xmpStr != 0 ) free( (void*) xmpStr );
- throw XMP_Error( kXMPErr_InternalFailure, error.mErrorMsg );
+ if ( error.mErrorID == kXMPErr_FilePermission )
+ throw XMP_Error( kXMPErr_FilePermission, error.mErrorMsg );
+ else
+ throw XMP_Error( kXMPErr_InternalFailure, error.mErrorMsg );
}
if( xmpStr != NULL )
{
this->xmpPacket.assign( xmpStr );
free( (void*) xmpStr ); // It should be freed as documentation of mCacheFileDataProc says so.
+ this->containsXMP = true;
}
- this->containsXMP = true;
+ else
+ this->containsXMP = false;
}
void FileHandlerInstance::ProcessXMP()
{
- if( !this->containsXMP || this->processedXMP ) return;
+ if( this->processedXMP ) return;
this->processedXMP = true;
SXMPUtils::RemoveProperties ( &this->xmpObj, 0, 0, kXMPUtil_DoAllProperties );
- this->xmpObj.ParseFromBuffer ( this->xmpPacket.c_str(), (XMP_StringLen)this->xmpPacket.size() );
+ if ( this->xmpPacket.size() != 0 )
+ this->xmpObj.ParseFromBuffer ( this->xmpPacket.c_str(), (XMP_StringLen)this->xmpPacket.size() );
WXMP_Error error;
- if( mHandler->getModule()->getPluginAPIs()->mImportToXMPStringProc )
+ if ( mHandler->getModule()->getPluginAPIs()->mVersion >= 4 && mHandler->getModule()->getPluginAPIs()->mImportToXMPStringWithPacketProc )
+ {
+ XMP_StringPtr xmpStr = this->xmpPacket.c_str();
+ XMP_StringPtr oldPacketPtr = NULL;
+ XMP_PacketInfo packetInfo;
+ mHandler->getModule()->getPluginAPIs()->mImportToXMPStringWithPacketProc( this->mObject, &xmpStr, &error, &oldPacketPtr, &packetInfo );
+
+ if( xmpStr != NULL && xmpStr != this->xmpPacket.c_str() )
+ {
+ XMP_StringLen newLen = static_cast<XMP_StringLen>(strlen( xmpStr ));
+ this->xmpObj.Erase();
+ this->xmpObj.ParseFromBuffer( xmpStr, newLen, 0 );
+
+ // Note: Freeing memory would not create any problem as plugin would have allocated memory using Host library function
+ free( ( void * ) xmpStr );
+ this->containsXMP = true;
+ }
+
+ if( oldPacketPtr != NULL )
+ {
+ this->xmpPacket.resize( strlen( oldPacketPtr ) );
+ this->xmpPacket.assign( oldPacketPtr );
+ this->packetInfo = packetInfo;
+
+ // Note: Freeing memory would not create any problem as plugin would have allocated memory using Host library function
+ free( ( void * ) oldPacketPtr );
+ this->containsXMP = true;
+ }
+ }
+ else if( mHandler->getModule()->getPluginAPIs()->mVersion >= 2 && mHandler->getModule()->getPluginAPIs()->mImportToXMPStringProc )
{
- std::string xmp;
- this->xmpObj.SerializeToBuffer(&xmp, kXMP_NoOptions, 0);
- XMP_StringPtr xmpStr=xmp.c_str();
+ XMP_StringPtr xmpStr = this->xmpPacket.c_str();
mHandler->getModule()->getPluginAPIs()->mImportToXMPStringProc( this->mObject, &xmpStr, &error );
- if( xmpStr!= NULL && xmpStr != xmp.c_str() )
+
+ if( xmpStr != NULL && xmpStr != this->xmpPacket.c_str() )
{
- xmp.resize(0);
- xmp.assign(xmpStr);
- SXMPMeta newMeta(xmp.c_str(),xmp.length());
- this->xmpObj=newMeta;
- free( (void*) xmpStr ); // It should be freed as documentation of mImportToXMPStringProc says so.
+ XMP_StringLen newLen = static_cast<XMP_StringLen>(strlen( xmpStr ));
+ this->xmpObj.Erase();
+ this->xmpObj.ParseFromBuffer( xmpStr, newLen, 0 );
+
+ // Note: Freeing memory would not create any problem as plugin would have allocated memory using Host library function
+ free( ( void * ) xmpStr );
+ this->containsXMP = true;
}
}
else
{
if( mHandler->getModule()->getPluginAPIs()->mImportToXMPProc )
mHandler->getModule()->getPluginAPIs()->mImportToXMPProc( this->mObject, this->xmpObj.GetInternalRef(), &error );
+ this->containsXMP = true;
}
CheckError( error );
}
void FileHandlerInstance::UpdateFile ( bool doSafeUpdate )
{
- if ( !this->needsUpdate || this->xmpPacket.size() == 0 ) return;
-
+ bool optimizeFileLayout = XMP_OptionIsSet ( this->parent->openFlags, kXMPFiles_OptimizeFileLayout );
+ this->needsUpdate |= optimizeFileLayout;
+ if( !this->needsUpdate ) return;
WXMP_Error error;
- if( mHandler->getModule()->getPluginAPIs()->mExportFromXMPStringProc )
- {
- std::string xmp;
- this->xmpObj.SerializeToBuffer(&xmp, kXMP_NoOptions, 0);
- XMP_StringPtr xmpStr=xmp.c_str();
- mHandler->getModule()->getPluginAPIs()->mExportFromXMPStringProc( this->mObject, xmpStr, &error );
- }
- else
+
+ if ( xmpPacket.size() != 0 )
{
- if( mHandler->getModule()->getPluginAPIs()->mExportFromXMPProc )
- mHandler->getModule()->getPluginAPIs()->mExportFromXMPProc( this->mObject, this->xmpObj.GetInternalRef(), &error );
- }
- CheckError( error );
+ if( mHandler->getModule()->getPluginAPIs()->mExportFromXMPStringProc )
+ {
+ std::string xmp;
+ this->xmpObj.SerializeToBuffer( &xmp, kXMP_NoOptions, 0 );
+ XMP_StringPtr xmpStr = xmp.c_str();
+ mHandler->getModule()->getPluginAPIs()->mExportFromXMPStringProc( this->mObject, xmpStr, &error );
+ if ( xmpStr != xmp.c_str() )
+ this->xmpObj.SerializeToBuffer ( &this->xmpPacket, mHandler->getSerializeOption() );
+ }
+ else
+ {
+ if( mHandler->getModule()->getPluginAPIs()->mExportFromXMPProc )
+ {
+ mHandler->getModule()->getPluginAPIs()->mExportFromXMPProc( this->mObject, this->xmpObj.GetInternalRef(), &error );
+ this->xmpObj.SerializeToBuffer ( &this->xmpPacket, mHandler->getSerializeOption() );
+ }
+ }
+ CheckError( error );
- this->xmpObj.SerializeToBuffer ( &this->xmpPacket, mHandler->getSerializeOption() );
-
+
+ }
mHandler->getModule()->getPluginAPIs()->mUpdateFileProc( this->mObject, this->parent->ioRef, doSafeUpdate, this->xmpPacket.c_str(), &error );
CheckError( error );
this->needsUpdate = false;
@@ -141,7 +187,6 @@ static void SetStringVector ( StringVectorRef clientPtr, XMP_StringPtr * arrayPt
}
}
-
void FileHandlerInstance::FillMetadataFiles( std::vector<std::string> * metadataFiles )
{
WXMP_Error error;
@@ -180,4 +225,28 @@ bool FileHandlerInstance::IsMetadataWritable( )
return ConvertXMP_BoolToBool( result );
}
+void FileHandlerInstance::SetErrorCallback ( ErrorCallbackBox errorCallbackBox )
+{
+ WXMP_Error error;
+ SetErrorCallbackproc wSetErrorCallbackproc = mHandler->getModule()->getPluginAPIs()->mSetErrorCallbackproc ;
+ if( wSetErrorCallbackproc ) {
+ wSetErrorCallbackproc( this->mObject, errorCallbackBox, &error );
+ CheckError( error );
+ } else {
+ XMP_Throw ( "This version of plugin does not support IsMetadataWritable API", kXMPErr_Unimplemented );
+ }
+}
+
+void FileHandlerInstance::SetProgressCallback ( XMP_ProgressTracker::CallbackInfo * progCBInfoPtr )
+{
+ WXMP_Error error;
+ SetProgressCallbackproc wSetProgressCallbackproc = mHandler->getModule()->getPluginAPIs()->mSetProgressCallbackproc ;
+ if( wSetProgressCallbackproc ) {
+ wSetProgressCallbackproc( this->mObject, progCBInfoPtr, &error );
+ CheckError( error );
+ } else {
+ XMP_Throw ( "This version of plugin does not support IsMetadataWritable API", kXMPErr_Unimplemented );
+ }
+}
+
} //namespace XMP_PLUGIN
diff --git a/XMPFiles/source/PluginHandler/FileHandlerInstance.h b/XMPFiles/source/PluginHandler/FileHandlerInstance.h
index 9810831..b1c2a7b 100644
--- a/XMPFiles/source/PluginHandler/FileHandlerInstance.h
+++ b/XMPFiles/source/PluginHandler/FileHandlerInstance.h
@@ -37,6 +37,8 @@ public:
virtual void FillMetadataFiles ( std::vector<std::string> * metadataFiles );
virtual void FillAssociatedResources ( std::vector<std::string> * resourceList );
virtual bool IsMetadataWritable ( );
+ virtual void SetErrorCallback ( ErrorCallbackBox errorCallbackBox );
+ virtual void SetProgressCallback ( XMP_ProgressTracker::CallbackInfo * progCBInfoPtr );
inline SessionRef GetSession() const { return mObject; }
inline FileHandlerSharedPtr GetHandlerInfo() const { return mHandler; }
diff --git a/XMPFiles/source/PluginHandler/HostAPIImpl.cpp b/XMPFiles/source/PluginHandler/HostAPIImpl.cpp
index cf6a389..dd7031e 100644
--- a/XMPFiles/source/PluginHandler/HostAPIImpl.cpp
+++ b/XMPFiles/source/PluginHandler/HostAPIImpl.cpp
@@ -376,7 +376,7 @@ static void GetAbortAPI( Abort_API* abortAPI )
// StandardHandler_API
//
-static XMPErrorID CheckFormatStandardHandler( SessionRef session, XMP_FileFormat format, StringPtr path, XMP_Bool & checkOK, WXMP_Error* wError )
+static XMPErrorID CheckFormatStandardHandlerInternal( SessionRef session, XMP_FileFormat format, StringPtr path, XMP_Bool & checkOK, WXMP_Error* wError, XMPFiles * standardClient = NULL )
{
if( wError == NULL ) return kXMPErr_BadParam;
@@ -400,14 +400,23 @@ static XMPErrorID CheckFormatStandardHandler( SessionRef session, XMP_FileFormat
{
if( hdlInfo->checkProc != NULL )
{
+ bool xmpFilesCreated = false;
+ if ( standardClient == NULL )
+ {
+ standardClient = new XMPFiles();
+ xmpFilesCreated = true;
+ }
+
try
{
//
// setup temporary XMPFiles instance
//
- XMPFiles standardClient;
- standardClient.format = format;
- standardClient.SetFilePath( path );
+ if ( xmpFilesCreated )
+ {
+ standardClient->format = format;
+ standardClient->SetFilePath( path );
+ }
if( hdlInfo->flags & kXMPFiles_FolderBasedFormat )
{
@@ -447,7 +456,7 @@ static XMPErrorID CheckFormatStandardHandler( SessionRef session, XMP_FileFormat
// The case that a logical path to a clip has been passed, which does not point to a real file
if( Host_IO::GetFileMode( path ) == Host_IO::kFMode_DoesNotExist )
{
- checkOK = CheckProc( hdlInfo->format, rootPath, gpName, parentName, leafName, &standardClient );
+ checkOK = CheckProc( hdlInfo->format, rootPath, gpName, parentName, leafName, standardClient );
}
else
{
@@ -463,7 +472,7 @@ static XMPErrorID CheckFormatStandardHandler( SessionRef session, XMP_FileFormat
gpName = origGPName; // ! XDCAM-FAM has just 1 level of inner folder, preserve the "MyMovie" case.
}
- checkOK = CheckProc( hdlInfo->format, rootPath, gpName, parentName, leafName, &standardClient );
+ checkOK = CheckProc( hdlInfo->format, rootPath, gpName, parentName, leafName, standardClient );
}
}
else
@@ -483,14 +492,24 @@ static XMPErrorID CheckFormatStandardHandler( SessionRef session, XMP_FileFormat
//
CheckFileFormatProc CheckProc = (CheckFileFormatProc) (hdlInfo->checkProc);
XMPFiles_IO* io = XMPFiles_IO::New_XMPFiles_IO ( path, true );
- checkOK = CheckProc( hdlInfo->format, path, io, &standardClient );
+ checkOK = CheckProc( hdlInfo->format, path, io, standardClient );
delete io;
}
wError->mErrorID = kXMPErr_NoError;
+ if ( xmpFilesCreated )
+ {
+ delete standardClient;
+ standardClient = NULL;
+ }
}
catch( ... )
{
+ if ( xmpFilesCreated )
+ {
+ delete standardClient;
+ standardClient = NULL;
+ }
HandleException( wError );
}
}
@@ -508,7 +527,12 @@ static XMPErrorID CheckFormatStandardHandler( SessionRef session, XMP_FileFormat
return wError->mErrorID;
}
-static XMPErrorID GetXMPStandardHandler( SessionRef session, XMP_FileFormat format, StringPtr path, XMPMetaRef xmpRef, XMP_Bool * xmpExists, WXMP_Error* wError )
+static XMPErrorID CheckFormatStandardHandler( SessionRef session, XMP_FileFormat format, StringPtr path, XMP_Bool & checkOK, WXMP_Error* wError )
+{
+ return CheckFormatStandardHandlerInternal( session, format, path, checkOK, wError );
+}
+
+static XMPErrorID GetXMPStandardHandlerInternal( SessionRef session, XMP_FileFormat format, StringPtr path, XMPMetaRef xmpRef, XMP_Bool * xmpExists, WXMP_Error* wError, XMP_OptionBits flags = 0, XMP_StringPtr *packet = NULL, XMP_PacketInfo *packetInfo = NULL, ErrorCallbackBox * errorCallback = NULL, XMP_ProgressTracker::CallbackInfo * progCBInfoPtr = NULL )
{
if( wError == NULL ) return kXMPErr_BadParam;
@@ -533,34 +557,58 @@ static XMPErrorID GetXMPStandardHandler( SessionRef session, XMP_FileFormat form
// check format first
//
XMP_Bool suc = kXMP_Bool_False;
+ if( flags == 0 )
+ flags = kXMPFiles_OpenForRead;
+ //
+ // setup temporary XMPFiles instance
+ //
+ XMPFiles standardClient;
+ standardClient.format = format;
+ standardClient.SetFilePath( path );
+ standardClient.openFlags = flags;
+
+ if ( errorCallback != NULL )
+ {
+ standardClient.SetErrorCallback( errorCallback->wrapperProc, errorCallback->clientProc, errorCallback->context, errorCallback->limit );
+ }
+ if ( progCBInfoPtr != NULL && progCBInfoPtr->wrapperProc != NULL )
+ {
+ standardClient.SetProgressCallback( *progCBInfoPtr );
+ }
- XMPErrorID errorID = CheckFormatStandardHandler( session, format, path, suc, wError );
+ XMPErrorID errorID = kXMPErr_NoError;
+ if ( flags & kXMPFiles_ForceGivenHandler )
+ {
+ suc = ConvertBoolToXMP_Bool( true );
+ wError->mErrorID = kXMPErr_NoError;
+ }
+ else
+ errorID = CheckFormatStandardHandlerInternal( session, format, path, suc, wError, &standardClient );
if( errorID == kXMPErr_NoError && ConvertXMP_BoolToBool( suc ) )
{
- //
- // setup temporary XMPFiles instance
- //
- XMPFiles standardClient;
- standardClient.format = format;
- standardClient.SetFilePath( path );
-
SXMPMeta meta( xmpRef );
-
+
try
{
- //
- // open with passed handler info
- //
- suc = standardClient.OpenFile( *hdlInfo, path, kXMPFiles_OpenForRead );
+ suc = standardClient.OpenFile( *hdlInfo, path, flags );
if( suc )
{
- //
- // read meta data
- //
- suc = standardClient.GetXMP( &meta );
-
+ XMP_StringPtr oldStr;
+ XMP_StringLen length = 0;
+ suc = standardClient.GetXMP( &meta, &oldStr, &length, packetInfo );
+ if( length != 0 && packet != NULL )
+ {
+ StringPtr buffer = NULL;
+ CreateBuffer( &buffer, length + 1, wError);
+ if( wError->mErrorID != kXMPErr_NoError )
+ return wError->mErrorID;
+
+ memcpy( buffer, oldStr, length );
+ buffer[length] = '\0';
+ *packet = buffer;
+ }
if( xmpExists != NULL ) *xmpExists = suc;
}
}
@@ -569,9 +617,6 @@ static XMPErrorID GetXMPStandardHandler( SessionRef session, XMP_FileFormat form
HandleException( wError );
}
- //
- // close and cleanup
- //
try
{
standardClient.CloseFile();
@@ -601,6 +646,11 @@ static XMPErrorID GetXMPStandardHandler( SessionRef session, XMP_FileFormat form
return wError->mErrorID;
}
+static XMPErrorID GetXMPStandardHandler( SessionRef session, XMP_FileFormat format, StringPtr path, XMPMetaRef xmpRef, XMP_Bool * xmpExists, WXMP_Error* wError )
+{
+ return GetXMPStandardHandlerInternal( session, format, path, xmpRef, xmpExists, wError );
+}
+
static XMPErrorID GetXMPStandardHandler_V2( SessionRef session, XMP_FileFormat format, StringPtr path, XMP_StringPtr* xmpStr, XMP_Bool * xmpExists, WXMP_Error* wError )
{
SXMPMeta meta;
@@ -621,6 +671,334 @@ static XMPErrorID GetXMPStandardHandler_V2( SessionRef session, XMP_FileFormat f
return wError->mErrorID ;
}
+static XMPErrorID GetXMPStandardHandler_V3( SessionRef session, XMP_FileFormat format, StringPtr path, XMP_StringPtr* xmpStr, XMP_Bool * xmpExists, WXMP_Error* wError, XMP_OptionBits flags, XMP_StringPtr* packet, XMP_PacketInfo* packetInfo, ErrorCallbackBox * errorCallback, XMP_ProgressTracker::CallbackInfo * progCBInfoPtr )
+{
+ SXMPMeta meta;
+ std::string xmp;
+ GetXMPStandardHandlerInternal( session, format, path, meta.GetInternalRef(), xmpExists, wError, flags, packet, packetInfo, errorCallback, progCBInfoPtr ) ;
+ if( wError->mErrorID != kXMPErr_NoError )
+ return wError->mErrorID;
+
+ meta.SerializeToBuffer( &xmp, kXMP_NoOptions, 0);
+ XMP_Uns32 length = (XMP_Uns32)xmp.size() + 1 ;
+ StringPtr buffer = NULL;
+ CreateBuffer( &buffer, length , wError);
+ if( wError->mErrorID != kXMPErr_NoError )
+ return wError->mErrorID;
+
+ memcpy( buffer, xmp.c_str(), length );
+ *xmpStr = buffer; // callee function should free the memory.
+ return wError->mErrorID ;
+}
+
+static XMPErrorID PutXMPStandardHandler( SessionRef session, XMP_FileFormat format, StringPtr path, const XMP_StringPtr xmpStr, WXMP_Error* wError , XMP_OptionBits flags, ErrorCallbackBox * errorCallback, XMP_ProgressTracker::CallbackInfo * progCBInfoPtr )
+{
+ if( wError == NULL ) return kXMPErr_BadParam;
+
+ wError->mErrorID = kXMPErr_InternalFailure;
+ wError->mErrorMsg = NULL;
+
+ //
+ // find FileHandlerInstance associated to session reference
+ //
+ FileHandlerInstancePtr instance = PluginManager::getHandlerInstance( session );
+
+ if( instance != NULL && PluginManager::getHandlerPriority( instance ) == PluginManager::kReplacementHandler )
+ {
+ //
+ // find previous file handler for file format identifier
+ //
+ XMPFileHandlerInfo* hdlInfo = HandlerRegistry::getInstance().getStandardHandlerInfo( format );
+
+ if( hdlInfo != NULL && HandlerRegistry::getInstance().isReplaced( format ) )
+ {
+ //
+ // check format first
+ //
+ XMP_Bool suc = kXMP_Bool_False;
+ if( flags == 0 )
+ flags = kXMPFiles_OpenForUpdate;
+ XMPFiles standardClient;
+ standardClient.format = format;
+ standardClient.SetFilePath( path );
+ standardClient.openFlags = flags ;
+
+ if ( errorCallback != NULL )
+ {
+ standardClient.SetErrorCallback( errorCallback->wrapperProc, errorCallback->clientProc, errorCallback->context, errorCallback->limit );
+ }
+ if ( progCBInfoPtr != NULL && progCBInfoPtr->wrapperProc != NULL )
+ {
+ standardClient.SetProgressCallback( *progCBInfoPtr );
+ }
+
+ XMPErrorID errorID = kXMPErr_NoError;
+ if ( flags & kXMPFiles_ForceGivenHandler )
+ {
+ suc = ConvertBoolToXMP_Bool( true );
+ wError->mErrorID = kXMPErr_NoError;
+ }
+ else
+ errorID = CheckFormatStandardHandlerInternal( session, format, path, suc, wError, &standardClient );
+
+ if( errorID == kXMPErr_NoError && ConvertXMP_BoolToBool( suc ) )
+ {
+ try
+ {
+ // open with passed handler info
+ suc = standardClient.OpenFile( *hdlInfo, path, flags );
+ size_t length = strnlen( xmpStr, Max_XMP_Uns32 );
+
+ if( suc && length != 0 && length <= Max_XMP_Uns32 )
+ {
+ // insert xmp into file
+ SXMPMeta meta( xmpStr, static_cast<XMP_Uns32>( length ));
+ standardClient.PutXMP( meta );
+ }
+ // close and cleanup
+ standardClient.CloseFile();
+ }
+ catch( ... )
+ {
+ HandleException( wError );
+ }
+
+ }
+ else if( errorID == kXMPErr_NoError )
+ {
+ wError->mErrorID = kXMPErr_BadFileFormat;
+ wError->mErrorMsg = "Standard handler can't process file format";
+ }
+ }
+ else
+ {
+ wError->mErrorID = kXMPErr_NoFileHandler;
+ wError->mErrorMsg = "No standard handler available";
+ }
+ }
+ else
+ {
+ wError->mErrorMsg = "Standard file handler can't call prior handler";
+ }
+
+ return wError->mErrorID;
+}
+
+static XMPErrorID GetFileModDateStandardHandler( SessionRef session, XMP_FileFormat format, StringPtr path, XMP_DateTime * modDate, XMP_Bool * isSuccess, WXMP_Error* wError, XMP_OptionBits flags )
+{
+ *isSuccess = false;
+ if( wError == NULL ) return kXMPErr_BadParam;
+
+ wError->mErrorID = kXMPErr_InternalFailure;
+ wError->mErrorMsg = NULL;
+
+ //
+ // find FileHandlerInstance associated to session reference
+ //
+ FileHandlerInstancePtr instance = PluginManager::getHandlerInstance( session );
+
+ if( instance != NULL && PluginManager::getHandlerPriority( instance ) == PluginManager::kReplacementHandler )
+ {
+ //
+ // find previous file handler for file format identifier
+ //
+ XMPFileHandlerInfo* hdlInfo = HandlerRegistry::getInstance().getStandardHandlerInfo( format );
+
+ if( hdlInfo != NULL && HandlerRegistry::getInstance().isReplaced( format ) )
+ {
+ //
+ // check format first
+ //
+ XMP_Bool suc = kXMP_Bool_False;
+
+ XMPErrorID errorID = kXMPErr_NoError;
+ if ( flags & kXMPFiles_ForceGivenHandler )
+ {
+ suc = ConvertBoolToXMP_Bool( true );
+ wError->mErrorID = kXMPErr_NoError;
+ }
+ else
+ errorID = CheckFormatStandardHandlerInternal( session, format, path, suc, wError );
+
+ if( errorID == kXMPErr_NoError && ConvertXMP_BoolToBool( suc ) )
+ {
+
+ try
+ {
+ *isSuccess = XMPFiles::GetFileModDate( *hdlInfo, path, modDate, flags );
+ }
+ catch( ... )
+ {
+ HandleException( wError );
+ }
+ }
+ else if( errorID == kXMPErr_NoError )
+ {
+ wError->mErrorID = kXMPErr_BadFileFormat;
+ wError->mErrorMsg = "Standard handler can't process file format";
+ }
+ }
+ else
+ {
+ wError->mErrorID = kXMPErr_NoFileHandler;
+ wError->mErrorMsg = "No standard handler available";
+ }
+ }
+ else
+ {
+ wError->mErrorMsg = "Standard file handler can't call prior handler";
+ }
+
+ return wError->mErrorID;
+}
+
+static XMPErrorID IsMetadataWritableStandardHandler( SessionRef session, XMP_FileFormat format, StringPtr path, XMP_Bool * isWritable, WXMP_Error* wError, XMP_OptionBits flags )
+{
+ if( wError == NULL ) return kXMPErr_BadParam;
+
+ wError->mErrorID = kXMPErr_InternalFailure;
+ wError->mErrorMsg = NULL;
+
+ //
+ // find FileHandlerInstance associated to session reference
+ //
+ FileHandlerInstancePtr instance = PluginManager::getHandlerInstance( session );
+
+ if( instance != NULL && PluginManager::getHandlerPriority( instance ) == PluginManager::kReplacementHandler )
+ {
+ //
+ // find previous file handler for file format identifier
+ //
+ XMPFileHandlerInfo* hdlInfo = HandlerRegistry::getInstance().getStandardHandlerInfo( format );
+
+ if( hdlInfo != NULL && HandlerRegistry::getInstance().isReplaced( format ) )
+ {
+ //
+ // check format first
+ //
+ XMP_Bool suc = kXMP_Bool_False;
+
+ XMPErrorID errorID = kXMPErr_NoError;
+ if ( flags & kXMPFiles_ForceGivenHandler )
+ {
+ suc = ConvertBoolToXMP_Bool( true );
+ wError->mErrorID = kXMPErr_NoError;
+ }
+ else
+ errorID = CheckFormatStandardHandlerInternal( session, format, path, suc, wError );
+
+ if( errorID == kXMPErr_NoError && ConvertXMP_BoolToBool( suc ) )
+ {
+ try
+ {
+ (void)XMPFiles::IsMetadataWritable( *hdlInfo, path, isWritable, flags );
+ }
+ catch( ... )
+ {
+ HandleException( wError );
+ }
+ }
+ else if( errorID == kXMPErr_NoError )
+ {
+ wError->mErrorID = kXMPErr_BadFileFormat;
+ wError->mErrorMsg = "Standard handler can't process file format";
+ }
+ }
+ else
+ {
+ wError->mErrorID = kXMPErr_NoFileHandler;
+ wError->mErrorMsg = "No standard handler available";
+ }
+ }
+ else
+ {
+ wError->mErrorMsg = "Standard file handler can't call prior handler";
+ }
+
+ return wError->mErrorID;
+}
+
+static XMPErrorID GetAssociatedResourcesStandardHandler( SessionRef session, XMP_FileFormat format, StringPtr path, void * resourceList, SetClientStringVectorProc SetClientStringVector, WXMP_Error* wError, XMP_OptionBits flags )
+{
+ if( wError == NULL ) return kXMPErr_BadParam;
+
+ wError->mErrorID = kXMPErr_InternalFailure;
+ wError->mErrorMsg = NULL;
+
+ //
+ // find FileHandlerInstance associated to session reference
+ //
+ FileHandlerInstancePtr instance = PluginManager::getHandlerInstance( session );
+
+ if( instance != NULL && PluginManager::getHandlerPriority( instance ) == PluginManager::kReplacementHandler )
+ {
+ //
+ // find previous file handler for file format identifier
+ //
+ XMPFileHandlerInfo* hdlInfo = HandlerRegistry::getInstance().getStandardHandlerInfo( format );
+
+ if( hdlInfo != NULL && HandlerRegistry::getInstance().isReplaced( format ) )
+ {
+ //
+ // check format first
+ //
+ XMP_Bool suc = kXMP_Bool_False;
+
+ XMPErrorID errorID = kXMPErr_NoError;
+ if ( flags & kXMPFiles_ForceGivenHandler )
+ {
+ suc = ConvertBoolToXMP_Bool( true );
+ wError->mErrorID = kXMPErr_NoError;
+ }
+ else
+ errorID = CheckFormatStandardHandlerInternal( session, format, path, suc, wError );
+
+ if( errorID == kXMPErr_NoError && ConvertXMP_BoolToBool( suc ) )
+ {
+ try
+ {
+ bool isSuccess;
+
+ // Host XMPFile library is providing a new vector of string and will use that for getting list of associated resources using standard handler
+ std::vector<std::string> resList;
+ ( *SetClientStringVector )( resourceList, 0, 0 );
+ isSuccess = XMPFiles::GetAssociatedResources( *hdlInfo, path, &resList, flags );
+ if ( isSuccess && (! resList.empty()) )
+ {
+ const size_t fileCount = resList.size();
+ std::vector<XMP_StringPtr> ptrArray;
+ ptrArray.reserve ( fileCount );
+ for ( size_t index = 0; index < fileCount; ++index )
+ ptrArray.push_back( resList[ index ].c_str() );
+
+ // Filling list of resources into plugin provided vector of strings using plugin provided method of creating vector of strings
+ ( *SetClientStringVector ) ( resourceList, ptrArray.data(), static_cast<XMP_Uns32>( fileCount ) );
+ }
+ }
+ catch( ... )
+ {
+ HandleException( wError );
+ }
+ }
+ else if( errorID == kXMPErr_NoError )
+ {
+ wError->mErrorID = kXMPErr_BadFileFormat;
+ wError->mErrorMsg = "Standard handler can't process file format";
+ }
+ }
+ else
+ {
+ wError->mErrorID = kXMPErr_NoFileHandler;
+ wError->mErrorMsg = "No standard handler available";
+ }
+ }
+ else
+ {
+ wError->mErrorMsg = "Standard file handler can't call prior handler";
+ }
+
+ return wError->mErrorID;
+}
static void GetStandardHandlerAPI( StandardHandler_API* standardHandlerAPI )
{
@@ -632,6 +1010,10 @@ static void GetStandardHandlerAPI( StandardHandler_API* standardHandlerAPI )
}
+//
+//
+//
+///////////////////////////////////////////////////////////////////////////////
static XMPErrorID RequestAPISuite( const char* apiName, XMP_Uns32 apiVersion, void** apiSuite, WXMP_Error* wError )
{
@@ -655,14 +1037,39 @@ static XMPErrorID RequestAPISuite( const char* apiName, XMP_Uns32 apiVersion, vo
{
*apiSuite = (void*) &RequestAPISuite;
}
- else if ( ! strcmp( apiName, "StandardHandler" ) && apiVersion == 2 )
+ else if ( ! strcmp( apiName, "StandardHandler" ) )
{
- static const StandardHandler_API_V2 standardHandlerAPI =
- {
+ static const StandardHandler_API_V3 standardHandlerAPI(
&CheckFormatStandardHandler,
- &GetXMPStandardHandler_V2
- };
- *apiSuite=(void*)&standardHandlerAPI;
+ &GetXMPStandardHandler_V2,
+ &GetXMPStandardHandler_V3,
+ &PutXMPStandardHandler,
+ &GetFileModDateStandardHandler,
+ &GetAssociatedResourcesStandardHandler,
+ &IsMetadataWritableStandardHandler
+ );
+
+ switch ( apiVersion )
+ {
+ case 2:
+ {
+ const StandardHandler_API_V2 * ptr = &standardHandlerAPI;
+ *apiSuite = (void *) ptr;
+ }
+ break;
+
+ case 3:
+ {
+ *apiSuite = (void *) &standardHandlerAPI;
+ }
+ break;
+
+ default:
+ *apiSuite = NULL;
+ wError->mErrorID = kXMPErr_Unimplemented;
+ break;
+
+ }
}
else
{
diff --git a/XMPFiles/source/PluginHandler/ModuleUtils.h b/XMPFiles/source/PluginHandler/ModuleUtils.h
index eedf6bf..b4c2d71 100644
--- a/XMPFiles/source/PluginHandler/ModuleUtils.h
+++ b/XMPFiles/source/PluginHandler/ModuleUtils.h
@@ -16,7 +16,7 @@
typedef HMODULE OS_ModuleRef;
#elif XMP_MacBuild
#include <CoreFoundation/CFBundle.h>
-#include <tr1/memory>
+#include <memory>
typedef CFBundleRef OS_ModuleRef;
#elif XMP_UNIXBuild
#include <tr1/memory>
diff --git a/XMPFiles/source/PluginHandler/OS_Utils_Mac.cpp b/XMPFiles/source/PluginHandler/OS_Utils_Mac.cpp
index e9c2b46..e29084e 100644
--- a/XMPFiles/source/PluginHandler/OS_Utils_Mac.cpp
+++ b/XMPFiles/source/PluginHandler/OS_Utils_Mac.cpp
@@ -267,27 +267,27 @@ bool GetResourceDataFromModule(
if ( !url.IsNull() )
{
- typedef AutoCFRef<CFDataRef> AutoCFData;
typedef AutoCFRef<CFNumberRef> AutoCFNumber;
- AutoCFData resourceData;
- SInt32 errorCode = 0;
+ typedef AutoCFRef<CFErrorRef> AutoCFError;
+ typedef AutoCFRef<CFReadStreamRef> AutoCFReadStream;
+ AutoCFError cfError;
AutoCFNumber length;
- *length = reinterpret_cast<CFNumberRef> ( ::CFURLCreatePropertyFromResource( kCFAllocatorDefault, *url, kCFURLFileLength, &errorCode ) );
- if ( !errorCode )
+ if ( ::CFURLCopyResourcePropertyForKey(*url, kCFURLFileSizeKey, &length, &(*cfError)) && !length.IsNull())
{
SInt64 sizeOfFile = 0;
success = ::CFNumberGetValue( *length, kCFNumberSInt64Type, &sizeOfFile );
+
// presumingly we don't want to load more than 2GByte at once (!)
- if ( success && sizeOfFile < std::numeric_limits<XMP_Int32>::max() )
+ if ( success && sizeOfFile != 0 && sizeOfFile < std::numeric_limits<XMP_Int32>::max() )
{
- success = ::CFURLCreateDataAndPropertiesFromResource( kCFAllocatorDefault, *url, &(*resourceData), NULL, NULL, &errorCode );
- if ( success && errorCode == 0 )
+ AutoCFReadStream readStream(::CFReadStreamCreateWithFile(kCFAllocatorDefault, *url));
+ if( *readStream != NULL && CFReadStreamOpen(*readStream) )
{
- outBuffer.resize( sizeOfFile );
- CFRange range = CFRangeMake (0, sizeOfFile );
- ::CFDataGetBytes( *resourceData, range, reinterpret_cast< UInt8 * > (&outBuffer[0]) );
- return true;
+ outBuffer.assign(sizeOfFile, NULL);
+ success = ( ::CFReadStreamRead(*readStream,reinterpret_cast< UInt8 * > (&outBuffer[0]), sizeOfFile) != -1 );
+ ::CFReadStreamClose(*readStream);
+ return success;
}
}
}
diff --git a/XMPFiles/source/PluginHandler/PluginManager.cpp b/XMPFiles/source/PluginHandler/PluginManager.cpp
index 0f47300..6bcea90 100644
--- a/XMPFiles/source/PluginHandler/PluginManager.cpp
+++ b/XMPFiles/source/PluginHandler/PluginManager.cpp
@@ -56,8 +56,11 @@ static XMPFileHandler* Plugin_MetaHandlerCTor ( FileHandlerSharedPtr handler, XM
{
XMP_Throw ( "Plugin not loaded", kXMPErr_InternalFailure );
}
-
- handler->getModule()->getPluginAPIs()->mInitializeSessionProc ( handler->getUID().c_str(), parent->GetFilePath().c_str(), (XMP_Uns32)parent->format, (XMP_Uns32)handler->getHandlerFlags(), (XMP_Uns32)parent->openFlags, &object, &error );
+
+ if( handler->getModule()->getPluginAPIs()->mInitializeSessionV2Proc )
+ handler->getModule()->getPluginAPIs()->mInitializeSessionV2Proc ( handler->getUID().c_str(), parent->GetFilePath().c_str(), (XMP_Uns32)parent->format, (XMP_Uns32)handler->getHandlerFlags(), (XMP_Uns32)parent->openFlags, &object, &error, ErrorCallbackBox( parent->errorCallback.wrapperProc, parent->errorCallback.clientProc, parent->errorCallback.context, parent->errorCallback.limit ), parent->progressTracker->GetCallbackInfo() );
+ else
+ handler->getModule()->getPluginAPIs()->mInitializeSessionProc ( handler->getUID().c_str(), parent->GetFilePath().c_str(), (XMP_Uns32)parent->format, (XMP_Uns32)handler->getHandlerFlags(), (XMP_Uns32)parent->openFlags, &object, &error );
CheckError ( error );
FileHandlerInstance* instance = new FileHandlerInstance ( object, handler, parent );
diff --git a/XMPFiles/source/PluginHandler/PluginManager.h b/XMPFiles/source/PluginHandler/PluginManager.h
index 65165b7..a7ea17d 100644
--- a/XMPFiles/source/PluginHandler/PluginManager.h
+++ b/XMPFiles/source/PluginHandler/PluginManager.h
@@ -12,23 +12,39 @@
#include "PluginHandler.h"
#include "ModuleUtils.h"
-#if XMP_WinBuild && _MSC_VER >= 1700
- // Visual Studio 2012 or newer supports C++11 (mostly)
+#include "XMPCommon/XMPCommonDefines.h"
+
+
+#if SUPPORT_SHARED_POINTERS_IN_STD
#include <memory>
#include <functional>
- #define XMP_SHARED_PTR std::shared_ptr
+#elif SUPPORT_SHARED_POINTERS_IN_TR1
+ #if XMP_WinBuild
+ #include <memory>
+ #include <functional>
+ #else
+ #include <tr1/memory>
+ #include <tr1/functional>
+ #endif
#else
- #define XMP_SHARED_PTR std::tr1::shared_ptr
+ #error "location of shared pointer stuff is unknown"
#endif
+
namespace XMP_PLUGIN
{
+#if SUPPORT_SHARED_POINTERS_IN_STD
+ using std::shared_ptr;
+#elif SUPPORT_SHARED_POINTERS_IN_TR1
+ using std::tr1::shared_ptr;
+#endif
+
typedef XMP_Uns32 XMPAtom;
typedef XMPAtom FileHandlerType;
-typedef XMP_SHARED_PTR<class Module> ModuleSharedPtr;
-typedef XMP_SHARED_PTR<class FileHandler> FileHandlerSharedPtr;
+typedef shared_ptr<class Module> ModuleSharedPtr;
+typedef shared_ptr<class FileHandler> FileHandlerSharedPtr;
class FileHandlerInstance;
typedef FileHandlerInstance* FileHandlerInstancePtr;
diff --git a/XMPFiles/source/WXMPFiles.cpp b/XMPFiles/source/WXMPFiles.cpp
index 26fdcac..8ffd214 100644
--- a/XMPFiles/source/WXMPFiles.cpp
+++ b/XMPFiles/source/WXMPFiles.cpp
@@ -201,7 +201,7 @@ void WXMPFiles_GetAssociatedResources_1 ( XMP_StringPtr filePath,
std::vector<XMP_StringPtr> ptrArray;
ptrArray.reserve ( fileCount );
for ( size_t i = 0; i < fileCount; ++i ) ptrArray.push_back ( resList[i].c_str() );
- (*SetClientStringVector) ( resourceList, ptrArray.data(), fileCount );
+ (*SetClientStringVector) ( resourceList, ptrArray.data(), static_cast<XMP_Uns32>(fileCount ));
}
XMP_EXIT
}
@@ -219,7 +219,6 @@ void WXMPFiles_IsMetadataWritable_1 ( XMP_StringPtr filePath,
XMP_EXIT
}
-
// =================================================================================================
void WXMPFiles_OpenFile_1 ( XMPFilesRef xmpObjRef,
diff --git a/XMPFiles/source/XMPFiles.cpp b/XMPFiles/source/XMPFiles.cpp
index ae8f701..db1fc8b 100644
--- a/XMPFiles/source/XMPFiles.cpp
+++ b/XMPFiles/source/XMPFiles.cpp
@@ -36,6 +36,14 @@
#include "XMPFiles/source/FileHandlers/Generic_Handler.hpp"
#endif
+#include "XMPCore/XMPCoreDefines.h"
+#if ENABLE_CPP_DOM_MODEL
+ #include "XMPCore/Interfaces/IMetadata.h"
+ #include "XMPCore/Interfaces/INodeIterator.h"
+ #include "XMPCommon/Interfaces/IUTF8String.h"
+ #include "XMPCore/Interfaces/ICoreObjectFactory.h"
+#endif
+
// =================================================================================================
/// \file XMPFiles.cpp
/// \brief High level support to access metadata in files of interest to Adobe applications.
@@ -81,12 +89,12 @@ const char * kXMPFiles_EmbeddedVersion = kXMPFiles_VersionMessage;
const char * kXMPFiles_EmbeddedCopyright = kXMPFilesName " " kXMP_CopyrightStr;
#define EMPTY_FILE_PATH ""
-#define XMP_FILES_STATIC_START try { int a;
-#define XMP_FILES_STATIC_END1(severity) a = 1; } catch ( XMP_Error & error ) { sDefaultErrorCallback.NotifyClient ( (severity), error, EMPTY_FILE_PATH ); }
-#define XMP_FILES_STATIC_END2(filePath, severity) a = 1; } catch ( XMP_Error & error ) { sDefaultErrorCallback.NotifyClient ( (severity), error, (filePath) ); }
-#define XMP_FILES_START try { int b;
-#define XMP_FILES_END1(severity) b = 1; } catch ( XMP_Error & error ) { errorCallback.NotifyClient ( (severity), error, this->filePath.c_str() ); }
-#define XMP_FILES_END2(filePath, severity) b = 1; } catch ( XMP_Error & error ) { errorCallback.NotifyClient ( (severity), error, (filePath) ); }
+#define XMP_FILES_STATIC_START try { /*int a;*/
+#define XMP_FILES_STATIC_END1(severity) /*a = 1;*/ } catch ( XMP_Error & error ) { sDefaultErrorCallback.NotifyClient ( (severity), error, EMPTY_FILE_PATH ); }
+#define XMP_FILES_STATIC_END2(filePath, severity) /*a = 1;*/ } catch ( XMP_Error & error ) { sDefaultErrorCallback.NotifyClient ( (severity), error, (filePath) ); }
+#define XMP_FILES_START try { /*int b;*/
+#define XMP_FILES_END1(severity) /*b = 1;*/ } catch ( XMP_Error & error ) { errorCallback.NotifyClient ( (severity), error, this->filePath.c_str() ); }
+#define XMP_FILES_END2(filePath, severity) /*b = 1;*/ } catch ( XMP_Error & error ) { errorCallback.NotifyClient ( (severity), error, (filePath) ); }
#define XMP_FILES_STATIC_NOTIFY_ERROR(errorCallbackPtr, filePath, severity, error) \
if ( (errorCallbackPtr) != NULL ) (errorCallbackPtr)->NotifyClient ( (severity), (error), (filePath) );
@@ -574,6 +582,7 @@ XMPFiles::GetFileModDate ( XMP_StringPtr clientPath,
dummyParent.format = handlerInfo->format;
if ( format ) *format = handlerInfo->format;
+ dummyParent.openFlags = handlerInfo->flags;
dummyParent.handler = handlerInfo->handlerCTor ( &dummyParent );
@@ -618,6 +627,64 @@ XMPFiles::GetFileModDate ( XMP_StringPtr clientPath,
/* class static */
bool
+XMPFiles::GetFileModDate ( const Common::XMPFileHandlerInfo& hdlInfo,
+ XMP_StringPtr clientPath,
+ XMP_DateTime * modDate,
+ XMP_OptionBits options /* = 0 */ )
+{
+ XMP_FILES_STATIC_START
+ Host_IO::FileMode clientMode;
+ std::string fileExt; // Used to check for excluded files.
+ bool excluded = FileIsExcluded ( clientPath, &fileExt, &clientMode, &sDefaultErrorCallback ); // ! Fills in fileExt and clientMode.
+ if ( excluded ) return false;
+
+ XMPFiles dummyParent; // GetFileModDate is static, but the handler needs a parent.
+ dummyParent.SetFilePath ( clientPath );
+ dummyParent.format = hdlInfo.format;
+ dummyParent.openFlags = hdlInfo.flags;
+ dummyParent.handler = hdlInfo.handlerCTor ( &dummyParent );
+
+ bool ok = false;
+
+ std::vector <std::string> resourceList;
+ try{
+ XMP_DateTime lastModDate;
+ XMP_DateTime junkDate;
+ if ( modDate == 0 ) modDate = &junkDate;
+ dummyParent.handler->FillAssociatedResources ( &resourceList );
+ size_t countRes = resourceList.size();
+ for ( size_t index = 0; index < countRes ; ++index ){
+ XMP_StringPtr curFilePath = resourceList[index].c_str();
+ if( Host_IO::GetFileMode ( curFilePath ) != Host_IO::kFMode_IsFile ) continue;// only interested in files
+ if (!Host_IO::GetModifyDate ( curFilePath, &lastModDate ) ) continue;
+ if ( ! ok || ( SXMPUtils::CompareDateTime ( *modDate , lastModDate ) < 0 ) )
+ {
+ *modDate = lastModDate;
+ ok = true;
+ }
+ }
+ }
+ catch(...){
+ // Fallback to the old way
+ // eventually this method would go away as
+ // soon as the implementation for
+ // GetAssociatedResources is added to all
+ // the file/Plugin Handlers
+ ok = dummyParent.handler->GetFileModDate ( modDate );
+ }
+ delete dummyParent.handler;
+ dummyParent.handler = 0;
+
+ return ok;
+ XMP_FILES_STATIC_END2 ( clientPath, kXMPErrSev_OperationFatal )
+ return false;
+
+} // XMPFiles::GetFileModDate
+
+// =================================================================================================
+
+/* class static */
+bool
XMPFiles::GetAssociatedResources (
XMP_StringPtr filePath,
std::vector<std::string> * resourceList,
@@ -661,6 +728,7 @@ XMPFiles::GetAssociatedResources (
// Fill in the format output. Call the handler to get the Associated Resources.
dummyParent.format = handlerInfo->format;
+ dummyParent.openFlags = handlerInfo->flags;
dummyParent.handler = handlerInfo->handlerCTor ( &dummyParent );
@@ -686,6 +754,53 @@ XMPFiles::GetAssociatedResources (
} // XMPFiles::GetAssociatedResources
+// =================================================================================================
+
+/* class static */
+bool
+XMPFiles::GetAssociatedResources (
+ const Common::XMPFileHandlerInfo& hdlInfo,
+ XMP_StringPtr filePath,
+ std::vector<std::string> * resourceList,
+ XMP_OptionBits options /* = 0 */ )
+{
+ XMP_FILES_STATIC_START
+ Host_IO::FileMode clientMode;
+ std::string fileExt; // Used to check for excluded files.
+ bool excluded = FileIsExcluded ( filePath, &fileExt, &clientMode, &sDefaultErrorCallback ); // ! Fills in fileExt and clientMode.
+ if ( excluded ) return false;
+
+ XMPFiles dummyParent; // GetFileModDate is static, but the handler needs a parent.
+ dummyParent.SetFilePath ( filePath );
+ dummyParent.format = hdlInfo.format;
+ dummyParent.openFlags = hdlInfo.flags;
+ dummyParent.handler = hdlInfo.handlerCTor ( &dummyParent );
+
+ try {
+ dummyParent.handler->FillAssociatedResources ( resourceList );
+ } catch ( XMP_Error& error ) {
+ if ( error.GetID() == kXMPErr_Unimplemented ) {
+ XMP_FILES_STATIC_NOTIFY_ERROR ( &sDefaultErrorCallback, filePath, kXMPErrSev_Recoverable, error );
+ return false;
+ } else {
+ throw;
+ }
+ }
+ XMP_Assert ( ! resourceList->empty() );
+
+ delete dummyParent.handler;
+ dummyParent.handler = 0;
+
+ return true;
+
+ XMP_FILES_STATIC_END2 ( filePath, kXMPErrSev_OperationFatal )
+ return false;
+
+} // XMPFiles::GetAssociatedResources
+
+// =================================================================================================
+
+/* class static */
bool
XMPFiles::IsMetadataWritable (
XMP_StringPtr filePath,
@@ -732,6 +847,7 @@ XMPFiles::IsMetadataWritable (
dummyParent.format = handlerInfo->format;
+ dummyParent.openFlags = handlerInfo->flags;
dummyParent.handler = handlerInfo->handlerCTor ( &dummyParent );
// We don't require any of the files to be opened at this point.
@@ -759,6 +875,58 @@ XMPFiles::IsMetadataWritable (
return true;
} // XMPFiles::IsMetadataWritable
+// =================================================================================================
+
+/* class static */
+bool
+XMPFiles::IsMetadataWritable (
+ const Common::XMPFileHandlerInfo& hdlInfo,
+ XMP_StringPtr filePath,
+ XMP_Bool * writable,
+ XMP_OptionBits options /* = 0 */ )
+{
+ XMP_FILES_STATIC_START
+ Host_IO::FileMode clientMode;
+ std::string fileExt; // Used to check for excluded files.
+ bool excluded = FileIsExcluded ( filePath, &fileExt, &clientMode, &sDefaultErrorCallback ); // ! Fills in fileExt and clientMode.
+ if ( excluded ) return false;
+
+ if ( writable == 0 ) {
+ XMP_Throw("Boolean parameter is required for IsMetadataWritable() API.", kXMPErr_BadParam);
+ } else {
+ *writable = kXMP_Bool_False;
+ }
+
+ XMPFiles dummyParent; // GetFileModDate is static, but the handler needs a parent.
+ dummyParent.SetFilePath ( filePath );
+ dummyParent.format = hdlInfo.format;
+ dummyParent.openFlags = hdlInfo.flags;
+ dummyParent.handler = hdlInfo.handlerCTor ( &dummyParent );
+
+ // We don't require any of the files to be opened at this point.
+ // Also, if We don't close them then this will be a problem for embedded handlers because we will be checking
+ // write permission on the same file which could be open (in some mode) already.
+ CloseLocalFile(&dummyParent);
+
+ try {
+ *writable = ConvertBoolToXMP_Bool( dummyParent.handler->IsMetadataWritable() );
+ } catch ( XMP_Error& error ) {
+ delete dummyParent.handler;
+ dummyParent.handler = 0;
+ if ( error.GetID() == kXMPErr_Unimplemented ) {
+ XMP_FILES_STATIC_NOTIFY_ERROR ( &sDefaultErrorCallback, filePath, kXMPErrSev_Recoverable, error );
+ return false;
+ } else {
+ throw;
+ }
+ }
+ if ( dummyParent.handler ) {
+ delete dummyParent.handler;
+ dummyParent.handler = 0;
+ }
+ XMP_FILES_STATIC_END2 ( filePath, kXMPErrSev_OperationFatal )
+ return true;
+} // XMPFiles::IsMetadataWritable
// =================================================================================================
@@ -1086,7 +1254,7 @@ XMPFiles::CloseFile ( XMP_OptionBits closeFlags /* = 0 */ )
XMP_Throw ( "XMPFiles::CloseFile - Safe update not supported", kXMPErr_Unavailable );
}
- if ( (this->progressTracker != 0) && this->UsesLocalIO() ) {
+ if ( (this->progressTracker != 0) && this->UsesLocalIO() && this->ioRef != NULL ) {
XMPFiles_IO * localFile = (XMPFiles_IO*)this->ioRef;
localFile->SetProgressTracker ( this->progressTracker );
}
@@ -1306,7 +1474,7 @@ XMPFiles::GetXMP ( SXMPMeta * xmpObj /* = 0 */,
if ( xmpObj != 0 ) {
// ! Don't use Clone, that replaces the internal ref in the local xmpObj, leaving the client unchanged!
xmpObj->Erase();
- SXMPUtils::ApplyTemplate ( xmpObj, this->handler->xmpObj, applyTemplateFlags );
+ SXMPUtils::ApplyTemplate(xmpObj, this->handler->xmpObj, applyTemplateFlags);
}
if ( xmpPacket != 0 ) *xmpPacket = this->handler->xmpPacket.c_str();
if ( xmpPacketLen != 0 ) *xmpPacketLen = (XMP_StringLen) this->handler->xmpPacket.size();
@@ -1322,9 +1490,8 @@ XMPFiles::GetXMP ( SXMPMeta * xmpObj /* = 0 */,
if ( xmpObj != 0 ) *xmpObj = this->handler->xmpObj.Clone();
#else
if ( xmpObj != 0 ) {
- // ! Don't use Clone, that replaces the internal ref in the local xmpObj, leaving the client unchanged!
xmpObj->Erase();
- SXMPUtils::ApplyTemplate ( xmpObj, this->handler->xmpObj, applyTemplateFlags );
+ SXMPUtils::ApplyTemplate(xmpObj, this->handler->xmpObj, applyTemplateFlags);
}
#endif
@@ -1482,6 +1649,7 @@ XMPFiles::CanPutXMP ( XMP_StringPtr xmpPacket,
} // XMPFiles::CanPutXMP
+
// =================================================================================================
/* class-static */
@@ -1513,6 +1681,11 @@ XMPFiles::SetProgressCallback ( const XMP_ProgressTracker::CallbackInfo & cbInfo
if ( cbInfo.clientProc != 0 ) {
this->progressTracker = new XMP_ProgressTracker ( cbInfo );
+ if ( this->handler != 0 ) { // Provided to support ProgressTracker in Plugins
+ XMP_ProgressTracker::CallbackInfo * callbackInfo = new XMP_ProgressTracker::CallbackInfo(cbInfo);
+ this->handler->SetProgressCallback( callbackInfo ) ;
+ delete callbackInfo;
+ }
}
XMP_FILES_END1 ( kXMPErrSev_OperationFatal )
@@ -1559,6 +1732,8 @@ void XMPFiles::SetErrorCallback ( XMPFiles_ErrorCallbackWrapper wrapperProc,
this->errorCallback.clientProc = clientProc;
this->errorCallback.context = context;
this->errorCallback.limit = limit;
+ if ( this->handler != 0 ) // Provided to support ErrroCallback in Plugins
+ this->handler->SetErrorCallback( ErrorCallbackBox( errorCallback.wrapperProc, errorCallback.clientProc, errorCallback.context, errorCallback.limit ) );
XMP_FILES_END1 ( kXMPErrSev_OperationFatal )
} // SetErrorCallback
@@ -1571,6 +1746,8 @@ void XMPFiles::ResetErrorCallbackLimit ( XMP_Uns32 limit ) {
this->errorCallback.limit = limit;
this->errorCallback.notifications = 0;
this->errorCallback.topSeverity = kXMPErrSev_Recoverable;
+ if ( this->handler != 0 ) // Provided to support ErrroCallback in Plugins
+ this->handler->SetErrorCallback( ErrorCallbackBox( errorCallback.wrapperProc, errorCallback.clientProc, errorCallback.context, errorCallback.limit ) );
XMP_FILES_END1 ( kXMPErrSev_OperationFatal )
} // ResetErrorCallbackLimit
diff --git a/XMPFiles/source/XMPFiles.hpp b/XMPFiles/source/XMPFiles.hpp
index e3ecb8b..2cb15aa 100644
--- a/XMPFiles/source/XMPFiles.hpp
+++ b/XMPFiles/source/XMPFiles.hpp
@@ -173,6 +173,12 @@ public:
XMP_FileFormat * format = 0,
XMP_OptionBits options = 0);
+ static bool GetFileModDate(
+ const Common::XMPFileHandlerInfo& hdlInfo,
+ XMP_StringPtr clientPath,
+ XMP_DateTime * modDate,
+ XMP_OptionBits options = 0 );
+
static XMP_FileFormat CheckFileFormat(XMP_StringPtr filePath);
static XMP_FileFormat CheckPackageFormat(XMP_StringPtr folderPath);
@@ -182,12 +188,24 @@ public:
XMP_FileFormat format = kXMP_UnknownFile ,
XMP_OptionBits options = 0 );
+ static bool GetAssociatedResources (
+ const Common::XMPFileHandlerInfo& hdlInfo,
+ XMP_StringPtr filePath,
+ std::vector<std::string> * resourceList,
+ XMP_OptionBits options = 0 );
+
static bool IsMetadataWritable (
XMP_StringPtr filePath,
XMP_Bool * writable,
XMP_FileFormat format = kXMP_UnknownFile ,
XMP_OptionBits options = 0 );
+ static bool IsMetadataWritable (
+ const Common::XMPFileHandlerInfo& hdlInfo,
+ XMP_StringPtr filePath,
+ XMP_Bool * writable,
+ XMP_OptionBits options = 0 );
+
static void SetDefaultProgressCallback(const XMP_ProgressTracker::CallbackInfo & cbInfo);
static void SetDefaultErrorCallback(XMPFiles_ErrorCallbackWrapper wrapperProc,
XMPFiles_ErrorCallbackProc clientProc,
@@ -225,7 +243,6 @@ public:
bool CanPutXMP(const SXMPMeta & xmpObj);
bool CanPutXMP(XMP_StringPtr xmpPacket, XMP_StringLen xmpPacketLen = kXMP_UseNullTermination);
-
void SetAbortProc(XMP_AbortProc abortProc, void * abortArg);
void SetProgressCallback(const XMP_ProgressTracker::CallbackInfo & cbInfo);
diff --git a/XMPFiles/source/XMPFiles_Impl.cpp b/XMPFiles/source/XMPFiles_Impl.cpp
index 68fa99f..5914560 100644
--- a/XMPFiles/source/XMPFiles_Impl.cpp
+++ b/XMPFiles/source/XMPFiles_Impl.cpp
@@ -97,6 +97,8 @@ const FileExtMapping kFileExtMap[] =
{ "m4v", kXMP_MPEG4File },
{ "m4a", kXMP_MPEG4File },
{ "f4v", kXMP_MPEG4File },
+ { "3gp", kXMP_MPEG4File },
+ { "3g2", kXMP_MPEG4File },
{ "ses", kXMP_SESFile },
{ "cel", kXMP_CELFile },
{ "wma", kXMP_WMAVFile },
@@ -123,6 +125,7 @@ const FileExtMapping kFileExtMap[] =
{ "xml", kXMP_XMLFile },
{ "txt", kXMP_TextFile },
{ "text", kXMP_TextFile },
+ { "svg", kXMP_SVGFile },
{ "psd", kXMP_PhotoshopFile },
{ "ai", kXMP_IllustratorFile },
@@ -146,10 +149,8 @@ const FileExtMapping kFileExtMap[] =
// Files known to contain XMP but have no smart handling, here or elsewhere.
const char * kKnownScannedFiles[] =
- { "gif", // GIF, public format but no smart handler.
- "ai", // Illustrator, actually a PDF file.
+ { "ai", // Illustrator, actually a PDF file.
"ait", // Illustrator template, actually a PDF file.
- "svg", // SVG, an XML file.
"aet", // After Effects template project file.
"ffx", // After Effects filter preset file.
"aep", // After Effects project file in proprietary format
@@ -516,4 +517,4 @@ void XMPFileHandler::NotifyClient(GenericErrorCallback * errCBptr, XMP_ErrorSeve
throw error;
}
}
-// =================================================================================================
+// ================================================================================================= \ No newline at end of file
diff --git a/XMPFiles/source/XMPFiles_Impl.hpp b/XMPFiles/source/XMPFiles_Impl.hpp
index 72d82e7..b70d88c 100644
--- a/XMPFiles/source/XMPFiles_Impl.hpp
+++ b/XMPFiles/source/XMPFiles_Impl.hpp
@@ -279,7 +279,7 @@ public:
#define DefaultCTorPresets \
handlerFlags(0), stdCharForm(kXMP_CharUnknown), \
- containsXMP(false), processedXMP(false), needsUpdate(false)
+ containsXMP(false), processedXMP(false), needsUpdate(false), needsArtUpdate (false)
XMPFileHandler() : parent(0), DefaultCTorPresets {};
XMPFileHandler (XMPFiles * _parent) : parent(_parent), DefaultCTorPresets
@@ -287,7 +287,7 @@ public:
xmpObj.SetErrorCallback(ErrorCallbackForXMPMeta, &parent->errorCallback);
};
- virtual ~XMPFileHandler() {}; // ! The specific handler is responsible for tnailInfo.tnailImage.
+ virtual ~XMPFileHandler() {}; // ! The specific handler is responsible for tnailInfo.tnailImage or AlbumArt.
virtual bool GetFileModDate ( XMP_DateTime * modDate ); // The default implementation is for embedding handlers.
virtual void FillMetadataFiles ( std::vector<std::string> * metadataFiles );
@@ -296,12 +296,17 @@ public:
virtual void CacheFileData() = 0;
virtual void ProcessXMP(); // The default implementation just parses the XMP.
-
virtual XMP_OptionBits GetSerializeOptions(); // The default is compact.
virtual void UpdateFile ( bool doSafeUpdate ) = 0;
virtual void WriteTempFile ( XMP_IO* tempRef ) = 0;
+ // Currently, FileHandleInstance needs to implement Error and progress callback because of plugins,
+ // Rest handlers need not to implement them because handlers can access them parent
+ virtual void SetErrorCallback ( ErrorCallbackBox errorCallbackBox ) {}
+ virtual void SetProgressCallback ( XMP_ProgressTracker::CallbackInfo * progCBInfoPtr ) {}
+
+
static void NotifyClient(GenericErrorCallback * errCBptr, XMP_ErrorSeverity severity, XMP_Error & error);
// ! Leave the data members public so common code can see them.
@@ -313,11 +318,12 @@ public:
bool containsXMP; // True if the file has XMP or PutXMP has been called.
bool processedXMP; // True if the XMP is parsed and reconciled.
bool needsUpdate; // True if the file needs to be updated.
+
+ bool needsArtUpdate; // True if Album arts need to be updated.
- XMP_PacketInfo packetInfo; // ! This is always info about the packet in the file, if any!
- std::string xmpPacket; // ! This is the current XMP, updated by XMPFiles::PutXMP.
- SXMPMeta xmpObj;
-
+ XMP_PacketInfo packetInfo; // ! This is always info about the packet in the file, if any!
+ std::string xmpPacket; // ! This is the current XMP, updated by XMPFiles::PutXMP.
+ SXMPMeta xmpObj;
}; // XMPFileHandler
typedef XMPFileHandler * (* XMPFileHandlerCTor) ( XMPFiles * parent );
diff --git a/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux/PDF_Handler.xpi b/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux/PDF_Handler.xpi
index a001d6b..b97a3d0 100644..100755
--- a/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux/PDF_Handler.xpi
+++ b/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux/PDF_Handler.xpi
Binary files differ
diff --git a/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux/libMiniPDFL.so b/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux/libMiniPDFL.so
index f1c0ca0..12efe08 100644..100755
--- a/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux/libMiniPDFL.so
+++ b/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux/libMiniPDFL.so
Binary files differ
diff --git a/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux_x64/PDF_Handler.xpi b/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux_x64/PDF_Handler.xpi
index 983da8b..acb1ca3 100644..100755
--- a/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux_x64/PDF_Handler.xpi
+++ b/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux_x64/PDF_Handler.xpi
Binary files differ
diff --git a/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux_x64/libMiniPDFL.so b/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux_x64/libMiniPDFL.so
index 3cbe555..d99da1a 100644..100755
--- a/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux_x64/libMiniPDFL.so
+++ b/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux_x64/libMiniPDFL.so
Binary files differ
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/PDF_Handler b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/PDF_Handler
index f561ba7..5bace6b 120000..100755
--- a/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/PDF_Handler
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/PDF_Handler
Binary files differ
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Resources b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Resources
deleted file mode 120000
index 953ee36..0000000
--- a/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Resources
+++ /dev/null
@@ -1 +0,0 @@
-Versions/Current/Resources \ No newline at end of file
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Resources/Info.plist b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Resources/Info.plist
new file mode 100755
index 0000000..5f9f27b
--- /dev/null
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Resources/Info.plist
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>BuildMachineOSBuild</key>
+ <string>12C60</string>
+ <key>CFBundleExecutable</key>
+ <string>PDF_Handler</string>
+ <key>CFBundleGetInfoString</key>
+ <string>PDF Handler 1.0, Copyright (c) 2002, Adobe Systems Incorporated</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.xmp.PDF_Handler</string>
+ <key>CFBundleName</key>
+ <string>PDF_Handler</string>
+ <key>CFBundlePackageType</key>
+ <string>FMWK</string>
+ <key>CFBundleShortVersionString</key>
+ <string>PDF Handler 1.0</string>
+ <key>CFBundleSignature</key>
+ <string>XMP </string>
+ <key>Configuration</key>
+ <string>Release</string>
+ <key>DTCompiler</key>
+ <string>com.apple.compilers.llvm.clang.1_0</string>
+ <key>DTPlatformBuild</key>
+ <string>4H1003</string>
+ <key>DTPlatformVersion</key>
+ <string>GM</string>
+ <key>DTSDKBuild</key>
+ <string>11E52</string>
+ <key>DTSDKName</key>
+ <string>macosx10.7</string>
+ <key>DTXcode</key>
+ <string>0462</string>
+ <key>DTXcodeBuild</key>
+ <string>4H1003</string>
+ <key>FileVersion</key>
+ <string>1.0</string>
+ <key>ProductName</key>
+ <string>PDF Handler</string>
+ <key>ProductVersion</key>
+ <string>1.0</string>
+</dict>
+</plist>
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Resources/MODULE_IDENTIFIER.txt b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Resources/MODULE_IDENTIFIER.txt
new file mode 100755
index 0000000..f7feb37
--- /dev/null
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Resources/MODULE_IDENTIFIER.txt
@@ -0,0 +1 @@
+com.adobe.XMP.plugins.MiniPDFL \ No newline at end of file
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Resources/MiniPDFL.framework/MiniPDFL b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Resources/MiniPDFL.framework/MiniPDFL
new file mode 100755
index 0000000..03671e3
--- /dev/null
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Resources/MiniPDFL.framework/MiniPDFL
Binary files differ
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/A/MiniPDFL b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/A/MiniPDFL
new file mode 100755
index 0000000..03671e3
--- /dev/null
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/A/MiniPDFL
Binary files differ
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/Resources/Info.plist b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/A/Resources/Info.plist
index a6802d8..a6802d8 100755
--- a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/Resources/Info.plist
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/A/Resources/Info.plist
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/_CodeSignature/CodeResources b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/A/_CodeSignature/CodeResources
index 1a6dbbe..1a6dbbe 100755
--- a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/_CodeSignature/CodeResources
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/A/_CodeSignature/CodeResources
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/Current/MiniPDFL b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/Current/MiniPDFL
new file mode 100755
index 0000000..03671e3
--- /dev/null
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/Current/MiniPDFL
Binary files differ
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/Current/Resources/Info.plist b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/Current/Resources/Info.plist
new file mode 100755
index 0000000..a6802d8
--- /dev/null
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/Current/Resources/Info.plist
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>AcrobatCL</key>
+ <string>448391</string>
+ <key>BuildDate</key>
+ <string>0000/00/00-00:00:00</string>
+ <key>BuildID</key>
+ <string>1</string>
+ <key>BuildVersion</key>
+ <string>1.00000</string>
+ <key>CFBundleGetInfoString</key>
+ <string>MiniPDFL 1.0.0.1, © 1987-2012 Adobe Systems Incorporated.
+ All Rights Reserved.</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.adobe.PDFL</string>
+ <key>CFBundleName</key>
+ <string>MiniPDFL</string>
+ <key>CFBundlePackageType</key>
+ <string>FMWK</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0.0</string>
+ <key>CFBundleVersion</key>
+ <string>1.0.0.1</string>
+ <key>PDFL_IPID</key>
+ <string>&lt;AdobeIP#0000583&gt;</string>
+ <key>ReleaseCL</key>
+ <string>0</string>
+ <key>CFBundleExecutable</key>
+ <string>MiniPDFL</string>
+</dict>
+</plist>
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/Current/_CodeSignature/CodeResources b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/Current/_CodeSignature/CodeResources
new file mode 100755
index 0000000..1a6dbbe
--- /dev/null
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/Current/_CodeSignature/CodeResources
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>files</key>
+ <dict>
+ <key>Resources/Info.plist</key>
+ <data>
+ KBfTLqg0rGVKlSJbAITSqWlk+rA=
+ </data>
+ </dict>
+ <key>rules</key>
+ <dict>
+ <key>^Resources/</key>
+ <true/>
+ <key>^Resources/.*\.lproj/</key>
+ <dict>
+ <key>optional</key>
+ <true/>
+ <key>weight</key>
+ <real>1000</real>
+ </dict>
+ <key>^Resources/.*\.lproj/locversion.plist$</key>
+ <dict>
+ <key>omit</key>
+ <true/>
+ <key>weight</key>
+ <real>1100</real>
+ </dict>
+ <key>^version.plist$</key>
+ <true/>
+ </dict>
+</dict>
+</plist>
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Resources/XMPPLUGINUIDS.txt b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Resources/XMPPLUGINUIDS.txt
new file mode 100755
index 0000000..4b1d4ec
--- /dev/null
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Resources/XMPPLUGINUIDS.txt
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PluginResource Architecture="x86">
+ <Handler
+ Name="adobe.coretech.xmp.minipdfl"
+ Version="1.00"
+ HandlerType="OwningHandler"
+ >
+ <CheckFormat
+ Offset="0"
+ Length="4"
+ ByteSeq="%PDF"
+ />
+ <Extensions>
+ <Extension Name="pdf" />
+ <Extension Name="pdfl" />
+ </Extensions>
+ <HandlerFlags>
+ <HandlerFlag Name="kXMPFiles_CanInjectXMP" />
+ <HandlerFlag Name="kXMPFiles_CanExpand" />
+ <HandlerFlag Name="kXMPFiles_CanRewrite" />
+ <HandlerFlag Name="kXMPFiles_AllowsOnlyXMP" />
+ <HandlerFlag Name="kXMPFiles_ReturnsRawPacket" />
+ <HandlerFlag Name="kXMPFiles_HandlerOwnsFile" />
+ <HandlerFlag Name="kXMPFiles_AllowsSafeUpdate" />
+ <HandlerFlag Name="kXMPFiles_NeedsPreloading" />
+ </HandlerFlags>
+ <SerializeOptions>
+ <SerializeOption Name="kXMP_OmitPacketWrapper" />
+ </SerializeOptions>
+ </Handler>
+</PluginResource>
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/MiniPDFL b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/MiniPDFL
index 1987270..03671e3 120000..100755
--- a/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/MiniPDFL
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/MiniPDFL
Binary files differ
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/Current b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/Current
deleted file mode 120000
index 8c7e5a6..0000000
--- a/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/Current
+++ /dev/null
@@ -1 +0,0 @@
-A \ No newline at end of file
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/Current/MiniPDFL b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/Current/MiniPDFL
new file mode 100755
index 0000000..03671e3
--- /dev/null
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/Current/MiniPDFL
Binary files differ
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/Current/Resources/Info.plist b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/Current/Resources/Info.plist
new file mode 100755
index 0000000..a6802d8
--- /dev/null
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/Current/Resources/Info.plist
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>AcrobatCL</key>
+ <string>448391</string>
+ <key>BuildDate</key>
+ <string>0000/00/00-00:00:00</string>
+ <key>BuildID</key>
+ <string>1</string>
+ <key>BuildVersion</key>
+ <string>1.00000</string>
+ <key>CFBundleGetInfoString</key>
+ <string>MiniPDFL 1.0.0.1, © 1987-2012 Adobe Systems Incorporated.
+ All Rights Reserved.</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.adobe.PDFL</string>
+ <key>CFBundleName</key>
+ <string>MiniPDFL</string>
+ <key>CFBundlePackageType</key>
+ <string>FMWK</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0.0</string>
+ <key>CFBundleVersion</key>
+ <string>1.0.0.1</string>
+ <key>PDFL_IPID</key>
+ <string>&lt;AdobeIP#0000583&gt;</string>
+ <key>ReleaseCL</key>
+ <string>0</string>
+ <key>CFBundleExecutable</key>
+ <string>MiniPDFL</string>
+</dict>
+</plist>
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/Current/_CodeSignature/CodeResources b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/Current/_CodeSignature/CodeResources
new file mode 100755
index 0000000..1a6dbbe
--- /dev/null
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/Current/_CodeSignature/CodeResources
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>files</key>
+ <dict>
+ <key>Resources/Info.plist</key>
+ <data>
+ KBfTLqg0rGVKlSJbAITSqWlk+rA=
+ </data>
+ </dict>
+ <key>rules</key>
+ <dict>
+ <key>^Resources/</key>
+ <true/>
+ <key>^Resources/.*\.lproj/</key>
+ <dict>
+ <key>optional</key>
+ <true/>
+ <key>weight</key>
+ <real>1000</real>
+ </dict>
+ <key>^Resources/.*\.lproj/locversion.plist$</key>
+ <dict>
+ <key>omit</key>
+ <true/>
+ <key>weight</key>
+ <real>1100</real>
+ </dict>
+ <key>^version.plist$</key>
+ <true/>
+ </dict>
+</dict>
+</plist>
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current
deleted file mode 120000
index 8c7e5a6..0000000
--- a/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current
+++ /dev/null
@@ -1 +0,0 @@
-A \ No newline at end of file
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/PDF_Handler b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/PDF_Handler
new file mode 100755
index 0000000..5bace6b
--- /dev/null
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/PDF_Handler
Binary files differ
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/Resources/Info.plist b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/Resources/Info.plist
new file mode 100755
index 0000000..5f9f27b
--- /dev/null
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/Resources/Info.plist
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>BuildMachineOSBuild</key>
+ <string>12C60</string>
+ <key>CFBundleExecutable</key>
+ <string>PDF_Handler</string>
+ <key>CFBundleGetInfoString</key>
+ <string>PDF Handler 1.0, Copyright (c) 2002, Adobe Systems Incorporated</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.xmp.PDF_Handler</string>
+ <key>CFBundleName</key>
+ <string>PDF_Handler</string>
+ <key>CFBundlePackageType</key>
+ <string>FMWK</string>
+ <key>CFBundleShortVersionString</key>
+ <string>PDF Handler 1.0</string>
+ <key>CFBundleSignature</key>
+ <string>XMP </string>
+ <key>Configuration</key>
+ <string>Release</string>
+ <key>DTCompiler</key>
+ <string>com.apple.compilers.llvm.clang.1_0</string>
+ <key>DTPlatformBuild</key>
+ <string>4H1003</string>
+ <key>DTPlatformVersion</key>
+ <string>GM</string>
+ <key>DTSDKBuild</key>
+ <string>11E52</string>
+ <key>DTSDKName</key>
+ <string>macosx10.7</string>
+ <key>DTXcode</key>
+ <string>0462</string>
+ <key>DTXcodeBuild</key>
+ <string>4H1003</string>
+ <key>FileVersion</key>
+ <string>1.0</string>
+ <key>ProductName</key>
+ <string>PDF Handler</string>
+ <key>ProductVersion</key>
+ <string>1.0</string>
+</dict>
+</plist>
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/Resources/MODULE_IDENTIFIER.txt b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/Resources/MODULE_IDENTIFIER.txt
new file mode 100755
index 0000000..f7feb37
--- /dev/null
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/Resources/MODULE_IDENTIFIER.txt
@@ -0,0 +1 @@
+com.adobe.XMP.plugins.MiniPDFL \ No newline at end of file
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/MiniPDFL b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/MiniPDFL
new file mode 100755
index 0000000..03671e3
--- /dev/null
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/MiniPDFL
Binary files differ
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/A/MiniPDFL b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/A/MiniPDFL
new file mode 100755
index 0000000..03671e3
--- /dev/null
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/A/MiniPDFL
Binary files differ
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/A/Resources/Info.plist b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/A/Resources/Info.plist
new file mode 100755
index 0000000..a6802d8
--- /dev/null
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/A/Resources/Info.plist
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>AcrobatCL</key>
+ <string>448391</string>
+ <key>BuildDate</key>
+ <string>0000/00/00-00:00:00</string>
+ <key>BuildID</key>
+ <string>1</string>
+ <key>BuildVersion</key>
+ <string>1.00000</string>
+ <key>CFBundleGetInfoString</key>
+ <string>MiniPDFL 1.0.0.1, © 1987-2012 Adobe Systems Incorporated.
+ All Rights Reserved.</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.adobe.PDFL</string>
+ <key>CFBundleName</key>
+ <string>MiniPDFL</string>
+ <key>CFBundlePackageType</key>
+ <string>FMWK</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0.0</string>
+ <key>CFBundleVersion</key>
+ <string>1.0.0.1</string>
+ <key>PDFL_IPID</key>
+ <string>&lt;AdobeIP#0000583&gt;</string>
+ <key>ReleaseCL</key>
+ <string>0</string>
+ <key>CFBundleExecutable</key>
+ <string>MiniPDFL</string>
+</dict>
+</plist>
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/A/_CodeSignature/CodeResources b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/A/_CodeSignature/CodeResources
new file mode 100755
index 0000000..1a6dbbe
--- /dev/null
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/A/_CodeSignature/CodeResources
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>files</key>
+ <dict>
+ <key>Resources/Info.plist</key>
+ <data>
+ KBfTLqg0rGVKlSJbAITSqWlk+rA=
+ </data>
+ </dict>
+ <key>rules</key>
+ <dict>
+ <key>^Resources/</key>
+ <true/>
+ <key>^Resources/.*\.lproj/</key>
+ <dict>
+ <key>optional</key>
+ <true/>
+ <key>weight</key>
+ <real>1000</real>
+ </dict>
+ <key>^Resources/.*\.lproj/locversion.plist$</key>
+ <dict>
+ <key>omit</key>
+ <true/>
+ <key>weight</key>
+ <real>1100</real>
+ </dict>
+ <key>^version.plist$</key>
+ <true/>
+ </dict>
+</dict>
+</plist>
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/Current/MiniPDFL b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/Current/MiniPDFL
new file mode 100755
index 0000000..03671e3
--- /dev/null
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/Current/MiniPDFL
Binary files differ
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/Current/Resources/Info.plist b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/Current/Resources/Info.plist
new file mode 100755
index 0000000..a6802d8
--- /dev/null
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/Current/Resources/Info.plist
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>AcrobatCL</key>
+ <string>448391</string>
+ <key>BuildDate</key>
+ <string>0000/00/00-00:00:00</string>
+ <key>BuildID</key>
+ <string>1</string>
+ <key>BuildVersion</key>
+ <string>1.00000</string>
+ <key>CFBundleGetInfoString</key>
+ <string>MiniPDFL 1.0.0.1, © 1987-2012 Adobe Systems Incorporated.
+ All Rights Reserved.</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.adobe.PDFL</string>
+ <key>CFBundleName</key>
+ <string>MiniPDFL</string>
+ <key>CFBundlePackageType</key>
+ <string>FMWK</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0.0</string>
+ <key>CFBundleVersion</key>
+ <string>1.0.0.1</string>
+ <key>PDFL_IPID</key>
+ <string>&lt;AdobeIP#0000583&gt;</string>
+ <key>ReleaseCL</key>
+ <string>0</string>
+ <key>CFBundleExecutable</key>
+ <string>MiniPDFL</string>
+</dict>
+</plist>
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/Current/_CodeSignature/CodeResources b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/Current/_CodeSignature/CodeResources
new file mode 100755
index 0000000..1a6dbbe
--- /dev/null
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/Current/_CodeSignature/CodeResources
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>files</key>
+ <dict>
+ <key>Resources/Info.plist</key>
+ <data>
+ KBfTLqg0rGVKlSJbAITSqWlk+rA=
+ </data>
+ </dict>
+ <key>rules</key>
+ <dict>
+ <key>^Resources/</key>
+ <true/>
+ <key>^Resources/.*\.lproj/</key>
+ <dict>
+ <key>optional</key>
+ <true/>
+ <key>weight</key>
+ <real>1000</real>
+ </dict>
+ <key>^Resources/.*\.lproj/locversion.plist$</key>
+ <dict>
+ <key>omit</key>
+ <true/>
+ <key>weight</key>
+ <real>1100</real>
+ </dict>
+ <key>^version.plist$</key>
+ <true/>
+ </dict>
+</dict>
+</plist>
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/Resources/XMPPLUGINUIDS.txt b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/Resources/XMPPLUGINUIDS.txt
new file mode 100755
index 0000000..4b1d4ec
--- /dev/null
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/Resources/XMPPLUGINUIDS.txt
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PluginResource Architecture="x86">
+ <Handler
+ Name="adobe.coretech.xmp.minipdfl"
+ Version="1.00"
+ HandlerType="OwningHandler"
+ >
+ <CheckFormat
+ Offset="0"
+ Length="4"
+ ByteSeq="%PDF"
+ />
+ <Extensions>
+ <Extension Name="pdf" />
+ <Extension Name="pdfl" />
+ </Extensions>
+ <HandlerFlags>
+ <HandlerFlag Name="kXMPFiles_CanInjectXMP" />
+ <HandlerFlag Name="kXMPFiles_CanExpand" />
+ <HandlerFlag Name="kXMPFiles_CanRewrite" />
+ <HandlerFlag Name="kXMPFiles_AllowsOnlyXMP" />
+ <HandlerFlag Name="kXMPFiles_ReturnsRawPacket" />
+ <HandlerFlag Name="kXMPFiles_HandlerOwnsFile" />
+ <HandlerFlag Name="kXMPFiles_AllowsSafeUpdate" />
+ <HandlerFlag Name="kXMPFiles_NeedsPreloading" />
+ </HandlerFlags>
+ <SerializeOptions>
+ <SerializeOption Name="kXMP_OmitPacketWrapper" />
+ </SerializeOptions>
+ </Handler>
+</PluginResource>
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/_CodeSignature/CodeResources b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/_CodeSignature/CodeResources
index 46899d4..a5c1f01 100755
--- a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/_CodeSignature/CodeResources
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel/PDF_Handler.xpi/Versions/Current/_CodeSignature/CodeResources
@@ -14,7 +14,7 @@
</data>
<key>Resources/MiniPDFL.framework/Versions/A/MiniPDFL</key>
<data>
- IClNNaLjTqAjuNGn7uH8JKs42r4=
+ RKdiJuITB2zaiRmKt9XB9MDyQYA=
</data>
<key>Resources/MiniPDFL.framework/Versions/A/Resources/Info.plist</key>
<data>
@@ -26,7 +26,7 @@
</data>
<key>Resources/XMPPLUGINUIDS.txt</key>
<data>
- y2yLBMTDcHYtCJjuYnCa1hEtl+c=
+ 9tipFnbZzgT7QqeYrIBfqqf4hZs=
</data>
</dict>
<key>rules</key>
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/PDF_Handler b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/PDF_Handler
index f561ba7..cc6dd15 120000..100755
--- a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/PDF_Handler
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/PDF_Handler
Binary files differ
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Resources b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Resources
deleted file mode 120000
index 953ee36..0000000
--- a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Resources
+++ /dev/null
@@ -1 +0,0 @@
-Versions/Current/Resources \ No newline at end of file
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Resources/Info.plist b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Resources/Info.plist
new file mode 100644
index 0000000..4e3e1e6
--- /dev/null
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Resources/Info.plist
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>BuildMachineOSBuild</key>
+ <string>15E65</string>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string>PDF_Handler</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundlePackageType</key>
+ <string>FMWK</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleSupportedPlatforms</key>
+ <array>
+ <string>MacOSX</string>
+ </array>
+ <key>CFBundleVersion</key>
+ <string></string>
+ <key>CSResourcesFileMapped</key>
+ <true/>
+ <key>DTCompiler</key>
+ <string>com.apple.compilers.llvm.clang.1_0</string>
+ <key>DTPlatformBuild</key>
+ <string>7D1014</string>
+ <key>DTPlatformVersion</key>
+ <string>GM</string>
+ <key>DTSDKBuild</key>
+ <string>15E60</string>
+ <key>DTSDKName</key>
+ <string>macosx10.11</string>
+ <key>DTXcode</key>
+ <string>0731</string>
+ <key>DTXcodeBuild</key>
+ <string>7D1014</string>
+</dict>
+</plist>
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Resources/MODULE_IDENTIFIER.txt b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Resources/MODULE_IDENTIFIER.txt
new file mode 100644
index 0000000..f7feb37
--- /dev/null
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Resources/MODULE_IDENTIFIER.txt
@@ -0,0 +1 @@
+com.adobe.XMP.plugins.MiniPDFL \ No newline at end of file
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Resources/MiniPDFL.framework/MiniPDFL b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Resources/MiniPDFL.framework/MiniPDFL
new file mode 100755
index 0000000..3daaceb
--- /dev/null
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Resources/MiniPDFL.framework/MiniPDFL
Binary files differ
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/A/MiniPDFL b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/A/MiniPDFL
new file mode 100755
index 0000000..3daaceb
--- /dev/null
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/A/MiniPDFL
Binary files differ
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/Current/MiniPDFL b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/Current/MiniPDFL
new file mode 100755
index 0000000..3daaceb
--- /dev/null
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/Current/MiniPDFL
Binary files differ
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Resources/XMPPLUGINUIDS.txt b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Resources/XMPPLUGINUIDS.txt
new file mode 100644
index 0000000..4f1d470
--- /dev/null
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Resources/XMPPLUGINUIDS.txt
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PluginResource Architecture="x64">
+ <Handler
+ Name="adobe.coretech.xmp.minipdfl"
+ Version="1.00"
+ HandlerType="OwningHandler"
+ >
+ <CheckFormat
+ Offset="0"
+ Length="4"
+ ByteSeq="%PDF"
+ />
+ <Extensions>
+ <Extension Name="pdf" />
+ <Extension Name="pdfl" />
+ </Extensions>
+ <HandlerFlags>
+ <HandlerFlag Name="kXMPFiles_CanInjectXMP" />
+ <HandlerFlag Name="kXMPFiles_CanExpand" />
+ <HandlerFlag Name="kXMPFiles_CanRewrite" />
+ <HandlerFlag Name="kXMPFiles_AllowsOnlyXMP" />
+ <HandlerFlag Name="kXMPFiles_ReturnsRawPacket" />
+ <HandlerFlag Name="kXMPFiles_HandlerOwnsFile" />
+ <HandlerFlag Name="kXMPFiles_AllowsSafeUpdate" />
+ <HandlerFlag Name="kXMPFiles_NeedsPreloading" />
+ </HandlerFlags>
+ <SerializeOptions>
+ <SerializeOption Name="kXMP_OmitPacketWrapper" />
+ </SerializeOptions>
+ </Handler>
+</PluginResource>
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/PDF_Handler b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/PDF_Handler
index f86a8f2..cc6dd15 100755
--- a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/PDF_Handler
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/PDF_Handler
Binary files differ
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/Resources/Info.plist b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/Resources/Info.plist
index 5f9f27b..4e3e1e6 100755..100644
--- a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/Resources/Info.plist
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/Resources/Info.plist
@@ -3,42 +3,38 @@
<plist version="1.0">
<dict>
<key>BuildMachineOSBuild</key>
- <string>12C60</string>
+ <string>15E65</string>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
<key>CFBundleExecutable</key>
<string>PDF_Handler</string>
- <key>CFBundleGetInfoString</key>
- <string>PDF Handler 1.0, Copyright (c) 2002, Adobe Systems Incorporated</string>
- <key>CFBundleIdentifier</key>
- <string>com.xmp.PDF_Handler</string>
- <key>CFBundleName</key>
- <string>PDF_Handler</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
- <key>CFBundleShortVersionString</key>
- <string>PDF Handler 1.0</string>
<key>CFBundleSignature</key>
- <string>XMP </string>
- <key>Configuration</key>
- <string>Release</string>
+ <string>????</string>
+ <key>CFBundleSupportedPlatforms</key>
+ <array>
+ <string>MacOSX</string>
+ </array>
+ <key>CFBundleVersion</key>
+ <string></string>
+ <key>CSResourcesFileMapped</key>
+ <true/>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
- <string>4H1003</string>
+ <string>7D1014</string>
<key>DTPlatformVersion</key>
<string>GM</string>
<key>DTSDKBuild</key>
- <string>11E52</string>
+ <string>15E60</string>
<key>DTSDKName</key>
- <string>macosx10.7</string>
+ <string>macosx10.11</string>
<key>DTXcode</key>
- <string>0462</string>
+ <string>0731</string>
<key>DTXcodeBuild</key>
- <string>4H1003</string>
- <key>FileVersion</key>
- <string>1.0</string>
- <key>ProductName</key>
- <string>PDF Handler</string>
- <key>ProductVersion</key>
- <string>1.0</string>
+ <string>7D1014</string>
</dict>
</plist>
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/Resources/MODULE_IDENTIFIER.txt b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/Resources/MODULE_IDENTIFIER.txt
index f7feb37..f7feb37 100755..100644
--- a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/Resources/MODULE_IDENTIFIER.txt
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/Resources/MODULE_IDENTIFIER.txt
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/MiniPDFL b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/MiniPDFL
index 1987270..3daaceb 120000..100755
--- a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/MiniPDFL
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/MiniPDFL
Binary files differ
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/MiniPDFL b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/MiniPDFL
index 0a7ade0..3daaceb 100755
--- a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/MiniPDFL
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/MiniPDFL
Binary files differ
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/Current b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/Current
deleted file mode 120000
index 8c7e5a6..0000000
--- a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/Current
+++ /dev/null
@@ -1 +0,0 @@
-A \ No newline at end of file
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/Current/MiniPDFL b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/Current/MiniPDFL
new file mode 100755
index 0000000..3daaceb
--- /dev/null
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/Current/MiniPDFL
Binary files differ
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/Resources/XMPPLUGINUIDS.txt b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/Resources/XMPPLUGINUIDS.txt
index 9524754..4f1d470 100755..100644
--- a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/Resources/XMPPLUGINUIDS.txt
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/A/Resources/XMPPLUGINUIDS.txt
@@ -1,31 +1,31 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<PluginResource Architecture="x64">
- <Handler
- Name="adobe.coretech.xmp.minipdfl"
- Version="1.00"
- HandlerType="OwningHandler"
- >
- <CheckFormat
- Offset="0"
- Length="4"
- ByteSeq="%PDF"
- />
- <Extensions>
- <Extension Name="pdf" />
- <Extension Name="pdfl" />
- </Extensions>
- <HandlerFlags>
- <HandlerFlag Name="kXMPFiles_CanInjectXMP" />
- <HandlerFlag Name="kXMPFiles_CanExpand" />
- <HandlerFlag Name="kXMPFiles_CanRewrite" />
- <HandlerFlag Name="kXMPFiles_AllowsOnlyXMP" />
- <HandlerFlag Name="kXMPFiles_ReturnsRawPacket" />
- <HandlerFlag Name="kXMPFiles_HandlerOwnsFile" />
- <HandlerFlag Name="kXMPFiles_AllowsSafeUpdate" />
- <HandlerFlag Name="kXMPFiles_NeedsPreloading" />
- </HandlerFlags>
- <SerializeOptions>
- <SerializeOption Name="kXMP_OmitPacketWrapper" />
- </SerializeOptions>
- </Handler>
-</PluginResource>
+<?xml version="1.0" encoding="UTF-8"?>
+<PluginResource Architecture="x64">
+ <Handler
+ Name="adobe.coretech.xmp.minipdfl"
+ Version="1.00"
+ HandlerType="OwningHandler"
+ >
+ <CheckFormat
+ Offset="0"
+ Length="4"
+ ByteSeq="%PDF"
+ />
+ <Extensions>
+ <Extension Name="pdf" />
+ <Extension Name="pdfl" />
+ </Extensions>
+ <HandlerFlags>
+ <HandlerFlag Name="kXMPFiles_CanInjectXMP" />
+ <HandlerFlag Name="kXMPFiles_CanExpand" />
+ <HandlerFlag Name="kXMPFiles_CanRewrite" />
+ <HandlerFlag Name="kXMPFiles_AllowsOnlyXMP" />
+ <HandlerFlag Name="kXMPFiles_ReturnsRawPacket" />
+ <HandlerFlag Name="kXMPFiles_HandlerOwnsFile" />
+ <HandlerFlag Name="kXMPFiles_AllowsSafeUpdate" />
+ <HandlerFlag Name="kXMPFiles_NeedsPreloading" />
+ </HandlerFlags>
+ <SerializeOptions>
+ <SerializeOption Name="kXMP_OmitPacketWrapper" />
+ </SerializeOptions>
+ </Handler>
+</PluginResource>
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/Current b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/Current
deleted file mode 120000
index 8c7e5a6..0000000
--- a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/Current
+++ /dev/null
@@ -1 +0,0 @@
-A \ No newline at end of file
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/Current/PDF_Handler b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/Current/PDF_Handler
new file mode 100755
index 0000000..cc6dd15
--- /dev/null
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/Current/PDF_Handler
Binary files differ
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/Current/Resources/Info.plist b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/Current/Resources/Info.plist
new file mode 100644
index 0000000..4e3e1e6
--- /dev/null
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/Current/Resources/Info.plist
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>BuildMachineOSBuild</key>
+ <string>15E65</string>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string>PDF_Handler</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundlePackageType</key>
+ <string>FMWK</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleSupportedPlatforms</key>
+ <array>
+ <string>MacOSX</string>
+ </array>
+ <key>CFBundleVersion</key>
+ <string></string>
+ <key>CSResourcesFileMapped</key>
+ <true/>
+ <key>DTCompiler</key>
+ <string>com.apple.compilers.llvm.clang.1_0</string>
+ <key>DTPlatformBuild</key>
+ <string>7D1014</string>
+ <key>DTPlatformVersion</key>
+ <string>GM</string>
+ <key>DTSDKBuild</key>
+ <string>15E60</string>
+ <key>DTSDKName</key>
+ <string>macosx10.11</string>
+ <key>DTXcode</key>
+ <string>0731</string>
+ <key>DTXcodeBuild</key>
+ <string>7D1014</string>
+</dict>
+</plist>
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/Current/Resources/MODULE_IDENTIFIER.txt b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/Current/Resources/MODULE_IDENTIFIER.txt
new file mode 100644
index 0000000..f7feb37
--- /dev/null
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/Current/Resources/MODULE_IDENTIFIER.txt
@@ -0,0 +1 @@
+com.adobe.XMP.plugins.MiniPDFL \ No newline at end of file
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/MiniPDFL b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/MiniPDFL
new file mode 100755
index 0000000..3daaceb
--- /dev/null
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/MiniPDFL
Binary files differ
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/A/MiniPDFL b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/A/MiniPDFL
new file mode 100755
index 0000000..3daaceb
--- /dev/null
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/A/MiniPDFL
Binary files differ
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/Current/MiniPDFL b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/Current/MiniPDFL
new file mode 100755
index 0000000..3daaceb
--- /dev/null
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/Current/MiniPDFL
Binary files differ
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/Current/Resources/XMPPLUGINUIDS.txt b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/Current/Resources/XMPPLUGINUIDS.txt
new file mode 100644
index 0000000..4f1d470
--- /dev/null
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64/PDF_Handler.xpi/Versions/Current/Resources/XMPPLUGINUIDS.txt
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PluginResource Architecture="x64">
+ <Handler
+ Name="adobe.coretech.xmp.minipdfl"
+ Version="1.00"
+ HandlerType="OwningHandler"
+ >
+ <CheckFormat
+ Offset="0"
+ Length="4"
+ ByteSeq="%PDF"
+ />
+ <Extensions>
+ <Extension Name="pdf" />
+ <Extension Name="pdfl" />
+ </Extensions>
+ <HandlerFlags>
+ <HandlerFlag Name="kXMPFiles_CanInjectXMP" />
+ <HandlerFlag Name="kXMPFiles_CanExpand" />
+ <HandlerFlag Name="kXMPFiles_CanRewrite" />
+ <HandlerFlag Name="kXMPFiles_AllowsOnlyXMP" />
+ <HandlerFlag Name="kXMPFiles_ReturnsRawPacket" />
+ <HandlerFlag Name="kXMPFiles_HandlerOwnsFile" />
+ <HandlerFlag Name="kXMPFiles_AllowsSafeUpdate" />
+ <HandlerFlag Name="kXMPFiles_NeedsPreloading" />
+ </HandlerFlags>
+ <SerializeOptions>
+ <SerializeOption Name="kXMP_OmitPacketWrapper" />
+ </SerializeOptions>
+ </Handler>
+</PluginResource>
diff --git a/XMPFilesPlugins/PDF_Handler/windows/windows/MiniPDFL.dll b/XMPFilesPlugins/PDF_Handler/windows/windows/MiniPDFL.dll
index 52f57e5..8ec81af 100644
--- a/XMPFilesPlugins/PDF_Handler/windows/windows/MiniPDFL.dll
+++ b/XMPFilesPlugins/PDF_Handler/windows/windows/MiniPDFL.dll
Binary files differ
diff --git a/XMPFilesPlugins/PDF_Handler/windows/windows/MiniPDFL.lib b/XMPFilesPlugins/PDF_Handler/windows/windows/MiniPDFL.lib
index b9f84f2..b4a83f9 100644
--- a/XMPFilesPlugins/PDF_Handler/windows/windows/MiniPDFL.lib
+++ b/XMPFilesPlugins/PDF_Handler/windows/windows/MiniPDFL.lib
Binary files differ
diff --git a/XMPFilesPlugins/PDF_Handler/windows/windows/PDF_Handler.xpi b/XMPFilesPlugins/PDF_Handler/windows/windows/PDF_Handler.xpi
index 24ee503..c4c2007 100644
--- a/XMPFilesPlugins/PDF_Handler/windows/windows/PDF_Handler.xpi
+++ b/XMPFilesPlugins/PDF_Handler/windows/windows/PDF_Handler.xpi
Binary files differ
diff --git a/XMPFilesPlugins/PDF_Handler/windows/windows_x64/MiniPDFL.dll b/XMPFilesPlugins/PDF_Handler/windows/windows_x64/MiniPDFL.dll
index b176a35..34f6407 100644
--- a/XMPFilesPlugins/PDF_Handler/windows/windows_x64/MiniPDFL.dll
+++ b/XMPFilesPlugins/PDF_Handler/windows/windows_x64/MiniPDFL.dll
Binary files differ
diff --git a/XMPFilesPlugins/PDF_Handler/windows/windows_x64/MiniPDFL.lib b/XMPFilesPlugins/PDF_Handler/windows/windows_x64/MiniPDFL.lib
index be9cdf3..d967295 100644
--- a/XMPFilesPlugins/PDF_Handler/windows/windows_x64/MiniPDFL.lib
+++ b/XMPFilesPlugins/PDF_Handler/windows/windows_x64/MiniPDFL.lib
Binary files differ
diff --git a/XMPFilesPlugins/PDF_Handler/windows/windows_x64/PDF_Handler.xpi b/XMPFilesPlugins/PDF_Handler/windows/windows_x64/PDF_Handler.xpi
index 0947fea..12ff34c 100644
--- a/XMPFilesPlugins/PDF_Handler/windows/windows_x64/PDF_Handler.xpi
+++ b/XMPFilesPlugins/PDF_Handler/windows/windows_x64/PDF_Handler.xpi
Binary files differ
diff --git a/XMPFilesPlugins/PluginTemplate/build/CMakeLists.txt b/XMPFilesPlugins/PluginTemplate/build/CMakeLists.txt
index d403202..7ab44d5 100644
--- a/XMPFilesPlugins/PluginTemplate/build/CMakeLists.txt
+++ b/XMPFilesPlugins/PluginTemplate/build/CMakeLists.txt
@@ -9,7 +9,7 @@
# ==============================================================================
# define minimum cmake version
-cmake_minimum_required(VERSION 2.8.6)
+cmake_minimum_required(VERSION 3.5.2)
SET(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "Configurations" FORCE)
# Enable folder grouping of projects in IDEs
diff --git a/XMPFilesPlugins/PluginTemplate/build/GeneratePluginTemplate_mac.sh b/XMPFilesPlugins/PluginTemplate/build/GeneratePluginTemplate_mac.sh
index 2df9075..57e7809 100755
--- a/XMPFilesPlugins/PluginTemplate/build/GeneratePluginTemplate_mac.sh
+++ b/XMPFilesPlugins/PluginTemplate/build/GeneratePluginTemplate_mac.sh
@@ -62,19 +62,16 @@ Generate
}
echo "Enter your choice:"
-echo "1. Clean All"
-echo "2. Generate PLuginTemplate 32"
-echo "3. Generate PluginTemplate 64"
-echo "4. Generate All"
+echo "1. Clean"
+echo "2. Generate PluginTemplate 64"
+
read choice
case $choice in
1) clean; break;;
-2) PLuginTemplate32;;
-3) PLuginTemplate64;;
-4) PLuginTemplate32; PLuginTemplate64;;
+2) PLuginTemplate64;;
*) echo "ERROR: Invalid Choice, Exiting"; exit 1;;
esac
diff --git a/XMPFilesPlugins/PluginTemplate/build/GeneratePluginTemplate_win.bat b/XMPFilesPlugins/PluginTemplate/build/GeneratePluginTemplate_win.bat
index f346490..8acfa57 100755
--- a/XMPFilesPlugins/PluginTemplate/build/GeneratePluginTemplate_win.bat
+++ b/XMPFilesPlugins/PluginTemplate/build/GeneratePluginTemplate_win.bat
@@ -47,9 +47,9 @@ set GENERATE_ALL=On
:32DLL
echo "Generating PluginTemplate Dynamic Win32"
-set GENERATOR=Visual Studio 11
+set GENERATOR=Visual Studio 14 2015
set BITS64=OFF
-set CMakeFolder="vc11/windows"
+set CMakeFolder="vc14/windows"
set CMake_ARCH=x86
IF "%GENERATE_ALL%"=="On" (
set NEXT_LABEL=64DLL
@@ -59,9 +59,9 @@ GOTO GenerateNow
:64DLL
echo "Generating PluginTemplate Dynamic x64"
-set GENERATOR=Visual Studio 11 Win64
+set GENERATOR=Visual Studio 14 2015 Win64
set BITS64=ON
-set CMakeFolder="vc11/windows_x64"
+set CMakeFolder="vc14/windows_x64"
set CMake_ARCH=x64
IF "%GENERATE_ALL%"=="On" (
set NEXT_LABEL=ok
@@ -94,7 +94,7 @@ exit /B 0
:CLEANALL
echo "Cleaning..."
-if exist vc11 rmdir /S /Q vc11
+if exist vc14 rmdir /S /Q vc14
echo "Done"
pause
exit /B 0
diff --git a/XMPFilesPlugins/PluginTemplate/build/README.txt b/XMPFilesPlugins/PluginTemplate/build/README.txt
index 01030b9..cfe2fbd 100644
--- a/XMPFilesPlugins/PluginTemplate/build/README.txt
+++ b/XMPFilesPlugins/PluginTemplate/build/README.txt
@@ -4,13 +4,13 @@ Windows:
1. Double Click GeneratePluginTemplate_win.bat" or run it through command prompt.
2. Enter the type of project to create
-3. The project files will be created in vc11\windows or vc11\windows_x64 folder
+3. The project files will be created in vc14\windows or vc14\windows_x64 folder
Mac:
1. Run the shell script GeneratePluginTemplate_mac.sh.
2. Enter the type of project to create
-3. The project files will be created in xcode\intel or xcode\intel_64 folder
+3. The project files will be created in xcode\intel_64 folder
Linux:
diff --git a/XMPFilesPlugins/api/source/HostAPI.h b/XMPFilesPlugins/api/source/HostAPI.h
index d94aae0..e1e8ce5 100644
--- a/XMPFilesPlugins/api/source/HostAPI.h
+++ b/XMPFilesPlugins/api/source/HostAPI.h
@@ -315,6 +315,112 @@ struct StandardHandler_API_V2
*/
typedef XMPErrorID (*GetXMPStandardHandler)( SessionRef session, XMP_FileFormat format, StringPtr path, XMP_StringPtr* xmpStr, XMP_Bool * containsXMP, WXMP_Error* wError );
GetXMPStandardHandler mGetXMPStandardHandler;
+
+ StandardHandler_API_V2( CheckFormatStandardHandler checkFormatStandardHandler, GetXMPStandardHandler getXMPStandardHandler)
+ : mCheckFormatStandardHandler( checkFormatStandardHandler )
+ , mGetXMPStandardHandler( getXMPStandardHandler ) {}
+};
+
+typedef void (* SetClientStringVectorProc) ( void * clientPtr, XMP_StringPtr * arrayPtr, XMP_Uns32 stringCount );
+typedef void * ClientStringVectorRef;
+
+struct StandardHandler_API_V3 : public StandardHandler_API_V2
+{
+
+ /** @brief Get XMP from standard file handler
+ *
+ * Call the standard file handler in order to retrieve XMP from it.
+ *
+ * @param session File handler session (referring to replacement handler)
+ * @param format The file format identifier
+ * @param path Path to the file that should be proceeded
+ * @param xmpStr Will on success contain serialized XMP Packet from the standard Handler
+ * @param containsXMP Returns true if the standard handler detected XMP
+ * @param wError WXMP_Error structure which will be filled by the API if any error occurs
+ * @param flags OpenFlags passed during opening if present
+ * @param packet Returns XMP packet already present in the file, if available
+ * @param packetInfo Returns already present XMP packet information in the file, if available
+ * @param errorCallback Points to error callback information
+ * @param progCBInfoPtr Points to the progress callback information
+ * @return kXMPErr_NoError on success otherwise error id of the failure.
+ */
+ typedef XMPErrorID (*GetXMPwithPacketStandardHandlerWOptions)( SessionRef session, XMP_FileFormat format, StringPtr path, XMP_StringPtr* xmpStr, XMP_Bool * containsXMP, WXMP_Error* wError, XMP_OptionBits flags, XMP_StringPtr *packet, XMP_PacketInfo *packetInfo, ErrorCallbackBox * errorCallback, XMP_ProgressTracker::CallbackInfo * progCBInfoPtr );
+ GetXMPwithPacketStandardHandlerWOptions mGetXMPwithPacketStandardHandlerWOptions;
+
+ /** @brief Put XMP into standard file handler
+ *
+ * Call the standard file handler in order to put XMP into it.
+ *
+ * @param session File handler session (referring to replacement handler)
+ * @param format The file format identifier
+ * @param path Path to the file that should be proceeded
+ * @param xmpStr Contains serialized XMP Packet present into the standard Handler
+ * @param wError WXMP_Error structure which will be filled by the API if any error occurs.
+ * @param flags OpenFlags passed during opening a file
+ * @param errorCallback Pointer to error callback info
+ * @param progCBInfoPtr Points to the progress callback notification information
+ * @return kXMPErr_NoError on success otherwise error id of the failure.
+ */
+ typedef XMPErrorID (*PutXMPStandardHandler)( SessionRef session, XMP_FileFormat format, StringPtr path, const XMP_StringPtr xmpStr, WXMP_Error* wError, XMP_OptionBits flags, ErrorCallbackBox * errorCallback, XMP_ProgressTracker::CallbackInfo * progCBInfoPtr );
+ PutXMPStandardHandler mPutXMPStandardHandler;
+
+ /** @brief Getting file modification date from standard file handler
+ *
+ * Call the standard file handler in order to retrieve file modification date from it.
+ *
+ * @param session File handler session (referring to replacement handler)
+ * @param format The file format identifier
+ * @param path Path to the file that should be proceeded
+ * @param modDate will contain modification date of file obtained from the standard Handler
+ * @param isSuccess Returns true if the standard handler detected file modification date
+ * @param wError WXMP_Error structure which will be filled by the API if any error occurs
+ * @param flags OpenFlags passed to XMPFile while opening a file
+ * @return kXMPErr_NoError on success otherwise error id of the failure.
+ */
+ typedef XMPErrorID (*GetFileModDateStandardHandler)( SessionRef session, XMP_FileFormat format, StringPtr path, XMP_DateTime * modDate, XMP_Bool * isSuccess, WXMP_Error* wError, XMP_OptionBits flags );
+ GetFileModDateStandardHandler mGetFileModDateStandardHandler;
+
+ /** @brief Getting associated resources from standard file handler
+ *
+ * Call the standard file handler in order to retrieve all the associated resources with a file
+ *
+ * @param session File handler session (referring to replacement handler)
+ * @param format The file format identifier
+ * @param path Path to the file that should be proceeded
+ * @param resourceList will contain resources associated with the file obtained from the standard Handler
+ * @param SetClientStringVector pointer to the plugin provided function of setting vector of strings
+ * @param wError WXMP_Error structure which will be filled by the API if any error occurs
+ * @param flags OpenFlags passed during opening a file
+ * @return kXMPErr_NoError on success otherwise error id of the failure.
+ */
+ typedef XMPErrorID( *GetAssociatedResourcesStandardHandler )( SessionRef session, XMP_FileFormat format, StringPtr path, ClientStringVectorRef resourceList, SetClientStringVectorProc SetClientStringVector, WXMP_Error* wError, XMP_OptionBits flags );
+ GetAssociatedResourcesStandardHandler mGetAssociatedResourcesStandardHandler;
+
+ /** @brief Checking whether metadata is writable or not into the file from standard file handler
+ *
+ * Call the standard file handler in order to check whether the metadata is writable or not into the file.
+ *
+ * @param session File handler session (referring to replacement handler)
+ * @param format The file format identifier
+ * @param path Path to the file that should be proceeded
+ * @param isWritable Returns true if the standard handler can write on the file.
+ * @param wError WXMP_Error structure which will be filled by the API if any error occurs
+ * @param flags OpenFlags passed during opening a file
+ * @return kXMPErr_NoError on success otherwise error id of the failure.
+ */
+ typedef XMPErrorID (*IsMetadataWritableStandardHandler)( SessionRef session, XMP_FileFormat format, StringPtr path, XMP_Bool * isWritable, WXMP_Error* wError, XMP_OptionBits flags );
+ IsMetadataWritableStandardHandler mIsMetadataWritableStandardHandler;
+
+ StandardHandler_API_V3( CheckFormatStandardHandler checkFormatStandardHandler, GetXMPStandardHandler getXMPStandardHandler,
+ GetXMPwithPacketStandardHandlerWOptions getXMPwithPacketStandardHandlerWOptions, PutXMPStandardHandler putXMPStandardHandler,
+ GetFileModDateStandardHandler getFileModDateStandardHandler, GetAssociatedResourcesStandardHandler getAssociatedResourcesStandardHandler,
+ IsMetadataWritableStandardHandler isMetadataWritableStandardHandler )
+ : StandardHandler_API_V2( checkFormatStandardHandler, getXMPStandardHandler )
+ , mGetXMPwithPacketStandardHandlerWOptions( getXMPwithPacketStandardHandlerWOptions )
+ , mPutXMPStandardHandler( putXMPStandardHandler )
+ , mGetFileModDateStandardHandler( getFileModDateStandardHandler )
+ , mGetAssociatedResourcesStandardHandler( getAssociatedResourcesStandardHandler )
+ , mIsMetadataWritableStandardHandler( isMetadataWritableStandardHandler ) { }
};
diff --git a/XMPFilesPlugins/api/source/HostAPIAccess.cpp b/XMPFilesPlugins/api/source/HostAPIAccess.cpp
index 4215b99..2a0cf78 100644
--- a/XMPFilesPlugins/api/source/HostAPIAccess.cpp
+++ b/XMPFilesPlugins/api/source/HostAPIAccess.cpp
@@ -8,10 +8,12 @@
// =================================================================================================
#include "HostAPIAccess.h"
+#include "PluginUtils.h"
#include <cstring>
#include <string>
#define TXMP_STRING_TYPE std::string
#include "XMP.hpp"
+#include "source/XMP_LibUtils.hpp"
namespace XMP_PLUGIN
{
@@ -24,7 +26,15 @@ namespace XMP_PLUGIN
static HostAPIRef sHostAPI = NULL;
static XMP_Uns32 sHostAPIVersion = 0;
-StandardHandler_API_V2* sStandardHandler_V2 = NULL;
+StandardHandler_API_V3* sStandardHandler_V3 = NULL;
+
+// No need to call it externally as would have already called during intialising a plugin
+bool SetStandardHandlerAPIAccess()
+{
+ if ( sStandardHandler_V3 == NULL )
+ sStandardHandler_V3 = (StandardHandler_API_V3 *) RequestAPISuite( "StandardHandler", 3 ) ;
+ return sStandardHandler_V3 != NULL;
+}
// ============================================================================
@@ -228,16 +238,15 @@ bool CheckAbort( SessionRef session )
// Standard file handler access
//
-
bool CheckFormatStandard( SessionRef session, XMP_FileFormat format, const StringPtr path )
{
WXMP_Error error;
XMP_Bool ret = true;
- if ( sStandardHandler_V2 == NULL )
+ if ( sStandardHandler_V3 == NULL )
{
throw XMP_Error( kXMPErr_Unavailable, "StandardHandler suite unavailable" );
}
- sStandardHandler_V2->mCheckFormatStandardHandler( session, format, path, ret, &error );
+ sStandardHandler_V3->mCheckFormatStandardHandler( session, format, path, ret, &error );
if( error.mErrorID != kXMPErr_NoError )
{
@@ -249,17 +258,22 @@ bool CheckFormatStandard( SessionRef session, XMP_FileFormat format, const Strin
// ============================================================================
-bool GetXMPStandard( SessionRef session, XMP_FileFormat format, const StringPtr path, std::string& xmpStr, bool* containsXMP )
+bool GetXMPStandard( SessionRef session, XMP_FileFormat format, const StringPtr path, std::string& xmpStr, bool* containsXMP , XMP_OptionBits flags /*= NULL*/, std::string *packet /*= NULL*/ , XMP_PacketInfo *packetInfo /*= NULL*/, ErrorCallbackInfo * errorCallback /*= NULL*/, XMP_ProgressTracker::CallbackInfo * progCBInfoPtr /*= NULL*/ )
{
WXMP_Error error;
bool ret = true;
XMP_StringPtr outXmp= NULL;
XMP_Bool cXMP = kXMP_Bool_False;
- if ( sStandardHandler_V2 == NULL )
+ if ( sStandardHandler_V3 == NULL )
{
throw XMP_Error( kXMPErr_Unavailable, "StandardHandler suite unavailable" );
}
- sStandardHandler_V2->mGetXMPStandardHandler( session, format, path, &outXmp, &cXMP, &error );
+
+ XMP_StringPtr inXMP = NULL;
+ ErrorCallbackBox * errorCallbackBox = NULL;
+ if( errorCallback != NULL && errorCallback->wrapperProc != 0 )
+ errorCallbackBox = new ErrorCallbackBox( errorCallback->wrapperProc, errorCallback->clientProc, errorCallback->context, errorCallback->limit );
+ sStandardHandler_V3->mGetXMPwithPacketStandardHandlerWOptions( session, format, path, &outXmp, &cXMP, &error, flags, &inXMP, packetInfo, errorCallbackBox, progCBInfoPtr );
*containsXMP = ConvertXMP_BoolToBool( cXMP );
if( error.mErrorID == kXMPErr_NoFileHandler || error.mErrorID == kXMPErr_BadFileFormat)
@@ -270,8 +284,133 @@ bool GetXMPStandard( SessionRef session, XMP_FileFormat format, const StringPtr
{
throw XMP_Error( error.mErrorID, error.mErrorMsg );
}
- xmpStr=outXmp;
+ xmpStr = outXmp;
HostStringReleaseBuffer( (StringPtr)outXmp ) ;
+
+ if ( inXMP != NULL )
+ {
+ if ( packet != NULL )
+ packet->assign(inXMP);
+ HostStringReleaseBuffer( (StringPtr)inXMP ) ;
+ }
+ if ( errorCallbackBox != NULL )
+ delete errorCallbackBox ;
+ return ret;
+}
+
+// ============================================================================
+
+bool PutXMPStandard( SessionRef session, XMP_FileFormat format, const StringPtr path, const XMP_StringPtr xmpStr, XMP_OptionBits flags /*= NULL */, ErrorCallbackInfo * errorCallback /*= NULL */, XMP_ProgressTracker::CallbackInfo * progCBInfoPtr /*= NULL*/ )
+{
+ WXMP_Error error;
+ bool ret = true;
+
+ if ( sStandardHandler_V3 == NULL )
+ {
+ throw XMP_Error( kXMPErr_Unavailable, "StandardHandler suite unavailable" );
+ }
+
+ ErrorCallbackBox * errorCallbackBox = NULL;
+ if( errorCallback != NULL && errorCallback->wrapperProc != 0 )
+ errorCallbackBox = new ErrorCallbackBox( errorCallback->wrapperProc, errorCallback->clientProc, errorCallback->context, errorCallback->limit );
+ sStandardHandler_V3->mPutXMPStandardHandler( session, format, path, xmpStr, &error, flags, errorCallbackBox, progCBInfoPtr );
+
+ if( error.mErrorID == kXMPErr_NoFileHandler || error.mErrorID == kXMPErr_BadFileFormat)
+ {
+ ret = false;
+ }
+ else if( error.mErrorID != kXMPErr_NoError )
+ {
+ throw XMP_Error( error.mErrorID, error.mErrorMsg );
+ }
+ if ( errorCallbackBox != NULL )
+ delete errorCallbackBox ;
+ return ret;
+}
+
+// ============================================================================
+
+bool GetFileModDateStandardHandler( SessionRef session, XMP_FileFormat format, StringPtr path, XMP_DateTime * modDate, XMP_Bool * isSuccess, XMP_OptionBits flags /*= NULL*/ )
+{
+ WXMP_Error error;
+ bool ret = true;
+
+ if ( sStandardHandler_V3 == NULL )
+ {
+ throw XMP_Error( kXMPErr_Unavailable, "StandardHandler suite unavailable" );
+ }
+
+ sStandardHandler_V3->mGetFileModDateStandardHandler( session, format, path, modDate, isSuccess, &error, flags );
+
+ if( error.mErrorID == kXMPErr_NoFileHandler || error.mErrorID == kXMPErr_BadFileFormat)
+ {
+ ret = false;
+ }
+ else if( error.mErrorID != kXMPErr_NoError )
+ {
+ throw XMP_Error( error.mErrorID, error.mErrorMsg );
+ }
+ return ret;
+}
+
+// ============================================================================
+
+static void SetClientStringVector ( void * clientPtr, XMP_StringPtr * arrayPtr, XMP_Uns32 stringCount )
+{
+ std::vector<std::string> * vecPtr = (std::vector<std::string> *) (clientPtr);
+ vecPtr->clear();
+ vecPtr->reserve( stringCount );
+ for ( XMP_Uns32 i = 0; i < stringCount; i++ )
+ {
+ vecPtr->push_back( arrayPtr[i] );
+ }
+}
+
+// ============================================================================
+
+bool GetAssociatedResourcesStandardHandler( SessionRef session, XMP_FileFormat format, StringPtr path, std::vector<std::string> * resourceList, XMP_OptionBits flags /*= NULL*/ )
+{
+ WXMP_Error error;
+ bool ret = true;
+
+ if ( sStandardHandler_V3 == NULL )
+ {
+ throw XMP_Error( kXMPErr_Unavailable, "StandardHandler suite unavailable" );
+ }
+ sStandardHandler_V3->mGetAssociatedResourcesStandardHandler( session, format, path, resourceList, SetClientStringVector, &error, flags );
+
+ if( error.mErrorID == kXMPErr_NoFileHandler || error.mErrorID == kXMPErr_BadFileFormat)
+ {
+ ret = false;
+ }
+ else if( error.mErrorID != kXMPErr_NoError )
+ {
+ throw XMP_Error( error.mErrorID, error.mErrorMsg );
+ }
+ return ret;
+}
+
+// ============================================================================
+
+bool IsMetadataWritableStandardHandler( SessionRef session, XMP_FileFormat format, StringPtr path, XMP_Bool * isWritable, XMP_OptionBits flags /*= NULL*/ )
+{
+ WXMP_Error error;
+ bool ret = true;
+
+ if ( sStandardHandler_V3 == NULL )
+ {
+ throw XMP_Error( kXMPErr_Unavailable, "StandardHandler suite unavailable" );
+ }
+ sStandardHandler_V3->mIsMetadataWritableStandardHandler( session, format, path, isWritable, &error, flags );
+
+ if( error.mErrorID == kXMPErr_NoFileHandler || error.mErrorID == kXMPErr_BadFileFormat)
+ {
+ ret = false;
+ }
+ else if( error.mErrorID != kXMPErr_NoError )
+ {
+ throw XMP_Error( error.mErrorID, error.mErrorMsg );
+ }
return ret;
}
@@ -297,5 +436,6 @@ void* RequestAPISuite( const char* apiName, XMP_Uns32 apiVersion )
return suite;
}
+// ============================================================================
} //namespace XMP_PLUGIN
diff --git a/XMPFilesPlugins/api/source/HostAPIAccess.h b/XMPFilesPlugins/api/source/HostAPIAccess.h
index baae239..cc2a53a 100644
--- a/XMPFilesPlugins/api/source/HostAPIAccess.h
+++ b/XMPFilesPlugins/api/source/HostAPIAccess.h
@@ -179,14 +179,74 @@ bool CheckFormatStandard( SessionRef session, XMP_FileFormat format, const Strin
* This call expects that session refers to a replacement file handler. Otherwise
* this call fails with an exception.
*
- * @param session File handler session (should refer to replacement handler)
+ * @param session File handler session (should refer to replacement handler)
+ * @param format The file format identifier
+ * @param path Path to the file that should be proceeded
+ * @param xmpStr Reference to serialized XMP packet. Will be populated with the XMP Packet as read by the standard file handler
+ * @param containsXMP Returns true if the standard handler detected XMP
+ * @param flags OpenFlags passed during opening a file
+ * @param packet Returns XMP packet already present in the file, if available
+ * @param packetInfo Returns already present XMP packet information in the file, if available
+ * @param errorCallback Points to plugin error callback information
+ * @param progCBInfoPtr Points to the progress callback information
+ * @return true on success
+ */
+bool GetXMPStandard( SessionRef session, XMP_FileFormat format, const StringPtr path, std::string& xmpStr, bool* containsXMP, XMP_OptionBits flags = NULL, std::string *packet = NULL, XMP_PacketInfo *packetInfo = NULL, ErrorCallbackInfo * errorCallback = NULL, XMP_ProgressTracker::CallbackInfo * progCBInfoPtr = NULL );
+
+/** @brief Put XMP into standard file handler
+ *
+ * Call the standard file handler in order to put XMP into it.
+ *
+ * @param session File handler session (should refer to replacement handler)
+ * @param format The file format identifier
+ * @param path Path to the file that should be proceeded
+ * @param xmpStr Contains serialized XMP Packet to be embedded into the standard Handler
+ * @param flags OpenFlags passed during opening a file
+ * @param errorCallback Points to plugin error callback information
+ * @param progCBInfoPtr Points to the progress callback information
+ * @return true on success
+ */
+bool PutXMPStandard( SessionRef session, XMP_FileFormat format, const StringPtr path, const XMP_StringPtr xmpStr, XMP_OptionBits flags = NULL, ErrorCallbackInfo * errorCallback = NULL, XMP_ProgressTracker::CallbackInfo * progCBInfoPtr = NULL );
+
+/** @brief Getting file modification date from standard file handler
+ *
+ * Call the standard file handler in order to retrieve file modification date from it.
+ *
+ * @param session File handler session (referring to replacement handler)
+ * @param format The file format identifier
+ * @param path Path to the file that should be proceeded
+ * @param modDate will contain modification date of file obtained from the standard Handler
+ * @param isSuccess Returns true if the standard handler detected file modification date
+ * @param flags OpenFlags passed during opening a file
+ * @return true on success
+ */
+bool GetFileModDateStandardHandler( SessionRef session, XMP_FileFormat format, StringPtr path, XMP_DateTime * modDate, XMP_Bool * isSuccess, XMP_OptionBits flags = NULL );
+
+/** @brief Getting associated resources from standard file handler
+ *
+ * Call the standard file handler in order to retrieve all the associated resources with a file
+ *
+ * @param session File handler session (referring to replacement handler)
+ * @param format The file format identifier
+ * @param path Path to the file that should be proceeded
+ * @param resourceList will contain resources associated with the file obtained from the standard Handler
+ * @param flags OpenFlags passed during opening a file
+ * @return true on success
+ */
+bool GetAssociatedResourcesStandardHandler( SessionRef session, XMP_FileFormat format, StringPtr path, std::vector<std::string> * resourceList, XMP_OptionBits flags = NULL );
+
+/** @brief Checking whether metadata is writable or not into the file from standard file handler
+ *
+ * Call the standard file handler in order to check whether the metadata is writable or not into the file.
+ *
+ * @param session File handler session (referring to replacement handler)
* @param format The file format identifier
* @param path Path to the file that should be proceeded
- * @param xmpStr Reference to serialized XMP packet. Will be populated with the XMP Packet as read by the standard file handler
- * @param containsXMP Returns true if the standard handler detected XMP
+ * @param isWritable Returns true if the standard handler can write on the file.
+ * @param flags OpenFlags passed during opening a file
* @return true on success
*/
-bool GetXMPStandard( SessionRef session, XMP_FileFormat format, const StringPtr path, std::string& xmpStr, bool* containsXMP );
+bool IsMetadataWritableStandardHandler( SessionRef session, XMP_FileFormat format, StringPtr path, XMP_Bool * isWritable, XMP_OptionBits flags = NULL );
/** @brief Request additional API suite from the host.
*
diff --git a/XMPFilesPlugins/api/source/PluginAPIImpl.cpp b/XMPFilesPlugins/api/source/PluginAPIImpl.cpp
index ec22cee..e72d711 100644
--- a/XMPFilesPlugins/api/source/PluginAPIImpl.cpp
+++ b/XMPFilesPlugins/api/source/PluginAPIImpl.cpp
@@ -110,6 +110,32 @@ static XMPErrorID Static_InitializeSession( XMP_StringPtr uid, XMP_StringPtr fil
// ============================================================================
+static XMPErrorID Static_InitializeSessionV2( XMP_StringPtr uid, XMP_StringPtr filePath, XMP_Uns32 format, XMP_Uns32 handlerFlags, XMP_Uns32 openFlags, SessionRef * session, WXMP_Error * wError,
+ ErrorCallbackBox errorCallbackBox, XMP_ProgressTracker::CallbackInfo * progCBInfo )
+{
+ if( wError == NULL ) return kXMPErr_BadParam;
+
+ wError->mErrorID = kXMPErr_PluginSessionInit;
+
+ try
+ {
+ *session = PluginRegistry::create(uid, filePath, openFlags, format, handlerFlags, &errorCallbackBox, progCBInfo );
+
+ if( *session != NULL )
+ {
+ wError->mErrorID = kXMPErr_NoError;
+ }
+ }
+ catch( ... )
+ {
+ HandleException( wError );
+ }
+
+ return wError->mErrorID;
+}
+
+// ============================================================================
+
static XMPErrorID Static_TerminateSession( SessionRef session, WXMP_Error * wError )
{
if( wError == NULL ) return kXMPErr_BadParam;
@@ -188,7 +214,7 @@ static XMPErrorID Static_GetFileModDate ( SessionRef session, XMP_Bool * ok, XMP
*ok = thiz->getFileModDate ( modDate );
wError->mErrorID = kXMPErr_NoError;
}
- catch ( ... )
+ catch( ... )
{
HandleException( wError );
}
@@ -211,8 +237,17 @@ static XMPErrorID Static_CacheFileData( SessionRef session, XMP_IORef fileRef, X
wError->mErrorID = kXMPErr_NoError;
}
}
- catch( ... )
- {
+ catch( XMP_Error& error ) {
+ if ( error.GetID() == kXMPErr_FilePermission )
+ {
+ wError->mErrorID = kXMPErr_FilePermission;
+ wError->mErrorMsg = "Open, file permission error";
+ }
+ if ( error.GetID() == kXMPErr_BadFileFormat )
+ {
+ wError->mErrorID = kXMPErr_BadFileFormat;
+ wError->mErrorMsg = "Ill-formed QuickTime file";
+ }
HandleException( wError );
}
@@ -418,6 +453,81 @@ static XMPErrorID Static_IsMetadataWritable( SessionRef session, XMP_Bool * resu
}
// ============================================================================
+static XMPErrorID Static_ImportToXMPStringWithPacket( SessionRef session, XMP_StringPtr* xmpStr, WXMP_Error * wError, XMP_StringPtr* packetPtr, XMP_PacketInfo * packetInfo )
+{
+ if( wError == NULL ) return kXMPErr_BadParam;
+
+ wError->mErrorID = kXMPErr_PluginImportToXMP;
+
+ PluginBase* thiz = (PluginBase*) session;
+ try
+ {
+ if(thiz)
+ {
+ thiz->importToXMP( xmpStr, packetPtr, packetInfo );
+ wError->mErrorID = kXMPErr_NoError;
+ }
+ }
+ catch( ... )
+ {
+ HandleException( wError );
+ }
+
+ return wError->mErrorID;
+}
+
+// ============================================================================
+
+static XMPErrorID Static_SetErrorCallback ( SessionRef session, ErrorCallbackBox errorCallbackBox, WXMP_Error * wError )
+{
+ if( wError == NULL ) return kXMPErr_BadParam;
+
+ wError->mErrorID = kXMPErr_PluginImportToXMP;
+
+ PluginBase* thiz = (PluginBase*) session;
+ try
+ {
+ if(thiz)
+ {
+ thiz->SetErrorCallback( errorCallbackBox.wrapperProc, errorCallbackBox.clientProc, errorCallbackBox.context, errorCallbackBox.limit );
+ wError->mErrorID = kXMPErr_NoError;
+ }
+ }
+ catch( ... )
+ {
+ HandleException( wError );
+ }
+
+ return wError->mErrorID;
+}
+
+// ============================================================================
+
+static XMPErrorID Static_SetProgressCallback ( SessionRef session, XMP_ProgressTracker::CallbackInfo * progCBInfoPtr, WXMP_Error * wError )
+{
+ if( wError == NULL ) return kXMPErr_BadParam;
+
+ wError->mErrorID = kXMPErr_PluginImportToXMP;
+
+ PluginBase* thiz = (PluginBase*) session;
+ try
+ {
+ if(thiz)
+ {
+ thiz->SetProgressCallback( progCBInfoPtr );
+ wError->mErrorID = kXMPErr_NoError;
+ }
+ }
+ catch( ... )
+ {
+ HandleException( wError );
+ }
+
+ return wError->mErrorID;
+}
+
+// ============================================================================
+
XMPErrorID InitializePlugin( XMP_StringPtr moduleID, PluginAPIRef pluginAPI, WXMP_Error * wError )
{
if( wError == NULL ) return kXMPErr_BadParam;
@@ -484,6 +594,15 @@ XMPErrorID InitializePlugin( XMP_StringPtr moduleID, PluginAPIRef pluginAPI, WXM
pluginAPI->mIsMetadataWritableProc = Static_IsMetadataWritable;
}
+ // version 4
+ if( pluginAPI->mSize > offsetof( PluginAPI, mImportToXMPStringWithPacketProc ) )
+ {
+ pluginAPI->mImportToXMPStringWithPacketProc = Static_ImportToXMPStringWithPacket;
+ pluginAPI->mSetErrorCallbackproc = Static_SetErrorCallback;
+ pluginAPI->mInitializeSessionV2Proc = Static_InitializeSessionV2;
+ pluginAPI->mSetProgressCallbackproc = Static_SetProgressCallback;
+ }
+
// Compatibility hack for CS6 (plugin version 1):
// set mVersion to 1 if pluginAPI is for version 1
// because in CS6 plugin version is used to determine the hostAPI version.
diff --git a/XMPFilesPlugins/api/source/PluginBase.cpp b/XMPFilesPlugins/api/source/PluginBase.cpp
index 06c53ae..4cf1d05 100644
--- a/XMPFilesPlugins/api/source/PluginBase.cpp
+++ b/XMPFilesPlugins/api/source/PluginBase.cpp
@@ -8,7 +8,7 @@
// =================================================================================================
#include "PluginBase.h"
-#include "source/XMP_LibUtils.hpp"
+#include "PluginUtils.h"
#include "source/Host_IO.hpp"
#include "XMP.incl_cpp"
@@ -82,7 +82,7 @@ void PluginBase::FillMetadataFiles( StringVectorRef metadataFiles, SetStringVect
for ( size_t i = 0; i < fileCount; ++i ) {
ptrArray.push_back ( fileList[i].c_str() );
}
- (*SetStringVector) ( metadataFiles, ptrArray.data(), fileCount );
+ (*SetStringVector) ( metadataFiles, ptrArray.data(), (XMP_Uns32)fileCount );
}
}
@@ -114,7 +114,7 @@ void PluginBase::FillAssociatedResources( StringVectorRef resourceList, SetStrin
for ( size_t i = 0; i < fileCount; ++i ) {
ptrArray.push_back ( resList[i].c_str() );
}
- (*SetStringVector) ( resourceList, ptrArray.data(), fileCount );
+ (*SetStringVector) ( resourceList, ptrArray.data(), (XMP_Uns32)fileCount );
}
}
@@ -134,6 +134,12 @@ void PluginBase::FillAssociatedResources( std::vector<std::string> * resourceLis
// ============================================================================
// ============================================================================
+void PluginBase::importToXMP( XMP_StringPtr* xmpStr, XMP_StringPtr* packetPtr , XMP_PacketInfo * packetInfo )
+{
+ this->importToXMP( xmpStr );
+}
+
+// ============================================================================
void PluginBase::importToXMP( XMP_StringPtr* xmpStr )
{
@@ -235,6 +241,76 @@ bool PluginBase::getXMPStandard( std::string& xmpStr, const std::string* path /*
// ============================================================================
+bool PluginBase::getXMPStandard( std::string& xmpStr, XMP_OptionBits flags, const std::string* path /*= NULL*/, bool* containsXMP /*= NULL*/, std::string *packet /*= NULL*/, XMP_PacketInfo *packetInfo /*= NULL*/, ErrorCallbackInfo * errorCallback /*= NULL*/, XMP_ProgressTracker::CallbackInfo * progCBInfoPtr /*= NULL*/ )
+{
+ const StringPtr _path = (const StringPtr)( path == NULL ? this->getPath().c_str() : path->c_str() );
+
+ bool ret = GetXMPStandard( this, this->getFormat(), _path, xmpStr, containsXMP, flags, packet, packetInfo, errorCallback, progCBInfoPtr );
+
+ return ret;
+}
+
+// ============================================================================
+
+bool PluginBase::putXMPStandard( const XMP_StringPtr xmpStr, XMP_OptionBits flags /*= NULL */, const std::string* path /*= NULL*/, ErrorCallbackInfo * errorCallback /*= NULL*/ , XMP_ProgressTracker::CallbackInfo * progCBInfoPtr /*= NULL*/ )
+{
+ const StringPtr _path = (const StringPtr)( path == NULL ? this->getPath().c_str() : path->c_str() );
+
+ bool ret = PutXMPStandard( this, this->getFormat(), _path, xmpStr, flags, errorCallback, progCBInfoPtr );
+
+ return ret;
+}
+
+// ============================================================================
+
+bool PluginBase::getFileModDateStandardHandler( XMP_DateTime * modDate, XMP_Bool * isSuccess, XMP_OptionBits flags /*= NULL */, const std::string* path /*= NULL*/ )
+{
+ const StringPtr _path = (const StringPtr)( path == NULL ? this->getPath().c_str() : path->c_str() );
+
+ bool ret = GetFileModDateStandardHandler( this, this->getFormat(), _path, modDate, isSuccess, flags );
+
+ return ret;
+}
+
+// ============================================================================
+
+bool PluginBase::getAssociatedResourcesStandardHandler( std::vector<std::string> * resourceList, XMP_OptionBits flags /*= NULL */, const std::string* path /*= NULL*/ )
+{
+ const StringPtr _path = (const StringPtr)( path == NULL ? this->getPath().c_str() : path->c_str() );
+
+ bool ret = GetAssociatedResourcesStandardHandler( this, this->getFormat(), _path, resourceList, flags );
+
+ return ret;
+}
+
+// ============================================================================
+
+bool PluginBase::isMetadataWritableStandardHandler( XMP_Bool * isWritable, XMP_OptionBits flags /*= NULL */, const std::string* path /*= NULL*/ )
+{
+ const StringPtr _path = (const StringPtr)( path == NULL ? this->getPath().c_str() : path->c_str() );
+
+ bool ret = IsMetadataWritableStandardHandler( this, this->getFormat(), _path, isWritable, flags );
+
+ return ret;
+}
+
+// ============================================================================
+
+void PluginBase::SetErrorCallback ( XMPFiles_ErrorCallbackWrapper wrapperProc,
+ XMPFiles_ErrorCallbackProc clientProc,
+ void * context,
+ XMP_Uns32 limit )
+{
+ this->mErrorCallback.Clear();
+ this->mErrorCallback.wrapperProc = wrapperProc;
+ this->mErrorCallback.clientProc = clientProc;
+ this->mErrorCallback.context = context;
+ this->mErrorCallback.limit = limit;
+ this->mErrorCallback.filePath = mPath;
+}
+
+// ============================================================================
+
#if XMP_WinBuild
static bool GetModifyDate ( const char* filePath, XMP_DateTime* modifyDate )
diff --git a/XMPFilesPlugins/api/source/PluginBase.h b/XMPFilesPlugins/api/source/PluginBase.h
index a827687..dba3105 100644
--- a/XMPFilesPlugins/api/source/PluginBase.h
+++ b/XMPFilesPlugins/api/source/PluginBase.h
@@ -24,8 +24,10 @@
#include <vector>
#include <string>
#include "HostAPIAccess.h"
+#include "PluginUtils.h"
#define TXMP_STRING_TYPE std::string
#include "XMP.hpp"
+#include "source/XMP_ProgressTracker.hpp"
namespace XMP_PLUGIN
{
@@ -36,7 +38,7 @@ namespace XMP_PLUGIN
virtual void cacheFileData( const IOAdapter& file, std::string& xmpStr );
virtual void updateFile( const IOAdapter& file, bool doSafeUpdate, const std::string& xmpStr );
virtual void writeTempFile( const IOAdapter& srcFile, const IOAdapter& tmpFile, const std::string& xmpStr ) ;
- virtual void importToXMP( XMP_StringPtr* xmpStr );
+ virtual void importToXMP( XMP_StringPtr* xmpStr, XMP_StringPtr* oldPtr = 0, XMP_PacketInfo * packetInfo = 0 );
virtual void exportFromXMP( XMP_StringPtr xmpStr );
First two functions are pure virtual functions so these should be implemented for sure.
@@ -64,8 +66,9 @@ namespace XMP_PLUGIN
class PluginBase
{
public:
+
PluginBase( const std::string& filePath, XMP_Uns32 openFlags, XMP_Uns32 format = 0, XMP_Uns32 handlerFlags = 0 )
- : mPath( filePath ),mHandlerFlags(handlerFlags), mOpenFlags( openFlags ), mFormat( format ) {}
+ : mPath( filePath ),mHandlerFlags(handlerFlags), mOpenFlags( openFlags ), mFormat( format ), mErrorCallback() {}
virtual ~PluginBase(){};
/** @brief Delegator functions which will eventually call the corresponding virtual function.
@@ -102,6 +105,77 @@ public:
*/
bool getXMPStandard( std::string& xmpStr, const std::string* path = NULL, bool* containsXMP = NULL );
+ /** @brief Get metadata from standard file handler
+ *
+ * Call the standard file handler in order to retrieve XMP from it.
+ * This call expects that session refers to a replacement file handler. Otherwise
+ * this call fails with an exception.
+ * Calls checkFormatStandard internally before calling the actual standard handler.
+ *
+ * @param xmpStr Serialized to XMP packet. Will be populated with XMP read from standard handler.
+ * @param flags OpenFlags passed during opening a file
+ * @param path Pointer to the path string of the file to be checked. Pass NULL to check the
+ * file passed in during initialization (see PluginBase::getPath() )
+ * @param containsXMP Returns true if the standard handler detected XMP
+ * @param packet Returns existed XMP packet present in the file, if available
+ * @param packetInfo Returns packet information of existed XMP packet in the file, if available
+ * @param errorCallback Contains pointer to ErrorCallbackInfo
+ * @param progCBInfoPtr Contains pointer to the CallbackInfo provided by user if any
+ * @return true on success
+ */
+ bool getXMPStandard( std::string& xmpStr, XMP_OptionBits flags, const std::string* path = NULL, bool* containsXMP = NULL, std::string *packet = NULL, XMP_PacketInfo* packetInfo = NULL, ErrorCallbackInfo * errorCallback = NULL, XMP_ProgressTracker::CallbackInfo * progCBInfoPtr = NULL );
+
+ /** @brief Putting metadata into file using standard file handler
+ *
+ * Call the standard file handler in order to put XMP into it.
+ * This call expects that session refers to a replacement file handler. Otherwise
+ * this call fails with an exception.
+ * Calls checkFormatStandard internally before calling the actual standard handler.
+ *
+ * @param xmpStr Serialized to XMP packet. Will be put into file using standard handler.
+ * @param flags OpenFlags passed during opening a file
+ * @param path Pointer to the path string of the file to be checked. Pass NULL to check the
+ * file passed in during initialization (see PluginBase::getPath() )
+ * @param errorCallback Contains pointer to ErrorCallbackInfo
+ * @param progCBInfoPtr Contains pointer to the CallbackInfo provided by user if any
+ * @return true on success
+ */
+ bool putXMPStandard( const XMP_StringPtr xmpStr, XMP_OptionBits flags = NULL, const std::string* path = NULL, ErrorCallbackInfo * errorCallback = NULL, XMP_ProgressTracker::CallbackInfo * progCBInfoPtr = NULL );
+
+ /** @brief Getting file modification date from standard file handler
+ *
+ * Call the standard file handler in order to retrieve file modification date from it.
+ *
+ * @param modDate will contain modification date of file obtained from the standard Handler
+ * @param isSuccess Returns true if the standard handler detected file modification date
+ * @param flags OpenFlags passed during opening a file
+ * @param path Path to the file that should be proceeded
+ * @return true on success
+ */
+ bool getFileModDateStandardHandler( XMP_DateTime * modDate, XMP_Bool * isSuccess, XMP_OptionBits flags = NULL, const std::string* path = NULL );
+
+ /** @brief Getting associated resources from standard file handler
+ *
+ * Call the standard file handler in order to retrieve file associated resources from it.
+ *
+ * @param resourceList will contain resources associated with the file obtained from the standard Handler
+ * @param flags OpenFlags passed during opening a file
+ * @param path Path to the file that should be proceeded
+ * @return true on success
+ */
+ bool getAssociatedResourcesStandardHandler( std::vector<std::string> * resourceList, XMP_OptionBits flags = NULL, const std::string* path = NULL );
+
+ /** @brief Checking whether metadata is writable or not into the file from standard file handler
+ *
+ * Call the standard file handler in order to check whether the metadata is writable or not into the file.
+ *
+ * @param isWritable Returns true if the standard handler can write on the file.
+ * @param flags OpenFlags passed during opening a file
+ * @param path Path to the file that should be proceeded
+ * @return true on success
+ */
+ bool isMetadataWritableStandardHandler( XMP_Bool * isWritable, XMP_OptionBits flags = NULL, const std::string* path = NULL );
+
/** @brief Get file format
*
* Get the file format of this handler.
@@ -116,7 +190,6 @@ public:
*/
inline XMP_OptionBits getHandlerFlags() const { return mHandlerFlags; }
-
/** @brief Return the path to the input file/folder
*
* Return the path to the input file/folder. Empty if the data source is neither
@@ -132,6 +205,8 @@ public:
*/
inline XMP_OptionBits getOpenFlags() const { return mOpenFlags; }
+ inline ErrorCallbackInfo * getErrorCallbackInfo() { return &mErrorCallback; }
+
/** @brief Ask XMPFiles if current operation should be aborted.
*
* @param doAbort If true and the operation should be aborted then
@@ -195,13 +270,18 @@ public:
virtual void cacheFileData( const IOAdapter& file, std::string& xmpStr ) = 0;
virtual void updateFile( const IOAdapter& file, bool doSafeUpdate, const std::string& xmpStr ) = 0;
virtual void writeTempFile( const IOAdapter& srcFile, const IOAdapter& tmpFile, const std::string& xmpStr ) {}
- virtual void importToXMP( XMP_StringPtr* xmpStr );
+ virtual void importToXMP( XMP_StringPtr* xmpStr, XMP_StringPtr* oldPtr , XMP_PacketInfo * packetInfo );
virtual void exportFromXMP( XMP_StringPtr xmpStr );
+ virtual void importToXMP( XMP_StringPtr* xmpStr );
+ virtual void SetErrorCallback( XMPFiles_ErrorCallbackWrapper wrapperProc, XMPFiles_ErrorCallbackProc clientProc, void * context, XMP_Uns32 limit );
+ virtual void SetProgressCallback( XMP_ProgressTracker::CallbackInfo * progCBInfoPtr ) {}
+
private:
std::string mPath;
XMP_OptionBits mHandlerFlags;
XMP_OptionBits mOpenFlags;
XMP_FileFormat mFormat;
+ ErrorCallbackInfo mErrorCallback;
};
diff --git a/XMPFilesPlugins/api/source/PluginHandler.h b/XMPFilesPlugins/api/source/PluginHandler.h
index 21c3d43..d13dcec 100644
--- a/XMPFilesPlugins/api/source/PluginHandler.h
+++ b/XMPFilesPlugins/api/source/PluginHandler.h
@@ -19,13 +19,16 @@
#ifndef __Plugin_Handler_hpp__
#define __Plugin_Handler_hpp__ 1
#include "PluginConst.h"
+#include "PluginUtils.h"
+#include "source/XMP_ProgressTracker.hpp"
// versioning
#define XMP_PLUGIN_VERSION_1 1 // CS6
#define XMP_PLUGIN_VERSION_2 2 //
#define XMP_PLUGIN_VERSION_3 3 // CS7
+#define XMP_PLUGIN_VERSION_4 4
-#define XMP_PLUGIN_VERSION XMP_PLUGIN_VERSION_3
+#define XMP_PLUGIN_VERSION XMP_PLUGIN_VERSION_4
namespace XMP_PLUGIN
{
@@ -99,6 +102,23 @@ typedef XMPErrorID (*SetHostAPIProc)( HostAPIRef hostAPI, WXMP_Error * wError );
typedef XMPErrorID (*InitializeSessionProc)( XMP_StringPtr uid, XMP_StringPtr filePath, XMP_Uns32 format, XMP_Uns32 handlerFlags, XMP_Uns32 openFlags, SessionRef * session, WXMP_Error * wError );
/**
+ * Function pointer to the function InitializeSession which will be called
+ * at the time of creating instance of the file handler with /param uid for file /param filePath.
+ *
+ * @param uid Unique identifier string (uid) of the file handler whose instance is to be created.
+ * @param filePath FilePath of the file which is to be opened.
+ * @param format File format id for the session
+ * @param handlerFlags Handler flags as defined in the plugin manifest
+ * @param openFlags Flags that describe the desired access.
+ * @param session Pointer to a file Handler instance.
+ * @param errorCallback Pointer to error callback info
+ * @param progCBInfoPtr Points to the progress callback notification information
+ * @return kXMPErr_NoError on success otherwise error id of the failure.
+ */
+typedef XMPErrorID (*InitializeSessionV2Proc)( XMP_StringPtr uid, XMP_StringPtr filePath, XMP_Uns32 format, XMP_Uns32 handlerFlags, XMP_Uns32 openFlags, SessionRef * session, WXMP_Error * wError,
+ ErrorCallbackBox errorCallbackBox, XMP_ProgressTracker::CallbackInfo * progCBInfo );
+
+/**
* Function pointer to the function TerminateSession which will be called
* at the time of terminating instance of the file handler.
*
@@ -246,6 +266,19 @@ typedef XMPErrorID (*FillAssociatedResourcesProc)( SessionRef session, StringVec
typedef XMPErrorID (*ImportToXMPStringProc)( SessionRef session, XMP_StringPtr* xmpStr , WXMP_Error * wError );
/**
+ * Function pointer to the function ImportToXMP. Any non metadata from a file that is supposed
+ * to be mapped into a XMP namespace should be added to the XMP packet using this function.
+ *
+ * @param session File Handler instance.
+ * @param xmpStr A pointer to a buffer which contain the xmpData.
+ * @param wError WXMP_Error structure which will be filled by the API if any error occurs.
+ * @param packet Returns existed XMP packet present in the file, if available
+ * @param packetInfo Returns packet information of existed XMP packet in the file, if available
+ * @return kXMPErr_NoError on success otherwise error id of the failure.
+ */
+typedef XMPErrorID (*ImportToXMPStringWithPacketProc)( SessionRef session, XMP_StringPtr* xmpStr , WXMP_Error * wError, XMP_StringPtr* packet, XMP_PacketInfo * packetInfo );
+
+/**
* Function pointer to the function ExportFromXMP. The XMP packet is supposed to be
* written to the file. If the packet contains any data that should be mapped back to
* native (non-XMP) metadata values then that should happen here.
@@ -267,6 +300,23 @@ typedef XMPErrorID (*ExportFromXMPStringProc)( SessionRef session, XMP_StringPtr
*/
typedef XMPErrorID (*IsMetadataWritableProc)( SessionRef session, XMP_Bool * result, WXMP_Error * wError );
+/**
+ * Function pointer to the function SetErrorCallback. This function will set ErrorCallbackNotification for the plugins
+ *
+ * @param session File Handler instance.
+ * @param errorCallback Pointer to Error Callback notification.
+ * @return kXMPErr_NoError on success otherwise error id of the failure.
+ */
+typedef XMPErrorID (*SetErrorCallbackproc)( SessionRef session, ErrorCallbackBox errorCallbackBox, WXMP_Error * wError );
+
+/**
+ * Function pointer to the function SetProgressCallback. This function will set ProgressCallback for the plugins. This needs to be set by plugin
+ *
+ * @param session File Handler instance.
+ * @param progCBInfoPtr Pointer to Progress Callback information.
+ * @return kXMPErr_NoError on success otherwise error id of the failure.
+ */
+typedef XMPErrorID (*SetProgressCallbackproc)( SessionRef session, XMP_ProgressTracker::CallbackInfo * progCBInfoPtr, WXMP_Error * wError );
/** @struct PluginAPI
* @brief This is a Plugin API structure.
@@ -312,6 +362,12 @@ struct PluginAPI
// version 3
IsMetadataWritableProc mIsMetadataWritableProc;
+
+ // version 4
+ ImportToXMPStringWithPacketProc mImportToXMPStringWithPacketProc;
+ SetErrorCallbackproc mSetErrorCallbackproc;
+ InitializeSessionV2Proc mInitializeSessionV2Proc;
+ SetProgressCallbackproc mSetProgressCallbackproc;
};
diff --git a/XMPFilesPlugins/api/source/PluginRegistry.cpp b/XMPFilesPlugins/api/source/PluginRegistry.cpp
index 1f7c340..4831eff 100644
--- a/XMPFilesPlugins/api/source/PluginRegistry.cpp
+++ b/XMPFilesPlugins/api/source/PluginRegistry.cpp
@@ -42,13 +42,13 @@ void PluginRegistry::registerHandler( const PluginCreatorBase* inCreator )
// ============================================================================
/*static*/
-PluginBase* PluginRegistry::create( const std::string& uid, const std::string& filePath, XMP_Uns32 openFlags, XMP_Uns32 format, XMP_Uns32 handlerFlags )
+PluginBase* PluginRegistry::create( const std::string& uid, const std::string& filePath, XMP_Uns32 openFlags, XMP_Uns32 format, XMP_Uns32 handlerFlags, ErrorCallbackBox * errorCallbackbox /* = 0*/, XMP_ProgressTracker::CallbackInfo * progCBInfo /*= 0*/ )
{
if( msRegistry != NULL )
{
- RegistryEntryMap::const_iterator iter = msRegistry->mRegistryEntries.find(uid);
+ RegistryEntryMap::const_iterator iter = msRegistry->mRegistryEntries.find( uid );
if( iter != msRegistry->mRegistryEntries.end() )
- return iter->second->create(filePath, openFlags, format, handlerFlags);
+ return iter->second->create( filePath, openFlags, format, handlerFlags, errorCallbackbox, progCBInfo );
}
return NULL;
diff --git a/XMPFilesPlugins/api/source/PluginRegistry.h b/XMPFilesPlugins/api/source/PluginRegistry.h
index acfe3bf..f694d08 100644
--- a/XMPFilesPlugins/api/source/PluginRegistry.h
+++ b/XMPFilesPlugins/api/source/PluginRegistry.h
@@ -52,9 +52,11 @@ public:
* @param format File format id the class is created for
* @param handlerFlags According handler flags
* @param filePath FilePath of the file which is to be opened.
+ * @param errorCallbackbox Pointer to error callback info
+ * @param progCBInfo Points to the progress callback notification information
* @return Pointer to file Handler instance.
*/
- static PluginBase* create( const std::string& uid, const std::string& filePath, XMP_Uns32 openFlags, XMP_Uns32 format, XMP_Uns32 handlerFlags );
+ static PluginBase* create( const std::string& uid, const std::string& filePath, XMP_Uns32 openFlags, XMP_Uns32 format, XMP_Uns32 handlerFlags, ErrorCallbackBox * errorCallbackbox = 0, XMP_ProgressTracker::CallbackInfo * progCBInfo = 0 );
/** @brief Check whether the input file /a filePath is supported by the file handler with uid /a uid.
* @param uid Unique identifier string (uid) of the file handler.
@@ -98,8 +100,8 @@ public:
PluginCreatorBase() {}
virtual ~PluginCreatorBase() {}
- virtual PluginBase* create( const std::string& filePath, XMP_Uns32 openFlags, XMP_Uns32 format, XMP_Uns32 handlerFlags ) const = 0;
-
+ virtual PluginBase* create( const std::string& filePath, XMP_Uns32 openFlags, XMP_Uns32 format, XMP_Uns32 handlerFlags, ErrorCallbackBox * errorCallbackbox = 0, XMP_ProgressTracker::CallbackInfo * progCBInfo = 0 ) const = 0;
+
/** A File handler should provide either checkFileFormat if it is OwningHandler or NormalHandler
* OR it should provide checkFolderFormat if it is FolderHandler. Default implementation returns false
* which mean the handler does not support the file format.
@@ -146,13 +148,18 @@ public:
* @param openFlags Flags that describe the desired access.
* @param format File format id the class is created for
* @param handlerFlags According handler flags
+ * @param errorCallbackbox Pointer to error callback info
+ * @param progCBInfo Points to the progress callback notification information
* @return Pointer to file Handler instance.
*/
- inline PluginBase* create( const std::string& filePath, XMP_Uns32 openFlags, XMP_Uns32 format, XMP_Uns32 handlerFlags ) const
+ inline PluginBase* create( const std::string& filePath, XMP_Uns32 openFlags, XMP_Uns32 format, XMP_Uns32 handlerFlags, ErrorCallbackBox * errorCallbackBox = 0, XMP_ProgressTracker::CallbackInfo * progCBInfo = 0 ) const
{
- TFileHandler* instance = new TFileHandler(filePath, openFlags, format, handlerFlags);
+ TFileHandler* instance = new TFileHandler(filePath, openFlags, format, handlerFlags );
PluginBase* handler = dynamic_cast<PluginBase*>(instance);
-
+ if ( errorCallbackBox != 0 && errorCallbackBox->wrapperProc != 0 )
+ handler->SetErrorCallback( errorCallbackBox->wrapperProc, errorCallbackBox->clientProc, errorCallbackBox->context, errorCallbackBox->limit );
+ if( progCBInfo != 0 )
+ handler->SetProgressCallback( progCBInfo );
return handler;
}
diff --git a/XMPFilesPlugins/api/source/PluginUtils.cpp b/XMPFilesPlugins/api/source/PluginUtils.cpp
new file mode 100644
index 0000000..cdae5aa
--- /dev/null
+++ b/XMPFilesPlugins/api/source/PluginUtils.cpp
@@ -0,0 +1,57 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMP_Const.h"
+#include "source/XMP_LibUtils.hpp"
+#include "PluginUtils.h"
+
+namespace XMP_PLUGIN
+{
+ // =================================================================================================
+ // ErrorCallbackInfo::CanNotify()
+ // ====================================
+ bool ErrorCallbackInfo::CanNotify() const
+ {
+ XMP_Assert ( (this->clientProc == 0) || (this->wrapperProc != 0) );
+ return ( this->clientProc != 0 );
+ } // ErrorCallbackInfo::CanNotify()
+
+ // =================================================================================================
+ // ErrorCallbackInfo::ClientCallbackWrapper()
+ // ====================================
+ bool ErrorCallbackInfo::ClientCallbackWrapper ( XMP_StringPtr filePath,
+ XMP_ErrorSeverity severity,
+ XMP_Int32 cause,
+ XMP_StringPtr messsage ) const
+ {
+
+ XMP_StringPtr filePathPtr = filePath;
+ if ( filePathPtr == 0 ) {
+ filePathPtr = this->filePath.c_str();
+ }
+
+ XMP_Bool retValue = (*this->wrapperProc) ( this->clientProc, this->context, filePathPtr, severity, cause, messsage );
+ return ConvertXMP_BoolToBool(retValue);
+ } // ErrorCallbackInfo::ClientCallbackWrapper()
+
+ // =================================================================================================
+ // ErrorNotifyClient
+ // ===================================
+ // Plugin method to throw exception
+ void ErrorNotifyClient( GenericErrorCallback * errCBptr, XMP_ErrorSeverity severity, XMP_Error & error )
+ {
+ if (errCBptr)
+ errCBptr->NotifyClient( severity, error );
+ else {
+ if ( severity != kXMPErrSev_Recoverable )
+ throw error;
+ }
+ } // ErrorNotifyClient()
+
+} // namespace XMP_PLUGIN \ No newline at end of file
diff --git a/XMPFilesPlugins/api/source/PluginUtils.h b/XMPFilesPlugins/api/source/PluginUtils.h
new file mode 100644
index 0000000..287167e
--- /dev/null
+++ b/XMPFilesPlugins/api/source/PluginUtils.h
@@ -0,0 +1,44 @@
+#ifndef __PLUGIN_UTILS_H__
+#define __PLUGIN_UTILS_H__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMP_Const.h"
+#include "source/XMP_LibUtils.hpp"
+
+namespace XMP_PLUGIN
+{
+ class ErrorCallbackInfo : public GenericErrorCallback {
+ public:
+ XMPFiles_ErrorCallbackWrapper wrapperProc;
+ XMPFiles_ErrorCallbackProc clientProc;
+ void * context;
+ std::string filePath;
+
+ ErrorCallbackInfo(): wrapperProc(0), clientProc(0), context(0) {};
+
+ void Clear() {
+ this->wrapperProc = 0; this->clientProc = 0; this->context = 0;
+ GenericErrorCallback::Clear();
+ };
+
+ bool CanNotify() const;
+
+ bool ClientCallbackWrapper(
+ XMP_StringPtr filePath,
+ XMP_ErrorSeverity severity,
+ XMP_Int32 cause,
+ XMP_StringPtr messsage) const;
+ };
+
+ void ErrorNotifyClient( GenericErrorCallback * errCBptr, XMP_ErrorSeverity severity, XMP_Error & error);
+}
+
+#endif // __PLUGIN_UTILS_H__
diff --git a/build/CMakeLists.txt b/build/CMakeLists.txt
index 2a96ea9..6695c65 100644
--- a/build/CMakeLists.txt
+++ b/build/CMakeLists.txt
@@ -9,7 +9,7 @@
# ==============================================================================
# define minimum cmake version
-cmake_minimum_required(VERSION 2.8.6)
+cmake_minimum_required(VERSION 3.5.2)
# Enable folder grouping of projects in IDEs
@@ -71,9 +71,8 @@ include(${XMP_ROOT}/build/XMP_Config.cmake)
# Sub projects
# ==============================================================================
add_subdirectory(${XMP_ROOT}/XMPCore/build ${XMP_ROOT}/XMPCore/build/${XMP_CMAKEFOLDER_NAME})
-if (NOT APPLE_IOS)
- add_subdirectory(${XMP_ROOT}/XMPFiles/build ${XMP_ROOT}/XMPFiles/build/${XMP_CMAKEFOLDER_NAME})
-endif()
+add_subdirectory(${XMP_ROOT}/XMPFiles/build ${XMP_ROOT}/XMPFiles/build/${XMP_CMAKEFOLDER_NAME})
+
# ==============================================================================
# configuration feedback
diff --git a/build/GenerateXMPToolkitSDK_mac.sh b/build/GenerateXMPToolkitSDK_mac.sh
index 659767c..e877640 100755
--- a/build/GenerateXMPToolkitSDK_mac.sh
+++ b/build/GenerateXMPToolkitSDK_mac.sh
@@ -93,22 +93,18 @@ Generate
}
echo "1. Clean All"
-echo "2. Generate XMPToolkitSDK Dynamic 32"
-echo "3. Generate XMPToolkitSDK Static 32"
-echo "4. Generate XMPToolkitSDK Dynamic 64"
-echo "5. Generate XMPToolkitSDK Static 64"
-echo "6. Generate XMPToolkitSDK Static iOS"
-echo "7. Generate All"
+echo "2. Generate XMPToolkitSDK Dynamic 64"
+echo "3. Generate XMPToolkitSDK Static 64"
+echo "4. Generate XMPToolkitSDK Static iOS"
+echo "5. Generate All"
read -p "Enter your choice: " choice
case $choice in
1) clean;;
- 2) SDKDynamic32;;
- 3) SDKStatic32;;
- 4) SDKDynamic64;;
- 5) SDKStatic64;;
- 6) SDKStaticIos;;
- 7) SDKDynamic32; SDKStatic32; SDKDynamic64; SDKStatic64; SDKStaticIos;;
+ 2) SDKDynamic64;;
+ 3) SDKStatic64;;
+ 4) SDKStaticIos;;
+ 5) SDKDynamic64; SDKStatic64; SDKStaticIos;;
*) echo "ERROR: Invalid Choice, Exiting"; exit 1;;
esac
diff --git a/build/GenerateXMPToolkitSDK_win.bat b/build/GenerateXMPToolkitSDK_win.bat
index 767d625..0f18ec7 100755
--- a/build/GenerateXMPToolkitSDK_win.bat
+++ b/build/GenerateXMPToolkitSDK_win.bat
@@ -41,7 +41,7 @@ set GENERATE_ALL=On
:32DLL
echo "Generating XMPSDKToolkit Dynamic Win32"
-set VS_VERSION=2011
+set VS_VERSION=2015
set BUILD_TYPE=Dynamic
set BITS=32
IF "%GENERATE_ALL%"=="On" (
@@ -52,7 +52,7 @@ GOTO GenerateNow
:32LIB
echo "Generating XMPSDKToolkit Static Win32"
-set VS_VERSION=2011
+set VS_VERSION=2015
set BUILD_TYPE=Static
set BITS=32
IF "%GENERATE_ALL%"=="On" (
@@ -62,7 +62,7 @@ GOTO GenerateNow
:64DLL
echo "Generating XMPSDKToolkit Dynamic x64"
-set VS_VERSION=2011
+set VS_VERSION=2015
set BUILD_TYPE=Dynamic
set BITS=64
IF "%GENERATE_ALL%"=="On" (
@@ -72,7 +72,7 @@ GOTO GenerateNow
:64LIB
echo "Generating XMPSDKToolkit Static x64"
-set VS_VERSION=2011
+set VS_VERSION=2015
set BUILD_TYPE=Static
set BITS=64
IF "%GENERATE_ALL%"=="On" (
@@ -98,9 +98,9 @@ exit /B 0
:CLEANALL
echo "Cleaning..."
-if exist vc11 rmdir /S /Q vc11
-if exist ..\XMPCore\build\vc11 rmdir /S /Q ..\XMPCore\build\vc11
-if exist ..\XMPFiles\build\vc11 rmdir /S /Q ..\XMPFiles\build\vc11
+if exist vc14 rmdir /S /Q vc14
+if exist ..\XMPCore\build\vc14 rmdir /S /Q ..\XMPCore\build\vc14
+if exist ..\XMPFiles\build\vc14 rmdir /S /Q ..\XMPFiles\build\vc14
if exist ..\public\libraries\windows rmdir /S /Q ..\public\libraries\windows
if exist ..\public\libraries\windows_x64 rmdir /S /Q ..\public\libraries\windows_x64
echo "Done"
diff --git a/build/ProductConfig.cmake b/build/ProductConfig.cmake
index b310ca9..09c743e 100644
--- a/build/ProductConfig.cmake
+++ b/build/ProductConfig.cmake
@@ -18,7 +18,7 @@
# ==============================================================================
# define minimum cmake version
-cmake_minimum_required(VERSION 2.8.0)
+cmake_minimum_required(VERSION 3.5.2)
# ==============================================================================
# Product Config for XMP Toolkit
@@ -29,7 +29,11 @@ if (UNIX)
if (APPLE_IOS)
set(XMP_PLATFORM_SHORT "ios")
- set(CMAKE_OSX_ARCHITECTURES "$(ARCHS_STANDARD_32_BIT)")
+ if(XMP_BUILD_STATIC)
+ set(CMAKE_OSX_ARCHITECTURES "$(ARCHS_STANDARD_INCLUDING_64_BIT)")
+ else()
+ set(CMAKE_OSX_ARCHITECTURES "$(ARCHS_STANDARD_64_BIT)")
+ endif()
add_definitions(-DIOS_ENV=1)
# shared flags
@@ -77,14 +81,22 @@ if (UNIX)
#There were getting set from SetupTargetArchitecture.
if(APPLE_IOS)
- set(XMP_CPU_FOLDERNAME "$(ARCHS_STANDARD_32_BIT)")
+ set(XMP_CPU_FOLDERNAME "$(ARCHS)")
else()
if(CMAKE_CL_64)
set(XMP_BITDEPTH "64")
- set(XMP_CPU_FOLDERNAME "intel_64")
+ if(CMAKE_LIBCPP)
+ set(XMP_CPU_FOLDERNAME "intel_64_libcpp")
+ else()
+ set(XMP_CPU_FOLDERNAME "intel_64")
+ endif()
else()
set(XMP_BITDEPTH "32")
- set(XMP_CPU_FOLDERNAME "intel")
+ if(CMAKE_LIBCPP)
+ set(XMP_CPU_FOLDERNAME "intel_libcpp")
+ else()
+ set(XMP_CPU_FOLDERNAME "intel")
+ endif()
endif()
endif()
@@ -108,11 +120,11 @@ if (UNIX)
set(XMP_EXTRA_COMPILE_FLAGS "-m64")
set(XMP_EXTRA_LINK_FLAGS "-m64")
set(XMP_PLATFORM_FOLDER "i80386linux_x64") # add XMP_BUILDMODE_DIR to follow what other platforms do
- set(XMP_GCC_LIBPATH /user/unicore/i80386linux_x64/compiler/gcc4.4.4/linux2.6_64/lib64)
+ set(XMP_GCC_LIBPATH /user/unicore/i80386linux_x64/compiler/gcc4.8.2/linux3.10_64/lib64)
else()
set(XMP_EXTRA_LINK_FLAGS "-m32 -mtune=i686")
set(XMP_PLATFORM_FOLDER "i80386linux") # add XMP_BUILDMODE_DIR to follow what other platforms do
- set(XMP_GCC_LIBPATH /user/unicore/i80386linux/compiler/gcc4.4.4/linux2.6_32/lib)
+ set(XMP_GCC_LIBPATH /user/unicore/i80386linux/compiler/gcc4.8.2/linux3.10_32/lib)
endif()
else()
# running toolchain
@@ -120,17 +132,17 @@ if (UNIX)
set(XMP_EXTRA_COMPILE_FLAGS "-m64")
set(XMP_EXTRA_LINK_FLAGS "-m64")
set(XMP_PLATFORM_FOLDER "i80386linux_x64") # add XMP_BUILDMODE_DIR to follow what other platforms do
- set(XMP_GCC_LIBPATH /user/unicore/i80386linux_x64/compiler/gcc4.4.4/linux2.6_64/lib64)
+ set(XMP_GCC_LIBPATH /user/unicore/i80386linux_x64/compiler/gcc4.8.2/linux3.10_64/lib64)
else()
set(XMP_EXTRA_COMPILE_FLAGS "-m32 -mtune=i686")
set(XMP_EXTRA_LINK_FLAGS "-m32")
set(XMP_PLATFORM_FOLDER "i80386linux") # add XMP_BUILDMODE_DIR to follow what other platforms do
- set(XMP_GCC_LIBPATH /user/unicore/i80386linux/compiler/gcc4.4.4/linux2.6_32/lib)
+ set(XMP_GCC_LIBPATH /user/unicore/i80386linux/compiler/gcc4.8.2/linux3.10_32/lib)
endif()
set(XMP_EXTRA_BUILDMACHINE "Cross compiling")
endif()
- set(XMP_PLATFORM_VERSION "linux2.6") # add XMP_BUILDMODE_DIR to follow what other platforms do
+ set(XMP_PLATFORM_VERSION "linux3.10") # add XMP_BUILDMODE_DIR to follow what other platforms do
add_definitions(-DUNIX_ENV=1)
# Linux -------------------------------------------
@@ -139,8 +151,16 @@ if (UNIX)
#set(CMAKE_C_COMPILER "/user/unicore/i80386linux/compiler/gcc4.4.4/linux2.6_32/bin/gcc")
#set(CMAKE_CXX_COMPILER "/user/unicore/i80386linux/compiler/gcc4.4.4/linux2.6_32/bin/gcc")
#set(XMP_GCC_LIBPATH /user/unicore/i80386linux/compiler/gcc4.4.4/linux2.6_32/lib)
- set(XMP_PLATFORM_LINK "-z defs -Xlinker -Bsymbolic -Wl,--no-undefined ${XMP_EXTRA_LINK_FLAGS} ${XMP_TOOLCHAIN_LINK_FLAGS} -lrt -ldl -luuid -lpthread ${XMP_GCC_LIBPATH}/libssp.a")
- set(XMP_SHARED_COMPILE_FLAGS "-Wno-multichar -Wno-implicit -D_FILE_OFFSET_BITS=64 -funsigned-char ${XMP_EXTRA_COMPILE_FLAGS} ${XMP_TOOLCHAIN_COMPILE_FLAGS}")
+
+if(CMAKE_CL_64)
+ set(XMPCORE_UUIDLIB_PATH "-L${XMPROOT_DIR}/XMPCore/third-party/uuid/lib64")
+else()
+ set(XMPCORE_UUIDLIB_PATH "-L${XMPROOT_DIR}/XMPCore/third-party/uuid/lib")
+endif()
+
+
+ set(XMP_PLATFORM_LINK "-z defs -Xlinker -Bsymbolic -Wl,--no-undefined ${XMPCORE_UUIDLIB_PATH} ${XMP_EXTRA_LINK_FLAGS} ${XMP_TOOLCHAIN_LINK_FLAGS} -lrt -ldl -luuid -lpthread ${XMP_GCC_LIBPATH}/libssp.a")
+ set(XMP_SHARED_COMPILE_FLAGS "-Wno-multichar -D_FILE_OFFSET_BITS=64 -funsigned-char ${XMP_EXTRA_COMPILE_FLAGS} ${XMP_TOOLCHAIN_COMPILE_FLAGS}")
set(XMP_SHARED_COMPILE_DEBUG_FLAGS " ")
set(XMP_SHARED_COMPILE_RELEASE_FLAGS "-fwrapv ")
diff --git a/build/README.txt b/build/README.txt
index 322c4c8..31bca61 100644
--- a/build/README.txt
+++ b/build/README.txt
@@ -2,11 +2,11 @@ This README describes steps to generate project files on different platforms. Th
WINDOWS 7 and above
Options to generate Project files in Windows are of the form "Generate XMPSDKToolkit [Dynamic|static] [Win32|x64]". An option of "Dynamic" indicates that the generated project files will build a dll for the XMP SDK components. On the other hand the option of "Static" indicates that the generated project files will build a static lib for the XMP SDK components. Options for "Win32" or "x64" indicate that the generated project files will build the library for 32 bit or 64 bit applications respectively.
-1. Open the windows command prompt and change the current directory to <xmpsdk>/build. 2. Run the batch file GenerateXMPToolkitSDK_win.bat. There will be four options(2-5) to build projects for different configurations, one option(6) to generate projects for all configurations and one option(1) to clean all the projects. 3. After running the batch file (options 2-6),the vc11 projects(using cmake) will be generated at the location <xmpsdk>/build/vc11/<static|dynamic>/<windows|windows_x64>/<XMPToolkitSDK.sln|XMPToolkitSDK64.sln>. 4. Open the Visual Studio solution file and build XMP Toolkit SDK for debug/release configuration.
-MAC OS X 10.7 and above
-Options to generate Project files in Mac are of the form "Generate XMPSDKToolkit [Dynamic|static] [32|64|iOS]". An option of "Dynamic" indicates that the generated project files will build a framework for the XMP SDK components. On the other hand the option of "Static" indicates that the generated project files will build a static lib for the XMP SDK components. Options for "32" or "64" indicate that the generated project files will build for 32 bit or 64 bit applications respectively. The option of "iOS" will generate the project files that will build XMP Core library for iOS simulators and iOS devices.
-1. Open the Terminal on Mac and change the current directory to <xmpsdk>/build. 2. Run the shell script GenerateXMPToolkitSDK_mac.sh. There will be five options(2-6) to build projects for different configurations, one option(7) to generate projects for all configurations and one option(1) to clean all the projects.
-3. After running the batch file (options 2-7),the xcode projects will be generated(using cmake) at the location <xmpsdk>/build/xcode/<static|dynamic>/<intel|intel_64>/<XMPToolkitSDK.xcodeproj|XMPToolkitSDK64.xcodeproj>.
+1. Open the windows command prompt and change the current directory to <xmpsdk>/build. 2. Run the batch file GenerateXMPToolkitSDK_win.bat. There will be four options(2-5) to build projects for different configurations, one option(6) to generate projects for all configurations and one option(1) to clean all the projects. 3. After running the batch file (options 2-6),the vc14 projects(using cmake) will be generated at the location <xmpsdk>/build/vc14/<static|dynamic>/<windows|windows_x64>/<XMPToolkitSDK.sln|XMPToolkitSDK64.sln>. 4. Open the Visual Studio solution file and build XMP Toolkit SDK for debug/release configuration.
+MAC OS X 10.9 and above
+Options to generate Project files in Mac are of the form "Generate XMPSDKToolkit [Dynamic|static] [64|iOS]". An option of "Dynamic" indicates that the generated project files will build a framework for the XMP SDK components. On the other hand the option of "Static" indicates that the generated project files will build a static lib for the XMP SDK components. Option for "64" indicate that the generated project files will build for 64 bit applications. The option of "iOS" will generate the project files that will build XMP Core and XMP Files library for iOS simulators and iOS devices.
+1. Open the Terminal on Mac and change the current directory to <xmpsdk>/build. 2. Run the shell script GenerateXMPToolkitSDK_mac.sh. There will be three options(2-4) to build projects for different configurations, one option(5) to generate projects for all configurations and one option(1) to clean all the projects.
+3. After running the batch file (options 2-5),the xcode projects will be generated(using cmake) at the location <xmpsdk>/build/xcode/<static|dynamic>/<intel_64|ios>/<XMPToolkitSDK.xcodeproj|XMPToolkitSDK64.xcodeproj>.
4. Open the xcodeproj file and build XMP Toolkit SDK for debug/release configuration.
Note: When multiple Xcode versions are installed on a system, the developer has to use xcode-select command to specify the Xcode version that he/she wishes to use. This is done in two steps by fetching the current Xcode folder and changing it if required.
1) Fetch the current Xcode folder $ xcode-select -print-path
diff --git a/build/XMP_BuildInfo.h b/build/XMP_BuildInfo.h
index 35fe00e..21a6bb6 100644
--- a/build/XMP_BuildInfo.h
+++ b/build/XMP_BuildInfo.h
@@ -11,7 +11,7 @@
// =================================================================================================
*/
-#define kXMP_Copyright Copyright (c) 2013
-#define kXMP_CopyrightStr "Copyright (c) 2013"
+#define kXMP_Copyright Copyright (c) 2016
+#define kXMP_CopyrightStr "Copyright (c) 2016"
#endif /* __XMP_BuildInfo_h__ */
diff --git a/build/XMP_Config.cmake b/build/XMP_Config.cmake
index e0377de..dbfdf03 100644
--- a/build/XMP_Config.cmake
+++ b/build/XMP_Config.cmake
@@ -9,7 +9,7 @@
# ==============================================================================
# define minimum cmake version
-cmake_minimum_required(VERSION 2.8.6)
+cmake_minimum_required(VERSION 3.5.2)
# ==============================================================================
# XMP config for XMPTOOLKIT and TestRunner
@@ -20,5 +20,14 @@ endif()
if(NOT DEFINED COMMON_BUILD_SHARED_DIR)
set(COMMON_BUILD_SHARED_DIR ${XMP_ROOT}/build/shared)
endif()
+
+set(INCLUDE_CPP_DOM_SOURCE TRUE)
+
+if (INCLUDE_CPP_DOM_SOURCE)
+ add_definitions(-DENABLE_CPP_DOM_MODEL=1)
+else (INCLUDE_CPP_DOM_SOURCE)
+ add_definitions(-DENABLE_CPP_DOM_MODEL=0)
+endif(INCLUDE_CPP_DOM_SOURCE)
+
include(${XMP_ROOT}/build/XMP_ConfigCommon.cmake)
diff --git a/build/XMP_ConfigCommon.cmake b/build/XMP_ConfigCommon.cmake
index 0dbb31b..1c17dc2 100644
--- a/build/XMP_ConfigCommon.cmake
+++ b/build/XMP_ConfigCommon.cmake
@@ -9,7 +9,7 @@
# ==============================================================================
# define minimum cmake version
-cmake_minimum_required(VERSION 2.8.6)
+cmake_minimum_required(VERSION 3.5.2)
#add definition specific to XMP and shared by all projects
add_definitions(-DXML_STATIC=1 -DHAVE_EXPAT_CONFIG_H=1 )
@@ -18,7 +18,7 @@ if(XMP_BUILD_STATIC)
else()
add_definitions(-DXMP_DynamicBuild=1)
endif()
-add_definitions(-DBUILDING_XMPCOMMON_LIB=1)
+#add_definitions(-DBUILDING_XMPCOMMON_LIB=1)
set (XMPROOT_DIR ${XMP_ROOT})
set (COMPONENT XMP)
@@ -93,6 +93,7 @@ endfunction(CopyResource)
function(CreatePlugin productname outputDir copyWhat)
if(UNIX)
if(APPLE)
+ set_target_properties(${productname} PROPERTIES XCODE_ATTRIBUTE_GCC_SYMBOLS_PRIVATE_EXTERN "YES")
if(APPLE_IOS OR XMP_BUILD_STATIC)
CreateStaticLib(${productname} ${outputDir})
CopyResource(${productname} "${outputDir}/lib${productname}.resources" "${copyWhat}")
@@ -116,6 +117,7 @@ function(CreatePlugin productname outputDir copyWhat)
set(XMP_SHARED_MODULE_SUFFIX ".xpi")
set_target_properties(${productname} PROPERTIES SUFFIX ${XMP_SHARED_MODULE_SUFFIX})
set_target_properties(${productname} PROPERTIES PREFIX "")
+ set_target_properties(${productname} PROPERTIES COMPILE_FLAGS "-fvisibility=hidden")
set(LIBRARY_OUTPUT_PATH ${outputDir} PARENT_SCOPE)
# copy resources
#CopyResource(${productname} "${outputDir}/${productname}.resources" "${copyWhat}")
@@ -322,6 +324,15 @@ macro(SetPluginOutputPath)
endmacro(SetPluginOutputPath)
# ==============================================================================
+# Macro: Set Plugin Optional Output folder
+# Copy plugin output to optional folder in XMPFilesPlugins folder
+# ==============================================================================
+#
+macro(SetOptionalPluginOutputPath)
+ set(XMPPLUGIN_OUTPUT_DIR ${PROJECT_SOURCE_DIR}/${XMP_THIS_PROJECT_RELATIVEPATH}/toolkit/XMPFilesPlugins/optional/${XMP_PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR})
+endmacro(SetOptionalPluginOutputPath)
+
+# ==============================================================================
# Function: Setup XMP for the application
# Copy XMP library, create a symbolic link to Plug-ins, copy MediaAccess and fixup
# ==============================================================================
diff --git a/build/shared/CMakeUtils.bat b/build/shared/CMakeUtils.bat
index d2719b5..dff0c42 100755
--- a/build/shared/CMakeUtils.bat
+++ b/build/shared/CMakeUtils.bat
@@ -8,7 +8,7 @@
REM Available Arguments:
REM [64|32] Bit Architecture (optional, 64 is default)
-REM [2008|2011|2011] VS Version(optional, 2011 is default)
+REM [2008|2011|2011] VS Version(optional, 2015 is default)
REM [Dynamic | Static] optional, Dynamic by default
REM [WarningAsError] optional
REM [Clean] optional
@@ -22,7 +22,7 @@ set CleanCMake=OFF
set XMPROOT=%buildSharedLoc%/../..
:: Default Generator
-set GeneratorVersion=Visual Studio 11
+set GeneratorVersion=Visual Studio 14 2015
set GeneratorArchitecture=Win64
set CMake_Arch64Bit=ON
set CMake_ARCH=x64
@@ -59,9 +59,9 @@ set CMake_LibTypeFolderName=dynamic
)
:: Visual Studio Version
- if /I "%1"=="2011" (
- echo "Generator VS 2011 specified"
- set GeneratorVersion=Visual Studio 11
+ if /I "%1"=="2015" (
+ echo "Generator VS 2015 specified"
+ set GeneratorVersion=Visual Studio 14 2015
set CMakeGenVersion_FolderSuffix=
)
@@ -94,7 +94,7 @@ set CMake64_Folder_Suffix=
)
:: CMake Folder specified:
-set CMakeFolder="vc11/%CMake_LibTypeFolderName%/windows%CMake64_Folder_Suffix%"
+set CMakeFolder="vc14/%CMake_LibTypeFolderName%/windows%CMake64_Folder_Suffix%"
echo CMakeFolder: %CMakeFolder%
:: Create generator type from VS version and architecture
diff --git a/build/shared/SharedConfig.cmake b/build/shared/SharedConfig.cmake
index 6032c35..13a6d2c 100644
--- a/build/shared/SharedConfig.cmake
+++ b/build/shared/SharedConfig.cmake
@@ -9,7 +9,7 @@
# ==============================================================================
# define minimum cmake version
-cmake_minimum_required(VERSION 2.8.6)
+cmake_minimum_required(VERSION 3.5.2)
# ==============================================================================
# Shared config
diff --git a/build/shared/SharedConfig_Common.cmake b/build/shared/SharedConfig_Common.cmake
index 20ddbf1..6b7780a 100644
--- a/build/shared/SharedConfig_Common.cmake
+++ b/build/shared/SharedConfig_Common.cmake
@@ -9,14 +9,14 @@
# ==============================================================================
# define minimum cmake version
-cmake_minimum_required(VERSION 2.8.6)
+cmake_minimum_required(VERSION 3.5.2)
# ==============================================================================
# Function: architecture related settings
# ==============================================================================
function(SetupTargetArchitecture)
if(APPLE_IOS)
- set(${COMPONENT}_CPU_FOLDERNAME "$(ARCHS_STANDARD_32_BIT)" PARENT_SCOPE)
+ set(${COMPONENT}_CPU_FOLDERNAME "$(ARCHS)" PARENT_SCOPE)
else()
if(CMAKE_CL_64)
set(${COMPONENT}_BITDEPTH "64" PARENT_SCOPE)
@@ -82,6 +82,10 @@ function(SetupCompilerFlags)
# only remove inline hidden...
string(REGEX REPLACE "-fvisibility-inlines-hidden" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
endif()
+ if(${${COMPONENT}_VERSIONING_GCC_VERSION} EQUAL 482)
+ #include path -I ${GNU_BASE}/include/c++/4.8.2/x86_64-unknown-linux-gnu
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I ${CMAKE_FIND_ROOT_PATH}/include/c++/4.8.2/x86_64-unknown-linux-gnu")
+ endif()
endif()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${${COMPONENT}_PREPROCESSOR_FLAGS}" PARENT_SCOPE)
diff --git a/build/shared/SharedConfig_Ios.cmake b/build/shared/SharedConfig_Ios.cmake
index be32c4b..6e1bb73 100644
--- a/build/shared/SharedConfig_Ios.cmake
+++ b/build/shared/SharedConfig_Ios.cmake
@@ -9,7 +9,7 @@
# ==============================================================================
# define minimum cmake version
-cmake_minimum_required(VERSION 2.8.6)
+cmake_minimum_required(VERSION 3.5.2)
# ==============================================================================
# Shared config for iOS
@@ -21,7 +21,7 @@ set(CMAKE_C_FLAGS "${${COMPONENT}_SHARED_COMPILE_FLAGS} ${${COMPONENT}_EXTRA_C_C
set(CMAKE_C_FLAGS_DEBUG "${${COMPONENT}_SHARED_COMPILE_DEBUG_FLAGS}")
set(CMAKE_C_FLAGS_RELEASE "${${COMPONENT}_SHARED_COMPILE_RELEASE_FLAGS}")
-set(CMAKE_CXX_FLAGS "${${COMPONENT}_SHARED_COMPILE_FLAGS} ${${COMPONENT}_EXTRA_CXX_COMPILE_FLAGS}")
+set(CMAKE_CXX_FLAGS "-std=c++11 ${${COMPONENT}_SHARED_COMPILE_FLAGS} ${${COMPONENT}_EXTRA_CXX_COMPILE_FLAGS}")
set(CMAKE_CXX_FLAGS_DEBUG "${${COMPONENT}_SHARED_COMPILE_DEBUG_FLAGS}")
set(CMAKE_CXX_FLAGS_RELEASE "${${COMPONENT}_SHARED_COMPILE_RELEASE_FLAGS}")
@@ -96,6 +96,8 @@ function(SetPlatformLinkFlags target linkflags)
set_target_properties(${target} PROPERTIES XCODE_ATTRIBUTE_GCC_WARN_SIGN_COMPARE "YES")
set_target_properties(${target} PROPERTIES XCODE_ATTRIBUTE_GCC_WARN_UNKNOWN_PRAGMAS "YES")
set_target_properties(${target} PROPERTIES XCODE_ATTRIBUTE_GCC_WARN_UNUSED_VALUE "NO")
+ set_target_properties(${target} PROPERTIES XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH "YES")
+ set_target_properties(${target} PROPERTIES XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET "7.0")
endfunction(SetPlatformLinkFlags)
# ==============================================================================
diff --git a/build/shared/SharedConfig_Linux.cmake b/build/shared/SharedConfig_Linux.cmake
index 3a92b2a..4ac3717 100644
--- a/build/shared/SharedConfig_Linux.cmake
+++ b/build/shared/SharedConfig_Linux.cmake
@@ -9,7 +9,7 @@
# ==============================================================================
# define minimum cmake version
-cmake_minimum_required(VERSION 2.8.6)
+cmake_minimum_required(VERSION 3.5.2)
# ==============================================================================
# Shared config for linux
@@ -21,22 +21,25 @@ add_definitions(-DUNIX_ENV=1)
set(COMMON_PLATFORM_LINK " ${${COMPONENT}_PLATFORM_LINK}")
set(COMMON_SHARED_COMPILE_FLAGS "-fPIC ${${COMPONENT}_SHARED_COMPILE_FLAGS} -fexceptions -Wformat -Wformat-security ")
-set(COMMON_SHARED_COMPILE_DEBUG_FLAGS " ${${COMPONENT}_SHARED_COMPILE_DEBUG_FLAGS} -g -O0 -DDEBUG=1 -D_DEBUG=1")
-set(COMMON_SHARED_COMPILE_RELEASE_FLAGS "-Os ${${COMPONENT}_SHARED_COMPILE_RELEASE_FLAGS} -DNDEBUG=1 -D_NDEBUG=1")
+set(COMMON_SHARED_COMPILE_DEBUG_FLAGS " ${${COMPONENT}_SHARED_COMPILE_DEBUG_FLAGS} -g -DDEBUG=1 -D_DEBUG=1")
+set(COMMON_SHARED_COMPILE_RELEASE_FLAGS "${${COMPONENT}_SHARED_COMPILE_RELEASE_FLAGS} -DNDEBUG=1 -D_NDEBUG=1")
if(NOT ${COMPONENT}_DISABLE_ALL_WARNINGS)
set(COMMON_SHARED_COMPILE_FLAGS "${COMMON_SHARED_COMPILE_FLAGS} -Wall")
endif()
if(${COMPONENT}_ENABLE_SECURE_SETTINGS)
- set(COMMON_SHARED_COMPILE_FLAGS "${COMMON_SHARED_COMPILE_FLAGS} -fstack-protector -D_FORTIFY_SOURCE=2")
+ set(COMMON_SHARED_COMPILE_FLAGS "${COMMON_SHARED_COMPILE_FLAGS} -fstack-protector -O -D_FORTIFY_SOURCE=2")
set(COMMON_PLATFORM_LINK "${COMMON_PLATFORM_LINK} -Wl,-z,relro -Wl,-z,now")
+else()
+ set(COMMON_SHARED_COMPILE_DEBUG_FLAGS "${COMMON_SHARED_COMPILE_FLAGS} -O0")
+ set(COMMON_SHARED_COMPILE_RELEASE_FLAGS "${COMMON_SHARED_COMPILE_FLAGS} -Os")
endif()
-set(CMAKE_C_FLAGS "${COMMON_SHARED_COMPILE_FLAGS} ${${COMPONENT}_EXTRA_C_COMPILE_FLAGS} ")
+set(CMAKE_C_FLAGS "${COMMON_SHARED_COMPILE_FLAGS} ${${COMPONENT}_EXTRA_C_COMPILE_FLAGS} -Wno-implicit ")
set(CMAKE_C_FLAGS_DEBUG "${COMMON_SHARED_COMPILE_DEBUG_FLAGS}")
set(CMAKE_C_FLAGS_RELEASE "${COMMON_SHARED_COMPILE_RELEASE_FLAGS}")
-set(CMAKE_CXX_FLAGS "${COMMON_SHARED_COMPILE_FLAGS} ${COMMON_EXTRA_CXX_COMPILE_FLAGS}")
+set(CMAKE_CXX_FLAGS "${COMMON_SHARED_COMPILE_FLAGS} ${COMMON_EXTRA_CXX_COMPILE_FLAGS} -Wno-reorder -std=c++0x")
set(CMAKE_CXX_FLAGS_DEBUG "${COMMON_SHARED_COMPILE_DEBUG_FLAGS}")
set(CMAKE_CXX_FLAGS_RELEASE "${COMMON_SHARED_COMPILE_RELEASE_FLAGS}")
set(COMMON_PLATFORM_BEGIN_WHOLE_ARCHIVE "-Wl,--whole-archive")
diff --git a/build/shared/SharedConfig_Mac.cmake b/build/shared/SharedConfig_Mac.cmake
index 1e13d85..43a14ae 100644
--- a/build/shared/SharedConfig_Mac.cmake
+++ b/build/shared/SharedConfig_Mac.cmake
@@ -9,7 +9,7 @@
# ==============================================================================
# define minimum cmake version
-cmake_minimum_required(VERSION 2.8.6)
+cmake_minimum_required(VERSION 3.5.2)
# ==============================================================================
# Shared config for mac
@@ -48,7 +48,7 @@ set(CMAKE_C_FLAGS "${COMMON_SHARED_COMPILE_FLAGS} ${COMMON_EXTRA_C_COMPILE_FLAGS
set(CMAKE_C_FLAGS_DEBUG "${COMMON_SHARED_COMPILE_DEBUG_FLAGS}")
set(CMAKE_C_FLAGS_RELEASE "${COMMON_SHARED_COMPILE_RELEASE_FLAGS}")
-set(COMMON_SHARED_CXX_COMPILE_FLAGS "${${COMPONENT}_SHARED_CXX_COMPILE_FLAGS} -Wnon-virtual-dtor -Woverloaded-virtual -Wno-unused-variable -Wno-unused-function -Wno-unused-parameter")
+set(COMMON_SHARED_CXX_COMPILE_FLAGS "${${COMPONENT}_SHARED_CXX_COMPILE_FLAGS} -std=c++11 -Wnon-virtual-dtor -Woverloaded-virtual -Wno-unused-variable -Wno-unused-function -Wno-unused-parameter")
set(CMAKE_CXX_FLAGS "-funsigned-char -fshort-enums -fno-common ${COMMON_SHARED_CXX_COMPILE_FLAGS} ${COMMON_EXTRA_CXX_COMPILE_FLAGS}")
set(CMAKE_CXX_FLAGS_DEBUG "${COMMON_SHARED_COMPILE_DEBUG_FLAGS}")
set(CMAKE_CXX_FLAGS_RELEASE "${COMMON_SHARED_COMPILE_RELEASE_FLAGS}")
@@ -61,6 +61,8 @@ set(COMMON_PLATFORM_BEGIN_WHOLE_ARCHIVE "")
set(COMMON_PLATFORM_END_WHOLE_ARCHIVE "")
set(COMMON_DYLIBEXTENSION "dylib")
+# Setting libstdc++ as default library for compilation
+set (CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libstdc++")
find_program(GCCTOOL gcc HINTS "/usr/bin" "${OSX_DEVELOPER_ROOT}/usr/bin")
if (${GCCTOOL} STREQUAL "GCCTOOL-NOTFOUND")
diff --git a/build/shared/SharedConfig_Win.cmake b/build/shared/SharedConfig_Win.cmake
index f370233..97231e1 100644
--- a/build/shared/SharedConfig_Win.cmake
+++ b/build/shared/SharedConfig_Win.cmake
@@ -9,7 +9,7 @@
# ==============================================================================
# define minimum cmake version
-cmake_minimum_required(VERSION 2.8.6)
+cmake_minimum_required(VERSION 3.5.2)
# ==============================================================================
# Shared config for windows
diff --git a/build/shared/ToolchainLLVM.cmake b/build/shared/ToolchainLLVM.cmake
index 37bbb71..ebd511d 100644
--- a/build/shared/ToolchainLLVM.cmake
+++ b/build/shared/ToolchainLLVM.cmake
@@ -14,5 +14,5 @@
set(CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "com.apple.compilers.llvm.clang.1_0")
# SDK and deployment
-set(XMP_OSX_SDK 10.8)
-set(XMP_OSX_TARGET 10.7)
+set(XMP_OSX_SDK 10.11)
+set(XMP_OSX_TARGET 10.9)
diff --git a/build/shared/Toolchain_ios.cmake b/build/shared/Toolchain_ios.cmake
index 8c3bab5..eaf06d6 100644
--- a/build/shared/Toolchain_ios.cmake
+++ b/build/shared/Toolchain_ios.cmake
@@ -50,7 +50,8 @@ set (CMAKE_CXX_FLAGS "-headerpad_max_install_names -fvisibility=hidden -fvisibil
set (CMAKE_C_LINK_FLAGS "-Wl,-search_paths_first ${CMAKE_C_LINK_FLAGS}")
set (CMAKE_CXX_LINK_FLAGS "-Wl,-search_paths_first ${CMAKE_CXX_LINK_FLAGS}")
-
+# Setting Standard C++ complier library as 'libstdc++'
+set (CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libstdc++")
set (CMAKE_PLATFORM_HAS_INSTALLNAME 1)
set (CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-dynamiclib -headerpad_max_install_names")
set (CMAKE_SHARED_MODULE_CREATE_C_FLAGS "-bundle -headerpad_max_install_names")
@@ -122,9 +123,9 @@ message (STATUS "CMAKE_IOS_SDK_ROOT ${CMAKE_IOS_SDK_ROOT}")
# Set the sysroot default to the most recent SDK
set (CMAKE_OSX_SYSROOT ${CMAKE_IOS_SDK_ROOT} CACHE PATH "Sysroot used for iOS support")
-# set the architecture for iOS - using ARCHS_STANDARD_32_BIT sets armv6,armv7 and appears to be XCode's standard.
+# set the architecture for iOS - using ARCHS_STANDARD_INCLUDING_64_BIT sets armv7 and arm64.
# The other value that works is ARCHS_UNIVERSAL_IPHONE_OS but that sets armv7 only
-set (CMAKE_OSX_ARCHITECTURES "$(ARCHS_STANDARD_32_BIT)" CACHE string "Build architecture for iOS")
+set (CMAKE_OSX_ARCHITECTURES "$(ARCHS_STANDARD_INCLUDING_64_BIT)" CACHE string "Build architecture for iOS")
# Set the find root to the iOS developer roots and to user defined paths
set (CMAKE_FIND_ROOT_PATH ${CMAKE_IOS_DEVELOPER_ROOT} ${CMAKE_IOS_SDK_ROOT} ${CMAKE_PREFIX_PATH} CACHE string "iOS find search path root")
@@ -140,6 +141,6 @@ set (CMAKE_SYSTEM_FRAMEWORK_PATH
)
# only search the iOS sdks, not the remainder of the host filesystem
-set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY)
-set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
-set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
+set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM BOTH)
+set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
+set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
diff --git a/docs/API/IArrayNode_8h.html b/docs/API/IArrayNode_8h.html
new file mode 100755
index 0000000..29e7964
--- /dev/null
+++ b/docs/API/IArrayNode_8h.html
@@ -0,0 +1,66 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/IArrayNode.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('IArrayNode_8h.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">IArrayNode.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="ICompositeNode_8h_source.html">XMPCore/Interfaces/ICompositeNode.h</a>&quot;</code><br />
+</div>
+<p><a href="IArrayNode_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html">AdobeXMPCore::IArrayNode_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version1 of the interface that represents an Array Node of XMP DOM. <a href="classAdobeXMPCore_1_1IArrayNode__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceAdobeXMPCore"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/IArrayNode_8h_source.html b/docs/API/IArrayNode_8h_source.html
new file mode 100755
index 0000000..71c5200
--- /dev/null
+++ b/docs/API/IArrayNode_8h_source.html
@@ -0,0 +1,85 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/IArrayNode.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('IArrayNode_8h_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">IArrayNode.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="IArrayNode_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __IArrayNode_h__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __IArrayNode_h__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// ADOBE SYSTEMS INCORPORATED</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// Copyright 2014 Adobe Systems Incorporated</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// All Rights Reserved</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ICompositeNode_8h.html">XMPCore/Interfaces/ICompositeNode.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html"> 16</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a> {</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IArrayNode__v1.html"> 25</a></span>&#160; <span class="keyword">class </span><a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="classAdobeXMPCore_1_1IArrayNode__v1.html">IArrayNode_v1</a></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">ICompositeNode_v1</a></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; {</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3"> 33</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">enum</span> {</div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3a9e94ffd1d41fc1770ea2430ddb6b0850"> 35</a></span>&#160; kAFNone = 0,</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3afbd5e7a5cc72cd12eeec6e4ab370b29c"> 38</a></span>&#160; kAFUnordered = 1 &lt;&lt; 0,</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3ae739b09d3ac25faa60551f181c273163"> 41</a></span>&#160; kAFOrdered = 1 &lt;&lt; 1,</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3a76f68496b69df8d9ff018d0eb7cf214c"> 44</a></span>&#160; kAFAlternative = 1 &lt;&lt; 2,</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3a7dd5034acb7178341218ab2389bb45cf"> 47</a></span>&#160; kAFAll = <a class="code" href="namespaceAdobeXMPCommon.html#a3e31c8b25cbf95c42b8e439071bdf865">kAllBits</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; } <a class="code" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3">eArrayForm</a>;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">virtual</span> eArrayForm APICALL GetArrayForm() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL GetChildNodeType() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL GetNodeAtIndex( <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> index ) = 0;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IArrayNode__v1.html#ae3bf9368ff5fa36665e21911bbab98b5"> 72</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">spcINode</a> <a class="code" href="classAdobeXMPCore_1_1IArrayNode__v1.html#ae3bf9368ff5fa36665e21911bbab98b5">GetNodeAtIndex</a>( <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> index )<span class="keyword"> const </span>{</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCore_1_1IArrayNode__v1.html">IArrayNode_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;GetNodeAtIndex( index );</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IArrayNode__v1.html#ab6cffa23c82a1dee98d634e8b4081510"> 87</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a> <a class="code" href="classAdobeXMPCore_1_1IArrayNode__v1.html#ab6cffa23c82a1dee98d634e8b4081510">GetSimpleNodeAtIndex</a>( <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> index )<span class="keyword"> const </span>{</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">auto</span> node = GetNodeAtIndex( index );</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToSimpleNode();</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a>();</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a37ba080075f5158ffdffbb36437e2622"> 93</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a> <a class="code" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a37ba080075f5158ffdffbb36437e2622">GetSimpleNodeAtIndex</a>( <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> index ) {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">auto</span> node = GetNodeAtIndex( index );</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToSimpleNode();</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a>();</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IArrayNode__v1.html#aabcee273a5efdaf57975f52f11ba8e85"> 110</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a> <a class="code" href="classAdobeXMPCore_1_1IArrayNode__v1.html#aabcee273a5efdaf57975f52f11ba8e85">GetStructureNodeAtIndex</a>( <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> index )<span class="keyword"> const </span>{</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">auto</span> node = GetNodeAtIndex( index );</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToStructureNode();</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a>();</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IArrayNode__v1.html#aaf0ef3b97a41d1035f789dc3ab127bae"> 116</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a> <a class="code" href="classAdobeXMPCore_1_1IArrayNode__v1.html#aaf0ef3b97a41d1035f789dc3ab127bae">GetStructureNodeAtIndex</a>( <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> index ) {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">auto</span> node = GetNodeAtIndex( index );</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToStructureNode();</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a>();</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; }</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a57011f7b4cf194ef1a2e52011671b862"> 133</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a> <a class="code" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a57011f7b4cf194ef1a2e52011671b862">GetArrayNodeAtIndex</a>( <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> index )<span class="keyword"> const </span>{</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">auto</span> node = GetNodeAtIndex( index );</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToArrayNode();</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a>();</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; }</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IArrayNode__v1.html#ac16b0614e51f8323585d653c0d36faf2"> 139</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a> <a class="code" href="classAdobeXMPCore_1_1IArrayNode__v1.html#ac16b0614e51f8323585d653c0d36faf2">GetArrayNodeAtIndex</a>( <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> index ) {</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">auto</span> node = GetNodeAtIndex( index );</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToArrayNode();</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a>();</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; }</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL InsertNodeAtIndex( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp; node, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> index ) = 0;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL ReplaceNodeAtIndex( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp; node, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> index ) = 0;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL RemoveNodeAtIndex( <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> index ) = 0;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; </div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; </div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#a0f163418e9969110fdf767b0092a08cd">pIArrayNode</a> APICALL GetActualIArrayNode() <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a> = 0;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#a3c61d7ec18d24b058624ff83657ad886">pcIArrayNode</a> GetActualIArrayNode() <span class="keyword">const</span> __NOTHROW__ {</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCore_1_1IArrayNode__v1.html">IArrayNode_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;GetActualIArrayNode();</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; }</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore__Int.html#af2a081973401c42b5772dc9faec58a58">AdobeXMPCore_Int::pIArrayNode_I</a> APICALL GetIArrayNode_I() __NOTHROW__ = 0;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore__Int.html#ad705150e811fbc6ff116e850c444fc2d">AdobeXMPCore_Int::pcIArrayNode_I</a> GetIArrayNode_I() <span class="keyword">const</span> __NOTHROW__ {</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCore_1_1IArrayNode__v1.html">IArrayNode_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;GetIArrayNode_I();</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; }</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; </div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a> MakeShared( <a class="code" href="classAdobeXMPCore_1_1IArrayNode__v1.html">pIArrayNode_base</a> ptr );</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a> MakeShared( <a class="code" href="classAdobeXMPCore_1_1IArrayNode__v1.html">pcIArrayNode_base</a> ptr ) {</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">return</span> MakeShared( const_cast&lt; pIArrayNode_base &gt;( ptr ) );</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; }</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> GetInterfaceID() { <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a865ec7a2af5304ec42d443da038ae5b7">kIArrayNodeID</a>; }</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> GetInterfaceVersion() { <span class="keywordflow">return</span> 1; }</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="comment">// Factories to create the array node</span></div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a> CreateUnorderedArrayNode( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength );</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a> CreateOrderedArrayNode( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength );</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a> CreateAlternativeArrayNode( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength );</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00284"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IArrayNode__v1.html#ae72a477964eaa0590d7ee415e044bc02"> 284</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1IArrayNode__v1.html#ae72a477964eaa0590d7ee415e044bc02">~IArrayNode_v1</a>() __NOTHROW__ {}</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL getArrayForm( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL getChildNodeType( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> APICALL getNodeAtIndex( <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> index, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL insertNodeAtIndex( <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> node, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> index, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> APICALL replaceNodeAtIndex( <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> node, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> index, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> APICALL removeNodeAtIndex( <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> index, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;<span class="preprocessor"> #ifdef FRIEND_CLASS_DECLARATION</span></div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; FRIEND_CLASS_DECLARATION();</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <a class="code" href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a>();</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; };</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;}</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;<span class="preprocessor">#endif // __IArrayNode_h__</span></div><div class="ttc" id="namespaceAdobeXMPCommon_html_aea1d692da07b844d1f642b47ea6a91bd"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">AdobeXMPCommon::uint64</a></div><div class="ttdeci">XMP_Uns64 uint64</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00142">XMPCommonDefines.h:142</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a865ec7a2af5304ec42d443da038ae5b7"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a865ec7a2af5304ec42d443da038ae5b7">AdobeXMPCore::kIArrayNodeID</a></div><div class="ttdeci">static const uint64 kIArrayNodeID(0x634172724e6f6465)</div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IArrayNode__v1_html_ab6cffa23c82a1dee98d634e8b4081510"><div class="ttname"><a href="classAdobeXMPCore_1_1IArrayNode__v1.html#ab6cffa23c82a1dee98d634e8b4081510">AdobeXMPCore::IArrayNode_v1::GetSimpleNodeAtIndex</a></div><div class="ttdeci">XMP_PRIVATE spcISimpleNode GetSimpleNodeAtIndex(sizet index) const </div><div class="ttdoc">Get the node at the specified index as simple node, if possible. </div><div class="ttdef"><b>Definition:</b> <a href="IArrayNode_8h_source.html#l00087">IArrayNode.h:87</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a0f163418e9969110fdf767b0092a08cd"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a0f163418e9969110fdf767b0092a08cd">AdobeXMPCore::pIArrayNode</a></div><div class="ttdeci">IArrayNode * pIArrayNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00111">XMPCoreFwdDeclarations.h:111</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html_aac6a4810b1f485f147ab833be63f4d7b"><div class="ttname"><a href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a></div><div class="ttdeci">#define XMP_PUBLIC</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00188">XMP_Environment.h:188</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a5a929113d3d50bda3fb7135a5c8b24a2"><div class="ttname"><a href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></div><div class="ttdeci">#define __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00117">XMPCommonDefines.h:117</a></div></div>
+<div class="ttc" id="ICompositeNode_8h_html"><div class="ttname"><a href="ICompositeNode_8h.html">ICompositeNode.h</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ab20ecb8d094c1dd81cb278370b746343"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">AdobeXMPCore::spISimpleNode</a></div><div class="ttdeci">shared_ptr&lt; ISimpleNode &gt; spISimpleNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00077">XMPCoreFwdDeclarations.h:77</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IArrayNode__v1_html_aaf0ef3b97a41d1035f789dc3ab127bae"><div class="ttname"><a href="classAdobeXMPCore_1_1IArrayNode__v1.html#aaf0ef3b97a41d1035f789dc3ab127bae">AdobeXMPCore::IArrayNode_v1::GetStructureNodeAtIndex</a></div><div class="ttdeci">XMP_PRIVATE spIStructureNode GetStructureNodeAtIndex(sizet index)</div><div class="ttdef"><b>Definition:</b> <a href="IArrayNode_8h_source.html#l00116">IArrayNode.h:116</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IArrayNode__v1_html_ac16b0614e51f8323585d653c0d36faf2"><div class="ttname"><a href="classAdobeXMPCore_1_1IArrayNode__v1.html#ac16b0614e51f8323585d653c0d36faf2">AdobeXMPCore::IArrayNode_v1::GetArrayNodeAtIndex</a></div><div class="ttdeci">XMP_PRIVATE spIArrayNode GetArrayNodeAtIndex(sizet index)</div><div class="ttdef"><b>Definition:</b> <a href="IArrayNode_8h_source.html#l00139">IArrayNode.h:139</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a957c57fcbb47c704fc5c31cf36dcbde7"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">AdobeXMPCore::spIStructureNode</a></div><div class="ttdeci">shared_ptr&lt; IStructureNode &gt; spIStructureNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00101">XMPCoreFwdDeclarations.h:101</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IArrayNode__v1_html_a7b5b5daa606aeb28496f326ac705a9a3"><div class="ttname"><a href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3">AdobeXMPCore::IArrayNode_v1::eArrayForm</a></div><div class="ttdeci">eArrayForm</div><div class="ttdoc">Indicates different kinds of array forms possible in XMP i.e, unordered, ordered and alternative...</div><div class="ttdef"><b>Definition:</b> <a href="IArrayNode_8h_source.html#l00033">IArrayNode.h:33</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_af2a081973401c42b5772dc9faec58a58"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#af2a081973401c42b5772dc9faec58a58">AdobeXMPCore_Int::pIArrayNode_I</a></div><div class="ttdeci">IArrayNode_I * pIArrayNode_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00257">XMPCoreFwdDeclarations.h:257</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a4ea338a9eed923abf6aba47a27926a0f"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">AdobeXMPCore::spcIArrayNode</a></div><div class="ttdeci">shared_ptr&lt; const IArrayNode &gt; spcIArrayNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00114">XMPCoreFwdDeclarations.h:114</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a3e31c8b25cbf95c42b8e439071bdf865"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a3e31c8b25cbf95c42b8e439071bdf865">AdobeXMPCommon::kAllBits</a></div><div class="ttdeci">static const uint32 kAllBits(0xFFFFFFFF)</div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html"><div class="ttname"><a href="namespaceAdobeXMPCore.html">AdobeXMPCore</a></div><div class="ttdef"><b>Definition:</b> <a href="IArrayNode_8h_source.html#l00016">IArrayNode.h:16</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></div><div class="ttdoc">Version1 of the interface that serves as a base interface to all types of nodes in the XMP DOM...</div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00026">INode.h:26</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1ICompositeNode__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></div><div class="ttdoc">Version1 of the interface that serves as a base interface to all composite types of nodes in the XMP ...</div><div class="ttdef"><b>Definition:</b> <a href="ICompositeNode_8h_source.html#l00025">ICompositeNode.h:25</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a24e8e82d63d879d77408ce5c7e30c609"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">AdobeXMPCore::spIArrayNode</a></div><div class="ttdeci">shared_ptr&lt; IArrayNode &gt; spIArrayNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00113">XMPCoreFwdDeclarations.h:113</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_ad705150e811fbc6ff116e850c444fc2d"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#ad705150e811fbc6ff116e850c444fc2d">AdobeXMPCore_Int::pcIArrayNode_I</a></div><div class="ttdeci">const IArrayNode_I * pcIArrayNode_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00259">XMPCoreFwdDeclarations.h:259</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IArrayNode__v1_html_ae72a477964eaa0590d7ee415e044bc02"><div class="ttname"><a href="classAdobeXMPCore_1_1IArrayNode__v1.html#ae72a477964eaa0590d7ee415e044bc02">AdobeXMPCore::IArrayNode_v1::~IArrayNode_v1</a></div><div class="ttdeci">virtual ~IArrayNode_v1() __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="IArrayNode_8h_source.html#l00284">IArrayNode.h:284</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IArrayNode__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1IArrayNode__v1.html">AdobeXMPCore::IArrayNode_v1</a></div><div class="ttdoc">Version1 of the interface that represents an Array Node of XMP DOM. </div><div class="ttdef"><b>Definition:</b> <a href="IArrayNode_8h_source.html#l00025">IArrayNode.h:25</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></div><div class="ttdoc">Version1 of the interface that represents an error/warning encountered during processing. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00026">IError.h:26</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a1c85c2f558b495c3d41eabe692a96cf2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a></div><div class="ttdeci">uint32 sizet</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00146">XMPCommonDefines.h:146</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IArrayNode__v1_html_a37ba080075f5158ffdffbb36437e2622"><div class="ttname"><a href="classAdobeXMPCore_1_1IArrayNode__v1.html#a37ba080075f5158ffdffbb36437e2622">AdobeXMPCore::IArrayNode_v1::GetSimpleNodeAtIndex</a></div><div class="ttdeci">XMP_PRIVATE spISimpleNode GetSimpleNodeAtIndex(sizet index)</div><div class="ttdef"><b>Definition:</b> <a href="IArrayNode_8h_source.html#l00093">IArrayNode.h:93</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IArrayNode__v1_html_ae3bf9368ff5fa36665e21911bbab98b5"><div class="ttname"><a href="classAdobeXMPCore_1_1IArrayNode__v1.html#ae3bf9368ff5fa36665e21911bbab98b5">AdobeXMPCore::IArrayNode_v1::GetNodeAtIndex</a></div><div class="ttdeci">XMP_PRIVATE spcINode GetNodeAtIndex(sizet index) const </div><div class="ttdef"><b>Definition:</b> <a href="IArrayNode_8h_source.html#l00072">IArrayNode.h:72</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_a46b01045c1addbc8f444bd21384b7913"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">AdobeXMPCore::INode_v1::eNodeType</a></div><div class="ttdeci">eNodeType</div><div class="ttdoc">Indicates various types of node available in XMP Data Model like simple, array and structure...</div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00036">INode.h:36</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a4cb671d44948c7505c33431ec12f6c1f"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">AdobeXMPCore::spcISimpleNode</a></div><div class="ttdeci">shared_ptr&lt; const ISimpleNode &gt; spcISimpleNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00078">XMPCoreFwdDeclarations.h:78</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a3c61d7ec18d24b058624ff83657ad886"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a3c61d7ec18d24b058624ff83657ad886">AdobeXMPCore::pcIArrayNode</a></div><div class="ttdeci">const IArrayNode * pcIArrayNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00112">XMPCoreFwdDeclarations.h:112</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a89e9297f497c2b3f1179788c31d24da4"><div class="ttname"><a href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a></div><div class="ttdeci">#define REQ_FRIEND_CLASS_DECLARATION()</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00107">XMPCommonDefines.h:107</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IArrayNode__v1_html_aabcee273a5efdaf57975f52f11ba8e85"><div class="ttname"><a href="classAdobeXMPCore_1_1IArrayNode__v1.html#aabcee273a5efdaf57975f52f11ba8e85">AdobeXMPCore::IArrayNode_v1::GetStructureNodeAtIndex</a></div><div class="ttdeci">XMP_PRIVATE spcIStructureNode GetStructureNodeAtIndex(sizet index) const </div><div class="ttdoc">Get the node at the specified index as structure node, if possible. </div><div class="ttdef"><b>Definition:</b> <a href="IArrayNode_8h_source.html#l00110">IArrayNode.h:110</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aeec2c711a611cbc3c77ef1a0bb026e33"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">AdobeXMPCore::spINode</a></div><div class="ttdeci">shared_ptr&lt; INode &gt; spINode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00065">XMPCoreFwdDeclarations.h:65</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IArrayNode__v1_html_a57011f7b4cf194ef1a2e52011671b862"><div class="ttname"><a href="classAdobeXMPCore_1_1IArrayNode__v1.html#a57011f7b4cf194ef1a2e52011671b862">AdobeXMPCore::IArrayNode_v1::GetArrayNodeAtIndex</a></div><div class="ttdeci">XMP_PRIVATE spcIArrayNode GetArrayNodeAtIndex(sizet index) const </div><div class="ttdoc">Get the node at the specified index as an array node, if possible. </div><div class="ttdef"><b>Definition:</b> <a href="IArrayNode_8h_source.html#l00133">IArrayNode.h:133</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a597eaeb0ed86794ea01f74a5be0f88ed"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">AdobeXMPCore::spcINode</a></div><div class="ttdeci">shared_ptr&lt; const INode &gt; spcINode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00066">XMPCoreFwdDeclarations.h:66</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html_a917e8e3f02685ec390fa3aee270f7747"><div class="ttname"><a href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a></div><div class="ttdeci">#define XMP_PRIVATE</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00189">XMP_Environment.h:189</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ab5807ab783087243a3676a19ad6f9b90"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">AdobeXMPCore::spcIStructureNode</a></div><div class="ttdeci">shared_ptr&lt; const IStructureNode &gt; spcIStructureNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00102">XMPCoreFwdDeclarations.h:102</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a0b1bbe96e1a757e66974c2f076afe4d2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">AdobeXMPCommon::uint32</a></div><div class="ttdeci">XMP_Uns32 uint32</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00144">XMPCommonDefines.h:144</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/IClientDOMParser_8h.html b/docs/API/IClientDOMParser_8h.html
new file mode 100755
index 0000000..524a581
--- /dev/null
+++ b/docs/API/IClientDOMParser_8h.html
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/IClientDOMParser.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('IClientDOMParser_8h.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">IClientDOMParser.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCore/XMPCoreFwdDeclarations.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="IError_8h_source.html">XMPCommon/Interfaces/IError.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="IConfigurable_8h_source.html">XMPCommon/Interfaces/BaseInterfaces/IConfigurable.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="XMPCoreErrorCodes_8h_source.html">XMPCore/XMPCoreErrorCodes.h</a>&quot;</code><br />
+</div>
+<p><a href="IClientDOMParser_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html">AdobeXMPCore::IClientDOMParser_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version 1 of the interface that supports parsing by the client supplied parser of the XMP Data Model. <a href="classAdobeXMPCore_1_1IClientDOMParser__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceAdobeXMPCore"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/IClientDOMParser_8h_source.html b/docs/API/IClientDOMParser_8h_source.html
new file mode 100755
index 0000000..0b7be18
--- /dev/null
+++ b/docs/API/IClientDOMParser_8h_source.html
@@ -0,0 +1,74 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/IClientDOMParser.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('IClientDOMParser_8h_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">IClientDOMParser.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="IClientDOMParser_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// ADOBE SYSTEMS INCORPORATED</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// Copyright 2015 Adobe Systems Incorporated</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// All Rights Reserved</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="XMPCoreFwdDeclarations_8h.html">XMPCore/XMPCoreFwdDeclarations.h</a>&quot;</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="IError_8h.html">XMPCommon/Interfaces/IError.h</a>&quot;</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="IConfigurable_8h.html">XMPCommon/Interfaces/BaseInterfaces/IConfigurable.h</a>&quot;</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="XMPCoreErrorCodes_8h.html">XMPCore/XMPCoreErrorCodes.h</a>&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a> {</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html"> 22</a></span>&#160; <span class="keyword">class </span><a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html">IClientDOMParser_v1</a></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; {</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL Parse( <span class="keyword">const</span> <span class="keywordtype">char</span> * buffer, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> bufferLength, <a class="code" href="classAdobeXMPCommon_1_1IConfigurable.html">pcIConfigurable</a> configurationParameters, <a class="code" href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html">ReportErrorAndContinueFunctor</a> proc ) = 0;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html#aaaf9b00cdda11d05f0a5206665096c11"> 42</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL <a class="code" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html#aaaf9b00cdda11d05f0a5206665096c11">AreKeysCaseSensitive</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html#a5df18f349ed7db99a4bb96660b0008b5"> 50</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL <a class="code" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html#a5df18f349ed7db99a4bb96660b0008b5">Initialize</a>( <a class="code" href="classAdobeXMPCommon_1_1IConfigurable.html">pIConfigurable</a> configurationParameters ) {};</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html#a7d40872cc3ce6ac3b298709232399984"> 60</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42">eConfigurableErrorCode</a> APICALL <a class="code" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html#a7d40872cc3ce6ac3b298709232399984">Validate</a>( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key, <a class="code" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1">IConfigurable::eDataType</a> dataType, <span class="keyword">const</span> <a class="code" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html">IConfigurable::CombinedDataValue</a> &amp; dataValue ) {</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a48a521a6e08fd24bef691efb926189f4">kCECNone</a>;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; }</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL Release() <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a> = 0;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html#ac9890eb0a1635872a2ed2f86544b0057"> 73</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html#ac9890eb0a1635872a2ed2f86544b0057">~IClientDOMParser_v1</a>() {}</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> APICALL parse( <span class="keyword">const</span> <span class="keywordtype">char</span> * buffer, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> bufferLength, <a class="code" href="classAdobeXMPCommon_1_1IConfigurable.html">pcIConfigurable</a> configurationParameters, <a class="code" href="namespaceAdobeXMPCommon.html#a8dc9ba4ce78a957c0843998c2468241a">ReportErrorAndContinueABISafeProc</a> proc, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error, <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> &amp; unknownExceptionCaught ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL areKeysCaseSensitive( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error, <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> &amp; unknownExceptionCaught ) <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL initialize( <a class="code" href="classAdobeXMPCommon_1_1IConfigurable.html">pIConfigurable</a> configurationParameters, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error, <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> &amp; unknownExceptionCaught ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL validate( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key, <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> dataType, <span class="keyword">const</span> <a class="code" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html">IConfigurable::CombinedDataValue</a> &amp; dataValue, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error, <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> &amp; unknownExceptionCaught ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor"> #ifdef FRIEND_CLASS_DECLARATION</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; FRIEND_CLASS_DECLARATION();</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <a class="code" href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a>();</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; };</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;}</div><div class="ttc" id="namespaceAdobeXMPCommon_html_aea1d692da07b844d1f642b47ea6a91bd"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">AdobeXMPCommon::uint64</a></div><div class="ttdeci">XMP_Uns64 uint64</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00142">XMPCommonDefines.h:142</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a87fa911f1ea5a79801b7fe3530637c42"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42">AdobeXMPCommon::eConfigurableErrorCode</a></div><div class="ttdeci">eConfigurableErrorCode</div><div class="ttdoc">Indicates various types of error codes within Configurable domain. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00090">XMPCommonErrorCodes.h:90</a></div></div>
+<div class="ttc" id="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue_html"><div class="ttname"><a href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html">AdobeXMPCommon::IConfigurable::CombinedDataValue</a></div><div class="ttdoc">A union data type to store all kind of values. </div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00146">IConfigurable.h:146</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a87fa911f1ea5a79801b7fe3530637c42a48a521a6e08fd24bef691efb926189f4"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a48a521a6e08fd24bef691efb926189f4">AdobeXMPCommon::kCECNone</a></div><div class="ttdoc">Indicates no error. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00092">XMPCommonErrorCodes.h:92</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IClientDOMParser__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1IClientDOMParser__v1.html">AdobeXMPCore::IClientDOMParser_v1</a></div><div class="ttdoc">Version 1 of the interface that supports parsing by the client supplied parser of the XMP Data Model...</div><div class="ttdef"><b>Definition:</b> <a href="IClientDOMParser_8h_source.html#l00022">IClientDOMParser.h:22</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html_aac6a4810b1f485f147ab833be63f4d7b"><div class="ttname"><a href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a></div><div class="ttdeci">#define XMP_PUBLIC</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00188">XMP_Environment.h:188</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a5a929113d3d50bda3fb7135a5c8b24a2"><div class="ttname"><a href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></div><div class="ttdeci">#define __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00117">XMPCommonDefines.h:117</a></div></div>
+<div class="ttc" id="IConfigurable_8h_html"><div class="ttname"><a href="IConfigurable_8h.html">IConfigurable.h</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IConfigurable_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></div><div class="ttdoc">Interface that allows to attach various key-value parameters to the underlying object. </div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00030">IConfigurable.h:30</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html"><div class="ttname"><a href="namespaceAdobeXMPCore.html">AdobeXMPCore</a></div><div class="ttdef"><b>Definition:</b> <a href="IArrayNode_8h_source.html#l00016">IArrayNode.h:16</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8dc9ba4ce78a957c0843998c2468241a"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8dc9ba4ce78a957c0843998c2468241a">AdobeXMPCommon::ReportErrorAndContinueABISafeProc</a></div><div class="ttdeci">uint32(* ReportErrorAndContinueABISafeProc)(uint32 errorDomain, uint32 errorCode, uint32 errorSeverity, const char *message, pcIError_base &amp;error)</div><div class="ttdoc">A function pointer to report back errors and warnings to the library encountered during the serializa...</div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00343">IError.h:343</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></div><div class="ttdoc">Version1 of the interface that serves as a base interface to all types of nodes in the XMP DOM...</div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00026">INode.h:26</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IConfigurable_html_ad64e6ae45633298b7158be2b0dce79a1"><div class="ttname"><a href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1">AdobeXMPCommon::IConfigurable::eDataType</a></div><div class="ttdeci">eDataType</div><div class="ttdoc">Indicates various types of parameter values. </div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00037">IConfigurable.h:37</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IClientDOMParser__v1_html_ac9890eb0a1635872a2ed2f86544b0057"><div class="ttname"><a href="classAdobeXMPCore_1_1IClientDOMParser__v1.html#ac9890eb0a1635872a2ed2f86544b0057">AdobeXMPCore::IClientDOMParser_v1::~IClientDOMParser_v1</a></div><div class="ttdeci">virtual ~IClientDOMParser_v1()</div><div class="ttdef"><b>Definition:</b> <a href="IClientDOMParser_8h_source.html#l00073">IClientDOMParser.h:73</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></div><div class="ttdoc">Version1 of the interface that represents an error/warning encountered during processing. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00026">IError.h:26</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a1c85c2f558b495c3d41eabe692a96cf2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a></div><div class="ttdeci">uint32 sizet</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00146">XMPCommonDefines.h:146</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IClientDOMParser__v1_html_aaaf9b00cdda11d05f0a5206665096c11"><div class="ttname"><a href="classAdobeXMPCore_1_1IClientDOMParser__v1.html#aaaf9b00cdda11d05f0a5206665096c11">AdobeXMPCore::IClientDOMParser_v1::AreKeysCaseSensitive</a></div><div class="ttdeci">virtual bool APICALL AreKeysCaseSensitive() const </div><div class="ttdoc">Indicates whether object supports case sensitive keys or not. </div><div class="ttdef"><b>Definition:</b> <a href="IClientDOMParser_8h_source.html#l00042">IClientDOMParser.h:42</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IClientDOMParser__v1_html_a7d40872cc3ce6ac3b298709232399984"><div class="ttname"><a href="classAdobeXMPCore_1_1IClientDOMParser__v1.html#a7d40872cc3ce6ac3b298709232399984">AdobeXMPCore::IClientDOMParser_v1::Validate</a></div><div class="ttdeci">virtual eConfigurableErrorCode APICALL Validate(const uint64 &amp;key, IConfigurable::eDataType dataType, const IConfigurable::CombinedDataValue &amp;dataValue)</div><div class="ttdoc">Validate the data type and value for a parameter. </div><div class="ttdef"><b>Definition:</b> <a href="IClientDOMParser_8h_source.html#l00060">IClientDOMParser.h:60</a></div></div>
+<div class="ttc" id="IError_8h_html"><div class="ttname"><a href="IError_8h.html">IError.h</a></div></div>
+<div class="ttc" id="XMPCoreErrorCodes_8h_html"><div class="ttname"><a href="XMPCoreErrorCodes_8h.html">XMPCoreErrorCodes.h</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a89e9297f497c2b3f1179788c31d24da4"><div class="ttname"><a href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a></div><div class="ttdeci">#define REQ_FRIEND_CLASS_DECLARATION()</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00107">XMPCommonDefines.h:107</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IClientDOMParser__v1_html_a5df18f349ed7db99a4bb96660b0008b5"><div class="ttname"><a href="classAdobeXMPCore_1_1IClientDOMParser__v1.html#a5df18f349ed7db99a4bb96660b0008b5">AdobeXMPCore::IClientDOMParser_v1::Initialize</a></div><div class="ttdeci">virtual void APICALL Initialize(pIConfigurable configurationParameters)</div><div class="ttdoc">Initialize the default configuration parameters. </div><div class="ttdef"><b>Definition:</b> <a href="IClientDOMParser_8h_source.html#l00050">IClientDOMParser.h:50</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aeec2c711a611cbc3c77ef1a0bb026e33"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">AdobeXMPCore::spINode</a></div><div class="ttdeci">shared_ptr&lt; INode &gt; spINode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00065">XMPCoreFwdDeclarations.h:65</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html">AdobeXMPCommon::ReportErrorAndContinueFunctor</a></div><div class="ttdoc">A Function object used by the client to report back and warnings to the library encountered during th...</div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00350">IError.h:350</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a0b1bbe96e1a757e66974c2f076afe4d2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">AdobeXMPCommon::uint32</a></div><div class="ttdeci">XMP_Uns32 uint32</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00144">XMPCommonDefines.h:144</a></div></div>
+<div class="ttc" id="XMPCoreFwdDeclarations_8h_html"><div class="ttname"><a href="XMPCoreFwdDeclarations_8h.html">XMPCoreFwdDeclarations.h</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/IClientDOMSerializer_8h.html b/docs/API/IClientDOMSerializer_8h.html
new file mode 100755
index 0000000..ee36d6f
--- /dev/null
+++ b/docs/API/IClientDOMSerializer_8h.html
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/IClientDOMSerializer.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('IClientDOMSerializer_8h.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">IClientDOMSerializer.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCore/XMPCoreFwdDeclarations.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="IError_8h_source.html">XMPCommon/Interfaces/IError.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="IConfigurable_8h_source.html">XMPCommon/Interfaces/BaseInterfaces/IConfigurable.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="XMPCommonErrorCodes_8h_source.html">XMPCommon/XMPCommonErrorCodes.h</a>&quot;</code><br />
+</div>
+<p><a href="IClientDOMSerializer_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html">AdobeXMPCore::IClientDOMSerializer_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version 1 of the interface that supports serializing by the client supplied serializer of the XMP Data Model. <a href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceAdobeXMPCore"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/IClientDOMSerializer_8h_source.html b/docs/API/IClientDOMSerializer_8h_source.html
new file mode 100755
index 0000000..a69e25a
--- /dev/null
+++ b/docs/API/IClientDOMSerializer_8h_source.html
@@ -0,0 +1,77 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/IClientDOMSerializer.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('IClientDOMSerializer_8h_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">IClientDOMSerializer.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="IClientDOMSerializer_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef IClientDOMSerializer_h__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define IClientDOMSerializer_h__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// ADOBE SYSTEMS INCORPORATED</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// Copyright 2015 Adobe Systems Incorporated</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// All Rights Reserved</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="XMPCoreFwdDeclarations_8h.html">XMPCore/XMPCoreFwdDeclarations.h</a>&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="IError_8h.html">XMPCommon/Interfaces/IError.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="IConfigurable_8h.html">XMPCommon/Interfaces/BaseInterfaces/IConfigurable.h</a>&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="XMPCommonErrorCodes_8h.html">XMPCommon/XMPCommonErrorCodes.h</a>&quot;</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a> {</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html"> 25</a></span>&#160; <span class="keyword">class </span><a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html">IClientDOMSerializer_v1</a></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; {</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL Serialize( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp; node, <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCore.html#a22f9e572045a61aa3cfc629a0d877d72">spcINameSpacePrefixMap</a> &amp; nameSpacePrefixMap, <a class="code" href="classAdobeXMPCommon_1_1IConfigurable.html">pcIConfigurable</a> configurationParameters,</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <a class="code" href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html">ReportErrorAndContinueFunctor</a> functor, <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> &amp; <span class="keywordtype">string</span> ) = 0;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#aa6090a60c51266963005c2fce33ea760"> 46</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL <a class="code" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#aa6090a60c51266963005c2fce33ea760">AreKeysCaseSensitive</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#a370646890f776a587f0faff20d590059"> 54</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL <a class="code" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#a370646890f776a587f0faff20d590059">Initialize</a>( <a class="code" href="classAdobeXMPCommon_1_1IConfigurable.html">pIConfigurable</a> configurationParameters ) {};</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#a5bcaa25de727ee1e8e9399dd963aa5c3"> 64</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42">eConfigurableErrorCode</a> APICALL <a class="code" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#a5bcaa25de727ee1e8e9399dd963aa5c3">Validate</a>( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key, <a class="code" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1">IConfigurable::eDataType</a> dataType, <span class="keyword">const</span> <a class="code" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html">IConfigurable::CombinedDataValue</a> &amp; dataValue ) {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a48a521a6e08fd24bef691efb926189f4">kCECNone</a>;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL Release() <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a> = 0;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#a58ff533c49dcfcf3374097aea70c1107"> 77</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#a58ff533c49dcfcf3374097aea70c1107">~IClientDOMSerializer_v1</a>() {}</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL serialize( <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> node, <a class="code" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">pcINameSpacePrefixMap_base</a> nameSpacePrefixMap, <a class="code" href="classAdobeXMPCommon_1_1IConfigurable.html">pcIConfigurable</a> configurationParameters, <a class="code" href="namespaceAdobeXMPCommon.html#a8dc9ba4ce78a957c0843998c2468241a">ReportErrorAndContinueABISafeProc</a> proc, <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">pIUTF8String_base</a> <span class="keywordtype">string</span>, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error, <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> &amp; unknownExceptionCaught ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL areKeysCaseSensitive( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error, <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> &amp; unknownExceptionCaught ) <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL initialize( <a class="code" href="classAdobeXMPCommon_1_1IConfigurable.html">pIConfigurable</a> configurationParameters, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error, <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> &amp; unknownExceptionCaught ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL validate( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key, <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> dataType, <span class="keyword">const</span> <a class="code" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html">IConfigurable::CombinedDataValue</a> &amp; dataValue, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error, <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> &amp; unknownExceptionCaught ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor"> #ifdef FRIEND_CLASS_DECLARATION</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; FRIEND_CLASS_DECLARATION();</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a>();</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; };</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;}</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="preprocessor">#endif // IClientDOMSerializer_h__</span></div><div class="ttc" id="namespaceAdobeXMPCommon_html_aea1d692da07b844d1f642b47ea6a91bd"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">AdobeXMPCommon::uint64</a></div><div class="ttdeci">XMP_Uns64 uint64</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00142">XMPCommonDefines.h:142</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a87fa911f1ea5a79801b7fe3530637c42"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42">AdobeXMPCommon::eConfigurableErrorCode</a></div><div class="ttdeci">eConfigurableErrorCode</div><div class="ttdoc">Indicates various types of error codes within Configurable domain. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00090">XMPCommonErrorCodes.h:90</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IClientDOMSerializer__v1_html_a5bcaa25de727ee1e8e9399dd963aa5c3"><div class="ttname"><a href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#a5bcaa25de727ee1e8e9399dd963aa5c3">AdobeXMPCore::IClientDOMSerializer_v1::Validate</a></div><div class="ttdeci">virtual eConfigurableErrorCode APICALL Validate(const uint64 &amp;key, IConfigurable::eDataType dataType, const IConfigurable::CombinedDataValue &amp;dataValue)</div><div class="ttdoc">Validate the data type and value for a parameter. </div><div class="ttdef"><b>Definition:</b> <a href="IClientDOMSerializer_8h_source.html#l00064">IClientDOMSerializer.h:64</a></div></div>
+<div class="ttc" id="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue_html"><div class="ttname"><a href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html">AdobeXMPCommon::IConfigurable::CombinedDataValue</a></div><div class="ttdoc">A union data type to store all kind of values. </div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00146">IConfigurable.h:146</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a87fa911f1ea5a79801b7fe3530637c42a48a521a6e08fd24bef691efb926189f4"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a48a521a6e08fd24bef691efb926189f4">AdobeXMPCommon::kCECNone</a></div><div class="ttdoc">Indicates no error. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00092">XMPCommonErrorCodes.h:92</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IClientDOMSerializer__v1_html_a370646890f776a587f0faff20d590059"><div class="ttname"><a href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#a370646890f776a587f0faff20d590059">AdobeXMPCore::IClientDOMSerializer_v1::Initialize</a></div><div class="ttdeci">virtual void APICALL Initialize(pIConfigurable configurationParameters)</div><div class="ttdoc">Initializes the default configuration parameters. The object needs to fill the default configuration ...</div><div class="ttdef"><b>Definition:</b> <a href="IClientDOMSerializer_8h_source.html#l00054">IClientDOMSerializer.h:54</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IClientDOMSerializer__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html">AdobeXMPCore::IClientDOMSerializer_v1</a></div><div class="ttdoc">Version 1 of the interface that supports serializing by the client supplied serializer of the XMP Dat...</div><div class="ttdef"><b>Definition:</b> <a href="IClientDOMSerializer_8h_source.html#l00025">IClientDOMSerializer.h:25</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html_aac6a4810b1f485f147ab833be63f4d7b"><div class="ttname"><a href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a></div><div class="ttdeci">#define XMP_PUBLIC</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00188">XMP_Environment.h:188</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a5a929113d3d50bda3fb7135a5c8b24a2"><div class="ttname"><a href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></div><div class="ttdeci">#define __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00117">XMPCommonDefines.h:117</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IClientDOMSerializer__v1_html_a58ff533c49dcfcf3374097aea70c1107"><div class="ttname"><a href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#a58ff533c49dcfcf3374097aea70c1107">AdobeXMPCore::IClientDOMSerializer_v1::~IClientDOMSerializer_v1</a></div><div class="ttdeci">virtual ~IClientDOMSerializer_v1()</div><div class="ttdef"><b>Definition:</b> <a href="IClientDOMSerializer_8h_source.html#l00077">IClientDOMSerializer.h:77</a></div></div>
+<div class="ttc" id="IConfigurable_8h_html"><div class="ttname"><a href="IConfigurable_8h.html">IConfigurable.h</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a22f9e572045a61aa3cfc629a0d877d72"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a22f9e572045a61aa3cfc629a0d877d72">AdobeXMPCore::spcINameSpacePrefixMap</a></div><div class="ttdeci">shared_ptr&lt; const INameSpacePrefixMap &gt; spcINameSpacePrefixMap</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00030">XMPCoreFwdDeclarations.h:30</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IConfigurable_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></div><div class="ttdoc">Interface that allows to attach various key-value parameters to the underlying object. </div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00030">IConfigurable.h:30</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html"><div class="ttname"><a href="namespaceAdobeXMPCore.html">AdobeXMPCore</a></div><div class="ttdef"><b>Definition:</b> <a href="IArrayNode_8h_source.html#l00016">IArrayNode.h:16</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8dc9ba4ce78a957c0843998c2468241a"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8dc9ba4ce78a957c0843998c2468241a">AdobeXMPCommon::ReportErrorAndContinueABISafeProc</a></div><div class="ttdeci">uint32(* ReportErrorAndContinueABISafeProc)(uint32 errorDomain, uint32 errorCode, uint32 errorSeverity, const char *message, pcIError_base &amp;error)</div><div class="ttdoc">A function pointer to report back errors and warnings to the library encountered during the serializa...</div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00343">IError.h:343</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></div><div class="ttdoc">Version1 of the interface that serves as a base interface to all types of nodes in the XMP DOM...</div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00026">INode.h:26</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INameSpacePrefixMap__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">AdobeXMPCore::INameSpacePrefixMap_v1</a></div><div class="ttdoc">Version1 of the interface that represents map where each entry consists of prefix string as the key a...</div><div class="ttdef"><b>Definition:</b> <a href="INameSpacePrefixMap_8h_source.html#l00026">INameSpacePrefixMap.h:26</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IConfigurable_html_ad64e6ae45633298b7158be2b0dce79a1"><div class="ttname"><a href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1">AdobeXMPCommon::IConfigurable::eDataType</a></div><div class="ttdeci">eDataType</div><div class="ttdoc">Indicates various types of parameter values. </div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00037">IConfigurable.h:37</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></div><div class="ttdoc">Version1 of the interface that represents an error/warning encountered during processing. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00026">IError.h:26</a></div></div>
+<div class="ttc" id="IError_8h_html"><div class="ttname"><a href="IError_8h.html">IError.h</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a89e9297f497c2b3f1179788c31d24da4"><div class="ttname"><a href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a></div><div class="ttdeci">#define REQ_FRIEND_CLASS_DECLARATION()</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00107">XMPCommonDefines.h:107</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IClientDOMSerializer__v1_html_aa6090a60c51266963005c2fce33ea760"><div class="ttname"><a href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#aa6090a60c51266963005c2fce33ea760">AdobeXMPCore::IClientDOMSerializer_v1::AreKeysCaseSensitive</a></div><div class="ttdeci">virtual bool APICALL AreKeysCaseSensitive() const </div><div class="ttdoc">Indicates whether object supports case sensitive keys or not. </div><div class="ttdef"><b>Definition:</b> <a href="IClientDOMSerializer_8h_source.html#l00046">IClientDOMSerializer.h:46</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aeec2c711a611cbc3c77ef1a0bb026e33"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">AdobeXMPCore::spINode</a></div><div class="ttdeci">shared_ptr&lt; INode &gt; spINode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00065">XMPCoreFwdDeclarations.h:65</a></div></div>
+<div class="ttc" id="XMPCommonErrorCodes_8h_html"><div class="ttname"><a href="XMPCommonErrorCodes_8h.html">XMPCommonErrorCodes.h</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html">AdobeXMPCommon::ReportErrorAndContinueFunctor</a></div><div class="ttdoc">A Function object used by the client to report back and warnings to the library encountered during th...</div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00350">IError.h:350</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IUTF8String__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></div><div class="ttdoc">Version1 of the interface that represents an UTF8String. </div><div class="ttdef"><b>Definition:</b> <a href="IUTF8String_8h_source.html#l00023">IUTF8String.h:23</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a0b1bbe96e1a757e66974c2f076afe4d2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">AdobeXMPCommon::uint32</a></div><div class="ttdeci">XMP_Uns32 uint32</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00144">XMPCommonDefines.h:144</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_ac9d7760a1805b1e28828511a2c8c5588"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">AdobeXMPCommon::spIUTF8String</a></div><div class="ttdeci">shared_ptr&lt; IUTF8String &gt; spIUTF8String</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00077">XMPCommonFwdDeclarations.h:77</a></div></div>
+<div class="ttc" id="XMPCoreFwdDeclarations_8h_html"><div class="ttname"><a href="XMPCoreFwdDeclarations_8h.html">XMPCoreFwdDeclarations.h</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/ICompositeNode_8h.html b/docs/API/ICompositeNode_8h.html
new file mode 100755
index 0000000..1eb7bb8
--- /dev/null
+++ b/docs/API/ICompositeNode_8h.html
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/ICompositeNode.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('ICompositeNode_8h.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">ICompositeNode.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="INode_8h_source.html">XMPCore/Interfaces/INode.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="IVersionable_8h_source.html">XMPCommon/Interfaces/BaseInterfaces/IVersionable.h</a>&quot;</code><br />
+</div>
+<p><a href="ICompositeNode_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version1 of the interface that serves as a base interface to all composite types of nodes in the XMP DOM ( like Arrays and Structures ). <a href="classAdobeXMPCore_1_1ICompositeNode__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceAdobeXMPCore"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/ICompositeNode_8h_source.html b/docs/API/ICompositeNode_8h_source.html
new file mode 100755
index 0000000..067a8ca
--- /dev/null
+++ b/docs/API/ICompositeNode_8h_source.html
@@ -0,0 +1,91 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/ICompositeNode.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('ICompositeNode_8h_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">ICompositeNode.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="ICompositeNode_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __ICompositeNode_h__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __ICompositeNode_h__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// ADOBE SYSTEMS INCORPORATED</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// Copyright 2014 Adobe Systems Incorporated</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// All Rights Reserved</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="INode_8h.html">XMPCore/Interfaces/INode.h</a>&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="IVersionable_8h.html">XMPCommon/Interfaces/BaseInterfaces/IVersionable.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a> {</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1ICompositeNode__v1.html"> 25</a></span>&#160; <span class="keyword">class </span><a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">ICompositeNode_v1</a></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">INode_v1</a></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; {</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL GetNodeTypeAtPath( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp; path ) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a5c4cddddb0702e61d85cff16c5e72632"> 47</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">spcINode</a> <a class="code" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a5c4cddddb0702e61d85cff16c5e72632">GetNodeAtPath</a>( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp; path )<span class="keyword"> const </span>{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">ICompositeNode_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;GetNodeAtPath( path );</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; }</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL GetNodeAtPath( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp; path ) = 0;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL AppendNode( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp; node ) = 0;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL InsertNodeAtPath( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp; node, <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp; path ) = 0;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL ReplaceNodeAtPath( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp; node, <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp; path ) = 0;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL RemoveNodeAtPath( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp; path ) = 0;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#a5386a735d9eb66d5859e4657dfeebb7c">spINodeIterator</a> APICALL Iterator() = 0;</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#afa9e587b9293ff99d9f8b38b0cc07cad"> 116</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#ab423c366f29043e79694f805bceddb56">spcINodeIterator</a> <a class="code" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#afa9e587b9293ff99d9f8b38b0cc07cad">Iterator</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">ICompositeNode_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;Iterator();</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="comment">// @}</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL ChildCount() <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a> = 0;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="comment">// Wrapper non virtual functions</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a93d1009b739d8a6c40ebbf4aa75051af"> 139</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a> <a class="code" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a93d1009b739d8a6c40ebbf4aa75051af">GetSimpleNodeAtPath</a>( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp; path )<span class="keyword"> const </span>{</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">auto</span> node = GetNodeAtPath( path );</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToSimpleNode();</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a>();</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; }</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a42c91ca3eeded6302163a96903927445"> 145</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a> <a class="code" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a42c91ca3eeded6302163a96903927445">GetSimpleNodeAtPath</a>( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp; path ) {</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keyword">auto</span> node = GetNodeAtPath( path );</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToSimpleNode();</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a>();</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; }</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#ad6ca35dc12323a3a970066beb4c63e84"> 162</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a> <a class="code" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#ad6ca35dc12323a3a970066beb4c63e84">GetStructureNodeAtPath</a>( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp; path )<span class="keyword"> const </span>{</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">auto</span> node = GetNodeAtPath( path );</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToStructureNode();</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a>();</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; }</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a2abb6cdf40e6d4c91e30b736586e89dc"> 168</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a> <a class="code" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a2abb6cdf40e6d4c91e30b736586e89dc">GetStructureNodeAtPath</a>( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp; path ) {</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keyword">auto</span> node = GetNodeAtPath( path );</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToStructureNode();</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a>();</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; }</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="comment">// !@}</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a2e17bda06b20439a0076ea2fae68594d"> 185</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a> <a class="code" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a2e17bda06b20439a0076ea2fae68594d">GetArrayNodeAtPath</a>( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp; path )<span class="keyword"> const </span>{</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keyword">auto</span> node = GetNodeAtPath( path );</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToArrayNode();</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a>();</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; }</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#aba3fc78fab746460b1e7e01fe2e004b6"> 191</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a> <a class="code" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#aba3fc78fab746460b1e7e01fe2e004b6">GetArrayNodeAtPath</a>( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp; path ) {</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keyword">auto</span> node = GetNodeAtPath( path );</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToArrayNode();</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a>();</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; }</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="comment">// !@}</span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; </div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#aef05040bb5475b170f4816511f0655d0">pICompositeNode</a> APICALL GetActualICompositeNode() __NOTHROW__ = 0;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#a5a920b0717c8a08d3c68ece64a8f815a">pcICompositeNode</a> GetActualICompositeNode() <span class="keyword">const</span> __NOTHROW__ {</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">ICompositeNode_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;GetActualICompositeNode();</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; }</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore__Int.html#a88df781b3af9dc7dfe7cb967b6e9b440">AdobeXMPCore_Int::pICompositeNode_I</a> APICALL GetICompositeNode_I() __NOTHROW__ = 0;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore__Int.html#aa1ac753eb7735e19c3f1a2a21d02a047">AdobeXMPCore_Int::pcICompositeNode_I</a> GetICompositeNode_I() <span class="keyword">const</span> __NOTHROW__ {</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">ICompositeNode_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;GetICompositeNode_I();</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; }</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; </div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#acfcbb43bd0f659f554877c4f9dd7d459">spICompositeNode</a> MakeShared( <a class="code" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">pICompositeNode_base</a> ptr );</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#a7c98739d62fca879db910ac0fca82c3c">spcICompositeNode</a> MakeShared( <a class="code" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">pcICompositeNode_base</a> ptr ) {</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">ICompositeNode_v1</a> * <span class="keyword">&gt;</span>( ptr )-&gt;MakeShared( ptr );</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; }</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> GetInterfaceID() { <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a663e9a570224c4361f5ab883e32cf460">kICompositeNodeID</a>; }</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> GetInterfaceVersion() { <span class="keywordflow">return</span> 1; }</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00257"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a51af220e29b40e8520ae5765f28515bf"> 257</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a51af220e29b40e8520ae5765f28515bf">~ICompositeNode_v1</a>() __NOTHROW__ {}</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL getNodeTypeAtPath( <a class="code" href="classAdobeXMPCore_1_1IPath__v1.html">pcIPath_base</a> path, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> APICALL getNodeAtPath( <a class="code" href="classAdobeXMPCore_1_1IPath__v1.html">pcIPath_base</a> path, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL appendNode( <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> node, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL insertNodeAtPath( <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> node, <a class="code" href="classAdobeXMPCore_1_1IPath__v1.html">pcIPath_base</a> path, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> APICALL replaceNodeAtPath( <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> node, <a class="code" href="classAdobeXMPCore_1_1IPath__v1.html">pcIPath_base</a> path, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> APICALL removeNodeAtPath( <a class="code" href="classAdobeXMPCore_1_1IPath__v1.html">pcIPath_base</a> path, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INodeIterator__v1.html">pINodeIterator_base</a> APICALL iterator( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="preprocessor"> #ifdef FRIEND_CLASS_DECLARATION</span></div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; FRIEND_CLASS_DECLARATION();</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <a class="code" href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a>();</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; };</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;}</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="preprocessor">#if !BUILDING_XMPCORE_LIB &amp;&amp; !SOURCE_COMPILING_XMPCORE_LIB</span></div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a> {</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="preprocessor">#if XMP_WinBuild</span></div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<span class="preprocessor"> #pragma warning( push )</span></div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="preprocessor"> #pragma warning( disable : 4250 )</span></div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keyword">class </span>ICompositeNodeProxy</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; : <span class="keyword">public</span> <span class="keyword">virtual</span> ICompositeNode</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; , <span class="keyword">public</span> <span class="keyword">virtual</span> INodeProxy</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; {</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#aef05040bb5475b170f4816511f0655d0">pICompositeNode</a> mRawPtr;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; ICompositeNodeProxy( <a class="code" href="namespaceAdobeXMPCore.html#aef05040bb5475b170f4816511f0655d0">pICompositeNode</a> ptr );</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; ~ICompositeNodeProxy() <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a> ;</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#aef05040bb5475b170f4816511f0655d0">pICompositeNode</a> APICALL GetActualICompositeNode() <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <a class="code" href="namespaceAdobeXMPCore__Int.html#a88df781b3af9dc7dfe7cb967b6e9b440">AdobeXMPCore_Int::pICompositeNode_I</a> APICALL GetICompositeNode_I() <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL GetNodeTypeAtPath( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp; path ) <span class="keyword">const</span>;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL GetNodeAtPath( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp; path );</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL AppendNode( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp; node );</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL InsertNodeAtPath( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp; node, <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp; path );</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL ReplaceNodeAtPath( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp; node, <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp; path );</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL RemoveNodeAtPath( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp; path );</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#a5386a735d9eb66d5859e4657dfeebb7c">spINodeIterator</a> APICALL Iterator();</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL ChildCount() <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL getNodeTypeAtPath( <a class="code" href="classAdobeXMPCore_1_1IPath__v1.html">pcIPath_base</a> path, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> APICALL getNodeAtPath( <a class="code" href="classAdobeXMPCore_1_1IPath__v1.html">pcIPath_base</a> path, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL appendNode( <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> node, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL insertNodeAtPath( <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> node, <a class="code" href="classAdobeXMPCore_1_1IPath__v1.html">pcIPath_base</a> path, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> APICALL replaceNodeAtPath( <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> node, <a class="code" href="classAdobeXMPCore_1_1IPath__v1.html">pcIPath_base</a> path, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> APICALL removeNodeAtPath( <a class="code" href="classAdobeXMPCore_1_1IPath__v1.html">pcIPath_base</a> path, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INodeIterator__v1.html">pINodeIterator_base</a> APICALL iterator( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; };</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;<span class="preprocessor">#if XMP_WinBuild</span></div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;<span class="preprocessor"> #pragma warning( pop )</span></div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;}</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;<span class="preprocessor">#endif // BUILDING_XMPCORE_LIB</span></div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;<span class="preprocessor">#endif // __ICompositeNode_h__</span></div><div class="ttc" id="namespaceAdobeXMPCommon_html_aea1d692da07b844d1f642b47ea6a91bd"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">AdobeXMPCommon::uint64</a></div><div class="ttdeci">XMP_Uns64 uint64</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00142">XMPCommonDefines.h:142</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1ICompositeNode__v1_html_a2abb6cdf40e6d4c91e30b736586e89dc"><div class="ttname"><a href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a2abb6cdf40e6d4c91e30b736586e89dc">AdobeXMPCore::ICompositeNode_v1::GetStructureNodeAtPath</a></div><div class="ttdeci">XMP_PRIVATE spIStructureNode GetStructureNodeAtPath(const spcIPath &amp;path)</div><div class="ttdef"><b>Definition:</b> <a href="ICompositeNode_8h_source.html#l00168">ICompositeNode.h:168</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a7c98739d62fca879db910ac0fca82c3c"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a7c98739d62fca879db910ac0fca82c3c">AdobeXMPCore::spcICompositeNode</a></div><div class="ttdeci">shared_ptr&lt; const ICompositeNode &gt; spcICompositeNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00090">XMPCoreFwdDeclarations.h:90</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_acfcbb43bd0f659f554877c4f9dd7d459"><div class="ttname"><a href="namespaceAdobeXMPCore.html#acfcbb43bd0f659f554877c4f9dd7d459">AdobeXMPCore::spICompositeNode</a></div><div class="ttdeci">shared_ptr&lt; ICompositeNode &gt; spICompositeNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00089">XMPCoreFwdDeclarations.h:89</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a5386a735d9eb66d5859e4657dfeebb7c"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a5386a735d9eb66d5859e4657dfeebb7c">AdobeXMPCore::spINodeIterator</a></div><div class="ttdeci">shared_ptr&lt; INodeIterator &gt; spINodeIterator</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00125">XMPCoreFwdDeclarations.h:125</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1ICompositeNode__v1_html_a93d1009b739d8a6c40ebbf4aa75051af"><div class="ttname"><a href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a93d1009b739d8a6c40ebbf4aa75051af">AdobeXMPCore::ICompositeNode_v1::GetSimpleNodeAtPath</a></div><div class="ttdeci">XMP_PRIVATE spcISimpleNode GetSimpleNodeAtPath(const spcIPath &amp;path) const </div><div class="ttdoc">Get a simple node specified by the path relative to the node. </div><div class="ttdef"><b>Definition:</b> <a href="ICompositeNode_8h_source.html#l00139">ICompositeNode.h:139</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1ICompositeNode__v1_html_aba3fc78fab746460b1e7e01fe2e004b6"><div class="ttname"><a href="classAdobeXMPCore_1_1ICompositeNode__v1.html#aba3fc78fab746460b1e7e01fe2e004b6">AdobeXMPCore::ICompositeNode_v1::GetArrayNodeAtPath</a></div><div class="ttdeci">XMP_PRIVATE spIArrayNode GetArrayNodeAtPath(const spcIPath &amp;path)</div><div class="ttdef"><b>Definition:</b> <a href="ICompositeNode_8h_source.html#l00191">ICompositeNode.h:191</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aef05040bb5475b170f4816511f0655d0"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aef05040bb5475b170f4816511f0655d0">AdobeXMPCore::pICompositeNode</a></div><div class="ttdeci">ICompositeNode * pICompositeNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00087">XMPCoreFwdDeclarations.h:87</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1ICompositeNode__v1_html_ad6ca35dc12323a3a970066beb4c63e84"><div class="ttname"><a href="classAdobeXMPCore_1_1ICompositeNode__v1.html#ad6ca35dc12323a3a970066beb4c63e84">AdobeXMPCore::ICompositeNode_v1::GetStructureNodeAtPath</a></div><div class="ttdeci">XMP_PRIVATE spcIStructureNode GetStructureNodeAtPath(const spcIPath &amp;path) const </div><div class="ttdoc">Get a structure node specified by the path relative to the node. </div><div class="ttdef"><b>Definition:</b> <a href="ICompositeNode_8h_source.html#l00162">ICompositeNode.h:162</a></div></div>
+<div class="ttc" id="INode_8h_html"><div class="ttname"><a href="INode_8h.html">INode.h</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html_aac6a4810b1f485f147ab833be63f4d7b"><div class="ttname"><a href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a></div><div class="ttdeci">#define XMP_PUBLIC</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00188">XMP_Environment.h:188</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_a88df781b3af9dc7dfe7cb967b6e9b440"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#a88df781b3af9dc7dfe7cb967b6e9b440">AdobeXMPCore_Int::pICompositeNode_I</a></div><div class="ttdeci">ICompositeNode_I * pICompositeNode_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00247">XMPCoreFwdDeclarations.h:247</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a5a929113d3d50bda3fb7135a5c8b24a2"><div class="ttname"><a href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></div><div class="ttdeci">#define __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00117">XMPCommonDefines.h:117</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1ICompositeNode__v1_html_a2e17bda06b20439a0076ea2fae68594d"><div class="ttname"><a href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a2e17bda06b20439a0076ea2fae68594d">AdobeXMPCore::ICompositeNode_v1::GetArrayNodeAtPath</a></div><div class="ttdeci">XMP_PRIVATE spcIArrayNode GetArrayNodeAtPath(const spcIPath &amp;path) const </div><div class="ttdoc">Get an array node specified by the path relative to the node. </div><div class="ttdef"><b>Definition:</b> <a href="ICompositeNode_8h_source.html#l00185">ICompositeNode.h:185</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ab20ecb8d094c1dd81cb278370b746343"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">AdobeXMPCore::spISimpleNode</a></div><div class="ttdeci">shared_ptr&lt; ISimpleNode &gt; spISimpleNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00077">XMPCoreFwdDeclarations.h:77</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ab423c366f29043e79694f805bceddb56"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ab423c366f29043e79694f805bceddb56">AdobeXMPCore::spcINodeIterator</a></div><div class="ttdeci">shared_ptr&lt; const INodeIterator &gt; spcINodeIterator</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00126">XMPCoreFwdDeclarations.h:126</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a957c57fcbb47c704fc5c31cf36dcbde7"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">AdobeXMPCore::spIStructureNode</a></div><div class="ttdeci">shared_ptr&lt; IStructureNode &gt; spIStructureNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00101">XMPCoreFwdDeclarations.h:101</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a663e9a570224c4361f5ab883e32cf460"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a663e9a570224c4361f5ab883e32cf460">AdobeXMPCore::kICompositeNodeID</a></div><div class="ttdeci">static const uint64 kICompositeNodeID(0x63436d704e6f6465)</div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a4ea338a9eed923abf6aba47a27926a0f"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">AdobeXMPCore::spcIArrayNode</a></div><div class="ttdeci">shared_ptr&lt; const IArrayNode &gt; spcIArrayNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00114">XMPCoreFwdDeclarations.h:114</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html"><div class="ttname"><a href="namespaceAdobeXMPCore.html">AdobeXMPCore</a></div><div class="ttdef"><b>Definition:</b> <a href="IArrayNode_8h_source.html#l00016">IArrayNode.h:16</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></div><div class="ttdoc">Version1 of the interface that serves as a base interface to all types of nodes in the XMP DOM...</div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00026">INode.h:26</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1ICompositeNode__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></div><div class="ttdoc">Version1 of the interface that serves as a base interface to all composite types of nodes in the XMP ...</div><div class="ttdef"><b>Definition:</b> <a href="ICompositeNode_8h_source.html#l00025">ICompositeNode.h:25</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a24e8e82d63d879d77408ce5c7e30c609"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">AdobeXMPCore::spIArrayNode</a></div><div class="ttdeci">shared_ptr&lt; IArrayNode &gt; spIArrayNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00113">XMPCoreFwdDeclarations.h:113</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1ICompositeNode__v1_html_a5c4cddddb0702e61d85cff16c5e72632"><div class="ttname"><a href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a5c4cddddb0702e61d85cff16c5e72632">AdobeXMPCore::ICompositeNode_v1::GetNodeAtPath</a></div><div class="ttdeci">XMP_PRIVATE spcINode GetNodeAtPath(const spcIPath &amp;path) const </div><div class="ttdoc">Get the node specified by the path relative to the composite node. </div><div class="ttdef"><b>Definition:</b> <a href="ICompositeNode_8h_source.html#l00047">ICompositeNode.h:47</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></div><div class="ttdoc">Version1 of the interface that represents an error/warning encountered during processing. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00026">IError.h:26</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INodeIterator__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1INodeIterator__v1.html">AdobeXMPCore::INodeIterator_v1</a></div><div class="ttdoc">Interface that represents an iterator over the mutable children of a XMP DOM Node. </div><div class="ttdef"><b>Definition:</b> <a href="INodeIterator_8h_source.html#l00026">INodeIterator.h:26</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a1c85c2f558b495c3d41eabe692a96cf2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a></div><div class="ttdeci">uint32 sizet</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00146">XMPCommonDefines.h:146</a></div></div>
+<div class="ttc" id="IVersionable_8h_html"><div class="ttname"><a href="IVersionable_8h.html">IVersionable.h</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aa01e44df0f17d2a1d959710ec856261c"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">AdobeXMPCore::spcIPath</a></div><div class="ttdeci">shared_ptr&lt; const IPath &gt; spcIPath</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00054">XMPCoreFwdDeclarations.h:54</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_a46b01045c1addbc8f444bd21384b7913"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">AdobeXMPCore::INode_v1::eNodeType</a></div><div class="ttdeci">eNodeType</div><div class="ttdoc">Indicates various types of node available in XMP Data Model like simple, array and structure...</div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00036">INode.h:36</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a4cb671d44948c7505c33431ec12f6c1f"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">AdobeXMPCore::spcISimpleNode</a></div><div class="ttdeci">shared_ptr&lt; const ISimpleNode &gt; spcISimpleNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00078">XMPCoreFwdDeclarations.h:78</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a5a920b0717c8a08d3c68ece64a8f815a"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a5a920b0717c8a08d3c68ece64a8f815a">AdobeXMPCore::pcICompositeNode</a></div><div class="ttdeci">const ICompositeNode * pcICompositeNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00088">XMPCoreFwdDeclarations.h:88</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a89e9297f497c2b3f1179788c31d24da4"><div class="ttname"><a href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a></div><div class="ttdeci">#define REQ_FRIEND_CLASS_DECLARATION()</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00107">XMPCommonDefines.h:107</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1ICompositeNode__v1_html_a42c91ca3eeded6302163a96903927445"><div class="ttname"><a href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a42c91ca3eeded6302163a96903927445">AdobeXMPCore::ICompositeNode_v1::GetSimpleNodeAtPath</a></div><div class="ttdeci">XMP_PRIVATE spISimpleNode GetSimpleNodeAtPath(const spcIPath &amp;path)</div><div class="ttdef"><b>Definition:</b> <a href="ICompositeNode_8h_source.html#l00145">ICompositeNode.h:145</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1ICompositeNode__v1_html_a51af220e29b40e8520ae5765f28515bf"><div class="ttname"><a href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a51af220e29b40e8520ae5765f28515bf">AdobeXMPCore::ICompositeNode_v1::~ICompositeNode_v1</a></div><div class="ttdeci">virtual ~ICompositeNode_v1() __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="ICompositeNode_8h_source.html#l00257">ICompositeNode.h:257</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IPath__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1IPath__v1.html">AdobeXMPCore::IPath_v1</a></div><div class="ttdoc">Version1 of the interface that provides an easy iterative description of a specific path into the XMP...</div><div class="ttdef"><b>Definition:</b> <a href="IPath_8h_source.html#l00026">IPath.h:26</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_aa1ac753eb7735e19c3f1a2a21d02a047"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#aa1ac753eb7735e19c3f1a2a21d02a047">AdobeXMPCore_Int::pcICompositeNode_I</a></div><div class="ttdeci">const ICompositeNode_I * pcICompositeNode_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00249">XMPCoreFwdDeclarations.h:249</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aeec2c711a611cbc3c77ef1a0bb026e33"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">AdobeXMPCore::spINode</a></div><div class="ttdeci">shared_ptr&lt; INode &gt; spINode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00065">XMPCoreFwdDeclarations.h:65</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1ICompositeNode__v1_html_afa9e587b9293ff99d9f8b38b0cc07cad"><div class="ttname"><a href="classAdobeXMPCore_1_1ICompositeNode__v1.html#afa9e587b9293ff99d9f8b38b0cc07cad">AdobeXMPCore::ICompositeNode_v1::Iterator</a></div><div class="ttdeci">XMP_PRIVATE spcINodeIterator Iterator() const </div><div class="ttdef"><b>Definition:</b> <a href="ICompositeNode_8h_source.html#l00116">ICompositeNode.h:116</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a597eaeb0ed86794ea01f74a5be0f88ed"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">AdobeXMPCore::spcINode</a></div><div class="ttdeci">shared_ptr&lt; const INode &gt; spcINode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00066">XMPCoreFwdDeclarations.h:66</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html_a917e8e3f02685ec390fa3aee270f7747"><div class="ttname"><a href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a></div><div class="ttdeci">#define XMP_PRIVATE</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00189">XMP_Environment.h:189</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ab5807ab783087243a3676a19ad6f9b90"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">AdobeXMPCore::spcIStructureNode</a></div><div class="ttdeci">shared_ptr&lt; const IStructureNode &gt; spcIStructureNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00102">XMPCoreFwdDeclarations.h:102</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a0b1bbe96e1a757e66974c2f076afe4d2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">AdobeXMPCommon::uint32</a></div><div class="ttdeci">XMP_Uns32 uint32</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00144">XMPCommonDefines.h:144</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/IConfigurable_8h.html b/docs/API/IConfigurable_8h.html
new file mode 100755
index 0000000..130e04b
--- /dev/null
+++ b/docs/API/IConfigurable_8h.html
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/Interfaces/BaseInterfaces/IConfigurable.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('IConfigurable_8h.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">IConfigurable.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommon/XMPCommonFwdDeclarations.h</a>&quot;</code><br />
+</div>
+<p><a href="IConfigurable_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface that allows to attach various key-value parameters to the underlying object. <a href="classAdobeXMPCommon_1_1IConfigurable.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">union &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html">AdobeXMPCommon::IConfigurable::CombinedDataValue</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A union data type to store all kind of values. <a href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceAdobeXMPCommon"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/IConfigurable_8h_source.html b/docs/API/IConfigurable_8h_source.html
new file mode 100755
index 0000000..13d2a63
--- /dev/null
+++ b/docs/API/IConfigurable_8h_source.html
@@ -0,0 +1,70 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/Interfaces/BaseInterfaces/IConfigurable.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('IConfigurable_8h_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">IConfigurable.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="IConfigurable_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#ifndef IConfigurable_h__</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#define IConfigurable_h__ 1</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// ADOBE SYSTEMS INCORPORATED</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// Copyright 2014 Adobe Systems Incorporated</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// All Rights Reserved</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="XMPCommonFwdDeclarations_8h.html">XMPCommon/XMPCommonFwdDeclarations.h</a>&quot;</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html"> 19</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a> {</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IConfigurable.html"> 30</a></span>&#160; <span class="keyword">class </span><a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="classAdobeXMPCommon_1_1IConfigurable.html">IConfigurable</a></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; {</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1"> 37</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">enum</span> {</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a0233b4bacf60f59232fd3fc0dee50a27"> 39</a></span>&#160; kDTNone = 0,</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1abdf14ab0f7a234fc99bc476dc4212f4e"> 41</a></span>&#160; kDTBool = 1 &lt;&lt; 0,</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1ad24c2bb370f5fa12dee346051c13409e"> 43</a></span>&#160; kDTUint64 = 1 &lt;&lt; 1,</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a5c57cf68bc47c55815b5bfc1146df0c3"> 45</a></span>&#160; kDTInt64 = 1 &lt;&lt; 2,</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a01da29c7d11b67856b0e9d5f3fe4cdb4"> 47</a></span>&#160; kDTChar = 1 &lt;&lt; 3,</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a11c2a544d5ac467b22d7d10098237efa"> 49</a></span>&#160; kDTDouble = 1 &lt;&lt; 4,</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a8d6faef7e1737835b5007987ed99c48d"> 51</a></span>&#160; kDTConstCharBuffer = 1 &lt;&lt; 5,</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a242c98a52e8d324027a00ee6f66d4c39"> 53</a></span>&#160; kDTConstVoidPtr = 1 &lt;&lt; 6,</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1ac5217140bec2fb51971d31759f24b81a"> 56</a></span>&#160; kDTAll = 0xFFFFFFFF</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; } <a class="code" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1">eDataType</a>;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL SetParameter( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key, <span class="keywordtype">bool</span> value ) = 0;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL SetParameter( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key, <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> value ) = 0;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL SetParameter( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key, <a class="code" href="namespaceAdobeXMPCommon.html#aee4f68e01de51c2cf1c1044ecafebc25">int64</a> value ) = 0;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL SetParameter( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key, <span class="keywordtype">double</span> value ) = 0;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL SetParameter( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key, <span class="keywordtype">char</span> value ) = 0;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL SetParameter( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key, <span class="keyword">const</span> <span class="keywordtype">char</span> * value ) = 0;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL SetParameter( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key, <span class="keyword">const</span> <span class="keywordtype">void</span> * value ) = 0;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL RemoveParameter( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key ) = 0;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL GetParameter( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key, <span class="keywordtype">bool</span> &amp; value ) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL GetParameter( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key, <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; value ) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL GetParameter( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key, <a class="code" href="namespaceAdobeXMPCommon.html#aee4f68e01de51c2cf1c1044ecafebc25">int64</a> &amp; value ) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL GetParameter( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key, <span class="keywordtype">double</span> &amp; value ) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL GetParameter( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key, <span class="keywordtype">char</span> &amp; value ) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL GetParameter( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key, <span class="keyword">const</span> <span class="keywordtype">char</span> * &amp; value ) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL GetParameter( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key, <span class="keyword">const</span> <span class="keywordtype">void</span> * &amp; value ) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">virtual</span> std::vector&lt; uint64 &gt; APICALL GetAllParameters() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL Size() const <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a> = 0;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; virtual <a class="code" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1">eDataType</a> APICALL GetDataType( const <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key ) const = 0;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IConfigurable.html#a932bf0b8f4396de0e29f6c165954e5dc"> 132</a></span>&#160; static <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> ConvertCharBufferToUint64( const <span class="keywordtype">char</span> * key ) {</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> keyAsuint64 = 0;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">if</span> ( key ) {</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 0; i &lt; 8 &amp;&amp; key[ i ] != <span class="charliteral">&#39;\0&#39;</span>; i++ ) {</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; keyAsuint64 = keyAsuint64 &lt;&lt; 8;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; keyAsuint64 += ( <span class="keywordtype">unsigned</span> char ) key[ i ];</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">return</span> keyAsuint64;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; }</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html"> 146</a></span>&#160; <span class="keyword">union </span><a class="code" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html">CombinedDataValue</a> {</div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a5cf9ec10ad5942fe67759a8c442817da"> 147</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a5cf9ec10ad5942fe67759a8c442817da">boolValue</a>;</div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a6ed591451d1db9b4fd0dac884bfe489e"> 148</a></span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> <a class="code" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a6ed591451d1db9b4fd0dac884bfe489e">uint32Value</a>;</div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a65e7b5a9f09ea6b684e5e0aaa5f63ee1"> 149</a></span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> <a class="code" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a65e7b5a9f09ea6b684e5e0aaa5f63ee1">uint64Value</a>;</div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#ad65f4aa42944655754cdabc56befe34c"> 150</a></span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#aee4f68e01de51c2cf1c1044ecafebc25">int64</a> <a class="code" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#ad65f4aa42944655754cdabc56befe34c">int64Value</a>;</div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a0c9f75a96d53c5d03516f233937d6dca"> 151</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a0c9f75a96d53c5d03516f233937d6dca">doubleValue</a>;</div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#acf5eba644510b302a7d351ab06174880"> 152</a></span>&#160; <span class="keywordtype">char</span> <a class="code" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#acf5eba644510b302a7d351ab06174880">charValue</a>;</div><div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a8b483f56604dfd719c6cc0cbd883d9f7"> 153</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a8b483f56604dfd719c6cc0cbd883d9f7">constCharPtrValue</a>;</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a8f1fc5e55c1cac4aba0b23d9e2f25a5a"> 154</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">void</span> * <a class="code" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a8f1fc5e55c1cac4aba0b23d9e2f25a5a">constVoidPtrValue</a>;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; };</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="comment">// all safe functions</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL setParameter( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key, <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> dataType, <span class="keyword">const</span> <a class="code" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html">CombinedDataValue</a> &amp; dataValue, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a> = 0;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL removeParameter( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL getParameter( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key, <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> dataType, <a class="code" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html">CombinedDataValue</a> &amp; value, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL getAllParameters( <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> * array, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL getDataType( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IConfigurable.html#a7c19f627db3d07e227e93a6a0e6b20ab"> 171</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IConfigurable.html#a7c19f627db3d07e227e93a6a0e6b20ab">~IConfigurable</a>() __NOTHROW__ {};</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span>IConfigurableProxy;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="preprocessor"> #ifdef FRIEND_CLASS_DECLARATION</span></div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; FRIEND_CLASS_DECLARATION();</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <a class="code" href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a>();</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; };</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="preprocessor">#if !BUILDING_XMPCOMMON_LIB &amp;&amp; !SOURCE_COMPILING_XMP_ALL</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keyword">class </span>IConfigurableProxy</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IConfigurable.html">IConfigurable</a> {</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; IConfigurableProxy( <a class="code" href="classAdobeXMPCommon_1_1IConfigurable.html">pIConfigurable</a> configurable );</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL SetParameter( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key, <span class="keywordtype">bool</span> value );</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL SetParameter( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key, <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> value );</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL SetParameter( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key, <a class="code" href="namespaceAdobeXMPCommon.html#aee4f68e01de51c2cf1c1044ecafebc25">int64</a> value );</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL SetParameter( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key, <span class="keywordtype">double</span> value );</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL SetParameter( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key, <span class="keywordtype">char</span> value );</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL SetParameter( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key, <span class="keyword">const</span> <span class="keywordtype">char</span> * value );</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL SetParameter( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key, <span class="keyword">const</span> <span class="keywordtype">void</span> * value );</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL setParameter( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key, <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> dataType, <span class="keyword">const</span> <a class="code" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html">CombinedDataValue</a> &amp; dataValue, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL RemoveParameter( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key );</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL removeParameter( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL GetParameter( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key, <span class="keywordtype">bool</span> &amp; value ) <span class="keyword">const</span>;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL GetParameter( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key, <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; value ) <span class="keyword">const</span>;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL GetParameter( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key, <a class="code" href="namespaceAdobeXMPCommon.html#aee4f68e01de51c2cf1c1044ecafebc25">int64</a> &amp; value ) <span class="keyword">const</span>;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL GetParameter( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key, <span class="keywordtype">double</span> &amp; value ) <span class="keyword">const</span>;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL GetParameter( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key, <span class="keywordtype">char</span> &amp; value ) <span class="keyword">const</span>;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL GetParameter( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key, <span class="keyword">const</span> <span class="keywordtype">char</span> * &amp; value ) <span class="keyword">const</span>;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL GetParameter( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key, <span class="keyword">const</span> <span class="keywordtype">void</span> * &amp; value ) <span class="keyword">const</span>;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL getParameter( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key, <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> dataType, <a class="code" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html">CombinedDataValue</a> &amp; value, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keyword">virtual</span> std::vector&lt; uint64 &gt; APICALL GetAllParameters() <span class="keyword">const</span>;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL getAllParameters( <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> * array, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count ) <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL Size() <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1">eDataType</a> APICALL GetDataType( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key ) <span class="keyword">const</span>;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL getDataType( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; key, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <a class="code" href="classAdobeXMPCommon_1_1IConfigurable.html">pIConfigurable</a> mConfigurableRawPtr;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; };</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="preprocessor">#endif // !BUILDING_XMPCOMMON_LIB &amp;&amp; !SOURCE_COMPILING_XMP_ALL</span></div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;}</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="preprocessor">#endif // IConfigurable_h__</span></div><div class="ttc" id="namespaceAdobeXMPCommon_html_aea1d692da07b844d1f642b47ea6a91bd"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">AdobeXMPCommon::uint64</a></div><div class="ttdeci">XMP_Uns64 uint64</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00142">XMPCommonDefines.h:142</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_aee4f68e01de51c2cf1c1044ecafebc25"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#aee4f68e01de51c2cf1c1044ecafebc25">AdobeXMPCommon::int64</a></div><div class="ttdeci">XMP_Int64 int64</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00141">XMPCommonDefines.h:141</a></div></div>
+<div class="ttc" id="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue_html_ad65f4aa42944655754cdabc56befe34c"><div class="ttname"><a href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#ad65f4aa42944655754cdabc56befe34c">AdobeXMPCommon::IConfigurable::CombinedDataValue::int64Value</a></div><div class="ttdeci">int64 int64Value</div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00150">IConfigurable.h:150</a></div></div>
+<div class="ttc" id="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue_html"><div class="ttname"><a href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html">AdobeXMPCommon::IConfigurable::CombinedDataValue</a></div><div class="ttdoc">A union data type to store all kind of values. </div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00146">IConfigurable.h:146</a></div></div>
+<div class="ttc" id="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue_html_a65e7b5a9f09ea6b684e5e0aaa5f63ee1"><div class="ttname"><a href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a65e7b5a9f09ea6b684e5e0aaa5f63ee1">AdobeXMPCommon::IConfigurable::CombinedDataValue::uint64Value</a></div><div class="ttdeci">uint64 uint64Value</div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00149">IConfigurable.h:149</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html_aac6a4810b1f485f147ab833be63f4d7b"><div class="ttname"><a href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a></div><div class="ttdeci">#define XMP_PUBLIC</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00188">XMP_Environment.h:188</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a5a929113d3d50bda3fb7135a5c8b24a2"><div class="ttname"><a href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></div><div class="ttdeci">#define __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00117">XMPCommonDefines.h:117</a></div></div>
+<div class="ttc" id="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue_html_a6ed591451d1db9b4fd0dac884bfe489e"><div class="ttname"><a href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a6ed591451d1db9b4fd0dac884bfe489e">AdobeXMPCommon::IConfigurable::CombinedDataValue::uint32Value</a></div><div class="ttdeci">uint32 uint32Value</div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00148">IConfigurable.h:148</a></div></div>
+<div class="ttc" id="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue_html_a0c9f75a96d53c5d03516f233937d6dca"><div class="ttname"><a href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a0c9f75a96d53c5d03516f233937d6dca">AdobeXMPCommon::IConfigurable::CombinedDataValue::doubleValue</a></div><div class="ttdeci">double doubleValue</div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00151">IConfigurable.h:151</a></div></div>
+<div class="ttc" id="XMPCommonFwdDeclarations_8h_html"><div class="ttname"><a href="XMPCommonFwdDeclarations_8h.html">XMPCommonFwdDeclarations.h</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IConfigurable_html_a7c19f627db3d07e227e93a6a0e6b20ab"><div class="ttname"><a href="classAdobeXMPCommon_1_1IConfigurable.html#a7c19f627db3d07e227e93a6a0e6b20ab">AdobeXMPCommon::IConfigurable::~IConfigurable</a></div><div class="ttdeci">virtual ~IConfigurable() __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00171">IConfigurable.h:171</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IConfigurable_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></div><div class="ttdoc">Interface that allows to attach various key-value parameters to the underlying object. </div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00030">IConfigurable.h:30</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IConfigurable_html_ad64e6ae45633298b7158be2b0dce79a1"><div class="ttname"><a href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1">AdobeXMPCommon::IConfigurable::eDataType</a></div><div class="ttdeci">eDataType</div><div class="ttdoc">Indicates various types of parameter values. </div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00037">IConfigurable.h:37</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></div><div class="ttdoc">Version1 of the interface that represents an error/warning encountered during processing. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00026">IError.h:26</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a1c85c2f558b495c3d41eabe692a96cf2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a></div><div class="ttdeci">uint32 sizet</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00146">XMPCommonDefines.h:146</a></div></div>
+<div class="ttc" id="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue_html_a5cf9ec10ad5942fe67759a8c442817da"><div class="ttname"><a href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a5cf9ec10ad5942fe67759a8c442817da">AdobeXMPCommon::IConfigurable::CombinedDataValue::boolValue</a></div><div class="ttdeci">bool boolValue</div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00147">IConfigurable.h:147</a></div></div>
+<div class="ttc" id="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue_html_acf5eba644510b302a7d351ab06174880"><div class="ttname"><a href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#acf5eba644510b302a7d351ab06174880">AdobeXMPCommon::IConfigurable::CombinedDataValue::charValue</a></div><div class="ttdeci">char charValue</div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00152">IConfigurable.h:152</a></div></div>
+<div class="ttc" id="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue_html_a8f1fc5e55c1cac4aba0b23d9e2f25a5a"><div class="ttname"><a href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a8f1fc5e55c1cac4aba0b23d9e2f25a5a">AdobeXMPCommon::IConfigurable::CombinedDataValue::constVoidPtrValue</a></div><div class="ttdeci">const void * constVoidPtrValue</div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00154">IConfigurable.h:154</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html"><div class="ttname"><a href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a></div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00019">IConfigurable.h:19</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a89e9297f497c2b3f1179788c31d24da4"><div class="ttname"><a href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a></div><div class="ttdeci">#define REQ_FRIEND_CLASS_DECLARATION()</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00107">XMPCommonDefines.h:107</a></div></div>
+<div class="ttc" id="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue_html_a8b483f56604dfd719c6cc0cbd883d9f7"><div class="ttname"><a href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a8b483f56604dfd719c6cc0cbd883d9f7">AdobeXMPCommon::IConfigurable::CombinedDataValue::constCharPtrValue</a></div><div class="ttdeci">const char * constCharPtrValue</div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00153">IConfigurable.h:153</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a0b1bbe96e1a757e66974c2f076afe4d2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">AdobeXMPCommon::uint32</a></div><div class="ttdeci">XMP_Uns32 uint32</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00144">XMPCommonDefines.h:144</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/IConfigurationManager_8h.html b/docs/API/IConfigurationManager_8h.html
new file mode 100755
index 0000000..24c4080
--- /dev/null
+++ b/docs/API/IConfigurationManager_8h.html
@@ -0,0 +1,70 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/Interfaces/IConfigurationManager.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('IConfigurationManager_8h.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">IConfigurationManager.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="ISharedObject_8h_source.html">XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="IVersionable_8h_source.html">XMPCommon/Interfaces/BaseInterfaces/IVersionable.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommon/XMPCommonFwdDeclarations.h</a>&quot;</code><br />
+</div>
+<p><a href="IConfigurationManager_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html">AdobeXMPCommon::IConfigurationManager_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version1 of the interface that represents configuration settings controllable by the client. <a href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html">AdobeXMPCommon::IConfigurationManagerProxy</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceAdobeXMPCommon"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/IConfigurationManager_8h_source.html b/docs/API/IConfigurationManager_8h_source.html
new file mode 100755
index 0000000..417dd37
--- /dev/null
+++ b/docs/API/IConfigurationManager_8h_source.html
@@ -0,0 +1,79 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/Interfaces/IConfigurationManager.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('IConfigurationManager_8h_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">IConfigurationManager.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="IConfigurationManager_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#ifndef IConfigurationManager_h__</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#define IConfigurationManager_h__ 1</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// ADOBE SYSTEMS INCORPORATED</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// Copyright 2014 Adobe Systems Incorporated</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// All Rights Reserved</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// </span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ISharedObject_8h.html">XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h</a>&quot;</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="IVersionable_8h.html">XMPCommon/Interfaces/BaseInterfaces/IVersionable.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="XMPCommonFwdDeclarations_8h.html">XMPCommon/XMPCommonFwdDeclarations.h</a>&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a> {</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html"> 30</a></span>&#160; <span class="keyword">class </span><a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html">IConfigurationManager_v1</a></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1ISharedObject.html">ISharedObject</a></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; , <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IVersionable.html">IVersionable</a></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; {</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL RegisterMemoryAllocator( <a class="code" href="namespaceAdobeXMPCommon.html#a605dcb5281a71a01673c81e6508f932f">pIMemoryAllocator</a> memoryAllocator ) = 0;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL RegisterErrorNotifier( <a class="code" href="classAdobeXMPCommon_1_1IErrorNotifier__v1.html">pIErrorNotifier_base</a> clientErrorNotifier ) = 0;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL DisableMultiThreading() = 0;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL IsMultiThreaded() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a66f57b67d8be6cbf836ad084a3d27d76">pIConfigurationManager</a> APICALL GetActualIConfigurationManager() <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a> = 0;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCommon.html#a2a6831c5d17f5c9990c01268f67b7bb2">pcIConfigurationManager</a> GetActualIConfigurationManager() <span class="keyword">const</span> __NOTHROW__ {</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html">IConfigurationManager_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;GetActualIConfigurationManager();</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; }</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#a4ebcc3c8cb04d7593dc3250aa720f0d4">spIConfigurationManager</a> MakeShared( <a class="code" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html">pIConfigurationManager_base</a> ptr );</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#abe53a5a98ec0d2d6ce76d1d820794177">spcIConfigurationManager</a> MakeShared( <a class="code" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html">pcIConfigurationManager_base</a> ptr ) {</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">return</span> MakeShared( const_cast&lt; pIConfigurationManager_base &gt;( ptr ) );</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; }</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> GetInterfaceID() { <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCommon.html#af73d2c15fb6abf10bf2b82be984d9be0">kIConfigurationManagerID</a>; }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> GetInterfaceVersion() { <span class="keywordflow">return</span> 1; }</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html#aab2f368cf6883a6cd92fe688a95516b5"> 107</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html#aab2f368cf6883a6cd92fe688a95516b5">~IConfigurationManager_v1</a>() __NOTHROW__ {}</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; </div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; </div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL registerMemoryAllocator( <a class="code" href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html">pIMemoryAllocator_base</a> memoryAllocator, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL registerErrorNotifier( <a class="code" href="classAdobeXMPCommon_1_1IErrorNotifier__v1.html">pIErrorNotifier_base</a> clientErrorNotifier, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL disableMultiThreading( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL isMultiThreaded( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="preprocessor"> #ifdef FRIEND_CLASS_DECLARATION</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; FRIEND_CLASS_DECLARATION();</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <a class="code" href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a>();</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; };</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;}</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="preprocessor">#if !BUILDING_XMPCOMMON_LIB &amp;&amp; !SOURCE_COMPILING_XMP_ALL</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a> {</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html"> 130</a></span>&#160; <span class="keyword">class </span><a class="code" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html">IConfigurationManagerProxy</a></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; : <span class="keyword">public</span> <span class="keyword">virtual</span> IConfigurationManager</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; {</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a57ee5dce3f7d579adb79ebc00618aa17"> 134</a></span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a66f57b67d8be6cbf836ad084a3d27d76">pIConfigurationManager</a> <a class="code" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a57ee5dce3f7d579adb79ebc00618aa17">mRawPtr</a>;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#aa6e0ad02dd491d0881e35ea0554c93a6"> 137</a></span>&#160; <a class="code" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#aa6e0ad02dd491d0881e35ea0554c93a6">IConfigurationManagerProxy</a>( <a class="code" href="namespaceAdobeXMPCommon.html#a66f57b67d8be6cbf836ad084a3d27d76">pIConfigurationManager</a> ptr )</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; : mRawPtr( ptr )</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; {</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; mRawPtr-&gt;Acquire();</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; }</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a2d3924186af26ed2ea955d155ba8e89c"> 143</a></span>&#160; <a class="code" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a2d3924186af26ed2ea955d155ba8e89c">~IConfigurationManagerProxy</a>() <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a> { mRawPtr-&gt;Release(); }</div><div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a51a9e283ecad4043182f5ff9c8c38367"> 144</a></span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a66f57b67d8be6cbf836ad084a3d27d76">pIConfigurationManager</a> APICALL <a class="code" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a51a9e283ecad4043182f5ff9c8c38367">GetActualIConfigurationManager</a>() <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a> { <span class="keywordflow">return</span> mRawPtr; }</div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a9efc36a9faf07297c329f1c422659758"> 145</a></span>&#160; <a class="code" href="namespaceAdobeXMPCommon__Int.html#ada4b051c58f05ef398453930451bc13d">AdobeXMPCommon_Int::pISharedObject_I</a> APICALL <a class="code" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a9efc36a9faf07297c329f1c422659758">GetISharedObject_I</a>() <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a> { <span class="keywordflow">return</span> mRawPtr-&gt;GetISharedObject_I(); }</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordtype">void</span> APICALL Acquire() <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordtype">void</span> APICALL Release() <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ab59e650373a5efadfbfd2486313258a6">pvoid</a> APICALL GetInterfacePointer( <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> interfaceID, <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> interfaceVersion );</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL RegisterMemoryAllocator( <a class="code" href="namespaceAdobeXMPCommon.html#a605dcb5281a71a01673c81e6508f932f">pIMemoryAllocator</a> memoryAllocator );</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL RegisterErrorNotifier( <a class="code" href="classAdobeXMPCommon_1_1IErrorNotifier__v1.html">pIErrorNotifier_base</a> clientErrorNotifier );</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL DisableMultiThreading();</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL IsMultiThreaded() <span class="keyword">const</span>;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL registerMemoryAllocator( <a class="code" href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html">pIMemoryAllocator_base</a> memoryAllocator, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL registerErrorNotifier( <a class="code" href="classAdobeXMPCommon_1_1IErrorNotifier__v1.html">pIErrorNotifier_base</a> clientErrorNotifier, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL disableMultiThreading( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL isMultiThreaded( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ab59e650373a5efadfbfd2486313258a6">pvoid</a> APICALL getInterfacePointer( <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> interfaceID, <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> interfaceVersion, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; };</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;}</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="preprocessor">#endif // BUILDING_XMPCOMMON_LIB &amp;&amp; !SOURCE_COMPILING_XMP_LIB</span></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="preprocessor">#endif // IConfigurationManager_h__</span></div><div class="ttc" id="namespaceAdobeXMPCommon__Int_html_ada4b051c58f05ef398453930451bc13d"><div class="ttname"><a href="namespaceAdobeXMPCommon__Int.html#ada4b051c58f05ef398453930451bc13d">AdobeXMPCommon_Int::pISharedObject_I</a></div><div class="ttdeci">ISharedObject_I * pISharedObject_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00147">XMPCommonFwdDeclarations.h:147</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_aea1d692da07b844d1f642b47ea6a91bd"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">AdobeXMPCommon::uint64</a></div><div class="ttdeci">XMP_Uns64 uint64</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00142">XMPCommonDefines.h:142</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IConfigurationManagerProxy_html_a51a9e283ecad4043182f5ff9c8c38367"><div class="ttname"><a href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a51a9e283ecad4043182f5ff9c8c38367">AdobeXMPCommon::IConfigurationManagerProxy::GetActualIConfigurationManager</a></div><div class="ttdeci">pIConfigurationManager APICALL GetActualIConfigurationManager() __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="IConfigurationManager_8h_source.html#l00144">IConfigurationManager.h:144</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a4ebcc3c8cb04d7593dc3250aa720f0d4"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a4ebcc3c8cb04d7593dc3250aa720f0d4">AdobeXMPCommon::spIConfigurationManager</a></div><div class="ttdeci">shared_ptr&lt; IConfigurationManager &gt; spIConfigurationManager</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00110">XMPCommonFwdDeclarations.h:110</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IConfigurationManagerProxy_html_a57ee5dce3f7d579adb79ebc00618aa17"><div class="ttname"><a href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a57ee5dce3f7d579adb79ebc00618aa17">AdobeXMPCommon::IConfigurationManagerProxy::mRawPtr</a></div><div class="ttdeci">pIConfigurationManager mRawPtr</div><div class="ttdef"><b>Definition:</b> <a href="IConfigurationManager_8h_source.html#l00134">IConfigurationManager.h:134</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IConfigurationManagerProxy_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html">AdobeXMPCommon::IConfigurationManagerProxy</a></div><div class="ttdef"><b>Definition:</b> <a href="IConfigurationManager_8h_source.html#l00130">IConfigurationManager.h:130</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IErrorNotifier__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IErrorNotifier__v1.html">AdobeXMPCommon::IErrorNotifier_v1</a></div><div class="ttdoc">Version1 of the interface that represents an interface to be implemented by client in case he is inte...</div><div class="ttdef"><b>Definition:</b> <a href="IErrorNotifier_8h_source.html#l00027">IErrorNotifier.h:27</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IConfigurationManagerProxy_html_a2d3924186af26ed2ea955d155ba8e89c"><div class="ttname"><a href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a2d3924186af26ed2ea955d155ba8e89c">AdobeXMPCommon::IConfigurationManagerProxy::~IConfigurationManagerProxy</a></div><div class="ttdeci">~IConfigurationManagerProxy() __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="IConfigurationManager_8h_source.html#l00143">IConfigurationManager.h:143</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IConfigurationManagerProxy_html_a9efc36a9faf07297c329f1c422659758"><div class="ttname"><a href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a9efc36a9faf07297c329f1c422659758">AdobeXMPCommon::IConfigurationManagerProxy::GetISharedObject_I</a></div><div class="ttdeci">AdobeXMPCommon_Int::pISharedObject_I APICALL GetISharedObject_I() __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="IConfigurationManager_8h_source.html#l00145">IConfigurationManager.h:145</a></div></div>
+<div class="ttc" id="ISharedObject_8h_html"><div class="ttname"><a href="ISharedObject_8h.html">ISharedObject.h</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html_aac6a4810b1f485f147ab833be63f4d7b"><div class="ttname"><a href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a></div><div class="ttdeci">#define XMP_PUBLIC</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00188">XMP_Environment.h:188</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a5a929113d3d50bda3fb7135a5c8b24a2"><div class="ttname"><a href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></div><div class="ttdeci">#define __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00117">XMPCommonDefines.h:117</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IConfigurationManager__v1_html_aab2f368cf6883a6cd92fe688a95516b5"><div class="ttname"><a href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html#aab2f368cf6883a6cd92fe688a95516b5">AdobeXMPCommon::IConfigurationManager_v1::~IConfigurationManager_v1</a></div><div class="ttdeci">virtual ~IConfigurationManager_v1() __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="IConfigurationManager_8h_source.html#l00107">IConfigurationManager.h:107</a></div></div>
+<div class="ttc" id="XMPCommonFwdDeclarations_8h_html"><div class="ttname"><a href="XMPCommonFwdDeclarations_8h.html">XMPCommonFwdDeclarations.h</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a2a6831c5d17f5c9990c01268f67b7bb2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a2a6831c5d17f5c9990c01268f67b7bb2">AdobeXMPCommon::pcIConfigurationManager</a></div><div class="ttdeci">const IConfigurationManager * pcIConfigurationManager</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00109">XMPCommonFwdDeclarations.h:109</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IMemoryAllocator__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html">AdobeXMPCommon::IMemoryAllocator_v1</a></div><div class="ttdoc">Version1 of the interface that represents an interface to be implemented by client in case he is inte...</div><div class="ttdef"><b>Definition:</b> <a href="IMemoryAllocator_8h_source.html#l00027">IMemoryAllocator.h:27</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a66f57b67d8be6cbf836ad084a3d27d76"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a66f57b67d8be6cbf836ad084a3d27d76">AdobeXMPCommon::pIConfigurationManager</a></div><div class="ttdeci">IConfigurationManager * pIConfigurationManager</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00108">XMPCommonFwdDeclarations.h:108</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></div><div class="ttdoc">Version1 of the interface that represents an error/warning encountered during processing. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00026">IError.h:26</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1ISharedObject_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></div><div class="ttdoc">Interface that serves as the base interface of all the externally exposed interfaces. </div><div class="ttdef"><b>Definition:</b> <a href="ISharedObject_8h_source.html#l00027">ISharedObject.h:27</a></div></div>
+<div class="ttc" id="IVersionable_8h_html"><div class="ttname"><a href="IVersionable_8h.html">IVersionable.h</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_ab59e650373a5efadfbfd2486313258a6"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#ab59e650373a5efadfbfd2486313258a6">AdobeXMPCommon::pvoid</a></div><div class="ttdeci">void * pvoid</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00044">XMPCommonFwdDeclarations.h:44</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_af73d2c15fb6abf10bf2b82be984d9be0"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#af73d2c15fb6abf10bf2b82be984d9be0">AdobeXMPCommon::kIConfigurationManagerID</a></div><div class="ttdeci">static const uint64 kIConfigurationManagerID(0x6e436f6e664d6772)</div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_abe53a5a98ec0d2d6ce76d1d820794177"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#abe53a5a98ec0d2d6ce76d1d820794177">AdobeXMPCommon::spcIConfigurationManager</a></div><div class="ttdeci">shared_ptr&lt; const IConfigurationManager &gt; spcIConfigurationManager</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00111">XMPCommonFwdDeclarations.h:111</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html"><div class="ttname"><a href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a></div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00019">IConfigurable.h:19</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a89e9297f497c2b3f1179788c31d24da4"><div class="ttname"><a href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a></div><div class="ttdeci">#define REQ_FRIEND_CLASS_DECLARATION()</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00107">XMPCommonDefines.h:107</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IConfigurationManager__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html">AdobeXMPCommon::IConfigurationManager_v1</a></div><div class="ttdoc">Version1 of the interface that represents configuration settings controllable by the client...</div><div class="ttdef"><b>Definition:</b> <a href="IConfigurationManager_8h_source.html#l00030">IConfigurationManager.h:30</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IVersionable_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></div><div class="ttdoc">Interface that serves as the base interface for all the externally exposed interfaces which needs to ...</div><div class="ttdef"><b>Definition:</b> <a href="IVersionable_8h_source.html#l00028">IVersionable.h:28</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a605dcb5281a71a01673c81e6508f932f"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a605dcb5281a71a01673c81e6508f932f">AdobeXMPCommon::pIMemoryAllocator</a></div><div class="ttdeci">IMemoryAllocator * pIMemoryAllocator</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00086">XMPCommonFwdDeclarations.h:86</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html_a917e8e3f02685ec390fa3aee270f7747"><div class="ttname"><a href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a></div><div class="ttdeci">#define XMP_PRIVATE</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00189">XMP_Environment.h:189</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IConfigurationManagerProxy_html_aa6e0ad02dd491d0881e35ea0554c93a6"><div class="ttname"><a href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#aa6e0ad02dd491d0881e35ea0554c93a6">AdobeXMPCommon::IConfigurationManagerProxy::IConfigurationManagerProxy</a></div><div class="ttdeci">IConfigurationManagerProxy(pIConfigurationManager ptr)</div><div class="ttdef"><b>Definition:</b> <a href="IConfigurationManager_8h_source.html#l00137">IConfigurationManager.h:137</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a0b1bbe96e1a757e66974c2f076afe4d2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">AdobeXMPCommon::uint32</a></div><div class="ttdeci">XMP_Uns32 uint32</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00144">XMPCommonDefines.h:144</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/ICoreConfigurationManager_8h.html b/docs/API/ICoreConfigurationManager_8h.html
new file mode 100755
index 0000000..1a7ee03
--- /dev/null
+++ b/docs/API/ICoreConfigurationManager_8h.html
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/ICoreConfigurationManager.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('ICoreConfigurationManager_8h.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">ICoreConfigurationManager.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCore/XMPCoreFwdDeclarations.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="IConfigurationManager_8h_source.html">XMPCommon/Interfaces/IConfigurationManager.h</a>&quot;</code><br />
+</div>
+<p><a href="ICoreConfigurationManager_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html">AdobeXMPCore::ICoreConfigurationManager_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version1 of the interface that represents configuration settings controllable by the client. <a href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceAdobeXMPCore"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/ICoreConfigurationManager_8h_source.html b/docs/API/ICoreConfigurationManager_8h_source.html
new file mode 100755
index 0000000..066e97f
--- /dev/null
+++ b/docs/API/ICoreConfigurationManager_8h_source.html
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/ICoreConfigurationManager.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('ICoreConfigurationManager_8h_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">ICoreConfigurationManager.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="ICoreConfigurationManager_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef ICoreConfigurationManager_h__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define ICoreConfigurationManager_h__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// ADOBE SYSTEMS INCORPORATED</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// Copyright 2015 Adobe Systems Incorporated</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// All Rights Reserved</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="XMPCoreFwdDeclarations_8h.html">XMPCore/XMPCoreFwdDeclarations.h</a>&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="IConfigurationManager_8h.html">XMPCommon/Interfaces/IConfigurationManager.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a> {</div><div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html"> 22</a></span>&#160; <span class="keyword">class </span><a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html">ICoreConfigurationManager_v1</a></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html">IConfigurationManager_v1</a></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; {</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; </div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#a0476368bde6f3c6e43e3659ae092f6e1">pICoreConfigurationManager</a> APICALL GetActualICoreConfigurationManager() <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a> = 0;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#a691bc74f235854166554f597f777bb5f">pcICoreConfigurationManager</a> GetActualICoreConfigurationManager() <span class="keyword">const</span> __NOTHROW__ {</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html">ICoreConfigurationManager_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;GetActualICoreConfigurationManager();</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; }</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore__Int.html#a643dfc0500b39ea6d5a81c187fe0e9bc">AdobeXMPCore_Int::pICoreConfigurationManager_I</a> APICALL GetICoreConfigurationManager_I() __NOTHROW__ = 0;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore__Int.html#ae995733eb74953fd4e8cafe373236938">AdobeXMPCore_Int::pcICoreConfigurationManager_I</a> GetICoreConfigurationManager_I() <span class="keyword">const</span> __NOTHROW__ {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html">ICoreConfigurationManager_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;GetICoreConfigurationManager_I();</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; }</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; </div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#a123c6e847d41233c9e4ba6c64a650c7f">spICoreConfigurationManager</a> MakeShared( <a class="code" href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html">pICoreConfigurationManager_base</a> ptr );</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#a885f02b2d6de4b5403445eb74e5e2ce6">spcICoreConfigurationManager</a> MakeShared( <a class="code" href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html">pcICoreConfigurationManager_base</a> ptr ) {</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">return</span> MakeShared( const_cast&lt; pICoreConfigurationManager_base &gt;( ptr ) );</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; }</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> GetInterfaceID() { <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a1fb39caa1c8eeed351b0fca6eca60577">kICoreConfigurationManagerID</a>; }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> GetInterfaceVersion() { <span class="keywordflow">return</span> 1; }</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="comment">// static factory functions</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#a123c6e847d41233c9e4ba6c64a650c7f">spICoreConfigurationManager</a> GetCoreConfigurationManager();</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html#a16df3adfe25d46e47db70e02c1b8afd3"> 94</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html#a16df3adfe25d46e47db70e02c1b8afd3">~ICoreConfigurationManager_v1</a>() __NOTHROW__ {}</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor"> #ifdef FRIEND_CLASS_DECLARATION</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; FRIEND_CLASS_DECLARATION();</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a>();</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; };</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;}</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor">#endif // ICoreConfigurationManager_h__</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="ttc" id="namespaceAdobeXMPCommon_html_aea1d692da07b844d1f642b47ea6a91bd"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">AdobeXMPCommon::uint64</a></div><div class="ttdeci">XMP_Uns64 uint64</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00142">XMPCommonDefines.h:142</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a123c6e847d41233c9e4ba6c64a650c7f"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a123c6e847d41233c9e4ba6c64a650c7f">AdobeXMPCore::spICoreConfigurationManager</a></div><div class="ttdeci">shared_ptr&lt; ICoreConfigurationManager &gt; spICoreConfigurationManager</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00213">XMPCoreFwdDeclarations.h:213</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html_aac6a4810b1f485f147ab833be63f4d7b"><div class="ttname"><a href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a></div><div class="ttdeci">#define XMP_PUBLIC</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00188">XMP_Environment.h:188</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a5a929113d3d50bda3fb7135a5c8b24a2"><div class="ttname"><a href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></div><div class="ttdeci">#define __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00117">XMPCommonDefines.h:117</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1ICoreConfigurationManager__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html">AdobeXMPCore::ICoreConfigurationManager_v1</a></div><div class="ttdoc">Version1 of the interface that represents configuration settings controllable by the client...</div><div class="ttdef"><b>Definition:</b> <a href="ICoreConfigurationManager_8h_source.html#l00022">ICoreConfigurationManager.h:22</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a0476368bde6f3c6e43e3659ae092f6e1"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a0476368bde6f3c6e43e3659ae092f6e1">AdobeXMPCore::pICoreConfigurationManager</a></div><div class="ttdeci">ICoreConfigurationManager * pICoreConfigurationManager</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00211">XMPCoreFwdDeclarations.h:211</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_a643dfc0500b39ea6d5a81c187fe0e9bc"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#a643dfc0500b39ea6d5a81c187fe0e9bc">AdobeXMPCore_Int::pICoreConfigurationManager_I</a></div><div class="ttdeci">ICoreConfigurationManager_I * pICoreConfigurationManager_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00302">XMPCoreFwdDeclarations.h:302</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html"><div class="ttname"><a href="namespaceAdobeXMPCore.html">AdobeXMPCore</a></div><div class="ttdef"><b>Definition:</b> <a href="IArrayNode_8h_source.html#l00016">IArrayNode.h:16</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a1fb39caa1c8eeed351b0fca6eca60577"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a1fb39caa1c8eeed351b0fca6eca60577">AdobeXMPCore::kICoreConfigurationManagerID</a></div><div class="ttdeci">static const uint64 kICoreConfigurationManagerID(0x63436f6e664d6772)</div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a885f02b2d6de4b5403445eb74e5e2ce6"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a885f02b2d6de4b5403445eb74e5e2ce6">AdobeXMPCore::spcICoreConfigurationManager</a></div><div class="ttdeci">shared_ptr&lt; const ICoreConfigurationManager &gt; spcICoreConfigurationManager</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00214">XMPCoreFwdDeclarations.h:214</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_ae995733eb74953fd4e8cafe373236938"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#ae995733eb74953fd4e8cafe373236938">AdobeXMPCore_Int::pcICoreConfigurationManager_I</a></div><div class="ttdeci">const ICoreConfigurationManager_I * pcICoreConfigurationManager_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00304">XMPCoreFwdDeclarations.h:304</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a691bc74f235854166554f597f777bb5f"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a691bc74f235854166554f597f777bb5f">AdobeXMPCore::pcICoreConfigurationManager</a></div><div class="ttdeci">const ICoreConfigurationManager * pcICoreConfigurationManager</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00212">XMPCoreFwdDeclarations.h:212</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a89e9297f497c2b3f1179788c31d24da4"><div class="ttname"><a href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a></div><div class="ttdeci">#define REQ_FRIEND_CLASS_DECLARATION()</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00107">XMPCommonDefines.h:107</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IConfigurationManager__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html">AdobeXMPCommon::IConfigurationManager_v1</a></div><div class="ttdoc">Version1 of the interface that represents configuration settings controllable by the client...</div><div class="ttdef"><b>Definition:</b> <a href="IConfigurationManager_8h_source.html#l00030">IConfigurationManager.h:30</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1ICoreConfigurationManager__v1_html_a16df3adfe25d46e47db70e02c1b8afd3"><div class="ttname"><a href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html#a16df3adfe25d46e47db70e02c1b8afd3">AdobeXMPCore::ICoreConfigurationManager_v1::~ICoreConfigurationManager_v1</a></div><div class="ttdeci">virtual ~ICoreConfigurationManager_v1() __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="ICoreConfigurationManager_8h_source.html#l00094">ICoreConfigurationManager.h:94</a></div></div>
+<div class="ttc" id="IConfigurationManager_8h_html"><div class="ttname"><a href="IConfigurationManager_8h.html">IConfigurationManager.h</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html_a917e8e3f02685ec390fa3aee270f7747"><div class="ttname"><a href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a></div><div class="ttdeci">#define XMP_PRIVATE</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00189">XMP_Environment.h:189</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a0b1bbe96e1a757e66974c2f076afe4d2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">AdobeXMPCommon::uint32</a></div><div class="ttdeci">XMP_Uns32 uint32</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00144">XMPCommonDefines.h:144</a></div></div>
+<div class="ttc" id="XMPCoreFwdDeclarations_8h_html"><div class="ttname"><a href="XMPCoreFwdDeclarations_8h.html">XMPCoreFwdDeclarations.h</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/ICoreObjectFactory_8h.html b/docs/API/ICoreObjectFactory_8h.html
new file mode 100755
index 0000000..ff08531
--- /dev/null
+++ b/docs/API/ICoreObjectFactory_8h.html
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/ICoreObjectFactory.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('ICoreObjectFactory_8h.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">ICoreObjectFactory.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCore/XMPCoreFwdDeclarations.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="IObjectFactory_8h_source.html">XMPCommon/Interfaces/IObjectFactory.h</a>&quot;</code><br />
+</div>
+<p><a href="ICoreObjectFactory_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html">AdobeXMPCore::ICoreObjectFactory_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version1 of a interface that represents a factory to create various artifacts of XMP DOM like array, structure, path etc. <a href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceAdobeXMPCore"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/ICoreObjectFactory_8h_source.html b/docs/API/ICoreObjectFactory_8h_source.html
new file mode 100755
index 0000000..1dd8b8a
--- /dev/null
+++ b/docs/API/ICoreObjectFactory_8h_source.html
@@ -0,0 +1,76 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/ICoreObjectFactory.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('ICoreObjectFactory_8h_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">ICoreObjectFactory.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="ICoreObjectFactory_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef ICoreObjectFactory_h__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define ICoreObjectFactory_h__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright 2014 Adobe Systems Incorporated</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// All Rights Reserved.</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="XMPCoreFwdDeclarations_8h.html">XMPCore/XMPCoreFwdDeclarations.h</a>&quot;</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="IObjectFactory_8h.html">XMPCommon/Interfaces/IObjectFactory.h</a>&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a> {</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html"> 25</a></span>&#160; <span class="keyword">class </span><a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html">ICoreObjectFactory_v1</a></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html">IObjectFactory_v1</a></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; {</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">pINameSpacePrefixMap_base</a> APICALL CreateNameSpacePrefixMap( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a> = 0;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">pcINameSpacePrefixMap_base</a> APICALL GetDefaultNameSpacePrefixMap( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1IPathSegment__v1.html">pcIPathSegment_base</a> APICALL CreatePropertyPathSegment( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1IPathSegment__v1.html">pcIPathSegment_base</a> APICALL CreateArrayIndexPathSegment( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> index, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1IPathSegment__v1.html">pcIPathSegment_base</a> APICALL CreateQualifierPathSegment( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1IPathSegment__v1.html">pcIPathSegment_base</a> APICALL CreateQualifierSelectorPathSegment( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name,</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * value, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> valueLength, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1IPath__v1.html">pIPath_base</a> APICALL CreatePath( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1IPath__v1.html">pIPath_base</a> APICALL ParsePath( <span class="keyword">const</span> <span class="keywordtype">char</span> * path, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pathLength, <a class="code" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">pcINameSpacePrefixMap_base</a> map, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1ISimpleNode__v1.html">pISimpleNode_base</a> APICALL CreateSimpleNode( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength,</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> * value, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> valueLength, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1IArrayNode__v1.html">pIArrayNode_base</a> APICALL CreateArrayNode( <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> arrayForm, <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1IStructureNode__v1.html">pIStructureNode_base</a> APICALL CreateStructureNode( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1IMetadata__v1.html">pIMetadata_base</a> APICALL CreateMetadata( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html">pIDOMImplementationRegistry_base</a> APICALL GetDOMImplementationRegistry( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html">pICoreConfigurationManager_base</a> APICALL GetCoreConfigurationManager( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; </div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#ad925e271d292d0b0af1a24342391219d">pICoreObjectFactory</a> APICALL GetActualICoreObjectFactory() __NOTHROW__ = 0;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#a55e6a583f61b00819b7034f9dd2243f9">pcICoreObjectFactory</a> GetActualICoreObjectFactory() <span class="keyword">const</span> __NOTHROW__ {</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html">ICoreObjectFactory_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;GetActualICoreObjectFactory();</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; }</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore__Int.html#ad445bf512b4b3179b131b0a7dec31d86">AdobeXMPCore_Int::pICoreObjectFactory_I</a> APICALL GetICoreObjectFactory_I() __NOTHROW__ = 0;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore__Int.html#ae32d6c403c99fe665bbeff4483a7b144">AdobeXMPCore_Int::pcICoreObjectFactory_I</a> GetICoreObjectFactory_I() <span class="keyword">const</span> __NOTHROW__ {</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html">ICoreObjectFactory_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;GetICoreObjectFactory_I();</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; }</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#ad925e271d292d0b0af1a24342391219d">pICoreObjectFactory</a> MakeCoreObjectFactory( <a class="code" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html">pICoreObjectFactory_base</a> ptr );</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#a55e6a583f61b00819b7034f9dd2243f9">pcICoreObjectFactory</a> MakeCoreObjectFactory( <a class="code" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html">pcICoreObjectFactory_base</a> ptr ) {</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">return</span> MakeCoreObjectFactory( const_cast&lt; pcICoreObjectFactory_base &gt;( ptr ) );</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; }</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> GetInterfaceID() { <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a30bb255921760813b83dfb94449051dd">kICoreObjectFactoryID</a>; }</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> GetInterfaceVersion() { <span class="keywordflow">return</span> 1; }</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#ad925e271d292d0b0af1a24342391219d">pICoreObjectFactory</a> GetCoreObjectFactory();</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="preprocessor"> #if LINKING_XMPCORE_LIB</span></div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <span class="keywordtype">void</span> SetupCoreObjectFactory();</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="preprocessor"> #else</span></div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <span class="keywordtype">void</span> SetupCoreObjectFactory( <a class="code" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html">pICoreObjectFactory_base</a> coreObjectFactory );</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <span class="keywordtype">void</span> DestroyCoreObjectFactory();</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a86ec61e722ad68c9f09e95a7ceaa4393"> 252</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a86ec61e722ad68c9f09e95a7ceaa4393">~ICoreObjectFactory_v1</a>() __NOTHROW__ {}</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="preprocessor"> #ifdef FRIEND_CLASS_DECLARATION</span></div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; FRIEND_CLASS_DECLARATION();</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <a class="code" href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a>();</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; };</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;}</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="preprocessor">#endif // ICoreObjectFactory_h__</span></div><div class="ttc" id="namespaceAdobeXMPCommon_html_aea1d692da07b844d1f642b47ea6a91bd"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">AdobeXMPCommon::uint64</a></div><div class="ttdeci">XMP_Uns64 uint64</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00142">XMPCommonDefines.h:142</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1ISimpleNode__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1ISimpleNode__v1.html">AdobeXMPCore::ISimpleNode_v1</a></div><div class="ttdoc">Version1 of the interface that represents a Simple Property Node of XMP DOM. </div><div class="ttdef"><b>Definition:</b> <a href="ISimpleNode_8h_source.html#l00023">ISimpleNode.h:23</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_ae32d6c403c99fe665bbeff4483a7b144"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#ae32d6c403c99fe665bbeff4483a7b144">AdobeXMPCore_Int::pcICoreObjectFactory_I</a></div><div class="ttdeci">const ICoreObjectFactory_I * pcICoreObjectFactory_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00299">XMPCoreFwdDeclarations.h:299</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html_aac6a4810b1f485f147ab833be63f4d7b"><div class="ttname"><a href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a></div><div class="ttdeci">#define XMP_PUBLIC</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00188">XMP_Environment.h:188</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a5a929113d3d50bda3fb7135a5c8b24a2"><div class="ttname"><a href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></div><div class="ttdeci">#define __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00117">XMPCommonDefines.h:117</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1ICoreConfigurationManager__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html">AdobeXMPCore::ICoreConfigurationManager_v1</a></div><div class="ttdoc">Version1 of the interface that represents configuration settings controllable by the client...</div><div class="ttdef"><b>Definition:</b> <a href="ICoreConfigurationManager_8h_source.html#l00022">ICoreConfigurationManager.h:22</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IMetadata__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1IMetadata__v1.html">AdobeXMPCore::IMetadata_v1</a></div><div class="ttdoc">Version1 of the interface that represents the whole xmp metadata for an asset. </div><div class="ttdef"><b>Definition:</b> <a href="IMetadata_8h_source.html#l00024">IMetadata.h:24</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html"><div class="ttname"><a href="namespaceAdobeXMPCore.html">AdobeXMPCore</a></div><div class="ttdef"><b>Definition:</b> <a href="IArrayNode_8h_source.html#l00016">IArrayNode.h:16</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INameSpacePrefixMap__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">AdobeXMPCore::INameSpacePrefixMap_v1</a></div><div class="ttdoc">Version1 of the interface that represents map where each entry consists of prefix string as the key a...</div><div class="ttdef"><b>Definition:</b> <a href="INameSpacePrefixMap_8h_source.html#l00026">INameSpacePrefixMap.h:26</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ad925e271d292d0b0af1a24342391219d"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ad925e271d292d0b0af1a24342391219d">AdobeXMPCore::pICoreObjectFactory</a></div><div class="ttdeci">ICoreObjectFactory * pICoreObjectFactory</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00201">XMPCoreFwdDeclarations.h:201</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IObjectFactory__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IObjectFactory__v1.html">AdobeXMPCommon::IObjectFactory_v1</a></div><div class="ttdoc">Version1 of a interface that represents a factory to create various artifacts defined within AdobeXMP...</div><div class="ttdef"><b>Definition:</b> <a href="IObjectFactory_8h_source.html#l00025">IObjectFactory.h:25</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IArrayNode__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1IArrayNode__v1.html">AdobeXMPCore::IArrayNode_v1</a></div><div class="ttdoc">Version1 of the interface that represents an Array Node of XMP DOM. </div><div class="ttdef"><b>Definition:</b> <a href="IArrayNode_8h_source.html#l00025">IArrayNode.h:25</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></div><div class="ttdoc">Version1 of the interface that represents an error/warning encountered during processing. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00026">IError.h:26</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a1c85c2f558b495c3d41eabe692a96cf2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a></div><div class="ttdeci">uint32 sizet</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00146">XMPCommonDefines.h:146</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a55e6a583f61b00819b7034f9dd2243f9"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a55e6a583f61b00819b7034f9dd2243f9">AdobeXMPCore::pcICoreObjectFactory</a></div><div class="ttdeci">const ICoreObjectFactory * pcICoreObjectFactory</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00202">XMPCoreFwdDeclarations.h:202</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a89e9297f497c2b3f1179788c31d24da4"><div class="ttname"><a href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a></div><div class="ttdeci">#define REQ_FRIEND_CLASS_DECLARATION()</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00107">XMPCommonDefines.h:107</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IPath__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1IPath__v1.html">AdobeXMPCore::IPath_v1</a></div><div class="ttdoc">Version1 of the interface that provides an easy iterative description of a specific path into the XMP...</div><div class="ttdef"><b>Definition:</b> <a href="IPath_8h_source.html#l00026">IPath.h:26</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IStructureNode__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1IStructureNode__v1.html">AdobeXMPCore::IStructureNode_v1</a></div><div class="ttdoc">Version1 of the interface that represents a structure Node of XMP DOM. </div><div class="ttdef"><b>Definition:</b> <a href="IStructureNode_8h_source.html#l00023">IStructureNode.h:23</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a30bb255921760813b83dfb94449051dd"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a30bb255921760813b83dfb94449051dd">AdobeXMPCore::kICoreObjectFactoryID</a></div><div class="ttdeci">static const uint64 kICoreObjectFactoryID(0x634f626a46616374)</div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html">AdobeXMPCore::IDOMImplementationRegistry_v1</a></div><div class="ttdoc">Version1 of the interface that serves as a database/registry of all the parsers and serializers avail...</div><div class="ttdef"><b>Definition:</b> <a href="IDOMImplementationRegistry_8h_source.html#l00029">IDOMImplementationRegistry.h:29</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1ICoreObjectFactory__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html">AdobeXMPCore::ICoreObjectFactory_v1</a></div><div class="ttdoc">Version1 of a interface that represents a factory to create various artifacts of XMP DOM like array...</div><div class="ttdef"><b>Definition:</b> <a href="ICoreObjectFactory_8h_source.html#l00025">ICoreObjectFactory.h:25</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_ad445bf512b4b3179b131b0a7dec31d86"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#ad445bf512b4b3179b131b0a7dec31d86">AdobeXMPCore_Int::pICoreObjectFactory_I</a></div><div class="ttdeci">ICoreObjectFactory_I * pICoreObjectFactory_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00297">XMPCoreFwdDeclarations.h:297</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1ICoreObjectFactory__v1_html_a86ec61e722ad68c9f09e95a7ceaa4393"><div class="ttname"><a href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a86ec61e722ad68c9f09e95a7ceaa4393">AdobeXMPCore::ICoreObjectFactory_v1::~ICoreObjectFactory_v1</a></div><div class="ttdeci">virtual ~ICoreObjectFactory_v1() __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="ICoreObjectFactory_8h_source.html#l00252">ICoreObjectFactory.h:252</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html_a917e8e3f02685ec390fa3aee270f7747"><div class="ttname"><a href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a></div><div class="ttdeci">#define XMP_PRIVATE</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00189">XMP_Environment.h:189</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IPathSegment__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1IPathSegment__v1.html">AdobeXMPCore::IPathSegment_v1</a></div><div class="ttdoc">Version1 of the interface that represents one segment in a path to a node into the XMP tree...</div><div class="ttdef"><b>Definition:</b> <a href="IPathSegment_8h_source.html#l00024">IPathSegment.h:24</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a0b1bbe96e1a757e66974c2f076afe4d2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">AdobeXMPCommon::uint32</a></div><div class="ttdeci">XMP_Uns32 uint32</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00144">XMPCommonDefines.h:144</a></div></div>
+<div class="ttc" id="IObjectFactory_8h_html"><div class="ttname"><a href="IObjectFactory_8h.html">IObjectFactory.h</a></div></div>
+<div class="ttc" id="XMPCoreFwdDeclarations_8h_html"><div class="ttname"><a href="XMPCoreFwdDeclarations_8h.html">XMPCoreFwdDeclarations.h</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/IDOMImplementationRegistry_8h.html b/docs/API/IDOMImplementationRegistry_8h.html
new file mode 100755
index 0000000..b2350bc
--- /dev/null
+++ b/docs/API/IDOMImplementationRegistry_8h.html
@@ -0,0 +1,68 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/IDOMImplementationRegistry.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('IDOMImplementationRegistry_8h.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">IDOMImplementationRegistry.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCore/XMPCoreFwdDeclarations.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="ISharedObject_8h_source.html">XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="IVersionable_8h_source.html">XMPCommon/Interfaces/BaseInterfaces/IVersionable.h</a>&quot;</code><br />
+</div>
+<p><a href="IDOMImplementationRegistry_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html">AdobeXMPCore::IDOMImplementationRegistry_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version1 of the interface that serves as a database/registry of all the parsers and serializers available with the XMPCore library. <a href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceAdobeXMPCore"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/IDOMImplementationRegistry_8h_source.html b/docs/API/IDOMImplementationRegistry_8h_source.html
new file mode 100755
index 0000000..1211899
--- /dev/null
+++ b/docs/API/IDOMImplementationRegistry_8h_source.html
@@ -0,0 +1,76 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/IDOMImplementationRegistry.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('IDOMImplementationRegistry_8h_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">IDOMImplementationRegistry.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="IDOMImplementationRegistry_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef IDOMImplementationRegistry_h__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define IDOMImplementationRegistry_h__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// ADOBE SYSTEMS INCORPORATED</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// Copyright 2014 Adobe Systems Incorporated</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// All Rights Reserved</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="XMPCoreFwdDeclarations_8h.html">XMPCore/XMPCoreFwdDeclarations.h</a>&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ISharedObject_8h.html">XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="IVersionable_8h.html">XMPCommon/Interfaces/BaseInterfaces/IVersionable.h</a>&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a> {</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html"> 29</a></span>&#160; <span class="keyword">class </span><a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html">IDOMImplementationRegistry_v1</a></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1ISharedObject.html">ISharedObject</a></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; , <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IVersionable.html">IVersionable</a></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; {</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#a737ec082bb4e7f817b45e073337c0893">spIDOMParser</a> APICALL GetParser( <span class="keyword">const</span> <span class="keywordtype">char</span> * key ) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#af3525e619e07f58d7eb8247b56ddad21">spIDOMSerializer</a> APICALL GetSerializer( <span class="keyword">const</span> <span class="keywordtype">char</span> * key ) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL RegisterParser( <span class="keyword">const</span> <span class="keywordtype">char</span> * key, <a class="code" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html">pIClientDOMParser_base</a> parser ) = 0;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL RegisterSerializer( <span class="keyword">const</span> <span class="keywordtype">char</span> * key, <a class="code" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html">pIClientDOMSerializer_base</a> serializer ) = 0;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#a197acc21ecf883449824a1e87a99586a">spIDOMImplementationRegistry</a> GetDOMImplementationRegistry();</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; </div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#ae332986668c86f3e5c6bbd57fd5f4cad">pIDOMImplementationRegistry</a> APICALL GetActualIDOMImplementationRegistry() <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a> = 0;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#a3971bab010eb9c01783af14c58ccfe54">pcIDOMImplementationRegistry</a> GetActualIDOMImplementationRegistry() <span class="keyword">const</span> __NOTHROW__ {</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html">IDOMImplementationRegistry_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;GetActualIDOMImplementationRegistry();</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; }</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore__Int.html#ad26aadc3f0926468c34c02cc1a0f1dbd">AdobeXMPCore_Int::pIDOMImplementationRegistry_I</a> APICALL GetIDOMImplementationRegistry_I() __NOTHROW__ = 0;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore__Int.html#ae7c82f1920d2cbe1956fc5c43d0b10e2">AdobeXMPCore_Int::pcIDOMImplementationRegistry_I</a> GetIDOMImplementationRegistry_I() <span class="keyword">const</span> __NOTHROW__ {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html">IDOMImplementationRegistry_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;GetIDOMImplementationRegistry_I();</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; </div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#a197acc21ecf883449824a1e87a99586a">spIDOMImplementationRegistry</a> MakeShared( <a class="code" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html">pIDOMImplementationRegistry_base</a> ptr );</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#a6efe4728a027ee77597fe1a05a6bc30c">spcIDOMImplementationRegistry</a> MakeShared( <a class="code" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html">pcIDOMImplementationRegistry_base</a> ptr ) {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">return</span> MakeShared( const_cast&lt; pIDOMImplementationRegistry_base &gt;( ptr ) );</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> GetInterfaceID() { <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a6d787e316880e838d2a03f641a520a5b">kIDOMImplementationRegistryID</a>; }</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> GetInterfaceVersion() { <span class="keywordflow">return</span> 1; }</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html#a8fab4e8f7a4b6b652c623f58d7e3432b"> 133</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html#a8fab4e8f7a4b6b652c623f58d7e3432b">~IDOMImplementationRegistry_v1</a>() __NOTHROW__ {}</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1IDOMParser__v1.html">pIDOMParser_base</a> APICALL getParser( <span class="keyword">const</span> <span class="keywordtype">char</span> * key, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html">pIDOMSerializer_base</a> APICALL getSerializer( <span class="keyword">const</span> <span class="keywordtype">char</span> * key, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL registerParser( <span class="keyword">const</span> <span class="keywordtype">char</span> * key, <a class="code" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html">pIClientDOMParser_base</a> parser, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL registerSerializer( <span class="keyword">const</span> <span class="keywordtype">char</span> * key, <a class="code" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html">pIClientDOMSerializer_base</a> serializer, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__= 0;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="preprocessor"> #ifdef FRIEND_CLASS_DECLARATION</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; FRIEND_CLASS_DECLARATION();</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a>();</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; };</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;}</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="preprocessor">#endif // IDOMImplementationRegistry_h__</span></div><div class="ttc" id="namespaceAdobeXMPCommon_html_aea1d692da07b844d1f642b47ea6a91bd"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">AdobeXMPCommon::uint64</a></div><div class="ttdeci">XMP_Uns64 uint64</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00142">XMPCommonDefines.h:142</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1_html_a8fab4e8f7a4b6b652c623f58d7e3432b"><div class="ttname"><a href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html#a8fab4e8f7a4b6b652c623f58d7e3432b">AdobeXMPCore::IDOMImplementationRegistry_v1::~IDOMImplementationRegistry_v1</a></div><div class="ttdeci">virtual ~IDOMImplementationRegistry_v1() __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="IDOMImplementationRegistry_8h_source.html#l00133">IDOMImplementationRegistry.h:133</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a6d787e316880e838d2a03f641a520a5b"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a6d787e316880e838d2a03f641a520a5b">AdobeXMPCore::kIDOMImplementationRegistryID</a></div><div class="ttdeci">static const uint64 kIDOMImplementationRegistryID(0x63444f4d52677374)</div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IClientDOMParser__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1IClientDOMParser__v1.html">AdobeXMPCore::IClientDOMParser_v1</a></div><div class="ttdoc">Version 1 of the interface that supports parsing by the client supplied parser of the XMP Data Model...</div><div class="ttdef"><b>Definition:</b> <a href="IClientDOMParser_8h_source.html#l00022">IClientDOMParser.h:22</a></div></div>
+<div class="ttc" id="ISharedObject_8h_html"><div class="ttname"><a href="ISharedObject_8h.html">ISharedObject.h</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IClientDOMSerializer__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html">AdobeXMPCore::IClientDOMSerializer_v1</a></div><div class="ttdoc">Version 1 of the interface that supports serializing by the client supplied serializer of the XMP Dat...</div><div class="ttdef"><b>Definition:</b> <a href="IClientDOMSerializer_8h_source.html#l00025">IClientDOMSerializer.h:25</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html_aac6a4810b1f485f147ab833be63f4d7b"><div class="ttname"><a href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a></div><div class="ttdeci">#define XMP_PUBLIC</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00188">XMP_Environment.h:188</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a5a929113d3d50bda3fb7135a5c8b24a2"><div class="ttname"><a href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></div><div class="ttdeci">#define __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00117">XMPCommonDefines.h:117</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a3971bab010eb9c01783af14c58ccfe54"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a3971bab010eb9c01783af14c58ccfe54">AdobeXMPCore::pcIDOMImplementationRegistry</a></div><div class="ttdeci">const IDOMImplementationRegistry * pcIDOMImplementationRegistry</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00190">XMPCoreFwdDeclarations.h:190</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html"><div class="ttname"><a href="namespaceAdobeXMPCore.html">AdobeXMPCore</a></div><div class="ttdef"><b>Definition:</b> <a href="IArrayNode_8h_source.html#l00016">IArrayNode.h:16</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_af3525e619e07f58d7eb8247b56ddad21"><div class="ttname"><a href="namespaceAdobeXMPCore.html#af3525e619e07f58d7eb8247b56ddad21">AdobeXMPCore::spIDOMSerializer</a></div><div class="ttdeci">shared_ptr&lt; IDOMSerializer &gt; spIDOMSerializer</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00179">XMPCoreFwdDeclarations.h:179</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a737ec082bb4e7f817b45e073337c0893"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a737ec082bb4e7f817b45e073337c0893">AdobeXMPCore::spIDOMParser</a></div><div class="ttdeci">shared_ptr&lt; IDOMParser &gt; spIDOMParser</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00167">XMPCoreFwdDeclarations.h:167</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IDOMParser__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1IDOMParser__v1.html">AdobeXMPCore::IDOMParser_v1</a></div><div class="ttdoc">Version 1 of the interface that supports parsing of the XMP Data Model. </div><div class="ttdef"><b>Definition:</b> <a href="IDOMParser_8h_source.html#l00024">IDOMParser.h:24</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a6efe4728a027ee77597fe1a05a6bc30c"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a6efe4728a027ee77597fe1a05a6bc30c">AdobeXMPCore::spcIDOMImplementationRegistry</a></div><div class="ttdeci">shared_ptr&lt; const IDOMImplementationRegistry &gt; spcIDOMImplementationRegistry</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00192">XMPCoreFwdDeclarations.h:192</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></div><div class="ttdoc">Version1 of the interface that represents an error/warning encountered during processing. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00026">IError.h:26</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ae332986668c86f3e5c6bbd57fd5f4cad"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ae332986668c86f3e5c6bbd57fd5f4cad">AdobeXMPCore::pIDOMImplementationRegistry</a></div><div class="ttdeci">IDOMImplementationRegistry * pIDOMImplementationRegistry</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00189">XMPCoreFwdDeclarations.h:189</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1ISharedObject_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></div><div class="ttdoc">Interface that serves as the base interface of all the externally exposed interfaces. </div><div class="ttdef"><b>Definition:</b> <a href="ISharedObject_8h_source.html#l00027">ISharedObject.h:27</a></div></div>
+<div class="ttc" id="IVersionable_8h_html"><div class="ttname"><a href="IVersionable_8h.html">IVersionable.h</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_ae7c82f1920d2cbe1956fc5c43d0b10e2"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#ae7c82f1920d2cbe1956fc5c43d0b10e2">AdobeXMPCore_Int::pcIDOMImplementationRegistry_I</a></div><div class="ttdeci">const IDOMImplementationRegistry_I * pcIDOMImplementationRegistry_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00294">XMPCoreFwdDeclarations.h:294</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a89e9297f497c2b3f1179788c31d24da4"><div class="ttname"><a href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a></div><div class="ttdeci">#define REQ_FRIEND_CLASS_DECLARATION()</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00107">XMPCommonDefines.h:107</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a197acc21ecf883449824a1e87a99586a"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a197acc21ecf883449824a1e87a99586a">AdobeXMPCore::spIDOMImplementationRegistry</a></div><div class="ttdeci">shared_ptr&lt; IDOMImplementationRegistry &gt; spIDOMImplementationRegistry</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00191">XMPCoreFwdDeclarations.h:191</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IVersionable_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></div><div class="ttdoc">Interface that serves as the base interface for all the externally exposed interfaces which needs to ...</div><div class="ttdef"><b>Definition:</b> <a href="IVersionable_8h_source.html#l00028">IVersionable.h:28</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html">AdobeXMPCore::IDOMImplementationRegistry_v1</a></div><div class="ttdoc">Version1 of the interface that serves as a database/registry of all the parsers and serializers avail...</div><div class="ttdef"><b>Definition:</b> <a href="IDOMImplementationRegistry_8h_source.html#l00029">IDOMImplementationRegistry.h:29</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_ad26aadc3f0926468c34c02cc1a0f1dbd"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#ad26aadc3f0926468c34c02cc1a0f1dbd">AdobeXMPCore_Int::pIDOMImplementationRegistry_I</a></div><div class="ttdeci">IDOMImplementationRegistry_I * pIDOMImplementationRegistry_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00292">XMPCoreFwdDeclarations.h:292</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html_a917e8e3f02685ec390fa3aee270f7747"><div class="ttname"><a href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a></div><div class="ttdeci">#define XMP_PRIVATE</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00189">XMP_Environment.h:189</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IDOMSerializer__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1IDOMSerializer__v1.html">AdobeXMPCore::IDOMSerializer_v1</a></div><div class="ttdoc">Version1 of the interface that represents an object that can serialize an XMP Data Model to a buffer...</div><div class="ttdef"><b>Definition:</b> <a href="IDOMSerializer_8h_source.html#l00023">IDOMSerializer.h:23</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a0b1bbe96e1a757e66974c2f076afe4d2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">AdobeXMPCommon::uint32</a></div><div class="ttdeci">XMP_Uns32 uint32</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00144">XMPCommonDefines.h:144</a></div></div>
+<div class="ttc" id="XMPCoreFwdDeclarations_8h_html"><div class="ttname"><a href="XMPCoreFwdDeclarations_8h.html">XMPCoreFwdDeclarations.h</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/IDOMParser_8h.html b/docs/API/IDOMParser_8h.html
new file mode 100755
index 0000000..a7bcc25
--- /dev/null
+++ b/docs/API/IDOMParser_8h.html
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/IDOMParser.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('IDOMParser_8h.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">IDOMParser.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCore/XMPCoreFwdDeclarations.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="ISharedObject_8h_source.html">XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="IVersionable_8h_source.html">XMPCommon/Interfaces/BaseInterfaces/IVersionable.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="IConfigurable_8h_source.html">XMPCommon/Interfaces/BaseInterfaces/IConfigurable.h</a>&quot;</code><br />
+</div>
+<p><a href="IDOMParser_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html">AdobeXMPCore::IDOMParser_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version 1 of the interface that supports parsing of the XMP Data Model. <a href="classAdobeXMPCore_1_1IDOMParser__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceAdobeXMPCore"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/IDOMParser_8h_source.html b/docs/API/IDOMParser_8h_source.html
new file mode 100755
index 0000000..d813c51
--- /dev/null
+++ b/docs/API/IDOMParser_8h_source.html
@@ -0,0 +1,78 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/IDOMParser.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('IDOMParser_8h_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">IDOMParser.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="IDOMParser_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef IDOMParser_h__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define IDOMParser_h__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// ADOBE SYSTEMS INCORPORATED</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// Copyright 2014 Adobe Systems Incorporated</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// All Rights Reserved</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="XMPCoreFwdDeclarations_8h.html">XMPCore/XMPCoreFwdDeclarations.h</a>&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ISharedObject_8h.html">XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="IVersionable_8h.html">XMPCommon/Interfaces/BaseInterfaces/IVersionable.h</a>&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="IConfigurable_8h.html">XMPCommon/Interfaces/BaseInterfaces/IConfigurable.h</a>&quot;</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a> {</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IDOMParser__v1.html"> 24</a></span>&#160; <span class="keyword">class </span><a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="classAdobeXMPCore_1_1IDOMParser__v1.html">IDOMParser_v1</a></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IConfigurable.html">IConfigurable</a></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; , <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1ISharedObject.html">ISharedObject</a></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; , <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IVersionable.html">IVersionable</a></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; {</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345"> 34</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">enum</span> {</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345a6ce0fb64b1a284951f50aacdf76e28b9"> 42</a></span>&#160; kATAppendAsChildren = 0,</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345ac19566553b38e9bf6c5361a8aa9bb181"> 51</a></span>&#160; kATReplaceChildren = 1,</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345a720d171caeb649caf22e27ed4a39bd15"> 60</a></span>&#160; kATAppendOrReplaceChildren = 2,</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345aabbc604d77794e6cecedf1bdd947d252"> 67</a></span>&#160; kATInsertBefore = 3,</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345a8fca6913cbd9d4f787e53fdcfb54f2bf"> 74</a></span>&#160; kATInsertAfter = 4,</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345a2adb910039a572f5e73dbb94f680ed18"> 79</a></span>&#160; kATReplace = 5,</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; } <a class="code" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345">eActionType</a>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#a7f1de39fd79aeac4402eba73cb1ffe82">spIMetadata</a> APICALL Parse( <span class="keyword">const</span> <span class="keywordtype">char</span> * buffer, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> bufferLength ) = 0;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL ParseWithSpecificAction( <span class="keyword">const</span> <span class="keywordtype">char</span> * buffer, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> bufferLength, <a class="code" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345">eActionType</a> actionType, <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp; node ) = 0;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#a737ec082bb4e7f817b45e073337c0893">spIDOMParser</a> APICALL Clone() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; </div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#a8b003da6674d32c5c628f1d0e1fa45aa">pIDOMParser</a> APICALL GetActualIDOMParser() <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a> = 0;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#a6b5fc097880814213414c58da877fea5">pcIDOMParser</a> GetActualIDOMParser() const <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a> {</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCore_1_1IDOMParser__v1.html">IDOMParser_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;GetActualIDOMParser();</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; }</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore__Int.html#a4dad9e02be4a3efae9ea99e5f03ae11e">AdobeXMPCore_Int::pIDOMParser_I</a> APICALL GetIDOMParser_I() <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a> = 0;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore__Int.html#a3a6d0893476eb4ce3713ca88e5c80b4e">AdobeXMPCore_Int::pcIDOMParser_I</a> GetIDOMParser_I() <span class="keyword">const</span> __NOTHROW__ {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCore_1_1IDOMParser__v1.html">IDOMParser_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;GetIDOMParser_I();</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; }</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; </div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#a737ec082bb4e7f817b45e073337c0893">spIDOMParser</a> MakeShared( <a class="code" href="classAdobeXMPCore_1_1IDOMParser__v1.html">pIDOMParser_base</a> ptr );</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#a587ba854add16d5201c974a3a0f7050c">spcIDOMParser</a> MakeShared( <a class="code" href="classAdobeXMPCore_1_1IDOMParser__v1.html">pcIDOMParser_base</a> ptr ) {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">return</span> MakeShared( const_cast&lt; pIDOMParser_base &gt;( ptr ) );</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; }</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> GetInterfaceID() { <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#aa11deda1f160ba3bfba36558afcaa0ef">kIDOMParserID</a>; }</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> GetInterfaceVersion() { <span class="keywordflow">return</span> 1; }</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a8cbde9bf86ebb4ef4a6968e39b601670"> 165</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a8cbde9bf86ebb4ef4a6968e39b601670">~IDOMParser_v1</a>() __NOTHROW__ {}</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1IMetadata__v1.html">pIMetadata_base</a> APICALL parse( <span class="keyword">const</span> <span class="keywordtype">char</span> * buffer, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> bufferLength, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL parseWithSpecificAction( <span class="keyword">const</span> <span class="keywordtype">char</span> * buffer, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> bufferLength, <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> actionType, <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> node, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1IDOMParser__v1.html">pIDOMParser_base</a> APICALL clone( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="preprocessor"> #ifdef FRIEND_CLASS_DECLARATION</span></div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; FRIEND_CLASS_DECLARATION();</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <a class="code" href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a>();</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; };</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;}</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="preprocessor">#endif // IDOMParser_h__</span></div><div class="ttc" id="namespaceAdobeXMPCommon_html_aea1d692da07b844d1f642b47ea6a91bd"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">AdobeXMPCommon::uint64</a></div><div class="ttdeci">XMP_Uns64 uint64</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00142">XMPCommonDefines.h:142</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aa11deda1f160ba3bfba36558afcaa0ef"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aa11deda1f160ba3bfba36558afcaa0ef">AdobeXMPCore::kIDOMParserID</a></div><div class="ttdeci">static const uint64 kIDOMParserID(0x63444f4d50727372)</div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a587ba854add16d5201c974a3a0f7050c"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a587ba854add16d5201c974a3a0f7050c">AdobeXMPCore::spcIDOMParser</a></div><div class="ttdeci">shared_ptr&lt; const IDOMParser &gt; spcIDOMParser</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00168">XMPCoreFwdDeclarations.h:168</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_a3a6d0893476eb4ce3713ca88e5c80b4e"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#a3a6d0893476eb4ce3713ca88e5c80b4e">AdobeXMPCore_Int::pcIDOMParser_I</a></div><div class="ttdeci">const IDOMParser_I * pcIDOMParser_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00284">XMPCoreFwdDeclarations.h:284</a></div></div>
+<div class="ttc" id="ISharedObject_8h_html"><div class="ttname"><a href="ISharedObject_8h.html">ISharedObject.h</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html_aac6a4810b1f485f147ab833be63f4d7b"><div class="ttname"><a href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a></div><div class="ttdeci">#define XMP_PUBLIC</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00188">XMP_Environment.h:188</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a5a929113d3d50bda3fb7135a5c8b24a2"><div class="ttname"><a href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></div><div class="ttdeci">#define __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00117">XMPCommonDefines.h:117</a></div></div>
+<div class="ttc" id="IConfigurable_8h_html"><div class="ttname"><a href="IConfigurable_8h.html">IConfigurable.h</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a6b5fc097880814213414c58da877fea5"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a6b5fc097880814213414c58da877fea5">AdobeXMPCore::pcIDOMParser</a></div><div class="ttdeci">const IDOMParser * pcIDOMParser</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00166">XMPCoreFwdDeclarations.h:166</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IMetadata__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1IMetadata__v1.html">AdobeXMPCore::IMetadata_v1</a></div><div class="ttdoc">Version1 of the interface that represents the whole xmp metadata for an asset. </div><div class="ttdef"><b>Definition:</b> <a href="IMetadata_8h_source.html#l00024">IMetadata.h:24</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IConfigurable_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></div><div class="ttdoc">Interface that allows to attach various key-value parameters to the underlying object. </div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00030">IConfigurable.h:30</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html"><div class="ttname"><a href="namespaceAdobeXMPCore.html">AdobeXMPCore</a></div><div class="ttdef"><b>Definition:</b> <a href="IArrayNode_8h_source.html#l00016">IArrayNode.h:16</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></div><div class="ttdoc">Version1 of the interface that serves as a base interface to all types of nodes in the XMP DOM...</div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00026">INode.h:26</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a737ec082bb4e7f817b45e073337c0893"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a737ec082bb4e7f817b45e073337c0893">AdobeXMPCore::spIDOMParser</a></div><div class="ttdeci">shared_ptr&lt; IDOMParser &gt; spIDOMParser</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00167">XMPCoreFwdDeclarations.h:167</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IDOMParser__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1IDOMParser__v1.html">AdobeXMPCore::IDOMParser_v1</a></div><div class="ttdoc">Version 1 of the interface that supports parsing of the XMP Data Model. </div><div class="ttdef"><b>Definition:</b> <a href="IDOMParser_8h_source.html#l00024">IDOMParser.h:24</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_a4dad9e02be4a3efae9ea99e5f03ae11e"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#a4dad9e02be4a3efae9ea99e5f03ae11e">AdobeXMPCore_Int::pIDOMParser_I</a></div><div class="ttdeci">IDOMParser_I * pIDOMParser_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00282">XMPCoreFwdDeclarations.h:282</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></div><div class="ttdoc">Version1 of the interface that represents an error/warning encountered during processing. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00026">IError.h:26</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IDOMParser__v1_html_a9f311215532a5fa1d15a491fc7e71345"><div class="ttname"><a href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345">AdobeXMPCore::IDOMParser_v1::eActionType</a></div><div class="ttdeci">eActionType</div><div class="ttdoc">Indicates various types of operations possible while parsing with some node as the context...</div><div class="ttdef"><b>Definition:</b> <a href="IDOMParser_8h_source.html#l00034">IDOMParser.h:34</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a1c85c2f558b495c3d41eabe692a96cf2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a></div><div class="ttdeci">uint32 sizet</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00146">XMPCommonDefines.h:146</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1ISharedObject_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></div><div class="ttdoc">Interface that serves as the base interface of all the externally exposed interfaces. </div><div class="ttdef"><b>Definition:</b> <a href="ISharedObject_8h_source.html#l00027">ISharedObject.h:27</a></div></div>
+<div class="ttc" id="IVersionable_8h_html"><div class="ttname"><a href="IVersionable_8h.html">IVersionable.h</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IDOMParser__v1_html_a8cbde9bf86ebb4ef4a6968e39b601670"><div class="ttname"><a href="classAdobeXMPCore_1_1IDOMParser__v1.html#a8cbde9bf86ebb4ef4a6968e39b601670">AdobeXMPCore::IDOMParser_v1::~IDOMParser_v1</a></div><div class="ttdeci">virtual ~IDOMParser_v1() __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="IDOMParser_8h_source.html#l00165">IDOMParser.h:165</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a89e9297f497c2b3f1179788c31d24da4"><div class="ttname"><a href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a></div><div class="ttdeci">#define REQ_FRIEND_CLASS_DECLARATION()</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00107">XMPCommonDefines.h:107</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a7f1de39fd79aeac4402eba73cb1ffe82"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a7f1de39fd79aeac4402eba73cb1ffe82">AdobeXMPCore::spIMetadata</a></div><div class="ttdeci">shared_ptr&lt; IMetadata &gt; spIMetadata</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00137">XMPCoreFwdDeclarations.h:137</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IVersionable_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></div><div class="ttdoc">Interface that serves as the base interface for all the externally exposed interfaces which needs to ...</div><div class="ttdef"><b>Definition:</b> <a href="IVersionable_8h_source.html#l00028">IVersionable.h:28</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aeec2c711a611cbc3c77ef1a0bb026e33"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">AdobeXMPCore::spINode</a></div><div class="ttdeci">shared_ptr&lt; INode &gt; spINode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00065">XMPCoreFwdDeclarations.h:65</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html_a917e8e3f02685ec390fa3aee270f7747"><div class="ttname"><a href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a></div><div class="ttdeci">#define XMP_PRIVATE</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00189">XMP_Environment.h:189</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a8b003da6674d32c5c628f1d0e1fa45aa"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a8b003da6674d32c5c628f1d0e1fa45aa">AdobeXMPCore::pIDOMParser</a></div><div class="ttdeci">IDOMParser * pIDOMParser</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00165">XMPCoreFwdDeclarations.h:165</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a0b1bbe96e1a757e66974c2f076afe4d2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">AdobeXMPCommon::uint32</a></div><div class="ttdeci">XMP_Uns32 uint32</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00144">XMPCommonDefines.h:144</a></div></div>
+<div class="ttc" id="XMPCoreFwdDeclarations_8h_html"><div class="ttname"><a href="XMPCoreFwdDeclarations_8h.html">XMPCoreFwdDeclarations.h</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/IDOMSerializer_8h.html b/docs/API/IDOMSerializer_8h.html
new file mode 100755
index 0000000..6f06b55
--- /dev/null
+++ b/docs/API/IDOMSerializer_8h.html
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/IDOMSerializer.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('IDOMSerializer_8h.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">IDOMSerializer.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCore/XMPCoreFwdDeclarations.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="ISharedObject_8h_source.html">XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="IVersionable_8h_source.html">XMPCommon/Interfaces/BaseInterfaces/IVersionable.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="IConfigurable_8h_source.html">XMPCommon/Interfaces/BaseInterfaces/IConfigurable.h</a>&quot;</code><br />
+</div>
+<p><a href="IDOMSerializer_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html">AdobeXMPCore::IDOMSerializer_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version1 of the interface that represents an object that can serialize an XMP Data Model to a buffer. Provides the functions to serialize the XMP Data Model. <a href="classAdobeXMPCore_1_1IDOMSerializer__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceAdobeXMPCore"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/IDOMSerializer_8h_source.html b/docs/API/IDOMSerializer_8h_source.html
new file mode 100755
index 0000000..831058b
--- /dev/null
+++ b/docs/API/IDOMSerializer_8h_source.html
@@ -0,0 +1,78 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/IDOMSerializer.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('IDOMSerializer_8h_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">IDOMSerializer.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="IDOMSerializer_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef IDOMSerializer_h__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define IDOMSerializer_h__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// ADOBE SYSTEMS INCORPORATED</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// Copyright 2014 Adobe Systems Incorporated</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// All Rights Reserved</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="XMPCoreFwdDeclarations_8h.html">XMPCore/XMPCoreFwdDeclarations.h</a>&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ISharedObject_8h.html">XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="IVersionable_8h.html">XMPCommon/Interfaces/BaseInterfaces/IVersionable.h</a>&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="IConfigurable_8h.html">XMPCommon/Interfaces/BaseInterfaces/IConfigurable.h</a>&quot;</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a> {</div><div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html"> 23</a></span>&#160; <span class="keyword">class </span><a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html">IDOMSerializer_v1</a></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IConfigurable.html">IConfigurable</a></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; , <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1ISharedObject.html">ISharedObject</a></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; , <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IVersionable.html">IVersionable</a></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; {</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL Serialize( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp; node, <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCore.html#a22f9e572045a61aa3cfc629a0d877d72">spcINameSpacePrefixMap</a> &amp; nameSpacePrefixMap = <a class="code" href="namespaceAdobeXMPCore.html#a22f9e572045a61aa3cfc629a0d877d72">spcINameSpacePrefixMap</a>() ) = 0;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#af3525e619e07f58d7eb8247b56ddad21">spIDOMSerializer</a> APICALL Clone() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; </div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; </div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#a6b414731e356594947b08382866c9fcf">pIDOMSerializer</a> APICALL GetActualIDOMSerializer() <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a> = 0;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#a1de6f60a0aefc1d42bb656731ff33a9b">pcIDOMSerializer</a> GetActualIDOMSerializer() <span class="keyword">const</span> __NOTHROW__ {</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html">IDOMSerializer_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;GetActualIDOMSerializer();</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; }</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore__Int.html#a1bbf04f53ef3da6e5e12f535679bb177">AdobeXMPCore_Int::pIDOMSerializer_I</a> APICALL GetIDOMSerializer_I() __NOTHROW__ = 0;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore__Int.html#a771229361d508f6fc0d427803543d38b">AdobeXMPCore_Int::pcIDOMSerializer_I</a> GetIDOMSerializer_I() <span class="keyword">const</span> __NOTHROW__ {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html">IDOMSerializer_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;GetIDOMSerializer_I();</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; </div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#af3525e619e07f58d7eb8247b56ddad21">spIDOMSerializer</a> MakeShared( <a class="code" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html">pIDOMSerializer_base</a> ptr );</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#aee2397438ef33989fb100e5923821eb9">spcIDOMSerializer</a> MakeShared( <a class="code" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html">pcIDOMSerializer_base</a> ptr ) {</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">return</span> MakeShared( const_cast&lt; pIDOMSerializer_base &gt;( ptr ) );</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; }</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> GetInterfaceID() { <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a16e22df4b5facaffff284ab0104404a9">kIDOMSerializerID</a>; }</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> GetInterfaceVersion() { <span class="keywordflow">return</span> 1; }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html#a3631ef4b5bf7814d37f9582463d7d453"> 104</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html#a3631ef4b5bf7814d37f9582463d7d453">~IDOMSerializer_v1</a>() __NOTHROW__ {}</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">pIUTF8String_base</a> APICALL serialize( <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> node, <a class="code" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">pcINameSpacePrefixMap_base</a> map, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html">pIDOMSerializer_base</a> APICALL clone( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="preprocessor"> #ifdef FRIEND_CLASS_DECLARATION</span></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; FRIEND_CLASS_DECLARATION();</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="code" href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a>();</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; };</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;}</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="preprocessor">#endif // IDOMSerializer_h__</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="ttc" id="namespaceAdobeXMPCommon_html_aea1d692da07b844d1f642b47ea6a91bd"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">AdobeXMPCommon::uint64</a></div><div class="ttdeci">XMP_Uns64 uint64</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00142">XMPCommonDefines.h:142</a></div></div>
+<div class="ttc" id="ISharedObject_8h_html"><div class="ttname"><a href="ISharedObject_8h.html">ISharedObject.h</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_a1bbf04f53ef3da6e5e12f535679bb177"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#a1bbf04f53ef3da6e5e12f535679bb177">AdobeXMPCore_Int::pIDOMSerializer_I</a></div><div class="ttdeci">IDOMSerializer_I * pIDOMSerializer_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00287">XMPCoreFwdDeclarations.h:287</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html_aac6a4810b1f485f147ab833be63f4d7b"><div class="ttname"><a href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a></div><div class="ttdeci">#define XMP_PUBLIC</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00188">XMP_Environment.h:188</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a5a929113d3d50bda3fb7135a5c8b24a2"><div class="ttname"><a href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></div><div class="ttdeci">#define __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00117">XMPCommonDefines.h:117</a></div></div>
+<div class="ttc" id="IConfigurable_8h_html"><div class="ttname"><a href="IConfigurable_8h.html">IConfigurable.h</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a22f9e572045a61aa3cfc629a0d877d72"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a22f9e572045a61aa3cfc629a0d877d72">AdobeXMPCore::spcINameSpacePrefixMap</a></div><div class="ttdeci">shared_ptr&lt; const INameSpacePrefixMap &gt; spcINameSpacePrefixMap</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00030">XMPCoreFwdDeclarations.h:30</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IDOMSerializer__v1_html_a3631ef4b5bf7814d37f9582463d7d453"><div class="ttname"><a href="classAdobeXMPCore_1_1IDOMSerializer__v1.html#a3631ef4b5bf7814d37f9582463d7d453">AdobeXMPCore::IDOMSerializer_v1::~IDOMSerializer_v1</a></div><div class="ttdeci">virtual ~IDOMSerializer_v1() __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="IDOMSerializer_8h_source.html#l00104">IDOMSerializer.h:104</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IConfigurable_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></div><div class="ttdoc">Interface that allows to attach various key-value parameters to the underlying object. </div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00030">IConfigurable.h:30</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a1de6f60a0aefc1d42bb656731ff33a9b"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a1de6f60a0aefc1d42bb656731ff33a9b">AdobeXMPCore::pcIDOMSerializer</a></div><div class="ttdeci">const IDOMSerializer * pcIDOMSerializer</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00178">XMPCoreFwdDeclarations.h:178</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html"><div class="ttname"><a href="namespaceAdobeXMPCore.html">AdobeXMPCore</a></div><div class="ttdef"><b>Definition:</b> <a href="IArrayNode_8h_source.html#l00016">IArrayNode.h:16</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></div><div class="ttdoc">Version1 of the interface that serves as a base interface to all types of nodes in the XMP DOM...</div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00026">INode.h:26</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INameSpacePrefixMap__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">AdobeXMPCore::INameSpacePrefixMap_v1</a></div><div class="ttdoc">Version1 of the interface that represents map where each entry consists of prefix string as the key a...</div><div class="ttdef"><b>Definition:</b> <a href="INameSpacePrefixMap_8h_source.html#l00026">INameSpacePrefixMap.h:26</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_af3525e619e07f58d7eb8247b56ddad21"><div class="ttname"><a href="namespaceAdobeXMPCore.html#af3525e619e07f58d7eb8247b56ddad21">AdobeXMPCore::spIDOMSerializer</a></div><div class="ttdeci">shared_ptr&lt; IDOMSerializer &gt; spIDOMSerializer</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00179">XMPCoreFwdDeclarations.h:179</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></div><div class="ttdoc">Version1 of the interface that represents an error/warning encountered during processing. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00026">IError.h:26</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1ISharedObject_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></div><div class="ttdoc">Interface that serves as the base interface of all the externally exposed interfaces. </div><div class="ttdef"><b>Definition:</b> <a href="ISharedObject_8h_source.html#l00027">ISharedObject.h:27</a></div></div>
+<div class="ttc" id="IVersionable_8h_html"><div class="ttname"><a href="IVersionable_8h.html">IVersionable.h</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a16e22df4b5facaffff284ab0104404a9"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a16e22df4b5facaffff284ab0104404a9">AdobeXMPCore::kIDOMSerializerID</a></div><div class="ttdeci">static const uint64 kIDOMSerializerID(0x63444f4d53726c7a)</div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aee2397438ef33989fb100e5923821eb9"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aee2397438ef33989fb100e5923821eb9">AdobeXMPCore::spcIDOMSerializer</a></div><div class="ttdeci">shared_ptr&lt; const IDOMSerializer &gt; spcIDOMSerializer</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00180">XMPCoreFwdDeclarations.h:180</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a89e9297f497c2b3f1179788c31d24da4"><div class="ttname"><a href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a></div><div class="ttdeci">#define REQ_FRIEND_CLASS_DECLARATION()</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00107">XMPCommonDefines.h:107</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_a771229361d508f6fc0d427803543d38b"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#a771229361d508f6fc0d427803543d38b">AdobeXMPCore_Int::pcIDOMSerializer_I</a></div><div class="ttdeci">const IDOMSerializer_I * pcIDOMSerializer_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00289">XMPCoreFwdDeclarations.h:289</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IVersionable_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></div><div class="ttdoc">Interface that serves as the base interface for all the externally exposed interfaces which needs to ...</div><div class="ttdef"><b>Definition:</b> <a href="IVersionable_8h_source.html#l00028">IVersionable.h:28</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aeec2c711a611cbc3c77ef1a0bb026e33"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">AdobeXMPCore::spINode</a></div><div class="ttdeci">shared_ptr&lt; INode &gt; spINode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00065">XMPCoreFwdDeclarations.h:65</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html_a917e8e3f02685ec390fa3aee270f7747"><div class="ttname"><a href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a></div><div class="ttdeci">#define XMP_PRIVATE</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00189">XMP_Environment.h:189</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IDOMSerializer__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1IDOMSerializer__v1.html">AdobeXMPCore::IDOMSerializer_v1</a></div><div class="ttdoc">Version1 of the interface that represents an object that can serialize an XMP Data Model to a buffer...</div><div class="ttdef"><b>Definition:</b> <a href="IDOMSerializer_8h_source.html#l00023">IDOMSerializer.h:23</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a6b414731e356594947b08382866c9fcf"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a6b414731e356594947b08382866c9fcf">AdobeXMPCore::pIDOMSerializer</a></div><div class="ttdeci">IDOMSerializer * pIDOMSerializer</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00177">XMPCoreFwdDeclarations.h:177</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IUTF8String__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></div><div class="ttdoc">Version1 of the interface that represents an UTF8String. </div><div class="ttdef"><b>Definition:</b> <a href="IUTF8String_8h_source.html#l00023">IUTF8String.h:23</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a0b1bbe96e1a757e66974c2f076afe4d2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">AdobeXMPCommon::uint32</a></div><div class="ttdeci">XMP_Uns32 uint32</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00144">XMPCommonDefines.h:144</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_ac9d7760a1805b1e28828511a2c8c5588"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">AdobeXMPCommon::spIUTF8String</a></div><div class="ttdeci">shared_ptr&lt; IUTF8String &gt; spIUTF8String</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00077">XMPCommonFwdDeclarations.h:77</a></div></div>
+<div class="ttc" id="XMPCoreFwdDeclarations_8h_html"><div class="ttname"><a href="XMPCoreFwdDeclarations_8h.html">XMPCoreFwdDeclarations.h</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/IErrorNotifier_8h.html b/docs/API/IErrorNotifier_8h.html
new file mode 100755
index 0000000..69b2fc1
--- /dev/null
+++ b/docs/API/IErrorNotifier_8h.html
@@ -0,0 +1,66 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/Interfaces/IErrorNotifier.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('IErrorNotifier_8h.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">IErrorNotifier.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommon/XMPCommonFwdDeclarations.h</a>&quot;</code><br />
+</div>
+<p><a href="IErrorNotifier_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IErrorNotifier__v1.html">AdobeXMPCommon::IErrorNotifier_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version1 of the interface that represents an interface to be implemented by client in case he is interested in getting notifications with respect to errors/warnings encountered by library. <a href="classAdobeXMPCommon_1_1IErrorNotifier__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceAdobeXMPCommon"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/IErrorNotifier_8h_source.html b/docs/API/IErrorNotifier_8h_source.html
new file mode 100755
index 0000000..5be467b
--- /dev/null
+++ b/docs/API/IErrorNotifier_8h_source.html
@@ -0,0 +1,57 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/Interfaces/IErrorNotifier.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('IErrorNotifier_8h_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">IErrorNotifier.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="IErrorNotifier_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef IErrorNotifier_h__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define IErrorNotifier_h__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// ADOBE SYSTEMS INCORPORATED</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// Copyright 2014 Adobe Systems Incorporated</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// All Rights Reserved</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="XMPCommonFwdDeclarations_8h.html">XMPCommon/XMPCommonFwdDeclarations.h</a>&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a> {</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IErrorNotifier__v1.html"> 27</a></span>&#160; <span class="keyword">class </span><a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="classAdobeXMPCommon_1_1IErrorNotifier__v1.html">IErrorNotifier_v1</a></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; {</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL Notify( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#a3f0de5ba5753a56896f2941927b23560">spcIError</a> &amp; error ) = 0;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL notify( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> error, <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> &amp; exceptionThrown ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor"> #ifdef FRIEND_CLASS_DECLARATION</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; FRIEND_CLASS_DECLARATION();</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a>();</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; };</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;}</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#endif // IErrorNotifier_h__</span></div><div class="ttc" id="classAdobeXMPCommon_1_1IErrorNotifier__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IErrorNotifier__v1.html">AdobeXMPCommon::IErrorNotifier_v1</a></div><div class="ttdoc">Version1 of the interface that represents an interface to be implemented by client in case he is inte...</div><div class="ttdef"><b>Definition:</b> <a href="IErrorNotifier_8h_source.html#l00027">IErrorNotifier.h:27</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html_aac6a4810b1f485f147ab833be63f4d7b"><div class="ttname"><a href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a></div><div class="ttdeci">#define XMP_PUBLIC</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00188">XMP_Environment.h:188</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a3f0de5ba5753a56896f2941927b23560"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a3f0de5ba5753a56896f2941927b23560">AdobeXMPCommon::spcIError</a></div><div class="ttdeci">shared_ptr&lt; const IError &gt; spcIError</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00067">XMPCommonFwdDeclarations.h:67</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a5a929113d3d50bda3fb7135a5c8b24a2"><div class="ttname"><a href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></div><div class="ttdeci">#define __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00117">XMPCommonDefines.h:117</a></div></div>
+<div class="ttc" id="XMPCommonFwdDeclarations_8h_html"><div class="ttname"><a href="XMPCommonFwdDeclarations_8h.html">XMPCommonFwdDeclarations.h</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></div><div class="ttdoc">Version1 of the interface that represents an error/warning encountered during processing. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00026">IError.h:26</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html"><div class="ttname"><a href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a></div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00019">IConfigurable.h:19</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a89e9297f497c2b3f1179788c31d24da4"><div class="ttname"><a href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a></div><div class="ttdeci">#define REQ_FRIEND_CLASS_DECLARATION()</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00107">XMPCommonDefines.h:107</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a0b1bbe96e1a757e66974c2f076afe4d2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">AdobeXMPCommon::uint32</a></div><div class="ttdeci">XMP_Uns32 uint32</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00144">XMPCommonDefines.h:144</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/IError_8h.html b/docs/API/IError_8h.html
new file mode 100755
index 0000000..3c9ccff
--- /dev/null
+++ b/docs/API/IError_8h.html
@@ -0,0 +1,78 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/Interfaces/IError.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('IError_8h.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> &#124;
+<a href="#typedef-members">Typedefs</a> </div>
+ <div class="headertitle">
+<div class="title">IError.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="ISharedObject_8h_source.html">XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="IVersionable_8h_source.html">XMPCommon/Interfaces/BaseInterfaces/IVersionable.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommon/XMPCommonFwdDeclarations.h</a>&quot;</code><br />
+</div>
+<p><a href="IError_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version1 of the interface that represents an error/warning encountered during processing. <a href="classAdobeXMPCommon_1_1IError__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html">AdobeXMPCommon::ReportErrorAndContinueFunctor</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A Function object used by the client to report back and warnings to the library encountered during the serialization operation. <a href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceAdobeXMPCommon"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:a8dc9ba4ce78a957c0843998c2468241a"><td class="memItemLeft" align="right" valign="top">typedef uint32(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a8dc9ba4ce78a957c0843998c2468241a">AdobeXMPCommon::ReportErrorAndContinueABISafeProc</a>) (uint32 errorDomain, uint32 errorCode, uint32 errorSeverity, const char *message, pcIError_base &amp;error)</td></tr>
+<tr class="memdesc:a8dc9ba4ce78a957c0843998c2468241a"><td class="mdescLeft">&#160;</td><td class="mdescRight">A function pointer to report back errors and warnings to the library encountered during the serialization operation. <a href="namespaceAdobeXMPCommon.html#a8dc9ba4ce78a957c0843998c2468241a">More...</a><br /></td></tr>
+<tr class="separator:a8dc9ba4ce78a957c0843998c2468241a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/IError_8h.js b/docs/API/IError_8h.js
new file mode 100755
index 0000000..f222ddb
--- /dev/null
+++ b/docs/API/IError_8h.js
@@ -0,0 +1,6 @@
+var IError_8h =
+[
+ [ "IError_v1", "classAdobeXMPCommon_1_1IError__v1.html", "classAdobeXMPCommon_1_1IError__v1" ],
+ [ "ReportErrorAndContinueFunctor", "classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html", "classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor" ],
+ [ "ReportErrorAndContinueABISafeProc", "IError_8h.html#a8dc9ba4ce78a957c0843998c2468241a", null ]
+]; \ No newline at end of file
diff --git a/docs/API/IError_8h_source.html b/docs/API/IError_8h_source.html
new file mode 100755
index 0000000..4233cc5
--- /dev/null
+++ b/docs/API/IError_8h_source.html
@@ -0,0 +1,84 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/Interfaces/IError.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('IError_8h_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">IError.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="IError_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __IError_h__</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#define __IError_h__ 1</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// Copyright 2014 Adobe Systems Incorporated</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// All Rights Reserved.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ================================================================================================</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ISharedObject_8h.html">XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h</a>&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="IVersionable_8h.html">XMPCommon/Interfaces/BaseInterfaces/IVersionable.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="XMPCommonFwdDeclarations_8h.html">XMPCommon/XMPCommonFwdDeclarations.h</a>&quot;</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a> {</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IError__v1.html"> 26</a></span>&#160; <span class="keyword">class </span><a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">IError_v1</a></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1ISharedObject.html">ISharedObject</a></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; , <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IVersionable.html">IVersionable</a></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; {</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702"> 34</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">enum</span> {</div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702a72d4e6dab6f3c900e504db6ad274f03b"> 36</a></span>&#160; kESNone = 0,</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702a20b2b1a43e9ba7559ad49c5fb9ae845c"> 39</a></span>&#160; kESWarning = 1 &lt;&lt; 0,</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702aad55eb387014908711b915d5877d7d80"> 42</a></span>&#160; kESOperationFatal = 1 &lt;&lt; 1,</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702a2aec1db6233320381fa85f9490d95a60"> 45</a></span>&#160; kESProcessFatal = 1 &lt;&lt; 2,</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="comment">// Add new severities here</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702aa83e26dbed0e72dc086520892693a408"> 50</a></span>&#160; kESMaxValue = 1 &lt;&lt; 31,</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702aaf28b59c2541f8bd3a4e70a4c7e58908"> 53</a></span>&#160; kESAll = <a class="code" href="namespaceAdobeXMPCommon.html#a3e31c8b25cbf95c42b8e439071bdf865">kAllBits</a>,</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; } <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702">eErrorSeverity</a>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0d"> 60</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">enum</span> {</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0dad08de2ff0da8d78befc1e3160d91fb66"> 62</a></span>&#160; kEDNone = 0,</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da3ab4caaddd020b4446ef5e52300e7b1f"> 65</a></span>&#160; kEDGeneral = 1,</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da259afda1164ca63dc7a5730e36ca35a8"> 68</a></span>&#160; kEDMemoryManagement = 2,</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0dadea3f136c96a37d23f8f984551bfc320"> 71</a></span>&#160; kEDConfigurable = 3,</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0dad284da5871c3d7be07ece3e18cfc1313"> 74</a></span>&#160; kEDMultiThreading = 4,</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da553e7b6dff9e1c9d4d53a155cdb627a7"> 77</a></span>&#160; kEDDataModel = 100,</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da977f7d430590fc0e8e91424479403e54"> 80</a></span>&#160; kEDParser = 101,</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da3ee93ea699a7ad40361aa97bd7bd5cbf"> 83</a></span>&#160; kEDSerializer = 102,</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da90c7a2910e189c25b42be36b5342cd8e"> 87</a></span>&#160; kEDXMPFiles = 200,</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da54f0a72b16e0c1cc0e484ebca6d13708"> 91</a></span>&#160; kEDConflictIdentification = 400,</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da7a0ca7368a9c93d038b635ea7ae0f691"> 94</a></span>&#160; kEDConflictResolution = 500,</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0dae98f9f2ae109cb8f4e20bac749b9096d"> 97</a></span>&#160; kEDThreeWayMerge = 600,</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da500ecdf6b68ffe0f4d901740bae84a6a"> 100</a></span>&#160; kEDGenericStrategyDatabase = 601,</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da495992977fdfefad3c7b51350d952120"> 103</a></span>&#160; kEDAssetManagement = 10000,</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da1e77ab380b475ba060d14c489a2ad1bc"> 106</a></span>&#160; kEDMaxValue = <a class="code" href="namespaceAdobeXMPCommon.html#a8ec7e2a77ea452c3d46bb7dbbc722574">kMaxEnumValue</a></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; } <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0d">eErrorDomain</a>;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IError__v1.html#a29cc93a78d4e1111ec8e51e4ca9a82b3"> 109</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html#a29cc93a78d4e1111ec8e51e4ca9a82b3">eErrorCode</a>;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">virtual</span> eErrorCode APICALL GetCode() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">virtual</span> eErrorDomain APICALL GetDomain() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">virtual</span> eErrorSeverity APICALL GetSeverity() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL GetMessage() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL GetLocation() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL GetParameter( <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> index ) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL GetParametersCount() const <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a> = 0;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; virtual <a class="code" href="namespaceAdobeXMPCommon.html#adb05c7ceec43360b84aee536612151f9">spIError</a> APICALL GetNextError() = 0;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IError__v1.html#a18e0f7f012b875b315bb745a96bc4d66"> 171</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCommon.html#a3f0de5ba5753a56896f2941927b23560">spcIError</a> GetNextError()<span class="keyword"> const </span>{</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">IError_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;GetNextError();</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; }</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#adb05c7ceec43360b84aee536612151f9">spIError</a> APICALL SetNextError( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#adb05c7ceec43360b84aee536612151f9">spIError</a> &amp; error ) = 0;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL SetMessage( <span class="keyword">const</span> <span class="keywordtype">char</span> * message, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> len = <a class="code" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a> ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a> = 0;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL SetLocation( <span class="keyword">const</span> <span class="keywordtype">char</span> * fileName, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> lineNumber ) __NOTHROW__ = 0;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL AppendParameter( <span class="keyword">const</span> <span class="keywordtype">char</span> * parameter, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> len = <a class="code" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a> ) __NOTHROW__ = 0;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL AppendParameter( <span class="keywordtype">void</span> * addressParameter ) __NOTHROW__ = 0;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL AppendParameter( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> &amp; integerValue ) __NOTHROW__ = 0;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL AppendParameter( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp; integerValue ) __NOTHROW__ = 0;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL AppendParameter( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#a070d4ea981e6080468e9a3cdbd82b458">int32</a> &amp; integerValue ) __NOTHROW__ = 0;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL AppendParameter( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#aee4f68e01de51c2cf1c1044ecafebc25">int64</a> &amp; integerValue ) __NOTHROW__ = 0;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL AppendParameter( <span class="keyword">const</span> <span class="keywordtype">float</span> &amp; floatValue ) __NOTHROW__ = 0;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL AppendParameter( <span class="keyword">const</span> <span class="keywordtype">double</span> &amp; doubleValue ) __NOTHROW__ = 0;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL AppendParameter( <span class="keywordtype">bool</span> booleanValue ) __NOTHROW__ = 0;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#adb05c7ceec43360b84aee536612151f9">spIError</a> CreateError( <a class="code" href="namespaceAdobeXMPCommon.html#a0863cf1c24764306839671985373b93f">pIObjectFactory</a> objFactory, eErrorDomain errDomain,</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; eErrorCode errCode, eErrorSeverity errSeverity );</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#ac0db32de8e6a3688ad0dfc36c2757fb4">pIError</a> APICALL GetActualIError() __NOTHROW__ = 0;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCommon.html#a0e0c89c232b777fb332e0ddc10b65fc2">pcIError</a> GetActualIError() <span class="keyword">const</span> __NOTHROW__ {</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">IError_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;GetActualIError();</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; }</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#adb05c7ceec43360b84aee536612151f9">spIError</a> MakeShared( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pIError_base</a> ptr );</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#a3f0de5ba5753a56896f2941927b23560">spcIError</a> MakeShared( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> ptr ) {</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keywordflow">return</span> MakeShared( const_cast&lt; pIError_base &gt;( ptr ) );</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; }</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> GetInterfaceID() { <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCommon.html#ad4c8ddc8db2d27cbcc0d88688fabdd93">kIErrorID</a>; }</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> GetInterfaceVersion() { <span class="keywordflow">return</span> 1; }</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00314"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IError__v1.html#a259f1d92b325fe01991ca5acd2238346"> 314</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html#a259f1d92b325fe01991ca5acd2238346">~IError_v1</a>() __NOTHROW__ {}</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL getCode( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL getDomain( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL getSeverity( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">pcIUTF8String_base</a> APICALL getMessage( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">pcIUTF8String_base</a> APICALL getLocation( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">pcIUTF8String_base</a> APICALL getParameter( <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> index, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pIError_base</a> APICALL getNextError( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pIError_base</a> APICALL setNextError( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pIError_base</a> nextError, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<span class="preprocessor"> #ifdef FRIEND_CLASS_DECLARATION</span></div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; FRIEND_CLASS_DECLARATION();</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <a class="code" href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a>();</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; };</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;</div><div class="line"><a name="l00343"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a8dc9ba4ce78a957c0843998c2468241a"> 343</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a>( *<a class="code" href="namespaceAdobeXMPCommon.html#a8dc9ba4ce78a957c0843998c2468241a">ReportErrorAndContinueABISafeProc</a> )( <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> errorDomain, <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> errorCode, <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> errorSeverity, <span class="keyword">const</span> <span class="keywordtype">char</span> * message, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error );</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;</div><div class="line"><a name="l00350"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html"> 350</a></span>&#160; <span class="keyword">class </span><a class="code" href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html">ReportErrorAndContinueFunctor</a> {</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00352"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html#a40e6fedd9a880d70095b9468b5cf05db"> 352</a></span>&#160; <a class="code" href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html#a40e6fedd9a880d70095b9468b5cf05db">ReportErrorAndContinueFunctor</a>( <a class="code" href="namespaceAdobeXMPCommon.html#a8dc9ba4ce78a957c0843998c2468241a">ReportErrorAndContinueABISafeProc</a> safeProc )</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; : mSafeProc( safeProc ) {}</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;</div><div class="line"><a name="l00362"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html#a5dd060eac19acba07ce701dc9ebaa09d"> 362</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html#a5dd060eac19acba07ce701dc9ebaa09d">operator()</a>( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0d">IError_v1::eErrorDomain</a> errorDomain, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html#a29cc93a78d4e1111ec8e51e4ca9a82b3">IError_v1::eErrorCode</a> errorCode, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702">IError_v1::eErrorSeverity</a> errorSeverity, <span class="keyword">const</span> <span class="keywordtype">char</span> * message ) {</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keyword">auto</span> retValue = mSafeProc( static_cast&lt; uint32 &gt;( errorDomain ), static_cast&lt; uint32 &gt;( errorCode ), static_cast&lt; uint32 &gt;( errorSeverity ), message, error );</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keywordflow">if</span> ( error )</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keywordflow">throw</span> IError_v1::MakeShared( error );</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keywordflow">return</span> retValue != 0 ? <span class="keyword">true</span> : <span class="keyword">false</span>;</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; }</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00371"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html#a3b28d2e68ebbcd5d20781d8b7a48f879"> 371</a></span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a8dc9ba4ce78a957c0843998c2468241a">ReportErrorAndContinueABISafeProc</a> <a class="code" href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html#a3b28d2e68ebbcd5d20781d8b7a48f879">mSafeProc</a>;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; };</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;}</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;<span class="preprocessor">#endif // __IError_h__</span></div><div class="ttc" id="namespaceAdobeXMPCommon_html_aea1d692da07b844d1f642b47ea6a91bd"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">AdobeXMPCommon::uint64</a></div><div class="ttdeci">XMP_Uns64 uint64</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00142">XMPCommonDefines.h:142</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_aee4f68e01de51c2cf1c1044ecafebc25"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#aee4f68e01de51c2cf1c1044ecafebc25">AdobeXMPCommon::int64</a></div><div class="ttdeci">XMP_Int64 int64</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00141">XMPCommonDefines.h:141</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html_a259f1d92b325fe01991ca5acd2238346"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html#a259f1d92b325fe01991ca5acd2238346">AdobeXMPCommon::IError_v1::~IError_v1</a></div><div class="ttdeci">virtual ~IError_v1() __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00314">IError.h:314</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a0e0c89c232b777fb332e0ddc10b65fc2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a0e0c89c232b777fb332e0ddc10b65fc2">AdobeXMPCommon::pcIError</a></div><div class="ttdeci">const IError * pcIError</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00065">XMPCommonFwdDeclarations.h:65</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor_html_a40e6fedd9a880d70095b9468b5cf05db"><div class="ttname"><a href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html#a40e6fedd9a880d70095b9468b5cf05db">AdobeXMPCommon::ReportErrorAndContinueFunctor::ReportErrorAndContinueFunctor</a></div><div class="ttdeci">ReportErrorAndContinueFunctor(ReportErrorAndContinueABISafeProc safeProc)</div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00352">IError.h:352</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_adb05c7ceec43360b84aee536612151f9"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#adb05c7ceec43360b84aee536612151f9">AdobeXMPCommon::spIError</a></div><div class="ttdeci">shared_ptr&lt; IError &gt; spIError</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00066">XMPCommonFwdDeclarations.h:66</a></div></div>
+<div class="ttc" id="ISharedObject_8h_html"><div class="ttname"><a href="ISharedObject_8h.html">ISharedObject.h</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_afc1bfa88991003b305ab5023b483d3f9"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a></div><div class="ttdeci">const sizet npos(kMaxSize)</div></div>
+<div class="ttc" id="XMP__Environment_8h_html_aac6a4810b1f485f147ab833be63f4d7b"><div class="ttname"><a href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a></div><div class="ttdeci">#define XMP_PUBLIC</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00188">XMP_Environment.h:188</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a3f0de5ba5753a56896f2941927b23560"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a3f0de5ba5753a56896f2941927b23560">AdobeXMPCommon::spcIError</a></div><div class="ttdeci">shared_ptr&lt; const IError &gt; spcIError</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00067">XMPCommonFwdDeclarations.h:67</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a5a929113d3d50bda3fb7135a5c8b24a2"><div class="ttname"><a href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></div><div class="ttdeci">#define __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00117">XMPCommonDefines.h:117</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a91aaab1f1d7030b26df65258bd131a63"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">AdobeXMPCommon::spcIUTF8String</a></div><div class="ttdeci">shared_ptr&lt; const IUTF8String &gt; spcIUTF8String</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00078">XMPCommonFwdDeclarations.h:78</a></div></div>
+<div class="ttc" id="XMPCommonFwdDeclarations_8h_html"><div class="ttname"><a href="XMPCommonFwdDeclarations_8h.html">XMPCommonFwdDeclarations.h</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_ac0db32de8e6a3688ad0dfc36c2757fb4"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#ac0db32de8e6a3688ad0dfc36c2757fb4">AdobeXMPCommon::pIError</a></div><div class="ttdeci">IError * pIError</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00064">XMPCommonFwdDeclarations.h:64</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a3e31c8b25cbf95c42b8e439071bdf865"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a3e31c8b25cbf95c42b8e439071bdf865">AdobeXMPCommon::kAllBits</a></div><div class="ttdeci">static const uint32 kAllBits(0xFFFFFFFF)</div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html_a00f8c929931409a4bf6eeeb47270bf0d"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0d">AdobeXMPCommon::IError_v1::eErrorDomain</a></div><div class="ttdeci">eErrorDomain</div><div class="ttdoc">Indicates various types of error domains. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00060">IError.h:60</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8dc9ba4ce78a957c0843998c2468241a"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8dc9ba4ce78a957c0843998c2468241a">AdobeXMPCommon::ReportErrorAndContinueABISafeProc</a></div><div class="ttdeci">uint32(* ReportErrorAndContinueABISafeProc)(uint32 errorDomain, uint32 errorCode, uint32 errorSeverity, const char *message, pcIError_base &amp;error)</div><div class="ttdoc">A function pointer to report back errors and warnings to the library encountered during the serializa...</div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00343">IError.h:343</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></div><div class="ttdoc">Version1 of the interface that represents an error/warning encountered during processing. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00026">IError.h:26</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a1c85c2f558b495c3d41eabe692a96cf2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a></div><div class="ttdeci">uint32 sizet</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00146">XMPCommonDefines.h:146</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1ISharedObject_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></div><div class="ttdoc">Interface that serves as the base interface of all the externally exposed interfaces. </div><div class="ttdef"><b>Definition:</b> <a href="ISharedObject_8h_source.html#l00027">ISharedObject.h:27</a></div></div>
+<div class="ttc" id="IVersionable_8h_html"><div class="ttname"><a href="IVersionable_8h.html">IVersionable.h</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor_html_a5dd060eac19acba07ce701dc9ebaa09d"><div class="ttname"><a href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html#a5dd060eac19acba07ce701dc9ebaa09d">AdobeXMPCommon::ReportErrorAndContinueFunctor::operator()</a></div><div class="ttdeci">bool operator()(IError_v1::eErrorDomain errorDomain, IError_v1::eErrorCode errorCode, IError_v1::eErrorSeverity errorSeverity, const char *message)</div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00362">IError.h:362</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html_a29cc93a78d4e1111ec8e51e4ca9a82b3"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html#a29cc93a78d4e1111ec8e51e4ca9a82b3">AdobeXMPCommon::IError_v1::eErrorCode</a></div><div class="ttdeci">uint32 eErrorCode</div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00109">IError.h:109</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8ec7e2a77ea452c3d46bb7dbbc722574"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8ec7e2a77ea452c3d46bb7dbbc722574">AdobeXMPCommon::kMaxEnumValue</a></div><div class="ttdeci">static const uint32 kMaxEnumValue(Max_XMP_Uns32)</div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a070d4ea981e6080468e9a3cdbd82b458"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a070d4ea981e6080468e9a3cdbd82b458">AdobeXMPCommon::int32</a></div><div class="ttdeci">XMP_Int32 int32</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00143">XMPCommonDefines.h:143</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a0863cf1c24764306839671985373b93f"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a0863cf1c24764306839671985373b93f">AdobeXMPCommon::pIObjectFactory</a></div><div class="ttdeci">IObjectFactory * pIObjectFactory</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00055">XMPCommonFwdDeclarations.h:55</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html"><div class="ttname"><a href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a></div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00019">IConfigurable.h:19</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a89e9297f497c2b3f1179788c31d24da4"><div class="ttname"><a href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a></div><div class="ttdeci">#define REQ_FRIEND_CLASS_DECLARATION()</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00107">XMPCommonDefines.h:107</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_ad4c8ddc8db2d27cbcc0d88688fabdd93"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#ad4c8ddc8db2d27cbcc0d88688fabdd93">AdobeXMPCommon::kIErrorID</a></div><div class="ttdeci">static const uint64 kIErrorID(0x6e4572726f722020)</div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor_html_a3b28d2e68ebbcd5d20781d8b7a48f879"><div class="ttname"><a href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html#a3b28d2e68ebbcd5d20781d8b7a48f879">AdobeXMPCommon::ReportErrorAndContinueFunctor::mSafeProc</a></div><div class="ttdeci">ReportErrorAndContinueABISafeProc mSafeProc</div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00371">IError.h:371</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IVersionable_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></div><div class="ttdoc">Interface that serves as the base interface for all the externally exposed interfaces which needs to ...</div><div class="ttdef"><b>Definition:</b> <a href="IVersionable_8h_source.html#l00028">IVersionable.h:28</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html_a9079d6a31de223baec5db854f826d702"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702">AdobeXMPCommon::IError_v1::eErrorSeverity</a></div><div class="ttdeci">eErrorSeverity</div><div class="ttdoc">Indicates various types of errors. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00034">IError.h:34</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html">AdobeXMPCommon::ReportErrorAndContinueFunctor</a></div><div class="ttdoc">A Function object used by the client to report back and warnings to the library encountered during th...</div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00350">IError.h:350</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html_a917e8e3f02685ec390fa3aee270f7747"><div class="ttname"><a href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a></div><div class="ttdeci">#define XMP_PRIVATE</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00189">XMP_Environment.h:189</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IUTF8String__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></div><div class="ttdoc">Version1 of the interface that represents an UTF8String. </div><div class="ttdef"><b>Definition:</b> <a href="IUTF8String_8h_source.html#l00023">IUTF8String.h:23</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a0b1bbe96e1a757e66974c2f076afe4d2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">AdobeXMPCommon::uint32</a></div><div class="ttdeci">XMP_Uns32 uint32</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00144">XMPCommonDefines.h:144</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/IMemoryAllocator_8h.html b/docs/API/IMemoryAllocator_8h.html
new file mode 100755
index 0000000..1319f4f
--- /dev/null
+++ b/docs/API/IMemoryAllocator_8h.html
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/Interfaces/IMemoryAllocator.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('IMemoryAllocator_8h.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">IMemoryAllocator.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="IVersionable_8h_source.html">XMPCommon/Interfaces/BaseInterfaces/IVersionable.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommon/XMPCommonFwdDeclarations.h</a>&quot;</code><br />
+</div>
+<p><a href="IMemoryAllocator_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html">AdobeXMPCommon::IMemoryAllocator_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version1 of the interface that represents an interface to be implemented by client in case he is interested in controlling the memory allocation and deallocation on the heap. <a href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceAdobeXMPCommon"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/IMemoryAllocator_8h_source.html b/docs/API/IMemoryAllocator_8h_source.html
new file mode 100755
index 0000000..ed45654
--- /dev/null
+++ b/docs/API/IMemoryAllocator_8h_source.html
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/Interfaces/IMemoryAllocator.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('IMemoryAllocator_8h_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">IMemoryAllocator.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="IMemoryAllocator_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef IMemoryAllocator_h__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define IMemoryAllocator_h__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright 2014 Adobe Systems Incorporated</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// All Rights Reserved.</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="IVersionable_8h.html">XMPCommon/Interfaces/BaseInterfaces/IVersionable.h</a>&quot;</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="XMPCommonFwdDeclarations_8h.html">XMPCommon/XMPCommonFwdDeclarations.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a> {</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html"> 27</a></span>&#160; <span class="keyword">class </span><a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html">IMemoryAllocator_v1</a></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; {</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> * APICALL allocate( <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> size ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a> = 0;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL deallocate( <span class="keywordtype">void</span> * ptr ) __NOTHROW__ = 0;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> * APICALL reallocate( <span class="keywordtype">void</span> * ptr, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> size ) __NOTHROW__ = 0;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"> #ifdef FRIEND_CLASS_DECLARATION</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; FRIEND_CLASS_DECLARATION();</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <a class="code" href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a>();</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; };</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;};</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor">#endif // IMemoryAllocator_h__</span></div><div class="ttc" id="XMP__Environment_8h_html_aac6a4810b1f485f147ab833be63f4d7b"><div class="ttname"><a href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a></div><div class="ttdeci">#define XMP_PUBLIC</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00188">XMP_Environment.h:188</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a5a929113d3d50bda3fb7135a5c8b24a2"><div class="ttname"><a href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></div><div class="ttdeci">#define __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00117">XMPCommonDefines.h:117</a></div></div>
+<div class="ttc" id="XMPCommonFwdDeclarations_8h_html"><div class="ttname"><a href="XMPCommonFwdDeclarations_8h.html">XMPCommonFwdDeclarations.h</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IMemoryAllocator__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html">AdobeXMPCommon::IMemoryAllocator_v1</a></div><div class="ttdoc">Version1 of the interface that represents an interface to be implemented by client in case he is inte...</div><div class="ttdef"><b>Definition:</b> <a href="IMemoryAllocator_8h_source.html#l00027">IMemoryAllocator.h:27</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a1c85c2f558b495c3d41eabe692a96cf2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a></div><div class="ttdeci">uint32 sizet</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00146">XMPCommonDefines.h:146</a></div></div>
+<div class="ttc" id="IVersionable_8h_html"><div class="ttname"><a href="IVersionable_8h.html">IVersionable.h</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html"><div class="ttname"><a href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a></div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00019">IConfigurable.h:19</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a89e9297f497c2b3f1179788c31d24da4"><div class="ttname"><a href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a></div><div class="ttdeci">#define REQ_FRIEND_CLASS_DECLARATION()</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00107">XMPCommonDefines.h:107</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/IMetadata_8h.html b/docs/API/IMetadata_8h.html
new file mode 100755
index 0000000..75e6f0c
--- /dev/null
+++ b/docs/API/IMetadata_8h.html
@@ -0,0 +1,66 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/IMetadata.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('IMetadata_8h.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">IMetadata.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="IStructureNode_8h_source.html">XMPCore/Interfaces/IStructureNode.h</a>&quot;</code><br />
+</div>
+<p><a href="IMetadata_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html">AdobeXMPCore::IMetadata_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version1 of the interface that represents the whole xmp metadata for an asset. <a href="classAdobeXMPCore_1_1IMetadata__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceAdobeXMPCore"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/IMetadata_8h_source.html b/docs/API/IMetadata_8h_source.html
new file mode 100755
index 0000000..195d7fc
--- /dev/null
+++ b/docs/API/IMetadata_8h_source.html
@@ -0,0 +1,75 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/IMetadata.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('IMetadata_8h_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">IMetadata.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="IMetadata_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __IMetadata_h__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __IMetadata_h__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// ADOBE SYSTEMS INCORPORATED</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// Copyright 2014 Adobe Systems Incorporated</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// All Rights Reserved</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="IStructureNode_8h.html">XMPCore/Interfaces/IStructureNode.h</a>&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a> {</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IMetadata__v1.html"> 24</a></span>&#160; <span class="keyword">class </span><a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="classAdobeXMPCore_1_1IMetadata__v1.html">IMetadata_v1</a></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1IStructureNode__v1.html">IStructureNode_v1</a></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; {</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL GetAboutURI() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL SetAboutURI( <span class="keyword">const</span> <span class="keywordtype">char</span> * uri, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> uriLength ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a> = 0;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL EnableFeature( <span class="keyword">const</span> <span class="keywordtype">char</span> * key, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> keyLength ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL DisableFeature( <span class="keyword">const</span> <span class="keywordtype">char</span> * key, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> keyLength ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#a0c1658ecfb260ac950498f17edd5ebd0">pIMetadata</a> APICALL GetActualIMetadata() __NOTHROW__ = 0;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#aa542fbf0ea812dbe340cd7837d68ef9f">pcIMetadata</a> GetActualIMetadata() <span class="keyword">const</span> __NOTHROW__ {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCore_1_1IMetadata__v1.html">IMetadata_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;GetActualIMetadata();</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore__Int.html#a70359e8aaa387b24879f1510ac1c4725">AdobeXMPCore_Int::pIMetadata_I</a> APICALL GetIMetadata_I() __NOTHROW__ = 0;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore__Int.html#abf85881909a28303736ad48039524d73">AdobeXMPCore_Int::pcIMetadata_I</a> GetIMetadata_I() <span class="keyword">const</span> __NOTHROW__ {</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCore_1_1IMetadata__v1.html">IMetadata_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;GetIMetadata_I();</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#a7f1de39fd79aeac4402eba73cb1ffe82">spIMetadata</a> MakeShared( <a class="code" href="classAdobeXMPCore_1_1IMetadata__v1.html">pIMetadata_base</a> ptr );</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#a1e81ce748e90e850d0a48b0b5943fce2">spcIMetadata</a> MakeShared( <a class="code" href="classAdobeXMPCore_1_1IMetadata__v1.html">pcIMetadata_base</a> ptr ) {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">return</span> MakeShared( const_cast&lt; pIMetadata_base &gt;( ptr ) );</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> GetInterfaceID() { <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#ae266f1d0a72a69dbbad9443f1b4140e6">kIMetadataID</a>; }</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> GetInterfaceVersion() { <span class="keywordflow">return</span> 1; }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="comment">// static factory functions</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#a7f1de39fd79aeac4402eba73cb1ffe82">spIMetadata</a> CreateMetadata();</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IMetadata__v1.html#ada50f9f0415ce96ac1df948f510a3f75"> 124</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1IMetadata__v1.html#ada50f9f0415ce96ac1df948f510a3f75">~IMetadata_v1</a>() __NOTHROW__ {}</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">using</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#aee7e1f35ac174874234ba5e913a6bfaa">INode_v1::GetParent</a>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keyword">using</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a2e8319347c3b01638027b4abbe72fda6">INode_v1::GetNameSpace</a>;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">using</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a55c6097b36412f9facc8a4cf7e898186">INode_v1::SetNameSpace</a>;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">using</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a68350da5edc0668811b9bb890d5777b9">INode_v1::GetName</a>;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">using</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#aa087d2f94e42fdd5ece1bd22dfea66d5">INode_v1::SetName</a>;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">pcIUTF8String_base</a> APICALL getAboutURI( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="preprocessor"> #ifdef FRIEND_CLASS_DECLARATION</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; FRIEND_CLASS_DECLARATION();</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a>();</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; };</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;}</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="preprocessor">#endif // __IMetadata_h__</span></div><div class="ttc" id="namespaceAdobeXMPCommon_html_aea1d692da07b844d1f642b47ea6a91bd"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">AdobeXMPCommon::uint64</a></div><div class="ttdeci">XMP_Uns64 uint64</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00142">XMPCommonDefines.h:142</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_a55c6097b36412f9facc8a4cf7e898186"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a55c6097b36412f9facc8a4cf7e898186">AdobeXMPCore::INode_v1::SetNameSpace</a></div><div class="ttdeci">virtual void APICALL SetNameSpace(const char *nameSpace, sizet nameSpaceLength)=0</div><div class="ttdoc">Changes the name space of the node. </div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_a70359e8aaa387b24879f1510ac1c4725"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#a70359e8aaa387b24879f1510ac1c4725">AdobeXMPCore_Int::pIMetadata_I</a></div><div class="ttdeci">IMetadata_I * pIMetadata_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00267">XMPCoreFwdDeclarations.h:267</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html_aac6a4810b1f485f147ab833be63f4d7b"><div class="ttname"><a href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a></div><div class="ttdeci">#define XMP_PUBLIC</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00188">XMP_Environment.h:188</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a5a929113d3d50bda3fb7135a5c8b24a2"><div class="ttname"><a href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></div><div class="ttdeci">#define __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00117">XMPCommonDefines.h:117</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a91aaab1f1d7030b26df65258bd131a63"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">AdobeXMPCommon::spcIUTF8String</a></div><div class="ttdeci">shared_ptr&lt; const IUTF8String &gt; spcIUTF8String</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00078">XMPCommonFwdDeclarations.h:78</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aa542fbf0ea812dbe340cd7837d68ef9f"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aa542fbf0ea812dbe340cd7837d68ef9f">AdobeXMPCore::pcIMetadata</a></div><div class="ttdeci">const IMetadata * pcIMetadata</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00136">XMPCoreFwdDeclarations.h:136</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_aa087d2f94e42fdd5ece1bd22dfea66d5"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#aa087d2f94e42fdd5ece1bd22dfea66d5">AdobeXMPCore::INode_v1::SetName</a></div><div class="ttdeci">virtual void APICALL SetName(const char *name, sizet nameLength)=0</div><div class="ttdoc">Changes the local name of the node. </div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IMetadata__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1IMetadata__v1.html">AdobeXMPCore::IMetadata_v1</a></div><div class="ttdoc">Version1 of the interface that represents the whole xmp metadata for an asset. </div><div class="ttdef"><b>Definition:</b> <a href="IMetadata_8h_source.html#l00024">IMetadata.h:24</a></div></div>
+<div class="ttc" id="IStructureNode_8h_html"><div class="ttname"><a href="IStructureNode_8h.html">IStructureNode.h</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html"><div class="ttname"><a href="namespaceAdobeXMPCore.html">AdobeXMPCore</a></div><div class="ttdef"><b>Definition:</b> <a href="IArrayNode_8h_source.html#l00016">IArrayNode.h:16</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IMetadata__v1_html_ada50f9f0415ce96ac1df948f510a3f75"><div class="ttname"><a href="classAdobeXMPCore_1_1IMetadata__v1.html#ada50f9f0415ce96ac1df948f510a3f75">AdobeXMPCore::IMetadata_v1::~IMetadata_v1</a></div><div class="ttdeci">virtual ~IMetadata_v1() __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="IMetadata_8h_source.html#l00124">IMetadata.h:124</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_abf85881909a28303736ad48039524d73"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#abf85881909a28303736ad48039524d73">AdobeXMPCore_Int::pcIMetadata_I</a></div><div class="ttdeci">const IMetadata_I * pcIMetadata_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00269">XMPCoreFwdDeclarations.h:269</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_aee7e1f35ac174874234ba5e913a6bfaa"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#aee7e1f35ac174874234ba5e913a6bfaa">AdobeXMPCore::INode_v1::GetParent</a></div><div class="ttdeci">XMP_PRIVATE spcINode GetParent() const </div><div class="ttdoc">Gets the parent node of the node. </div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00073">INode.h:73</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a0c1658ecfb260ac950498f17edd5ebd0"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a0c1658ecfb260ac950498f17edd5ebd0">AdobeXMPCore::pIMetadata</a></div><div class="ttdeci">IMetadata * pIMetadata</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00135">XMPCoreFwdDeclarations.h:135</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></div><div class="ttdoc">Version1 of the interface that represents an error/warning encountered during processing. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00026">IError.h:26</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a1c85c2f558b495c3d41eabe692a96cf2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a></div><div class="ttdeci">uint32 sizet</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00146">XMPCommonDefines.h:146</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a89e9297f497c2b3f1179788c31d24da4"><div class="ttname"><a href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a></div><div class="ttdeci">#define REQ_FRIEND_CLASS_DECLARATION()</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00107">XMPCommonDefines.h:107</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IStructureNode__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1IStructureNode__v1.html">AdobeXMPCore::IStructureNode_v1</a></div><div class="ttdoc">Version1 of the interface that represents a structure Node of XMP DOM. </div><div class="ttdef"><b>Definition:</b> <a href="IStructureNode_8h_source.html#l00023">IStructureNode.h:23</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a7f1de39fd79aeac4402eba73cb1ffe82"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a7f1de39fd79aeac4402eba73cb1ffe82">AdobeXMPCore::spIMetadata</a></div><div class="ttdeci">shared_ptr&lt; IMetadata &gt; spIMetadata</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00137">XMPCoreFwdDeclarations.h:137</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ae266f1d0a72a69dbbad9443f1b4140e6"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ae266f1d0a72a69dbbad9443f1b4140e6">AdobeXMPCore::kIMetadataID</a></div><div class="ttdeci">static const uint64 kIMetadataID(0x634d657461646174)</div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_a2e8319347c3b01638027b4abbe72fda6"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a2e8319347c3b01638027b4abbe72fda6">AdobeXMPCore::INode_v1::GetNameSpace</a></div><div class="ttdeci">virtual spcIUTF8String APICALL GetNameSpace() const =0</div><div class="ttdoc">Gets the name space of the node. </div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_a68350da5edc0668811b9bb890d5777b9"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a68350da5edc0668811b9bb890d5777b9">AdobeXMPCore::INode_v1::GetName</a></div><div class="ttdeci">virtual spcIUTF8String APICALL GetName() const =0</div><div class="ttdoc">Gets the local name of the node. </div></div>
+<div class="ttc" id="XMP__Environment_8h_html_a917e8e3f02685ec390fa3aee270f7747"><div class="ttname"><a href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a></div><div class="ttdeci">#define XMP_PRIVATE</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00189">XMP_Environment.h:189</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a1e81ce748e90e850d0a48b0b5943fce2"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a1e81ce748e90e850d0a48b0b5943fce2">AdobeXMPCore::spcIMetadata</a></div><div class="ttdeci">shared_ptr&lt; const IMetadata &gt; spcIMetadata</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00138">XMPCoreFwdDeclarations.h:138</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IUTF8String__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></div><div class="ttdoc">Version1 of the interface that represents an UTF8String. </div><div class="ttdef"><b>Definition:</b> <a href="IUTF8String_8h_source.html#l00023">IUTF8String.h:23</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a0b1bbe96e1a757e66974c2f076afe4d2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">AdobeXMPCommon::uint32</a></div><div class="ttdeci">XMP_Uns32 uint32</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00144">XMPCommonDefines.h:144</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/INameSpacePrefixMap_8h.html b/docs/API/INameSpacePrefixMap_8h.html
new file mode 100755
index 0000000..a3ba5ad
--- /dev/null
+++ b/docs/API/INameSpacePrefixMap_8h.html
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/INameSpacePrefixMap.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('INameSpacePrefixMap_8h.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">INameSpacePrefixMap.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCore/XMPCoreFwdDeclarations.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="ISharedObject_8h_source.html">XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="IVersionable_8h_source.html">XMPCommon/Interfaces/BaseInterfaces/IVersionable.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="IThreadSafe_8h_source.html">XMPCommon/Interfaces/BaseInterfaces/IThreadSafe.h</a>&quot;</code><br />
+</div>
+<p><a href="INameSpacePrefixMap_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">AdobeXMPCore::INameSpacePrefixMap_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version1 of the interface that represents map where each entry consists of prefix string as the key and corresponding nameSpace string as its value. <a href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceAdobeXMPCore"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/INameSpacePrefixMap_8h_source.html b/docs/API/INameSpacePrefixMap_8h_source.html
new file mode 100755
index 0000000..b283987
--- /dev/null
+++ b/docs/API/INameSpacePrefixMap_8h_source.html
@@ -0,0 +1,75 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/INameSpacePrefixMap.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('INameSpacePrefixMap_8h_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">INameSpacePrefixMap.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="INameSpacePrefixMap_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef INameSpacePrefixMap_h__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define INameSpacePrefixMap_h__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// ADOBE SYSTEMS INCORPORATED</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// Copyright 2014 Adobe Systems Incorporated</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// All Rights Reserved</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="XMPCoreFwdDeclarations_8h.html">XMPCore/XMPCoreFwdDeclarations.h</a>&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ISharedObject_8h.html">XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="IVersionable_8h.html">XMPCommon/Interfaces/BaseInterfaces/IVersionable.h</a>&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="IThreadSafe_8h.html">XMPCommon/Interfaces/BaseInterfaces/IThreadSafe.h</a>&quot;</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a> {</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html"> 26</a></span>&#160; <span class="keyword">class </span><a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">INameSpacePrefixMap_v1</a></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1ISharedObject.html">ISharedObject</a></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; , <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IVersionable.html">IVersionable</a></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; , <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IThreadSafe.html">IThreadSafe</a></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; {</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL Insert( <span class="keyword">const</span> <span class="keywordtype">char</span> * prefix, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> prefixLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength ) = 0;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL RemovePrefix( <span class="keyword">const</span> <span class="keywordtype">char</span> * prefix, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> prefixLength ) = 0;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL RemoveNameSpace( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength ) = 0;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL IsPrefixPresent( <span class="keyword">const</span> <span class="keywordtype">char</span> * prefix, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> prefixLength ) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL IsNameSpacePresent( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength ) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL GetNameSpace( <span class="keyword">const</span> <span class="keywordtype">char</span> * prefix, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> prefixLength ) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL GetPrefix( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength ) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL Size() <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a> = 0;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordtype">bool</span> IsEmpty() <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL Clear() __NOTHROW__ = 0;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="comment">// \return A shared pointer to INameSpacePrefixMap which is exact replica of the current object.</span></div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="comment"></span> <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#ab17b1221c559007c5fbc73cf2c555c6c">spINameSpacePrefixMap</a> APICALL Clone() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#a7c13887bb991ed5707ebae28d26543b1">pINameSpacePrefixMap</a> APICALL GetActualINameSpacePrefixMap() __NOTHROW__ = 0;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#ac973b0e26fb1fdf9146be95ab9f12b1e">pcINameSpacePrefixMap</a> GetActualINameSpacePrefixMap() <span class="keyword">const</span> __NOTHROW__ {</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">INameSpacePrefixMap_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;GetActualINameSpacePrefixMap();</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; }</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore__Int.html#a0665746b848a075cc4aaf72f553cea95">AdobeXMPCore_Int::pINameSpacePrefixMap_I</a> APICALL GetINameSpacePrefixMap_I() __NOTHROW__ = 0;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore__Int.html#ab7edb8a8ca91f8397965cf85502c2043">AdobeXMPCore_Int::pcINameSpacePrefixMap_I</a> GetINameSpacePrefixMap_I() <span class="keyword">const</span> __NOTHROW__ {</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">INameSpacePrefixMap_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;GetINameSpacePrefixMap_I();</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; }</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#ab17b1221c559007c5fbc73cf2c555c6c">spINameSpacePrefixMap</a> MakeShared( <a class="code" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">pINameSpacePrefixMap_base</a> ptr );</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#a22f9e572045a61aa3cfc629a0d877d72">spcINameSpacePrefixMap</a> MakeShared( <a class="code" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">pcINameSpacePrefixMap_base</a> ptr ) {</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">return</span> MakeShared( const_cast&lt; pINameSpacePrefixMap_base &gt;( ptr ) );</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; }</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> GetInterfaceID() { <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#aab6f1fa4adf9d3b8c40d4e8f601ddfdf">kINameSpacePrefixMapID</a>; }</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> GetInterfaceVersion() { <span class="keywordflow">return</span> 1; }</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; </div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="comment">// static factory functions</span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#a22f9e572045a61aa3cfc629a0d877d72">spcINameSpacePrefixMap</a> GetDefaultNameSpacePrefixMap();</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#ab17b1221c559007c5fbc73cf2c555c6c">spINameSpacePrefixMap</a> CreateNameSpacePrefixMap();</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#aabfdffd2a782e83a627bbe1c687a922b"> 215</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#aabfdffd2a782e83a627bbe1c687a922b">~INameSpacePrefixMap_v1</a>() __NOTHROW__ {}</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> kPrefixIsParameter = 0;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> kNameSpaceIsParameter = 1;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL insert( <span class="keyword">const</span> <span class="keywordtype">char</span> * prefix, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> prefixLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL <span class="keyword">remove</span>( <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> keyType, <span class="keyword">const</span> <span class="keywordtype">char</span> * key, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> keyLength, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL isPresent( <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> keyType, <span class="keyword">const</span> <span class="keywordtype">char</span> * key, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> keyLength, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">pcIUTF8String_base</a> APICALL <span class="keyword">get</span>( <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> keyType, <span class="keyword">const</span> <span class="keywordtype">char</span> * key, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> keyLength, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">pINameSpacePrefixMap_base</a> APICALL clone( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="preprocessor"> #ifdef FRIEND_CLASS_DECLARATION</span></div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; FRIEND_CLASS_DECLARATION();</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <a class="code" href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a>();</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; };</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;}</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="preprocessor">#endif // INameSpacePrefixMap_h__</span></div><div class="ttc" id="namespaceAdobeXMPCommon_html_aea1d692da07b844d1f642b47ea6a91bd"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">AdobeXMPCommon::uint64</a></div><div class="ttdeci">XMP_Uns64 uint64</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00142">XMPCommonDefines.h:142</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ab17b1221c559007c5fbc73cf2c555c6c"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ab17b1221c559007c5fbc73cf2c555c6c">AdobeXMPCore::spINameSpacePrefixMap</a></div><div class="ttdeci">shared_ptr&lt; INameSpacePrefixMap &gt; spINameSpacePrefixMap</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00029">XMPCoreFwdDeclarations.h:29</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a7c13887bb991ed5707ebae28d26543b1"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a7c13887bb991ed5707ebae28d26543b1">AdobeXMPCore::pINameSpacePrefixMap</a></div><div class="ttdeci">INameSpacePrefixMap * pINameSpacePrefixMap</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00027">XMPCoreFwdDeclarations.h:27</a></div></div>
+<div class="ttc" id="ISharedObject_8h_html"><div class="ttname"><a href="ISharedObject_8h.html">ISharedObject.h</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html_aac6a4810b1f485f147ab833be63f4d7b"><div class="ttname"><a href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a></div><div class="ttdeci">#define XMP_PUBLIC</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00188">XMP_Environment.h:188</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a5a929113d3d50bda3fb7135a5c8b24a2"><div class="ttname"><a href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></div><div class="ttdeci">#define __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00117">XMPCommonDefines.h:117</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a91aaab1f1d7030b26df65258bd131a63"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">AdobeXMPCommon::spcIUTF8String</a></div><div class="ttdeci">shared_ptr&lt; const IUTF8String &gt; spcIUTF8String</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00078">XMPCommonFwdDeclarations.h:78</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a22f9e572045a61aa3cfc629a0d877d72"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a22f9e572045a61aa3cfc629a0d877d72">AdobeXMPCore::spcINameSpacePrefixMap</a></div><div class="ttdeci">shared_ptr&lt; const INameSpacePrefixMap &gt; spcINameSpacePrefixMap</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00030">XMPCoreFwdDeclarations.h:30</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html"><div class="ttname"><a href="namespaceAdobeXMPCore.html">AdobeXMPCore</a></div><div class="ttdef"><b>Definition:</b> <a href="IArrayNode_8h_source.html#l00016">IArrayNode.h:16</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INameSpacePrefixMap__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">AdobeXMPCore::INameSpacePrefixMap_v1</a></div><div class="ttdoc">Version1 of the interface that represents map where each entry consists of prefix string as the key a...</div><div class="ttdef"><b>Definition:</b> <a href="INameSpacePrefixMap_8h_source.html#l00026">INameSpacePrefixMap.h:26</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_a0665746b848a075cc4aaf72f553cea95"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#a0665746b848a075cc4aaf72f553cea95">AdobeXMPCore_Int::pINameSpacePrefixMap_I</a></div><div class="ttdeci">INameSpacePrefixMap_I * pINameSpacePrefixMap_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00222">XMPCoreFwdDeclarations.h:222</a></div></div>
+<div class="ttc" id="IThreadSafe_8h_html"><div class="ttname"><a href="IThreadSafe_8h.html">IThreadSafe.h</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></div><div class="ttdoc">Version1 of the interface that represents an error/warning encountered during processing. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00026">IError.h:26</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IThreadSafe_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></div><div class="ttdoc">Interface that serves as the base interface for all the externally exposed interfaces which needs to ...</div><div class="ttdef"><b>Definition:</b> <a href="IThreadSafe_8h_source.html#l00027">IThreadSafe.h:27</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a1c85c2f558b495c3d41eabe692a96cf2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a></div><div class="ttdeci">uint32 sizet</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00146">XMPCommonDefines.h:146</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1ISharedObject_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></div><div class="ttdoc">Interface that serves as the base interface of all the externally exposed interfaces. </div><div class="ttdef"><b>Definition:</b> <a href="ISharedObject_8h_source.html#l00027">ISharedObject.h:27</a></div></div>
+<div class="ttc" id="IVersionable_8h_html"><div class="ttname"><a href="IVersionable_8h.html">IVersionable.h</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ac973b0e26fb1fdf9146be95ab9f12b1e"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ac973b0e26fb1fdf9146be95ab9f12b1e">AdobeXMPCore::pcINameSpacePrefixMap</a></div><div class="ttdeci">const INameSpacePrefixMap * pcINameSpacePrefixMap</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00028">XMPCoreFwdDeclarations.h:28</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INameSpacePrefixMap__v1_html_aabfdffd2a782e83a627bbe1c687a922b"><div class="ttname"><a href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#aabfdffd2a782e83a627bbe1c687a922b">AdobeXMPCore::INameSpacePrefixMap_v1::~INameSpacePrefixMap_v1</a></div><div class="ttdeci">virtual ~INameSpacePrefixMap_v1() __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="INameSpacePrefixMap_8h_source.html#l00215">INameSpacePrefixMap.h:215</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_ab7edb8a8ca91f8397965cf85502c2043"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#ab7edb8a8ca91f8397965cf85502c2043">AdobeXMPCore_Int::pcINameSpacePrefixMap_I</a></div><div class="ttdeci">const INameSpacePrefixMap_I * pcINameSpacePrefixMap_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00224">XMPCoreFwdDeclarations.h:224</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a89e9297f497c2b3f1179788c31d24da4"><div class="ttname"><a href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a></div><div class="ttdeci">#define REQ_FRIEND_CLASS_DECLARATION()</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00107">XMPCommonDefines.h:107</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IVersionable_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></div><div class="ttdoc">Interface that serves as the base interface for all the externally exposed interfaces which needs to ...</div><div class="ttdef"><b>Definition:</b> <a href="IVersionable_8h_source.html#l00028">IVersionable.h:28</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html_a917e8e3f02685ec390fa3aee270f7747"><div class="ttname"><a href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a></div><div class="ttdeci">#define XMP_PRIVATE</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00189">XMP_Environment.h:189</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IUTF8String__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></div><div class="ttdoc">Version1 of the interface that represents an UTF8String. </div><div class="ttdef"><b>Definition:</b> <a href="IUTF8String_8h_source.html#l00023">IUTF8String.h:23</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aab6f1fa4adf9d3b8c40d4e8f601ddfdf"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aab6f1fa4adf9d3b8c40d4e8f601ddfdf">AdobeXMPCore::kINameSpacePrefixMapID</a></div><div class="ttdeci">static const uint64 kINameSpacePrefixMapID(0x634e5350724d6170)</div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a0b1bbe96e1a757e66974c2f076afe4d2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">AdobeXMPCommon::uint32</a></div><div class="ttdeci">XMP_Uns32 uint32</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00144">XMPCommonDefines.h:144</a></div></div>
+<div class="ttc" id="XMPCoreFwdDeclarations_8h_html"><div class="ttname"><a href="XMPCoreFwdDeclarations_8h.html">XMPCoreFwdDeclarations.h</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/INodeIterator_8h.html b/docs/API/INodeIterator_8h.html
new file mode 100755
index 0000000..1a021e8
--- /dev/null
+++ b/docs/API/INodeIterator_8h.html
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/INodeIterator.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('INodeIterator_8h.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">INodeIterator.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCore/XMPCoreFwdDeclarations.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="ISharedObject_8h_source.html">XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="INode_8h_source.html">XMPCore/Interfaces/INode.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="IVersionable_8h_source.html">XMPCommon/Interfaces/BaseInterfaces/IVersionable.h</a>&quot;</code><br />
+</div>
+<p><a href="INodeIterator_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html">AdobeXMPCore::INodeIterator_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface that represents an iterator over the mutable children of a XMP DOM Node. <a href="classAdobeXMPCore_1_1INodeIterator__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceAdobeXMPCore"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/INodeIterator_8h_source.html b/docs/API/INodeIterator_8h_source.html
new file mode 100755
index 0000000..09dc0de
--- /dev/null
+++ b/docs/API/INodeIterator_8h_source.html
@@ -0,0 +1,89 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/INodeIterator.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('INodeIterator_8h_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">INodeIterator.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="INodeIterator_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __INodeIterator_h__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __INodeIterator_h__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// ADOBE SYSTEMS INCORPORATED</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// Copyright 2014 Adobe Systems Incorporated</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// All Rights Reserved</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="XMPCoreFwdDeclarations_8h.html">XMPCore/XMPCoreFwdDeclarations.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ISharedObject_8h.html">XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h</a>&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="INode_8h.html">XMPCore/Interfaces/INode.h</a>&quot;</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="IVersionable_8h.html">XMPCommon/Interfaces/BaseInterfaces/IVersionable.h</a>&quot;</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a> {</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1INodeIterator__v1.html"> 26</a></span>&#160; <span class="keyword">class </span><a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="classAdobeXMPCore_1_1INodeIterator__v1.html">INodeIterator_v1</a></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1ISharedObject.html">ISharedObject</a></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; , <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IVersionable.html">IVersionable</a></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; {</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">INode_v1::eNodeType</a> APICALL GetNodeType() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL GetNode() = 0;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1INodeIterator__v1.html#a9ddc75f7ef4005df31c505d319b2b534"> 45</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">spcINode</a> APICALL <a class="code" href="classAdobeXMPCore_1_1INodeIterator__v1.html#a9ddc75f7ef4005df31c505d319b2b534">GetNode</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> INodeIterator * <span class="keyword">&gt;</span>( this )-&gt;GetNode();</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; };</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1INodeIterator__v1.html#a7a99393cbe890dd34062e969fe57d704"> 58</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a> <a class="code" href="classAdobeXMPCore_1_1INodeIterator__v1.html#a7a99393cbe890dd34062e969fe57d704">GetSimpleNode</a>() {</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">auto</span> node = GetNode();</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToSimpleNode();</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a>();</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; }</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1INodeIterator__v1.html#ade5c1340391031ffccef4ba9122845c0"> 64</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a> <a class="code" href="classAdobeXMPCore_1_1INodeIterator__v1.html#ade5c1340391031ffccef4ba9122845c0">GetSimpleNode</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> INodeIterator * <span class="keyword">&gt;</span>( this )-&gt;GetSimpleNode();</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1INodeIterator__v1.html#aeb5758def29eb45d016205f8c2f3349f"> 76</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a> <a class="code" href="classAdobeXMPCore_1_1INodeIterator__v1.html#aeb5758def29eb45d016205f8c2f3349f">GetStructureNode</a>() {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">auto</span> node = GetNode();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToStructureNode();</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a>();</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1INodeIterator__v1.html#af2a3dac600bde63b628fc701fbce6db2"> 82</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a> <a class="code" href="classAdobeXMPCore_1_1INodeIterator__v1.html#af2a3dac600bde63b628fc701fbce6db2">GetStructureNode</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> INodeIterator * <span class="keyword">&gt;</span>( this )-&gt;GetStructureNode();</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1INodeIterator__v1.html#ad9a22d79ead6cc79fb5bd4da858e99ce"> 94</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a> <a class="code" href="classAdobeXMPCore_1_1INodeIterator__v1.html#ad9a22d79ead6cc79fb5bd4da858e99ce">GetArrayNode</a>() {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">auto</span> node = GetNode();</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToArrayNode();</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a>();</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1INodeIterator__v1.html#a0b15b5a46f9bbd0a522c95a0fe5a8210"> 100</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a> <a class="code" href="classAdobeXMPCore_1_1INodeIterator__v1.html#a0b15b5a46f9bbd0a522c95a0fe5a8210">GetArrayNode</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> INodeIterator * <span class="keyword">&gt;</span>( this )-&gt;GetArrayNode();</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#a5386a735d9eb66d5859e4657dfeebb7c">spINodeIterator</a> APICALL Next() = 0;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1INodeIterator__v1.html#a38521f687591c9b57da1b7426d6e33d8"> 112</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#ab423c366f29043e79694f805bceddb56">spcINodeIterator</a> APICALL <a class="code" href="classAdobeXMPCore_1_1INodeIterator__v1.html#a38521f687591c9b57da1b7426d6e33d8">Next</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> INodeIterator * <span class="keyword">&gt;</span>( this )-&gt;Next();</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#ac162eebfff7088f633bc0dd401a18862">pINodeIterator</a> APICALL GetActualINodeIterator() <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a> = 0;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#a634afe8da11f5cea93b0f07e8270da5f">pcINodeIterator</a> GetActualINodeIterator() <span class="keyword">const</span> __NOTHROW__ {</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> INodeIterator * <span class="keyword">&gt;</span>( this )-&gt;GetActualINodeIterator();</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; }</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore__Int.html#a71dcb1468c552abdd9fb1666cadc6600">AdobeXMPCore_Int::pINodeIterator_I</a> APICALL GetINodeIterator_I() __NOTHROW__ = 0;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore__Int.html#a9d8ff928f0b3e120916451e57b1b05bb">AdobeXMPCore_Int::pcINodeIterator_I</a> GetINodeIterator_I() <span class="keyword">const</span> __NOTHROW__ {</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> INodeIterator * <span class="keyword">&gt;</span>( this )-&gt;GetINodeIterator_I();</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; }</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; </div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#a5386a735d9eb66d5859e4657dfeebb7c">spINodeIterator</a> MakeShared( <a class="code" href="namespaceAdobeXMPCore.html#ac162eebfff7088f633bc0dd401a18862">pINodeIterator</a> ptr );</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#ab423c366f29043e79694f805bceddb56">spcINodeIterator</a> MakeShared( <a class="code" href="namespaceAdobeXMPCore.html#a634afe8da11f5cea93b0f07e8270da5f">pcINodeIterator</a> ptr ) {</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">return</span> MakeShared( const_cast&lt; pINodeIterator &gt;( ptr ) );</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; }</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> GetInterfaceID() { <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#afb1db1e3afd3cb409aab3c32435b506b">kINodeIteratorID</a>; }</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> GetInterfaceVersion() { <span class="keywordflow">return</span> 1; }</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1INodeIterator__v1.html#aebc78681e60a09759ce7ab820716a0a2"> 177</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INodeIterator__v1.html#aebc78681e60a09759ce7ab820716a0a2">~INodeIterator_v1</a>() __NOTHROW__ {}</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL getNodeType( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> APICALL getNode( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INodeIterator__v1.html">pINodeIterator_base</a> APICALL next( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="preprocessor"> #ifdef FRIEND_CLASS_DECLARATION</span></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; FRIEND_CLASS_DECLARATION();</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <a class="code" href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a>();</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; };</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;}</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="preprocessor">#endif // __INodeIterator_h__</span></div><div class="ttc" id="namespaceAdobeXMPCommon_html_aea1d692da07b844d1f642b47ea6a91bd"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">AdobeXMPCommon::uint64</a></div><div class="ttdeci">XMP_Uns64 uint64</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00142">XMPCommonDefines.h:142</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INodeIterator__v1_html_aeb5758def29eb45d016205f8c2f3349f"><div class="ttname"><a href="classAdobeXMPCore_1_1INodeIterator__v1.html#aeb5758def29eb45d016205f8c2f3349f">AdobeXMPCore::INodeIterator_v1::GetStructureNode</a></div><div class="ttdeci">XMP_PRIVATE spIStructureNode GetStructureNode()</div><div class="ttdoc">Gets the iterator&amp;#39;s currently pointed node as structure node, if possible. </div><div class="ttdef"><b>Definition:</b> <a href="INodeIterator_8h_source.html#l00076">INodeIterator.h:76</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a634afe8da11f5cea93b0f07e8270da5f"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a634afe8da11f5cea93b0f07e8270da5f">AdobeXMPCore::pcINodeIterator</a></div><div class="ttdeci">const INodeIterator * pcINodeIterator</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00124">XMPCoreFwdDeclarations.h:124</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a5386a735d9eb66d5859e4657dfeebb7c"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a5386a735d9eb66d5859e4657dfeebb7c">AdobeXMPCore::spINodeIterator</a></div><div class="ttdeci">shared_ptr&lt; INodeIterator &gt; spINodeIterator</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00125">XMPCoreFwdDeclarations.h:125</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_a71dcb1468c552abdd9fb1666cadc6600"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#a71dcb1468c552abdd9fb1666cadc6600">AdobeXMPCore_Int::pINodeIterator_I</a></div><div class="ttdeci">INodeIterator_I * pINodeIterator_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00262">XMPCoreFwdDeclarations.h:262</a></div></div>
+<div class="ttc" id="INode_8h_html"><div class="ttname"><a href="INode_8h.html">INode.h</a></div></div>
+<div class="ttc" id="ISharedObject_8h_html"><div class="ttname"><a href="ISharedObject_8h.html">ISharedObject.h</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_afb1db1e3afd3cb409aab3c32435b506b"><div class="ttname"><a href="namespaceAdobeXMPCore.html#afb1db1e3afd3cb409aab3c32435b506b">AdobeXMPCore::kINodeIteratorID</a></div><div class="ttdeci">static const uint64 kINodeIteratorID(0x634e6f6465497420)</div></div>
+<div class="ttc" id="XMP__Environment_8h_html_aac6a4810b1f485f147ab833be63f4d7b"><div class="ttname"><a href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a></div><div class="ttdeci">#define XMP_PUBLIC</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00188">XMP_Environment.h:188</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a5a929113d3d50bda3fb7135a5c8b24a2"><div class="ttname"><a href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></div><div class="ttdeci">#define __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00117">XMPCommonDefines.h:117</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INodeIterator__v1_html_aebc78681e60a09759ce7ab820716a0a2"><div class="ttname"><a href="classAdobeXMPCore_1_1INodeIterator__v1.html#aebc78681e60a09759ce7ab820716a0a2">AdobeXMPCore::INodeIterator_v1::~INodeIterator_v1</a></div><div class="ttdeci">virtual ~INodeIterator_v1() __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="INodeIterator_8h_source.html#l00177">INodeIterator.h:177</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ab20ecb8d094c1dd81cb278370b746343"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">AdobeXMPCore::spISimpleNode</a></div><div class="ttdeci">shared_ptr&lt; ISimpleNode &gt; spISimpleNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00077">XMPCoreFwdDeclarations.h:77</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INodeIterator__v1_html_a0b15b5a46f9bbd0a522c95a0fe5a8210"><div class="ttname"><a href="classAdobeXMPCore_1_1INodeIterator__v1.html#a0b15b5a46f9bbd0a522c95a0fe5a8210">AdobeXMPCore::INodeIterator_v1::GetArrayNode</a></div><div class="ttdeci">XMP_PRIVATE spcIArrayNode GetArrayNode() const </div><div class="ttdef"><b>Definition:</b> <a href="INodeIterator_8h_source.html#l00100">INodeIterator.h:100</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ab423c366f29043e79694f805bceddb56"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ab423c366f29043e79694f805bceddb56">AdobeXMPCore::spcINodeIterator</a></div><div class="ttdeci">shared_ptr&lt; const INodeIterator &gt; spcINodeIterator</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00126">XMPCoreFwdDeclarations.h:126</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INodeIterator__v1_html_ad9a22d79ead6cc79fb5bd4da858e99ce"><div class="ttname"><a href="classAdobeXMPCore_1_1INodeIterator__v1.html#ad9a22d79ead6cc79fb5bd4da858e99ce">AdobeXMPCore::INodeIterator_v1::GetArrayNode</a></div><div class="ttdeci">XMP_PRIVATE spIArrayNode GetArrayNode()</div><div class="ttdoc">Gets the iterator&amp;#39;s currently pointed node as an array node, if possible. </div><div class="ttdef"><b>Definition:</b> <a href="INodeIterator_8h_source.html#l00094">INodeIterator.h:94</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a957c57fcbb47c704fc5c31cf36dcbde7"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">AdobeXMPCore::spIStructureNode</a></div><div class="ttdeci">shared_ptr&lt; IStructureNode &gt; spIStructureNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00101">XMPCoreFwdDeclarations.h:101</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a4ea338a9eed923abf6aba47a27926a0f"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">AdobeXMPCore::spcIArrayNode</a></div><div class="ttdeci">shared_ptr&lt; const IArrayNode &gt; spcIArrayNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00114">XMPCoreFwdDeclarations.h:114</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html"><div class="ttname"><a href="namespaceAdobeXMPCore.html">AdobeXMPCore</a></div><div class="ttdef"><b>Definition:</b> <a href="IArrayNode_8h_source.html#l00016">IArrayNode.h:16</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></div><div class="ttdoc">Version1 of the interface that serves as a base interface to all types of nodes in the XMP DOM...</div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00026">INode.h:26</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a24e8e82d63d879d77408ce5c7e30c609"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">AdobeXMPCore::spIArrayNode</a></div><div class="ttdeci">shared_ptr&lt; IArrayNode &gt; spIArrayNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00113">XMPCoreFwdDeclarations.h:113</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></div><div class="ttdoc">Version1 of the interface that represents an error/warning encountered during processing. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00026">IError.h:26</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INodeIterator__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1INodeIterator__v1.html">AdobeXMPCore::INodeIterator_v1</a></div><div class="ttdoc">Interface that represents an iterator over the mutable children of a XMP DOM Node. </div><div class="ttdef"><b>Definition:</b> <a href="INodeIterator_8h_source.html#l00026">INodeIterator.h:26</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1ISharedObject_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></div><div class="ttdoc">Interface that serves as the base interface of all the externally exposed interfaces. </div><div class="ttdef"><b>Definition:</b> <a href="ISharedObject_8h_source.html#l00027">ISharedObject.h:27</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INodeIterator__v1_html_ade5c1340391031ffccef4ba9122845c0"><div class="ttname"><a href="classAdobeXMPCore_1_1INodeIterator__v1.html#ade5c1340391031ffccef4ba9122845c0">AdobeXMPCore::INodeIterator_v1::GetSimpleNode</a></div><div class="ttdeci">XMP_PRIVATE spcISimpleNode GetSimpleNode() const </div><div class="ttdef"><b>Definition:</b> <a href="INodeIterator_8h_source.html#l00064">INodeIterator.h:64</a></div></div>
+<div class="ttc" id="IVersionable_8h_html"><div class="ttname"><a href="IVersionable_8h.html">IVersionable.h</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INodeIterator__v1_html_a7a99393cbe890dd34062e969fe57d704"><div class="ttname"><a href="classAdobeXMPCore_1_1INodeIterator__v1.html#a7a99393cbe890dd34062e969fe57d704">AdobeXMPCore::INodeIterator_v1::GetSimpleNode</a></div><div class="ttdeci">XMP_PRIVATE spISimpleNode GetSimpleNode()</div><div class="ttdoc">Gets the iterator&amp;#39;s currently pointed node as simple node, if possible. </div><div class="ttdef"><b>Definition:</b> <a href="INodeIterator_8h_source.html#l00058">INodeIterator.h:58</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_a46b01045c1addbc8f444bd21384b7913"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">AdobeXMPCore::INode_v1::eNodeType</a></div><div class="ttdeci">eNodeType</div><div class="ttdoc">Indicates various types of node available in XMP Data Model like simple, array and structure...</div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00036">INode.h:36</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a4cb671d44948c7505c33431ec12f6c1f"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">AdobeXMPCore::spcISimpleNode</a></div><div class="ttdeci">shared_ptr&lt; const ISimpleNode &gt; spcISimpleNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00078">XMPCoreFwdDeclarations.h:78</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INodeIterator__v1_html_a9ddc75f7ef4005df31c505d319b2b534"><div class="ttname"><a href="classAdobeXMPCore_1_1INodeIterator__v1.html#a9ddc75f7ef4005df31c505d319b2b534">AdobeXMPCore::INodeIterator_v1::GetNode</a></div><div class="ttdeci">XMP_PRIVATE spcINode APICALL GetNode() const </div><div class="ttdef"><b>Definition:</b> <a href="INodeIterator_8h_source.html#l00045">INodeIterator.h:45</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a89e9297f497c2b3f1179788c31d24da4"><div class="ttname"><a href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a></div><div class="ttdeci">#define REQ_FRIEND_CLASS_DECLARATION()</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00107">XMPCommonDefines.h:107</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ac162eebfff7088f633bc0dd401a18862"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ac162eebfff7088f633bc0dd401a18862">AdobeXMPCore::pINodeIterator</a></div><div class="ttdeci">INodeIterator * pINodeIterator</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00123">XMPCoreFwdDeclarations.h:123</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_a9d8ff928f0b3e120916451e57b1b05bb"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#a9d8ff928f0b3e120916451e57b1b05bb">AdobeXMPCore_Int::pcINodeIterator_I</a></div><div class="ttdeci">const INodeIterator_I * pcINodeIterator_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00264">XMPCoreFwdDeclarations.h:264</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IVersionable_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></div><div class="ttdoc">Interface that serves as the base interface for all the externally exposed interfaces which needs to ...</div><div class="ttdef"><b>Definition:</b> <a href="IVersionable_8h_source.html#l00028">IVersionable.h:28</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aeec2c711a611cbc3c77ef1a0bb026e33"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">AdobeXMPCore::spINode</a></div><div class="ttdeci">shared_ptr&lt; INode &gt; spINode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00065">XMPCoreFwdDeclarations.h:65</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a597eaeb0ed86794ea01f74a5be0f88ed"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">AdobeXMPCore::spcINode</a></div><div class="ttdeci">shared_ptr&lt; const INode &gt; spcINode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00066">XMPCoreFwdDeclarations.h:66</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INodeIterator__v1_html_af2a3dac600bde63b628fc701fbce6db2"><div class="ttname"><a href="classAdobeXMPCore_1_1INodeIterator__v1.html#af2a3dac600bde63b628fc701fbce6db2">AdobeXMPCore::INodeIterator_v1::GetStructureNode</a></div><div class="ttdeci">XMP_PRIVATE spcIStructureNode GetStructureNode() const </div><div class="ttdef"><b>Definition:</b> <a href="INodeIterator_8h_source.html#l00082">INodeIterator.h:82</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html_a917e8e3f02685ec390fa3aee270f7747"><div class="ttname"><a href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a></div><div class="ttdeci">#define XMP_PRIVATE</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00189">XMP_Environment.h:189</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INodeIterator__v1_html_a38521f687591c9b57da1b7426d6e33d8"><div class="ttname"><a href="classAdobeXMPCore_1_1INodeIterator__v1.html#a38521f687591c9b57da1b7426d6e33d8">AdobeXMPCore::INodeIterator_v1::Next</a></div><div class="ttdeci">XMP_PRIVATE spcINodeIterator APICALL Next() const </div><div class="ttdef"><b>Definition:</b> <a href="INodeIterator_8h_source.html#l00112">INodeIterator.h:112</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ab5807ab783087243a3676a19ad6f9b90"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">AdobeXMPCore::spcIStructureNode</a></div><div class="ttdeci">shared_ptr&lt; const IStructureNode &gt; spcIStructureNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00102">XMPCoreFwdDeclarations.h:102</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a0b1bbe96e1a757e66974c2f076afe4d2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">AdobeXMPCommon::uint32</a></div><div class="ttdeci">XMP_Uns32 uint32</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00144">XMPCommonDefines.h:144</a></div></div>
+<div class="ttc" id="XMPCoreFwdDeclarations_8h_html"><div class="ttname"><a href="XMPCoreFwdDeclarations_8h.html">XMPCoreFwdDeclarations.h</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/INode_8h.html b/docs/API/INode_8h.html
new file mode 100755
index 0000000..a19ae3e
--- /dev/null
+++ b/docs/API/INode_8h.html
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/INode.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('INode_8h.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">INode.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCore/XMPCoreFwdDeclarations.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="ISharedObject_8h_source.html">XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="IVersionable_8h_source.html">XMPCommon/Interfaces/BaseInterfaces/IVersionable.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="IThreadSafe_8h_source.html">XMPCommon/Interfaces/BaseInterfaces/IThreadSafe.h</a>&quot;</code><br />
+</div>
+<p><a href="INode_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version1 of the interface that serves as a base interface to all types of nodes in the XMP DOM. <a href="classAdobeXMPCore_1_1INode__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceAdobeXMPCore"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/INode_8h_source.html b/docs/API/INode_8h_source.html
new file mode 100755
index 0000000..cbe9991
--- /dev/null
+++ b/docs/API/INode_8h_source.html
@@ -0,0 +1,110 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/INode.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('INode_8h_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">INode.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="INode_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __INode_h__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __INode_h__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// ADOBE SYSTEMS INCORPORATED</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// Copyright 2014 Adobe Systems Incorporated</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// All Rights Reserved</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="XMPCoreFwdDeclarations_8h.html">XMPCore/XMPCoreFwdDeclarations.h</a>&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ISharedObject_8h.html">XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="IVersionable_8h.html">XMPCommon/Interfaces/BaseInterfaces/IVersionable.h</a>&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="IThreadSafe_8h.html">XMPCommon/Interfaces/BaseInterfaces/IThreadSafe.h</a>&quot;</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a> {</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1INode__v1.html"> 26</a></span>&#160; <span class="keyword">class </span><a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">INode_v1</a></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1ISharedObject.html">ISharedObject</a></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; , <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IVersionable.html">IVersionable</a></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; , <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IThreadSafe.html">IThreadSafe</a></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; {</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913"> 36</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">enum</span> {</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913aae32cc414cc7adaf3b2a1c375f2cb3bb"> 38</a></span>&#160; kNTNone = 0,</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a97e0c4fb69029d0d152c068c10736234"> 41</a></span>&#160; kNTSimple = 1,</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a60c6b4c3dfc99d8584866f5f18ff2610"> 44</a></span>&#160; kNTArray = 1 &lt;&lt; 1,</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a7542b80b3b688cd3d210d62d12dbe471"> 47</a></span>&#160; kNTStructure = 1 &lt;&lt; 2,</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a68bac77fd8140a60490eb78f0b533e21"> 50</a></span>&#160; kNTAll = <a class="code" href="namespaceAdobeXMPCommon.html#a3e31c8b25cbf95c42b8e439071bdf865">kAllBits</a></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; } <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">virtual</span> eNodeType APICALL GetNodeType() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">virtual</span> eNodeType APICALL GetParentNodeType() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1INode__v1.html#aee7e1f35ac174874234ba5e913a6bfaa"> 73</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">spcINode</a> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#aee7e1f35ac174874234ba5e913a6bfaa">GetParent</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">INode_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;GetParent();</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL GetParent() = 0;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL SetName( <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength ) = 0;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL GetName() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL SetNameSpace( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength ) = 0;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL GetNameSpace() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#aa54f5ed241da9437ad01c1047a199f56">spIPath</a> APICALL GetPath() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL QualifiersCount() <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a> = 0;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1INode__v1.html#a9972ca54948952083a930166448c05c0"> 130</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#ab423c366f29043e79694f805bceddb56">spcINodeIterator</a> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a9972ca54948952083a930166448c05c0">QualifiersIterator</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">INode_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;QualifiersIterator();</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; }</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#a5386a735d9eb66d5859e4657dfeebb7c">spINodeIterator</a> APICALL QualifiersIterator() = 0;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">virtual</span> eNodeType APICALL GetQualifierNodeType( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength ) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1INode__v1.html#a96a99fa56a2b088691ecad5a0cf6e54d"> 158</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">spcINode</a> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a96a99fa56a2b088691ecad5a0cf6e54d">GetQualifier</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength )<span class="keyword"> const </span>{</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">INode_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;GetQualifier( nameSpace, nameSpaceLength, name, nameLength );</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; }</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL GetQualifier( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength ) = 0;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1INode__v1.html#a1524d74e397863cb9324838862f70d7b"> 177</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a1524d74e397863cb9324838862f70d7b">GetSimpleQualifier</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength )<span class="keyword"> const </span>{</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keyword">auto</span> node = GetQualifier( nameSpace, nameSpaceLength, name, nameLength );</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToSimpleNode();</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a>();</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; }</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1INode__v1.html#a2831fe03981afd9af12e775bda89361e"> 183</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a2831fe03981afd9af12e775bda89361e">GetSimpleQualifier</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength ) {</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keyword">auto</span> node = GetQualifier( nameSpace, nameSpaceLength, name, nameLength );</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToSimpleNode();</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a>();</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; }</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1INode__v1.html#a844a40cd69e0d87226ce1146d733edd6"> 203</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a844a40cd69e0d87226ce1146d733edd6">GetStructureQualifier</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength )<span class="keyword"> const </span>{</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keyword">auto</span> node = GetQualifier( nameSpace, nameSpaceLength, name, nameLength );</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToStructureNode();</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a>();</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; }</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1INode__v1.html#a4fb3c837b8c28501b2e7a3376a2cf382"> 209</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a4fb3c837b8c28501b2e7a3376a2cf382">GetStructureQualifier</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength ) {</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keyword">auto</span> node = GetQualifier( nameSpace, nameSpaceLength, name, nameLength );</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToStructureNode();</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a>();</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; }</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1INode__v1.html#ab55c9dad49840d58a1c2c16b9f1962ad"> 229</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#ab55c9dad49840d58a1c2c16b9f1962ad">GetArrayQualifier</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength )<span class="keyword"> const </span>{</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keyword">auto</span> node = GetQualifier( nameSpace, nameSpaceLength, name, nameLength );</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToArrayNode();</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a>();</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; }</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1INode__v1.html#a5a2e68d1345ed6ca2e5d1bfada42b13f"> 235</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a5a2e68d1345ed6ca2e5d1bfada42b13f">GetArrayQualifier</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength ) {</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keyword">auto</span> node = GetQualifier( nameSpace, nameSpaceLength, name, nameLength );</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToArrayNode();</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a>();</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; }</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL InsertQualifier( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp; node ) = 0;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL ReplaceQualifier( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp; node ) = 0;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL RemoveQualifier( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength ) = 0;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL IsArrayItem() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL IsQualifierNode() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL GetIndex() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL HasQualifiers() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL HasContent() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL IsEmpty() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL HasChanged() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL AcknowledgeChanges() <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL Clear( <span class="keywordtype">bool</span> contents = <span class="keyword">true</span>, <span class="keywordtype">bool</span> qualifiers = <span class="keyword">true</span> ) = 0;</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;</div><div class="line"><a name="l00339"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1INode__v1.html#aeb9797165d96d06998de79dd19a9f846"> 339</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#aeb9797165d96d06998de79dd19a9f846">ConvertToSimpleNode</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">INode_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;ConvertToSimpleNode();</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; }</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a> APICALL ConvertToSimpleNode() = 0;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;</div><div class="line"><a name="l00350"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1INode__v1.html#a5ea317fcd59694184089a9774c866b22"> 350</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a5ea317fcd59694184089a9774c866b22">ConvertToStructureNode</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">INode_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;ConvertToStructureNode();</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; }</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a> APICALL ConvertToStructureNode() = 0;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;</div><div class="line"><a name="l00361"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1INode__v1.html#af180be62ecd26edf90df0fe3ea75941e"> 361</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#af180be62ecd26edf90df0fe3ea75941e">ConvertToArrayNode</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">INode_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;ConvertToArrayNode();</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; }</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a> APICALL ConvertToArrayNode() = 0;</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;</div><div class="line"><a name="l00372"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1INode__v1.html#a08f9ed4dee6c899f65eb51e3d7f9858d"> 372</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#a1e81ce748e90e850d0a48b0b5943fce2">spcIMetadata</a> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a08f9ed4dee6c899f65eb51e3d7f9858d">ConvertToMetadata</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">INode_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;ConvertToMetadata();</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; }</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#a7f1de39fd79aeac4402eba73cb1ffe82">spIMetadata</a> APICALL ConvertToMetadata() = 0;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL Clone( <span class="keywordtype">bool</span> ignoreEmptyNodes = <span class="keyword">false</span>, <span class="keywordtype">bool</span> ignoreNodesWithOnlyQualifiers = <span class="keyword">false</span> ) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#abc833d7b10347a44a303b973337cf536">pINode</a> APICALL GetActualINode() __NOTHROW__ = 0;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#ab2c77e55a81c018160035cea22f49a1a">pcINode</a> GetActualINode() <span class="keyword">const</span> __NOTHROW__ {</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">INode_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;GetActualINode();</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; }</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore__Int.html#a7ab22fbbd637098e7e0db48036864228">AdobeXMPCore_Int::pINode_I</a> APICALL GetINode_I() __NOTHROW__ = 0;</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore__Int.html#a09decb910c24c7929d609f1e29ca16b1">AdobeXMPCore_Int::pcINode_I</a> GetINode_I() <span class="keyword">const</span> __NOTHROW__ {</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">INode_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;GetINode_I();</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; }</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> MakeShared( <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> ptr );</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">spcINode</a> MakeShared( <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pcINode_base</a> ptr ) {</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keywordflow">return</span> MakeShared( const_cast&lt; pINode_base &gt;( ptr ) );</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; }</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> GetInterfaceID() { <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#ae76eb0e35e0e35e5b476b6fecc6e3603">kINodeID</a>; }</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> GetInterfaceVersion() { <span class="keywordflow">return</span> 1; }</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00447"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1INode__v1.html#affdbed044179bbde65ffc28b20e28ecb"> 447</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#affdbed044179bbde65ffc28b20e28ecb">~INode_v1</a>() __NOTHROW__ {}</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL getParentNodeType( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> APICALL getParent( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL setName( <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">pcIUTF8String_base</a> APICALL getName( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL setNameSpace( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">pcIUTF8String_base</a> APICALL getNameSpace( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1IPath__v1.html">pIPath_base</a> APICALL getPath( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INodeIterator__v1.html">pINodeIterator_base</a> APICALL qualifiersIterator( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL getQualifierNodeType( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> APICALL getQualifier( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL insertQualifier( <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> base, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> APICALL replaceQualifier( <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> node, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> APICALL removeQualifier( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL getNodeType( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL isArrayItem( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL isQualifierNode( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL getIndex( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL hasQualifiers( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL hasContent( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL isEmpty( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL hasChanged( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL clear( <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> contents, <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> qualifiers, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> APICALL clone( <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> igoreEmptyNodes, <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> ignoreNodesWithOnlyQualifiers, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1ISimpleNode__v1.html">pISimpleNode_base</a> APICALL convertToSimpleNode( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1IStructureNode__v1.html">pIStructureNode_base</a> APICALL convertToStructureNode( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1IArrayNode__v1.html">pIArrayNode_base</a> APICALL convertToArrayNode( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1IMetadata__v1.html">pIMetadata_base</a> APICALL convertToMetadata( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;<span class="preprocessor"> #ifdef FRIEND_CLASS_DECLARATION</span></div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; FRIEND_CLASS_DECLARATION();</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <a class="code" href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a>();</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; };</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;}</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;<span class="preprocessor">#if !BUILDING_XMPCORE_LIB &amp;&amp; !SOURCE_COMPILING_XMPCORE_LIB</span></div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keyword">namespace </span><a class="code" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a> {</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keyword">class </span>INodeProxy</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; : <span class="keyword">public</span> <span class="keyword">virtual</span> INode</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; {</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#abc833d7b10347a44a303b973337cf536">pINode</a> mRawPtr;</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; INodeProxy( <a class="code" href="namespaceAdobeXMPCore.html#abc833d7b10347a44a303b973337cf536">pINode</a> ptr );</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; ~INodeProxy() <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a> ;</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#abc833d7b10347a44a303b973337cf536">pINode</a> APICALL GetActualINode() <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="keywordtype">void</span> APICALL Acquire() <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="keywordtype">void</span> APICALL Release() <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <a class="code" href="namespaceAdobeXMPCommon__Int.html#ada4b051c58f05ef398453930451bc13d">AdobeXMPCommon_Int::pISharedObject_I</a> APICALL GetISharedObject_I() <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <a class="code" href="namespaceAdobeXMPCore__Int.html#a7ab22fbbd637098e7e0db48036864228">AdobeXMPCore_Int::pINode_I</a> APICALL GetINode_I() <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ab59e650373a5efadfbfd2486313258a6">pvoid</a> APICALL GetInterfacePointer( <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> interfaceID, <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> interfaceVersion );</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL GetParentNodeType() <span class="keyword">const</span>;</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL GetParent();</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL SetName( <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength );</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL GetName() <span class="keyword">const</span>;</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL SetNameSpace( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength );</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL GetNameSpace() <span class="keyword">const</span>;</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#aa54f5ed241da9437ad01c1047a199f56">spIPath</a> APICALL GetPath() <span class="keyword">const</span>;</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL QualifiersCount() <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#a5386a735d9eb66d5859e4657dfeebb7c">spINodeIterator</a> APICALL QualifiersIterator();</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL GetQualifierNodeType( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength ) <span class="keyword">const</span>;</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL GetQualifier( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength );</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL InsertQualifier( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp; node );</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL ReplaceQualifier( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp; node );</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL RemoveQualifier( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength );</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL GetNodeType() <span class="keyword">const</span>;</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL IsArrayItem() <span class="keyword">const</span>;</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL IsQualifierNode() <span class="keyword">const</span>;</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL GetIndex() <span class="keyword">const</span>;</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL HasQualifiers() <span class="keyword">const</span>;</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL HasContent() <span class="keyword">const</span>;</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL IsEmpty() <span class="keyword">const</span>;</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL HasChanged() <span class="keyword">const</span>;</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL AcknowledgeChanges() <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL Clear( <span class="keywordtype">bool</span> contents, <span class="keywordtype">bool</span> qualifiers );</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL Clone( <span class="keywordtype">bool</span> ignoreEmptyNodes, <span class="keywordtype">bool</span> ignoreNodesWithOnlyQualifiers ) <span class="keyword">const</span>;</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL EnableThreadSafety() <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL DisableThreadSafety() <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL IsThreadSafe() <span class="keyword">const</span>;</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon__Int.html#ac9c07c42e647a17838c9314b8d2823d9">AdobeXMPCommon_Int::pIThreadSafe_I</a> APICALL GetIThreadSafe_I() <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a> APICALL ConvertToSimpleNode();</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a> APICALL ConvertToStructureNode();</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a> APICALL ConvertToArrayNode();</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#a7f1de39fd79aeac4402eba73cb1ffe82">spIMetadata</a> APICALL ConvertToMetadata();</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> APICALL getParent( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL setName( <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">pcIUTF8String_base</a> APICALL getName( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL setNameSpace( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">pcIUTF8String_base</a> APICALL getNameSpace( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1IPath__v1.html">pIPath_base</a> APICALL getPath( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INodeIterator__v1.html">pINodeIterator_base</a> APICALL qualifiersIterator( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> APICALL getQualifier( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL insertQualifier( <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> base, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> APICALL replaceQualifier( <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> node, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> APICALL removeQualifier( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL getNodeType( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL isArrayItem( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL isQualifierNode( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL getIndex( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL hasQualifiers( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL hasContent( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL isEmpty( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL hasChanged( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL clear( <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> contents, <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> qualifiers, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> APICALL clone( <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> igoreEmptyNodes, <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> ignoreNodesWithOnlyQualifiers, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL isThreadSafe() <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1ISimpleNode__v1.html">pISimpleNode_base</a> APICALL convertToSimpleNode( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1IStructureNode__v1.html">pIStructureNode_base</a> APICALL convertToStructureNode( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1IArrayNode__v1.html">pIArrayNode_base</a> APICALL convertToArrayNode( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1IMetadata__v1.html">pIMetadata_base</a> APICALL convertToMetadata( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL getParentNodeType( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL getQualifierNodeType( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ab59e650373a5efadfbfd2486313258a6">pvoid</a> APICALL getInterfacePointer( <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> interfaceID, <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> interfaceVersion, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; };</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;}</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;<span class="preprocessor">#endif // !BUILDING_XMPCORE_LIB &amp;&amp; !SOURCE_COMPILING_XMPCORE_LIB</span></div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160;</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;<span class="preprocessor">#endif // __INode_h__</span></div><div class="ttc" id="namespaceAdobeXMPCommon__Int_html_ada4b051c58f05ef398453930451bc13d"><div class="ttname"><a href="namespaceAdobeXMPCommon__Int.html#ada4b051c58f05ef398453930451bc13d">AdobeXMPCommon_Int::pISharedObject_I</a></div><div class="ttdeci">ISharedObject_I * pISharedObject_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00147">XMPCommonFwdDeclarations.h:147</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_aea1d692da07b844d1f642b47ea6a91bd"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">AdobeXMPCommon::uint64</a></div><div class="ttdeci">XMP_Uns64 uint64</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00142">XMPCommonDefines.h:142</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_a844a40cd69e0d87226ce1146d733edd6"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a844a40cd69e0d87226ce1146d733edd6">AdobeXMPCore::INode_v1::GetStructureQualifier</a></div><div class="ttdeci">XMP_PRIVATE spcIStructureNode GetStructureQualifier(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </div><div class="ttdoc">Get the node&amp;#39;s qualifier having specified name space and name as structure node. </div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00203">INode.h:203</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a5386a735d9eb66d5859e4657dfeebb7c"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a5386a735d9eb66d5859e4657dfeebb7c">AdobeXMPCore::spINodeIterator</a></div><div class="ttdeci">shared_ptr&lt; INodeIterator &gt; spINodeIterator</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00125">XMPCoreFwdDeclarations.h:125</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_a5ea317fcd59694184089a9774c866b22"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a5ea317fcd59694184089a9774c866b22">AdobeXMPCore::INode_v1::ConvertToStructureNode</a></div><div class="ttdeci">XMP_PRIVATE spcIStructureNode ConvertToStructureNode() const </div><div class="ttdoc">Converts Node to a structure node type, if possible. </div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00350">INode.h:350</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_ab55c9dad49840d58a1c2c16b9f1962ad"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#ab55c9dad49840d58a1c2c16b9f1962ad">AdobeXMPCore::INode_v1::GetArrayQualifier</a></div><div class="ttdeci">XMP_PRIVATE spcIArrayNode GetArrayQualifier(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </div><div class="ttdoc">Get the node&amp;#39;s qualifier having specified name space and name as an array node. </div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00229">INode.h:229</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_abc833d7b10347a44a303b973337cf536"><div class="ttname"><a href="namespaceAdobeXMPCore.html#abc833d7b10347a44a303b973337cf536">AdobeXMPCore::pINode</a></div><div class="ttdeci">INode * pINode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00063">XMPCoreFwdDeclarations.h:63</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1ISimpleNode__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1ISimpleNode__v1.html">AdobeXMPCore::ISimpleNode_v1</a></div><div class="ttdoc">Version1 of the interface that represents a Simple Property Node of XMP DOM. </div><div class="ttdef"><b>Definition:</b> <a href="ISimpleNode_8h_source.html#l00023">ISimpleNode.h:23</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ab2c77e55a81c018160035cea22f49a1a"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ab2c77e55a81c018160035cea22f49a1a">AdobeXMPCore::pcINode</a></div><div class="ttdeci">const INode * pcINode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00064">XMPCoreFwdDeclarations.h:64</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_a09decb910c24c7929d609f1e29ca16b1"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#a09decb910c24c7929d609f1e29ca16b1">AdobeXMPCore_Int::pcINode_I</a></div><div class="ttdeci">const INode_I * pcINode_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00239">XMPCoreFwdDeclarations.h:239</a></div></div>
+<div class="ttc" id="ISharedObject_8h_html"><div class="ttname"><a href="ISharedObject_8h.html">ISharedObject.h</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html_aac6a4810b1f485f147ab833be63f4d7b"><div class="ttname"><a href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a></div><div class="ttdeci">#define XMP_PUBLIC</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00188">XMP_Environment.h:188</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a5a929113d3d50bda3fb7135a5c8b24a2"><div class="ttname"><a href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></div><div class="ttdeci">#define __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00117">XMPCommonDefines.h:117</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a91aaab1f1d7030b26df65258bd131a63"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">AdobeXMPCommon::spcIUTF8String</a></div><div class="ttdeci">shared_ptr&lt; const IUTF8String &gt; spcIUTF8String</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00078">XMPCommonFwdDeclarations.h:78</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_a5a2e68d1345ed6ca2e5d1bfada42b13f"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a5a2e68d1345ed6ca2e5d1bfada42b13f">AdobeXMPCore::INode_v1::GetArrayQualifier</a></div><div class="ttdeci">XMP_PRIVATE spIArrayNode GetArrayQualifier(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)</div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00235">INode.h:235</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ab20ecb8d094c1dd81cb278370b746343"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">AdobeXMPCore::spISimpleNode</a></div><div class="ttdeci">shared_ptr&lt; ISimpleNode &gt; spISimpleNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00077">XMPCoreFwdDeclarations.h:77</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ab423c366f29043e79694f805bceddb56"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ab423c366f29043e79694f805bceddb56">AdobeXMPCore::spcINodeIterator</a></div><div class="ttdeci">shared_ptr&lt; const INodeIterator &gt; spcINodeIterator</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00126">XMPCoreFwdDeclarations.h:126</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a957c57fcbb47c704fc5c31cf36dcbde7"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">AdobeXMPCore::spIStructureNode</a></div><div class="ttdeci">shared_ptr&lt; IStructureNode &gt; spIStructureNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00101">XMPCoreFwdDeclarations.h:101</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_affdbed044179bbde65ffc28b20e28ecb"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#affdbed044179bbde65ffc28b20e28ecb">AdobeXMPCore::INode_v1::~INode_v1</a></div><div class="ttdeci">virtual ~INode_v1() __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00447">INode.h:447</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_af180be62ecd26edf90df0fe3ea75941e"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#af180be62ecd26edf90df0fe3ea75941e">AdobeXMPCore::INode_v1::ConvertToArrayNode</a></div><div class="ttdeci">XMP_PRIVATE spcIArrayNode ConvertToArrayNode() const </div><div class="ttdoc">Converts Node to an array node type, if possible. </div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00361">INode.h:361</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IMetadata__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1IMetadata__v1.html">AdobeXMPCore::IMetadata_v1</a></div><div class="ttdoc">Version1 of the interface that represents the whole xmp metadata for an asset. </div><div class="ttdef"><b>Definition:</b> <a href="IMetadata_8h_source.html#l00024">IMetadata.h:24</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a4ea338a9eed923abf6aba47a27926a0f"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">AdobeXMPCore::spcIArrayNode</a></div><div class="ttdeci">shared_ptr&lt; const IArrayNode &gt; spcIArrayNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00114">XMPCoreFwdDeclarations.h:114</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aa54f5ed241da9437ad01c1047a199f56"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aa54f5ed241da9437ad01c1047a199f56">AdobeXMPCore::spIPath</a></div><div class="ttdeci">shared_ptr&lt; IPath &gt; spIPath</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00053">XMPCoreFwdDeclarations.h:53</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a3e31c8b25cbf95c42b8e439071bdf865"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a3e31c8b25cbf95c42b8e439071bdf865">AdobeXMPCommon::kAllBits</a></div><div class="ttdeci">static const uint32 kAllBits(0xFFFFFFFF)</div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_a4fb3c837b8c28501b2e7a3376a2cf382"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a4fb3c837b8c28501b2e7a3376a2cf382">AdobeXMPCore::INode_v1::GetStructureQualifier</a></div><div class="ttdeci">XMP_PRIVATE spIStructureNode GetStructureQualifier(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)</div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00209">INode.h:209</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_a1524d74e397863cb9324838862f70d7b"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a1524d74e397863cb9324838862f70d7b">AdobeXMPCore::INode_v1::GetSimpleQualifier</a></div><div class="ttdeci">XMP_PRIVATE spcISimpleNode GetSimpleQualifier(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </div><div class="ttdoc">Get the node&amp;#39;s qualifier having specified name space and name as simple node. </div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00177">INode.h:177</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html"><div class="ttname"><a href="namespaceAdobeXMPCore.html">AdobeXMPCore</a></div><div class="ttdef"><b>Definition:</b> <a href="IArrayNode_8h_source.html#l00016">IArrayNode.h:16</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></div><div class="ttdoc">Version1 of the interface that serves as a base interface to all types of nodes in the XMP DOM...</div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00026">INode.h:26</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a24e8e82d63d879d77408ce5c7e30c609"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">AdobeXMPCore::spIArrayNode</a></div><div class="ttdeci">shared_ptr&lt; IArrayNode &gt; spIArrayNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00113">XMPCoreFwdDeclarations.h:113</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_aee7e1f35ac174874234ba5e913a6bfaa"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#aee7e1f35ac174874234ba5e913a6bfaa">AdobeXMPCore::INode_v1::GetParent</a></div><div class="ttdeci">XMP_PRIVATE spcINode GetParent() const </div><div class="ttdoc">Gets the parent node of the node. </div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00073">INode.h:73</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_a96a99fa56a2b088691ecad5a0cf6e54d"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a96a99fa56a2b088691ecad5a0cf6e54d">AdobeXMPCore::INode_v1::GetQualifier</a></div><div class="ttdeci">XMP_PRIVATE spcINode GetQualifier(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </div><div class="ttdoc">Gets the qualifier of the node having specified namespace and name. </div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00158">INode.h:158</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ae76eb0e35e0e35e5b476b6fecc6e3603"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ae76eb0e35e0e35e5b476b6fecc6e3603">AdobeXMPCore::kINodeID</a></div><div class="ttdeci">static const uint64 kINodeID(0x634e6f6465202020)</div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_a2831fe03981afd9af12e775bda89361e"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a2831fe03981afd9af12e775bda89361e">AdobeXMPCore::INode_v1::GetSimpleQualifier</a></div><div class="ttdeci">XMP_PRIVATE spISimpleNode GetSimpleQualifier(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)</div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00183">INode.h:183</a></div></div>
+<div class="ttc" id="IThreadSafe_8h_html"><div class="ttname"><a href="IThreadSafe_8h.html">IThreadSafe.h</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IArrayNode__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1IArrayNode__v1.html">AdobeXMPCore::IArrayNode_v1</a></div><div class="ttdoc">Version1 of the interface that represents an Array Node of XMP DOM. </div><div class="ttdef"><b>Definition:</b> <a href="IArrayNode_8h_source.html#l00025">IArrayNode.h:25</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></div><div class="ttdoc">Version1 of the interface that represents an error/warning encountered during processing. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00026">IError.h:26</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IThreadSafe_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></div><div class="ttdoc">Interface that serves as the base interface for all the externally exposed interfaces which needs to ...</div><div class="ttdef"><b>Definition:</b> <a href="IThreadSafe_8h_source.html#l00027">IThreadSafe.h:27</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INodeIterator__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1INodeIterator__v1.html">AdobeXMPCore::INodeIterator_v1</a></div><div class="ttdoc">Interface that represents an iterator over the mutable children of a XMP DOM Node. </div><div class="ttdef"><b>Definition:</b> <a href="INodeIterator_8h_source.html#l00026">INodeIterator.h:26</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a1c85c2f558b495c3d41eabe692a96cf2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a></div><div class="ttdeci">uint32 sizet</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00146">XMPCommonDefines.h:146</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1ISharedObject_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></div><div class="ttdoc">Interface that serves as the base interface of all the externally exposed interfaces. </div><div class="ttdef"><b>Definition:</b> <a href="ISharedObject_8h_source.html#l00027">ISharedObject.h:27</a></div></div>
+<div class="ttc" id="IVersionable_8h_html"><div class="ttname"><a href="IVersionable_8h.html">IVersionable.h</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_ab59e650373a5efadfbfd2486313258a6"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#ab59e650373a5efadfbfd2486313258a6">AdobeXMPCommon::pvoid</a></div><div class="ttdeci">void * pvoid</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00044">XMPCommonFwdDeclarations.h:44</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_aeb9797165d96d06998de79dd19a9f846"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#aeb9797165d96d06998de79dd19a9f846">AdobeXMPCore::INode_v1::ConvertToSimpleNode</a></div><div class="ttdeci">XMP_PRIVATE spcISimpleNode ConvertToSimpleNode() const </div><div class="ttdoc">Converts Node to a simple node, if possible. </div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00339">INode.h:339</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_a46b01045c1addbc8f444bd21384b7913"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">AdobeXMPCore::INode_v1::eNodeType</a></div><div class="ttdeci">eNodeType</div><div class="ttdoc">Indicates various types of node available in XMP Data Model like simple, array and structure...</div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00036">INode.h:36</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a4cb671d44948c7505c33431ec12f6c1f"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">AdobeXMPCore::spcISimpleNode</a></div><div class="ttdeci">shared_ptr&lt; const ISimpleNode &gt; spcISimpleNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00078">XMPCoreFwdDeclarations.h:78</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_a7ab22fbbd637098e7e0db48036864228"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#a7ab22fbbd637098e7e0db48036864228">AdobeXMPCore_Int::pINode_I</a></div><div class="ttdeci">INode_I * pINode_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00237">XMPCoreFwdDeclarations.h:237</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a89e9297f497c2b3f1179788c31d24da4"><div class="ttname"><a href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a></div><div class="ttdeci">#define REQ_FRIEND_CLASS_DECLARATION()</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00107">XMPCommonDefines.h:107</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IPath__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1IPath__v1.html">AdobeXMPCore::IPath_v1</a></div><div class="ttdoc">Version1 of the interface that provides an easy iterative description of a specific path into the XMP...</div><div class="ttdef"><b>Definition:</b> <a href="IPath_8h_source.html#l00026">IPath.h:26</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IStructureNode__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1IStructureNode__v1.html">AdobeXMPCore::IStructureNode_v1</a></div><div class="ttdoc">Version1 of the interface that represents a structure Node of XMP DOM. </div><div class="ttdef"><b>Definition:</b> <a href="IStructureNode_8h_source.html#l00023">IStructureNode.h:23</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a7f1de39fd79aeac4402eba73cb1ffe82"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a7f1de39fd79aeac4402eba73cb1ffe82">AdobeXMPCore::spIMetadata</a></div><div class="ttdeci">shared_ptr&lt; IMetadata &gt; spIMetadata</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00137">XMPCoreFwdDeclarations.h:137</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IVersionable_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></div><div class="ttdoc">Interface that serves as the base interface for all the externally exposed interfaces which needs to ...</div><div class="ttdef"><b>Definition:</b> <a href="IVersionable_8h_source.html#l00028">IVersionable.h:28</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aeec2c711a611cbc3c77ef1a0bb026e33"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">AdobeXMPCore::spINode</a></div><div class="ttdeci">shared_ptr&lt; INode &gt; spINode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00065">XMPCoreFwdDeclarations.h:65</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_a08f9ed4dee6c899f65eb51e3d7f9858d"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a08f9ed4dee6c899f65eb51e3d7f9858d">AdobeXMPCore::INode_v1::ConvertToMetadata</a></div><div class="ttdeci">XMP_PRIVATE spcIMetadata ConvertToMetadata() const </div><div class="ttdoc">Converts Node to a metadata node type, if possible. </div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00372">INode.h:372</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_a9972ca54948952083a930166448c05c0"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a9972ca54948952083a930166448c05c0">AdobeXMPCore::INode_v1::QualifiersIterator</a></div><div class="ttdeci">XMP_PRIVATE spcINodeIterator QualifiersIterator() const </div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00130">INode.h:130</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon__Int_html_ac9c07c42e647a17838c9314b8d2823d9"><div class="ttname"><a href="namespaceAdobeXMPCommon__Int.html#ac9c07c42e647a17838c9314b8d2823d9">AdobeXMPCommon_Int::pIThreadSafe_I</a></div><div class="ttdeci">IThreadSafe_I * pIThreadSafe_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00152">XMPCommonFwdDeclarations.h:152</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a597eaeb0ed86794ea01f74a5be0f88ed"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">AdobeXMPCore::spcINode</a></div><div class="ttdeci">shared_ptr&lt; const INode &gt; spcINode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00066">XMPCoreFwdDeclarations.h:66</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html_a917e8e3f02685ec390fa3aee270f7747"><div class="ttname"><a href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a></div><div class="ttdeci">#define XMP_PRIVATE</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00189">XMP_Environment.h:189</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a1e81ce748e90e850d0a48b0b5943fce2"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a1e81ce748e90e850d0a48b0b5943fce2">AdobeXMPCore::spcIMetadata</a></div><div class="ttdeci">shared_ptr&lt; const IMetadata &gt; spcIMetadata</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00138">XMPCoreFwdDeclarations.h:138</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IUTF8String__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></div><div class="ttdoc">Version1 of the interface that represents an UTF8String. </div><div class="ttdef"><b>Definition:</b> <a href="IUTF8String_8h_source.html#l00023">IUTF8String.h:23</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ab5807ab783087243a3676a19ad6f9b90"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">AdobeXMPCore::spcIStructureNode</a></div><div class="ttdeci">shared_ptr&lt; const IStructureNode &gt; spcIStructureNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00102">XMPCoreFwdDeclarations.h:102</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a0b1bbe96e1a757e66974c2f076afe4d2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">AdobeXMPCommon::uint32</a></div><div class="ttdeci">XMP_Uns32 uint32</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00144">XMPCommonDefines.h:144</a></div></div>
+<div class="ttc" id="XMPCoreFwdDeclarations_8h_html"><div class="ttname"><a href="XMPCoreFwdDeclarations_8h.html">XMPCoreFwdDeclarations.h</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/IObjectFactory_8h.html b/docs/API/IObjectFactory_8h.html
new file mode 100755
index 0000000..1483d43
--- /dev/null
+++ b/docs/API/IObjectFactory_8h.html
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/Interfaces/IObjectFactory.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('IObjectFactory_8h.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">IObjectFactory.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommon/XMPCommonFwdDeclarations.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="IVersionable_8h_source.html">XMPCommon/Interfaces/BaseInterfaces/IVersionable.h</a>&quot;</code><br />
+</div>
+<p><a href="IObjectFactory_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html">AdobeXMPCommon::IObjectFactory_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version1 of a interface that represents a factory to create various artifacts defined within <a class="el" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a> namespace. <a href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceAdobeXMPCommon"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/IObjectFactory_8h_source.html b/docs/API/IObjectFactory_8h_source.html
new file mode 100755
index 0000000..b8d3d2d
--- /dev/null
+++ b/docs/API/IObjectFactory_8h_source.html
@@ -0,0 +1,71 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/Interfaces/IObjectFactory.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('IObjectFactory_8h_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">IObjectFactory.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="IObjectFactory_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef IObjectFactory_h__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define IObjectFactory_h__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// ADOBE SYSTEMS INCORPORATED</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// Copyright 2015 Adobe Systems Incorporated</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// All Rights Reserved</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="XMPCommonFwdDeclarations_8h.html">XMPCommon/XMPCommonFwdDeclarations.h</a>&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="IVersionable_8h.html">XMPCommon/Interfaces/BaseInterfaces/IVersionable.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a> {</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html"> 25</a></span>&#160; <span class="keyword">class </span><a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html">IObjectFactory_v1</a></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; : <span class="keyword">public</span> <a class="code" href="classAdobeXMPCommon_1_1IVersionable.html">IVersionable</a></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; {</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">pIUTF8String_base</a> APICALL CreateUTF8String( <span class="keyword">const</span> <span class="keywordtype">char</span> * buf, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a> = 0;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pIError_base</a> APICALL CreateError( <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> domain, <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> code, <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> severity, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#a2dc282621cdfef44b424ac91efb965a1"> 59</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0863cf1c24764306839671985373b93f">pIObjectFactory</a> <a class="code" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#a2dc282621cdfef44b424ac91efb965a1">MakeObjectFactory</a>( <a class="code" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html">pIObjectFactory_base</a> ptr ) {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">return</span> IObjectFactory::GetInterfaceVersion() &gt; 1 ? ptr-&gt;<a class="code" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a>&lt; IObjectFactory &gt;() : ptr;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; }</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#aa906cf2b9efb958e49fd8c5122b8db96"> 62</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#a272e32106a7573db514736bfb68a1673">pcIObjectFactory</a> <a class="code" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#aa906cf2b9efb958e49fd8c5122b8db96">MakeObjectFactory</a>( <a class="code" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html">pcIObjectFactory_base</a> ptr ) {</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">return</span> MakeObjectFactory( const_cast&lt; pIObjectFactory_base &gt;( ptr ) );</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; }</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#ab61b0ddca88dc76f0499d317f189b918"> 72</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> <a class="code" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#ab61b0ddca88dc76f0499d317f189b918">GetInterfaceID</a>() { <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCommon.html#a3eaf39cde126acb079462286763ca44a">kIObjectFactoryID</a>; }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#a81c25d76569a9249ab3c8a3e4490c73d"> 78</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> <a class="code" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#a81c25d76569a9249ab3c8a3e4490c73d">GetInterfaceVersion</a>() { <span class="keywordflow">return</span> 1; }</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#a95fcbab435329d052ab42028da563c02"> 80</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#a95fcbab435329d052ab42028da563c02">~IObjectFactory_v1</a>() __NOTHROW__ {};</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; </div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor"> #ifdef FRIEND_CLASS_DECLARATION</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; FRIEND_CLASS_DECLARATION();</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <a class="code" href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a>();</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; };</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;}</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor">#endif // IObjectFactory_h__</span></div><div class="ttc" id="namespaceAdobeXMPCommon_html_aea1d692da07b844d1f642b47ea6a91bd"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">AdobeXMPCommon::uint64</a></div><div class="ttdeci">XMP_Uns64 uint64</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00142">XMPCommonDefines.h:142</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IObjectFactory__v1_html_ab61b0ddca88dc76f0499d317f189b918"><div class="ttname"><a href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#ab61b0ddca88dc76f0499d317f189b918">AdobeXMPCommon::IObjectFactory_v1::GetInterfaceID</a></div><div class="ttdeci">static XMP_PRIVATE uint64 GetInterfaceID()</div><div class="ttdoc">Returns the unique ID assigned to the interface. </div><div class="ttdef"><b>Definition:</b> <a href="IObjectFactory_8h_source.html#l00072">IObjectFactory.h:72</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IObjectFactory__v1_html_aa906cf2b9efb958e49fd8c5122b8db96"><div class="ttname"><a href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#aa906cf2b9efb958e49fd8c5122b8db96">AdobeXMPCommon::IObjectFactory_v1::MakeObjectFactory</a></div><div class="ttdeci">static XMP_PRIVATE pcIObjectFactory MakeObjectFactory(pcIObjectFactory_base ptr)</div><div class="ttdef"><b>Definition:</b> <a href="IObjectFactory_8h_source.html#l00062">IObjectFactory.h:62</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html_aac6a4810b1f485f147ab833be63f4d7b"><div class="ttname"><a href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a></div><div class="ttdeci">#define XMP_PUBLIC</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00188">XMP_Environment.h:188</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a5a929113d3d50bda3fb7135a5c8b24a2"><div class="ttname"><a href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></div><div class="ttdeci">#define __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00117">XMPCommonDefines.h:117</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IObjectFactory__v1_html_a95fcbab435329d052ab42028da563c02"><div class="ttname"><a href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#a95fcbab435329d052ab42028da563c02">AdobeXMPCommon::IObjectFactory_v1::~IObjectFactory_v1</a></div><div class="ttdeci">virtual ~IObjectFactory_v1() __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="IObjectFactory_8h_source.html#l00080">IObjectFactory.h:80</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IObjectFactory__v1_html_a2dc282621cdfef44b424ac91efb965a1"><div class="ttname"><a href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#a2dc282621cdfef44b424ac91efb965a1">AdobeXMPCommon::IObjectFactory_v1::MakeObjectFactory</a></div><div class="ttdeci">static XMP_PRIVATE pIObjectFactory MakeObjectFactory(pIObjectFactory_base ptr)</div><div class="ttdef"><b>Definition:</b> <a href="IObjectFactory_8h_source.html#l00059">IObjectFactory.h:59</a></div></div>
+<div class="ttc" id="XMPCommonFwdDeclarations_8h_html"><div class="ttname"><a href="XMPCommonFwdDeclarations_8h.html">XMPCommonFwdDeclarations.h</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IVersionable_html_ad6539461695decfaea8a44798db51e54"><div class="ttname"><a href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">AdobeXMPCommon::IVersionable::GetInterfacePointer</a></div><div class="ttdeci">XMP_PRIVATE requestedInterface * GetInterfacePointer()</div><div class="ttdoc">Get the raw pointer to an interface object implementing the requested version. </div><div class="ttdef"><b>Definition:</b> <a href="IVersionable_8h_source.html#l00038">IVersionable.h:38</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a272e32106a7573db514736bfb68a1673"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a272e32106a7573db514736bfb68a1673">AdobeXMPCommon::pcIObjectFactory</a></div><div class="ttdeci">const IObjectFactory * pcIObjectFactory</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00056">XMPCommonFwdDeclarations.h:56</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IObjectFactory__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IObjectFactory__v1.html">AdobeXMPCommon::IObjectFactory_v1</a></div><div class="ttdoc">Version1 of a interface that represents a factory to create various artifacts defined within AdobeXMP...</div><div class="ttdef"><b>Definition:</b> <a href="IObjectFactory_8h_source.html#l00025">IObjectFactory.h:25</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a3eaf39cde126acb079462286763ca44a"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a3eaf39cde126acb079462286763ca44a">AdobeXMPCommon::kIObjectFactoryID</a></div><div class="ttdeci">static const uint64 kIObjectFactoryID(0x6e4f626a46616374)</div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></div><div class="ttdoc">Version1 of the interface that represents an error/warning encountered during processing. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00026">IError.h:26</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a1c85c2f558b495c3d41eabe692a96cf2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a></div><div class="ttdeci">uint32 sizet</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00146">XMPCommonDefines.h:146</a></div></div>
+<div class="ttc" id="IVersionable_8h_html"><div class="ttname"><a href="IVersionable_8h.html">IVersionable.h</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a0863cf1c24764306839671985373b93f"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a0863cf1c24764306839671985373b93f">AdobeXMPCommon::pIObjectFactory</a></div><div class="ttdeci">IObjectFactory * pIObjectFactory</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00055">XMPCommonFwdDeclarations.h:55</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IObjectFactory__v1_html_a81c25d76569a9249ab3c8a3e4490c73d"><div class="ttname"><a href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#a81c25d76569a9249ab3c8a3e4490c73d">AdobeXMPCommon::IObjectFactory_v1::GetInterfaceVersion</a></div><div class="ttdeci">static XMP_PRIVATE uint32 GetInterfaceVersion()</div><div class="ttdoc">Returns the version of the interface. </div><div class="ttdef"><b>Definition:</b> <a href="IObjectFactory_8h_source.html#l00078">IObjectFactory.h:78</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html"><div class="ttname"><a href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a></div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00019">IConfigurable.h:19</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a89e9297f497c2b3f1179788c31d24da4"><div class="ttname"><a href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a></div><div class="ttdeci">#define REQ_FRIEND_CLASS_DECLARATION()</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00107">XMPCommonDefines.h:107</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IVersionable_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></div><div class="ttdoc">Interface that serves as the base interface for all the externally exposed interfaces which needs to ...</div><div class="ttdef"><b>Definition:</b> <a href="IVersionable_8h_source.html#l00028">IVersionable.h:28</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html_a917e8e3f02685ec390fa3aee270f7747"><div class="ttname"><a href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a></div><div class="ttdeci">#define XMP_PRIVATE</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00189">XMP_Environment.h:189</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IUTF8String__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></div><div class="ttdoc">Version1 of the interface that represents an UTF8String. </div><div class="ttdef"><b>Definition:</b> <a href="IUTF8String_8h_source.html#l00023">IUTF8String.h:23</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a0b1bbe96e1a757e66974c2f076afe4d2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">AdobeXMPCommon::uint32</a></div><div class="ttdeci">XMP_Uns32 uint32</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00144">XMPCommonDefines.h:144</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/IPathSegment_8h.html b/docs/API/IPathSegment_8h.html
new file mode 100755
index 0000000..0ca272f
--- /dev/null
+++ b/docs/API/IPathSegment_8h.html
@@ -0,0 +1,68 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/IPathSegment.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('IPathSegment_8h.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">IPathSegment.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCore/XMPCoreFwdDeclarations.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="ISharedObject_8h_source.html">XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="IVersionable_8h_source.html">XMPCommon/Interfaces/BaseInterfaces/IVersionable.h</a>&quot;</code><br />
+</div>
+<p><a href="IPathSegment_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html">AdobeXMPCore::IPathSegment_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version1 of the interface that represents one segment in a path to a node into the XMP tree. <a href="classAdobeXMPCore_1_1IPathSegment__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceAdobeXMPCore"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/IPathSegment_8h_source.html b/docs/API/IPathSegment_8h_source.html
new file mode 100755
index 0000000..da43d99
--- /dev/null
+++ b/docs/API/IPathSegment_8h_source.html
@@ -0,0 +1,75 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/IPathSegment.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('IPathSegment_8h_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">IPathSegment.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="IPathSegment_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __IPathSegment_h__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __IPathSegment_h__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright 2014 Adobe Systems Incorporated</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// All Rights Reserved.</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="XMPCoreFwdDeclarations_8h.html">XMPCore/XMPCoreFwdDeclarations.h</a>&quot;</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ISharedObject_8h.html">XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h</a>&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="IVersionable_8h.html">XMPCommon/Interfaces/BaseInterfaces/IVersionable.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a> {</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IPathSegment__v1.html"> 24</a></span>&#160; <span class="keyword">class </span><a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="classAdobeXMPCore_1_1IPathSegment__v1.html">IPathSegment_v1</a></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1ISharedObject.html">ISharedObject</a></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; , <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IVersionable.html">IVersionable</a></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; {</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9"> 33</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">enum</span> {</div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9ab178c4df00dc4b10c7c5937d82499a84"> 35</a></span>&#160; kPSTNone = 0,</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9ac351f884bf338c15a4a619e89216e2b9"> 38</a></span>&#160; kPSTProperty = 1,</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; </div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9ae86feb38a46c4fb2ecb35bb651dca161"> 41</a></span>&#160; kPSTArrayIndex = 1 &lt;&lt; 1,</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; </div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9a8d1e54d4a1f97847f03eb7ff36c263a7"> 44</a></span>&#160; kPSTQualifier = 1 &lt;&lt; 2,</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; </div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9a2eb4a4d89f26c720eb393eb56997ba09"> 47</a></span>&#160; kPSTQualifierSelector = 1 &lt;&lt; 3,</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9a6c99b2ecc364a71db39b2e9ff0a94880"> 50</a></span>&#160; kPSTAll = <a class="code" href="namespaceAdobeXMPCommon.html#a3e31c8b25cbf95c42b8e439071bdf865">kAllBits</a></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; } <a class="code" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9">ePathSegmentType</a>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL GetNameSpace() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL GetName() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">virtual</span> ePathSegmentType APICALL GetType() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL GetIndex() const <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a> = 0;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; virtual <a class="code" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL GetValue() const = 0;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; </div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; virtual <a class="code" href="namespaceAdobeXMPCore.html#afcc8116b5f4020c02bc96bd91a4d5235">pIPathSegment</a> APICALL GetActualIPathSegment() <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a> = 0;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#a6ae7c996eea34342b41719bcc4bf766a">pcIPathSegment</a> GetActualIPathSegment() const __NOTHROW__ {</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCore_1_1IPathSegment__v1.html">IPathSegment_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;GetActualIPathSegment();</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore__Int.html#a7b86a8447002d8c63c837cffda64dd2a">AdobeXMPCore_Int::pIPathSegment_I</a> APICALL GetIPathSegment_I() <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a> = 0;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore__Int.html#a8c2801e50baa3f7979aa4a31225bc25d">AdobeXMPCore_Int::pcIPathSegment_I</a> GetIPathSegment_I() <span class="keyword">const</span> __NOTHROW__ {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCore_1_1IPathSegment__v1.html">IPathSegment_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;GetIPathSegment_I();</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; </div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#ae339cdf18168ecc8197e651df8f43854">spIPathSegment</a> MakeShared( <a class="code" href="classAdobeXMPCore_1_1IPathSegment__v1.html">pIPathSegment_base</a> ptr );</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#a98ce40154ef1c1d92f2077c8211f2a9c">spcIPathSegment</a> MakeShared( <a class="code" href="classAdobeXMPCore_1_1IPathSegment__v1.html">pcIPathSegment_base</a> ptr ) {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">return</span> MakeShared( const_cast&lt; pIPathSegment_base &gt;( ptr ) );</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> GetInterfaceID() { <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a20562f7f885eacd89465270be790c31f">kIPathSegmentID</a>; }</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> GetInterfaceVersion() { <span class="keywordflow">return</span> 1; }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="comment">// static factory functions</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="comment">// Factories to create the specific segments</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#a98ce40154ef1c1d92f2077c8211f2a9c">spcIPathSegment</a> CreatePropertyPathSegment( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength );</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#a98ce40154ef1c1d92f2077c8211f2a9c">spcIPathSegment</a> CreateArrayIndexPathSegment( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> index );</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#a98ce40154ef1c1d92f2077c8211f2a9c">spcIPathSegment</a> CreateQualifierPathSegment( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength );</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#a98ce40154ef1c1d92f2077c8211f2a9c">spcIPathSegment</a> CreateQualifierSelectorPathSegment( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name,</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * value, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> valueLength );</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a1ef63ec40233a30d4ec9f165e5332a43"> 208</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a1ef63ec40233a30d4ec9f165e5332a43">~IPathSegment_v1</a>() __NOTHROW__ {}</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">pcIUTF8String_base</a> APICALL getNameSpace( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">pcIUTF8String_base</a> APICALL getName( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL getType( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">pcIUTF8String_base</a> APICALL getValue( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="preprocessor"> #ifdef FRIEND_CLASS_DECLARATION</span></div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; FRIEND_CLASS_DECLARATION();</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <a class="code" href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a>();</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; };</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;}</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="preprocessor">#endif // __IPathSegment_h__</span></div><div class="ttc" id="namespaceAdobeXMPCommon_html_aea1d692da07b844d1f642b47ea6a91bd"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">AdobeXMPCommon::uint64</a></div><div class="ttdeci">XMP_Uns64 uint64</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00142">XMPCommonDefines.h:142</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_afcc8116b5f4020c02bc96bd91a4d5235"><div class="ttname"><a href="namespaceAdobeXMPCore.html#afcc8116b5f4020c02bc96bd91a4d5235">AdobeXMPCore::pIPathSegment</a></div><div class="ttdeci">IPathSegment * pIPathSegment</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00039">XMPCoreFwdDeclarations.h:39</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_a7b86a8447002d8c63c837cffda64dd2a"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#a7b86a8447002d8c63c837cffda64dd2a">AdobeXMPCore_Int::pIPathSegment_I</a></div><div class="ttdeci">IPathSegment_I * pIPathSegment_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00227">XMPCoreFwdDeclarations.h:227</a></div></div>
+<div class="ttc" id="ISharedObject_8h_html"><div class="ttname"><a href="ISharedObject_8h.html">ISharedObject.h</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html_aac6a4810b1f485f147ab833be63f4d7b"><div class="ttname"><a href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a></div><div class="ttdeci">#define XMP_PUBLIC</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00188">XMP_Environment.h:188</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a5a929113d3d50bda3fb7135a5c8b24a2"><div class="ttname"><a href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></div><div class="ttdeci">#define __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00117">XMPCommonDefines.h:117</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a98ce40154ef1c1d92f2077c8211f2a9c"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a98ce40154ef1c1d92f2077c8211f2a9c">AdobeXMPCore::spcIPathSegment</a></div><div class="ttdeci">shared_ptr&lt; const IPathSegment &gt; spcIPathSegment</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00042">XMPCoreFwdDeclarations.h:42</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a91aaab1f1d7030b26df65258bd131a63"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">AdobeXMPCommon::spcIUTF8String</a></div><div class="ttdeci">shared_ptr&lt; const IUTF8String &gt; spcIUTF8String</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00078">XMPCommonFwdDeclarations.h:78</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a3e31c8b25cbf95c42b8e439071bdf865"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a3e31c8b25cbf95c42b8e439071bdf865">AdobeXMPCommon::kAllBits</a></div><div class="ttdeci">static const uint32 kAllBits(0xFFFFFFFF)</div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html"><div class="ttname"><a href="namespaceAdobeXMPCore.html">AdobeXMPCore</a></div><div class="ttdef"><b>Definition:</b> <a href="IArrayNode_8h_source.html#l00016">IArrayNode.h:16</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IPathSegment__v1_html_a8a9f850adf6f3f510298df13896b76b9"><div class="ttname"><a href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9">AdobeXMPCore::IPathSegment_v1::ePathSegmentType</a></div><div class="ttdeci">ePathSegmentType</div><div class="ttdoc">This enumeration represents the types of a path segment. </div><div class="ttdef"><b>Definition:</b> <a href="IPathSegment_8h_source.html#l00033">IPathSegment.h:33</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></div><div class="ttdoc">Version1 of the interface that represents an error/warning encountered during processing. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00026">IError.h:26</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a1c85c2f558b495c3d41eabe692a96cf2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a></div><div class="ttdeci">uint32 sizet</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00146">XMPCommonDefines.h:146</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1ISharedObject_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></div><div class="ttdoc">Interface that serves as the base interface of all the externally exposed interfaces. </div><div class="ttdef"><b>Definition:</b> <a href="ISharedObject_8h_source.html#l00027">ISharedObject.h:27</a></div></div>
+<div class="ttc" id="IVersionable_8h_html"><div class="ttname"><a href="IVersionable_8h.html">IVersionable.h</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a89e9297f497c2b3f1179788c31d24da4"><div class="ttname"><a href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a></div><div class="ttdeci">#define REQ_FRIEND_CLASS_DECLARATION()</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00107">XMPCommonDefines.h:107</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a20562f7f885eacd89465270be790c31f"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a20562f7f885eacd89465270be790c31f">AdobeXMPCore::kIPathSegmentID</a></div><div class="ttdeci">static const uint64 kIPathSegmentID(0x6350617468536567)</div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a6ae7c996eea34342b41719bcc4bf766a"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a6ae7c996eea34342b41719bcc4bf766a">AdobeXMPCore::pcIPathSegment</a></div><div class="ttdeci">const IPathSegment * pcIPathSegment</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00040">XMPCoreFwdDeclarations.h:40</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IVersionable_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></div><div class="ttdoc">Interface that serves as the base interface for all the externally exposed interfaces which needs to ...</div><div class="ttdef"><b>Definition:</b> <a href="IVersionable_8h_source.html#l00028">IVersionable.h:28</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_a8c2801e50baa3f7979aa4a31225bc25d"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#a8c2801e50baa3f7979aa4a31225bc25d">AdobeXMPCore_Int::pcIPathSegment_I</a></div><div class="ttdeci">const IPathSegment_I * pcIPathSegment_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00229">XMPCoreFwdDeclarations.h:229</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ae339cdf18168ecc8197e651df8f43854"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ae339cdf18168ecc8197e651df8f43854">AdobeXMPCore::spIPathSegment</a></div><div class="ttdeci">shared_ptr&lt; IPathSegment &gt; spIPathSegment</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00041">XMPCoreFwdDeclarations.h:41</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html_a917e8e3f02685ec390fa3aee270f7747"><div class="ttname"><a href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a></div><div class="ttdeci">#define XMP_PRIVATE</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00189">XMP_Environment.h:189</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IUTF8String__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></div><div class="ttdoc">Version1 of the interface that represents an UTF8String. </div><div class="ttdef"><b>Definition:</b> <a href="IUTF8String_8h_source.html#l00023">IUTF8String.h:23</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IPathSegment__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1IPathSegment__v1.html">AdobeXMPCore::IPathSegment_v1</a></div><div class="ttdoc">Version1 of the interface that represents one segment in a path to a node into the XMP tree...</div><div class="ttdef"><b>Definition:</b> <a href="IPathSegment_8h_source.html#l00024">IPathSegment.h:24</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IPathSegment__v1_html_a1ef63ec40233a30d4ec9f165e5332a43"><div class="ttname"><a href="classAdobeXMPCore_1_1IPathSegment__v1.html#a1ef63ec40233a30d4ec9f165e5332a43">AdobeXMPCore::IPathSegment_v1::~IPathSegment_v1</a></div><div class="ttdeci">virtual ~IPathSegment_v1() __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="IPathSegment_8h_source.html#l00208">IPathSegment.h:208</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a0b1bbe96e1a757e66974c2f076afe4d2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">AdobeXMPCommon::uint32</a></div><div class="ttdeci">XMP_Uns32 uint32</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00144">XMPCommonDefines.h:144</a></div></div>
+<div class="ttc" id="XMPCoreFwdDeclarations_8h_html"><div class="ttname"><a href="XMPCoreFwdDeclarations_8h.html">XMPCoreFwdDeclarations.h</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/IPath_8h.html b/docs/API/IPath_8h.html
new file mode 100755
index 0000000..d8e6ae7
--- /dev/null
+++ b/docs/API/IPath_8h.html
@@ -0,0 +1,68 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/IPath.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('IPath_8h.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">IPath.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCore/XMPCoreFwdDeclarations.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="ISharedObject_8h_source.html">XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="IVersionable_8h_source.html">XMPCommon/Interfaces/BaseInterfaces/IVersionable.h</a>&quot;</code><br />
+</div>
+<p><a href="IPath_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IPath__v1.html">AdobeXMPCore::IPath_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version1 of the interface that provides an easy iterative description of a specific path into the XMP tree. <a href="classAdobeXMPCore_1_1IPath__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceAdobeXMPCore"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/IPath_8h_source.html b/docs/API/IPath_8h_source.html
new file mode 100755
index 0000000..801b685
--- /dev/null
+++ b/docs/API/IPath_8h_source.html
@@ -0,0 +1,79 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/IPath.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('IPath_8h_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">IPath.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="IPath_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __IPath_h__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __IPath_h__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright 2014 Adobe Systems Incorporated</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// All Rights Reserved.</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="XMPCoreFwdDeclarations_8h.html">XMPCore/XMPCoreFwdDeclarations.h</a>&quot;</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ISharedObject_8h.html">XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h</a>&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="IVersionable_8h.html">XMPCommon/Interfaces/BaseInterfaces/IVersionable.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a> {</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IPath__v1.html"> 26</a></span>&#160; <span class="keyword">class </span><a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="classAdobeXMPCore_1_1IPath__v1.html">IPath_v1</a></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1ISharedObject.html">ISharedObject</a></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; , <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IVersionable.html">IVersionable</a></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; {</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#a22f9e572045a61aa3cfc629a0d877d72">spcINameSpacePrefixMap</a> APICALL RegisterNameSpacePrefixMap( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCore.html#a22f9e572045a61aa3cfc629a0d877d72">spcINameSpacePrefixMap</a> &amp; map ) = 0;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL Serialize( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCore.html#a22f9e572045a61aa3cfc629a0d877d72">spcINameSpacePrefixMap</a> &amp; map = <a class="code" href="namespaceAdobeXMPCore.html#a22f9e572045a61aa3cfc629a0d877d72">spcINameSpacePrefixMap</a>() ) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL AppendPathSegment( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCore.html#a98ce40154ef1c1d92f2077c8211f2a9c">spcIPathSegment</a> &amp; segment ) = 0;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#a98ce40154ef1c1d92f2077c8211f2a9c">spcIPathSegment</a> APICALL RemovePathSegment( <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> index ) = 0;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#a98ce40154ef1c1d92f2077c8211f2a9c">spcIPathSegment</a> APICALL GetPathSegment( <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> index ) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL Size() <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a> = 0;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IPath__v1.html#ac6b2215fb0cf7e14d96915bcbdd6d5c8"> 89</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keywordtype">bool</span> <a class="code" href="classAdobeXMPCore_1_1IPath__v1.html#ac6b2215fb0cf7e14d96915bcbdd6d5c8">IsEmpty</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">return</span> Size() == 0;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL Clear() __NOTHROW__ = 0;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#aa54f5ed241da9437ad01c1047a199f56">spIPath</a> APICALL Clone( <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> startingIndex = 1, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> countOfSegments = <a class="code" href="namespaceAdobeXMPCommon.html#a509d67aa4eb5b6a31db63f448d2a2343">kMaxSize</a> ) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; </div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#abce7d351f3258b3edfb1c96e7d2d4945">pIPath</a> APICALL GetActualIPath() __NOTHROW__ = 0;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#a277f8ceb2e7074edb4ce6c3bc906a71c">pcIPath</a> GetActualIPath() <span class="keyword">const</span> __NOTHROW__ {</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCore_1_1IPath__v1.html">IPath_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;GetActualIPath();</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; }</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore__Int.html#ac72d014801c316df78e38687d0c11aa7">AdobeXMPCore_Int::pIPath_I</a> APICALL GetIPath_I() __NOTHROW__ = 0;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore__Int.html#aa917512a62ab131edf95fab4e6ba7067">AdobeXMPCore_Int::pcIPath_I</a> GetIPath_I() <span class="keyword">const</span> __NOTHROW__ {</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCore_1_1IPath__v1.html">IPath_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;GetIPath_I();</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; }</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; </div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#aa54f5ed241da9437ad01c1047a199f56">spIPath</a> MakeShared( <a class="code" href="classAdobeXMPCore_1_1IPath__v1.html">pIPath_base</a> ptr );</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> MakeShared( <a class="code" href="classAdobeXMPCore_1_1IPath__v1.html">pcIPath_base</a> ptr ) {</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">return</span> MakeShared( const_cast&lt; pIPath_base &gt;( ptr ) );</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; }</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> GetInterfaceID() { <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a169bb4bbf2a32d4201625eca17bde615">kIPathID</a>; }</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> GetInterfaceVersion() { <span class="keywordflow">return</span> 1; }</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="comment">// static factory functions</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#aa54f5ed241da9437ad01c1047a199f56">spIPath</a> CreatePath();</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#aa54f5ed241da9437ad01c1047a199f56">spIPath</a> ParsePath( <span class="keyword">const</span> <span class="keywordtype">char</span> * path, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pathLength, <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCore.html#a22f9e572045a61aa3cfc629a0d877d72">spcINameSpacePrefixMap</a> &amp; map );</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IPath__v1.html#ad2d1a79e6c8e270c1cb9acee09e7881e"> 192</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1IPath__v1.html#ad2d1a79e6c8e270c1cb9acee09e7881e">~IPath_v1</a>() __NOTHROW__ {}</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">pcINameSpacePrefixMap_base</a> APICALL registerNameSpacePrefixMap( <a class="code" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">pcINameSpacePrefixMap_base</a> map, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">pIUTF8String_base</a> APICALL serialize( <a class="code" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">pcINameSpacePrefixMap_base</a> map, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL appendPathSegment( <a class="code" href="classAdobeXMPCore_1_1IPathSegment__v1.html">pcIPathSegment_base</a> segment, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1IPathSegment__v1.html">pcIPathSegment_base</a> APICALL removePathSegment( <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> index, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1IPathSegment__v1.html">pcIPathSegment_base</a> APICALL getPathSegment( <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> index, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1IPath__v1.html">pIPath_base</a> APICALL clone( <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> startingIndex, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> countOfSegemetns, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="preprocessor"> #ifdef FRIEND_CLASS_DECLARATION</span></div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; FRIEND_CLASS_DECLARATION();</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a>();</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; };</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;}</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="preprocessor">#endif // __IPath_h__</span></div><div class="ttc" id="namespaceAdobeXMPCommon_html_aea1d692da07b844d1f642b47ea6a91bd"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">AdobeXMPCommon::uint64</a></div><div class="ttdeci">XMP_Uns64 uint64</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00142">XMPCommonDefines.h:142</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a509d67aa4eb5b6a31db63f448d2a2343"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a509d67aa4eb5b6a31db63f448d2a2343">AdobeXMPCommon::kMaxSize</a></div><div class="ttdeci">const sizet kMaxSize((sizet)-1)</div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IPath__v1_html_ac6b2215fb0cf7e14d96915bcbdd6d5c8"><div class="ttname"><a href="classAdobeXMPCore_1_1IPath__v1.html#ac6b2215fb0cf7e14d96915bcbdd6d5c8">AdobeXMPCore::IPath_v1::IsEmpty</a></div><div class="ttdeci">XMP_PRIVATE bool IsEmpty() const </div><div class="ttdoc">To check whether path is empty or not. </div><div class="ttdef"><b>Definition:</b> <a href="IPath_8h_source.html#l00089">IPath.h:89</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IPath__v1_html_ad2d1a79e6c8e270c1cb9acee09e7881e"><div class="ttname"><a href="classAdobeXMPCore_1_1IPath__v1.html#ad2d1a79e6c8e270c1cb9acee09e7881e">AdobeXMPCore::IPath_v1::~IPath_v1</a></div><div class="ttdeci">virtual ~IPath_v1() __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="IPath_8h_source.html#l00192">IPath.h:192</a></div></div>
+<div class="ttc" id="ISharedObject_8h_html"><div class="ttname"><a href="ISharedObject_8h.html">ISharedObject.h</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html_aac6a4810b1f485f147ab833be63f4d7b"><div class="ttname"><a href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a></div><div class="ttdeci">#define XMP_PUBLIC</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00188">XMP_Environment.h:188</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a5a929113d3d50bda3fb7135a5c8b24a2"><div class="ttname"><a href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></div><div class="ttdeci">#define __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00117">XMPCommonDefines.h:117</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a98ce40154ef1c1d92f2077c8211f2a9c"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a98ce40154ef1c1d92f2077c8211f2a9c">AdobeXMPCore::spcIPathSegment</a></div><div class="ttdeci">shared_ptr&lt; const IPathSegment &gt; spcIPathSegment</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00042">XMPCoreFwdDeclarations.h:42</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_ac72d014801c316df78e38687d0c11aa7"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#ac72d014801c316df78e38687d0c11aa7">AdobeXMPCore_Int::pIPath_I</a></div><div class="ttdeci">IPath_I * pIPath_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00232">XMPCoreFwdDeclarations.h:232</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a22f9e572045a61aa3cfc629a0d877d72"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a22f9e572045a61aa3cfc629a0d877d72">AdobeXMPCore::spcINameSpacePrefixMap</a></div><div class="ttdeci">shared_ptr&lt; const INameSpacePrefixMap &gt; spcINameSpacePrefixMap</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00030">XMPCoreFwdDeclarations.h:30</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a277f8ceb2e7074edb4ce6c3bc906a71c"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a277f8ceb2e7074edb4ce6c3bc906a71c">AdobeXMPCore::pcIPath</a></div><div class="ttdeci">const IPath * pcIPath</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00052">XMPCoreFwdDeclarations.h:52</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aa54f5ed241da9437ad01c1047a199f56"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aa54f5ed241da9437ad01c1047a199f56">AdobeXMPCore::spIPath</a></div><div class="ttdeci">shared_ptr&lt; IPath &gt; spIPath</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00053">XMPCoreFwdDeclarations.h:53</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html"><div class="ttname"><a href="namespaceAdobeXMPCore.html">AdobeXMPCore</a></div><div class="ttdef"><b>Definition:</b> <a href="IArrayNode_8h_source.html#l00016">IArrayNode.h:16</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INameSpacePrefixMap__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">AdobeXMPCore::INameSpacePrefixMap_v1</a></div><div class="ttdoc">Version1 of the interface that represents map where each entry consists of prefix string as the key a...</div><div class="ttdef"><b>Definition:</b> <a href="INameSpacePrefixMap_8h_source.html#l00026">INameSpacePrefixMap.h:26</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_aa917512a62ab131edf95fab4e6ba7067"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#aa917512a62ab131edf95fab4e6ba7067">AdobeXMPCore_Int::pcIPath_I</a></div><div class="ttdeci">const IPath_I * pcIPath_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00234">XMPCoreFwdDeclarations.h:234</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></div><div class="ttdoc">Version1 of the interface that represents an error/warning encountered during processing. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00026">IError.h:26</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a1c85c2f558b495c3d41eabe692a96cf2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a></div><div class="ttdeci">uint32 sizet</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00146">XMPCommonDefines.h:146</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1ISharedObject_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></div><div class="ttdoc">Interface that serves as the base interface of all the externally exposed interfaces. </div><div class="ttdef"><b>Definition:</b> <a href="ISharedObject_8h_source.html#l00027">ISharedObject.h:27</a></div></div>
+<div class="ttc" id="IVersionable_8h_html"><div class="ttname"><a href="IVersionable_8h.html">IVersionable.h</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aa01e44df0f17d2a1d959710ec856261c"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">AdobeXMPCore::spcIPath</a></div><div class="ttdeci">shared_ptr&lt; const IPath &gt; spcIPath</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00054">XMPCoreFwdDeclarations.h:54</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a169bb4bbf2a32d4201625eca17bde615"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a169bb4bbf2a32d4201625eca17bde615">AdobeXMPCore::kIPathID</a></div><div class="ttdeci">static const uint64 kIPathID(0x6350617468202020)</div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_abce7d351f3258b3edfb1c96e7d2d4945"><div class="ttname"><a href="namespaceAdobeXMPCore.html#abce7d351f3258b3edfb1c96e7d2d4945">AdobeXMPCore::pIPath</a></div><div class="ttdeci">IPath * pIPath</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00051">XMPCoreFwdDeclarations.h:51</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a89e9297f497c2b3f1179788c31d24da4"><div class="ttname"><a href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a></div><div class="ttdeci">#define REQ_FRIEND_CLASS_DECLARATION()</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00107">XMPCommonDefines.h:107</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IPath__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1IPath__v1.html">AdobeXMPCore::IPath_v1</a></div><div class="ttdoc">Version1 of the interface that provides an easy iterative description of a specific path into the XMP...</div><div class="ttdef"><b>Definition:</b> <a href="IPath_8h_source.html#l00026">IPath.h:26</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IVersionable_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></div><div class="ttdoc">Interface that serves as the base interface for all the externally exposed interfaces which needs to ...</div><div class="ttdef"><b>Definition:</b> <a href="IVersionable_8h_source.html#l00028">IVersionable.h:28</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html_a917e8e3f02685ec390fa3aee270f7747"><div class="ttname"><a href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a></div><div class="ttdeci">#define XMP_PRIVATE</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00189">XMP_Environment.h:189</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IUTF8String__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></div><div class="ttdoc">Version1 of the interface that represents an UTF8String. </div><div class="ttdef"><b>Definition:</b> <a href="IUTF8String_8h_source.html#l00023">IUTF8String.h:23</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IPathSegment__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1IPathSegment__v1.html">AdobeXMPCore::IPathSegment_v1</a></div><div class="ttdoc">Version1 of the interface that represents one segment in a path to a node into the XMP tree...</div><div class="ttdef"><b>Definition:</b> <a href="IPathSegment_8h_source.html#l00024">IPathSegment.h:24</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a0b1bbe96e1a757e66974c2f076afe4d2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">AdobeXMPCommon::uint32</a></div><div class="ttdeci">XMP_Uns32 uint32</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00144">XMPCommonDefines.h:144</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_ac9d7760a1805b1e28828511a2c8c5588"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">AdobeXMPCommon::spIUTF8String</a></div><div class="ttdeci">shared_ptr&lt; IUTF8String &gt; spIUTF8String</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00077">XMPCommonFwdDeclarations.h:77</a></div></div>
+<div class="ttc" id="XMPCoreFwdDeclarations_8h_html"><div class="ttname"><a href="XMPCoreFwdDeclarations_8h.html">XMPCoreFwdDeclarations.h</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/ISharedObject_8h.html b/docs/API/ISharedObject_8h.html
new file mode 100755
index 0000000..6b74e85
--- /dev/null
+++ b/docs/API/ISharedObject_8h.html
@@ -0,0 +1,66 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('ISharedObject_8h.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">ISharedObject.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommon/XMPCommonFwdDeclarations.h</a>&quot;</code><br />
+</div>
+<p><a href="ISharedObject_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface that serves as the base interface of all the externally exposed interfaces. <a href="classAdobeXMPCommon_1_1ISharedObject.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceAdobeXMPCommon"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/ISharedObject_8h_source.html b/docs/API/ISharedObject_8h_source.html
new file mode 100755
index 0000000..d708602
--- /dev/null
+++ b/docs/API/ISharedObject_8h_source.html
@@ -0,0 +1,58 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('ISharedObject_8h_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">ISharedObject.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="ISharedObject_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __ISharedObject_h__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __ISharedObject_h__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright 2014 Adobe Systems Incorporated</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// All Rights Reserved.</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="XMPCommonFwdDeclarations_8h.html">XMPCommon/XMPCommonFwdDeclarations.h</a>&quot;</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a> {</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1ISharedObject.html"> 27</a></span>&#160; <span class="keyword">class </span><a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="classAdobeXMPCommon_1_1ISharedObject.html">ISharedObject</a> {</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL Acquire() <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a> = 0;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL Release() <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon__Int.html#ada4b051c58f05ef398453930451bc13d">AdobeXMPCommon_Int::pISharedObject_I</a> APICALL GetISharedObject_I() __NOTHROW__ = 0;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCommon__Int.html#affd72b6c7abbc84fdef10b5a607cd432">AdobeXMPCommon_Int::pcISharedObject_I</a> GetISharedObject_I() <span class="keyword">const</span> __NOTHROW__ {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCommon_1_1ISharedObject.html">ISharedObject</a> * <span class="keyword">&gt;</span>( this )-&gt;GetISharedObject_I();</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; }</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="classAdobeXMPCommon_1_1ISharedObject.html">ISharedObject</a>() __NOTHROW__ = 0;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor"> #ifdef FRIEND_CLASS_DECLARATION</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; FRIEND_CLASS_DECLARATION();</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a>();</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; };</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31"> 67</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31">ISharedObject::~ISharedObject</a>() <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a> { }</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;};</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor">#endif // __ISharedObject_h__</span></div><div class="ttc" id="namespaceAdobeXMPCommon__Int_html_ada4b051c58f05ef398453930451bc13d"><div class="ttname"><a href="namespaceAdobeXMPCommon__Int.html#ada4b051c58f05ef398453930451bc13d">AdobeXMPCommon_Int::pISharedObject_I</a></div><div class="ttdeci">ISharedObject_I * pISharedObject_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00147">XMPCommonFwdDeclarations.h:147</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1ISharedObject_html_a5869ff89d0b7dd0a7b525401a1d57b31"><div class="ttname"><a href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31">AdobeXMPCommon::ISharedObject::~ISharedObject</a></div><div class="ttdeci">virtual ~ISharedObject() __NOTHROW__=0</div><div class="ttdef"><b>Definition:</b> <a href="ISharedObject_8h_source.html#l00067">ISharedObject.h:67</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html_aac6a4810b1f485f147ab833be63f4d7b"><div class="ttname"><a href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a></div><div class="ttdeci">#define XMP_PUBLIC</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00188">XMP_Environment.h:188</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon__Int_html_affd72b6c7abbc84fdef10b5a607cd432"><div class="ttname"><a href="namespaceAdobeXMPCommon__Int.html#affd72b6c7abbc84fdef10b5a607cd432">AdobeXMPCommon_Int::pcISharedObject_I</a></div><div class="ttdeci">const ISharedObject_I * pcISharedObject_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00149">XMPCommonFwdDeclarations.h:149</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a5a929113d3d50bda3fb7135a5c8b24a2"><div class="ttname"><a href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></div><div class="ttdeci">#define __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00117">XMPCommonDefines.h:117</a></div></div>
+<div class="ttc" id="XMPCommonFwdDeclarations_8h_html"><div class="ttname"><a href="XMPCommonFwdDeclarations_8h.html">XMPCommonFwdDeclarations.h</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1ISharedObject_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></div><div class="ttdoc">Interface that serves as the base interface of all the externally exposed interfaces. </div><div class="ttdef"><b>Definition:</b> <a href="ISharedObject_8h_source.html#l00027">ISharedObject.h:27</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html"><div class="ttname"><a href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a></div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00019">IConfigurable.h:19</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a89e9297f497c2b3f1179788c31d24da4"><div class="ttname"><a href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a></div><div class="ttdeci">#define REQ_FRIEND_CLASS_DECLARATION()</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00107">XMPCommonDefines.h:107</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html_a917e8e3f02685ec390fa3aee270f7747"><div class="ttname"><a href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a></div><div class="ttdeci">#define XMP_PRIVATE</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00189">XMP_Environment.h:189</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/ISimpleNode_8h.html b/docs/API/ISimpleNode_8h.html
new file mode 100755
index 0000000..0316049
--- /dev/null
+++ b/docs/API/ISimpleNode_8h.html
@@ -0,0 +1,66 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/ISimpleNode.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('ISimpleNode_8h.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">ISimpleNode.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="INode_8h_source.html">XMPCore/Interfaces/INode.h</a>&quot;</code><br />
+</div>
+<p><a href="ISimpleNode_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html">AdobeXMPCore::ISimpleNode_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version1 of the interface that represents a Simple Property Node of XMP DOM. <a href="classAdobeXMPCore_1_1ISimpleNode__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceAdobeXMPCore"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/ISimpleNode_8h_source.html b/docs/API/ISimpleNode_8h_source.html
new file mode 100755
index 0000000..a9cc029
--- /dev/null
+++ b/docs/API/ISimpleNode_8h_source.html
@@ -0,0 +1,71 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/ISimpleNode.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('ISimpleNode_8h_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">ISimpleNode.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="ISimpleNode_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __ISimpleNode_h__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __ISimpleNode_h__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// ADOBE SYSTEMS INCORPORATED</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// Copyright 2014 Adobe Systems Incorporated</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// All Rights Reserved</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="INode_8h.html">XMPCore/Interfaces/INode.h</a>&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a> {</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1ISimpleNode__v1.html"> 23</a></span>&#160; <span class="keyword">class </span><a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="classAdobeXMPCore_1_1ISimpleNode__v1.html">ISimpleNode_v1</a></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">INode_v1</a></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; {</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL GetValue() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL SetValue( <span class="keyword">const</span> <span class="keywordtype">char</span> * value, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> valueLength ) = 0;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL IsURIType() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL SetURIType( <span class="keywordtype">bool</span> isURI ) = 0;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="comment">// Factories to create the simple node</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a> CreateSimpleNode( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength,</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> * value = NULL, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> valueLength = <a class="code" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a> );</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; </div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; </div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#ad9403696e40df26b5d17e0d17d6799f0">pISimpleNode</a> APICALL GetActualISimpleNode() <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a> = 0;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#acff9cacaf46a6c6923117852e63579b6">pcISimpleNode</a> GetActualISimpleNode() <span class="keyword">const</span> __NOTHROW__ {</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCore_1_1ISimpleNode__v1.html">ISimpleNode_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;GetActualISimpleNode();</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; }</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore__Int.html#a9b914b7e3bafee8e830a982810ed2191">AdobeXMPCore_Int::pISimpleNode_I</a> APICALL GetISimpleNode_I() __NOTHROW__ = 0;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore__Int.html#a0de0f06ece9bff0c77df3e519af9f506">AdobeXMPCore_Int::pcISimpleNode_I</a> GetISimpleNode_I() <span class="keyword">const</span> __NOTHROW__ {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCore_1_1ISimpleNode__v1.html">ISimpleNode_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;GetISimpleNode_I();</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; </div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a> MakeShared( <a class="code" href="classAdobeXMPCore_1_1ISimpleNode__v1.html">pISimpleNode_base</a> ptr );</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a> MakeShared( <a class="code" href="classAdobeXMPCore_1_1ISimpleNode__v1.html">pcISimpleNode_base</a> ptr ) {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">return</span> MakeShared( const_cast&lt; pISimpleNode_base &gt;( ptr ) );</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> GetInterfaceID() { <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a258ec247968bc8e101a087b2f914c95b">kISimpleNodeID</a>; }</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> GetInterfaceVersion() { <span class="keywordflow">return</span> 1; }</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1ISimpleNode__v1.html#a12de1bae1dcb7c8302044df2b4fddb02"> 133</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1ISimpleNode__v1.html#a12de1bae1dcb7c8302044df2b4fddb02">~ISimpleNode_v1</a>() __NOTHROW__ {}</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">pcIUTF8String_base</a> APICALL getValue( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL setValue( <span class="keyword">const</span> <span class="keywordtype">char</span> * value, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> valueLength, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL isURIType( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL setURIType( <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> isURI, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="preprocessor"> #ifdef FRIEND_CLASS_DECLARATION</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; FRIEND_CLASS_DECLARATION();</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a>();</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; };</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;}</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="preprocessor">#endif // __ISimpleNode_h__</span></div><div class="ttc" id="namespaceAdobeXMPCommon_html_aea1d692da07b844d1f642b47ea6a91bd"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">AdobeXMPCommon::uint64</a></div><div class="ttdeci">XMP_Uns64 uint64</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00142">XMPCommonDefines.h:142</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_a0de0f06ece9bff0c77df3e519af9f506"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#a0de0f06ece9bff0c77df3e519af9f506">AdobeXMPCore_Int::pcISimpleNode_I</a></div><div class="ttdeci">const ISimpleNode_I * pcISimpleNode_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00244">XMPCoreFwdDeclarations.h:244</a></div></div>
+<div class="ttc" id="INode_8h_html"><div class="ttname"><a href="INode_8h.html">INode.h</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1ISimpleNode__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1ISimpleNode__v1.html">AdobeXMPCore::ISimpleNode_v1</a></div><div class="ttdoc">Version1 of the interface that represents a Simple Property Node of XMP DOM. </div><div class="ttdef"><b>Definition:</b> <a href="ISimpleNode_8h_source.html#l00023">ISimpleNode.h:23</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_afc1bfa88991003b305ab5023b483d3f9"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a></div><div class="ttdeci">const sizet npos(kMaxSize)</div></div>
+<div class="ttc" id="XMP__Environment_8h_html_aac6a4810b1f485f147ab833be63f4d7b"><div class="ttname"><a href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a></div><div class="ttdeci">#define XMP_PUBLIC</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00188">XMP_Environment.h:188</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_a9b914b7e3bafee8e830a982810ed2191"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#a9b914b7e3bafee8e830a982810ed2191">AdobeXMPCore_Int::pISimpleNode_I</a></div><div class="ttdeci">ISimpleNode_I * pISimpleNode_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00242">XMPCoreFwdDeclarations.h:242</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a5a929113d3d50bda3fb7135a5c8b24a2"><div class="ttname"><a href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></div><div class="ttdeci">#define __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00117">XMPCommonDefines.h:117</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1ISimpleNode__v1_html_a12de1bae1dcb7c8302044df2b4fddb02"><div class="ttname"><a href="classAdobeXMPCore_1_1ISimpleNode__v1.html#a12de1bae1dcb7c8302044df2b4fddb02">AdobeXMPCore::ISimpleNode_v1::~ISimpleNode_v1</a></div><div class="ttdeci">virtual ~ISimpleNode_v1() __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="ISimpleNode_8h_source.html#l00133">ISimpleNode.h:133</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a91aaab1f1d7030b26df65258bd131a63"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">AdobeXMPCommon::spcIUTF8String</a></div><div class="ttdeci">shared_ptr&lt; const IUTF8String &gt; spcIUTF8String</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00078">XMPCommonFwdDeclarations.h:78</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ab20ecb8d094c1dd81cb278370b746343"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">AdobeXMPCore::spISimpleNode</a></div><div class="ttdeci">shared_ptr&lt; ISimpleNode &gt; spISimpleNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00077">XMPCoreFwdDeclarations.h:77</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html"><div class="ttname"><a href="namespaceAdobeXMPCore.html">AdobeXMPCore</a></div><div class="ttdef"><b>Definition:</b> <a href="IArrayNode_8h_source.html#l00016">IArrayNode.h:16</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></div><div class="ttdoc">Version1 of the interface that serves as a base interface to all types of nodes in the XMP DOM...</div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00026">INode.h:26</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></div><div class="ttdoc">Version1 of the interface that represents an error/warning encountered during processing. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00026">IError.h:26</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a258ec247968bc8e101a087b2f914c95b"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a258ec247968bc8e101a087b2f914c95b">AdobeXMPCore::kISimpleNodeID</a></div><div class="ttdeci">static const uint64 kISimpleNodeID(0x63536d6c4e6f6465)</div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a1c85c2f558b495c3d41eabe692a96cf2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a></div><div class="ttdeci">uint32 sizet</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00146">XMPCommonDefines.h:146</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a4cb671d44948c7505c33431ec12f6c1f"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">AdobeXMPCore::spcISimpleNode</a></div><div class="ttdeci">shared_ptr&lt; const ISimpleNode &gt; spcISimpleNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00078">XMPCoreFwdDeclarations.h:78</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_acff9cacaf46a6c6923117852e63579b6"><div class="ttname"><a href="namespaceAdobeXMPCore.html#acff9cacaf46a6c6923117852e63579b6">AdobeXMPCore::pcISimpleNode</a></div><div class="ttdeci">const ISimpleNode * pcISimpleNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00076">XMPCoreFwdDeclarations.h:76</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a89e9297f497c2b3f1179788c31d24da4"><div class="ttname"><a href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a></div><div class="ttdeci">#define REQ_FRIEND_CLASS_DECLARATION()</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00107">XMPCommonDefines.h:107</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html_a917e8e3f02685ec390fa3aee270f7747"><div class="ttname"><a href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a></div><div class="ttdeci">#define XMP_PRIVATE</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00189">XMP_Environment.h:189</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IUTF8String__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></div><div class="ttdoc">Version1 of the interface that represents an UTF8String. </div><div class="ttdef"><b>Definition:</b> <a href="IUTF8String_8h_source.html#l00023">IUTF8String.h:23</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a0b1bbe96e1a757e66974c2f076afe4d2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">AdobeXMPCommon::uint32</a></div><div class="ttdeci">XMP_Uns32 uint32</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00144">XMPCommonDefines.h:144</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ad9403696e40df26b5d17e0d17d6799f0"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ad9403696e40df26b5d17e0d17d6799f0">AdobeXMPCore::pISimpleNode</a></div><div class="ttdeci">ISimpleNode * pISimpleNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00075">XMPCoreFwdDeclarations.h:75</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/IStructureNode_8h.html b/docs/API/IStructureNode_8h.html
new file mode 100755
index 0000000..6c5850d
--- /dev/null
+++ b/docs/API/IStructureNode_8h.html
@@ -0,0 +1,66 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/IStructureNode.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('IStructureNode_8h.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">IStructureNode.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="ICompositeNode_8h_source.html">XMPCore/Interfaces/ICompositeNode.h</a>&quot;</code><br />
+</div>
+<p><a href="IStructureNode_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html">AdobeXMPCore::IStructureNode_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version1 of the interface that represents a structure Node of XMP DOM. <a href="classAdobeXMPCore_1_1IStructureNode__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceAdobeXMPCore"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/IStructureNode_8h_source.html b/docs/API/IStructureNode_8h_source.html
new file mode 100755
index 0000000..d2c58d5
--- /dev/null
+++ b/docs/API/IStructureNode_8h_source.html
@@ -0,0 +1,83 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/IStructureNode.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('IStructureNode_8h_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">IStructureNode.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="IStructureNode_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef IStructureNode_h__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define IStructureNode_h__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// ADOBE SYSTEMS INCORPORATED</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// Copyright 2014 Adobe Systems Incorporated</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// All Rights Reserved</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ICompositeNode_8h.html">XMPCore/Interfaces/ICompositeNode.h</a>&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a> {</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IStructureNode__v1.html"> 23</a></span>&#160; <span class="keyword">class </span><a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="classAdobeXMPCore_1_1IStructureNode__v1.html">IStructureNode_v1</a></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">ICompositeNode_v1</a></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; {</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL GetChildNodeType( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength ) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IStructureNode__v1.html#afd94de430e29982143eb04315b954b24"> 51</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">spcINode</a> <a class="code" href="classAdobeXMPCore_1_1IStructureNode__v1.html#afd94de430e29982143eb04315b954b24">GetNode</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength )<span class="keyword"> const </span>{</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCore_1_1IStructureNode__v1.html">IStructureNode_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;GetNode( nameSpace, nameSpaceLength, name, nameLength );</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; }</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL GetNode( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength ) = 0;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IStructureNode__v1.html#aaf000a83b1448eb8453f37fc42543ae7"> 70</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a> <a class="code" href="classAdobeXMPCore_1_1IStructureNode__v1.html#aaf000a83b1448eb8453f37fc42543ae7">GetSimpleNode</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength )<span class="keyword"> const </span>{</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">auto</span> node = GetNode( nameSpace, nameSpaceLength, name, nameLength );</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToSimpleNode();</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a>();</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a23ea406052e9201f3b35e59cc2b206a5"> 76</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a> <a class="code" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a23ea406052e9201f3b35e59cc2b206a5">GetSimpleNode</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength ) {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">auto</span> node = GetNode( nameSpace, nameSpaceLength, name, nameLength );</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToSimpleNode();</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a>();</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IStructureNode__v1.html#ab815d3b2335f27dccc15472196696e08"> 96</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a> <a class="code" href="classAdobeXMPCore_1_1IStructureNode__v1.html#ab815d3b2335f27dccc15472196696e08">GetStructureNode</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength )<span class="keyword"> const </span>{</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">auto</span> node = GetNode( nameSpace, nameSpaceLength, name, nameLength );</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToStructureNode();</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a>();</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; }</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a9b380e96dca941b5f9c3143931f7f633"> 102</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a> <a class="code" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a9b380e96dca941b5f9c3143931f7f633">GetStructureNode</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength ) {</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">auto</span> node = GetNode( nameSpace, nameSpaceLength, name, nameLength );</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToStructureNode();</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a>();</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; }</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a8ee43418308bf6f80d1fc90eb84f5db0"> 122</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a> <a class="code" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a8ee43418308bf6f80d1fc90eb84f5db0">GetArrayNode</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength )<span class="keyword"> const </span>{</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keyword">auto</span> node = GetNode( nameSpace, nameSpaceLength, name, nameLength );</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToArrayNode();</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a>();</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IStructureNode__v1.html#af8fe4c8e7c9a5262b1125aea6606fe2e"> 128</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a> <a class="code" href="classAdobeXMPCore_1_1IStructureNode__v1.html#af8fe4c8e7c9a5262b1125aea6606fe2e">GetArrayNode</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength ) {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">auto</span> node = GetNode( nameSpace, nameSpaceLength, name, nameLength );</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToArrayNode();</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a>();</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; }</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL InsertNode( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp; node ) = 0;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL ReplaceNode( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp; node ) = 0;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL RemoveNode( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength ) = 0;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; </div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#ac7a54801a0cd4ae9441548ccfb1fd608">pIStructureNode</a> APICALL GetActualIStructureNode() <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a> = 0;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore.html#abae00582b217eaa165ccf0006afa23bd">pcIStructureNode</a> GetActualIStructureNode() <span class="keyword">const</span> __NOTHROW__ {</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCore_1_1IStructureNode__v1.html">IStructureNode_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;GetActualIStructureNode();</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; }</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore__Int.html#a4d4375869e320dc1596a9d62a4030b05">AdobeXMPCore_Int::pIStructureNode_I</a> APICALL GetIStructureNode_I() __NOTHROW__ = 0;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCore__Int.html#a85d314eae1eef235e7c698c5c84bdda1">AdobeXMPCore_Int::pcIStructureNode_I</a> GetIStructureNode_I() <span class="keyword">const</span> __NOTHROW__ {</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCore_1_1IStructureNode__v1.html">IStructureNode_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;GetIStructureNode_I();</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; }</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; </div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a> MakeShared( <a class="code" href="classAdobeXMPCore_1_1IStructureNode__v1.html">pIStructureNode_base</a> ptr );</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a> MakeShared( <a class="code" href="classAdobeXMPCore_1_1IStructureNode__v1.html">pcIStructureNode_base</a> ptr ) {</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">return</span> MakeShared( const_cast&lt; pIStructureNode_base &gt;( ptr ) );</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; }</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> GetInterfaceID() { <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a099de3a79749ee161daf59313861702e">kIStructureNodeID</a>; }</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> GetInterfaceVersion() { <span class="keywordflow">return</span> 1; }</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="comment">// Factories to create the structure node</span></div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a> CreateStructureNode( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength );</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a0cdcce18c6ebbb1764286e3e2456c694"> 241</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a0cdcce18c6ebbb1764286e3e2456c694">~IStructureNode_v1</a>() __NOTHROW__ {}</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL getChildNodeType( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> APICALL getNode( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL insertNode( <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> node, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> APICALL replaceNode( <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> node, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> APICALL removeNode( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="preprocessor"> #ifdef FRIEND_CLASS_DECLARATION</span></div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; FRIEND_CLASS_DECLARATION();</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <a class="code" href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a>();</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; };</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;}</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="preprocessor">#if !BUILDING_XMPCORE_LIB &amp;&amp; !SOURCE_COMPILING_XMPCORE_LIB</span></div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a> {</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="preprocessor">#if XMP_WinBuild</span></div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="preprocessor"> #pragma warning( push )</span></div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="preprocessor"> #pragma warning( disable : 4250 )</span></div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keyword">class </span>IStructureNodeProxy</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; : <span class="keyword">public</span> <span class="keyword">virtual</span> IStructureNode</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; , <span class="keyword">public</span> <span class="keyword">virtual</span> ICompositeNodeProxy</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; {</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#ac7a54801a0cd4ae9441548ccfb1fd608">pIStructureNode</a> mRawPtr;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; IStructureNodeProxy( <a class="code" href="namespaceAdobeXMPCore.html#ac7a54801a0cd4ae9441548ccfb1fd608">pIStructureNode</a> ptr );</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; ~IStructureNodeProxy() <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a> ;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <a class="code" href="namespaceAdobeXMPCore__Int.html#a4d4375869e320dc1596a9d62a4030b05">AdobeXMPCore_Int::pIStructureNode_I</a> APICALL GetIStructureNode_I() <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#ac7a54801a0cd4ae9441548ccfb1fd608">pIStructureNode</a> APICALL GetActualIStructureNode() <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL GetChildNodeType( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength ) <span class="keyword">const</span>;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL GetNode( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength );</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL InsertNode( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp; node );</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL ReplaceNode( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp; node );</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL RemoveNode( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength );</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL getChildNodeType( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> APICALL getNode( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL insertNode( <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> node, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> APICALL replaceNode( <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> node, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a> APICALL removeNode( <span class="keyword">const</span> <span class="keywordtype">char</span> * nameSpace, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; };</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="preprocessor">#if XMP_WinBuild</span></div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="preprocessor"> #pragma warning( pop )</span></div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;}</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;<span class="preprocessor">#endif // BUILDING_XMPCORE_LIB</span></div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;<span class="preprocessor">#endif // IStructureNode_h__</span></div><div class="ttc" id="namespaceAdobeXMPCommon_html_aea1d692da07b844d1f642b47ea6a91bd"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">AdobeXMPCommon::uint64</a></div><div class="ttdeci">XMP_Uns64 uint64</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00142">XMPCommonDefines.h:142</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IStructureNode__v1_html_a9b380e96dca941b5f9c3143931f7f633"><div class="ttname"><a href="classAdobeXMPCore_1_1IStructureNode__v1.html#a9b380e96dca941b5f9c3143931f7f633">AdobeXMPCore::IStructureNode_v1::GetStructureNode</a></div><div class="ttdeci">XMP_PRIVATE spIStructureNode GetStructureNode(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)</div><div class="ttdef"><b>Definition:</b> <a href="IStructureNode_8h_source.html#l00102">IStructureNode.h:102</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IStructureNode__v1_html_afd94de430e29982143eb04315b954b24"><div class="ttname"><a href="classAdobeXMPCore_1_1IStructureNode__v1.html#afd94de430e29982143eb04315b954b24">AdobeXMPCore::IStructureNode_v1::GetNode</a></div><div class="ttdeci">XMP_PRIVATE spcINode GetNode(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </div><div class="ttdoc">Gets the child of the node having specified namespace and name. </div><div class="ttdef"><b>Definition:</b> <a href="IStructureNode_8h_source.html#l00051">IStructureNode.h:51</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IStructureNode__v1_html_a0cdcce18c6ebbb1764286e3e2456c694"><div class="ttname"><a href="classAdobeXMPCore_1_1IStructureNode__v1.html#a0cdcce18c6ebbb1764286e3e2456c694">AdobeXMPCore::IStructureNode_v1::~IStructureNode_v1</a></div><div class="ttdeci">virtual ~IStructureNode_v1() __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="IStructureNode_8h_source.html#l00241">IStructureNode.h:241</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_a4d4375869e320dc1596a9d62a4030b05"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#a4d4375869e320dc1596a9d62a4030b05">AdobeXMPCore_Int::pIStructureNode_I</a></div><div class="ttdeci">IStructureNode_I * pIStructureNode_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00252">XMPCoreFwdDeclarations.h:252</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html_aac6a4810b1f485f147ab833be63f4d7b"><div class="ttname"><a href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a></div><div class="ttdeci">#define XMP_PUBLIC</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00188">XMP_Environment.h:188</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a5a929113d3d50bda3fb7135a5c8b24a2"><div class="ttname"><a href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></div><div class="ttdeci">#define __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00117">XMPCommonDefines.h:117</a></div></div>
+<div class="ttc" id="ICompositeNode_8h_html"><div class="ttname"><a href="ICompositeNode_8h.html">ICompositeNode.h</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ab20ecb8d094c1dd81cb278370b746343"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">AdobeXMPCore::spISimpleNode</a></div><div class="ttdeci">shared_ptr&lt; ISimpleNode &gt; spISimpleNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00077">XMPCoreFwdDeclarations.h:77</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a099de3a79749ee161daf59313861702e"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a099de3a79749ee161daf59313861702e">AdobeXMPCore::kIStructureNodeID</a></div><div class="ttdeci">static const uint64 kIStructureNodeID(0x635374724e6f6465)</div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a957c57fcbb47c704fc5c31cf36dcbde7"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">AdobeXMPCore::spIStructureNode</a></div><div class="ttdeci">shared_ptr&lt; IStructureNode &gt; spIStructureNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00101">XMPCoreFwdDeclarations.h:101</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a4ea338a9eed923abf6aba47a27926a0f"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">AdobeXMPCore::spcIArrayNode</a></div><div class="ttdeci">shared_ptr&lt; const IArrayNode &gt; spcIArrayNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00114">XMPCoreFwdDeclarations.h:114</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html"><div class="ttname"><a href="namespaceAdobeXMPCore.html">AdobeXMPCore</a></div><div class="ttdef"><b>Definition:</b> <a href="IArrayNode_8h_source.html#l00016">IArrayNode.h:16</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></div><div class="ttdoc">Version1 of the interface that serves as a base interface to all types of nodes in the XMP DOM...</div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00026">INode.h:26</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1ICompositeNode__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></div><div class="ttdoc">Version1 of the interface that serves as a base interface to all composite types of nodes in the XMP ...</div><div class="ttdef"><b>Definition:</b> <a href="ICompositeNode_8h_source.html#l00025">ICompositeNode.h:25</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a24e8e82d63d879d77408ce5c7e30c609"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">AdobeXMPCore::spIArrayNode</a></div><div class="ttdeci">shared_ptr&lt; IArrayNode &gt; spIArrayNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00113">XMPCoreFwdDeclarations.h:113</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IStructureNode__v1_html_aaf000a83b1448eb8453f37fc42543ae7"><div class="ttname"><a href="classAdobeXMPCore_1_1IStructureNode__v1.html#aaf000a83b1448eb8453f37fc42543ae7">AdobeXMPCore::IStructureNode_v1::GetSimpleNode</a></div><div class="ttdeci">XMP_PRIVATE spcISimpleNode GetSimpleNode(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </div><div class="ttdoc">Gets the node&amp;#39;s child having specified name space and name as simple node. </div><div class="ttdef"><b>Definition:</b> <a href="IStructureNode_8h_source.html#l00070">IStructureNode.h:70</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IStructureNode__v1_html_a23ea406052e9201f3b35e59cc2b206a5"><div class="ttname"><a href="classAdobeXMPCore_1_1IStructureNode__v1.html#a23ea406052e9201f3b35e59cc2b206a5">AdobeXMPCore::IStructureNode_v1::GetSimpleNode</a></div><div class="ttdeci">XMP_PRIVATE spISimpleNode GetSimpleNode(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)</div><div class="ttdef"><b>Definition:</b> <a href="IStructureNode_8h_source.html#l00076">IStructureNode.h:76</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IStructureNode__v1_html_a8ee43418308bf6f80d1fc90eb84f5db0"><div class="ttname"><a href="classAdobeXMPCore_1_1IStructureNode__v1.html#a8ee43418308bf6f80d1fc90eb84f5db0">AdobeXMPCore::IStructureNode_v1::GetArrayNode</a></div><div class="ttdeci">XMP_PRIVATE spcIArrayNode GetArrayNode(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </div><div class="ttdoc">Gets the node&amp;#39;s child having specified name space and name as an array node. </div><div class="ttdef"><b>Definition:</b> <a href="IStructureNode_8h_source.html#l00122">IStructureNode.h:122</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></div><div class="ttdoc">Version1 of the interface that represents an error/warning encountered during processing. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00026">IError.h:26</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a1c85c2f558b495c3d41eabe692a96cf2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a></div><div class="ttdeci">uint32 sizet</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00146">XMPCommonDefines.h:146</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_a46b01045c1addbc8f444bd21384b7913"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">AdobeXMPCore::INode_v1::eNodeType</a></div><div class="ttdeci">eNodeType</div><div class="ttdoc">Indicates various types of node available in XMP Data Model like simple, array and structure...</div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00036">INode.h:36</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a4cb671d44948c7505c33431ec12f6c1f"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">AdobeXMPCore::spcISimpleNode</a></div><div class="ttdeci">shared_ptr&lt; const ISimpleNode &gt; spcISimpleNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00078">XMPCoreFwdDeclarations.h:78</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a89e9297f497c2b3f1179788c31d24da4"><div class="ttname"><a href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a></div><div class="ttdeci">#define REQ_FRIEND_CLASS_DECLARATION()</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00107">XMPCommonDefines.h:107</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IStructureNode__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1IStructureNode__v1.html">AdobeXMPCore::IStructureNode_v1</a></div><div class="ttdoc">Version1 of the interface that represents a structure Node of XMP DOM. </div><div class="ttdef"><b>Definition:</b> <a href="IStructureNode_8h_source.html#l00023">IStructureNode.h:23</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ac7a54801a0cd4ae9441548ccfb1fd608"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ac7a54801a0cd4ae9441548ccfb1fd608">AdobeXMPCore::pIStructureNode</a></div><div class="ttdeci">IStructureNode * pIStructureNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00099">XMPCoreFwdDeclarations.h:99</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aeec2c711a611cbc3c77ef1a0bb026e33"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">AdobeXMPCore::spINode</a></div><div class="ttdeci">shared_ptr&lt; INode &gt; spINode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00065">XMPCoreFwdDeclarations.h:65</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_a85d314eae1eef235e7c698c5c84bdda1"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#a85d314eae1eef235e7c698c5c84bdda1">AdobeXMPCore_Int::pcIStructureNode_I</a></div><div class="ttdeci">const IStructureNode_I * pcIStructureNode_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00254">XMPCoreFwdDeclarations.h:254</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_abae00582b217eaa165ccf0006afa23bd"><div class="ttname"><a href="namespaceAdobeXMPCore.html#abae00582b217eaa165ccf0006afa23bd">AdobeXMPCore::pcIStructureNode</a></div><div class="ttdeci">const IStructureNode * pcIStructureNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00100">XMPCoreFwdDeclarations.h:100</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a597eaeb0ed86794ea01f74a5be0f88ed"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">AdobeXMPCore::spcINode</a></div><div class="ttdeci">shared_ptr&lt; const INode &gt; spcINode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00066">XMPCoreFwdDeclarations.h:66</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html_a917e8e3f02685ec390fa3aee270f7747"><div class="ttname"><a href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a></div><div class="ttdeci">#define XMP_PRIVATE</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00189">XMP_Environment.h:189</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IStructureNode__v1_html_af8fe4c8e7c9a5262b1125aea6606fe2e"><div class="ttname"><a href="classAdobeXMPCore_1_1IStructureNode__v1.html#af8fe4c8e7c9a5262b1125aea6606fe2e">AdobeXMPCore::IStructureNode_v1::GetArrayNode</a></div><div class="ttdeci">XMP_PRIVATE spIArrayNode GetArrayNode(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)</div><div class="ttdef"><b>Definition:</b> <a href="IStructureNode_8h_source.html#l00128">IStructureNode.h:128</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ab5807ab783087243a3676a19ad6f9b90"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">AdobeXMPCore::spcIStructureNode</a></div><div class="ttdeci">shared_ptr&lt; const IStructureNode &gt; spcIStructureNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00102">XMPCoreFwdDeclarations.h:102</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IStructureNode__v1_html_ab815d3b2335f27dccc15472196696e08"><div class="ttname"><a href="classAdobeXMPCore_1_1IStructureNode__v1.html#ab815d3b2335f27dccc15472196696e08">AdobeXMPCore::IStructureNode_v1::GetStructureNode</a></div><div class="ttdeci">XMP_PRIVATE spcIStructureNode GetStructureNode(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </div><div class="ttdoc">Gets the node&amp;#39;s child having specified name space and name as structure node. </div><div class="ttdef"><b>Definition:</b> <a href="IStructureNode_8h_source.html#l00096">IStructureNode.h:96</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a0b1bbe96e1a757e66974c2f076afe4d2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">AdobeXMPCommon::uint32</a></div><div class="ttdeci">XMP_Uns32 uint32</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00144">XMPCommonDefines.h:144</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/IThreadSafe_8h.html b/docs/API/IThreadSafe_8h.html
new file mode 100755
index 0000000..a63876a
--- /dev/null
+++ b/docs/API/IThreadSafe_8h.html
@@ -0,0 +1,66 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/Interfaces/BaseInterfaces/IThreadSafe.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('IThreadSafe_8h.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">IThreadSafe.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommon/XMPCommonFwdDeclarations.h</a>&quot;</code><br />
+</div>
+<p><a href="IThreadSafe_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface that serves as the base interface for all the externally exposed interfaces which needs to provide client configurable thread safety. <a href="classAdobeXMPCommon_1_1IThreadSafe.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceAdobeXMPCommon"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/IThreadSafe_8h_source.html b/docs/API/IThreadSafe_8h_source.html
new file mode 100755
index 0000000..b7c36c9
--- /dev/null
+++ b/docs/API/IThreadSafe_8h_source.html
@@ -0,0 +1,58 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/Interfaces/BaseInterfaces/IThreadSafe.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('IThreadSafe_8h_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">IThreadSafe.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="IThreadSafe_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef IThreadSafe_h__</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#define IThreadSafe_h__ 1</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// ADOBE SYSTEMS INCORPORATED</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// Copyright 2015 Adobe Systems Incorporated</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// All Rights Reserved</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="XMPCommonFwdDeclarations_8h.html">XMPCommon/XMPCommonFwdDeclarations.h</a>&quot;</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a> {</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; </div><div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IThreadSafe.html"> 27</a></span>&#160; <span class="keyword">class </span><a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="classAdobeXMPCommon_1_1IThreadSafe.html">IThreadSafe</a></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; {</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL EnableThreadSafety() <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a> = 0;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL DisableThreadSafety() <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL IsThreadSafe() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon__Int.html#ac9c07c42e647a17838c9314b8d2823d9">AdobeXMPCommon_Int::pIThreadSafe_I</a> APICALL GetIThreadSafe_I() __NOTHROW__ = 0;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCommon__Int.html#a2becb4c0d21c71e1dcecdcaae0e92bd7">AdobeXMPCommon_Int::pcIThreadSafe_I</a> GetIThreadSafe_I() <span class="keyword">const</span> __NOTHROW__ {</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCommon_1_1IThreadSafe.html">IThreadSafe</a> * <span class="keyword">&gt;</span>( this )-&gt;GetIThreadSafe_I();</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; }</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL isThreadSafe() <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor"> #ifdef FRIEND_CLASS_DECLARATION</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; FRIEND_CLASS_DECLARATION();</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a>();</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; };</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;}</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor">#endif // IThreadSafe_h__</span></div><div class="ttc" id="XMP__Environment_8h_html_aac6a4810b1f485f147ab833be63f4d7b"><div class="ttname"><a href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a></div><div class="ttdeci">#define XMP_PUBLIC</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00188">XMP_Environment.h:188</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a5a929113d3d50bda3fb7135a5c8b24a2"><div class="ttname"><a href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></div><div class="ttdeci">#define __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00117">XMPCommonDefines.h:117</a></div></div>
+<div class="ttc" id="XMPCommonFwdDeclarations_8h_html"><div class="ttname"><a href="XMPCommonFwdDeclarations_8h.html">XMPCommonFwdDeclarations.h</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IThreadSafe_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></div><div class="ttdoc">Interface that serves as the base interface for all the externally exposed interfaces which needs to ...</div><div class="ttdef"><b>Definition:</b> <a href="IThreadSafe_8h_source.html#l00027">IThreadSafe.h:27</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon__Int_html_a2becb4c0d21c71e1dcecdcaae0e92bd7"><div class="ttname"><a href="namespaceAdobeXMPCommon__Int.html#a2becb4c0d21c71e1dcecdcaae0e92bd7">AdobeXMPCommon_Int::pcIThreadSafe_I</a></div><div class="ttdeci">const IThreadSafe_I * pcIThreadSafe_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00154">XMPCommonFwdDeclarations.h:154</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html"><div class="ttname"><a href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a></div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00019">IConfigurable.h:19</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a89e9297f497c2b3f1179788c31d24da4"><div class="ttname"><a href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a></div><div class="ttdeci">#define REQ_FRIEND_CLASS_DECLARATION()</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00107">XMPCommonDefines.h:107</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon__Int_html_ac9c07c42e647a17838c9314b8d2823d9"><div class="ttname"><a href="namespaceAdobeXMPCommon__Int.html#ac9c07c42e647a17838c9314b8d2823d9">AdobeXMPCommon_Int::pIThreadSafe_I</a></div><div class="ttdeci">IThreadSafe_I * pIThreadSafe_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00152">XMPCommonFwdDeclarations.h:152</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html_a917e8e3f02685ec390fa3aee270f7747"><div class="ttname"><a href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a></div><div class="ttdeci">#define XMP_PRIVATE</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00189">XMP_Environment.h:189</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a0b1bbe96e1a757e66974c2f076afe4d2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">AdobeXMPCommon::uint32</a></div><div class="ttdeci">XMP_Uns32 uint32</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00144">XMPCommonDefines.h:144</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/IUTF8String_8h.html b/docs/API/IUTF8String_8h.html
new file mode 100755
index 0000000..2092931
--- /dev/null
+++ b/docs/API/IUTF8String_8h.html
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/Interfaces/IUTF8String.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('IUTF8String_8h.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">IUTF8String.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="ISharedObject_8h_source.html">XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="IVersionable_8h_source.html">XMPCommon/Interfaces/BaseInterfaces/IVersionable.h</a>&quot;</code><br />
+</div>
+<p><a href="IUTF8String_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version1 of the interface that represents an UTF8String. <a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceAdobeXMPCommon"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/IUTF8String_8h_source.html b/docs/API/IUTF8String_8h_source.html
new file mode 100755
index 0000000..faa7131
--- /dev/null
+++ b/docs/API/IUTF8String_8h_source.html
@@ -0,0 +1,76 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/Interfaces/IUTF8String.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('IUTF8String_8h_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">IUTF8String.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="IUTF8String_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __IUTF8String_h__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __IUTF8String_h__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright 2014 Adobe Systems Incorporated</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// All Rights Reserved.</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ISharedObject_8h.html">XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h</a>&quot;</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="IVersionable_8h.html">XMPCommon/Interfaces/BaseInterfaces/IVersionable.h</a>&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a> {</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">using</span> <a class="code" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IUTF8String__v1.html"> 23</a></span>&#160; <span class="keyword">class </span><a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">IUTF8String_v1</a></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1ISharedObject.html">ISharedObject</a></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; , <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IVersionable.html">IVersionable</a></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; {</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL append( <span class="keyword">const</span> <span class="keywordtype">char</span> * buf, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count ) = 0;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL append( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> &amp; src, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> srcPos = 0, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count = <a class="code" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a> ) = 0;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL assign( <span class="keyword">const</span> <span class="keywordtype">char</span> * buf, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count ) = 0;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL assign( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> &amp; src, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> srcPos = 0, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count = <a class="code" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a> ) = 0;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL insert( <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos, <span class="keyword">const</span> <span class="keywordtype">char</span> * buf, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count ) = 0;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL insert( <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos, <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> &amp; src, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> srcPos = 0, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count = <a class="code" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a> ) = 0;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL erase( <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos = 0, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count = <a class="code" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a> ) = 0;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL resize( <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> n ) = 0 ;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL replace( <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count, <span class="keyword">const</span> <span class="keywordtype">char</span> * buf, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> srcCount ) = 0;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL replace( <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count, <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> &amp; src, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> srcPos = 0, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> srcCount = <a class="code" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a> ) = 0;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL copy( <span class="keywordtype">char</span> * buf, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> len, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos = 0 ) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a136133c53ec032e30c10a15f11c7c8b5"> 194</a></span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a136133c53ec032e30c10a15f11c7c8b5">find</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * buf, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos = 0 )<span class="keyword"> const </span>{</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">return</span> find( buf, pos, <a class="code" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a> );</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; }</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL find( <span class="keyword">const</span> <span class="keywordtype">char</span> * buf, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count ) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="comment"></span> <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL find( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> &amp; src, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos = 0, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count = <a class="code" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a> ) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="comment">// @{</span></div><div class="line"><a name="l00243"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a7b58ccfe2131a133db0e2fdcfc4f6baf"> 243</a></span>&#160;<span class="comment"></span> <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a7b58ccfe2131a133db0e2fdcfc4f6baf">rfind</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * buf, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos = <a class="code" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a> )<span class="keyword"> const </span>{</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">return</span> rfind( buf, pos, <a class="code" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a> );</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; }</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL rfind( <span class="keyword">const</span> <span class="keywordtype">char</span> * buf, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count ) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL rfind( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> &amp; src, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos = <a class="code" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a>, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count = <a class="code" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a> ) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div><div class="line"><a name="l00283"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a745714ed2abbc6a2808fb933cc6b2f46"> 283</a></span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a070d4ea981e6080468e9a3cdbd82b458">int32</a> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a745714ed2abbc6a2808fb933cc6b2f46">compare</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * buf )<span class="keyword"> const </span>{</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">return</span> compare( 0, size(), buf, <a class="code" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a> );</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; }</div><div class="line"><a name="l00305"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a382311b08300432549054caa0c351928"> 305</a></span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a070d4ea981e6080468e9a3cdbd82b458">int32</a> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a382311b08300432549054caa0c351928">compare</a>( <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> len, <span class="keyword">const</span> <span class="keywordtype">char</span> * buf )<span class="keyword"> const </span>{</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">return</span> compare( pos, len, buf, <a class="code" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a> );</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; }</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a070d4ea981e6080468e9a3cdbd82b458">int32</a> APICALL compare( <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> len, <span class="keyword">const</span> <span class="keywordtype">char</span> * buf, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count ) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; </div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;</div><div class="line"><a name="l00347"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a709ce9d5053d7fdc30a0735112844305"> 347</a></span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a070d4ea981e6080468e9a3cdbd82b458">int32</a> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a709ce9d5053d7fdc30a0735112844305">compare</a>( <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> &amp; str )<span class="keyword"> const </span>{</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keywordflow">return</span> compare( 0, size(), str, 0, str-&gt;size() );</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; }</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a070d4ea981e6080468e9a3cdbd82b458">int32</a> APICALL compare( <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> len, <span class="keyword">const</span> <a class="code" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> &amp; str, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> strPos = 0, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> strLen = <a class="code" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a> ) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL substr( <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos = 0, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count = <a class="code" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a> ) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> APICALL empty() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * APICALL c_str() <span class="keyword">const</span> <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a> = 0;</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL clear() __NOTHROW__ = 0;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL size() <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a27ba1868ebc552bef10fe156bd4e340b">pIUTF8String</a> APICALL GetActualIUTF8String() __NOTHROW__ = 0;</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="code" href="namespaceAdobeXMPCommon.html#aa9b2c45fd472c6e0e322a94c87e36e23">pcIUTF8String</a> GetActualIUTF8String() <span class="keyword">const</span> __NOTHROW__ {</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">IUTF8String_v1</a> * <span class="keyword">&gt;</span>( this )-&gt;GetActualIUTF8String();</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; }</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> MakeShared( <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">pIUTF8String_base</a> ptr );</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> MakeShared( <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">pcIUTF8String_base</a> ptr ) {</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordflow">return</span> MakeShared( const_cast&lt; pIUTF8String_base &gt;( ptr ) );</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; }</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> GetInterfaceID() { <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCommon.html#a97f984a3b999db35dd915b17322c8c7f">kIUTF8StringID</a>; }</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> GetInterfaceVersion() { <span class="keywordflow">return</span> 1; }</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="comment">// static factory functions</span></div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> CreateUTF8String( <a class="code" href="namespaceAdobeXMPCommon.html#a0863cf1c24764306839671985373b93f">pIObjectFactory</a> objFactory );</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">static</span> <a class="code" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> CreateUTF8String( <a class="code" href="namespaceAdobeXMPCommon.html#a0863cf1c24764306839671985373b93f">pIObjectFactory</a> objFactory, <span class="keyword">const</span> <span class="keywordtype">char</span> * buf, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count );</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00473"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#ade123eab5a2f5e432ce6e50f43eddad3"> 473</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#ade123eab5a2f5e432ce6e50f43eddad3">~IUTF8String_v1</a>() __NOTHROW__ {}</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">pIUTF8String_base</a> APICALL assign( <span class="keyword">const</span> <span class="keywordtype">char</span> * buffer, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">pIUTF8String_base</a> APICALL assign( <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">pcIUTF8String_base</a> str, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> srcPos, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">pIUTF8String_base</a> APICALL append( <span class="keyword">const</span> <span class="keywordtype">char</span> * buffer, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">pIUTF8String_base</a> APICALL append( <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">pcIUTF8String_base</a> str, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> srcPos, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">pIUTF8String_base</a> APICALL insert( <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos, <span class="keyword">const</span> <span class="keywordtype">char</span> * buf, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">pIUTF8String_base</a> APICALL insert( <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos, <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">pcIUTF8String_base</a> src, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> srcPos, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">pIUTF8String_base</a> APICALL erase( <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> APICALL resize( <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> n, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">pIUTF8String_base</a> APICALL replace( <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count, <span class="keyword">const</span> <span class="keywordtype">char</span> * buf, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> srcCount, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">pIUTF8String_base</a> APICALL replace( <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count, <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">pcIUTF8String_base</a> src, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> srcPos, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> srcCount, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) __NOTHROW__ = 0;</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL copy( <span class="keywordtype">char</span> * buf, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> len, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL find( <span class="keyword">const</span> <span class="keywordtype">char</span> * buf, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL find( <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">pcIUTF8String_base</a> src, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL rfind( <span class="keyword">const</span> <span class="keywordtype">char</span> * buf, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL rfind( <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">pcIUTF8String_base</a> src, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a070d4ea981e6080468e9a3cdbd82b458">int32</a> APICALL compare( <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> len, <span class="keyword">const</span> <span class="keywordtype">char</span> * buf, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a070d4ea981e6080468e9a3cdbd82b458">int32</a> APICALL compare( <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> len, <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">pcIUTF8String_base</a> str, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> strPos, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> strLen, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">pIUTF8String_base</a> APICALL substr( <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos, <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL empty( <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <span class="keyword">const</span> __NOTHROW__ = 0;</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; </div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;<span class="preprocessor"> #ifdef FRIEND_CLASS_DECLARATION</span></div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; FRIEND_CLASS_DECLARATION();</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <a class="code" href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a>();</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; };</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;}</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;<span class="preprocessor">#endif // __IUTF8String_h__</span></div><div class="ttc" id="namespaceAdobeXMPCommon_html_aea1d692da07b844d1f642b47ea6a91bd"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">AdobeXMPCommon::uint64</a></div><div class="ttdeci">XMP_Uns64 uint64</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00142">XMPCommonDefines.h:142</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IUTF8String__v1_html_a382311b08300432549054caa0c351928"><div class="ttname"><a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a382311b08300432549054caa0c351928">AdobeXMPCommon::IUTF8String_v1::compare</a></div><div class="ttdeci">int32 compare(sizet pos, sizet len, const char *buf) const </div><div class="ttdoc">Compare strings. </div><div class="ttdef"><b>Definition:</b> <a href="IUTF8String_8h_source.html#l00305">IUTF8String.h:305</a></div></div>
+<div class="ttc" id="ISharedObject_8h_html"><div class="ttname"><a href="ISharedObject_8h.html">ISharedObject.h</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_afc1bfa88991003b305ab5023b483d3f9"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a></div><div class="ttdeci">const sizet npos(kMaxSize)</div></div>
+<div class="ttc" id="XMP__Environment_8h_html_aac6a4810b1f485f147ab833be63f4d7b"><div class="ttname"><a href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a></div><div class="ttdeci">#define XMP_PUBLIC</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00188">XMP_Environment.h:188</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a5a929113d3d50bda3fb7135a5c8b24a2"><div class="ttname"><a href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></div><div class="ttdeci">#define __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00117">XMPCommonDefines.h:117</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IUTF8String__v1_html_ade123eab5a2f5e432ce6e50f43eddad3"><div class="ttname"><a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#ade123eab5a2f5e432ce6e50f43eddad3">AdobeXMPCommon::IUTF8String_v1::~IUTF8String_v1</a></div><div class="ttdeci">virtual ~IUTF8String_v1() __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="IUTF8String_8h_source.html#l00473">IUTF8String.h:473</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a91aaab1f1d7030b26df65258bd131a63"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">AdobeXMPCommon::spcIUTF8String</a></div><div class="ttdeci">shared_ptr&lt; const IUTF8String &gt; spcIUTF8String</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00078">XMPCommonFwdDeclarations.h:78</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IUTF8String__v1_html_a136133c53ec032e30c10a15f11c7c8b5"><div class="ttname"><a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a136133c53ec032e30c10a15f11c7c8b5">AdobeXMPCommon::IUTF8String_v1::find</a></div><div class="ttdeci">sizet find(const char *buf, sizet pos=0) const </div><div class="ttdoc">Find content in string. </div><div class="ttdef"><b>Definition:</b> <a href="IUTF8String_8h_source.html#l00194">IUTF8String.h:194</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a27ba1868ebc552bef10fe156bd4e340b"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a27ba1868ebc552bef10fe156bd4e340b">AdobeXMPCommon::pIUTF8String</a></div><div class="ttdeci">IUTF8String * pIUTF8String</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00075">XMPCommonFwdDeclarations.h:75</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_aa9b2c45fd472c6e0e322a94c87e36e23"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#aa9b2c45fd472c6e0e322a94c87e36e23">AdobeXMPCommon::pcIUTF8String</a></div><div class="ttdeci">const IUTF8String * pcIUTF8String</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00076">XMPCommonFwdDeclarations.h:76</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></div><div class="ttdoc">Version1 of the interface that represents an error/warning encountered during processing. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00026">IError.h:26</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a1c85c2f558b495c3d41eabe692a96cf2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a></div><div class="ttdeci">uint32 sizet</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00146">XMPCommonDefines.h:146</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IUTF8String__v1_html_a7b58ccfe2131a133db0e2fdcfc4f6baf"><div class="ttname"><a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a7b58ccfe2131a133db0e2fdcfc4f6baf">AdobeXMPCommon::IUTF8String_v1::rfind</a></div><div class="ttdeci">sizet rfind(const char *buf, sizet pos=npos) const </div><div class="ttdoc">Find last occurrence of content in string. </div><div class="ttdef"><b>Definition:</b> <a href="IUTF8String_8h_source.html#l00243">IUTF8String.h:243</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1ISharedObject_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></div><div class="ttdoc">Interface that serves as the base interface of all the externally exposed interfaces. </div><div class="ttdef"><b>Definition:</b> <a href="ISharedObject_8h_source.html#l00027">ISharedObject.h:27</a></div></div>
+<div class="ttc" id="IVersionable_8h_html"><div class="ttname"><a href="IVersionable_8h.html">IVersionable.h</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IUTF8String__v1_html_a709ce9d5053d7fdc30a0735112844305"><div class="ttname"><a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a709ce9d5053d7fdc30a0735112844305">AdobeXMPCommon::IUTF8String_v1::compare</a></div><div class="ttdeci">int32 compare(const spcIUTF8String &amp;str) const </div><div class="ttdoc">Compare strings. </div><div class="ttdef"><b>Definition:</b> <a href="IUTF8String_8h_source.html#l00347">IUTF8String.h:347</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a070d4ea981e6080468e9a3cdbd82b458"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a070d4ea981e6080468e9a3cdbd82b458">AdobeXMPCommon::int32</a></div><div class="ttdeci">XMP_Int32 int32</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00143">XMPCommonDefines.h:143</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a0863cf1c24764306839671985373b93f"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a0863cf1c24764306839671985373b93f">AdobeXMPCommon::pIObjectFactory</a></div><div class="ttdeci">IObjectFactory * pIObjectFactory</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00055">XMPCommonFwdDeclarations.h:55</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html"><div class="ttname"><a href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a></div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00019">IConfigurable.h:19</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a89e9297f497c2b3f1179788c31d24da4"><div class="ttname"><a href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a></div><div class="ttdeci">#define REQ_FRIEND_CLASS_DECLARATION()</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00107">XMPCommonDefines.h:107</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IUTF8String__v1_html_a745714ed2abbc6a2808fb933cc6b2f46"><div class="ttname"><a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a745714ed2abbc6a2808fb933cc6b2f46">AdobeXMPCommon::IUTF8String_v1::compare</a></div><div class="ttdeci">int32 compare(const char *buf) const </div><div class="ttdoc">Compare strings. </div><div class="ttdef"><b>Definition:</b> <a href="IUTF8String_8h_source.html#l00283">IUTF8String.h:283</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IVersionable_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></div><div class="ttdoc">Interface that serves as the base interface for all the externally exposed interfaces which needs to ...</div><div class="ttdef"><b>Definition:</b> <a href="IVersionable_8h_source.html#l00028">IVersionable.h:28</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html_a917e8e3f02685ec390fa3aee270f7747"><div class="ttname"><a href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a></div><div class="ttdeci">#define XMP_PRIVATE</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00189">XMP_Environment.h:189</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IUTF8String__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></div><div class="ttdoc">Version1 of the interface that represents an UTF8String. </div><div class="ttdef"><b>Definition:</b> <a href="IUTF8String_8h_source.html#l00023">IUTF8String.h:23</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a0b1bbe96e1a757e66974c2f076afe4d2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">AdobeXMPCommon::uint32</a></div><div class="ttdeci">XMP_Uns32 uint32</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00144">XMPCommonDefines.h:144</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_ac9d7760a1805b1e28828511a2c8c5588"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">AdobeXMPCommon::spIUTF8String</a></div><div class="ttdeci">shared_ptr&lt; IUTF8String &gt; spIUTF8String</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00077">XMPCommonFwdDeclarations.h:77</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a97f984a3b999db35dd915b17322c8c7f"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a97f984a3b999db35dd915b17322c8c7f">AdobeXMPCommon::kIUTF8StringID</a></div><div class="ttdeci">static const uint64 kIUTF8StringID(0x6e55544638537472)</div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/IVersionable_8h.html b/docs/API/IVersionable_8h.html
new file mode 100755
index 0000000..0387fd1
--- /dev/null
+++ b/docs/API/IVersionable_8h.html
@@ -0,0 +1,66 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/Interfaces/BaseInterfaces/IVersionable.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('IVersionable_8h.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">IVersionable.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommon/XMPCommonFwdDeclarations.h</a>&quot;</code><br />
+</div>
+<p><a href="IVersionable_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface that serves as the base interface for all the externally exposed interfaces which needs to provide evolving versions of the interface. <a href="classAdobeXMPCommon_1_1IVersionable.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceAdobeXMPCommon"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/IVersionable_8h_source.html b/docs/API/IVersionable_8h_source.html
new file mode 100755
index 0000000..b345e14
--- /dev/null
+++ b/docs/API/IVersionable_8h_source.html
@@ -0,0 +1,62 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/Interfaces/BaseInterfaces/IVersionable.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('IVersionable_8h_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">IVersionable.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="IVersionable_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef IVersionable_h__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define IVersionable_h__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// ADOBE SYSTEMS INCORPORATED</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// Copyright 2015 Adobe Systems Incorporated</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// All Rights Reserved</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="XMPCommonFwdDeclarations_8h.html">XMPCommon/XMPCommonFwdDeclarations.h</a>&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a> {</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IVersionable.html"> 28</a></span>&#160; <span class="keyword">class </span><a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="classAdobeXMPCommon_1_1IVersionable.html">IVersionable</a> {</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">template</span>&lt; <span class="keyword">typename</span> requestedInterface &gt;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54"> 38</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> requestedInterface * <a class="code" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a>() {</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ab59e650373a5efadfbfd2486313258a6">pvoid</a> ptr = GetInterfacePointer( requestedInterface::GetInterfaceID(),</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; requestedInterface::GetInterfaceVersion() );</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span> requestedInterface * <span class="keyword">&gt;</span>( ptr );</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; }</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">template</span>&lt; <span class="keyword">typename</span> requestedInterface &gt;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070"> 51</a></span>&#160; <a class="code" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <span class="keyword">const</span> requestedInterface * <a class="code" href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070">GetInterfacePointer</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> <a class="code" href="classAdobeXMPCommon_1_1IVersionable.html">IVersionable</a> * <span class="keyword">&gt;</span>( this )-&gt;GetInterfacePointer&lt; requestedInterface &gt;();</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; }</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826"> 56</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a>() {}</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#ab59e650373a5efadfbfd2486313258a6">pvoid</a> APICALL GetInterfacePointer( <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> interfaceID, <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> interfaceVersion ) = 0;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="comment">// all safe functions</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceAdobeXMPCommon.html#ab59e650373a5efadfbfd2486313258a6">pvoid</a> APICALL getInterfacePointer( <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> interfaceID, <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> interfaceVersion, <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a> &amp; error ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a> = 0;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor"> #ifdef FRIEND_CLASS_DECLARATION</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; FRIEND_CLASS_DECLARATION();</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a>();</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; };</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;}</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor">#endif // IVersionable_h__</span></div><div class="ttc" id="namespaceAdobeXMPCommon_html_aea1d692da07b844d1f642b47ea6a91bd"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">AdobeXMPCommon::uint64</a></div><div class="ttdeci">XMP_Uns64 uint64</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00142">XMPCommonDefines.h:142</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html_aac6a4810b1f485f147ab833be63f4d7b"><div class="ttname"><a href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a></div><div class="ttdeci">#define XMP_PUBLIC</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00188">XMP_Environment.h:188</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a5a929113d3d50bda3fb7135a5c8b24a2"><div class="ttname"><a href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></div><div class="ttdeci">#define __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00117">XMPCommonDefines.h:117</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IVersionable_html_a3ccd9a1bdf7008906e094fb4e7f69826"><div class="ttname"><a href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">AdobeXMPCommon::IVersionable::~IVersionable</a></div><div class="ttdeci">virtual ~IVersionable()</div><div class="ttdef"><b>Definition:</b> <a href="IVersionable_8h_source.html#l00056">IVersionable.h:56</a></div></div>
+<div class="ttc" id="XMPCommonFwdDeclarations_8h_html"><div class="ttname"><a href="XMPCommonFwdDeclarations_8h.html">XMPCommonFwdDeclarations.h</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IVersionable_html_ad6539461695decfaea8a44798db51e54"><div class="ttname"><a href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">AdobeXMPCommon::IVersionable::GetInterfacePointer</a></div><div class="ttdeci">XMP_PRIVATE requestedInterface * GetInterfacePointer()</div><div class="ttdoc">Get the raw pointer to an interface object implementing the requested version. </div><div class="ttdef"><b>Definition:</b> <a href="IVersionable_8h_source.html#l00038">IVersionable.h:38</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IVersionable_html_ab93a940e2946c14a76ebbd9552cab070"><div class="ttname"><a href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070">AdobeXMPCommon::IVersionable::GetInterfacePointer</a></div><div class="ttdeci">XMP_PRIVATE const requestedInterface * GetInterfacePointer() const </div><div class="ttdoc">Get the raw pointer to a const interface object implementing the requested version. </div><div class="ttdef"><b>Definition:</b> <a href="IVersionable_8h_source.html#l00051">IVersionable.h:51</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></div><div class="ttdoc">Version1 of the interface that represents an error/warning encountered during processing. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00026">IError.h:26</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_ab59e650373a5efadfbfd2486313258a6"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#ab59e650373a5efadfbfd2486313258a6">AdobeXMPCommon::pvoid</a></div><div class="ttdeci">void * pvoid</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00044">XMPCommonFwdDeclarations.h:44</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html"><div class="ttname"><a href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a></div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00019">IConfigurable.h:19</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a89e9297f497c2b3f1179788c31d24da4"><div class="ttname"><a href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a></div><div class="ttdeci">#define REQ_FRIEND_CLASS_DECLARATION()</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00107">XMPCommonDefines.h:107</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IVersionable_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></div><div class="ttdoc">Interface that serves as the base interface for all the externally exposed interfaces which needs to ...</div><div class="ttdef"><b>Definition:</b> <a href="IVersionable_8h_source.html#l00028">IVersionable.h:28</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html_a917e8e3f02685ec390fa3aee270f7747"><div class="ttname"><a href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a></div><div class="ttdeci">#define XMP_PRIVATE</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00189">XMP_Environment.h:189</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a0b1bbe96e1a757e66974c2f076afe4d2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">AdobeXMPCommon::uint32</a></div><div class="ttdeci">XMP_Uns32 uint32</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00144">XMPCommonDefines.h:144</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/Overview_8txt.html b/docs/API/Overview_8txt.html
new file mode 100755
index 0000000..39f9b2f
--- /dev/null
+++ b/docs/API/Overview_8txt.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/Overview.txt File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('Overview_8txt.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/Overview.txt File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/TWrapperFunctions2_8h.html b/docs/API/TWrapperFunctions2_8h.html
new file mode 100755
index 0000000..2949bd8
--- /dev/null
+++ b/docs/API/TWrapperFunctions2_8h.html
@@ -0,0 +1,50 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/Utilities/TWrapperFunctions2.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('TWrapperFunctions2_8h.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">TWrapperFunctions2.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="TWrapperFunctions2_8h_source.html">Go to the source code of this file.</a></p>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/TWrapperFunctions2_8h_source.html b/docs/API/TWrapperFunctions2_8h_source.html
new file mode 100755
index 0000000..540b41e
--- /dev/null
+++ b/docs/API/TWrapperFunctions2_8h_source.html
@@ -0,0 +1,50 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/Utilities/TWrapperFunctions2.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('TWrapperFunctions2_8h_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">TWrapperFunctions2.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="TWrapperFunctions2_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef TWrapperFunctions2_h__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define TWrapperFunctions2_h__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// ADOBE SYSTEMS INCORPORATED</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// Copyright 2015 Adobe Systems Incorporated</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// All Rights Reserved</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a> {</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name &gt;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keywordtype">void</span> CallSafeFunctionReturningVoid( className * ptr,</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keywordtype">void</span> ( APICALL className::*Func )( <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ) )</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; {</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; ( ptr-&gt;*Func )( error );</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; }</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">template</span>&lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> t1 &gt;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keywordtype">void</span> CallSafeFunctionReturningVoid( className * ptr,</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keywordtype">void</span> ( APICALL className::*Func )( t1, <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ), t1 v1 )</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; {</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; ( ptr-&gt;*Func )( v1, error );</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; }</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">template</span>&lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> t1, <span class="keyword">typename</span> t2 &gt;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordtype">void</span> CallSafeFunctionReturningVoid( className * ptr,</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordtype">void</span> ( APICALL className::*Func )( t1, t2, <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ), t1 v1, t2 v2 )</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; {</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; ( ptr-&gt;*Func )( v1, v2, error );</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; }</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">template</span>&lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> t1, <span class="keyword">typename</span> t2, <span class="keyword">typename</span> t3 &gt;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordtype">void</span> CallSafeFunctionReturningVoid( className * ptr,</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordtype">void</span> ( APICALL className::*Func )( t1, t2, t3, <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ), t1 v1, t2 v2, t3 v3 )</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; {</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; ( ptr-&gt;*Func )( v1, v2, v3, error );</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; }</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">template</span>&lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> t1, <span class="keyword">typename</span> t2, <span class="keyword">typename</span> t3, <span class="keyword">typename</span> t4 &gt;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordtype">void</span> CallSafeFunctionReturningVoid( className * ptr,</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordtype">void</span> ( APICALL className::*Func )( t1, t2, t3, t4, <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ), t1 v1, t2 v2, t3 v3, t4 v4 )</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; {</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; ( ptr-&gt;*Func )( v1, v2, v3, v4, error );</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; }</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">template</span>&lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> t1, <span class="keyword">typename</span> t2, <span class="keyword">typename</span> t3, <span class="keyword">typename</span> t4, <span class="keyword">typename</span> t5 &gt;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordtype">void</span> CallSafeFunctionReturningVoid( className * ptr,</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordtype">void</span> ( APICALL className::*Func )( t1, t2, t3, t4, t5, <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ), t1 v1, t2 v2, t3 v3, t4 v4, t5 v5 )</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; ( ptr-&gt;*Func )( v1, v2, v3, v4, v5, error );</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; }</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">template</span>&lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> t1, <span class="keyword">typename</span> t2, <span class="keyword">typename</span> t3, <span class="keyword">typename</span> t4, <span class="keyword">typename</span> t5, <span class="keyword">typename</span> t6 &gt;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordtype">void</span> CallSafeFunctionReturningVoid( className * ptr,</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordtype">void</span> ( APICALL className::*Func )( t1, t2, t3, t4, t5, t6, <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ), t1 v1, t2 v2, t3 v3, t4 v4, t5 v5, t6 v6 )</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; ( ptr-&gt;*Func )( v1, v2, v3, v4, v5, error );</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; }</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name &gt;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordtype">void</span> CallConstSafeFunctionReturningVoid( <span class="keyword">const</span> className * <span class="keyword">const</span> ptr,</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordtype">void</span> ( APICALL className::*Func )( <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ) <span class="keyword">const</span> )</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; ( ptr-&gt;*Func )( error );</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; }</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> t1 &gt;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordtype">void</span> CallConstSafeFunctionReturningVoid( <span class="keyword">const</span> className * <span class="keyword">const</span> ptr,</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordtype">void</span> ( APICALL className::*Func )( t1, <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ) <span class="keyword">const</span>, t1 v1 )</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; ( ptr-&gt;*Func )( v1, error );</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; }</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> t1, <span class="keyword">typename</span> t2 &gt;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordtype">void</span> CallConstSafeFunctionReturningVoid( <span class="keyword">const</span> className * <span class="keyword">const</span> ptr,</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordtype">void</span> ( APICALL className::*Func )( t1, t2, <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ) <span class="keyword">const</span>, t1 v1, t2 v2 )</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; ( ptr-&gt;*Func )( v1, v2, error );</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; }</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> t1, <span class="keyword">typename</span> t2, <span class="keyword">typename</span> t3 &gt;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordtype">void</span> CallConstSafeFunctionReturningVoid( <span class="keyword">const</span> className * <span class="keyword">const</span> ptr,</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordtype">void</span> ( APICALL className::*Func )( t1, t2, t3, <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ) <span class="keyword">const</span>, t1 v1, t2 v2, t3 v3 )</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; ( ptr-&gt;*Func )( v1, v2, v3, error );</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> t1, <span class="keyword">typename</span> t2, <span class="keyword">typename</span> t3, <span class="keyword">typename</span> t4 &gt;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordtype">void</span> CallConstSafeFunctionReturningVoid( <span class="keyword">const</span> className * <span class="keyword">const</span> ptr,</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordtype">void</span> ( APICALL className::*Func )( t1, t2, t3, t4, <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ) <span class="keyword">const</span>, t1 v1, t2 v2, t3 v3, t4 v4 )</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; {</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; ( ptr-&gt;*Func )( v1, v2, v3, v4, error );</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; }</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> t1, <span class="keyword">typename</span> t2, <span class="keyword">typename</span> t3, <span class="keyword">typename</span> t4, <span class="keyword">typename</span> t5 &gt;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordtype">void</span> CallConstSafeFunctionReturningVoid( <span class="keyword">const</span> className * <span class="keyword">const</span> ptr,</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordtype">void</span> ( APICALL className::*Func )( t1, t2, t3, t4, t5, <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ) <span class="keyword">const</span>, t1 v1, t2 v2, t3 v3, t4 v4, t5 v5 )</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; {</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; ( ptr-&gt;*Func )( v1, v2, v3, v4, v5, error );</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; }</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> returnType, <span class="keyword">typename</span> <span class="keywordtype">int</span>ernalReturnType &gt;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; returnType CallSafeFunction( className * ptr,</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; internalReturnType ( APICALL className::*Func )( <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ) )</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; {</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; internalReturnType returnValue = (ptr-&gt;*Func)( error );</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="preprocessor"> #if XMP_WinBuild</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="preprocessor"> #pragma warning( push )</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="preprocessor"> #pragma warning( disable : 4800 )</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span> returnType <span class="keyword">&gt;</span>( returnValue );</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="preprocessor"> #if XMP_WinBuild</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="preprocessor"> #pragma warning( pop )</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; }</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> returnType, <span class="keyword">typename</span> <span class="keywordtype">int</span>ernalReturnType, <span class="keyword">typename</span> t1 &gt;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; returnType CallSafeFunction( className * ptr,</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; internalReturnType ( APICALL className::*Func )( t1, <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ), t1 v1 )</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; {</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; internalReturnType returnValue = (ptr-&gt;*Func)( v1, error );</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="preprocessor"> #if XMP_WinBuild</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="preprocessor"> #pragma warning( push )</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="preprocessor"> #pragma warning( disable : 4800 )</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span> returnType <span class="keyword">&gt;</span>( returnValue );</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="preprocessor"> #if XMP_WinBuild</span></div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="preprocessor"> #pragma warning( pop )</span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; }</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> returnType, <span class="keyword">typename</span> <span class="keywordtype">int</span>ernalReturnType, <span class="keyword">typename</span> t1, <span class="keyword">typename</span> t2 &gt;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; returnType CallSafeFunction( className * ptr,</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; internalReturnType ( APICALL className::*Func )( t1, t2, <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ), t1 v1, t2 v2 )</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; {</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; internalReturnType returnValue = (ptr-&gt;*Func)( v1, v2, error );</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="preprocessor"> #if XMP_WinBuild</span></div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="preprocessor"> #pragma warning( push )</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="preprocessor"> #pragma warning( disable : 4800 )</span></div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span> returnType <span class="keyword">&gt;</span>( returnValue );</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="preprocessor"> #if XMP_WinBuild</span></div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="preprocessor"> #pragma warning( pop )</span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; }</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> returnType, <span class="keyword">typename</span> <span class="keywordtype">int</span>ernalReturnType, <span class="keyword">typename</span> t1, <span class="keyword">typename</span> t2, <span class="keyword">typename</span> t3 &gt;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; returnType CallSafeFunction( className * ptr,</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; internalReturnType( APICALL className::*Func )( t1, t2, t3, <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ), t1 v1, t2 v2, t3 v3 )</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; {</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; internalReturnType returnValue = ( ptr-&gt;*Func )( v1, v2, v3, error );</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="preprocessor"> #if XMP_WinBuild</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="preprocessor"> #pragma warning( push )</span></div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="preprocessor"> #pragma warning( disable : 4800 )</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span> returnType <span class="keyword">&gt;</span>( returnValue );</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="preprocessor"> #if XMP_WinBuild</span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="preprocessor"> #pragma warning( pop )</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; }</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> returnType, <span class="keyword">typename</span> <span class="keywordtype">int</span>ernalReturnType, <span class="keyword">typename</span> t1, <span class="keyword">typename</span> t2, <span class="keyword">typename</span> t3, <span class="keyword">typename</span> t4 &gt;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; returnType CallSafeFunction( className * ptr,</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; internalReturnType( APICALL className::*Func )( t1, t2, t3, t4, <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ), t1 v1, t2 v2, t3 v3, t4 v4 )</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; {</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; internalReturnType returnValue = ( ptr-&gt;*Func )( v1, v2, v3, v4, error );</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="preprocessor"> #if XMP_WinBuild</span></div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="preprocessor"> #pragma warning( push )</span></div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor"> #pragma warning( disable : 4800 )</span></div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span> returnType <span class="keyword">&gt;</span>( returnValue );</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="preprocessor"> #if XMP_WinBuild</span></div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="preprocessor"> #pragma warning( pop )</span></div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; }</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> returnType, <span class="keyword">typename</span> <span class="keywordtype">int</span>ernalReturnType, <span class="keyword">typename</span> t1, <span class="keyword">typename</span> t2, <span class="keyword">typename</span> t3, <span class="keyword">typename</span> t4, <span class="keyword">typename</span> t5 &gt;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; returnType CallSafeFunction( className * ptr,</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; internalReturnType( APICALL className::*Func )( t1, t2, t3, t4, t5, <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ), t1 v1, t2 v2, t3 v3, t4 v4, t5 v5 )</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; {</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; internalReturnType returnValue = ( ptr-&gt;*Func )( v1, v2, v3, v4, v5, error );</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="preprocessor"> #if XMP_WinBuild</span></div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="preprocessor"> #pragma warning( push )</span></div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="preprocessor"> #pragma warning( disable : 4800 )</span></div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span> returnType <span class="keyword">&gt;</span>( returnValue );</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="preprocessor"> #if XMP_WinBuild</span></div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="preprocessor"> #pragma warning( pop )</span></div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; }</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; </div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="comment">// Fixing AML build on mac</span></div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> returnType, <span class="keyword">typename</span> <span class="keywordtype">int</span>ernalReturnType, <span class="keyword">typename</span> t1, <span class="keyword">typename</span> t2, <span class="keyword">typename</span> t3, <span class="keyword">typename</span> t4, <span class="keyword">typename</span> t5, <span class="keyword">typename</span> t6 &gt;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; returnType CallSafeFunction( className * ptr,</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; internalReturnType( APICALL className::*Func )( t1, t2, t3, t4, t5, t6, <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ), t1 v1, t2 v2, t3 v3, t4 v4, t5 v5, t6 v6 )</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; {</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; internalReturnType returnValue = ( ptr-&gt;*Func )( v1, v2, v3, v4, v5, v6, error );</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="preprocessor"> #if XMP_WinBuild</span></div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="preprocessor"> #pragma warning( push )</span></div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="preprocessor"> #pragma warning( disable : 4800 )</span></div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span> returnType <span class="keyword">&gt;</span>( returnValue );</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="preprocessor"> #if XMP_WinBuild</span></div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="preprocessor"> #pragma warning( pop )</span></div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; }</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> returnType, <span class="keyword">typename</span> <span class="keywordtype">int</span>ernalReturnType &gt;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; returnType CallConstSafeFunction( <span class="keyword">const</span> className * <span class="keyword">const</span> ptr,</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; internalReturnType ( APICALL className::*Func )( <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ) <span class="keyword">const</span> )</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; {</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; internalReturnType returnValue = (ptr-&gt;*Func)( error );</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="preprocessor"> #if XMP_WinBuild</span></div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="preprocessor"> #pragma warning( push )</span></div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="preprocessor"> #pragma warning( disable : 4800 )</span></div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span> returnType <span class="keyword">&gt;</span>( returnValue );</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="preprocessor"> #if XMP_WinBuild</span></div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="preprocessor"> #pragma warning( pop )</span></div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; }</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> returnType, <span class="keyword">typename</span> <span class="keywordtype">int</span>ernalReturnType, <span class="keyword">typename</span> t1 &gt;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; returnType CallConstSafeFunction( <span class="keyword">const</span> className * <span class="keyword">const</span> ptr,</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; internalReturnType ( APICALL className::*Func )( t1, <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ) <span class="keyword">const</span>, t1 v1 )</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; {</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; internalReturnType returnValue = (ptr-&gt;*Func)( v1, error );</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="preprocessor"> #if XMP_WinBuild</span></div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="preprocessor"> #pragma warning( push )</span></div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="preprocessor"> #pragma warning( disable : 4800 )</span></div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span> returnType <span class="keyword">&gt;</span>( returnValue );</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="preprocessor"> #if XMP_WinBuild</span></div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<span class="preprocessor"> #pragma warning( pop )</span></div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; }</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> returnType, <span class="keyword">typename</span> <span class="keywordtype">int</span>ernalReturnType, <span class="keyword">typename</span> t1, <span class="keyword">typename</span> t2 &gt;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; returnType CallConstSafeFunction( <span class="keyword">const</span> className * <span class="keyword">const</span> ptr,</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; internalReturnType ( APICALL className::*Func )( t1, t2, <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ) <span class="keyword">const</span>, t1 v1, t2 v2 )</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; {</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; internalReturnType returnValue = (ptr-&gt;*Func)( v1, v2, error );</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;<span class="preprocessor"> #if XMP_WinBuild</span></div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;<span class="preprocessor"> #pragma warning( push )</span></div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="preprocessor"> #pragma warning( disable : 4800 )</span></div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span> returnType <span class="keyword">&gt;</span>( returnValue );</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;<span class="preprocessor"> #if XMP_WinBuild</span></div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;<span class="preprocessor"> #pragma warning( pop )</span></div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; }</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> returnType, <span class="keyword">typename</span> <span class="keywordtype">int</span>ernalReturnType, <span class="keyword">typename</span> t1, <span class="keyword">typename</span> t2, <span class="keyword">typename</span> t3 &gt;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; returnType CallConstSafeFunction( <span class="keyword">const</span> className * <span class="keyword">const</span> ptr,</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; internalReturnType ( APICALL className::*Func )( t1, t2, t3, <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ) <span class="keyword">const</span>, t1 v1, t2 v2, t3 v3 )</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; {</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; internalReturnType returnValue = (ptr-&gt;*Func)( v1, v2, v3, error );</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<span class="preprocessor"> #if XMP_WinBuild</span></div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="preprocessor"> #pragma warning( push )</span></div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;<span class="preprocessor"> #pragma warning( disable : 4800 )</span></div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span> returnType <span class="keyword">&gt;</span>( returnValue );</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;<span class="preprocessor"> #if XMP_WinBuild</span></div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;<span class="preprocessor"> #pragma warning( pop )</span></div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; }</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> returnType, <span class="keyword">typename</span> <span class="keywordtype">int</span>ernalReturnType, <span class="keyword">typename</span> t1, <span class="keyword">typename</span> t2, <span class="keyword">typename</span> t3, <span class="keyword">typename</span> t4 &gt;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; returnType CallConstSafeFunction( <span class="keyword">const</span> className * <span class="keyword">const</span> ptr,</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; internalReturnType ( APICALL className::*Func )( t1, t2, t3, t4, <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ) <span class="keyword">const</span>, t1 v1, t2 v2, t3 v3, t4 v4 )</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; {</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; internalReturnType returnValue = (ptr-&gt;*Func)( v1, v2, v3, v4, error );</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;<span class="preprocessor"> #if XMP_WinBuild</span></div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;<span class="preprocessor"> #pragma warning( push )</span></div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;<span class="preprocessor"> #pragma warning( disable : 4800 )</span></div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span> returnType <span class="keyword">&gt;</span>( returnValue );</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;<span class="preprocessor"> #if XMP_WinBuild</span></div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;<span class="preprocessor"> #pragma warning( pop )</span></div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; }</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> returnType, <span class="keyword">typename</span> <span class="keywordtype">int</span>ernalReturnType, <span class="keyword">typename</span> t1, <span class="keyword">typename</span> t2, <span class="keyword">typename</span> t3, <span class="keyword">typename</span> t4, <span class="keyword">typename</span> t5 &gt;</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; returnType CallConstSafeFunction( <span class="keyword">const</span> className * <span class="keyword">const</span> ptr,</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; internalReturnType ( APICALL className::*Func )( t1, t2, t3, t4, t5, <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ) <span class="keyword">const</span>, t1 v1, t2 v2, t3 v3, t4 v4, t5 v5 )</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; {</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; internalReturnType returnValue = (ptr-&gt;*Func)( v1, v2, v3, v4, v5, error );</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;<span class="preprocessor"> #if XMP_WinBuild</span></div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;<span class="preprocessor"> #pragma warning( push )</span></div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;<span class="preprocessor"> #pragma warning( disable : 4800 )</span></div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span> returnType <span class="keyword">&gt;</span>( returnValue );</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;<span class="preprocessor"> #if XMP_WinBuild</span></div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;<span class="preprocessor"> #pragma warning( pop )</span></div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; }</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; </div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="comment">//Fixing AML build on mac</span></div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; </div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> returnType, <span class="keyword">typename</span> <span class="keywordtype">int</span>ernalReturnType, <span class="keyword">typename</span> t1, <span class="keyword">typename</span> t2, <span class="keyword">typename</span> t3, <span class="keyword">typename</span> t4, <span class="keyword">typename</span> t5, <span class="keyword">typename</span> t6 &gt;</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; returnType CallConstSafeFunction( <span class="keyword">const</span> className * <span class="keyword">const</span> ptr,</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; internalReturnType ( APICALL className::*Func )( t1, t2, t3, t4, t5, t6, <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ) <span class="keyword">const</span>, t1 v1, t2 v2, t3 v3, t4 v4, t5 v5, t6 v6 )</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; {</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; internalReturnType returnValue = (ptr-&gt;*Func)( v1, v2, v3, v4, v5, v6, error );</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;<span class="preprocessor"> #if XMP_WinBuild</span></div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;<span class="preprocessor"> #pragma warning( push )</span></div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;<span class="preprocessor"> #pragma warning( disable : 4800 )</span></div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span> returnType <span class="keyword">&gt;</span>( returnValue );</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;<span class="preprocessor"> #if XMP_WinBuild</span></div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;<span class="preprocessor"> #pragma warning( pop )</span></div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; }</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; </div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> returnType, <span class="keyword">typename</span> <span class="keywordtype">int</span>ernalReturnType, <span class="keyword">typename</span> t1, <span class="keyword">typename</span> t2, <span class="keyword">typename</span> t3, <span class="keyword">typename</span> t4, <span class="keyword">typename</span> t5, <span class="keyword">typename</span> t6, <span class="keyword">typename</span> t7 &gt;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; returnType CallConstSafeFunction( <span class="keyword">const</span> className * <span class="keyword">const</span> ptr,</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; internalReturnType ( APICALL className::*Func )( t1, t2, t3, t4, t5, t6, t7, <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ) <span class="keyword">const</span>, t1 v1, t2 v2, t3 v3, t4 v4, t5 v5, t6 v6, t7 v7 )</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; {</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; internalReturnType returnValue = (ptr-&gt;*Func)( v1, v2, v3, v4, v5, v6, v7, error );</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="preprocessor"> #if XMP_WinBuild</span></div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="preprocessor"> #pragma warning( push )</span></div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="preprocessor"> #pragma warning( disable : 4800 )</span></div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span> returnType <span class="keyword">&gt;</span>( returnValue );</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;<span class="preprocessor"> #if XMP_WinBuild</span></div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;<span class="preprocessor"> #pragma warning( pop )</span></div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; }</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; </div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> returnType, <span class="keyword">typename</span> <span class="keywordtype">int</span>ernalReturnType, <span class="keyword">typename</span> t1, <span class="keyword">typename</span> t2, <span class="keyword">typename</span> t3, <span class="keyword">typename</span> t4, <span class="keyword">typename</span> t5, <span class="keyword">typename</span> t6, <span class="keyword">typename</span> t7, <span class="keyword">typename</span> t8, <span class="keyword">typename</span> t9 &gt;</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; returnType CallConstSafeFunction( <span class="keyword">const</span> className * <span class="keyword">const</span> ptr,</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; internalReturnType ( APICALL className::*Func )( t1, t2, t3, t4, t5, t6, t7, t8, t9, <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ) <span class="keyword">const</span>, t1 v1, t2 v2, t3 v3, t4 v4, t5 v5, t6 v6, t7 v7, t8 v8, t9 v9 )</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; {</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; internalReturnType returnValue = (ptr-&gt;*Func)( v1, v2, v3, v4, v5, v6, v7, v8, v9, error );</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;<span class="preprocessor"> #if XMP_WinBuild</span></div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;<span class="preprocessor"> #pragma warning( push )</span></div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;<span class="preprocessor"> #pragma warning( disable : 4800 )</span></div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span> returnType <span class="keyword">&gt;</span>( returnValue );</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;<span class="preprocessor"> #if XMP_WinBuild</span></div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;<span class="preprocessor"> #pragma warning( pop )</span></div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; }</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; </div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; </div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> <span class="keywordtype">int</span>ernalReturnType, <span class="keyword">typename</span> sharedPo<span class="keywordtype">int</span>erType &gt;</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; shared_ptr&lt; sharedPointerType &gt; CallSafeFunctionReturningPointer( className * ptr,</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; internalReturnType( APICALL className::*Func )( <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ) )</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; {</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; internalReturnType returnValue = ( ptr-&gt;*Func )( error );</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keywordflow">return</span> sharedPointerType::MakeShared( returnValue );</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; }</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> <span class="keywordtype">int</span>ernalReturnType, <span class="keyword">typename</span> sharedPo<span class="keywordtype">int</span>erType, <span class="keyword">typename</span> t1 &gt;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; shared_ptr&lt; sharedPointerType &gt; CallSafeFunctionReturningPointer( className * ptr,</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; internalReturnType( APICALL className::*Func )( t1, <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ), t1 v1 )</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; {</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; internalReturnType returnValue = ( ptr-&gt;*Func )( v1, error );</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordflow">return</span> sharedPointerType::MakeShared( returnValue );</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; }</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> <span class="keywordtype">int</span>ernalReturnType, <span class="keyword">typename</span> sharedPo<span class="keywordtype">int</span>erType, <span class="keyword">typename</span> t1, <span class="keyword">typename</span> t2 &gt;</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; shared_ptr&lt; sharedPointerType &gt; CallSafeFunctionReturningPointer( className * ptr,</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; internalReturnType( APICALL className::*Func )( t1, t2, <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ), t1 v1, t2 v2 )</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; {</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; internalReturnType returnValue = ( ptr-&gt;*Func )( v1, v2, error );</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keywordflow">return</span> sharedPointerType::MakeShared( returnValue );</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; }</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> <span class="keywordtype">int</span>ernalReturnType, <span class="keyword">typename</span> sharedPo<span class="keywordtype">int</span>erType, <span class="keyword">typename</span> t1, <span class="keyword">typename</span> t2, <span class="keyword">typename</span> t3 &gt;</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; shared_ptr&lt; sharedPointerType &gt; CallSafeFunctionReturningPointer( className * ptr,</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; internalReturnType( APICALL className::*Func )( t1, t2, t3, <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ), t1 v1, t2 v2, t3 v3 )</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; {</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; internalReturnType returnValue = ( ptr-&gt;*Func )( v1, v2, v3, error );</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keywordflow">return</span> sharedPointerType::MakeShared( returnValue );</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; }</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> <span class="keywordtype">int</span>ernalReturnType, <span class="keyword">typename</span> sharedPo<span class="keywordtype">int</span>erType, <span class="keyword">typename</span> t1, <span class="keyword">typename</span> t2, <span class="keyword">typename</span> t3, <span class="keyword">typename</span> t4 &gt;</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; shared_ptr&lt; sharedPointerType &gt; CallSafeFunctionReturningPointer( className * ptr,</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; internalReturnType( APICALL className::*Func )( t1, t2, t3, t4, <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ), t1 v1, t2 v2, t3 v3, t4 v4 )</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; {</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; internalReturnType returnValue = ( ptr-&gt;*Func )( v1, v2, v3, v4, error );</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keywordflow">return</span> sharedPointerType::MakeShared( returnValue );</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; }</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> <span class="keywordtype">int</span>ernalReturnType, <span class="keyword">typename</span> sharedPo<span class="keywordtype">int</span>erType, <span class="keyword">typename</span> t1, <span class="keyword">typename</span> t2, <span class="keyword">typename</span> t3, <span class="keyword">typename</span> t4, <span class="keyword">typename</span> t5 &gt;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; shared_ptr&lt; sharedPointerType &gt; CallSafeFunctionReturningPointer( className * ptr,</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; internalReturnType( APICALL className::*Func )( t1, t2, t3, t4, t5, <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ), t1 v1, t2 v2, t3 v3, t4 v4, t5 v5 )</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; {</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; internalReturnType returnValue = ( ptr-&gt;*Func )( v1, v2, v3, v4, v5, error );</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keywordflow">return</span> sharedPointerType::MakeShared( returnValue );</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; }</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> <span class="keywordtype">int</span>ernalReturnType, <span class="keyword">typename</span> sharedPo<span class="keywordtype">int</span>erType, <span class="keyword">typename</span> t1, <span class="keyword">typename</span> t2, <span class="keyword">typename</span> t3, <span class="keyword">typename</span> t4, <span class="keyword">typename</span> t5, <span class="keyword">typename</span> t6 &gt;</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; shared_ptr&lt; sharedPointerType &gt; CallSafeFunctionReturningPointer( className * ptr,</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; internalReturnType( APICALL className::*Func )( t1, t2, t3, t4, t5, t6, <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ), t1 v1, t2 v2, t3 v3, t4 v4, t5 v5, t6 v6 )</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; {</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; internalReturnType returnValue = ( ptr-&gt;*Func )( v1, v2, v3, v4, v5, v6, error );</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="keywordflow">return</span> sharedPointerType::MakeShared( returnValue );</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; }</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> <span class="keywordtype">int</span>ernalReturnType, <span class="keyword">typename</span> sharedPo<span class="keywordtype">int</span>erType &gt;</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; shared_ptr&lt; sharedPointerType &gt; CallConstSafeFunctionReturningPointer( <span class="keyword">const</span> className * <span class="keyword">const</span> ptr,</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; internalReturnType( APICALL className::*Func )( <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ) <span class="keyword">const</span> )</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; {</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; internalReturnType returnValue = ( ptr-&gt;*Func )( error );</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keywordflow">return</span> sharedPointerType::MakeShared( returnValue );</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; }</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> <span class="keywordtype">int</span>ernalReturnType, <span class="keyword">typename</span> sharedPo<span class="keywordtype">int</span>erType, <span class="keyword">typename</span> t1 &gt;</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; shared_ptr&lt; sharedPointerType &gt; CallConstSafeFunctionReturningPointer( <span class="keyword">const</span> className * <span class="keyword">const</span> ptr,</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; internalReturnType( APICALL className::*Func )( t1, <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ) <span class="keyword">const</span>, t1 v1 )</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; {</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; internalReturnType returnValue = ( ptr-&gt;*Func )( v1, error );</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="keywordflow">return</span> sharedPointerType::MakeShared( returnValue );</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; }</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> <span class="keywordtype">int</span>ernalReturnType, <span class="keyword">typename</span> sharedPo<span class="keywordtype">int</span>erType, <span class="keyword">typename</span> t1, <span class="keyword">typename</span> t2 &gt;</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; shared_ptr&lt; sharedPointerType &gt; CallConstSafeFunctionReturningPointer( <span class="keyword">const</span> className * <span class="keyword">const</span> ptr,</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; internalReturnType( APICALL className::*Func )( t1, t2, <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ) <span class="keyword">const</span>, t1 v1, t2 v2 )</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; {</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; internalReturnType returnValue = ( ptr-&gt;*Func )( v1, v2, error );</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <span class="keywordflow">return</span> sharedPointerType::MakeShared( returnValue );</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; }</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> <span class="keywordtype">int</span>ernalReturnType, <span class="keyword">typename</span> sharedPo<span class="keywordtype">int</span>erType, <span class="keyword">typename</span> t1, <span class="keyword">typename</span> t2, <span class="keyword">typename</span> t3 &gt;</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; shared_ptr&lt; sharedPointerType &gt; CallConstSafeFunctionReturningPointer( <span class="keyword">const</span> className * <span class="keyword">const</span> ptr,</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; internalReturnType( APICALL className::*Func )( t1, t2, t3, <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ) <span class="keyword">const</span>, t1 v1, t2 v2, t3 v3 )</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; {</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; internalReturnType returnValue = ( ptr-&gt;*Func )( v1, v2, v3, error );</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <span class="keywordflow">return</span> sharedPointerType::MakeShared( returnValue );</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; }</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> <span class="keywordtype">int</span>ernalReturnType, <span class="keyword">typename</span> sharedPo<span class="keywordtype">int</span>erType, <span class="keyword">typename</span> t1, <span class="keyword">typename</span> t2, <span class="keyword">typename</span> t3, <span class="keyword">typename</span> t4 &gt;</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; shared_ptr&lt; sharedPointerType &gt; CallConstSafeFunctionReturningPointer( <span class="keyword">const</span> className * <span class="keyword">const</span> ptr,</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; internalReturnType( APICALL className::*Func )( t1, t2, t3, t4, <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ) <span class="keyword">const</span>, t1 v1, t2 v2, t3 v3, t4 v4 )</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; {</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; internalReturnType returnValue = ( ptr-&gt;*Func )( v1, v2, v3, v4, error );</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <span class="keywordflow">return</span> sharedPointerType::MakeShared( returnValue );</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; }</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> <span class="keywordtype">int</span>ernalReturnType, <span class="keyword">typename</span> sharedPo<span class="keywordtype">int</span>erType, <span class="keyword">typename</span> t1, <span class="keyword">typename</span> t2, <span class="keyword">typename</span> t3, <span class="keyword">typename</span> t4, <span class="keyword">typename</span> t5 &gt;</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; shared_ptr&lt; sharedPointerType &gt; CallConstSafeFunctionReturningPointer( <span class="keyword">const</span> className * <span class="keyword">const</span> ptr,</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; internalReturnType( APICALL className::*Func )( t1, t2, t3, t4, t5, <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ) <span class="keyword">const</span>, t1 v1, t2 v2, t3 v3, t4 v4, t5 v5 )</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; {</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; internalReturnType returnValue = ( ptr-&gt;*Func )( v1, v2, v3, v4, v5, error );</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="keywordflow">return</span> sharedPointerType::MakeShared( returnValue );</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; }</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> <span class="keywordtype">int</span>ernalReturnType, <span class="keyword">typename</span> sharedPo<span class="keywordtype">int</span>erType, <span class="keyword">typename</span> t1, <span class="keyword">typename</span> t2, <span class="keyword">typename</span> t3, <span class="keyword">typename</span> t4, <span class="keyword">typename</span> t5, <span class="keyword">typename</span> t6 &gt;</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; shared_ptr&lt; sharedPointerType &gt; CallConstSafeFunctionReturningPointer( <span class="keyword">const</span> className * <span class="keyword">const</span> ptr,</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; internalReturnType( APICALL className::*Func )( t1, t2, t3, t4, t5, t6, <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ) <span class="keyword">const</span>, t1 v1, t2 v2, t3 v3, t4 v4, t5 v5, t6 v6 )</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; {</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; internalReturnType returnValue = ( ptr-&gt;*Func )( v1, v2, v3, v4, v5, v6, error );</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="keywordflow">return</span> sharedPointerType::MakeShared( returnValue );</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; }</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160;}</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;<span class="preprocessor">#endif // TWrapperFunctions2_h__</span></div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;</div><div class="ttc" id="namespaceAdobeXMPCommon_html_ae3cc983230819089dc742273902228c5"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">AdobeXMPCommon::pcIError_base</a></div><div class="ttdeci">const IError_v1 * pcIError_base</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00062">XMPCommonFwdDeclarations.h:62</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html"><div class="ttname"><a href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a></div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00019">IConfigurable.h:19</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/TWrapperFunctions_8h.html b/docs/API/TWrapperFunctions_8h.html
new file mode 100755
index 0000000..2653749
--- /dev/null
+++ b/docs/API/TWrapperFunctions_8h.html
@@ -0,0 +1,52 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/Utilities/TWrapperFunctions.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('TWrapperFunctions_8h.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">TWrapperFunctions.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="IError_8h_source.html">XMPCommon/Interfaces/IError.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="TWrapperFunctions2_8h_source.html">XMPCommon/Utilities/TWrapperFunctions2.h</a>&quot;</code><br />
+</div>
+<p><a href="TWrapperFunctions_8h_source.html">Go to the source code of this file.</a></p>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/TWrapperFunctions_8h_source.html b/docs/API/TWrapperFunctions_8h_source.html
new file mode 100755
index 0000000..9a0c517
--- /dev/null
+++ b/docs/API/TWrapperFunctions_8h_source.html
@@ -0,0 +1,52 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/Utilities/TWrapperFunctions.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('TWrapperFunctions_8h_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">TWrapperFunctions.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="TWrapperFunctions_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef TWrapperFunctions_h__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define TWrapperFunctions_h__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// ADOBE SYSTEMS INCORPORATED</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// Copyright 2014 Adobe Systems Incorporated</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// All Rights Reserved</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="IError_8h.html">XMPCommon/Interfaces/IError.h</a>&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#if SUPPORT_VARIADIC_TEMPLATES</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a> {</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name &gt;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordtype">void</span> CallSafeFunctionReturningVoid( className * ptr,</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordtype">void</span> ( APICALL className::*Func )( <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ) )</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; {</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; ( ptr-&gt;*Func )( error );</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; }</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">template</span>&lt; <span class="keyword">typename</span> className, <span class="keyword">typename</span> ... Ts &gt;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordtype">void</span> CallSafeFunctionReturningVoid( className * ptr,</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordtype">void</span> ( APICALL className::*Func )( Ts ..., <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ), Ts ... Vs )</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; {</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; ( ptr-&gt;*Func )( Vs ..., error );</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; }</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name &gt;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordtype">void</span> CallConstSafeFunctionReturningVoid( <span class="keyword">const</span> className * <span class="keyword">const</span> ptr,</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordtype">void</span> ( APICALL className::*Func )( <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ) <span class="keyword">const</span> )</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; ( ptr-&gt;*Func )( error );</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; }</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> className, <span class="keyword">typename</span> ... Ts &gt;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordtype">void</span> CallConstSafeFunctionReturningVoid( <span class="keyword">const</span> className * <span class="keyword">const</span> ptr,</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordtype">void</span> ( APICALL className::*Func )( Ts ..., <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ) <span class="keyword">const</span>, Ts ... Vs )</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; {</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; ( ptr-&gt;*Func )( Vs ..., error );</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; }</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> returnType, <span class="keyword">typename</span> <span class="keywordtype">int</span>ernalReturnType &gt;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; returnType CallSafeFunction( className * ptr,</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; internalReturnType ( APICALL className::*Func )( <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ) )</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; {</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; internalReturnType returnValue = (ptr-&gt;*Func)( error );</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="preprocessor"> #if XMP_WinBuild</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="preprocessor"> #pragma warning( push )</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="preprocessor"> #pragma warning( disable : 4800 )</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span> returnType <span class="keyword">&gt;</span>( returnValue );</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="preprocessor"> #if XMP_WinBuild</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="preprocessor"> #pragma warning( pop )</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> className, <span class="keyword">typename</span> returnType, <span class="keyword">typename</span> internalReturnType, <span class="keyword">typename</span> ... Ts &gt;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; returnType CallSafeFunction( className * ptr,</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; internalReturnType ( APICALL className::*Func )( Ts ..., <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ), Ts ... Vs )</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; {</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; internalReturnType returnValue = (ptr-&gt;*Func)( Vs ..., error );</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="preprocessor"> #if XMP_WinBuild</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="preprocessor"> #pragma warning( push )</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="preprocessor"> #pragma warning( disable : 4800 )</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span> returnType <span class="keyword">&gt;</span>( returnValue );</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="preprocessor"> #if XMP_WinBuild</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="preprocessor"> #pragma warning( pop )</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> returnType, <span class="keyword">typename</span> <span class="keywordtype">int</span>ernalReturnType &gt;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; returnType CallConstSafeFunction( <span class="keyword">const</span> className * <span class="keyword">const</span> ptr,</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; internalReturnType ( APICALL className::*Func )( <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ) <span class="keyword">const</span> )</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; {</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; internalReturnType returnValue = (ptr-&gt;*Func)( error );</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="preprocessor"> #if XMP_WinBuild</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="preprocessor"> #pragma warning( push )</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="preprocessor"> #pragma warning( disable : 4800 )</span></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span> returnType <span class="keyword">&gt;</span>( returnValue );</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="preprocessor"> #if XMP_WinBuild</span></div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="preprocessor"> #pragma warning( pop )</span></div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> className, <span class="keyword">typename</span> returnType, <span class="keyword">typename</span> internalReturnType, <span class="keyword">typename</span> ... Ts &gt;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; returnType CallConstSafeFunction( <span class="keyword">const</span> className * <span class="keyword">const</span> ptr,</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; internalReturnType ( APICALL className::*Func )( Ts ..., <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ) <span class="keyword">const</span>, Ts ... Vs )</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; internalReturnType returnValue = (ptr-&gt;*Func)( Vs ..., error );</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="preprocessor"> #if XMP_WinBuild</span></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="preprocessor"> #pragma warning( push )</span></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="preprocessor"> #pragma warning( disable : 4800 )</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span> returnType <span class="keyword">&gt;</span>( returnValue );</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="preprocessor"> #if XMP_WinBuild</span></div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="preprocessor"> #pragma warning( pop )</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; }</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> <span class="keywordtype">int</span>ernalReturnType, <span class="keyword">typename</span> sharedPo<span class="keywordtype">int</span>erType &gt;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; shared_ptr&lt; sharedPointerType &gt; CallSafeFunctionReturningPointer( className * ptr,</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; internalReturnType ( APICALL className::*Func )( <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ) )</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; {</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; internalReturnType returnValue = (ptr-&gt;*Func)( error );</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">return</span> sharedPointerType::MakeShared( returnValue );</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; }</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> className, <span class="keyword">typename</span> internalReturnType, <span class="keyword">typename</span> sharedPointerType, <span class="keyword">typename</span> ... Ts &gt;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; shared_ptr&lt; sharedPointerType &gt; CallSafeFunctionReturningPointer( className * ptr,</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; internalReturnType ( APICALL className::*Func )( Ts ..., <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ), Ts ... Vs )</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; {</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; internalReturnType returnValue = ( ptr-&gt;*Func )( Vs ..., error );</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">return</span> sharedPointerType::MakeShared( returnValue );</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; }</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> <span class="keyword">class</span>Name, <span class="keyword">typename</span> <span class="keywordtype">int</span>ernalReturnType, <span class="keyword">typename</span> sharedPo<span class="keywordtype">int</span>erType &gt;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; shared_ptr&lt; sharedPointerType &gt; CallConstSafeFunctionReturningPointer( <span class="keyword">const</span> className * <span class="keyword">const</span> ptr,</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; internalReturnType ( APICALL className::*Func )( <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ) <span class="keyword">const</span> )</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; {</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; internalReturnType returnValue = (ptr-&gt;*Func)( error );</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">return</span> sharedPointerType::MakeShared( returnValue );</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; }</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keyword">template</span> &lt; <span class="keyword">typename</span> className, <span class="keyword">typename</span> internalReturnType, <span class="keyword">typename</span> sharedPointerType, <span class="keyword">typename</span> ... Ts &gt;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; shared_ptr&lt; sharedPointerType &gt; CallConstSafeFunctionReturningPointer( <span class="keyword">const</span> className * <span class="keyword">const</span> ptr,</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; internalReturnType ( APICALL className::*Func )( Ts ..., <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp; ) <span class="keyword">const</span>, Ts ... Vs )</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; {</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; internalReturnType returnValue = ( ptr-&gt;*Func )( Vs ..., error );</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">if</span> ( error ) <span class="keywordflow">throw</span> IError::MakeShared( error );</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">return</span> sharedPointerType::MakeShared( returnValue );</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; }</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;}</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="preprocessor"> #include &quot;<a class="code" href="TWrapperFunctions2_8h.html">XMPCommon/Utilities/TWrapperFunctions2.h</a>&quot;</span></div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="preprocessor">#endif // TWrapperFunctions_h__</span></div><div class="ttc" id="IError_8h_html"><div class="ttname"><a href="IError_8h.html">IError.h</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_ae3cc983230819089dc742273902228c5"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">AdobeXMPCommon::pcIError_base</a></div><div class="ttdeci">const IError_v1 * pcIError_base</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00062">XMPCommonFwdDeclarations.h:62</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html"><div class="ttname"><a href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a></div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00019">IConfigurable.h:19</a></div></div>
+<div class="ttc" id="TWrapperFunctions2_8h_html"><div class="ttname"><a href="TWrapperFunctions2_8h.html">TWrapperFunctions2.h</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/TXMPFiles_8hpp.html b/docs/API/TXMPFiles_8hpp.html
index 834d8f4..ecad383 100644..100755
--- a/docs/API/TXMPFiles_8hpp.html
+++ b/docs/API/TXMPFiles_8hpp.html
@@ -1,89 +1,72 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: TXMPFiles.hpp File Reference</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/TXMPFiles.hpp File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
- <li><a href="files.html"><span>File&nbsp;List</span></a></li>
- <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('TXMPFiles_8hpp.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">TXMPFiles.hpp File Reference</div> </div>
+</div><!--header-->
<div class="contents">
-<h1>TXMPFiles.hpp File Reference</h1>
+
<p>API for access to the main (document-level) metadata in a file_.
-<a href="#_details">More...</a></p>
+<a href="#details">More...</a></p>
<p><a href="TXMPFiles_8hpp_source.html">Go to the source code of this file.</a></p>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td colspan="2"><h2>Classes</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">API for access to the main (document-level) metadata in a file. <a href="classTXMPFiles.html#_details">More...</a><br/></td></tr>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">API for access to the main (document-level) metadata in a file. <a href="classTXMPFiles.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
-<hr/><a name="_details"></a><h2>Detailed Description</h2>
-<p>API for access to the main (document-level) metadata in a file_. </p>
-<p>The Adobe XMP Toolkit's file handling component, XMPFiles, is a front end to a set of format-specific file handlers that support file I/O for XMP. The file handlers implement smart, efficient support for those file formats for which the means to embed XMP is defined in the XMP Specification. Where possible, this support allows: </p>
-<ul>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>API for access to the main (document-level) metadata in a file_. </p>
+<p>The Adobe XMP Toolkit's file handling component, XMPFiles, is a front end to a set of format-specific file handlers that support file I/O for XMP. The file handlers implement smart, efficient support for those file formats for which the means to embed XMP is defined in the XMP Specification. Where possible, this support allows: </p><ul>
<li>Injection of XMP where none currently exists </li>
<li>Expansion of XMP without regard to existing padding </li>
<li>Reconciliation of the XMP and other legacy forms of metadata.</li>
</ul>
-<p><code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file.">TXMPFiles</a></code> is designed for use by clients interested in the metadata and not in the primary file content; the Adobe Bridge application is a typical example. <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file.">TXMPFiles</a></code> is not intended to be appropriate for files authored by an application; that is, those files for which the application has explicit knowledge of the file format. </p>
-</div>
+<p><code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file. ">TXMPFiles</a></code> is designed for use by clients interested in the metadata and not in the primary file content; the Adobe Bridge application is a typical example. <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file. ">TXMPFiles</a></code> is not intended to be appropriate for files authored by an application; that is, those files for which the application has explicit knowledge of the file format. </p>
+
+<p>Definition in file <a class="el" href="TXMPFiles_8hpp_source.html">TXMPFiles.hpp</a>.</p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
</body>
</html>
diff --git a/docs/API/TXMPFiles_8hpp_source.html b/docs/API/TXMPFiles_8hpp_source.html
index c09414a..c471351 100644..100755
--- a/docs/API/TXMPFiles_8hpp_source.html
+++ b/docs/API/TXMPFiles_8hpp_source.html
@@ -1,329 +1,92 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: TXMPFiles.hpp Source File</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/TXMPFiles.hpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
- <li><a href="files.html"><span>File&nbsp;List</span></a></li>
- <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-<h1>TXMPFiles.hpp</h1><a href="TXMPFiles_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef __TXMPFiles_hpp__</span>
-<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define __TXMPFiles_hpp__ 1</span>
-<a name="l00003"></a>00003 <span class="preprocessor"></span>
-<a name="l00004"></a>00004 <span class="preprocessor">#if ( ! __XMP_hpp__ )</span>
-<a name="l00005"></a>00005 <span class="preprocessor"></span><span class="preprocessor"> #error &quot;Do not directly include, use XMP.hpp&quot;</span>
-<a name="l00006"></a>00006 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
-<a name="l00007"></a>00007 <span class="preprocessor"></span>
-<a name="l00008"></a>00008 <span class="comment">// =================================================================================================</span>
-<a name="l00009"></a>00009 <span class="comment">// ADOBE SYSTEMS INCORPORATED</span>
-<a name="l00010"></a>00010 <span class="comment">// Copyright 2002 Adobe Systems Incorporated</span>
-<a name="l00011"></a>00011 <span class="comment">// All Rights Reserved</span>
-<a name="l00012"></a>00012 <span class="comment">//</span>
-<a name="l00013"></a>00013 <span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span>
-<a name="l00014"></a>00014 <span class="comment">// of the Adobe license agreement accompanying it.</span>
-<a name="l00015"></a>00015 <span class="comment">// =================================================================================================</span>
-<a name="l00016"></a>00016
-<a name="l00017"></a>00017 <span class="comment">// =================================================================================================</span>
-<a name="l00033"></a>00033 <span class="comment"></span><span class="comment">// =================================================================================================</span>
-<a name="l00034"></a>00034
-<a name="l00035"></a>00035
-<a name="l00036"></a>00036 <span class="comment">// =================================================================================================</span>
-<a name="l00058"></a>00058 <span class="comment"></span><span class="comment">// =================================================================================================</span>
-<a name="l00059"></a>00059
-<a name="l00060"></a>00060
-<a name="l00061"></a>00061 <span class="preprocessor">#if XMP_StaticBuild // ! Client XMP_IO objects can only be used in static builds.</span>
-<a name="l00062"></a>00062 <span class="preprocessor"></span><span class="preprocessor"> #include &quot;XMP_IO.hpp&quot;</span>
-<a name="l00063"></a>00063 <span class="preprocessor">#endif</span>
-<a name="l00064"></a>00064 <span class="preprocessor"></span>
-<a name="l00065"></a>00065
-<a name="l00066"></a>00066 <span class="keyword">template</span> &lt;<span class="keyword">class</span> tStringObj&gt;
-<a name="l00067"></a><a class="code" href="classTXMPFiles.html">00067</a> <span class="keyword">class </span><a class="code" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file.">TXMPFiles</a> {
-<a name="l00068"></a>00068
-<a name="l00069"></a>00069 <span class="keyword">public</span>:
-<a name="l00070"></a>00070
-<a name="l00071"></a>00071 <span class="comment">// =============================================================================================</span>
-<a name="l00076"></a>00076 <span class="comment"></span>
-<a name="l00077"></a>00077 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00084"></a>00084 <span class="comment"></span>
-<a name="l00085"></a>00085 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#a6e521c034728b59ab55213a9d8203d1e" title="GetVersionInfo() retrieves version information for the XMPFiles component.">GetVersionInfo</a> ( <a class="code" href="structXMP__VersionInfo.html" title="XMP Toolkit version information.">XMP_VersionInfo</a> * versionInfo );
-<a name="l00086"></a>00086
-<a name="l00087"></a>00087 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00096"></a>00096 <span class="comment"></span>
-<a name="l00097"></a>00097 <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#a0874bbbf41c9490abfb613bfe297327d" title="Initializes the XMPFiles library; must be called before creating an SXMPFiles object...">Initialize</a>();
-<a name="l00098"></a>00098
-<a name="l00099"></a>00099 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00113"></a>00113 <span class="comment"></span>
-<a name="l00114"></a>00114 <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#a0874bbbf41c9490abfb613bfe297327d" title="Initializes the XMPFiles library; must be called before creating an SXMPFiles object...">Initialize</a> ( <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> options );
-<a name="l00115"></a>00115
-<a name="l00116"></a>00116 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00133"></a>00133 <span class="comment"></span>
-<a name="l00134"></a>00134 <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#a0874bbbf41c9490abfb613bfe297327d" title="Initializes the XMPFiles library; must be called before creating an SXMPFiles object...">Initialize</a> ( <span class="keyword">const</span> <span class="keywordtype">char</span>* pluginFolder, <span class="keyword">const</span> <span class="keywordtype">char</span>* plugins = NULL );
-<a name="l00135"></a>00135
-<a name="l00136"></a>00136 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00154"></a>00154 <span class="comment"></span>
-<a name="l00155"></a>00155 <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#a0874bbbf41c9490abfb613bfe297327d" title="Initializes the XMPFiles library; must be called before creating an SXMPFiles object...">Initialize</a> ( <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> options, <span class="keyword">const</span> <span class="keywordtype">char</span>* pluginFolder, <span class="keyword">const</span> <span class="keywordtype">char</span>* plugins = NULL );
-<a name="l00156"></a>00156
-<a name="l00157"></a>00157 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00164"></a>00164 <span class="comment"></span>
-<a name="l00165"></a>00165 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#a1e8de80c252b60b332dc4bc524139fd8" title="Terminates use of the XMPFiles library.">Terminate</a>();
-<a name="l00166"></a>00166
-<a name="l00168"></a>00168
-<a name="l00169"></a>00169 <span class="comment">// =============================================================================================</span>
-<a name="l00175"></a>00175 <span class="comment"></span>
-<a name="l00176"></a>00176 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00178"></a>00178 <span class="comment"></span>
-<a name="l00179"></a>00179 <a class="code" href="classTXMPFiles.html#a14f01e38454178578fd25fff6024fd54" title="Default constructor initializes an object that is associated with no file.">TXMPFiles</a>();
-<a name="l00180"></a>00180
-<a name="l00181"></a>00181 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00187"></a>00187 <span class="comment"></span>
-<a name="l00188"></a>00188 <span class="keyword">virtual</span> <a class="code" href="classTXMPFiles.html#a5eaa92724cc82d933a32eff9c4636739" title="Destructor; typical virtual destructor.">~TXMPFiles</a>() <span class="keywordflow">throw</span>();
-<a name="l00189"></a>00189
-<a name="l00190"></a>00190 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00211"></a>00211 <span class="comment"></span>
-<a name="l00212"></a>00212 <a class="code" href="classTXMPFiles.html#a14f01e38454178578fd25fff6024fd54" title="Default constructor initializes an object that is associated with no file.">TXMPFiles</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> filePath,
-<a name="l00213"></a>00213 <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e" title="Type for file format identification constants. See kXMP_PDFFile and following.">XMP_FileFormat</a> format = <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719" title="Unknown file format constant: &amp;#39; &amp;#39;.">kXMP_UnknownFile</a>,
-<a name="l00214"></a>00214 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> openFlags = 0 );
-<a name="l00215"></a>00215
-<a name="l00216"></a>00216 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00222"></a>00222 <span class="comment"></span>
-<a name="l00223"></a>00223 <a class="code" href="classTXMPFiles.html#a14f01e38454178578fd25fff6024fd54" title="Default constructor initializes an object that is associated with no file.">TXMPFiles</a> ( <span class="keyword">const</span> tStringObj &amp; filePath,
-<a name="l00224"></a>00224 <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e" title="Type for file format identification constants. See kXMP_PDFFile and following.">XMP_FileFormat</a> format = <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719" title="Unknown file format constant: &amp;#39; &amp;#39;.">kXMP_UnknownFile</a>,
-<a name="l00225"></a>00225 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> openFlags = 0 );
-<a name="l00226"></a>00226
-<a name="l00227"></a>00227 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00235"></a>00235 <span class="comment"></span>
-<a name="l00236"></a>00236 <a class="code" href="classTXMPFiles.html#a14f01e38454178578fd25fff6024fd54" title="Default constructor initializes an object that is associated with no file.">TXMPFiles</a> ( <span class="keyword">const</span> <a class="code" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file.">TXMPFiles&lt;tStringObj&gt;</a> &amp; original );
-<a name="l00237"></a>00237
-<a name="l00238"></a>00238 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00244"></a>00244 <span class="comment"></span>
-<a name="l00245"></a>00245 <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#a3f1483fcc92860460d3772216dfaef81" title="Assignment operator.">operator= </a>( <span class="keyword">const</span> <a class="code" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file.">TXMPFiles&lt;tStringObj&gt;</a> &amp; rhs );
-<a name="l00246"></a>00246
-<a name="l00247"></a>00247 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00258"></a>00258 <span class="comment"></span>
-<a name="l00259"></a>00259 <a class="code" href="classTXMPFiles.html#a14f01e38454178578fd25fff6024fd54" title="Default constructor initializes an object that is associated with no file.">TXMPFiles</a> ( <a class="code" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a> xmpFilesObj );
-<a name="l00260"></a>00260
-<a name="l00261"></a>00261 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00272"></a>00272 <span class="comment"></span>
-<a name="l00273"></a>00273 <a class="code" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a> <a class="code" href="classTXMPFiles.html#a311fc36fdf7270fe05b1c531cdbbd009" title="GetInternalRef() retrieves an internal reference that can be safely passed across...">GetInternalRef</a>();
-<a name="l00274"></a>00274
-<a name="l00276"></a>00276
-<a name="l00277"></a>00277 <span class="comment">// =============================================================================================</span>
-<a name="l00283"></a>00283 <span class="comment"></span>
-<a name="l00284"></a>00284 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00314"></a>00314 <span class="comment"></span>
-<a name="l00315"></a>00315
-<a name="l00316"></a>00316 <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#acb9e16a1477ec67fa6da6d736a9bc131" title="GetFormatInfo() reports what features are supported for a specific file format.">GetFormatInfo</a> ( <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e" title="Type for file format identification constants. See kXMP_PDFFile and following.">XMP_FileFormat</a> format,
-<a name="l00317"></a>00317 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> * handlerFlags = 0 );
-<a name="l00318"></a>00318
-<a name="l00320"></a>00320
-<a name="l00321"></a>00321 <span class="comment">// =============================================================================================</span>
-<a name="l00326"></a>00326 <span class="comment"></span>
-<a name="l00327"></a>00327 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00338"></a>00338 <span class="comment"></span>
-<a name="l00339"></a>00339 <span class="keyword">static</span> <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e" title="Type for file format identification constants. See kXMP_PDFFile and following.">XMP_FileFormat</a> <a class="code" href="classTXMPFiles.html#a07b7c4b44fb0e0a7d115ddd5ba22f926" title="CheckFileFormat() tries to determine the format of a file.">CheckFileFormat</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> filePath );
-<a name="l00340"></a>00340
-<a name="l00341"></a>00341 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00355"></a>00355 <span class="comment"></span>
-<a name="l00356"></a>00356 <span class="keyword">static</span> <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e" title="Type for file format identification constants. See kXMP_PDFFile and following.">XMP_FileFormat</a> <a class="code" href="classTXMPFiles.html#a7f505664c41d7304fb757d6009b0751c" title="CheckPackageFormat() tries to determine the format of a &amp;quot;package&amp;quot; folder...">CheckPackageFormat</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> folderPath );
-<a name="l00357"></a>00357
-<a name="l00358"></a>00358 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00378"></a>00378 <span class="comment"></span>
-<a name="l00379"></a>00379 <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#a0de588c4b98086206b3a5d737012106d" title="GetFileModDate() returns the last modification date of all files that are returned...">GetFileModDate</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> filePath,
-<a name="l00380"></a>00380 <a class="code" href="structXMP__DateTime.html" title="The expanded type for a date and time.">XMP_DateTime</a> * modDate,
-<a name="l00381"></a>00381 <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e" title="Type for file format identification constants. See kXMP_PDFFile and following.">XMP_FileFormat</a> * format = 0,
-<a name="l00382"></a>00382 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> options = 0 );
-<a name="l00383"></a>00383
-<a name="l00384"></a>00384
-<a name="l00385"></a>00385 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00414"></a>00414 <span class="comment"></span>
-<a name="l00415"></a>00415 <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#a03e6c681e827666690f0e5567b0b2a8a" title="GetAssociatedResources() returns a list of files and folders associated to filePath...">GetAssociatedResources</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> filePath,
-<a name="l00416"></a>00416 std::vector&lt;tStringObj&gt;* resourceList,
-<a name="l00417"></a>00417 <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e" title="Type for file format identification constants. See kXMP_PDFFile and following.">XMP_FileFormat</a> format = <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719" title="Unknown file format constant: &amp;#39; &amp;#39;.">kXMP_UnknownFile</a>,
-<a name="l00418"></a>00418 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> options = 0);
-<a name="l00419"></a>00419
-<a name="l00420"></a>00420 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00440"></a>00440 <span class="comment"></span>
-<a name="l00441"></a>00441 <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#a6dfa135d53143d45e5ff22efa554398e" title="IsMetadataWritable() returns true if metadata can be updated for the given media...">IsMetadataWritable</a> (<a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> filePath,
-<a name="l00442"></a>00442 <span class="keywordtype">bool</span> * writable,
-<a name="l00443"></a>00443 <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e" title="Type for file format identification constants. See kXMP_PDFFile and following.">XMP_FileFormat</a> format = <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719" title="Unknown file format constant: &amp;#39; &amp;#39;.">kXMP_UnknownFile</a>,
-<a name="l00444"></a>00444 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> options = 0 );
-<a name="l00445"></a>00445
-<a name="l00446"></a>00446 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00501"></a>00501 <span class="comment"></span>
-<a name="l00502"></a>00502 <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb" title="OpenFile() opens a file for metadata access.">OpenFile</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> filePath,
-<a name="l00503"></a>00503 <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e" title="Type for file format identification constants. See kXMP_PDFFile and following.">XMP_FileFormat</a> format = <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719" title="Unknown file format constant: &amp;#39; &amp;#39;.">kXMP_UnknownFile</a>,
-<a name="l00504"></a>00504 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> openFlags = 0 );
-<a name="l00505"></a>00505
-<a name="l00506"></a>00506 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00511"></a>00511 <span class="comment"></span>
-<a name="l00512"></a>00512 <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb" title="OpenFile() opens a file for metadata access.">OpenFile</a> ( <span class="keyword">const</span> tStringObj &amp; filePath,
-<a name="l00513"></a>00513 <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e" title="Type for file format identification constants. See kXMP_PDFFile and following.">XMP_FileFormat</a> format = <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719" title="Unknown file format constant: &amp;#39; &amp;#39;.">kXMP_UnknownFile</a>,
-<a name="l00514"></a>00514 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> openFlags = 0 );
-<a name="l00515"></a>00515
-<a name="l00516"></a>00516 <span class="preprocessor"> #if XMP_StaticBuild // ! Client XMP_IO objects can only be used in static builds.</span>
-<a name="l00517"></a>00517 <span class="preprocessor"></span> <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00523"></a>00523 <span class="comment"></span>
-<a name="l00524"></a>00524 <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb" title="OpenFile() opens a file for metadata access.">OpenFile</a> ( XMP_IO * clientIO,
-<a name="l00525"></a>00525 <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e" title="Type for file format identification constants. See kXMP_PDFFile and following.">XMP_FileFormat</a> format = <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719" title="Unknown file format constant: &amp;#39; &amp;#39;.">kXMP_UnknownFile</a>,
-<a name="l00526"></a>00526 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> openFlags = 0 );
-<a name="l00527"></a>00527 <span class="preprocessor"> #endif</span>
-<a name="l00528"></a>00528 <span class="preprocessor"></span>
-<a name="l00529"></a>00529 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00550"></a>00550 <span class="comment"></span>
-<a name="l00551"></a>00551 <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927" title="CloseFile() explicitly closes an opened file.">CloseFile</a> ( <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> closeFlags = 0 );
-<a name="l00552"></a>00552
-<a name="l00553"></a>00553 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00570"></a>00570 <span class="comment"></span>
-<a name="l00571"></a>00571 <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#af9931d081cb19f98c81e41786030765b" title="GetFileInfo() retrieves basic information about an opened file.">GetFileInfo</a> ( tStringObj * filePath = 0,
-<a name="l00572"></a>00572 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> * openFlags = 0,
-<a name="l00573"></a>00573 <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e" title="Type for file format identification constants. See kXMP_PDFFile and following.">XMP_FileFormat</a> * format = 0,
-<a name="l00574"></a>00574 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> * handlerFlags = 0 );
-<a name="l00575"></a>00575
-<a name="l00576"></a>00576 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00586"></a>00586 <span class="comment"></span>
-<a name="l00587"></a>00587 <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#a7b86c130fdbd54b5ac158ec3fee93777" title="SetAbortProc() registers a callback function used to check for a user-signaled abort...">SetAbortProc</a> ( <a class="code" href="XMP__Const_8h.html#aa2738ce2fca7f1809b12834b1b5e2d0e">XMP_AbortProc</a> abortProc,
-<a name="l00588"></a>00588 <span class="keywordtype">void</span> * abortArg );
-<a name="l00589"></a>00589
-<a name="l00591"></a>00591
-<a name="l00592"></a>00592 <span class="comment">// =============================================================================================</span>
-<a name="l00599"></a>00599 <span class="comment"></span>
-<a name="l00600"></a>00600 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00627"></a>00627 <span class="comment"></span>
-<a name="l00628"></a>00628 <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#a42ca0bbc5ac66a8de1710e03a7ff17b3" title="GetXMP() retrieves the XMP metadata from an open file.">GetXMP</a> ( SXMPMeta * xmpObj = 0,
-<a name="l00629"></a>00629 tStringObj * xmpPacket = 0,
-<a name="l00630"></a>00630 <a class="code" href="structXMP__PacketInfo.html" title="XMP packet description.">XMP_PacketInfo</a> * packetInfo = 0 );
-<a name="l00631"></a>00631
-<a name="l00632"></a>00632 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00640"></a>00640 <span class="comment"></span>
-<a name="l00641"></a>00641 <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#ad3f7babdc07c7de0d0cd9a3362b4710a" title="PutXMP() updates the XMP metadata in this object without writing out the file.">PutXMP</a> ( <span class="keyword">const</span> SXMPMeta &amp; xmpObj );
-<a name="l00642"></a>00642
-<a name="l00643"></a>00643 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00651"></a>00651 <span class="comment"></span>
-<a name="l00652"></a>00652 <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#ad3f7babdc07c7de0d0cd9a3362b4710a" title="PutXMP() updates the XMP metadata in this object without writing out the file.">PutXMP</a> ( <span class="keyword">const</span> tStringObj &amp; xmpPacket );
-<a name="l00653"></a>00653
-<a name="l00654"></a>00654 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00665"></a>00665 <span class="comment"></span>
-<a name="l00666"></a>00666 <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#ad3f7babdc07c7de0d0cd9a3362b4710a" title="PutXMP() updates the XMP metadata in this object without writing out the file.">PutXMP</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> xmpPacket,
-<a name="l00667"></a>00667 <a class="code" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a" title="The type for string length parameters. A 32-bit unsigned integer, as big as will...">XMP_StringLen</a> xmpLength = <a class="code" href="XMP__Const_8h.html#a8283c9596c03b6d626d5a2b7a90e23ab" title="Options macro sets string style.">kXMP_UseNullTermination</a> );
-<a name="l00668"></a>00668
-<a name="l00669"></a>00669 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00703"></a>00703 <span class="comment"></span>
-<a name="l00704"></a>00704 <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#a29a11a1539d6300da3fb4c7e9ea02bb6" title="CanPutXMP() reports whether this file can be updated with a specific XMP packet.">CanPutXMP</a> ( <span class="keyword">const</span> SXMPMeta &amp; xmpObj );
-<a name="l00705"></a>00705
-<a name="l00706"></a>00706 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00714"></a>00714 <span class="comment"></span>
-<a name="l00715"></a>00715 <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#a29a11a1539d6300da3fb4c7e9ea02bb6" title="CanPutXMP() reports whether this file can be updated with a specific XMP packet.">CanPutXMP</a> ( <span class="keyword">const</span> tStringObj &amp; xmpPacket );
-<a name="l00716"></a>00716
-<a name="l00717"></a>00717 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00728"></a>00728 <span class="comment"></span>
-<a name="l00729"></a>00729 <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#a29a11a1539d6300da3fb4c7e9ea02bb6" title="CanPutXMP() reports whether this file can be updated with a specific XMP packet.">CanPutXMP</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> xmpPacket,
-<a name="l00730"></a>00730 <a class="code" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a" title="The type for string length parameters. A 32-bit unsigned integer, as big as will...">XMP_StringLen</a> xmpLength = <a class="code" href="XMP__Const_8h.html#a8283c9596c03b6d626d5a2b7a90e23ab" title="Options macro sets string style.">kXMP_UseNullTermination</a> );
-<a name="l00731"></a>00731
-<a name="l00733"></a>00733
-<a name="l00734"></a>00734 <span class="comment">// =============================================================================================</span>
-<a name="l00743"></a>00743 <span class="comment"></span>
-<a name="l00744"></a>00744 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00758"></a>00758 <span class="comment"></span>
-<a name="l00759"></a>00759 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#a83335ee20bb3ea543c8c86a5757a7753" title="SetDefaultProgressCallback() sets a global default for progress tracking. This is...">SetDefaultProgressCallback</a> ( <a class="code" href="XMP__Const_8h.html#af18be2d0c8accad813e0d8962da24b4e">XMP_ProgressReportProc</a> proc, <span class="keywordtype">void</span> * context = 0,
-<a name="l00760"></a>00760 <span class="keywordtype">float</span> interval = 1.0, <span class="keywordtype">bool</span> sendStartStop = <span class="keyword">false</span> );
-<a name="l00761"></a>00761
-<a name="l00762"></a>00762 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00775"></a>00775 <span class="comment"></span>
-<a name="l00776"></a>00776 <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#aa283e2a1c16918c86148446859ed1a2d" title="SetProgressCallback() sets the progress notification callback for the associated...">SetProgressCallback</a> ( <a class="code" href="XMP__Const_8h.html#af18be2d0c8accad813e0d8962da24b4e">XMP_ProgressReportProc</a> proc, <span class="keywordtype">void</span> * context = 0,
-<a name="l00777"></a>00777 <span class="keywordtype">float</span> interval = 1.0, <span class="keywordtype">bool</span> sendStartStop = <span class="keyword">false</span> );
-<a name="l00778"></a>00778
-<a name="l00780"></a>00780
-<a name="l00781"></a>00781 <span class="comment">// =============================================================================================</span>
-<a name="l00782"></a>00782 <span class="comment">// Error notifications</span>
-<a name="l00783"></a>00783 <span class="comment">// ===================</span>
-<a name="l00784"></a>00784
-<a name="l00785"></a>00785 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00807"></a>00807 <span class="comment"></span>
-<a name="l00808"></a>00808 <span class="comment">// --------------------------------------------------------------------------------------------</span>
-<a name="l00816"></a>00816 <span class="comment"></span>
-<a name="l00817"></a>00817 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#accc6c1cef9f124f6c5ed360251aa5aa7" title="SetDefaultErrorCallback() registers a global default error notification callback...">SetDefaultErrorCallback</a> ( <a class="code" href="XMP__Const_8h.html#aaceb0287e961c16649487db026bcfc61">XMPFiles_ErrorCallbackProc</a> proc, <span class="keywordtype">void</span>* context = 0, XMP_Uns32 limit = 1 );
-<a name="l00818"></a>00818
-<a name="l00819"></a>00819 <span class="comment">// --------------------------------------------------------------------------------------------</span>
-<a name="l00827"></a>00827 <span class="comment"></span>
-<a name="l00828"></a>00828 <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#a43a98633a0090fb4ade76edf24302ab1" title="SetErrorCallback() registers an error notification callback.">SetErrorCallback</a> ( <a class="code" href="XMP__Const_8h.html#aaceb0287e961c16649487db026bcfc61">XMPFiles_ErrorCallbackProc</a> proc, <span class="keywordtype">void</span>* context = 0, XMP_Uns32 limit = 1 );
-<a name="l00829"></a>00829
-<a name="l00830"></a>00830 <span class="comment">// --------------------------------------------------------------------------------------------</span>
-<a name="l00835"></a>00835 <span class="comment"></span>
-<a name="l00836"></a>00836 <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#a8e37b25dd1cba1e9a3f45037022717f2" title="ResetErrorCallbackLimit() resets the error notification limit and counting. It has...">ResetErrorCallbackLimit</a> ( XMP_Uns32 limit = 1 );
-<a name="l00837"></a>00837
-<a name="l00839"></a>00839
-<a name="l00840"></a>00840 <span class="comment">// =============================================================================================</span>
-<a name="l00841"></a>00841
-<a name="l00842"></a>00842 <span class="keyword">private</span>:
-<a name="l00843"></a>00843
-<a name="l00844"></a>00844 <a class="code" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a> xmpFilesRef;
-<a name="l00845"></a>00845
-<a name="l00846"></a>00846 <span class="comment">// These are used as callbacks from the library code to the client when returning values that</span>
-<a name="l00847"></a>00847 <span class="comment">// involve heap allocations. This ensures the allocations occur within the client.</span>
-<a name="l00848"></a>00848 <span class="keyword">static</span> <span class="keywordtype">void</span> SetClientString ( <span class="keywordtype">void</span> * clientPtr, <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> valuePtr, <a class="code" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a" title="The type for string length parameters. A 32-bit unsigned integer, as big as will...">XMP_StringLen</a> valueLen );
-<a name="l00849"></a>00849 <span class="keyword">static</span> <span class="keywordtype">void</span> SetClientStringVector ( <span class="keywordtype">void</span> * clientPtr, <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a>* arrayPtr, XMP_Uns32 stringCount );
-<a name="l00850"></a>00850
-<a name="l00851"></a>00851 }; <span class="comment">// class TXMPFiles</span>
-<a name="l00852"></a>00852
-<a name="l00853"></a>00853 <span class="comment">// =================================================================================================</span>
-<a name="l00854"></a>00854
-<a name="l00855"></a>00855 <span class="preprocessor">#endif // __TXMPFiles_hpp__</span>
-</pre></div></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('TXMPFiles_8hpp_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">TXMPFiles.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="TXMPFiles_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __TXMPFiles_hpp__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __TXMPFiles_hpp__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#if ( ! __XMP_hpp__ )</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor"> #error &quot;Do not directly include, use XMP.hpp&quot;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// ADOBE SYSTEMS INCORPORATED</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// Copyright 2002 Adobe Systems Incorporated</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// All Rights Reserved</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"></span><span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment"></span><span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#if XMP_StaticBuild // ! Client XMP_IO objects can only be used in static builds.</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor"> #include &quot;<a class="code" href="XMP__IO_8hpp.html">XMP_IO.hpp</a>&quot;</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> tStringObj&gt;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="classTXMPFiles.html"> 67</a></span>&#160;<span class="keyword">class </span><a class="code" href="classTXMPFiles.html">TXMPFiles</a> {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="comment">// =============================================================================================</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#a6e521c034728b59ab55213a9d8203d1e">GetVersionInfo</a> ( <a class="code" href="structXMP__VersionInfo.html">XMP_VersionInfo</a> * versionInfo );</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#a0874bbbf41c9490abfb613bfe297327d">Initialize</a>();</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#a0874bbbf41c9490abfb613bfe297327d">Initialize</a> ( <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options );</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#a0874bbbf41c9490abfb613bfe297327d">Initialize</a> ( <span class="keyword">const</span> <span class="keywordtype">char</span>* pluginFolder, <span class="keyword">const</span> <span class="keywordtype">char</span>* plugins = NULL );</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#a0874bbbf41c9490abfb613bfe297327d">Initialize</a> ( <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, <span class="keyword">const</span> <span class="keywordtype">char</span>* pluginFolder, <span class="keyword">const</span> <span class="keywordtype">char</span>* plugins = NULL );</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#a1e8de80c252b60b332dc4bc524139fd8">Terminate</a>();</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="comment">// =============================================================================================</span></div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <a class="code" href="classTXMPFiles.html#a14f01e38454178578fd25fff6024fd54">TXMPFiles</a>();</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classTXMPFiles.html#a5eaa92724cc82d933a32eff9c4636739">~TXMPFiles</a>() <span class="keywordflow">throw</span>();</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <a class="code" href="classTXMPFiles.html#a14f01e38454178578fd25fff6024fd54">TXMPFiles</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> filePath,</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> format = <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719">kXMP_UnknownFile</a>,</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> openFlags = 0 );</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <a class="code" href="classTXMPFiles.html#a14f01e38454178578fd25fff6024fd54">TXMPFiles</a> ( <span class="keyword">const</span> tStringObj &amp; filePath,</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> format = <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719">kXMP_UnknownFile</a>,</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> openFlags = 0 );</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <a class="code" href="classTXMPFiles.html#a14f01e38454178578fd25fff6024fd54">TXMPFiles</a> ( <span class="keyword">const</span> <a class="code" href="classTXMPFiles.html">TXMPFiles&lt;tStringObj&gt;</a> &amp; original );</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#a3f1483fcc92860460d3772216dfaef81">operator= </a>( <span class="keyword">const</span> <a class="code" href="classTXMPFiles.html">TXMPFiles&lt;tStringObj&gt;</a> &amp; rhs );</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <a class="code" href="classTXMPFiles.html#a14f01e38454178578fd25fff6024fd54">TXMPFiles</a> ( <a class="code" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a> xmpFilesObj );</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <a class="code" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a> <a class="code" href="classTXMPFiles.html#a311fc36fdf7270fe05b1c531cdbbd009">GetInternalRef</a>();</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="comment">// =============================================================================================</span></div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#acb9e16a1477ec67fa6da6d736a9bc131">GetFormatInfo</a> ( <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> format,</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> * handlerFlags = 0 );</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="comment">// =============================================================================================</span></div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keyword">static</span> <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> <a class="code" href="classTXMPFiles.html#a07b7c4b44fb0e0a7d115ddd5ba22f926">CheckFileFormat</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> filePath );</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keyword">static</span> <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> <a class="code" href="classTXMPFiles.html#a7f505664c41d7304fb757d6009b0751c">CheckPackageFormat</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> folderPath );</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#a0de588c4b98086206b3a5d737012106d">GetFileModDate</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> filePath,</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <a class="code" href="structXMP__DateTime.html">XMP_DateTime</a> * modDate,</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> * format = 0,</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options = 0 );</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; </div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;<span class="comment"></span> </div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#a03e6c681e827666690f0e5567b0b2a8a">GetAssociatedResources</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> filePath,</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; std::vector&lt;tStringObj&gt;* resourceList,</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> format = <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719">kXMP_UnknownFile</a>, </div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options = 0);</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;<span class="comment"></span> </div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#a6dfa135d53143d45e5ff22efa554398e">IsMetadataWritable</a> (<a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> filePath,</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keywordtype">bool</span> * writable, </div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> format = <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719">kXMP_UnknownFile</a>,</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options = 0 );</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb">OpenFile</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> filePath,</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> format = <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719">kXMP_UnknownFile</a>,</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> openFlags = 0 );</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb">OpenFile</a> ( <span class="keyword">const</span> tStringObj &amp; filePath,</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> format = <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719">kXMP_UnknownFile</a>,</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> openFlags = 0 );</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;<span class="preprocessor"> #if XMP_StaticBuild // ! Client XMP_IO objects can only be used in static builds.</span></div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb">OpenFile</a> ( <a class="code" href="classXMP__IO.html">XMP_IO</a> * clientIO,</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> format = <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719">kXMP_UnknownFile</a>,</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> openFlags = 0 );</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927">CloseFile</a> ( <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> closeFlags = 0 );</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#af9931d081cb19f98c81e41786030765b">GetFileInfo</a> ( tStringObj * filePath = 0,</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> * openFlags = 0,</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> * format = 0,</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> * handlerFlags = 0 );</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#a7b86c130fdbd54b5ac158ec3fee93777">SetAbortProc</a> ( <a class="code" href="XMP__Const_8h.html#ac2434559f67332b9d23021b894da838c">XMP_AbortProc</a> abortProc,</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; <span class="keywordtype">void</span> * abortArg );</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160;</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; <span class="comment">// =============================================================================================</span></div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#a42ca0bbc5ac66a8de1710e03a7ff17b3">GetXMP</a> ( SXMPMeta * xmpObj = 0,</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; tStringObj * xmpPacket = 0,</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; <a class="code" href="structXMP__PacketInfo.html">XMP_PacketInfo</a> * packetInfo = 0 );</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160;</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#ad3f7babdc07c7de0d0cd9a3362b4710a">PutXMP</a> ( <span class="keyword">const</span> SXMPMeta &amp; xmpObj );</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#ad3f7babdc07c7de0d0cd9a3362b4710a">PutXMP</a> ( <span class="keyword">const</span> tStringObj &amp; xmpPacket );</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#ad3f7babdc07c7de0d0cd9a3362b4710a">PutXMP</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> xmpPacket,</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; <a class="code" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> xmpLength = <a class="code" href="XMP__Const_8h.html#a8283c9596c03b6d626d5a2b7a90e23ab">kXMP_UseNullTermination</a> );</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160;</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#a29a11a1539d6300da3fb4c7e9ea02bb6">CanPutXMP</a> ( <span class="keyword">const</span> SXMPMeta &amp; xmpObj );</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160;</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#a29a11a1539d6300da3fb4c7e9ea02bb6">CanPutXMP</a> ( <span class="keyword">const</span> tStringObj &amp; xmpPacket );</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160;</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#a29a11a1539d6300da3fb4c7e9ea02bb6">CanPutXMP</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> xmpPacket,</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; <a class="code" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> xmpLength = <a class="code" href="XMP__Const_8h.html#a8283c9596c03b6d626d5a2b7a90e23ab">kXMP_UseNullTermination</a> );</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160;</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160;</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; <span class="comment">// =============================================================================================</span></div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#a83335ee20bb3ea543c8c86a5757a7753">SetDefaultProgressCallback</a> ( <a class="code" href="XMP__Const_8h.html#a01973e700ac2ba7f3debef340ccaa663">XMP_ProgressReportProc</a> proc, <span class="keywordtype">void</span> * context = 0,</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; <span class="keywordtype">float</span> interval = 1.0, <span class="keywordtype">bool</span> sendStartStop = <span class="keyword">false</span> );</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160;</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#aa283e2a1c16918c86148446859ed1a2d">SetProgressCallback</a> ( <a class="code" href="XMP__Const_8h.html#a01973e700ac2ba7f3debef340ccaa663">XMP_ProgressReportProc</a> proc, <span class="keywordtype">void</span> * context = 0,</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; <span class="keywordtype">float</span> interval = 1.0, <span class="keywordtype">bool</span> sendStartStop = <span class="keyword">false</span> );</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; </div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160;</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; <span class="comment">// =============================================================================================</span></div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; <span class="comment">// Error notifications</span></div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; <span class="comment">// ===================</span></div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160;</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; <span class="comment">// --------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#accc6c1cef9f124f6c5ed360251aa5aa7">SetDefaultErrorCallback</a> ( <a class="code" href="XMP__Const_8h.html#a7bed3dd93335821e5afa0ac2b07a9640">XMPFiles_ErrorCallbackProc</a> proc, <span class="keywordtype">void</span>* context = 0, XMP_Uns32 limit = 1 );</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160;</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; <span class="comment">// --------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#a43a98633a0090fb4ade76edf24302ab1">SetErrorCallback</a> ( <a class="code" href="XMP__Const_8h.html#a7bed3dd93335821e5afa0ac2b07a9640">XMPFiles_ErrorCallbackProc</a> proc, <span class="keywordtype">void</span>* context = 0, XMP_Uns32 limit = 1 );</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160;</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; <span class="comment">// --------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#a8e37b25dd1cba1e9a3f45037022717f2">ResetErrorCallbackLimit</a> ( XMP_Uns32 limit = 1 );</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160;</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160;</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; <span class="comment">// =============================================================================================</span></div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160;</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160;</div><div class="line"><a name="l00844"></a><span class="lineno"><a class="line" href="classTXMPFiles.html#a5977d8094086a7c2bfa9abe03af2265c"> 844</a></span>&#160; <a class="code" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a> <a class="code" href="classTXMPFiles.html#a5977d8094086a7c2bfa9abe03af2265c">xmpFilesRef</a>;</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160;</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; <span class="comment">// These are used as callbacks from the library code to the client when returning values that</span></div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; <span class="comment">// involve heap allocations. This ensures the allocations occur within the client.</span></div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#ae403e54b9cc5df0f59d79e31cce84e3f">SetClientString</a> ( <span class="keywordtype">void</span> * clientPtr, <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> valuePtr, <a class="code" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> valueLen );</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#afd30a5ad1765a9288e7f6ef118255a73">SetClientStringVector</a> ( <span class="keywordtype">void</span> * clientPtr, <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>* arrayPtr, XMP_Uns32 stringCount );</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160;}; <span class="comment">// class TXMPFiles</span></div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160;</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160;</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160;<span class="preprocessor">#endif // __TXMPFiles_hpp__</span></div><div class="ttc" id="XMP__Const_8h_html_a9f7dcc184f901c713274edfdac5bcc9a"><div class="ttname"><a href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a></div><div class="ttdeci">XMP_Uns32 XMP_StringLen</div><div class="ttdoc">The type for string length parameters. A 32-bit unsigned integer, as big as will be practically neede...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00170">XMP_Const.h:170</a></div></div>
+<div class="ttc" id="classTXMPFiles_html_a0874bbbf41c9490abfb613bfe297327d"><div class="ttname"><a href="classTXMPFiles.html#a0874bbbf41c9490abfb613bfe297327d">TXMPFiles::Initialize</a></div><div class="ttdeci">static bool Initialize()</div><div class="ttdoc">Initializes the XMPFiles library; must be called before creating an SXMPFiles object. </div></div>
+<div class="ttc" id="XMP__Const_8h_html_ad439e3ceeb4590d310f6125aa12c6df6"><div class="ttname"><a href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a></div><div class="ttdeci">const char * XMP_StringPtr</div><div class="ttdoc">The type for input string parameters. A const char *, a null-terminated UTF-8 string. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00169">XMP_Const.h:169</a></div></div>
+<div class="ttc" id="classXMP__IO_html"><div class="ttname"><a href="classXMP__IO.html">XMP_IO</a></div><div class="ttdoc">Abstract base class for client-managed I/O with TXMPFiles. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__IO_8hpp_source.html#l00042">XMP_IO.hpp:42</a></div></div>
+<div class="ttc" id="classTXMPFiles_html_aeca89170c7aa3e2d56e30bff04dd7927"><div class="ttname"><a href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927">TXMPFiles::CloseFile</a></div><div class="ttdeci">void CloseFile(XMP_OptionBits closeFlags=0)</div><div class="ttdoc">CloseFile() explicitly closes an opened file. </div></div>
+<div class="ttc" id="classTXMPFiles_html_acb9e16a1477ec67fa6da6d736a9bc131"><div class="ttname"><a href="classTXMPFiles.html#acb9e16a1477ec67fa6da6d736a9bc131">TXMPFiles::GetFormatInfo</a></div><div class="ttdeci">*static bool GetFormatInfo(XMP_FileFormat format, XMP_OptionBits *handlerFlags=0)</div><div class="ttdoc">GetFormatInfo() reports what features are supported for a specific file format. </div></div>
+<div class="ttc" id="classTXMPFiles_html_a83335ee20bb3ea543c8c86a5757a7753"><div class="ttname"><a href="classTXMPFiles.html#a83335ee20bb3ea543c8c86a5757a7753">TXMPFiles::SetDefaultProgressCallback</a></div><div class="ttdeci">static void SetDefaultProgressCallback(XMP_ProgressReportProc proc, void *context=0, float interval=1.0, bool sendStartStop=false)</div><div class="ttdoc">SetDefaultProgressCallback() sets a global default for progress tracking. This is used as a default f...</div></div>
+<div class="ttc" id="XMP__Const_8h_html_aa4bca98ad67d7a62c60cb13dbbab0f25"><div class="ttname"><a href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a></div><div class="ttdeci">struct __XMPFiles__ * XMPFilesRef</div><div class="ttdoc">An &quot;ABI safe&quot; pointer to the internal part of an XMP file-handling object. Use to pass an XMP file-ha...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00142">XMP_Const.h:142</a></div></div>
+<div class="ttc" id="classTXMPFiles_html_a43a98633a0090fb4ade76edf24302ab1"><div class="ttname"><a href="classTXMPFiles.html#a43a98633a0090fb4ade76edf24302ab1">TXMPFiles::SetErrorCallback</a></div><div class="ttdeci">void SetErrorCallback(XMPFiles_ErrorCallbackProc proc, void *context=0, XMP_Uns32 limit=1)</div><div class="ttdoc">SetErrorCallback() registers an error notification callback. </div></div>
+<div class="ttc" id="classTXMPFiles_html_a311fc36fdf7270fe05b1c531cdbbd009"><div class="ttname"><a href="classTXMPFiles.html#a311fc36fdf7270fe05b1c531cdbbd009">TXMPFiles::GetInternalRef</a></div><div class="ttdeci">XMPFilesRef GetInternalRef()</div><div class="ttdoc">GetInternalRef() retrieves an internal reference that can be safely passed across DLL boundaries and ...</div></div>
+<div class="ttc" id="structXMP__VersionInfo_html"><div class="ttname"><a href="structXMP__VersionInfo.html">XMP_VersionInfo</a></div><div class="ttdoc">XMP Toolkit version information. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01545">XMP_Const.h:1545</a></div></div>
+<div class="ttc" id="classTXMPFiles_html_a6dfa135d53143d45e5ff22efa554398e"><div class="ttname"><a href="classTXMPFiles.html#a6dfa135d53143d45e5ff22efa554398e">TXMPFiles::IsMetadataWritable</a></div><div class="ttdeci">static bool IsMetadataWritable(XMP_StringPtr filePath, bool *writable, XMP_FileFormat format=kXMP_UnknownFile, XMP_OptionBits options=0)</div><div class="ttdoc">IsMetadataWritable() returns true if metadata can be updated for the given media path. </div></div>
+<div class="ttc" id="classTXMPFiles_html_a7f505664c41d7304fb757d6009b0751c"><div class="ttname"><a href="classTXMPFiles.html#a7f505664c41d7304fb757d6009b0751c">TXMPFiles::CheckPackageFormat</a></div><div class="ttdeci">static XMP_FileFormat CheckPackageFormat(XMP_StringPtr folderPath)</div><div class="ttdoc">CheckPackageFormat() tries to determine the format of a &quot;package&quot; folder. </div></div>
+<div class="ttc" id="classTXMPFiles_html_a14f01e38454178578fd25fff6024fd54"><div class="ttname"><a href="classTXMPFiles.html#a14f01e38454178578fd25fff6024fd54">TXMPFiles::TXMPFiles</a></div><div class="ttdeci">TXMPFiles()</div><div class="ttdoc">Default constructor initializes an object that is associated with no file. </div></div>
+<div class="ttc" id="classTXMPFiles_html_a42ca0bbc5ac66a8de1710e03a7ff17b3"><div class="ttname"><a href="classTXMPFiles.html#a42ca0bbc5ac66a8de1710e03a7ff17b3">TXMPFiles::GetXMP</a></div><div class="ttdeci">bool GetXMP(SXMPMeta *xmpObj=0, tStringObj *xmpPacket=0, XMP_PacketInfo *packetInfo=0)</div><div class="ttdoc">GetXMP() retrieves the XMP metadata from an open file. </div></div>
+<div class="ttc" id="XMP__Const_8h_html_a8283c9596c03b6d626d5a2b7a90e23ab"><div class="ttname"><a href="XMP__Const_8h.html#a8283c9596c03b6d626d5a2b7a90e23ab">kXMP_UseNullTermination</a></div><div class="ttdeci">#define kXMP_UseNullTermination</div><div class="ttdoc">Options macro sets string style. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00463">XMP_Const.h:463</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a300d9a9189cb4ddb6970d05389f5c28e"><div class="ttname"><a href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a></div><div class="ttdeci">XMP_Uns32 XMP_FileFormat</div><div class="ttdoc">Type for file format identification constants. See kXMP_PDFFile and following. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00991">XMP_Const.h:991</a></div></div>
+<div class="ttc" id="structXMP__DateTime_html"><div class="ttname"><a href="structXMP__DateTime.html">XMP_DateTime</a></div><div class="ttdoc">The expanded type for a date and time. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00223">XMP_Const.h:223</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_aeb865118433be92d88e5f49ed11487c8"><div class="ttname"><a href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a></div><div class="ttdeci">XMP_Uns32 XMP_OptionBits</div><div class="ttdoc">The type for a collection of 32 flag bits. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00172">XMP_Const.h:172</a></div></div>
+<div class="ttc" id="classTXMPFiles_html_a1e8de80c252b60b332dc4bc524139fd8"><div class="ttname"><a href="classTXMPFiles.html#a1e8de80c252b60b332dc4bc524139fd8">TXMPFiles::Terminate</a></div><div class="ttdeci">static void Terminate()</div><div class="ttdoc">Terminates use of the XMPFiles library. </div></div>
+<div class="ttc" id="classTXMPFiles_html_ad3f7babdc07c7de0d0cd9a3362b4710a"><div class="ttname"><a href="classTXMPFiles.html#ad3f7babdc07c7de0d0cd9a3362b4710a">TXMPFiles::PutXMP</a></div><div class="ttdeci">void PutXMP(const SXMPMeta &amp;xmpObj)</div><div class="ttdoc">PutXMP() updates the XMP metadata in this object without writing out the file. </div></div>
+<div class="ttc" id="classTXMPFiles_html_a7b86c130fdbd54b5ac158ec3fee93777"><div class="ttname"><a href="classTXMPFiles.html#a7b86c130fdbd54b5ac158ec3fee93777">TXMPFiles::SetAbortProc</a></div><div class="ttdeci">void SetAbortProc(XMP_AbortProc abortProc, void *abortArg)</div><div class="ttdoc">SetAbortProc() registers a callback function used to check for a user-signaled abort. </div></div>
+<div class="ttc" id="classTXMPFiles_html_a5977d8094086a7c2bfa9abe03af2265c"><div class="ttname"><a href="classTXMPFiles.html#a5977d8094086a7c2bfa9abe03af2265c">TXMPFiles::xmpFilesRef</a></div><div class="ttdeci">XMPFilesRef xmpFilesRef</div><div class="ttdef"><b>Definition:</b> <a href="TXMPFiles_8hpp_source.html#l00844">TXMPFiles.hpp:844</a></div></div>
+<div class="ttc" id="classTXMPFiles_html_a8e37b25dd1cba1e9a3f45037022717f2"><div class="ttname"><a href="classTXMPFiles.html#a8e37b25dd1cba1e9a3f45037022717f2">TXMPFiles::ResetErrorCallbackLimit</a></div><div class="ttdeci">void ResetErrorCallbackLimit(XMP_Uns32 limit=1)</div><div class="ttdoc">ResetErrorCallbackLimit() resets the error notification limit and counting. It has no effect if an er...</div></div>
+<div class="ttc" id="classTXMPFiles_html_a6e521c034728b59ab55213a9d8203d1e"><div class="ttname"><a href="classTXMPFiles.html#a6e521c034728b59ab55213a9d8203d1e">TXMPFiles::GetVersionInfo</a></div><div class="ttdeci">static void GetVersionInfo(XMP_VersionInfo *versionInfo)</div><div class="ttdoc">GetVersionInfo() retrieves version information for the XMPFiles component. </div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719">kXMP_UnknownFile</a></div><div class="ttdoc">Unknown file format constant: &amp;#39; &amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00986">XMP_Const.h:986</a></div></div>
+<div class="ttc" id="classTXMPFiles_html_aa283e2a1c16918c86148446859ed1a2d"><div class="ttname"><a href="classTXMPFiles.html#aa283e2a1c16918c86148446859ed1a2d">TXMPFiles::SetProgressCallback</a></div><div class="ttdeci">void SetProgressCallback(XMP_ProgressReportProc proc, void *context=0, float interval=1.0, bool sendStartStop=false)</div><div class="ttdoc">SetProgressCallback() sets the progress notification callback for the associated XMPFiles (library) o...</div></div>
+<div class="ttc" id="classTXMPFiles_html_afd30a5ad1765a9288e7f6ef118255a73"><div class="ttname"><a href="classTXMPFiles.html#afd30a5ad1765a9288e7f6ef118255a73">TXMPFiles::SetClientStringVector</a></div><div class="ttdeci">static void SetClientStringVector(void *clientPtr, XMP_StringPtr *arrayPtr, XMP_Uns32 stringCount)</div></div>
+<div class="ttc" id="classTXMPFiles_html_a29a11a1539d6300da3fb4c7e9ea02bb6"><div class="ttname"><a href="classTXMPFiles.html#a29a11a1539d6300da3fb4c7e9ea02bb6">TXMPFiles::CanPutXMP</a></div><div class="ttdeci">bool CanPutXMP(const SXMPMeta &amp;xmpObj)</div><div class="ttdoc">CanPutXMP() reports whether this file can be updated with a specific XMP packet. </div></div>
+<div class="ttc" id="classTXMPFiles_html_a3f1483fcc92860460d3772216dfaef81"><div class="ttname"><a href="classTXMPFiles.html#a3f1483fcc92860460d3772216dfaef81">TXMPFiles::operator=</a></div><div class="ttdeci">void operator=(const TXMPFiles&lt; tStringObj &gt; &amp;rhs)</div><div class="ttdoc">Assignment operator. </div></div>
+<div class="ttc" id="classTXMPFiles_html_accc6c1cef9f124f6c5ed360251aa5aa7"><div class="ttname"><a href="classTXMPFiles.html#accc6c1cef9f124f6c5ed360251aa5aa7">TXMPFiles::SetDefaultErrorCallback</a></div><div class="ttdeci">static void SetDefaultErrorCallback(XMPFiles_ErrorCallbackProc proc, void *context=0, XMP_Uns32 limit=1)</div><div class="ttdoc">SetDefaultErrorCallback() registers a global default error notification callback. ...</div></div>
+<div class="ttc" id="structXMP__PacketInfo_html"><div class="ttname"><a href="structXMP__PacketInfo.html">XMP_PacketInfo</a></div><div class="ttdoc">XMP packet description. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01068">XMP_Const.h:1068</a></div></div>
+<div class="ttc" id="classTXMPFiles_html"><div class="ttname"><a href="classTXMPFiles.html">TXMPFiles</a></div><div class="ttdoc">API for access to the main (document-level) metadata in a file. </div><div class="ttdef"><b>Definition:</b> <a href="TXMPFiles_8hpp_source.html#l00067">TXMPFiles.hpp:67</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a01973e700ac2ba7f3debef340ccaa663"><div class="ttname"><a href="XMP__Const_8h.html#a01973e700ac2ba7f3debef340ccaa663">XMP_ProgressReportProc</a></div><div class="ttdeci">bool(* XMP_ProgressReportProc)(void *context, float elapsedTime, float fractionDone, float secondsToGo)</div><div class="ttdoc">The signature of a client-defined callback for progress report notifications. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01530">XMP_Const.h:1530</a></div></div>
+<div class="ttc" id="classTXMPFiles_html_a0de588c4b98086206b3a5d737012106d"><div class="ttname"><a href="classTXMPFiles.html#a0de588c4b98086206b3a5d737012106d">TXMPFiles::GetFileModDate</a></div><div class="ttdeci">static bool GetFileModDate(XMP_StringPtr filePath, XMP_DateTime *modDate, XMP_FileFormat *format=0, XMP_OptionBits options=0)</div><div class="ttdoc">GetFileModDate() returns the last modification date of all files that are returned by GetAssociatedRe...</div></div>
+<div class="ttc" id="classTXMPFiles_html_a5eaa92724cc82d933a32eff9c4636739"><div class="ttname"><a href="classTXMPFiles.html#a5eaa92724cc82d933a32eff9c4636739">TXMPFiles::~TXMPFiles</a></div><div class="ttdeci">virtual ~TXMPFiles()</div><div class="ttdoc">Destructor; typical virtual destructor. </div></div>
+<div class="ttc" id="XMP__IO_8hpp_html"><div class="ttname"><a href="XMP__IO_8hpp.html">XMP_IO.hpp</a></div></div>
+<div class="ttc" id="classTXMPFiles_html_a03e6c681e827666690f0e5567b0b2a8a"><div class="ttname"><a href="classTXMPFiles.html#a03e6c681e827666690f0e5567b0b2a8a">TXMPFiles::GetAssociatedResources</a></div><div class="ttdeci">static bool GetAssociatedResources(XMP_StringPtr filePath, std::vector&lt; tStringObj &gt; *resourceList, XMP_FileFormat format=kXMP_UnknownFile, XMP_OptionBits options=0)</div><div class="ttdoc">GetAssociatedResources() returns a list of files and folders associated to filePath. </div></div>
+<div class="ttc" id="XMP__Const_8h_html_ac2434559f67332b9d23021b894da838c"><div class="ttname"><a href="XMP__Const_8h.html#ac2434559f67332b9d23021b894da838c">XMP_AbortProc</a></div><div class="ttdeci">bool(* XMP_AbortProc)(void *arg)</div><div class="ttdoc">The signature of a client-defined callback to check for a user request to abort a time-consuming oper...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01507">XMP_Const.h:1507</a></div></div>
+<div class="ttc" id="classTXMPFiles_html_af9931d081cb19f98c81e41786030765b"><div class="ttname"><a href="classTXMPFiles.html#af9931d081cb19f98c81e41786030765b">TXMPFiles::GetFileInfo</a></div><div class="ttdeci">bool GetFileInfo(tStringObj *filePath=0, XMP_OptionBits *openFlags=0, XMP_FileFormat *format=0, XMP_OptionBits *handlerFlags=0)</div><div class="ttdoc">GetFileInfo() retrieves basic information about an opened file. </div></div>
+<div class="ttc" id="classTXMPFiles_html_a07b7c4b44fb0e0a7d115ddd5ba22f926"><div class="ttname"><a href="classTXMPFiles.html#a07b7c4b44fb0e0a7d115ddd5ba22f926">TXMPFiles::CheckFileFormat</a></div><div class="ttdeci">static XMP_FileFormat CheckFileFormat(XMP_StringPtr filePath)</div><div class="ttdoc">CheckFileFormat() tries to determine the format of a file. </div></div>
+<div class="ttc" id="classTXMPFiles_html_ae403e54b9cc5df0f59d79e31cce84e3f"><div class="ttname"><a href="classTXMPFiles.html#ae403e54b9cc5df0f59d79e31cce84e3f">TXMPFiles::SetClientString</a></div><div class="ttdeci">static void SetClientString(void *clientPtr, XMP_StringPtr valuePtr, XMP_StringLen valueLen)</div></div>
+<div class="ttc" id="XMP__Const_8h_html_a7bed3dd93335821e5afa0ac2b07a9640"><div class="ttname"><a href="XMP__Const_8h.html#a7bed3dd93335821e5afa0ac2b07a9640">XMPFiles_ErrorCallbackProc</a></div><div class="ttdeci">bool(* XMPFiles_ErrorCallbackProc)(void *context, XMP_StringPtr filePath, XMP_ErrorSeverity severity, XMP_Int32 cause, XMP_StringPtr message)</div><div class="ttdoc">The signature of a client-defined callback for TXMPFiles error notifications. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01301">XMP_Const.h:1301</a></div></div>
+<div class="ttc" id="classTXMPFiles_html_afcd21cfe5d6f13c648c5541e161919cb"><div class="ttname"><a href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb">TXMPFiles::OpenFile</a></div><div class="ttdeci">bool OpenFile(XMP_StringPtr filePath, XMP_FileFormat format=kXMP_UnknownFile, XMP_OptionBits openFlags=0)</div><div class="ttdoc">OpenFile() opens a file for metadata access. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
</body>
</html>
diff --git a/docs/API/TXMPFiles_8incl__cpp.html b/docs/API/TXMPFiles_8incl__cpp.html
deleted file mode 100644
index 5c4ac08..0000000
--- a/docs/API/TXMPFiles_8incl__cpp.html
+++ /dev/null
@@ -1,84 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: TXMPFiles.incl_cpp File Reference</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
-<link href="tabs.css" rel="stylesheet" type="text/css">
-</head><body>
-<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
- <li><a href="annotated.html"><span>Classes</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li><a href="files.html"><span>File&nbsp;List</span></a></li>
- <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
- </ul>
- </div>
-</div>
-<div class="contents">
-<h1>TXMPFiles.incl_cpp File Reference</h1>
-<p>The implementation of the <a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file.">TXMPFiles</a> template class.
-<a href="#_details">More...</a></p>
-<code>#include &quot;client-glue/WXMP_Common.hpp&quot;</code><br/>
-<code>#include &quot;client-glue/WXMPFiles.hpp&quot;</code><br/>
-<div class="dynheader">
-Include dependency graph for TXMPFiles.incl_cpp:</div>
-<div class="dynsection">
-<div class="center"><img src="TXMPFiles_8incl__cpp__incl.png" border="0" usemap="#TXMPFiles_8incl__cpp_map" alt=""/></div>
-</div>
-<table border="0" cellpadding="0" cellspacing="0">
-</table>
-<hr/><a name="_details"></a><h2>Detailed Description</h2>
-<p>The implementation of the <a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file.">TXMPFiles</a> template class. </p>
-</div>
-<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
-</body>
-</html>
diff --git a/docs/API/TXMPFiles_8incl__cpp__incl.png b/docs/API/TXMPFiles_8incl__cpp__incl.png
deleted file mode 100644
index 496eb80..0000000
--- a/docs/API/TXMPFiles_8incl__cpp__incl.png
+++ /dev/null
Binary files differ
diff --git a/docs/API/TXMPIterator_8hpp.html b/docs/API/TXMPIterator_8hpp.html
index fd51ac6..55cb87f 100644..100755
--- a/docs/API/TXMPIterator_8hpp.html
+++ b/docs/API/TXMPIterator_8hpp.html
@@ -1,94 +1,68 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: TXMPIterator.hpp File Reference</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/TXMPIterator.hpp File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
- <li><a href="files.html"><span>File&nbsp;List</span></a></li>
- <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('TXMPIterator_8hpp.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">TXMPIterator.hpp File Reference</div> </div>
+</div><!--header-->
<div class="contents">
-<h1>TXMPIterator.hpp File Reference</h1>
+
<p>API for access to the XMP Toolkit iteration services.
-<a href="#_details">More...</a></p>
-<code>#include &quot;<a class="el" href="TXMPIterator_8hpp_source.html">client-glue/WXMPIterator.hpp</a>&quot;</code><br/>
-<div class="dynheader">
-Include dependency graph for TXMPIterator.hpp:</div>
-<div class="dynsection">
-<div class="center"><img src="TXMPIterator_8hpp__incl.png" border="0" usemap="#TXMPIterator_8hpp_map" alt=""/></div>
-</div>
-<div class="dynheader">
-This graph shows which files directly or indirectly include this file:</div>
-<div class="dynsection">
-<div class="center"><img src="TXMPIterator_8hpp__dep__incl.png" border="0" usemap="#TXMPIterator_8hppdep_map" alt=""/></div>
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &quot;<a class="el" href="WXMPIterator_8hpp_source.html">client-glue/WXMPIterator.hpp</a>&quot;</code><br />
</div>
-
<p><a href="TXMPIterator_8hpp_source.html">Go to the source code of this file.</a></p>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td colspan="2"><h2>Classes</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPIterator.html">TXMPIterator&lt; tStringObj &gt;</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">API for access to the XMP Toolkit iteration services. <a href="classTXMPIterator.html#_details">More...</a><br/></td></tr>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPIterator.html">TXMPIterator&lt; tStringObj &gt;</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">API for access to the XMP Toolkit iteration services. <a href="classTXMPIterator.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
-<hr/><a name="_details"></a><h2>Detailed Description</h2>
-<p>API for access to the XMP Toolkit iteration services. </p>
-<p><code><a class="el" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services.">TXMPIterator</a></code> is the template class providing iteration services for the XMP Toolkit. It must be instantiated with a string class such as <code>std::string</code>. See the instructions in XMP.hpp, and the Overview for a discussion of the overall architecture of the XMP API. </p>
-</div>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>API for access to the XMP Toolkit iteration services. </p>
+<p><code><a class="el" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services. ">TXMPIterator</a></code> is the template class providing iteration services for the XMP Toolkit. It must be instantiated with a string class such as <code>std::string</code>. See the instructions in <a class="el" href="XMP_8hpp.html" title="Overall header file for the XMP Toolkit. ">XMP.hpp</a>, and the Overview for a discussion of the overall architecture of the XMP API. </p>
+
+<p>Definition in file <a class="el" href="TXMPIterator_8hpp_source.html">TXMPIterator.hpp</a>.</p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
</body>
</html>
diff --git a/docs/API/TXMPIterator_8hpp__dep__incl.png b/docs/API/TXMPIterator_8hpp__dep__incl.png
deleted file mode 100644
index 278ee71..0000000
--- a/docs/API/TXMPIterator_8hpp__dep__incl.png
+++ /dev/null
Binary files differ
diff --git a/docs/API/TXMPIterator_8hpp__incl.png b/docs/API/TXMPIterator_8hpp__incl.png
deleted file mode 100644
index eb70c49..0000000
--- a/docs/API/TXMPIterator_8hpp__incl.png
+++ /dev/null
Binary files differ
diff --git a/docs/API/TXMPIterator_8hpp_source.html b/docs/API/TXMPIterator_8hpp_source.html
index 79d7042..8ca3a35 100644..100755
--- a/docs/API/TXMPIterator_8hpp_source.html
+++ b/docs/API/TXMPIterator_8hpp_source.html
@@ -1,156 +1,62 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: TXMPIterator.hpp Source File</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/TXMPIterator.hpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
- <li><a href="files.html"><span>File&nbsp;List</span></a></li>
- <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-<h1>TXMPIterator.hpp</h1><a href="TXMPIterator_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef __TXMPIterator_hpp__</span>
-<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define __TXMPIterator_hpp__ 1</span>
-<a name="l00003"></a>00003 <span class="preprocessor"></span>
-<a name="l00004"></a>00004 <span class="preprocessor">#if ( ! __XMP_hpp__ )</span>
-<a name="l00005"></a>00005 <span class="preprocessor"></span><span class="preprocessor"> #error &quot;Do not directly include, use XMP.hpp&quot;</span>
-<a name="l00006"></a>00006 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
-<a name="l00007"></a>00007 <span class="preprocessor"></span>
-<a name="l00008"></a>00008 <span class="comment">// =================================================================================================</span>
-<a name="l00009"></a>00009 <span class="comment">// ADOBE SYSTEMS INCORPORATED</span>
-<a name="l00010"></a>00010 <span class="comment">// Copyright 2002 Adobe Systems Incorporated</span>
-<a name="l00011"></a>00011 <span class="comment">// All Rights Reserved</span>
-<a name="l00012"></a>00012 <span class="comment">//</span>
-<a name="l00013"></a>00013 <span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span>
-<a name="l00014"></a>00014 <span class="comment">// of the Adobe license agreement accompanying it.</span>
-<a name="l00015"></a>00015 <span class="comment">// =================================================================================================</span>
-<a name="l00016"></a>00016
-<a name="l00017"></a>00017 <span class="comment">// =================================================================================================</span>
-<a name="l00024"></a>00024 <span class="comment"></span><span class="comment">// =================================================================================================</span>
-<a name="l00025"></a>00025
-<a name="l00026"></a>00026 <span class="comment">// =================================================================================================</span>
-<a name="l00075"></a>00075 <span class="comment"></span><span class="comment">// =================================================================================================</span>
-<a name="l00076"></a>00076
-<a name="l00077"></a>00077 <span class="preprocessor">#include &quot;client-glue/WXMPIterator.hpp&quot;</span>
-<a name="l00078"></a>00078
-<a name="l00079"></a><a class="code" href="classTXMPIterator.html">00079</a> <span class="keyword">template</span> &lt;<span class="keyword">class</span> tStringObj&gt; <span class="keyword">class </span><a class="code" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services.">TXMPIterator</a> {
-<a name="l00080"></a>00080
-<a name="l00081"></a>00081 <span class="keyword">public</span>:
-<a name="l00082"></a>00082
-<a name="l00083"></a>00083 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00090"></a>00090 <span class="comment"></span>
-<a name="l00091"></a>00091 <span class="keywordtype">void</span> <a class="code" href="classTXMPIterator.html#ad767d731320d3f4c997c6ce9f7f8fa63" title="Assignment operator, assigns the internal ref and increments the ref count.">operator= </a>( <span class="keyword">const</span> <a class="code" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services.">TXMPIterator&lt;tStringObj&gt;</a> &amp; rhs );
-<a name="l00092"></a>00092
-<a name="l00093"></a>00093 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00099"></a>00099 <span class="comment"></span>
-<a name="l00100"></a>00100 <a class="code" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services.">TXMPIterator</a> ( <span class="keyword">const</span> <a class="code" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services.">TXMPIterator&lt;tStringObj&gt;</a> &amp; original );
-<a name="l00101"></a>00101
-<a name="l00102"></a>00102 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00125"></a>00125 <span class="comment"></span>
-<a name="l00126"></a>00126 <a class="code" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services.">TXMPIterator</a> ( <span class="keyword">const</span> <a class="code" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta&lt;tStringObj&gt;</a> &amp; xmpObj,
-<a name="l00127"></a>00127 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l00128"></a>00128 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> propName,
-<a name="l00129"></a>00129 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> options = 0 );
-<a name="l00130"></a>00130
-<a name="l00131"></a>00131 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00150"></a>00150 <span class="comment"></span>
-<a name="l00151"></a>00151 <a class="code" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services.">TXMPIterator</a> ( <span class="keyword">const</span> <a class="code" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta&lt;tStringObj&gt;</a> &amp; xmpObj,
-<a name="l00152"></a>00152 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l00153"></a>00153 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> options = 0 );
-<a name="l00154"></a>00154
-<a name="l00155"></a>00155 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00171"></a>00171 <span class="comment"></span>
-<a name="l00172"></a>00172 <a class="code" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services.">TXMPIterator</a> ( <span class="keyword">const</span> <a class="code" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta&lt;tStringObj&gt;</a> &amp; xmpObj,
-<a name="l00173"></a>00173 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> options = 0 );
-<a name="l00174"></a>00174
-<a name="l00175"></a>00175 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00177"></a>00177 <span class="comment"></span>
-<a name="l00178"></a>00178 <a class="code" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services.">TXMPIterator</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l00179"></a>00179 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> propName,
-<a name="l00180"></a>00180 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> options );
-<a name="l00181"></a>00181
-<a name="l00182"></a>00182 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00184"></a>00184 <span class="comment"></span>
-<a name="l00185"></a>00185 <span class="keyword">virtual</span> <a class="code" href="classTXMPIterator.html#a911554533e8a3f09ab8870bd54462196" title="Destructor, typical virtual destructor.">~TXMPIterator</a>() <span class="keywordflow">throw</span>();
-<a name="l00186"></a>00186
-<a name="l00187"></a>00187 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00207"></a>00207 <span class="comment"></span>
-<a name="l00208"></a>00208 <span class="keywordtype">bool</span> <a class="code" href="classTXMPIterator.html#a124a1dd1ab3ff0d236e4d4b967dafcd9" title="Next() visits the next node in the iteration.">Next</a> ( tStringObj * schemaNS = 0,
-<a name="l00209"></a>00209 tStringObj * propPath = 0,
-<a name="l00210"></a>00210 tStringObj * propValue = 0,
-<a name="l00211"></a>00211 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> * options = 0 );
-<a name="l00212"></a>00212
-<a name="l00213"></a>00213 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00220"></a>00220 <span class="comment"></span>
-<a name="l00221"></a>00221 <span class="keywordtype">void</span> <a class="code" href="classTXMPIterator.html#a30b4d78974b347e4fcd275f1f65a61b2" title="Skip() skips some portion of the remaining iterations.">Skip</a> ( <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> options );
-<a name="l00222"></a>00222
-<a name="l00223"></a>00223 <span class="keyword">private</span>:
-<a name="l00224"></a>00224
-<a name="l00225"></a>00225 <a class="code" href="XMP__Const_8h.html#a6ade57a30fb1e40d6aa9695c440fc3d2">XMPIteratorRef</a> iterRef;
-<a name="l00226"></a>00226
-<a name="l00227"></a>00227 <a class="code" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services.">TXMPIterator</a>(); <span class="comment">// ! Hidden, must choose property or table iteration.</span>
-<a name="l00228"></a>00228
-<a name="l00229"></a>00229 <span class="keyword">static</span> <span class="keywordtype">void</span> SetClientString ( <span class="keywordtype">void</span> * clientPtr, <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> valuePtr, <a class="code" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a" title="The type for string length parameters. A 32-bit unsigned integer, as big as will...">XMP_StringLen</a> valueLen );
-<a name="l00230"></a>00230
-<a name="l00231"></a>00231 }; <span class="comment">// class TXMPIterator</span>
-<a name="l00232"></a>00232
-<a name="l00233"></a>00233 <span class="comment">// =================================================================================================</span>
-<a name="l00234"></a>00234
-<a name="l00235"></a>00235 <span class="preprocessor">#endif // __TXMPIterator_hpp__</span>
-</pre></div></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('TXMPIterator_8hpp_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">TXMPIterator.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="TXMPIterator_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __TXMPIterator_hpp__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __TXMPIterator_hpp__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#if ( ! __XMP_hpp__ )</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor"> #error &quot;Do not directly include, use XMP.hpp&quot;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// ADOBE SYSTEMS INCORPORATED</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// Copyright 2002 Adobe Systems Incorporated</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// All Rights Reserved</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"></span><span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="comment"></span><span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="WXMPIterator_8hpp.html">client-glue/WXMPIterator.hpp</a>&quot;</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="classTXMPIterator.html"> 79</a></span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> tStringObj&gt; <span class="keyword">class </span><a class="code" href="classTXMPIterator.html">TXMPIterator</a> {</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPIterator.html#ad767d731320d3f4c997c6ce9f7f8fa63">operator= </a>( <span class="keyword">const</span> <a class="code" href="classTXMPIterator.html">TXMPIterator&lt;tStringObj&gt;</a> &amp; rhs );</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="code" href="classTXMPIterator.html#af96460ad80e55b76214c48375fda05d7">TXMPIterator</a> ( <span class="keyword">const</span> <a class="code" href="classTXMPIterator.html">TXMPIterator&lt;tStringObj&gt;</a> &amp; original );</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="classTXMPIterator.html#af96460ad80e55b76214c48375fda05d7">TXMPIterator</a> ( <span class="keyword">const</span> <a class="code" href="classTXMPMeta.html">TXMPMeta&lt;tStringObj&gt;</a> &amp; xmpObj,</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options = 0 );</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <a class="code" href="classTXMPIterator.html#af96460ad80e55b76214c48375fda05d7">TXMPIterator</a> ( <span class="keyword">const</span> <a class="code" href="classTXMPMeta.html">TXMPMeta&lt;tStringObj&gt;</a> &amp; xmpObj,</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options = 0 );</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <a class="code" href="classTXMPIterator.html#af96460ad80e55b76214c48375fda05d7">TXMPIterator</a> ( <span class="keyword">const</span> <a class="code" href="classTXMPMeta.html">TXMPMeta&lt;tStringObj&gt;</a> &amp; xmpObj,</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options = 0 );</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <a class="code" href="classTXMPIterator.html#af96460ad80e55b76214c48375fda05d7">TXMPIterator</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options );</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classTXMPIterator.html#a911554533e8a3f09ab8870bd54462196">~TXMPIterator</a>() <span class="keywordflow">throw</span>();</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classTXMPIterator.html#a124a1dd1ab3ff0d236e4d4b967dafcd9">Next</a> ( tStringObj * schemaNS = 0,</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; tStringObj * propPath = 0,</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; tStringObj * propValue = 0,</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> * options = 0 );</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPIterator.html#a30b4d78974b347e4fcd275f1f65a61b2">Skip</a> ( <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options );</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="classTXMPIterator.html#aeecf240d827e33c8b1d7040a99dc7600"> 225</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a6ade57a30fb1e40d6aa9695c440fc3d2">XMPIteratorRef</a> <a class="code" href="classTXMPIterator.html#aeecf240d827e33c8b1d7040a99dc7600">iterRef</a>;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <a class="code" href="classTXMPIterator.html#af96460ad80e55b76214c48375fda05d7">TXMPIterator</a>(); <span class="comment">// ! Hidden, must choose property or table iteration.</span></div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPIterator.html#a9a59621f2961ee11b164d82c8c3c0295">SetClientString</a> ( <span class="keywordtype">void</span> * clientPtr, <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> valuePtr, <a class="code" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> valueLen );</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;}; <span class="comment">// class TXMPIterator</span></div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="preprocessor">#endif // __TXMPIterator_hpp__</span></div><div class="ttc" id="XMP__Const_8h_html_a9f7dcc184f901c713274edfdac5bcc9a"><div class="ttname"><a href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a></div><div class="ttdeci">XMP_Uns32 XMP_StringLen</div><div class="ttdoc">The type for string length parameters. A 32-bit unsigned integer, as big as will be practically neede...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00170">XMP_Const.h:170</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_ad439e3ceeb4590d310f6125aa12c6df6"><div class="ttname"><a href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a></div><div class="ttdeci">const char * XMP_StringPtr</div><div class="ttdoc">The type for input string parameters. A const char *, a null-terminated UTF-8 string. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00169">XMP_Const.h:169</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_aeb865118433be92d88e5f49ed11487c8"><div class="ttname"><a href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a></div><div class="ttdeci">XMP_Uns32 XMP_OptionBits</div><div class="ttdoc">The type for a collection of 32 flag bits. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00172">XMP_Const.h:172</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a6ade57a30fb1e40d6aa9695c440fc3d2"><div class="ttname"><a href="XMP__Const_8h.html#a6ade57a30fb1e40d6aa9695c440fc3d2">XMPIteratorRef</a></div><div class="ttdeci">struct __XMPIterator__ * XMPIteratorRef</div><div class="ttdoc">An &quot;ABI safe&quot; pointer to the internal part of an XMP iteration object. Use to pass an XMP iteration o...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00134">XMP_Const.h:134</a></div></div>
+<div class="ttc" id="classTXMPIterator_html_aeecf240d827e33c8b1d7040a99dc7600"><div class="ttname"><a href="classTXMPIterator.html#aeecf240d827e33c8b1d7040a99dc7600">TXMPIterator::iterRef</a></div><div class="ttdeci">XMPIteratorRef iterRef</div><div class="ttdef"><b>Definition:</b> <a href="TXMPIterator_8hpp_source.html#l00225">TXMPIterator.hpp:225</a></div></div>
+<div class="ttc" id="classTXMPIterator_html_a124a1dd1ab3ff0d236e4d4b967dafcd9"><div class="ttname"><a href="classTXMPIterator.html#a124a1dd1ab3ff0d236e4d4b967dafcd9">TXMPIterator::Next</a></div><div class="ttdeci">bool Next(tStringObj *schemaNS=0, tStringObj *propPath=0, tStringObj *propValue=0, XMP_OptionBits *options=0)</div><div class="ttdoc">Next() visits the next node in the iteration. </div></div>
+<div class="ttc" id="classTXMPIterator_html"><div class="ttname"><a href="classTXMPIterator.html">TXMPIterator</a></div><div class="ttdoc">API for access to the XMP Toolkit iteration services. </div><div class="ttdef"><b>Definition:</b> <a href="TXMPIterator_8hpp_source.html#l00079">TXMPIterator.hpp:79</a></div></div>
+<div class="ttc" id="classTXMPIterator_html_a30b4d78974b347e4fcd275f1f65a61b2"><div class="ttname"><a href="classTXMPIterator.html#a30b4d78974b347e4fcd275f1f65a61b2">TXMPIterator::Skip</a></div><div class="ttdeci">void Skip(XMP_OptionBits options)</div><div class="ttdoc">Skip() skips some portion of the remaining iterations. </div></div>
+<div class="ttc" id="classTXMPIterator_html_a9a59621f2961ee11b164d82c8c3c0295"><div class="ttname"><a href="classTXMPIterator.html#a9a59621f2961ee11b164d82c8c3c0295">TXMPIterator::SetClientString</a></div><div class="ttdeci">static void SetClientString(void *clientPtr, XMP_StringPtr valuePtr, XMP_StringLen valueLen)</div></div>
+<div class="ttc" id="classTXMPIterator_html_ad767d731320d3f4c997c6ce9f7f8fa63"><div class="ttname"><a href="classTXMPIterator.html#ad767d731320d3f4c997c6ce9f7f8fa63">TXMPIterator::operator=</a></div><div class="ttdeci">void operator=(const TXMPIterator&lt; tStringObj &gt; &amp;rhs)</div><div class="ttdoc">Assignment operator, assigns the internal ref and increments the ref count. </div></div>
+<div class="ttc" id="classTXMPIterator_html_af96460ad80e55b76214c48375fda05d7"><div class="ttname"><a href="classTXMPIterator.html#af96460ad80e55b76214c48375fda05d7">TXMPIterator::TXMPIterator</a></div><div class="ttdeci">TXMPIterator()</div></div>
+<div class="ttc" id="WXMPIterator_8hpp_html"><div class="ttname"><a href="WXMPIterator_8hpp.html">WXMPIterator.hpp</a></div></div>
+<div class="ttc" id="classTXMPIterator_html_a911554533e8a3f09ab8870bd54462196"><div class="ttname"><a href="classTXMPIterator.html#a911554533e8a3f09ab8870bd54462196">TXMPIterator::~TXMPIterator</a></div><div class="ttdeci">virtual ~TXMPIterator()</div><div class="ttdoc">Destructor, typical virtual destructor. </div></div>
+<div class="ttc" id="classTXMPMeta_html"><div class="ttname"><a href="classTXMPMeta.html">TXMPMeta</a></div><div class="ttdoc">API for access to the XMP Toolkit core services. </div><div class="ttdef"><b>Definition:</b> <a href="TXMPMeta_8hpp_source.html#l00055">TXMPMeta.hpp:55</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
</body>
</html>
diff --git a/docs/API/TXMPIterator_8incl__cpp.html b/docs/API/TXMPIterator_8incl__cpp.html
deleted file mode 100644
index 28fa7da..0000000
--- a/docs/API/TXMPIterator_8incl__cpp.html
+++ /dev/null
@@ -1,85 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: TXMPIterator.incl_cpp File Reference</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
-<link href="tabs.css" rel="stylesheet" type="text/css">
-</head><body>
-<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
- <li><a href="annotated.html"><span>Classes</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li><a href="files.html"><span>File&nbsp;List</span></a></li>
- <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
- </ul>
- </div>
-</div>
-<div class="contents">
-<h1>TXMPIterator.incl_cpp File Reference</h1>
-<p>The implementation of the <a class="el" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services.">TXMPIterator</a> template class.
-<a href="#_details">More...</a></p>
-<code>#include &quot;XMP.hpp&quot;</code><br/>
-<code>#include &quot;client-glue/WXMP_Common.hpp&quot;</code><br/>
-<code>#include &quot;client-glue/WXMPIterator.hpp&quot;</code><br/>
-<div class="dynheader">
-Include dependency graph for TXMPIterator.incl_cpp:</div>
-<div class="dynsection">
-<div class="center"><img src="TXMPIterator_8incl__cpp__incl.png" border="0" usemap="#TXMPIterator_8incl__cpp_map" alt=""/></div>
-</div>
-<table border="0" cellpadding="0" cellspacing="0">
-</table>
-<hr/><a name="_details"></a><h2>Detailed Description</h2>
-<p>The implementation of the <a class="el" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services.">TXMPIterator</a> template class. </p>
-</div>
-<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
-</body>
-</html>
diff --git a/docs/API/TXMPIterator_8incl__cpp__incl.png b/docs/API/TXMPIterator_8incl__cpp__incl.png
deleted file mode 100644
index fe10552..0000000
--- a/docs/API/TXMPIterator_8incl__cpp__incl.png
+++ /dev/null
Binary files differ
diff --git a/docs/API/TXMPMeta_8hpp.html b/docs/API/TXMPMeta_8hpp.html
index e4d7fa5..a40d9b3 100644..100755
--- a/docs/API/TXMPMeta_8hpp.html
+++ b/docs/API/TXMPMeta_8hpp.html
@@ -1,84 +1,75 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: TXMPMeta.hpp File Reference</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/TXMPMeta.hpp File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
- <li><a href="files.html"><span>File&nbsp;List</span></a></li>
- <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('TXMPMeta_8hpp.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">TXMPMeta.hpp File Reference</div> </div>
+</div><!--header-->
<div class="contents">
-<h1>TXMPMeta.hpp File Reference</h1>
-<p>API for access to the XMP Toolkit core services.
-<a href="#_details">More...</a></p>
+<p>API for access to the XMP Toolkit core services.
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &quot;<a class="el" href="XMPCoreDefines_8h_source.html">XMPCore/XMPCoreDefines.h</a>&quot;</code><br />
+</div>
<p><a href="TXMPMeta_8hpp_source.html">Go to the source code of this file.</a></p>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td colspan="2"><h2>Classes</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">API for access to the XMP Toolkit core services. <a href="classTXMPMeta.html#_details">More...</a><br/></td></tr>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPIterator.html">TXMPIterator&lt; tStringObj &gt;</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">API for access to the XMP Toolkit iteration services. <a href="classTXMPIterator.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">API for access to the XMP Toolkit utility services. <a href="classTXMPUtils.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">API for access to the XMP Toolkit core services. <a href="classTXMPMeta.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
-<hr/><a name="_details"></a><h2>Detailed Description</h2>
-<p>API for access to the XMP Toolkit core services. </p>
-<p><code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta</a></code> is the template class providing the core services of the XMP Toolkit. It must be instantiated with a string class such as <code>std::string</code>. Read the Toolkit Overview for information about the overall architecture of the XMP API, and the documentation for <code>XMP.hpp</code> for specific instantiation instructions. Please that you MUST NOT derive a class from this class, consider this class FINAL, use it directly. [1279031]</p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>API for access to the XMP Toolkit core services. </p>
+<p><code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services. ">TXMPMeta</a></code> is the template class providing the core services of the XMP Toolkit. It must be instantiated with a string class such as <code>std::string</code>. Read the Toolkit Overview for information about the overall architecture of the XMP API, and the documentation for <code><a class="el" href="XMP_8hpp.html" title="Overall header file for the XMP Toolkit. ">XMP.hpp</a></code> for specific instantiation instructions. Please that you MUST NOT derive a class from this class, consider this class FINAL, use it directly. [1279031]</p>
<p>Access these functions through the concrete class, <code>SXMPMeta</code>. </p>
-</div>
+
+<p>Definition in file <a class="el" href="TXMPMeta_8hpp_source.html">TXMPMeta.hpp</a>.</p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
</body>
</html>
diff --git a/docs/API/TXMPMeta_8hpp_source.html b/docs/API/TXMPMeta_8hpp_source.html
index d8da4fa..56f8b60 100644..100755
--- a/docs/API/TXMPMeta_8hpp_source.html
+++ b/docs/API/TXMPMeta_8hpp_source.html
@@ -1,601 +1,123 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: TXMPMeta.hpp Source File</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/TXMPMeta.hpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
- <li><a href="files.html"><span>File&nbsp;List</span></a></li>
- <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-<h1>TXMPMeta.hpp</h1><a href="TXMPMeta_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef __TXMPMeta_hpp__</span>
-<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define __TXMPMeta_hpp__ 1</span>
-<a name="l00003"></a>00003 <span class="preprocessor"></span>
-<a name="l00004"></a>00004 <span class="preprocessor">#if ( ! __XMP_hpp__ )</span>
-<a name="l00005"></a>00005 <span class="preprocessor"></span><span class="preprocessor"> #error &quot;Do not directly include, use XMP.hpp&quot;</span>
-<a name="l00006"></a>00006 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
-<a name="l00007"></a>00007 <span class="preprocessor"></span>
-<a name="l00008"></a>00008 <span class="comment">// =================================================================================================</span>
-<a name="l00009"></a>00009 <span class="comment">// ADOBE SYSTEMS INCORPORATED</span>
-<a name="l00010"></a>00010 <span class="comment">// Copyright 2002 Adobe Systems Incorporated</span>
-<a name="l00011"></a>00011 <span class="comment">// All Rights Reserved</span>
-<a name="l00012"></a>00012 <span class="comment">//</span>
-<a name="l00013"></a>00013 <span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span>
-<a name="l00014"></a>00014 <span class="comment">// of the Adobe license agreement accompanying it.</span>
-<a name="l00015"></a>00015 <span class="comment">// =================================================================================================</span>
-<a name="l00016"></a>00016
-<a name="l00017"></a>00017 <span class="comment">// =================================================================================================</span>
-<a name="l00028"></a>00028 <span class="comment"></span><span class="comment">// =================================================================================================</span>
-<a name="l00029"></a>00029
-<a name="l00030"></a>00030 <span class="comment">// =================================================================================================</span>
-<a name="l00043"></a>00043 <span class="comment"></span><span class="comment">// =================================================================================================</span>
-<a name="l00044"></a>00044
-<a name="l00045"></a>00045 <span class="keyword">template</span> &lt;<span class="keyword">class</span> tStringObj&gt; <span class="keyword">class </span><a class="code" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services.">TXMPIterator</a>;
-<a name="l00046"></a>00046 <span class="keyword">template</span> &lt;<span class="keyword">class</span> tStringObj&gt; <span class="keyword">class </span><a class="code" href="classTXMPUtils.html" title="API for access to the XMP Toolkit utility services.">TXMPUtils</a>;
-<a name="l00047"></a>00047
-<a name="l00048"></a>00048 <span class="comment">// -------------------------------------------------------------------------------------------------</span>
-<a name="l00049"></a>00049
-<a name="l00050"></a><a class="code" href="classTXMPMeta.html">00050</a> <span class="keyword">template</span> &lt;<span class="keyword">class</span> tStringObj&gt; <span class="keyword">class </span><a class="code" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta</a> {
-<a name="l00051"></a>00051
-<a name="l00052"></a>00052 <span class="keyword">public</span>:
-<a name="l00053"></a>00053
-<a name="l00054"></a>00054 <span class="comment">// =============================================================================================</span>
-<a name="l00055"></a>00055 <span class="comment">// Initialization and termination</span>
-<a name="l00056"></a>00056 <span class="comment">// ==============================</span>
-<a name="l00057"></a>00057
-<a name="l00058"></a>00058 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00062"></a>00062 <span class="comment"></span>
-<a name="l00063"></a>00063 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00075"></a>00075 <span class="comment"></span>
-<a name="l00076"></a>00076 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a5415cfc01a9cb8786939246571a23a9d" title="GetVersionInfo() retrieves runtime version information.">GetVersionInfo</a> ( <a class="code" href="structXMP__VersionInfo.html" title="XMP Toolkit version information.">XMP_VersionInfo</a> * info );
-<a name="l00077"></a>00077
-<a name="l00078"></a>00078 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00080"></a>00080 <span class="comment"></span>
-<a name="l00089"></a>00089 <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classTXMPMeta.html#af1defbb73f919eae06456a655dea726c" title="Initialize() explicitly initializes the XMP Toolkit before use. */">Initialize</a>();
-<a name="l00090"></a>00090 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00096"></a>00096 <span class="comment"></span>
-<a name="l00097"></a>00097 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a6c30fae26173167958b6f0da95a53865" title="Terminate() explicitly terminates usage of the XMP Toolkit.">Terminate</a>();
-<a name="l00098"></a>00098
-<a name="l00100"></a>00100
-<a name="l00101"></a>00101 <span class="comment">// =============================================================================================</span>
-<a name="l00102"></a>00102 <span class="comment">// Constuctors and destructor</span>
-<a name="l00103"></a>00103 <span class="comment">// ==========================</span>
-<a name="l00104"></a>00104
-<a name="l00105"></a>00105 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00108"></a>00108 <span class="comment"></span>
-<a name="l00109"></a>00109 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00115"></a>00115 <span class="comment"></span> <a class="code" href="classTXMPMeta.html#a61ffb3aa3e387d8ff9c1f4ebd26606c7" title="Default constructor, creates an empty object.">TXMPMeta</a>();
-<a name="l00116"></a>00116
-<a name="l00117"></a>00117 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00126"></a>00126 <span class="comment"></span>
-<a name="l00127"></a>00127 <a class="code" href="classTXMPMeta.html#a61ffb3aa3e387d8ff9c1f4ebd26606c7" title="Default constructor, creates an empty object.">TXMPMeta</a> ( <span class="keyword">const</span> <a class="code" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta&lt;tStringObj&gt;</a> &amp; original );
-<a name="l00128"></a>00128
-<a name="l00129"></a>00129 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00134"></a>00134 <span class="comment"></span>
-<a name="l00135"></a>00135 <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a4d5a601c9b77f6f6ab5f14e658de58ef" title="Assignment operator, assigns the internal reference and increments the reference...">operator= </a>( <span class="keyword">const</span> <a class="code" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta&lt;tStringObj&gt;</a> &amp; rhs );
-<a name="l00136"></a>00136
-<a name="l00137"></a>00137 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00147"></a>00147 <span class="comment"></span>
-<a name="l00148"></a>00148 <a class="code" href="classTXMPMeta.html#a61ffb3aa3e387d8ff9c1f4ebd26606c7" title="Default constructor, creates an empty object.">TXMPMeta</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef );
-<a name="l00149"></a>00149
-<a name="l00150"></a>00150 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00167"></a>00167 <span class="comment"></span>
-<a name="l00168"></a>00168 <a class="code" href="classTXMPMeta.html#a61ffb3aa3e387d8ff9c1f4ebd26606c7" title="Default constructor, creates an empty object.">TXMPMeta</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> buffer,
-<a name="l00169"></a>00169 <a class="code" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a" title="The type for string length parameters. A 32-bit unsigned integer, as big as will...">XMP_StringLen</a> xmpSize );
-<a name="l00170"></a>00170
-<a name="l00171"></a>00171 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00173"></a>00173 <span class="comment"></span> <span class="keyword">virtual</span> <a class="code" href="classTXMPMeta.html#abab5013870cd47eb0d9d701653735a02" title="Destructor, typical virtual destructor. */.">~TXMPMeta</a>() <span class="keywordflow">throw</span>();
-<a name="l00174"></a>00174
-<a name="l00176"></a>00176
-<a name="l00177"></a>00177 <span class="comment">// =============================================================================================</span>
-<a name="l00178"></a>00178 <span class="comment">// Global state functions</span>
-<a name="l00179"></a>00179 <span class="comment">// ======================</span>
-<a name="l00180"></a>00180
-<a name="l00181"></a>00181 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00186"></a>00186 <span class="comment"></span>
-<a name="l00187"></a>00187 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00194"></a>00194 <span class="comment"></span>
-<a name="l00195"></a>00195 <span class="keyword">static</span> <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> <a class="code" href="classTXMPMeta.html#a12b2435ba039c62a164951948c016eb4" title="GetGlobalOptions() retrieves the set of global option flags. There are none in this...">GetGlobalOptions</a>();
-<a name="l00196"></a>00196
-<a name="l00197"></a>00197 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00208"></a>00208 <span class="comment"></span>
-<a name="l00209"></a>00209 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#ae7bb38d9b3857b08106630a386b47332" title="SetGlobalOptions() updates the set of global option flags. There are none in this...">SetGlobalOptions</a> ( <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> options );
-<a name="l00210"></a>00210
-<a name="l00212"></a>00212
-<a name="l00213"></a>00213 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00221"></a>00221 <span class="comment"></span>
-<a name="l00222"></a>00222 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00235"></a>00235 <span class="comment"></span>
-<a name="l00236"></a>00236 <span class="keyword">static</span> <a class="code" href="XMP__Const_8h.html#a05b81829c04746826f4f85fbac76e3dd">XMP_Status</a> <a class="code" href="classTXMPMeta.html#aaddc5f555de57472939a41346e276817" title="DumpNamespaces() sends the list of registered namespace URIs and prefixes to a handler...">DumpNamespaces</a> ( <a class="code" href="XMP__Const_8h.html#a8ce3570e6e5ac14cd603e96fa9d2936f">XMP_TextOutputProc</a> outProc,
-<a name="l00237"></a>00237 <span class="keywordtype">void</span> * clientData );
-<a name="l00238"></a>00238
-<a name="l00240"></a>00240
-<a name="l00241"></a>00241 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00252"></a>00252 <span class="comment"></span>
-<a name="l00253"></a>00253 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00274"></a>00274 <span class="comment"></span>
-<a name="l00275"></a>00275 <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classTXMPMeta.html#ac0368ddbaa4d689cd5b1aff1c88bb0e1" title="RegisterNamespace() registers a namespace URI with a suggested prefix.">RegisterNamespace</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> namespaceURI,
-<a name="l00276"></a>00276 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> suggestedPrefix,
-<a name="l00277"></a>00277 tStringObj * registeredPrefix );
-<a name="l00278"></a>00278
-<a name="l00279"></a>00279 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00293"></a>00293 <span class="comment"></span>
-<a name="l00294"></a>00294 <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classTXMPMeta.html#af28589472d8c0397db6cef868f2b8c97" title="GetNamespacePrefix() obtains the prefix for a registered namespace URI, and reports...">GetNamespacePrefix</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> namespaceURI,
-<a name="l00295"></a>00295 tStringObj * namespacePrefix );
-<a name="l00296"></a>00296
-<a name="l00297"></a>00297 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00310"></a>00310 <span class="comment"></span>
-<a name="l00311"></a>00311 <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classTXMPMeta.html#aa20c84e7549d0a3252fa29a1e83a757a" title="GetNamespaceURI() obtains the URI for a registered namespace prefix, and reports...">GetNamespaceURI</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> namespacePrefix,
-<a name="l00312"></a>00312 tStringObj * namespaceURI );
-<a name="l00313"></a>00313
-<a name="l00314"></a>00314 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00323"></a>00323 <span class="comment"></span>
-<a name="l00324"></a>00324 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a3f989597e95db929676273cacd4ea09a" title="Not implemented.">DeleteNamespace</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> namespaceURI );
-<a name="l00325"></a>00325
-<a name="l00327"></a>00327
-<a name="l00328"></a>00328 <span class="comment">// =============================================================================================</span>
-<a name="l00329"></a>00329 <span class="comment">// Basic property manipulation functions</span>
-<a name="l00330"></a>00330 <span class="comment">// =====================================</span>
-<a name="l00331"></a>00331
-<a name="l00332"></a>00332 <span class="comment">// *** Should add discussion of schemaNS and propName prefix usage.</span>
-<a name="l00333"></a>00333
-<a name="l00334"></a>00334 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00349"></a>00349 <span class="comment"></span>
-<a name="l00350"></a>00350 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00380"></a>00380 <span class="comment"></span>
-<a name="l00381"></a>00381 <span class="keywordtype">bool</span> <a class="code" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l00382"></a>00382 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> propName,
-<a name="l00383"></a>00383 tStringObj * propValue,
-<a name="l00384"></a>00384 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> * options ) <span class="keyword">const</span>;
-<a name="l00385"></a>00385
-<a name="l00386"></a>00386 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00408"></a>00408 <span class="comment"></span>
-<a name="l00409"></a>00409 <span class="keywordtype">bool</span> <a class="code" href="classTXMPMeta.html#ac64a4251d157937f69b73f2ffac4f7cc" title="GetArrayItem() provides access to items within an array.">GetArrayItem</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l00410"></a>00410 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> arrayName,
-<a name="l00411"></a>00411 <a class="code" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315" title="The type for offsets and indices. A 32-bit signed integer. It is signed to allow...">XMP_Index</a> itemIndex,
-<a name="l00412"></a>00412 tStringObj * itemValue,
-<a name="l00413"></a>00413 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> * options ) <span class="keyword">const</span>;
-<a name="l00414"></a>00414
-<a name="l00415"></a>00415 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00440"></a>00440 <span class="comment"></span>
-<a name="l00441"></a>00441 <span class="keywordtype">bool</span> <a class="code" href="classTXMPMeta.html#a885ef7127b897e349f71fa493ace3c94" title="GetStructField() provides access to fields within a nested structure.">GetStructField</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l00442"></a>00442 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> structName,
-<a name="l00443"></a>00443 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> fieldNS,
-<a name="l00444"></a>00444 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> fieldName,
-<a name="l00445"></a>00445 tStringObj * fieldValue,
-<a name="l00446"></a>00446 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> * options ) <span class="keyword">const</span>;
-<a name="l00447"></a>00447
-<a name="l00448"></a>00448 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00473"></a>00473 <span class="comment"></span>
-<a name="l00474"></a>00474 <span class="keywordtype">bool</span> <a class="code" href="classTXMPMeta.html#a2cc58d8316043b035643e7c21633bc13" title="GetQualifier() provides access to a qualifier attached to a property.">GetQualifier</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l00475"></a>00475 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> propName,
-<a name="l00476"></a>00476 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> qualNS,
-<a name="l00477"></a>00477 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> qualName,
-<a name="l00478"></a>00478 tStringObj * qualValue,
-<a name="l00479"></a>00479 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> * options ) <span class="keyword">const</span>;
-<a name="l00480"></a>00480
-<a name="l00482"></a>00482
-<a name="l00483"></a>00483 <span class="comment">// =============================================================================================</span>
-<a name="l00484"></a>00484
-<a name="l00485"></a>00485 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00497"></a>00497 <span class="comment"></span>
-<a name="l00511"></a>00511
-<a name="l00512"></a>00512 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00529"></a>00529 <span class="comment"></span>
-<a name="l00530"></a>00530 <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a1dfd6a08ebfd1a6364b3a7b6584bcc28" title="SetProperty() creates or sets a property value.">SetProperty</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l00531"></a>00531 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> propName,
-<a name="l00532"></a>00532 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> propValue,
-<a name="l00533"></a>00533 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> options = 0 );
-<a name="l00534"></a>00534
-<a name="l00535"></a>00535 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00540"></a>00540 <span class="comment"></span>
-<a name="l00541"></a>00541 <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a1dfd6a08ebfd1a6364b3a7b6584bcc28" title="SetProperty() creates or sets a property value.">SetProperty</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l00542"></a>00542 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> propName,
-<a name="l00543"></a>00543 <span class="keyword">const</span> tStringObj &amp; propValue,
-<a name="l00544"></a>00544 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> options = 0 );
-<a name="l00545"></a>00545
-<a name="l00546"></a>00546 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00574"></a>00574 <span class="comment"></span>
-<a name="l00575"></a>00575 <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a1570eb89d613b4a94ca572e4644168cc" title="SetArrayItem() creates or sets the value of an item within an array.">SetArrayItem</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l00576"></a>00576 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> arrayName,
-<a name="l00577"></a>00577 <a class="code" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315" title="The type for offsets and indices. A 32-bit signed integer. It is signed to allow...">XMP_Index</a> itemIndex,
-<a name="l00578"></a>00578 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> itemValue,
-<a name="l00579"></a>00579 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> options = 0 );
-<a name="l00580"></a>00580
-<a name="l00581"></a>00581 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00586"></a>00586 <span class="comment"></span>
-<a name="l00587"></a>00587 <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a1570eb89d613b4a94ca572e4644168cc" title="SetArrayItem() creates or sets the value of an item within an array.">SetArrayItem</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l00588"></a>00588 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> arrayName,
-<a name="l00589"></a>00589 <a class="code" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315" title="The type for offsets and indices. A 32-bit signed integer. It is signed to allow...">XMP_Index</a> itemIndex,
-<a name="l00590"></a>00590 <span class="keyword">const</span> tStringObj &amp; itemValue,
-<a name="l00591"></a>00591 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> options = 0 );
-<a name="l00592"></a>00592
-<a name="l00593"></a>00593 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00619"></a>00619 <span class="comment"></span>
-<a name="l00620"></a>00620 <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a00d7314dc970ad390499ce9db27d314a" title="AppendArrayItem() adds an item to an array, creating the array if necessary.">AppendArrayItem</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l00621"></a>00621 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> arrayName,
-<a name="l00622"></a>00622 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> arrayOptions,
-<a name="l00623"></a>00623 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> itemValue,
-<a name="l00624"></a>00624 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> itemOptions = 0 );
-<a name="l00625"></a>00625
-<a name="l00626"></a>00626 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00632"></a>00632 <span class="comment"></span>
-<a name="l00633"></a>00633 <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a00d7314dc970ad390499ce9db27d314a" title="AppendArrayItem() adds an item to an array, creating the array if necessary.">AppendArrayItem</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l00634"></a>00634 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> arrayName,
-<a name="l00635"></a>00635 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> arrayOptions,
-<a name="l00636"></a>00636 <span class="keyword">const</span> tStringObj &amp; itemValue,
-<a name="l00637"></a>00637 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> itemOptions = 0 );
-<a name="l00638"></a>00638
-<a name="l00639"></a>00639 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00664"></a>00664 <span class="comment"></span>
-<a name="l00665"></a>00665 <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a0e44c30e7527064909e5f7035d53c4f5" title="SetStructField() creates or sets the value of a field within a nested structure.">SetStructField</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l00666"></a>00666 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> structName,
-<a name="l00667"></a>00667 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> fieldNS,
-<a name="l00668"></a>00668 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> fieldName,
-<a name="l00669"></a>00669 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> fieldValue,
-<a name="l00670"></a>00670 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> options = 0 );
-<a name="l00671"></a>00671
-<a name="l00672"></a>00672 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00678"></a>00678 <span class="comment"></span>
-<a name="l00679"></a>00679 <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a0e44c30e7527064909e5f7035d53c4f5" title="SetStructField() creates or sets the value of a field within a nested structure.">SetStructField</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l00680"></a>00680 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> structName,
-<a name="l00681"></a>00681 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> fieldNS,
-<a name="l00682"></a>00682 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> fieldName,
-<a name="l00683"></a>00683 <span class="keyword">const</span> tStringObj &amp; fieldValue,
-<a name="l00684"></a>00684 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> options = 0 );
-<a name="l00685"></a>00685
-<a name="l00686"></a>00686 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00711"></a>00711 <span class="comment"></span>
-<a name="l00712"></a>00712 <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#ac2e798da5f9d94e486382a41e73fcea3" title="SetQualifier() creates or sets a qualifier attached to a property.">SetQualifier</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l00713"></a>00713 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> propName,
-<a name="l00714"></a>00714 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> qualNS,
-<a name="l00715"></a>00715 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> qualName,
-<a name="l00716"></a>00716 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> qualValue,
-<a name="l00717"></a>00717 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> options = 0 );
-<a name="l00718"></a>00718
-<a name="l00719"></a>00719 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00724"></a>00724 <span class="comment"></span>
-<a name="l00725"></a>00725 <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#ac2e798da5f9d94e486382a41e73fcea3" title="SetQualifier() creates or sets a qualifier attached to a property.">SetQualifier</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l00726"></a>00726 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> propName,
-<a name="l00727"></a>00727 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> qualNS,
-<a name="l00728"></a>00728 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> qualName,
-<a name="l00729"></a>00729 <span class="keyword">const</span> tStringObj &amp; qualValue,
-<a name="l00730"></a>00730 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> options = 0 );
-<a name="l00731"></a>00731
-<a name="l00733"></a>00733
-<a name="l00734"></a>00734 <span class="comment">// =============================================================================================</span>
-<a name="l00735"></a>00735
-<a name="l00736"></a>00736 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00742"></a>00742 <span class="comment"></span>
-<a name="l00743"></a>00743 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00751"></a>00751 <span class="comment"></span>
-<a name="l00752"></a>00752 <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#ac8b555ba99904fa49bb4851a60cc3844" title="DeleteProperty() deletes an XMP subtree rooted at a given property.">DeleteProperty</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l00753"></a>00753 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> propName );
-<a name="l00754"></a>00754
-<a name="l00755"></a>00755 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00768"></a>00768 <span class="comment"></span>
-<a name="l00769"></a>00769 <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#abc1211f47225b5973a170ff952743264" title="DeleteArrayItem() deletes an XMP subtree rooted at a given array item.">DeleteArrayItem</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l00770"></a>00770 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> arrayName,
-<a name="l00771"></a>00771 <a class="code" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315" title="The type for offsets and indices. A 32-bit signed integer. It is signed to allow...">XMP_Index</a> itemIndex );
-<a name="l00772"></a>00772
-<a name="l00773"></a>00773 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00788"></a>00788 <span class="comment"></span>
-<a name="l00789"></a>00789 <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#abc258e027780a15be65a88fcfd4e1fd4" title="DeleteStructField() deletes an XMP subtree rooted at a given struct field.">DeleteStructField</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l00790"></a>00790 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> structName,
-<a name="l00791"></a>00791 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> fieldNS,
-<a name="l00792"></a>00792 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> fieldName );
-<a name="l00793"></a>00793
-<a name="l00794"></a>00794 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00810"></a>00810 <span class="comment"></span>
-<a name="l00811"></a>00811 <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a8ce15f7de7fd3b258f07158ab5fa88be" title="DeleteQualifier() deletes an XMP subtree rooted at a given qualifier.">DeleteQualifier</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l00812"></a>00812 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> propName,
-<a name="l00813"></a>00813 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> qualNS,
-<a name="l00814"></a>00814 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> qualName );
-<a name="l00815"></a>00815
-<a name="l00816"></a>00816 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00824"></a>00824 <span class="comment"></span>
-<a name="l00825"></a>00825 <span class="keywordtype">bool</span> <a class="code" href="classTXMPMeta.html#af22b116d71ecbbebea016ec5337e7066" title="DoesPropertyExist() reports whether a property currently exists.">DoesPropertyExist</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l00826"></a>00826 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> propName ) <span class="keyword">const</span>;
-<a name="l00827"></a>00827
-<a name="l00828"></a>00828 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00842"></a>00842 <span class="comment"></span>
-<a name="l00843"></a>00843 <span class="keywordtype">bool</span> <a class="code" href="classTXMPMeta.html#a492465c588d6d4cb8e30f94790e66f58" title="DoesArrayItemExist() reports whether an array item currently exists.">DoesArrayItemExist</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l00844"></a>00844 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> arrayName,
-<a name="l00845"></a>00845 <a class="code" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315" title="The type for offsets and indices. A 32-bit signed integer. It is signed to allow...">XMP_Index</a> itemIndex ) <span class="keyword">const</span>;
-<a name="l00846"></a>00846
-<a name="l00847"></a>00847 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00864"></a>00864 <span class="comment"></span>
-<a name="l00865"></a>00865 <span class="keywordtype">bool</span> <a class="code" href="classTXMPMeta.html#a9261b80d62e77a10ff1a89843bfa10a5" title="DoesStructFieldExist() reports whether a struct field currently exists.">DoesStructFieldExist</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l00866"></a>00866 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> structName,
-<a name="l00867"></a>00867 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> fieldNS,
-<a name="l00868"></a>00868 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> fieldName ) <span class="keyword">const</span>;
-<a name="l00869"></a>00869
-<a name="l00870"></a>00870 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00886"></a>00886 <span class="comment"></span>
-<a name="l00887"></a>00887 <span class="keywordtype">bool</span> <a class="code" href="classTXMPMeta.html#a81347a92becd387a14f4d47c582f129a" title="DoesQualifierExist() reports whether a qualifier currently exists.">DoesQualifierExist</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l00888"></a>00888 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> propName,
-<a name="l00889"></a>00889 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> qualNS,
-<a name="l00890"></a>00890 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> qualName ) <span class="keyword">const</span>;
-<a name="l00891"></a>00891
-<a name="l00893"></a>00893
-<a name="l00894"></a>00894 <span class="comment">// =============================================================================================</span>
-<a name="l00895"></a>00895 <span class="comment">// Specialized Get and Set functions</span>
-<a name="l00896"></a>00896 <span class="comment">// =============================================================================================</span>
-<a name="l00897"></a>00897
-<a name="l00898"></a>00898 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00907"></a>00907 <span class="comment"></span>
-<a name="l00908"></a>00908 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00927"></a>00927 <span class="comment"></span>
-<a name="l00928"></a>00928 <span class="keywordtype">bool</span> <a class="code" href="classTXMPMeta.html#adcf8a1959a8bd42641a42cbd4d64a5b7" title="GetProperty_Bool() retrieves the value of a Boolean property as a C++ bool.">GetProperty_Bool</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l00929"></a>00929 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> propName,
-<a name="l00930"></a>00930 <span class="keywordtype">bool</span> * propValue,
-<a name="l00931"></a>00931 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> * options ) <span class="keyword">const</span>;
-<a name="l00932"></a>00932
-<a name="l00933"></a>00933 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00952"></a>00952 <span class="comment"></span>
-<a name="l00953"></a>00953 <span class="keywordtype">bool</span> <a class="code" href="classTXMPMeta.html#ae4e8ee4cc7441bb9464dac87f2d74650" title="GetProperty_Int() retrieves the value of an integer property as a C long integer...">GetProperty_Int</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l00954"></a>00954 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> propName,
-<a name="l00955"></a>00955 XMP_Int32 * propValue,
-<a name="l00956"></a>00956 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> * options ) <span class="keyword">const</span>;
-<a name="l00957"></a>00957
-<a name="l00958"></a>00958 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00977"></a>00977 <span class="comment"></span>
-<a name="l00978"></a>00978 <span class="keywordtype">bool</span> <a class="code" href="classTXMPMeta.html#af91fa4bc4f51a56e35bcfb554783b050" title="GetProperty_Int64() retrieves the value of an integer property as a C long long integer...">GetProperty_Int64</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l00979"></a>00979 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> propName,
-<a name="l00980"></a>00980 XMP_Int64 * propValue,
-<a name="l00981"></a>00981 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> * options ) <span class="keyword">const</span>;
-<a name="l00982"></a>00982
-<a name="l00983"></a>00983 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l01002"></a>01002 <span class="comment"></span>
-<a name="l01003"></a>01003 <span class="keywordtype">bool</span> <a class="code" href="classTXMPMeta.html#a7708c31c9af3e740b27a4893dcd9aa47" title="GetProperty_Float() retrieves the value of a floating-point property as a C double...">GetProperty_Float</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l01004"></a>01004 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> propName,
-<a name="l01005"></a>01005 <span class="keywordtype">double</span> * propValue,
-<a name="l01006"></a>01006 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> * options ) <span class="keyword">const</span>;
-<a name="l01007"></a>01007
-<a name="l01008"></a>01008 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l01027"></a>01027 <span class="comment"></span>
-<a name="l01028"></a>01028 <span class="keywordtype">bool</span> <a class="code" href="classTXMPMeta.html#a2f561295e73047ee90765558d29bd650" title="GetProperty_Date() retrieves the value of a date-time property as an XMP_DateTime...">GetProperty_Date</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l01029"></a>01029 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> propName,
-<a name="l01030"></a>01030 <a class="code" href="structXMP__DateTime.html" title="The expanded type for a date and time.">XMP_DateTime</a> * propValue,
-<a name="l01031"></a>01031 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> * options ) <span class="keyword">const</span>;
-<a name="l01032"></a>01032
-<a name="l01033"></a>01033 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l01049"></a>01049 <span class="comment"></span>
-<a name="l01050"></a>01050 <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a9521e3838272ec501ffdb60ff3eb482f" title="SetProperty_Bool() sets the value of a Boolean property using a C++ bool.">SetProperty_Bool</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l01051"></a>01051 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> propName,
-<a name="l01052"></a>01052 <span class="keywordtype">bool</span> propValue,
-<a name="l01053"></a>01053 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> options = 0 );
-<a name="l01054"></a>01054
-<a name="l01055"></a>01055 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l01071"></a>01071 <span class="comment"></span>
-<a name="l01072"></a>01072 <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a489e10a6686aa813ee437e93ab2c5943" title="SetProperty_Int() sets the value of an integer property using a C long integer.">SetProperty_Int</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l01073"></a>01073 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> propName,
-<a name="l01074"></a>01074 XMP_Int32 propValue,
-<a name="l01075"></a>01075 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> options = 0 );
-<a name="l01076"></a>01076
-<a name="l01077"></a>01077 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l01093"></a>01093 <span class="comment"></span>
-<a name="l01094"></a>01094 <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a7f749be7699890bbaa2e2dbd05d45a90" title="SetProperty_Int64() sets the value of an integer property using a C long long integer...">SetProperty_Int64</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l01095"></a>01095 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> propName,
-<a name="l01096"></a>01096 XMP_Int64 propValue,
-<a name="l01097"></a>01097 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> options = 0 );
-<a name="l01098"></a>01098
-<a name="l01099"></a>01099 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l01115"></a>01115 <span class="comment"></span>
-<a name="l01116"></a>01116 <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a3b0f2f6bae57931ea96775f03608c0ed" title="SetProperty_Float() sets the value of a floating-point property using a C double...">SetProperty_Float</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l01117"></a>01117 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> propName,
-<a name="l01118"></a>01118 <span class="keywordtype">double</span> propValue,
-<a name="l01119"></a>01119 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> options = 0 );
-<a name="l01120"></a>01120
-<a name="l01121"></a>01121 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l01137"></a>01137 <span class="comment"></span>
-<a name="l01138"></a>01138 <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#aeee10669445f77139d5634199ff01079" title="SetProperty_Date() sets the value of a date/time property using an XMP_DateTime structure...">SetProperty_Date</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l01139"></a>01139 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> propName,
-<a name="l01140"></a>01140 <span class="keyword">const</span> <a class="code" href="structXMP__DateTime.html" title="The expanded type for a date and time.">XMP_DateTime</a> &amp; propValue,
-<a name="l01141"></a>01141 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> options = 0 );
-<a name="l01142"></a>01142
-<a name="l01144"></a>01144 <span class="comment">// =============================================================================================</span>
-<a name="l01183"></a>01183 <span class="comment"></span>
-<a name="l01184"></a>01184 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l01225"></a>01225 <span class="comment"></span>
-<a name="l01226"></a>01226 <span class="keywordtype">bool</span> <a class="code" href="classTXMPMeta.html#aeefe49bbf669770d769f4fe0ea566bd0" title="GetLocalizedText() retrieves information about a selected item in an alt-text array...">GetLocalizedText</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l01227"></a>01227 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> altTextName,
-<a name="l01228"></a>01228 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> genericLang,
-<a name="l01229"></a>01229 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> specificLang,
-<a name="l01230"></a>01230 tStringObj * actualLang,
-<a name="l01231"></a>01231 tStringObj * itemValue,
-<a name="l01232"></a>01232 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> * options ) <span class="keyword">const</span>;
-<a name="l01233"></a>01233
-<a name="l01234"></a>01234 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l01292"></a>01292 <span class="comment"></span>
-<a name="l01293"></a>01293 <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#af9531b949a462f5663b1f3fd99464c19" title="SetLocalizedText() modifies the value of a selected item in an alt-text array.">SetLocalizedText</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l01294"></a>01294 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> altTextName,
-<a name="l01295"></a>01295 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> genericLang,
-<a name="l01296"></a>01296 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> specificLang,
-<a name="l01297"></a>01297 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> itemValue,
-<a name="l01298"></a>01298 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> options = 0 );
-<a name="l01299"></a>01299
-<a name="l01300"></a>01300 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l01357"></a>01357 <span class="comment"></span>
-<a name="l01358"></a>01358 <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#af9531b949a462f5663b1f3fd99464c19" title="SetLocalizedText() modifies the value of a selected item in an alt-text array.">SetLocalizedText</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l01359"></a>01359 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> altTextName,
-<a name="l01360"></a>01360 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> genericLang,
-<a name="l01361"></a>01361 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> specificLang,
-<a name="l01362"></a>01362 <span class="keyword">const</span> tStringObj &amp; itemValue,
-<a name="l01363"></a>01363 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> options = 0 );
-<a name="l01364"></a>01364
-<a name="l01365"></a>01365 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l01381"></a>01381 <span class="comment"></span> <span class="keywordtype">void</span>
-<a name="l01382"></a>01382 <a class="code" href="classTXMPMeta.html#aeb7679e92b126800b7bd906acb2f26e8" title="DeleteLocalizedText() deletes specific language alternatives from an alt-text array...">DeleteLocalizedText</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l01383"></a>01383 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> altTextName,
-<a name="l01384"></a>01384 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> genericLang,
-<a name="l01385"></a>01385 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> specificLang );
-<a name="l01386"></a>01386
-<a name="l01388"></a>01388
-<a name="l01389"></a>01389 <span class="comment">// =============================================================================================</span>
-<a name="l01401"></a>01401 <span class="comment"></span>
-<a name="l01402"></a>01402 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l01426"></a>01426 <span class="comment"></span>
-<a name="l01427"></a>01427 <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a7b383f5b357fff040cdbde82f4f43f26" title="ParseFromBuffer() parses RDF from a series of input buffers into this XMP object...">ParseFromBuffer</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> buffer,
-<a name="l01428"></a>01428 <a class="code" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a" title="The type for string length parameters. A 32-bit unsigned integer, as big as will...">XMP_StringLen</a> bufferSize,
-<a name="l01429"></a>01429 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> options = 0 );
-<a name="l01430"></a>01430
-<a name="l01431"></a>01431 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l01473"></a>01473 <span class="comment"></span>
-<a name="l01474"></a>01474 <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a2774a6f15ae22f0002201b58c46bfb49" title="SerializeToBuffer() serializes metadata in this XMP object into a string as RDF.">SerializeToBuffer</a> ( tStringObj * rdfString,
-<a name="l01475"></a>01475 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> options,
-<a name="l01476"></a>01476 <a class="code" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a" title="The type for string length parameters. A 32-bit unsigned integer, as big as will...">XMP_StringLen</a> padding,
-<a name="l01477"></a>01477 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> newline,
-<a name="l01478"></a>01478 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> indent = <span class="stringliteral">&quot;&quot;</span>,
-<a name="l01479"></a>01479 <a class="code" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315" title="The type for offsets and indices. A 32-bit signed integer. It is signed to allow...">XMP_Index</a> baseIndent = 0 ) <span class="keyword">const</span>;
-<a name="l01480"></a>01480
-<a name="l01481"></a>01481 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l01515"></a>01515 <span class="comment"></span>
-<a name="l01516"></a>01516 <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a2774a6f15ae22f0002201b58c46bfb49" title="SerializeToBuffer() serializes metadata in this XMP object into a string as RDF.">SerializeToBuffer</a> ( tStringObj * rdfString,
-<a name="l01517"></a>01517 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> options = 0,
-<a name="l01518"></a>01518 <a class="code" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a" title="The type for string length parameters. A 32-bit unsigned integer, as big as will...">XMP_StringLen</a> padding = 0 ) <span class="keyword">const</span>;
-<a name="l01519"></a>01519
-<a name="l01521"></a>01521 <span class="comment">// =============================================================================================</span>
-<a name="l01522"></a>01522 <span class="comment">// Miscellaneous Member Functions</span>
-<a name="l01523"></a>01523 <span class="comment">// ==============================</span>
-<a name="l01524"></a>01524
-<a name="l01525"></a>01525 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l01528"></a>01528 <span class="comment"></span>
-<a name="l01529"></a>01529 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l01561"></a>01561 <span class="comment"></span>
-<a name="l01562"></a>01562 <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> <a class="code" href="classTXMPMeta.html#afbfebded0b85b08bd9c5ba0d7dae07e0" title="Retrieves an internal reference that can be safely passed across DLL boundaries and...">GetInternalRef</a>() <span class="keyword">const</span>;
-<a name="l01563"></a>01563
-<a name="l01564"></a>01564 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l01570"></a>01570 <span class="comment"></span>
-<a name="l01571"></a>01571 <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#ab0d179ed95487d4fd4f2680c1fbe0d40" title="GetObjectName() retrieves the client-assigned name of this XMP object.">GetObjectName</a> ( tStringObj * name ) <span class="keyword">const</span>;
-<a name="l01572"></a>01572
-<a name="l01573"></a>01573 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l01579"></a>01579 <span class="comment"></span>
-<a name="l01580"></a>01580 <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#acf1935be8e4849976dfc02325424960a" title="SetObjectName() assigns a name to this XMP object.">SetObjectName</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> name );
-<a name="l01581"></a>01581
-<a name="l01582"></a>01582 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l01588"></a>01588 <span class="comment"></span>
-<a name="l01589"></a>01589 <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#acf1935be8e4849976dfc02325424960a" title="SetObjectName() assigns a name to this XMP object.">SetObjectName</a> ( tStringObj name );
-<a name="l01590"></a>01590
-<a name="l01591"></a>01591 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l01602"></a>01602 <span class="comment"></span>
-<a name="l01603"></a>01603 <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a8ac5a02a13d439ff33ed4431986da681" title="Sort() sorts the data model tree of an XMP object.">Sort</a>();
-<a name="l01604"></a>01604
-<a name="l01605"></a>01605 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l01607"></a>01607 <span class="comment"></span>
-<a name="l01608"></a>01608 <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#adf57895625ad118782ed48a3931848b7" title="Erase() restores the object to a &amp;quot;just constructed&amp;quot; state.">Erase</a>();
-<a name="l01609"></a>01609
-<a name="l01610"></a>01610 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l01634"></a>01634 <span class="comment"></span>
-<a name="l01635"></a>01635 <a class="code" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta</a> <a class="code" href="classTXMPMeta.html#a6ca653436995bbb76315efe7934afd4c" title="Clone() creates a deep copy of an XMP object.">Clone</a> ( <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> options = 0 ) <span class="keyword">const</span>;
-<a name="l01636"></a>01636
-<a name="l01637"></a>01637 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l01646"></a>01646 <span class="comment"></span>
-<a name="l01647"></a>01647 <a class="code" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315" title="The type for offsets and indices. A 32-bit signed integer. It is signed to allow...">XMP_Index</a> <a class="code" href="classTXMPMeta.html#ab79aae864b3ce190d0699252f48e0acc" title="CountArrayItems() reports the number of items currently defined in an array.">CountArrayItems</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l01648"></a>01648 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> arrayName ) <span class="keyword">const</span>;
-<a name="l01649"></a>01649
-<a name="l01650"></a>01650 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l01663"></a>01663 <span class="comment"></span>
-<a name="l01664"></a>01664 <a class="code" href="XMP__Const_8h.html#a05b81829c04746826f4f85fbac76e3dd">XMP_Status</a> <a class="code" href="classTXMPMeta.html#a466fa349c9765f39ca6b1450908e769f" title="DumpObject() outputs the content of an XMP object to a callback handler for debugging...">DumpObject</a> ( <a class="code" href="XMP__Const_8h.html#a8ce3570e6e5ac14cd603e96fa9d2936f">XMP_TextOutputProc</a> outProc,
-<a name="l01665"></a>01665 <span class="keywordtype">void</span> * clientData ) <span class="keyword">const</span>;
-<a name="l01666"></a>01666
-<a name="l01667"></a>01667 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l01669"></a>01669 <span class="comment"></span> <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> <a class="code" href="classTXMPMeta.html#a0bfc04142a35671a4c8989fcaca6d6c2" title="Not implemented.">GetObjectOptions</a>() <span class="keyword">const</span>;
-<a name="l01670"></a>01670
-<a name="l01671"></a>01671 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l01673"></a>01673 <span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a92055b3ae18dfd5e5491108f59318f17" title="Not implemented.">SetObjectOptions</a> ( <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> options );
-<a name="l01674"></a>01674
-<a name="l01676"></a>01676
-<a name="l01677"></a>01677 <span class="comment">// =============================================================================================</span>
-<a name="l01678"></a>01678 <span class="comment">// Error notifications</span>
-<a name="l01679"></a>01679 <span class="comment">// ===================</span>
-<a name="l01680"></a>01680
-<a name="l01681"></a>01681 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l01703"></a>01703 <span class="comment"></span>
-<a name="l01704"></a>01704 <span class="comment">// --------------------------------------------------------------------------------------------</span>
-<a name="l01712"></a>01712 <span class="comment"></span>
-<a name="l01713"></a>01713 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a1e90e0c8cd8c5670267bb693cf3660fe" title="SetDefaultErrorCallback() registers a global default error notification callback...">SetDefaultErrorCallback</a> ( <a class="code" href="XMP__Const_8h.html#a6027ee7b7d17a0fec636f812c5346af7">XMPMeta_ErrorCallbackProc</a> proc, <span class="keywordtype">void</span>* context = 0, XMP_Uns32 limit = 1 );
-<a name="l01714"></a>01714
-<a name="l01715"></a>01715 <span class="comment">// --------------------------------------------------------------------------------------------</span>
-<a name="l01723"></a>01723 <span class="comment"></span>
-<a name="l01724"></a>01724 <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#aee41442af4f049c1d6698fc27ce854d0" title="SetErrorCallback() registers an error notification callback.">SetErrorCallback</a> ( <a class="code" href="XMP__Const_8h.html#a6027ee7b7d17a0fec636f812c5346af7">XMPMeta_ErrorCallbackProc</a> proc, <span class="keywordtype">void</span>* context = 0, XMP_Uns32 limit = 1 );
-<a name="l01725"></a>01725
-<a name="l01726"></a>01726 <span class="comment">// --------------------------------------------------------------------------------------------</span>
-<a name="l01731"></a>01731 <span class="comment"></span>
-<a name="l01732"></a>01732 <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a31c7ef089e8fadff122044afa27d200a" title="ResetErrorCallbackLimit() resets the error notification limit and counting. It has...">ResetErrorCallbackLimit</a> ( XMP_Uns32 limit = 1 );
-<a name="l01733"></a>01733
-<a name="l01735"></a>01735
-<a name="l01736"></a>01736 <span class="comment">// =============================================================================================</span>
-<a name="l01737"></a>01737
-<a name="l01738"></a>01738 <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef; <span class="comment">// *** Should be private, see below.</span>
-<a name="l01739"></a>01739
-<a name="l01740"></a>01740 <span class="keyword">private</span>:
-<a name="l01741"></a>01741
-<a name="l01742"></a>01742 <span class="preprocessor">#if 0 // *** VS.Net and gcc seem to not handle the friend declarations properly.</span>
-<a name="l01743"></a>01743 <span class="preprocessor"></span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services.">TXMPIterator</a> &lt;class tStringObj&gt;;
-<a name="l01744"></a>01744 <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classTXMPUtils.html" title="API for access to the XMP Toolkit utility services.">TXMPUtils</a> &lt;class tStringObj&gt;;
-<a name="l01745"></a>01745 <span class="preprocessor">#endif</span>
-<a name="l01746"></a>01746 <span class="preprocessor"></span>
-<a name="l01747"></a>01747 <span class="keyword">static</span> <span class="keywordtype">void</span> SetClientString ( <span class="keywordtype">void</span> * clientPtr, <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> valuePtr, <a class="code" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a" title="The type for string length parameters. A 32-bit unsigned integer, as big as will...">XMP_StringLen</a> valueLen );
-<a name="l01748"></a>01748
-<a name="l01749"></a>01749 }; <span class="comment">// class TXMPMeta</span>
-<a name="l01750"></a>01750
-<a name="l01751"></a>01751 <span class="preprocessor">#endif // __TXMPMeta_hpp__</span>
-</pre></div></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('TXMPMeta_8hpp_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">TXMPMeta.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="TXMPMeta_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __TXMPMeta_hpp__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __TXMPMeta_hpp__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#if ( ! __XMP_hpp__ )</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor"> #error &quot;Do not directly include, use XMP.hpp&quot;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="XMPCoreDefines_8h.html">XMPCore/XMPCoreDefines.h</a>&quot;</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#if ENABLE_CPP_DOM_MODEL</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor"> #include &quot;<a class="code" href="XMPCoreFwdDeclarations_8h.html">XMPCore/XMPCoreFwdDeclarations.h</a>&quot;</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// ADOBE SYSTEMS INCORPORATED</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Copyright 2002 Adobe Systems Incorporated</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// All Rights Reserved</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"></span><span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment"></span><span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> tStringObj&gt; <span class="keyword">class </span><a class="code" href="classTXMPIterator.html">TXMPIterator</a>;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classTXMPUtils.html"> 51</a></span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> tStringObj&gt; <span class="keyword">class </span><a class="code" href="classTXMPUtils.html">TXMPUtils</a>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment">// -------------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classTXMPMeta.html"> 55</a></span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> tStringObj&gt; <span class="keyword">class </span><a class="code" href="classTXMPMeta.html">TXMPMeta</a> {</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="comment">// =============================================================================================</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="comment">// Initialization and termination</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="comment">// ==============================</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a5415cfc01a9cb8786939246571a23a9d">GetVersionInfo</a> ( <a class="code" href="structXMP__VersionInfo.html">XMP_VersionInfo</a> * info );</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classTXMPMeta.html#af1defbb73f919eae06456a655dea726c">Initialize</a>();</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a6c30fae26173167958b6f0da95a53865">Terminate</a>();</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="comment">// =============================================================================================</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="comment">// Constuctors and destructor</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="comment">// ==========================</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="comment"></span> <a class="code" href="classTXMPMeta.html#a61ffb3aa3e387d8ff9c1f4ebd26606c7">TXMPMeta</a>();</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="classTXMPMeta.html#a61ffb3aa3e387d8ff9c1f4ebd26606c7">TXMPMeta</a> ( <span class="keyword">const</span> <a class="code" href="classTXMPMeta.html">TXMPMeta&lt;tStringObj&gt;</a> &amp; original );</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a4d5a601c9b77f6f6ab5f14e658de58ef">operator= </a>( <span class="keyword">const</span> <a class="code" href="classTXMPMeta.html">TXMPMeta&lt;tStringObj&gt;</a> &amp; rhs );</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <a class="code" href="classTXMPMeta.html#a61ffb3aa3e387d8ff9c1f4ebd26606c7">TXMPMeta</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> <a class="code" href="classTXMPMeta.html#a8d607eb80edb919fe8b07efe300008d2">xmpRef</a> );</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <a class="code" href="classTXMPMeta.html#a61ffb3aa3e387d8ff9c1f4ebd26606c7">TXMPMeta</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> buffer,</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> xmpSize );</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="comment"></span> <span class="keyword">virtual</span> <a class="code" href="classTXMPMeta.html#abab5013870cd47eb0d9d701653735a02">~TXMPMeta</a>() <span class="keywordflow">throw</span>();</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="comment">// =============================================================================================</span></div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="comment">// Global state functions</span></div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="comment">// ======================</span></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keyword">static</span> <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> <a class="code" href="classTXMPMeta.html#a12b2435ba039c62a164951948c016eb4">GetGlobalOptions</a>();</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#ae7bb38d9b3857b08106630a386b47332">SetGlobalOptions</a> ( <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options );</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keyword">static</span> <a class="code" href="XMP__Const_8h.html#a05b81829c04746826f4f85fbac76e3dd">XMP_Status</a> <a class="code" href="classTXMPMeta.html#aaddc5f555de57472939a41346e276817">DumpNamespaces</a> ( <a class="code" href="XMP__Const_8h.html#aa55bae1e6be4ddcefbaf214942e5b272">XMP_TextOutputProc</a> outProc,</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordtype">void</span> * clientData );</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classTXMPMeta.html#ac0368ddbaa4d689cd5b1aff1c88bb0e1">RegisterNamespace</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> namespaceURI,</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> suggestedPrefix,</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; tStringObj * registeredPrefix );</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classTXMPMeta.html#af28589472d8c0397db6cef868f2b8c97">GetNamespacePrefix</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> namespaceURI,</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; tStringObj * namespacePrefix );</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classTXMPMeta.html#aa20c84e7549d0a3252fa29a1e83a757a">GetNamespaceURI</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> namespacePrefix,</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; tStringObj * namespaceURI );</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a3f989597e95db929676273cacd4ea09a">DeleteNamespace</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> namespaceURI );</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="comment">// =============================================================================================</span></div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="comment">// Basic property manipulation functions</span></div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="comment">// =====================================</span></div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="comment">// *** Should add discussion of schemaNS and propName prefix usage.</span></div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c">GetProperty</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; tStringObj * propValue,</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> * options ) <span class="keyword">const</span>;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classTXMPMeta.html#ac64a4251d157937f69b73f2ffac4f7cc">GetArrayItem</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName,</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <a class="code" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a> itemIndex,</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; tStringObj * itemValue,</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> * options ) <span class="keyword">const</span>;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classTXMPMeta.html#a885ef7127b897e349f71fa493ace3c94">GetStructField</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> structName,</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldNS,</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldName,</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; tStringObj * fieldValue,</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> * options ) <span class="keyword">const</span>;</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classTXMPMeta.html#a2cc58d8316043b035643e7c21633bc13">GetQualifier</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualNS,</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualName,</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; tStringObj * qualValue,</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> * options ) <span class="keyword">const</span>;</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="comment">// =============================================================================================</span></div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a1dfd6a08ebfd1a6364b3a7b6584bcc28">SetProperty</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propValue,</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options = 0 );</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a1dfd6a08ebfd1a6364b3a7b6584bcc28">SetProperty</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <span class="keyword">const</span> tStringObj &amp; propValue,</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options = 0 );</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a1570eb89d613b4a94ca572e4644168cc">SetArrayItem</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName,</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <a class="code" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a> itemIndex,</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> itemValue,</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options = 0 );</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160;</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a1570eb89d613b4a94ca572e4644168cc">SetArrayItem</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName,</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; <a class="code" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a> itemIndex,</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; <span class="keyword">const</span> tStringObj &amp; itemValue,</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options = 0 );</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a00d7314dc970ad390499ce9db27d314a">AppendArrayItem</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName,</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> arrayOptions,</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> itemValue,</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> itemOptions = 0 );</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160;</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a00d7314dc970ad390499ce9db27d314a">AppendArrayItem</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName,</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> arrayOptions,</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; <span class="keyword">const</span> tStringObj &amp; itemValue,</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> itemOptions = 0 );</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a0e44c30e7527064909e5f7035d53c4f5">SetStructField</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> structName,</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldNS,</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldName,</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldValue,</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options = 0 );</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160;</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a0e44c30e7527064909e5f7035d53c4f5">SetStructField</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> structName,</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldNS,</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldName,</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; <span class="keyword">const</span> tStringObj &amp; fieldValue,</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options = 0 );</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160;</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#ac2e798da5f9d94e486382a41e73fcea3">SetQualifier</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualNS,</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualName,</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualValue,</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options = 0 );</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160;</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#ac2e798da5f9d94e486382a41e73fcea3">SetQualifier</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualNS,</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualName,</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; <span class="keyword">const</span> tStringObj &amp; qualValue,</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options = 0 );</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160;</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160;</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; <span class="comment">// =============================================================================================</span></div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160;</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#ac8b555ba99904fa49bb4851a60cc3844">DeleteProperty</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName );</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160;</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#abc1211f47225b5973a170ff952743264">DeleteArrayItem</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName,</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; <a class="code" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a> itemIndex );</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160;</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#abc258e027780a15be65a88fcfd4e1fd4">DeleteStructField</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> structName,</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldNS,</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldName );</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160;</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a8ce15f7de7fd3b258f07158ab5fa88be">DeleteQualifier</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualNS,</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualName );</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160;</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classTXMPMeta.html#af22b116d71ecbbebea016ec5337e7066">DoesPropertyExist</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName ) <span class="keyword">const</span>;</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160;</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classTXMPMeta.html#a492465c588d6d4cb8e30f94790e66f58">DoesArrayItemExist</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName,</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; <a class="code" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a> itemIndex ) <span class="keyword">const</span>;</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160;</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classTXMPMeta.html#a9261b80d62e77a10ff1a89843bfa10a5">DoesStructFieldExist</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> structName,</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldNS,</div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldName ) <span class="keyword">const</span>;</div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160;</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classTXMPMeta.html#a81347a92becd387a14f4d47c582f129a">DoesQualifierExist</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualNS,</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualName ) <span class="keyword">const</span>;</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160;</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160;</div><div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; <span class="comment">// =============================================================================================</span></div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; <span class="comment">// Specialized Get and Set functions</span></div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; <span class="comment">// =============================================================================================</span></div><div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160;</div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classTXMPMeta.html#adcf8a1959a8bd42641a42cbd4d64a5b7">GetProperty_Bool</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; <span class="keywordtype">bool</span> * propValue,</div><div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> * options ) <span class="keyword">const</span>;</div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160;</div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classTXMPMeta.html#ae4e8ee4cc7441bb9464dac87f2d74650">GetProperty_Int</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; XMP_Int32 * propValue,</div><div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> * options ) <span class="keyword">const</span>;</div><div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160;</div><div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classTXMPMeta.html#af91fa4bc4f51a56e35bcfb554783b050">GetProperty_Int64</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160; XMP_Int64 * propValue,</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> * options ) <span class="keyword">const</span>;</div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160;</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classTXMPMeta.html#a7708c31c9af3e740b27a4893dcd9aa47">GetProperty_Float</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160; <span class="keywordtype">double</span> * propValue,</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> * options ) <span class="keyword">const</span>;</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classTXMPMeta.html#a2f561295e73047ee90765558d29bd650">GetProperty_Date</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; <a class="code" href="structXMP__DateTime.html">XMP_DateTime</a> * propValue,</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> * options ) <span class="keyword">const</span>;</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a9521e3838272ec501ffdb60ff3eb482f">SetProperty_Bool</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160; <span class="keywordtype">bool</span> propValue,</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options = 0 );</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a489e10a6686aa813ee437e93ab2c5943">SetProperty_Int</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160; XMP_Int32 propValue,</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options = 0 );</div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a7f749be7699890bbaa2e2dbd05d45a90">SetProperty_Int64</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160; XMP_Int64 propValue,</div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options = 0 );</div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a3b0f2f6bae57931ea96775f03608c0ed">SetProperty_Float</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; <span class="keywordtype">double</span> propValue,</div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options = 0 );</div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;</div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#aeee10669445f77139d5634199ff01079">SetProperty_Date</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160; <span class="keyword">const</span> <a class="code" href="structXMP__DateTime.html">XMP_DateTime</a> &amp; propValue,</div><div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options = 0 );</div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;</div><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160; <span class="comment">// =============================================================================================</span></div><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classTXMPMeta.html#aeefe49bbf669770d769f4fe0ea566bd0">GetLocalizedText</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> altTextName,</div><div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> genericLang,</div><div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> specificLang,</div><div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160; tStringObj * actualLang,</div><div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160; tStringObj * itemValue,</div><div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> * options ) <span class="keyword">const</span>;</div><div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160;</div><div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#af9531b949a462f5663b1f3fd99464c19">SetLocalizedText</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> altTextName,</div><div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> genericLang,</div><div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> specificLang,</div><div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> itemValue,</div><div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options = 0 );</div><div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160;</div><div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#af9531b949a462f5663b1f3fd99464c19">SetLocalizedText</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> altTextName,</div><div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> genericLang,</div><div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> specificLang,</div><div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160; <span class="keyword">const</span> tStringObj &amp; itemValue,</div><div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options = 0 );</div><div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160; </div><div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160;<span class="comment"></span> <span class="keywordtype">void</span></div><div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160; <a class="code" href="classTXMPMeta.html#aeb7679e92b126800b7bd906acb2f26e8">DeleteLocalizedText</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> altTextName,</div><div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> genericLang,</div><div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> specificLang );</div><div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160;</div><div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160;</div><div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160; <span class="comment">// =============================================================================================</span></div><div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a7b383f5b357fff040cdbde82f4f43f26">ParseFromBuffer</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> buffer,</div><div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160; <a class="code" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> bufferSize,</div><div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options = 0 );</div><div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160;</div><div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a2774a6f15ae22f0002201b58c46bfb49">SerializeToBuffer</a> ( tStringObj * rdfString,</div><div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options,</div><div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>&#160; <a class="code" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> padding,</div><div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> newline,</div><div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> indent = <span class="stringliteral">&quot;&quot;</span>,</div><div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>&#160; <a class="code" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a> baseIndent = 0 ) <span class="keyword">const</span>;</div><div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>&#160;</div><div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a2774a6f15ae22f0002201b58c46bfb49">SerializeToBuffer</a> ( tStringObj * rdfString,</div><div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options = 0,</div><div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>&#160; <a class="code" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> padding = 0 ) <span class="keyword">const</span>;</div><div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>&#160;</div><div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>&#160; <span class="comment">// =============================================================================================</span></div><div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>&#160; <span class="comment">// Miscellaneous Member Functions</span></div><div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>&#160; <span class="comment">// ==============================</span></div><div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>&#160;</div><div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>&#160; <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> <a class="code" href="classTXMPMeta.html#afbfebded0b85b08bd9c5ba0d7dae07e0">GetInternalRef</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160;</div><div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#ab0d179ed95487d4fd4f2680c1fbe0d40">GetObjectName</a> ( tStringObj * name ) <span class="keyword">const</span>;</div><div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>&#160;</div><div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#acf1935be8e4849976dfc02325424960a">SetObjectName</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> name );</div><div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>&#160;</div><div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#acf1935be8e4849976dfc02325424960a">SetObjectName</a> ( tStringObj name );</div><div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>&#160;</div><div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>&#160;<span class="comment"></span> </div><div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a8ac5a02a13d439ff33ed4431986da681">Sort</a>();</div><div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>&#160;</div><div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>&#160;<span class="comment"></span> </div><div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#adf57895625ad118782ed48a3931848b7">Erase</a>();</div><div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>&#160; </div><div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>&#160; <a class="code" href="classTXMPMeta.html">TXMPMeta</a> <a class="code" href="classTXMPMeta.html#a6ca653436995bbb76315efe7934afd4c">Clone</a> ( <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options = 0 ) <span class="keyword">const</span>;</div><div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>&#160;</div><div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>&#160; <a class="code" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a> <a class="code" href="classTXMPMeta.html#ab79aae864b3ce190d0699252f48e0acc">CountArrayItems</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName ) <span class="keyword">const</span>;</div><div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>&#160;</div><div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>&#160; <a class="code" href="XMP__Const_8h.html#a05b81829c04746826f4f85fbac76e3dd">XMP_Status</a> <a class="code" href="classTXMPMeta.html#a466fa349c9765f39ca6b1450908e769f">DumpObject</a> ( <a class="code" href="XMP__Const_8h.html#aa55bae1e6be4ddcefbaf214942e5b272">XMP_TextOutputProc</a> outProc,</div><div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>&#160; <span class="keywordtype">void</span> * clientData ) <span class="keyword">const</span>;</div><div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>&#160;</div><div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>&#160;<span class="comment"></span> <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> <a class="code" href="classTXMPMeta.html#a0bfc04142a35671a4c8989fcaca6d6c2">GetObjectOptions</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>&#160;</div><div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>&#160;<span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a92055b3ae18dfd5e5491108f59318f17">SetObjectOptions</a> ( <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options );</div><div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>&#160;</div><div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>&#160;</div><div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>&#160; <span class="comment">// =============================================================================================</span></div><div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>&#160; <span class="comment">// Error notifications</span></div><div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>&#160; <span class="comment">// ===================</span></div><div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>&#160;</div><div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>&#160;<span class="comment"></span> </div><div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>&#160; <span class="comment">// --------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>&#160;<span class="comment"></span> </div><div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a1e90e0c8cd8c5670267bb693cf3660fe">SetDefaultErrorCallback</a> ( <a class="code" href="XMP__Const_8h.html#abb3c238ce96e9198ebe4260200bfb67b">XMPMeta_ErrorCallbackProc</a> proc, <span class="keywordtype">void</span>* context = 0, XMP_Uns32 limit = 1 );</div><div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>&#160; </div><div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>&#160; <span class="comment">// --------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>&#160;<span class="comment"></span> </div><div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#aee41442af4f049c1d6698fc27ce854d0">SetErrorCallback</a> ( <a class="code" href="XMP__Const_8h.html#abb3c238ce96e9198ebe4260200bfb67b">XMPMeta_ErrorCallbackProc</a> proc, <span class="keywordtype">void</span>* context = 0, XMP_Uns32 limit = 1 );</div><div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>&#160; </div><div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>&#160; <span class="comment">// --------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>&#160;<span class="comment"></span> </div><div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a31c7ef089e8fadff122044afa27d200a">ResetErrorCallbackLimit</a> ( XMP_Uns32 limit = 1 );</div><div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>&#160;</div><div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>&#160;</div><div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>&#160; <span class="comment">// =============================================================================================</span></div><div class="line"><a name="l01742"></a><span class="lineno"> 1742</span>&#160;</div><div class="line"><a name="l01743"></a><span class="lineno"><a class="line" href="classTXMPMeta.html#a8d607eb80edb919fe8b07efe300008d2"> 1743</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> <a class="code" href="classTXMPMeta.html#a8d607eb80edb919fe8b07efe300008d2">xmpRef</a>; <span class="comment">// *** Should be private, see below.</span></div><div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>&#160;</div><div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>&#160;</div><div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>&#160;<span class="preprocessor">#if 0 // *** VS.Net and gcc seem to not handle the friend declarations properly.</span></div><div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classTXMPIterator.html">TXMPIterator</a> &lt;class tStringObj&gt;;</div><div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classTXMPUtils.html">TXMPUtils</a> &lt;class tStringObj&gt;;</div><div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>&#160;</div><div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPMeta.html#a67bbfe3f55af71a5122512ebb695e4ed">SetClientString</a> ( <span class="keywordtype">void</span> * clientPtr, <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> valuePtr, <a class="code" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> valueLen );</div><div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>&#160;</div><div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>&#160;}; <span class="comment">// class TXMPMeta</span></div><div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>&#160;</div><div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>&#160;<span class="preprocessor">#endif // __TXMPMeta_hpp__</span></div><div class="ttc" id="XMP__Const_8h_html_a9f7dcc184f901c713274edfdac5bcc9a"><div class="ttname"><a href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a></div><div class="ttdeci">XMP_Uns32 XMP_StringLen</div><div class="ttdoc">The type for string length parameters. A 32-bit unsigned integer, as big as will be practically neede...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00170">XMP_Const.h:170</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a00e9d9a76c144421105a4c2742203315"><div class="ttname"><a href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a></div><div class="ttdeci">XMP_Int32 XMP_Index</div><div class="ttdoc">The type for offsets and indices. A 32-bit signed integer. It is signed to allow -1 for loop terminat...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00171">XMP_Const.h:171</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_ad439e3ceeb4590d310f6125aa12c6df6"><div class="ttname"><a href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a></div><div class="ttdeci">const char * XMP_StringPtr</div><div class="ttdoc">The type for input string parameters. A const char *, a null-terminated UTF-8 string. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00169">XMP_Const.h:169</a></div></div>
+<div class="ttc" id="classTXMPMeta_html_a5415cfc01a9cb8786939246571a23a9d"><div class="ttname"><a href="classTXMPMeta.html#a5415cfc01a9cb8786939246571a23a9d">TXMPMeta::GetVersionInfo</a></div><div class="ttdeci">static void GetVersionInfo(XMP_VersionInfo *info)</div><div class="ttdoc">GetVersionInfo() retrieves runtime version information. </div></div>
+<div class="ttc" id="XMP__Const_8h_html_abb3c238ce96e9198ebe4260200bfb67b"><div class="ttname"><a href="XMP__Const_8h.html#abb3c238ce96e9198ebe4260200bfb67b">XMPMeta_ErrorCallbackProc</a></div><div class="ttdeci">bool(* XMPMeta_ErrorCallbackProc)(void *context, XMP_ErrorSeverity severity, XMP_Int32 cause, XMP_StringPtr message)</div><div class="ttdoc">The signature of a client-defined callback for TXMPMeta error notifications. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01265">XMP_Const.h:1265</a></div></div>
+<div class="ttc" id="classTXMPMeta_html_ae4e8ee4cc7441bb9464dac87f2d74650"><div class="ttname"><a href="classTXMPMeta.html#ae4e8ee4cc7441bb9464dac87f2d74650">TXMPMeta::GetProperty_Int</a></div><div class="ttdeci">bool GetProperty_Int(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_Int32 *propValue, XMP_OptionBits *options) const </div><div class="ttdoc">GetProperty_Int() retrieves the value of an integer property as a C long integer. ...</div></div>
+<div class="ttc" id="XMP__Const_8h_html_aa55bae1e6be4ddcefbaf214942e5b272"><div class="ttname"><a href="XMP__Const_8h.html#aa55bae1e6be4ddcefbaf214942e5b272">XMP_TextOutputProc</a></div><div class="ttdeci">XMP_Status(* XMP_TextOutputProc)(void *refCon, XMP_StringPtr buffer, XMP_StringLen bufferSize)</div><div class="ttdoc">The signature of a client-defined callback for text output from XMP Toolkit debugging operations...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01493">XMP_Const.h:1493</a></div></div>
+<div class="ttc" id="classTXMPMeta_html_a1e90e0c8cd8c5670267bb693cf3660fe"><div class="ttname"><a href="classTXMPMeta.html#a1e90e0c8cd8c5670267bb693cf3660fe">TXMPMeta::SetDefaultErrorCallback</a></div><div class="ttdeci">static void SetDefaultErrorCallback(XMPMeta_ErrorCallbackProc proc, void *context=0, XMP_Uns32 limit=1)</div><div class="ttdoc">SetDefaultErrorCallback() registers a global default error notification callback. ...</div></div>
+<div class="ttc" id="classTXMPMeta_html_a885ef7127b897e349f71fa493ace3c94"><div class="ttname"><a href="classTXMPMeta.html#a885ef7127b897e349f71fa493ace3c94">TXMPMeta::GetStructField</a></div><div class="ttdeci">bool GetStructField(XMP_StringPtr schemaNS, XMP_StringPtr structName, XMP_StringPtr fieldNS, XMP_StringPtr fieldName, tStringObj *fieldValue, XMP_OptionBits *options) const </div><div class="ttdoc">GetStructField() provides access to fields within a nested structure. </div></div>
+<div class="ttc" id="classTXMPMeta_html_a00d7314dc970ad390499ce9db27d314a"><div class="ttname"><a href="classTXMPMeta.html#a00d7314dc970ad390499ce9db27d314a">TXMPMeta::AppendArrayItem</a></div><div class="ttdeci">void AppendArrayItem(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_OptionBits arrayOptions, XMP_StringPtr itemValue, XMP_OptionBits itemOptions=0)</div><div class="ttdoc">AppendArrayItem() adds an item to an array, creating the array if necessary. </div></div>
+<div class="ttc" id="classTXMPMeta_html_abc1211f47225b5973a170ff952743264"><div class="ttname"><a href="classTXMPMeta.html#abc1211f47225b5973a170ff952743264">TXMPMeta::DeleteArrayItem</a></div><div class="ttdeci">void DeleteArrayItem(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_Index itemIndex)</div><div class="ttdoc">DeleteArrayItem() deletes an XMP subtree rooted at a given array item. </div></div>
+<div class="ttc" id="classTXMPMeta_html_a8ac5a02a13d439ff33ed4431986da681"><div class="ttname"><a href="classTXMPMeta.html#a8ac5a02a13d439ff33ed4431986da681">TXMPMeta::Sort</a></div><div class="ttdeci">void Sort()</div><div class="ttdoc">Sort() sorts the data model tree of an XMP object. </div></div>
+<div class="ttc" id="classTXMPMeta_html_aaddc5f555de57472939a41346e276817"><div class="ttname"><a href="classTXMPMeta.html#aaddc5f555de57472939a41346e276817">TXMPMeta::DumpNamespaces</a></div><div class="ttdeci">static XMP_Status DumpNamespaces(XMP_TextOutputProc outProc, void *clientData)</div><div class="ttdoc">DumpNamespaces() sends the list of registered namespace URIs and prefixes to a handler. </div></div>
+<div class="ttc" id="classTXMPMeta_html_afbfebded0b85b08bd9c5ba0d7dae07e0"><div class="ttname"><a href="classTXMPMeta.html#afbfebded0b85b08bd9c5ba0d7dae07e0">TXMPMeta::GetInternalRef</a></div><div class="ttdeci">XMPMetaRef GetInternalRef() const </div><div class="ttdoc">Retrieves an internal reference that can be safely passed across DLL boundaries and reconstructed...</div></div>
+<div class="ttc" id="classTXMPMeta_html_aa20c84e7549d0a3252fa29a1e83a757a"><div class="ttname"><a href="classTXMPMeta.html#aa20c84e7549d0a3252fa29a1e83a757a">TXMPMeta::GetNamespaceURI</a></div><div class="ttdeci">static bool GetNamespaceURI(XMP_StringPtr namespacePrefix, tStringObj *namespaceURI)</div><div class="ttdoc">GetNamespaceURI() obtains the URI for a registered namespace prefix, and reports whether the prefix i...</div></div>
+<div class="ttc" id="XMP__Const_8h_html_a05b81829c04746826f4f85fbac76e3dd"><div class="ttname"><a href="XMP__Const_8h.html#a05b81829c04746826f4f85fbac76e3dd">XMP_Status</a></div><div class="ttdeci">XMP_Int32 XMP_Status</div><div class="ttdoc">A signed 32-bit integer used as a status result for the output callback routine, XMP_TextOutputProc. Zero means no error, all other values except -1 are private to the callback. The callback is wrapped to prevent exceptions being thrown across DLL boundaries. Any exceptions thrown out of the callback cause a return status of -1. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01474">XMP_Const.h:1474</a></div></div>
+<div class="ttc" id="structXMP__VersionInfo_html"><div class="ttname"><a href="structXMP__VersionInfo.html">XMP_VersionInfo</a></div><div class="ttdoc">XMP Toolkit version information. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01545">XMP_Const.h:1545</a></div></div>
+<div class="ttc" id="classTXMPMeta_html_a2f561295e73047ee90765558d29bd650"><div class="ttname"><a href="classTXMPMeta.html#a2f561295e73047ee90765558d29bd650">TXMPMeta::GetProperty_Date</a></div><div class="ttdeci">bool GetProperty_Date(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_DateTime *propValue, XMP_OptionBits *options) const </div><div class="ttdoc">GetProperty_Date() retrieves the value of a date-time property as an XMP_DateTime structure...</div></div>
+<div class="ttc" id="classTXMPMeta_html_ac8b555ba99904fa49bb4851a60cc3844"><div class="ttname"><a href="classTXMPMeta.html#ac8b555ba99904fa49bb4851a60cc3844">TXMPMeta::DeleteProperty</a></div><div class="ttdeci">void DeleteProperty(XMP_StringPtr schemaNS, XMP_StringPtr propName)</div><div class="ttdoc">DeleteProperty() deletes an XMP subtree rooted at a given property. </div></div>
+<div class="ttc" id="classTXMPMeta_html_a67bbfe3f55af71a5122512ebb695e4ed"><div class="ttname"><a href="classTXMPMeta.html#a67bbfe3f55af71a5122512ebb695e4ed">TXMPMeta::SetClientString</a></div><div class="ttdeci">static void SetClientString(void *clientPtr, XMP_StringPtr valuePtr, XMP_StringLen valueLen)</div></div>
+<div class="ttc" id="classTXMPMeta_html_adf57895625ad118782ed48a3931848b7"><div class="ttname"><a href="classTXMPMeta.html#adf57895625ad118782ed48a3931848b7">TXMPMeta::Erase</a></div><div class="ttdeci">void Erase()</div><div class="ttdoc">Erase() restores the object to a &quot;just constructed&quot; state. </div></div>
+<div class="ttc" id="classTXMPMeta_html_ab0d179ed95487d4fd4f2680c1fbe0d40"><div class="ttname"><a href="classTXMPMeta.html#ab0d179ed95487d4fd4f2680c1fbe0d40">TXMPMeta::GetObjectName</a></div><div class="ttdeci">void GetObjectName(tStringObj *name) const </div><div class="ttdoc">GetObjectName() retrieves the client-assigned name of this XMP object. </div></div>
+<div class="ttc" id="classTXMPMeta_html_a8d607eb80edb919fe8b07efe300008d2"><div class="ttname"><a href="classTXMPMeta.html#a8d607eb80edb919fe8b07efe300008d2">TXMPMeta::xmpRef</a></div><div class="ttdeci">XMPMetaRef xmpRef</div><div class="ttdef"><b>Definition:</b> <a href="TXMPMeta_8hpp_source.html#l01743">TXMPMeta.hpp:1743</a></div></div>
+<div class="ttc" id="classTXMPMeta_html_adcf8a1959a8bd42641a42cbd4d64a5b7"><div class="ttname"><a href="classTXMPMeta.html#adcf8a1959a8bd42641a42cbd4d64a5b7">TXMPMeta::GetProperty_Bool</a></div><div class="ttdeci">bool GetProperty_Bool(XMP_StringPtr schemaNS, XMP_StringPtr propName, bool *propValue, XMP_OptionBits *options) const </div><div class="ttdoc">GetProperty_Bool() retrieves the value of a Boolean property as a C++ bool. </div></div>
+<div class="ttc" id="classTXMPMeta_html_af91fa4bc4f51a56e35bcfb554783b050"><div class="ttname"><a href="classTXMPMeta.html#af91fa4bc4f51a56e35bcfb554783b050">TXMPMeta::GetProperty_Int64</a></div><div class="ttdeci">bool GetProperty_Int64(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_Int64 *propValue, XMP_OptionBits *options) const </div><div class="ttdoc">GetProperty_Int64() retrieves the value of an integer property as a C long long integer. </div></div>
+<div class="ttc" id="classTXMPMeta_html_aee41442af4f049c1d6698fc27ce854d0"><div class="ttname"><a href="classTXMPMeta.html#aee41442af4f049c1d6698fc27ce854d0">TXMPMeta::SetErrorCallback</a></div><div class="ttdeci">void SetErrorCallback(XMPMeta_ErrorCallbackProc proc, void *context=0, XMP_Uns32 limit=1)</div><div class="ttdoc">SetErrorCallback() registers an error notification callback. </div></div>
+<div class="ttc" id="classTXMPMeta_html_af9531b949a462f5663b1f3fd99464c19"><div class="ttname"><a href="classTXMPMeta.html#af9531b949a462f5663b1f3fd99464c19">TXMPMeta::SetLocalizedText</a></div><div class="ttdeci">void SetLocalizedText(XMP_StringPtr schemaNS, XMP_StringPtr altTextName, XMP_StringPtr genericLang, XMP_StringPtr specificLang, XMP_StringPtr itemValue, XMP_OptionBits options=0)</div><div class="ttdoc">SetLocalizedText() modifies the value of a selected item in an alt-text array. </div></div>
+<div class="ttc" id="classTXMPMeta_html_a492465c588d6d4cb8e30f94790e66f58"><div class="ttname"><a href="classTXMPMeta.html#a492465c588d6d4cb8e30f94790e66f58">TXMPMeta::DoesArrayItemExist</a></div><div class="ttdeci">bool DoesArrayItemExist(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_Index itemIndex) const </div><div class="ttdoc">DoesArrayItemExist() reports whether an array item currently exists. </div></div>
+<div class="ttc" id="classTXMPMeta_html_a3f989597e95db929676273cacd4ea09a"><div class="ttname"><a href="classTXMPMeta.html#a3f989597e95db929676273cacd4ea09a">TXMPMeta::DeleteNamespace</a></div><div class="ttdeci">static void DeleteNamespace(XMP_StringPtr namespaceURI)</div><div class="ttdoc">Not implemented. </div></div>
+<div class="ttc" id="classTXMPMeta_html_af22b116d71ecbbebea016ec5337e7066"><div class="ttname"><a href="classTXMPMeta.html#af22b116d71ecbbebea016ec5337e7066">TXMPMeta::DoesPropertyExist</a></div><div class="ttdeci">bool DoesPropertyExist(XMP_StringPtr schemaNS, XMP_StringPtr propName) const </div><div class="ttdoc">DoesPropertyExist() reports whether a property currently exists. </div></div>
+<div class="ttc" id="classTXMPMeta_html_ac0368ddbaa4d689cd5b1aff1c88bb0e1"><div class="ttname"><a href="classTXMPMeta.html#ac0368ddbaa4d689cd5b1aff1c88bb0e1">TXMPMeta::RegisterNamespace</a></div><div class="ttdeci">*static bool RegisterNamespace(XMP_StringPtr namespaceURI, XMP_StringPtr suggestedPrefix, tStringObj *registeredPrefix)</div><div class="ttdoc">RegisterNamespace() registers a namespace URI with a suggested prefix. </div></div>
+<div class="ttc" id="classTXMPMeta_html_a489e10a6686aa813ee437e93ab2c5943"><div class="ttname"><a href="classTXMPMeta.html#a489e10a6686aa813ee437e93ab2c5943">TXMPMeta::SetProperty_Int</a></div><div class="ttdeci">void SetProperty_Int(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_Int32 propValue, XMP_OptionBits options=0)</div><div class="ttdoc">SetProperty_Int() sets the value of an integer property using a C long integer. </div></div>
+<div class="ttc" id="classTXMPMeta_html_ac64a4251d157937f69b73f2ffac4f7cc"><div class="ttname"><a href="classTXMPMeta.html#ac64a4251d157937f69b73f2ffac4f7cc">TXMPMeta::GetArrayItem</a></div><div class="ttdeci">bool GetArrayItem(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_Index itemIndex, tStringObj *itemValue, XMP_OptionBits *options) const </div><div class="ttdoc">GetArrayItem() provides access to items within an array. </div></div>
+<div class="ttc" id="structXMP__DateTime_html"><div class="ttname"><a href="structXMP__DateTime.html">XMP_DateTime</a></div><div class="ttdoc">The expanded type for a date and time. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00223">XMP_Const.h:223</a></div></div>
+<div class="ttc" id="classTXMPMeta_html_a4d5a601c9b77f6f6ab5f14e658de58ef"><div class="ttname"><a href="classTXMPMeta.html#a4d5a601c9b77f6f6ab5f14e658de58ef">TXMPMeta::operator=</a></div><div class="ttdeci">void operator=(const TXMPMeta&lt; tStringObj &gt; &amp;rhs)</div><div class="ttdoc">Assignment operator, assigns the internal reference and increments the reference count. </div></div>
+<div class="ttc" id="classTXMPMeta_html_a7b383f5b357fff040cdbde82f4f43f26"><div class="ttname"><a href="classTXMPMeta.html#a7b383f5b357fff040cdbde82f4f43f26">TXMPMeta::ParseFromBuffer</a></div><div class="ttdeci">void ParseFromBuffer(XMP_StringPtr buffer, XMP_StringLen bufferSize, XMP_OptionBits options=0)</div><div class="ttdoc">ParseFromBuffer() parses RDF from a series of input buffers into this XMP object. ...</div></div>
+<div class="ttc" id="classTXMPMeta_html_aeefe49bbf669770d769f4fe0ea566bd0"><div class="ttname"><a href="classTXMPMeta.html#aeefe49bbf669770d769f4fe0ea566bd0">TXMPMeta::GetLocalizedText</a></div><div class="ttdeci">bool GetLocalizedText(XMP_StringPtr schemaNS, XMP_StringPtr altTextName, XMP_StringPtr genericLang, XMP_StringPtr specificLang, tStringObj *actualLang, tStringObj *itemValue, XMP_OptionBits *options) const </div><div class="ttdoc">GetLocalizedText() retrieves information about a selected item in an alt-text array. </div></div>
+<div class="ttc" id="classTXMPMeta_html_a61ffb3aa3e387d8ff9c1f4ebd26606c7"><div class="ttname"><a href="classTXMPMeta.html#a61ffb3aa3e387d8ff9c1f4ebd26606c7">TXMPMeta::TXMPMeta</a></div><div class="ttdeci">* TXMPMeta()</div><div class="ttdoc">Default constructor, creates an empty object. </div></div>
+<div class="ttc" id="XMP__Const_8h_html_aeb865118433be92d88e5f49ed11487c8"><div class="ttname"><a href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a></div><div class="ttdeci">XMP_Uns32 XMP_OptionBits</div><div class="ttdoc">The type for a collection of 32 flag bits. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00172">XMP_Const.h:172</a></div></div>
+<div class="ttc" id="classTXMPMeta_html_a9261b80d62e77a10ff1a89843bfa10a5"><div class="ttname"><a href="classTXMPMeta.html#a9261b80d62e77a10ff1a89843bfa10a5">TXMPMeta::DoesStructFieldExist</a></div><div class="ttdeci">bool DoesStructFieldExist(XMP_StringPtr schemaNS, XMP_StringPtr structName, XMP_StringPtr fieldNS, XMP_StringPtr fieldName) const </div><div class="ttdoc">DoesStructFieldExist() reports whether a struct field currently exists. </div></div>
+<div class="ttc" id="classTXMPMeta_html_a92055b3ae18dfd5e5491108f59318f17"><div class="ttname"><a href="classTXMPMeta.html#a92055b3ae18dfd5e5491108f59318f17">TXMPMeta::SetObjectOptions</a></div><div class="ttdeci">void SetObjectOptions(XMP_OptionBits options)</div><div class="ttdoc">Not implemented. </div></div>
+<div class="ttc" id="XMPCoreDefines_8h_html"><div class="ttname"><a href="XMPCoreDefines_8h.html">XMPCoreDefines.h</a></div></div>
+<div class="ttc" id="classTXMPMeta_html_aeee10669445f77139d5634199ff01079"><div class="ttname"><a href="classTXMPMeta.html#aeee10669445f77139d5634199ff01079">TXMPMeta::SetProperty_Date</a></div><div class="ttdeci">void SetProperty_Date(XMP_StringPtr schemaNS, XMP_StringPtr propName, const XMP_DateTime &amp;propValue, XMP_OptionBits options=0)</div><div class="ttdoc">SetProperty_Date() sets the value of a date/time property using an XMP_DateTime structure. </div></div>
+<div class="ttc" id="classTXMPMeta_html_a0e44c30e7527064909e5f7035d53c4f5"><div class="ttname"><a href="classTXMPMeta.html#a0e44c30e7527064909e5f7035d53c4f5">TXMPMeta::SetStructField</a></div><div class="ttdeci">void SetStructField(XMP_StringPtr schemaNS, XMP_StringPtr structName, XMP_StringPtr fieldNS, XMP_StringPtr fieldName, XMP_StringPtr fieldValue, XMP_OptionBits options=0)</div><div class="ttdoc">SetStructField() creates or sets the value of a field within a nested structure. </div></div>
+<div class="ttc" id="classTXMPMeta_html_a1dfd6a08ebfd1a6364b3a7b6584bcc28"><div class="ttname"><a href="classTXMPMeta.html#a1dfd6a08ebfd1a6364b3a7b6584bcc28">TXMPMeta::SetProperty</a></div><div class="ttdeci">void SetProperty(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_StringPtr propValue, XMP_OptionBits options=0)</div><div class="ttdoc">be a simple property with an xml:lang attribute. </div></div>
+<div class="ttc" id="classTXMPMeta_html_aeb7679e92b126800b7bd906acb2f26e8"><div class="ttname"><a href="classTXMPMeta.html#aeb7679e92b126800b7bd906acb2f26e8">TXMPMeta::DeleteLocalizedText</a></div><div class="ttdeci">void DeleteLocalizedText(XMP_StringPtr schemaNS, XMP_StringPtr altTextName, XMP_StringPtr genericLang, XMP_StringPtr specificLang)</div><div class="ttdoc">DeleteLocalizedText() deletes specific language alternatives from an alt-text array. </div></div>
+<div class="ttc" id="classTXMPUtils_html"><div class="ttname"><a href="classTXMPUtils.html">TXMPUtils</a></div><div class="ttdoc">API for access to the XMP Toolkit utility services. </div><div class="ttdef"><b>Definition:</b> <a href="TXMPMeta_8hpp_source.html#l00051">TXMPMeta.hpp:51</a></div></div>
+<div class="ttc" id="classTXMPMeta_html_abc258e027780a15be65a88fcfd4e1fd4"><div class="ttname"><a href="classTXMPMeta.html#abc258e027780a15be65a88fcfd4e1fd4">TXMPMeta::DeleteStructField</a></div><div class="ttdeci">void DeleteStructField(XMP_StringPtr schemaNS, XMP_StringPtr structName, XMP_StringPtr fieldNS, XMP_StringPtr fieldName)</div><div class="ttdoc">DeleteStructField() deletes an XMP subtree rooted at a given struct field. </div></div>
+<div class="ttc" id="classTXMPMeta_html_abab5013870cd47eb0d9d701653735a02"><div class="ttname"><a href="classTXMPMeta.html#abab5013870cd47eb0d9d701653735a02">TXMPMeta::~TXMPMeta</a></div><div class="ttdeci">virtual ~TXMPMeta()</div><div class="ttdoc">Destructor, typical virtual destructor. */. </div></div>
+<div class="ttc" id="classTXMPIterator_html"><div class="ttname"><a href="classTXMPIterator.html">TXMPIterator</a></div><div class="ttdoc">API for access to the XMP Toolkit iteration services. </div><div class="ttdef"><b>Definition:</b> <a href="TXMPIterator_8hpp_source.html#l00079">TXMPIterator.hpp:79</a></div></div>
+<div class="ttc" id="classTXMPMeta_html_a2cc58d8316043b035643e7c21633bc13"><div class="ttname"><a href="classTXMPMeta.html#a2cc58d8316043b035643e7c21633bc13">TXMPMeta::GetQualifier</a></div><div class="ttdeci">bool GetQualifier(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_StringPtr qualNS, XMP_StringPtr qualName, tStringObj *qualValue, XMP_OptionBits *options) const </div><div class="ttdoc">GetQualifier() provides access to a qualifier attached to a property. </div></div>
+<div class="ttc" id="classTXMPMeta_html_af28589472d8c0397db6cef868f2b8c97"><div class="ttname"><a href="classTXMPMeta.html#af28589472d8c0397db6cef868f2b8c97">TXMPMeta::GetNamespacePrefix</a></div><div class="ttdeci">static bool GetNamespacePrefix(XMP_StringPtr namespaceURI, tStringObj *namespacePrefix)</div><div class="ttdoc">GetNamespacePrefix() obtains the prefix for a registered namespace URI, and reports whether the URI i...</div></div>
+<div class="ttc" id="classTXMPMeta_html_a466fa349c9765f39ca6b1450908e769f"><div class="ttname"><a href="classTXMPMeta.html#a466fa349c9765f39ca6b1450908e769f">TXMPMeta::DumpObject</a></div><div class="ttdeci">XMP_Status DumpObject(XMP_TextOutputProc outProc, void *clientData) const </div><div class="ttdoc">DumpObject() outputs the content of an XMP object to a callback handler for debugging. </div></div>
+<div class="ttc" id="classTXMPMeta_html_a12b2435ba039c62a164951948c016eb4"><div class="ttname"><a href="classTXMPMeta.html#a12b2435ba039c62a164951948c016eb4">TXMPMeta::GetGlobalOptions</a></div><div class="ttdeci">static XMP_OptionBits GetGlobalOptions()</div><div class="ttdoc">GetGlobalOptions() retrieves the set of global option flags. There are none in this version of the To...</div></div>
+<div class="ttc" id="classTXMPMeta_html_a7f749be7699890bbaa2e2dbd05d45a90"><div class="ttname"><a href="classTXMPMeta.html#a7f749be7699890bbaa2e2dbd05d45a90">TXMPMeta::SetProperty_Int64</a></div><div class="ttdeci">void SetProperty_Int64(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_Int64 propValue, XMP_OptionBits options=0)</div><div class="ttdoc">SetProperty_Int64() sets the value of an integer property using a C long long integer. </div></div>
+<div class="ttc" id="classTXMPMeta_html_a06a3241c7fa5df87f61dff02fca23a0c"><div class="ttname"><a href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c">TXMPMeta::GetProperty</a></div><div class="ttdeci">bool GetProperty(XMP_StringPtr schemaNS, XMP_StringPtr propName, tStringObj *propValue, XMP_OptionBits *options) const </div><div class="ttdoc">GetProperty() reports whether a property exists, and retrieves its value. </div></div>
+<div class="ttc" id="classTXMPMeta_html_acf1935be8e4849976dfc02325424960a"><div class="ttname"><a href="classTXMPMeta.html#acf1935be8e4849976dfc02325424960a">TXMPMeta::SetObjectName</a></div><div class="ttdeci">void SetObjectName(XMP_StringPtr name)</div><div class="ttdoc">SetObjectName() assigns a name to this XMP object. </div></div>
+<div class="ttc" id="classTXMPMeta_html_ab79aae864b3ce190d0699252f48e0acc"><div class="ttname"><a href="classTXMPMeta.html#ab79aae864b3ce190d0699252f48e0acc">TXMPMeta::CountArrayItems</a></div><div class="ttdeci">XMP_Index CountArrayItems(XMP_StringPtr schemaNS, XMP_StringPtr arrayName) const </div><div class="ttdoc">CountArrayItems() reports the number of items currently defined in an array. </div></div>
+<div class="ttc" id="classTXMPMeta_html_a6c30fae26173167958b6f0da95a53865"><div class="ttname"><a href="classTXMPMeta.html#a6c30fae26173167958b6f0da95a53865">TXMPMeta::Terminate</a></div><div class="ttdeci">static void Terminate()</div><div class="ttdoc">Terminate() explicitly terminates usage of the XMP Toolkit. </div></div>
+<div class="ttc" id="classTXMPMeta_html_a1570eb89d613b4a94ca572e4644168cc"><div class="ttname"><a href="classTXMPMeta.html#a1570eb89d613b4a94ca572e4644168cc">TXMPMeta::SetArrayItem</a></div><div class="ttdeci">void SetArrayItem(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_Index itemIndex, XMP_StringPtr itemValue, XMP_OptionBits options=0)</div><div class="ttdoc">SetArrayItem() creates or sets the value of an item within an array. </div></div>
+<div class="ttc" id="classTXMPMeta_html_a3b0f2f6bae57931ea96775f03608c0ed"><div class="ttname"><a href="classTXMPMeta.html#a3b0f2f6bae57931ea96775f03608c0ed">TXMPMeta::SetProperty_Float</a></div><div class="ttdeci">void SetProperty_Float(XMP_StringPtr schemaNS, XMP_StringPtr propName, double propValue, XMP_OptionBits options=0)</div><div class="ttdoc">SetProperty_Float() sets the value of a floating-point property using a C double float. </div></div>
+<div class="ttc" id="classTXMPMeta_html_a8ce15f7de7fd3b258f07158ab5fa88be"><div class="ttname"><a href="classTXMPMeta.html#a8ce15f7de7fd3b258f07158ab5fa88be">TXMPMeta::DeleteQualifier</a></div><div class="ttdeci">void DeleteQualifier(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_StringPtr qualNS, XMP_StringPtr qualName)</div><div class="ttdoc">DeleteQualifier() deletes an XMP subtree rooted at a given qualifier. </div></div>
+<div class="ttc" id="classTXMPMeta_html_a7708c31c9af3e740b27a4893dcd9aa47"><div class="ttname"><a href="classTXMPMeta.html#a7708c31c9af3e740b27a4893dcd9aa47">TXMPMeta::GetProperty_Float</a></div><div class="ttdeci">bool GetProperty_Float(XMP_StringPtr schemaNS, XMP_StringPtr propName, double *propValue, XMP_OptionBits *options) const </div><div class="ttdoc">GetProperty_Float() retrieves the value of a floating-point property as a C double float...</div></div>
+<div class="ttc" id="classTXMPMeta_html_a31c7ef089e8fadff122044afa27d200a"><div class="ttname"><a href="classTXMPMeta.html#a31c7ef089e8fadff122044afa27d200a">TXMPMeta::ResetErrorCallbackLimit</a></div><div class="ttdeci">void ResetErrorCallbackLimit(XMP_Uns32 limit=1)</div><div class="ttdoc">ResetErrorCallbackLimit() resets the error notification limit and counting. It has no effect if an er...</div></div>
+<div class="ttc" id="classTXMPMeta_html_a0bfc04142a35671a4c8989fcaca6d6c2"><div class="ttname"><a href="classTXMPMeta.html#a0bfc04142a35671a4c8989fcaca6d6c2">TXMPMeta::GetObjectOptions</a></div><div class="ttdeci">XMP_OptionBits GetObjectOptions() const </div><div class="ttdoc">Not implemented. </div></div>
+<div class="ttc" id="classTXMPMeta_html_a81347a92becd387a14f4d47c582f129a"><div class="ttname"><a href="classTXMPMeta.html#a81347a92becd387a14f4d47c582f129a">TXMPMeta::DoesQualifierExist</a></div><div class="ttdeci">bool DoesQualifierExist(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_StringPtr qualNS, XMP_StringPtr qualName) const </div><div class="ttdoc">DoesQualifierExist() reports whether a qualifier currently exists. </div></div>
+<div class="ttc" id="classTXMPMeta_html_a6ca653436995bbb76315efe7934afd4c"><div class="ttname"><a href="classTXMPMeta.html#a6ca653436995bbb76315efe7934afd4c">TXMPMeta::Clone</a></div><div class="ttdeci">TXMPMeta Clone(XMP_OptionBits options=0) const </div><div class="ttdoc">Clone() creates a deep copy of an XMP object. </div></div>
+<div class="ttc" id="classTXMPMeta_html_ac2e798da5f9d94e486382a41e73fcea3"><div class="ttname"><a href="classTXMPMeta.html#ac2e798da5f9d94e486382a41e73fcea3">TXMPMeta::SetQualifier</a></div><div class="ttdeci">void SetQualifier(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_StringPtr qualNS, XMP_StringPtr qualName, XMP_StringPtr qualValue, XMP_OptionBits options=0)</div><div class="ttdoc">SetQualifier() creates or sets a qualifier attached to a property. </div></div>
+<div class="ttc" id="XMP__Const_8h_html_a549d5e2cbcb58302d3df840a0205283e"><div class="ttname"><a href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a></div><div class="ttdeci">struct __XMPMeta__ * XMPMetaRef</div><div class="ttdoc">An &quot;ABI safe&quot; pointer to the internal part of an XMP object. Use to pass an XMP object across client ...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00130">XMP_Const.h:130</a></div></div>
+<div class="ttc" id="classTXMPMeta_html_a9521e3838272ec501ffdb60ff3eb482f"><div class="ttname"><a href="classTXMPMeta.html#a9521e3838272ec501ffdb60ff3eb482f">TXMPMeta::SetProperty_Bool</a></div><div class="ttdeci">void SetProperty_Bool(XMP_StringPtr schemaNS, XMP_StringPtr propName, bool propValue, XMP_OptionBits options=0)</div><div class="ttdoc">SetProperty_Bool() sets the value of a Boolean property using a C++ bool. </div></div>
+<div class="ttc" id="classTXMPMeta_html_ae7bb38d9b3857b08106630a386b47332"><div class="ttname"><a href="classTXMPMeta.html#ae7bb38d9b3857b08106630a386b47332">TXMPMeta::SetGlobalOptions</a></div><div class="ttdeci">static void SetGlobalOptions(XMP_OptionBits options)</div><div class="ttdoc">SetGlobalOptions() updates the set of global option flags. There are none in this version of the Tool...</div></div>
+<div class="ttc" id="classTXMPMeta_html_a2774a6f15ae22f0002201b58c46bfb49"><div class="ttname"><a href="classTXMPMeta.html#a2774a6f15ae22f0002201b58c46bfb49">TXMPMeta::SerializeToBuffer</a></div><div class="ttdeci">void SerializeToBuffer(tStringObj *rdfString, XMP_OptionBits options, XMP_StringLen padding, XMP_StringPtr newline, XMP_StringPtr indent=&quot;&quot;, XMP_Index baseIndent=0) const </div><div class="ttdoc">SerializeToBuffer() serializes metadata in this XMP object into a string as RDF. </div></div>
+<div class="ttc" id="classTXMPMeta_html_af1defbb73f919eae06456a655dea726c"><div class="ttname"><a href="classTXMPMeta.html#af1defbb73f919eae06456a655dea726c">TXMPMeta::Initialize</a></div><div class="ttdeci">*static bool Initialize()</div><div class="ttdoc">Initialize() explicitly initializes the XMP Toolkit before use. */ </div></div>
+<div class="ttc" id="classTXMPMeta_html"><div class="ttname"><a href="classTXMPMeta.html">TXMPMeta</a></div><div class="ttdoc">API for access to the XMP Toolkit core services. </div><div class="ttdef"><b>Definition:</b> <a href="TXMPMeta_8hpp_source.html#l00055">TXMPMeta.hpp:55</a></div></div>
+<div class="ttc" id="XMPCoreFwdDeclarations_8h_html"><div class="ttname"><a href="XMPCoreFwdDeclarations_8h.html">XMPCoreFwdDeclarations.h</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
</body>
</html>
diff --git a/docs/API/TXMPMeta_8incl__cpp.html b/docs/API/TXMPMeta_8incl__cpp.html
deleted file mode 100644
index 2bdade1..0000000
--- a/docs/API/TXMPMeta_8incl__cpp.html
+++ /dev/null
@@ -1,85 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: TXMPMeta.incl_cpp File Reference</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
-<link href="tabs.css" rel="stylesheet" type="text/css">
-</head><body>
-<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
- <li><a href="annotated.html"><span>Classes</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li><a href="files.html"><span>File&nbsp;List</span></a></li>
- <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
- </ul>
- </div>
-</div>
-<div class="contents">
-<h1>TXMPMeta.incl_cpp File Reference</h1>
-<p>The implementation of the <a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta</a> template class.
-<a href="#_details">More...</a></p>
-<code>#include &quot;XMP.hpp&quot;</code><br/>
-<code>#include &quot;client-glue/WXMP_Common.hpp&quot;</code><br/>
-<code>#include &quot;client-glue/WXMPMeta.hpp&quot;</code><br/>
-<div class="dynheader">
-Include dependency graph for TXMPMeta.incl_cpp:</div>
-<div class="dynsection">
-<div class="center"><img src="TXMPMeta_8incl__cpp__incl.png" border="0" usemap="#TXMPMeta_8incl__cpp_map" alt=""/></div>
-</div>
-<table border="0" cellpadding="0" cellspacing="0">
-</table>
-<hr/><a name="_details"></a><h2>Detailed Description</h2>
-<p>The implementation of the <a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta</a> template class. </p>
-</div>
-<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
-</body>
-</html>
diff --git a/docs/API/TXMPMeta_8incl__cpp__incl.png b/docs/API/TXMPMeta_8incl__cpp__incl.png
deleted file mode 100644
index 4c9cc3e..0000000
--- a/docs/API/TXMPMeta_8incl__cpp__incl.png
+++ /dev/null
Binary files differ
diff --git a/docs/API/TXMPUtils_8hpp.html b/docs/API/TXMPUtils_8hpp.html
index 56a27cc..38c500c 100644..100755
--- a/docs/API/TXMPUtils_8hpp.html
+++ b/docs/API/TXMPUtils_8hpp.html
@@ -1,83 +1,67 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: TXMPUtils.hpp File Reference</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/TXMPUtils.hpp File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
- <li><a href="files.html"><span>File&nbsp;List</span></a></li>
- <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('TXMPUtils_8hpp.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">TXMPUtils.hpp File Reference</div> </div>
+</div><!--header-->
<div class="contents">
-<h1>TXMPUtils.hpp File Reference</h1>
+
<p>API for access to the XMP Toolkit utility services.
-<a href="#_details">More...</a></p>
+<a href="#details">More...</a></p>
<p><a href="TXMPUtils_8hpp_source.html">Go to the source code of this file.</a></p>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td colspan="2"><h2>Classes</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">API for access to the XMP Toolkit utility services. <a href="classTXMPUtils.html#_details">More...</a><br/></td></tr>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">API for access to the XMP Toolkit utility services. <a href="classTXMPUtils.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
-<hr/><a name="_details"></a><h2>Detailed Description</h2>
-<p>API for access to the XMP Toolkit utility services. </p>
-<p><code><a class="el" href="classTXMPUtils.html" title="API for access to the XMP Toolkit utility services.">TXMPUtils</a></code> is the template class providing utility services for the XMP Toolkit. It must be instantiated with a string class such as <code>std::string</code>. See the instructions in XMP.hpp, and the Overview for a discussion of the overall architecture of the XMP API. </p>
-</div>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>API for access to the XMP Toolkit utility services. </p>
+<p><code><a class="el" href="classTXMPUtils.html" title="API for access to the XMP Toolkit utility services. ">TXMPUtils</a></code> is the template class providing utility services for the XMP Toolkit. It must be instantiated with a string class such as <code>std::string</code>. See the instructions in <a class="el" href="XMP_8hpp.html" title="Overall header file for the XMP Toolkit. ">XMP.hpp</a>, and the Overview for a discussion of the overall architecture of the XMP API. </p>
+
+<p>Definition in file <a class="el" href="TXMPUtils_8hpp_source.html">TXMPUtils.hpp</a>.</p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
</body>
</html>
diff --git a/docs/API/TXMPUtils_8hpp_source.html b/docs/API/TXMPUtils_8hpp_source.html
index 3c92959..04af8cd 100644..100755
--- a/docs/API/TXMPUtils_8hpp_source.html
+++ b/docs/API/TXMPUtils_8hpp_source.html
@@ -1,356 +1,85 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: TXMPUtils.hpp Source File</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/TXMPUtils.hpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
- <li><a href="files.html"><span>File&nbsp;List</span></a></li>
- <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-<h1>TXMPUtils.hpp</h1><a href="TXMPUtils_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef __TXMPUtils_hpp__</span>
-<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define __TXMPUtils_hpp__ 1</span>
-<a name="l00003"></a>00003 <span class="preprocessor"></span>
-<a name="l00004"></a>00004 <span class="preprocessor">#if ( ! __XMP_hpp__ )</span>
-<a name="l00005"></a>00005 <span class="preprocessor"></span><span class="preprocessor"> #error &quot;Do not directly include, use XMP.hpp&quot;</span>
-<a name="l00006"></a>00006 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
-<a name="l00007"></a>00007 <span class="preprocessor"></span>
-<a name="l00008"></a>00008 <span class="comment">// =================================================================================================</span>
-<a name="l00009"></a>00009 <span class="comment">// ADOBE SYSTEMS INCORPORATED</span>
-<a name="l00010"></a>00010 <span class="comment">// Copyright 2002 Adobe Systems Incorporated</span>
-<a name="l00011"></a>00011 <span class="comment">// All Rights Reserved</span>
-<a name="l00012"></a>00012 <span class="comment">//</span>
-<a name="l00013"></a>00013 <span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span>
-<a name="l00014"></a>00014 <span class="comment">// of the Adobe license agreement accompanying it.</span>
-<a name="l00015"></a>00015 <span class="comment">// =================================================================================================</span>
-<a name="l00016"></a>00016
-<a name="l00017"></a>00017 <span class="comment">// =================================================================================================</span>
-<a name="l00024"></a>00024 <span class="comment"></span><span class="comment">// =================================================================================================</span>
-<a name="l00025"></a>00025
-<a name="l00026"></a>00026 <span class="comment">// =================================================================================================</span>
-<a name="l00047"></a>00047 <span class="comment"></span><span class="comment">// =================================================================================================</span>
-<a name="l00048"></a>00048
-<a name="l00049"></a><a class="code" href="classTXMPUtils.html">00049</a> <span class="keyword">template</span> &lt;<span class="keyword">class</span> tStringObj&gt; <span class="keyword">class </span><a class="code" href="classTXMPUtils.html" title="API for access to the XMP Toolkit utility services.">TXMPUtils</a> {
-<a name="l00050"></a>00050
-<a name="l00051"></a>00051 <span class="keyword">public</span>:
-<a name="l00052"></a>00052
-<a name="l00053"></a>00053 <span class="comment">// =============================================================================================</span>
-<a name="l00054"></a>00054 <span class="comment">// No constructors or destructor declared or needed</span>
-<a name="l00055"></a>00055 <span class="comment">// ================================================</span>
-<a name="l00056"></a>00056
-<a name="l00057"></a>00057 <span class="comment">// ============================================================================================</span>
-<a name="l00092"></a>00092 <span class="comment"></span>
-<a name="l00093"></a>00093 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00109"></a>00109 <span class="comment"></span>
-<a name="l00110"></a>00110 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#a47fa195aa2e1457aa1f74f7e1ed06da6" title="ComposeArrayItemPath() composes the path expression for an item in an array.">ComposeArrayItemPath</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l00111"></a>00111 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> arrayName,
-<a name="l00112"></a>00112 <a class="code" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315" title="The type for offsets and indices. A 32-bit signed integer. It is signed to allow...">XMP_Index</a> itemIndex,
-<a name="l00113"></a>00113 tStringObj * fullPath );
-<a name="l00114"></a>00114
-<a name="l00115"></a>00115 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00133"></a>00133 <span class="comment"></span>
-<a name="l00134"></a>00134 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#a706eb85b8401b8682a01348f7e25ee3d" title="ComposeStructFieldPath() composes the path expression for a field in a struct.">ComposeStructFieldPath</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l00135"></a>00135 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> structName,
-<a name="l00136"></a>00136 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> fieldNS,
-<a name="l00137"></a>00137 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> fieldName,
-<a name="l00138"></a>00138 tStringObj * fullPath );
-<a name="l00139"></a>00139
-<a name="l00140"></a>00140 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00159"></a>00159 <span class="comment"></span>
-<a name="l00160"></a>00160 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#a40ae0ce2065fcb71725e37137884e172" title="ComposeQualifierPath() composes the path expression for a qualifier.">ComposeQualifierPath</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l00161"></a>00161 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> propName,
-<a name="l00162"></a>00162 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> qualNS,
-<a name="l00163"></a>00163 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> qualName,
-<a name="l00164"></a>00164 tStringObj * fullPath );
-<a name="l00165"></a>00165
-<a name="l00166"></a>00166 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00190"></a>00190 <span class="comment"></span>
-<a name="l00191"></a>00191 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#ae4989e5c199a2a4287ee3ae89b872e69" title="ComposeLangSelector() composes the path expression to select an alternate item by...">ComposeLangSelector</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l00192"></a>00192 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> arrayName,
-<a name="l00193"></a>00193 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> langName,
-<a name="l00194"></a>00194 tStringObj * fullPath );
-<a name="l00195"></a>00195
-<a name="l00196"></a>00196 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00220"></a>00220 <span class="comment"></span>
-<a name="l00221"></a>00221 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#ae4989e5c199a2a4287ee3ae89b872e69" title="ComposeLangSelector() composes the path expression to select an alternate item by...">ComposeLangSelector</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l00222"></a>00222 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> arrayName,
-<a name="l00223"></a>00223 <span class="keyword">const</span> tStringObj &amp; langName,
-<a name="l00224"></a>00224 tStringObj * fullPath );
-<a name="l00225"></a>00225
-<a name="l00226"></a>00226 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00260"></a>00260 <span class="comment"></span>
-<a name="l00261"></a>00261 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#a458f8e8729e2334fe54ca8f691a9db23" title="ComposeFieldSelector() composes a path expression to select an alternate item by...">ComposeFieldSelector</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l00262"></a>00262 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> arrayName,
-<a name="l00263"></a>00263 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> fieldNS,
-<a name="l00264"></a>00264 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> fieldName,
-<a name="l00265"></a>00265 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> fieldValue,
-<a name="l00266"></a>00266 tStringObj * fullPath );
-<a name="l00267"></a>00267
-<a name="l00268"></a>00268 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00302"></a>00302 <span class="comment"></span>
-<a name="l00303"></a>00303 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#a458f8e8729e2334fe54ca8f691a9db23" title="ComposeFieldSelector() composes a path expression to select an alternate item by...">ComposeFieldSelector</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l00304"></a>00304 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> arrayName,
-<a name="l00305"></a>00305 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> fieldNS,
-<a name="l00306"></a>00306 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> fieldName,
-<a name="l00307"></a>00307 <span class="keyword">const</span> tStringObj &amp; fieldValue,
-<a name="l00308"></a>00308 tStringObj * fullPath );
-<a name="l00309"></a>00309
-<a name="l00311"></a>00311
-<a name="l00312"></a>00312 <span class="comment">// =============================================================================================</span>
-<a name="l00324"></a>00324 <span class="comment"></span>
-<a name="l00325"></a>00325 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00334"></a>00334 <span class="comment"></span>
-<a name="l00335"></a>00335 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#a509691eb270988de6a770c9c8304ab6b" title="ConvertFromBool() converts a Boolean value to a string.">ConvertFromBool</a> ( <span class="keywordtype">bool</span> binValue,
-<a name="l00336"></a>00336 tStringObj * strValue );
-<a name="l00337"></a>00337
-<a name="l00338"></a>00338 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00346"></a>00346 <span class="comment"></span>
-<a name="l00347"></a>00347 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#aeec45b4d1a26717290105c9f4e8b4235" title="ConvertFromInt() converts a 32-bit integer value to a string.">ConvertFromInt</a> ( <span class="keywordtype">long</span> binValue,
-<a name="l00348"></a>00348 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> format,
-<a name="l00349"></a>00349 tStringObj * strValue );
-<a name="l00350"></a>00350 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00358"></a>00358 <span class="comment"></span>
-<a name="l00359"></a>00359 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#aeae4617e05358433015eaa80953c5e60" title="ConvertFromInt64() converts a 64-bit integer value to a string.">ConvertFromInt64</a> ( <span class="keywordtype">long</span> <span class="keywordtype">long</span> binValue,
-<a name="l00360"></a>00360 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> format,
-<a name="l00361"></a>00361 tStringObj * strValue );
-<a name="l00362"></a>00362
-<a name="l00363"></a>00363 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00371"></a>00371 <span class="comment"></span>
-<a name="l00372"></a>00372 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#ae67ef3931836432b7e574832f0610ed0" title="ConvertFromFloat() converts a floating-point value to a string.">ConvertFromFloat</a> ( <span class="keywordtype">double</span> binValue,
-<a name="l00373"></a>00373 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> format,
-<a name="l00374"></a>00374 tStringObj * strValue );
-<a name="l00375"></a>00375
-<a name="l00376"></a>00376 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00409"></a>00409 <span class="comment"></span>
-<a name="l00410"></a>00410 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#a6146a522a3974b4088d6e8241e9cd223" title="ConvertFromDate() converts a date/time value to a string.">ConvertFromDate</a> ( <span class="keyword">const</span> <a class="code" href="structXMP__DateTime.html" title="The expanded type for a date and time.">XMP_DateTime</a> &amp; binValue,
-<a name="l00411"></a>00411 tStringObj * strValue );
-<a name="l00412"></a>00412
-<a name="l00413"></a>00413 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00423"></a>00423 <span class="comment"></span>
-<a name="l00424"></a>00424 <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classTXMPUtils.html#aaaaaadb23f4089daa795f50cba4f405c" title="ConvertToBool() converts a string to a Boolean value.">ConvertToBool</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> strValue );
-<a name="l00425"></a>00425
-<a name="l00426"></a>00426 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00435"></a>00435 <span class="comment"></span>
-<a name="l00436"></a>00436 <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classTXMPUtils.html#aaaaaadb23f4089daa795f50cba4f405c" title="ConvertToBool() converts a string to a Boolean value.">ConvertToBool</a> ( <span class="keyword">const</span> tStringObj &amp; strValue );
-<a name="l00437"></a>00437
-<a name="l00438"></a>00438 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00444"></a>00444 <span class="comment"></span>
-<a name="l00445"></a>00445 <span class="keyword">static</span> <span class="keywordtype">long</span> <a class="code" href="classTXMPUtils.html#adfd9d1c522377d5db4ad667a7973ba00" title="ConvertToInt() converts a string to a 32-bit integer value.">ConvertToInt</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> strValue );
-<a name="l00446"></a>00446
-<a name="l00447"></a>00447 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00456"></a>00456 <span class="comment"></span>
-<a name="l00457"></a>00457 <span class="keyword">static</span> <span class="keywordtype">long</span> <a class="code" href="classTXMPUtils.html#adfd9d1c522377d5db4ad667a7973ba00" title="ConvertToInt() converts a string to a 32-bit integer value.">ConvertToInt</a> ( <span class="keyword">const</span> tStringObj &amp; strValue );
-<a name="l00458"></a>00458
-<a name="l00459"></a>00459 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00465"></a>00465 <span class="comment"></span>
-<a name="l00466"></a>00466 <span class="keyword">static</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> <a class="code" href="classTXMPUtils.html#abe5d2dcc03c5442202203bba5ca7b172" title="ConvertToInt64() converts a string to a 64-bit integer value.">ConvertToInt64</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> strValue );
-<a name="l00467"></a>00467
-<a name="l00468"></a>00468 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00477"></a>00477 <span class="comment"></span>
-<a name="l00478"></a>00478 <span class="keyword">static</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> <a class="code" href="classTXMPUtils.html#abe5d2dcc03c5442202203bba5ca7b172" title="ConvertToInt64() converts a string to a 64-bit integer value.">ConvertToInt64</a> ( <span class="keyword">const</span> tStringObj &amp; strValue );
-<a name="l00479"></a>00479
-<a name="l00480"></a>00480 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00486"></a>00486 <span class="comment"></span>
-<a name="l00487"></a>00487 <span class="keyword">static</span> <span class="keywordtype">double</span> <a class="code" href="classTXMPUtils.html#a8a507b006286460814e0486c622d828c" title="ConvertToFloat() converts a string to a floating-point value.">ConvertToFloat</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> strValue );
-<a name="l00488"></a>00488
-<a name="l00489"></a>00489 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00498"></a>00498 <span class="comment"></span>
-<a name="l00499"></a>00499 <span class="keyword">static</span> <span class="keywordtype">double</span> <a class="code" href="classTXMPUtils.html#a8a507b006286460814e0486c622d828c" title="ConvertToFloat() converts a string to a floating-point value.">ConvertToFloat</a> ( <span class="keyword">const</span> tStringObj &amp; strValue );
-<a name="l00500"></a>00500
-<a name="l00501"></a>00501 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00536"></a>00536 <span class="comment"></span>
-<a name="l00537"></a>00537 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#a60d33e6ce30286028acca47b2b6e7a0b" title="ConvertToDate() converts a string to a date/time value.">ConvertToDate</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> strValue,
-<a name="l00538"></a>00538 <a class="code" href="structXMP__DateTime.html" title="The expanded type for a date and time.">XMP_DateTime</a> * binValue );
-<a name="l00539"></a>00539
-<a name="l00540"></a>00540 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00552"></a>00552 <span class="comment"></span>
-<a name="l00553"></a>00553 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#a60d33e6ce30286028acca47b2b6e7a0b" title="ConvertToDate() converts a string to a date/time value.">ConvertToDate</a> ( <span class="keyword">const</span> tStringObj &amp; strValue,
-<a name="l00554"></a>00554 <a class="code" href="structXMP__DateTime.html" title="The expanded type for a date and time.">XMP_DateTime</a> * binValue );
-<a name="l00555"></a>00555
-<a name="l00557"></a>00557
-<a name="l00558"></a>00558 <span class="comment">// =============================================================================================</span>
-<a name="l00564"></a>00564 <span class="comment"></span>
-<a name="l00565"></a>00565 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00573"></a>00573 <span class="comment"></span>
-<a name="l00574"></a>00574 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#ac83f0b963ea64d7eee0b481e15a8439c" title="CurrentDateTime() obtains the current date and time.">CurrentDateTime</a> ( <a class="code" href="structXMP__DateTime.html" title="The expanded type for a date and time.">XMP_DateTime</a> * time );
-<a name="l00575"></a>00575
-<a name="l00576"></a>00576 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00582"></a>00582 <span class="comment"></span>
-<a name="l00583"></a>00583 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#a96bcc45febac55f6c49951815b7de2ef" title="SetTimeZone() sets the time zone in a date/time value to the local time zone.">SetTimeZone</a> ( <a class="code" href="structXMP__DateTime.html" title="The expanded type for a date and time.">XMP_DateTime</a> * time );
-<a name="l00584"></a>00584
-<a name="l00585"></a>00585 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00592"></a>00592 <span class="comment"></span>
-<a name="l00593"></a>00593 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#abbd4d691c83287ea2fc6b1e33e5858b8" title="ConvertToUTCTime() ensures that a time is UTC.">ConvertToUTCTime</a> ( <a class="code" href="structXMP__DateTime.html" title="The expanded type for a date and time.">XMP_DateTime</a> * time );
-<a name="l00594"></a>00594
-<a name="l00595"></a>00595 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00603"></a>00603 <span class="comment"></span>
-<a name="l00604"></a>00604 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#a61852aaba494c8fbad5a6c0c4caf21f5" title="ConvertToLocalTime() ensures that a time is local.">ConvertToLocalTime</a> ( <a class="code" href="structXMP__DateTime.html" title="The expanded type for a date and time.">XMP_DateTime</a> * time );
-<a name="l00605"></a>00605
-<a name="l00606"></a>00606 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00619"></a>00619 <span class="comment"></span>
-<a name="l00620"></a>00620 <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classTXMPUtils.html#a9fc7f1771032f59f9020aeda4f91991d" title="CompareDateTime() compares the order of two date/time values.">CompareDateTime</a> ( <span class="keyword">const</span> <a class="code" href="structXMP__DateTime.html" title="The expanded type for a date and time.">XMP_DateTime</a> &amp; left,
-<a name="l00621"></a>00621 <span class="keyword">const</span> <a class="code" href="structXMP__DateTime.html" title="The expanded type for a date and time.">XMP_DateTime</a> &amp; right );
-<a name="l00622"></a>00622
-<a name="l00624"></a>00624
-<a name="l00625"></a>00625 <span class="comment">// =============================================================================================</span>
-<a name="l00630"></a>00630 <span class="comment"></span>
-<a name="l00631"></a>00631 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00639"></a>00639 <span class="comment"></span>
-<a name="l00640"></a>00640 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#aef3b23bbc152480f699e269620ecad4a" title="EncodeToBase64() converts a raw data value to a Base64-encoded string.">EncodeToBase64</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> rawStr,
-<a name="l00641"></a>00641 <a class="code" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a" title="The type for string length parameters. A 32-bit unsigned integer, as big as will...">XMP_StringLen</a> rawLen,
-<a name="l00642"></a>00642 tStringObj * encodedStr );
-<a name="l00643"></a>00643
-<a name="l00644"></a>00644 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00653"></a>00653 <span class="comment"></span>
-<a name="l00654"></a>00654 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#aef3b23bbc152480f699e269620ecad4a" title="EncodeToBase64() converts a raw data value to a Base64-encoded string.">EncodeToBase64</a> ( <span class="keyword">const</span> tStringObj &amp; rawStr,
-<a name="l00655"></a>00655 tStringObj * encodedStr );
-<a name="l00656"></a>00656
-<a name="l00657"></a>00657 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00665"></a>00665 <span class="comment"></span>
-<a name="l00666"></a>00666 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#ae5bdd91c0c3ee9262dc0a8b9f591b921" title="DecodeFromBase64() Decodes a Base64-encoded string to raw data.">DecodeFromBase64</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> encodedStr,
-<a name="l00667"></a>00667 <a class="code" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a" title="The type for string length parameters. A 32-bit unsigned integer, as big as will...">XMP_StringLen</a> encodedLen,
-<a name="l00668"></a>00668 tStringObj * rawStr );
-<a name="l00669"></a>00669
-<a name="l00670"></a>00670 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00679"></a>00679 <span class="comment"></span>
-<a name="l00680"></a>00680 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#ae5bdd91c0c3ee9262dc0a8b9f591b921" title="DecodeFromBase64() Decodes a Base64-encoded string to raw data.">DecodeFromBase64</a> ( <span class="keyword">const</span> tStringObj &amp; encodedStr,
-<a name="l00681"></a>00681 tStringObj * rawStr );
-<a name="l00682"></a>00682
-<a name="l00684"></a>00684
-<a name="l00685"></a>00685 <span class="comment">// =============================================================================================</span>
-<a name="l00686"></a>00686 <span class="comment">// =============================================================================================</span>
-<a name="l00694"></a>00694 <span class="comment"></span>
-<a name="l00695"></a>00695 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00714"></a>00714 <span class="comment"></span>
-<a name="l00715"></a>00715 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#a6001b4ff54c60fdf0c40e6b78a5c457a" title="PackageForJPEG() creates XMP serializations appropriate for a JPEG file.">PackageForJPEG</a> ( <span class="keyword">const</span> <a class="code" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta&lt;tStringObj&gt;</a> &amp; xmpObj,
-<a name="l00716"></a>00716 tStringObj * standardXMP,
-<a name="l00717"></a>00717 tStringObj * extendedXMP,
-<a name="l00718"></a>00718 tStringObj * extendedDigest );
-<a name="l00719"></a>00719
-<a name="l00720"></a>00720 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00734"></a>00734 <span class="comment"></span>
-<a name="l00735"></a>00735 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#a6187cd5fef0eccecac6805d4114dcd2e" title="MergeFromJPEG() merges standard and extended XMP retrieved from a JPEG file.">MergeFromJPEG</a> ( <a class="code" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta&lt;tStringObj&gt;</a> * fullXMP,
-<a name="l00736"></a>00736 <span class="keyword">const</span> <a class="code" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta&lt;tStringObj&gt;</a> &amp; extendedXMP );
-<a name="l00737"></a>00737
-<a name="l00739"></a>00739
-<a name="l00740"></a>00740 <span class="comment">// =============================================================================================</span>
-<a name="l00747"></a>00747 <span class="comment"></span>
-<a name="l00748"></a>00748 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00772"></a>00772 <span class="comment"></span>
-<a name="l00773"></a>00773 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#ad7e1aa7928252fb88a24fb5c3aef22ba" title="CatenateArrayItems() creates a single edit string from a set of array item values...">CatenateArrayItems</a> ( <span class="keyword">const</span> <a class="code" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta&lt;tStringObj&gt;</a> &amp; xmpObj,
-<a name="l00774"></a>00774 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l00775"></a>00775 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> arrayName,
-<a name="l00776"></a>00776 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> separator,
-<a name="l00777"></a>00777 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> quotes,
-<a name="l00778"></a>00778 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> options,
-<a name="l00779"></a>00779 tStringObj * catedStr );
-<a name="l00780"></a>00780
-<a name="l00781"></a>00781 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00799"></a>00799 <span class="comment"></span>
-<a name="l00800"></a>00800 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#a66c5ddee47aa36ed906353f94ca18d2e" title="SeparateArrayItems() updates an array from a concatenated edit string of values.">SeparateArrayItems</a> ( <a class="code" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta&lt;tStringObj&gt;</a> * xmpObj,
-<a name="l00801"></a>00801 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l00802"></a>00802 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> arrayName,
-<a name="l00803"></a>00803 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> options,
-<a name="l00804"></a>00804 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> catedStr );
-<a name="l00805"></a>00805
-<a name="l00806"></a>00806 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00812"></a>00812 <span class="comment"></span>
-<a name="l00813"></a>00813 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#a66c5ddee47aa36ed906353f94ca18d2e" title="SeparateArrayItems() updates an array from a concatenated edit string of values.">SeparateArrayItems</a> ( <a class="code" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta&lt;tStringObj&gt;</a> * xmpObj,
-<a name="l00814"></a>00814 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
-<a name="l00815"></a>00815 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> arrayName,
-<a name="l00816"></a>00816 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> options,
-<a name="l00817"></a>00817 <span class="keyword">const</span> tStringObj &amp; catedStr );
-<a name="l00818"></a>00818
-<a name="l00868"></a>00868
-<a name="l00883"></a>00883
-<a name="l00884"></a>00884 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#ab73bfa15116e6d702044542e0a43cce9" title="ApplyTemplate() modifies a working XMP object according to a template object.">ApplyTemplate</a> ( <a class="code" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta&lt;tStringObj&gt;</a> * workingXMP,
-<a name="l00885"></a>00885 <span class="keyword">const</span> <a class="code" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta&lt;tStringObj&gt;</a> &amp; templateXMP,
-<a name="l00886"></a>00886 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> actions );
-<a name="l00887"></a>00887
-<a name="l00888"></a>00888 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00919"></a>00919 <span class="comment"></span>
-<a name="l00920"></a>00920 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#a40c645803530662e08d042b4b7c6190d" title="RemoveProperties() removes multiple properties from an XMP object.">RemoveProperties</a> ( <a class="code" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta&lt;tStringObj&gt;</a> * xmpObj,
-<a name="l00921"></a>00921 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS = 0,
-<a name="l00922"></a>00922 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> propName = 0,
-<a name="l00923"></a>00923 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> options = 0 );
-<a name="l00924"></a>00924
-<a name="l00925"></a>00925 <span class="comment">// ---------------------------------------------------------------------------------------------</span>
-<a name="l00946"></a>00946 <span class="comment"></span>
-<a name="l00947"></a>00947 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#aa17838f062e5414bc0929f67ac94a3aa" title="DuplicateSubtree() replicates a subtree from one XMP object into another.">DuplicateSubtree</a> ( <span class="keyword">const</span> <a class="code" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta&lt;tStringObj&gt;</a> &amp; source,
-<a name="l00948"></a>00948 <a class="code" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta&lt;tStringObj&gt;</a> * dest,
-<a name="l00949"></a>00949 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> sourceNS,
-<a name="l00950"></a>00950 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> sourceRoot,
-<a name="l00951"></a>00951 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> destNS = 0,
-<a name="l00952"></a>00952 <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> destRoot = 0,
-<a name="l00953"></a>00953 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> options = 0 );
-<a name="l00954"></a>00954
-<a name="l00956"></a>00956
-<a name="l00957"></a>00957 <span class="comment">// =============================================================================================</span>
-<a name="l00958"></a>00958
-<a name="l00959"></a>00959 <span class="keyword">private</span>:
-<a name="l00960"></a>00960
-<a name="l00961"></a>00961 <span class="keyword">static</span> <span class="keywordtype">void</span> SetClientString ( <span class="keywordtype">void</span> * clientPtr, <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> valuePtr, <a class="code" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a" title="The type for string length parameters. A 32-bit unsigned integer, as big as will...">XMP_StringLen</a> valueLen );
-<a name="l00962"></a>00962
-<a name="l00963"></a>00963 }; <span class="comment">// class TXMPUtils</span>
-<a name="l00964"></a>00964
-<a name="l00965"></a>00965 <span class="comment">// =================================================================================================</span>
-<a name="l00966"></a>00966
-<a name="l00967"></a>00967 <span class="preprocessor">#endif // __TXMPUtils_hpp__</span>
-</pre></div></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('TXMPUtils_8hpp_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">TXMPUtils.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="TXMPUtils_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __TXMPUtils_hpp__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __TXMPUtils_hpp__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#if ( ! __XMP_hpp__ )</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor"> #error &quot;Do not directly include, use XMP.hpp&quot;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// ADOBE SYSTEMS INCORPORATED</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// Copyright 2002 Adobe Systems Incorporated</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// All Rights Reserved</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"></span><span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment"></span><span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> tStringObj&gt; <span class="keyword">class </span><a class="code" href="classTXMPUtils.html">TXMPUtils</a> {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="comment">// =============================================================================================</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="comment">// No constructors or destructor declared or needed</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="comment">// ================================================</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="comment">// ============================================================================================</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#a47fa195aa2e1457aa1f74f7e1ed06da6">ComposeArrayItemPath</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName,</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a> itemIndex,</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; tStringObj * fullPath );</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#a706eb85b8401b8682a01348f7e25ee3d">ComposeStructFieldPath</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> structName,</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldNS,</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldName,</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; tStringObj * fullPath );</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#a40ae0ce2065fcb71725e37137884e172">ComposeQualifierPath</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualNS,</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualName,</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; tStringObj * fullPath );</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#ae4989e5c199a2a4287ee3ae89b872e69">ComposeLangSelector</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName,</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> langName,</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; tStringObj * fullPath );</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#ae4989e5c199a2a4287ee3ae89b872e69">ComposeLangSelector</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName,</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keyword">const</span> tStringObj &amp; langName,</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; tStringObj * fullPath );</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#a458f8e8729e2334fe54ca8f691a9db23">ComposeFieldSelector</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName,</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldNS,</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldName,</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldValue,</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; tStringObj * fullPath );</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#a458f8e8729e2334fe54ca8f691a9db23">ComposeFieldSelector</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName,</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldNS,</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldName,</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keyword">const</span> tStringObj &amp; fieldValue,</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; tStringObj * fullPath );</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="comment">// =============================================================================================</span></div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#a509691eb270988de6a770c9c8304ab6b">ConvertFromBool</a> ( <span class="keywordtype">bool</span> binValue,</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; tStringObj * strValue );</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#aeec45b4d1a26717290105c9f4e8b4235">ConvertFromInt</a> ( <span class="keywordtype">long</span> binValue,</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> format,</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; tStringObj * strValue );</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#aeae4617e05358433015eaa80953c5e60">ConvertFromInt64</a> ( <span class="keywordtype">long</span> <span class="keywordtype">long</span> binValue,</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> format,</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; tStringObj * strValue );</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#ae67ef3931836432b7e574832f0610ed0">ConvertFromFloat</a> ( <span class="keywordtype">double</span> binValue,</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> format,</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; tStringObj * strValue );</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#a6146a522a3974b4088d6e8241e9cd223">ConvertFromDate</a> ( <span class="keyword">const</span> <a class="code" href="structXMP__DateTime.html">XMP_DateTime</a> &amp; binValue,</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; tStringObj * strValue );</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classTXMPUtils.html#aaaaaadb23f4089daa795f50cba4f405c">ConvertToBool</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> strValue );</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classTXMPUtils.html#aaaaaadb23f4089daa795f50cba4f405c">ConvertToBool</a> ( <span class="keyword">const</span> tStringObj &amp; strValue );</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keyword">static</span> <span class="keywordtype">long</span> <a class="code" href="classTXMPUtils.html#adfd9d1c522377d5db4ad667a7973ba00">ConvertToInt</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> strValue );</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="keyword">static</span> <span class="keywordtype">long</span> <a class="code" href="classTXMPUtils.html#adfd9d1c522377d5db4ad667a7973ba00">ConvertToInt</a> ( <span class="keyword">const</span> tStringObj &amp; strValue );</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keyword">static</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> <a class="code" href="classTXMPUtils.html#abe5d2dcc03c5442202203bba5ca7b172">ConvertToInt64</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> strValue );</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="keyword">static</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> <a class="code" href="classTXMPUtils.html#abe5d2dcc03c5442202203bba5ca7b172">ConvertToInt64</a> ( <span class="keyword">const</span> tStringObj &amp; strValue );</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keyword">static</span> <span class="keywordtype">double</span> <a class="code" href="classTXMPUtils.html#a8a507b006286460814e0486c622d828c">ConvertToFloat</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> strValue );</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="keyword">static</span> <span class="keywordtype">double</span> <a class="code" href="classTXMPUtils.html#a8a507b006286460814e0486c622d828c">ConvertToFloat</a> ( <span class="keyword">const</span> tStringObj &amp; strValue );</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#a60d33e6ce30286028acca47b2b6e7a0b">ConvertToDate</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> strValue,</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <a class="code" href="structXMP__DateTime.html">XMP_DateTime</a> * binValue );</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#a60d33e6ce30286028acca47b2b6e7a0b">ConvertToDate</a> ( <span class="keyword">const</span> tStringObj &amp; strValue,</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; <a class="code" href="structXMP__DateTime.html">XMP_DateTime</a> * binValue );</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160;</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <span class="comment">// =============================================================================================</span></div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#ac83f0b963ea64d7eee0b481e15a8439c">CurrentDateTime</a> ( <a class="code" href="structXMP__DateTime.html">XMP_DateTime</a> * time );</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#a96bcc45febac55f6c49951815b7de2ef">SetTimeZone</a> ( <a class="code" href="structXMP__DateTime.html">XMP_DateTime</a> * time );</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#abbd4d691c83287ea2fc6b1e33e5858b8">ConvertToUTCTime</a> ( <a class="code" href="structXMP__DateTime.html">XMP_DateTime</a> * time );</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#a61852aaba494c8fbad5a6c0c4caf21f5">ConvertToLocalTime</a> ( <a class="code" href="structXMP__DateTime.html">XMP_DateTime</a> * time );</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160;</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classTXMPUtils.html#a9fc7f1771032f59f9020aeda4f91991d">CompareDateTime</a> ( <span class="keyword">const</span> <a class="code" href="structXMP__DateTime.html">XMP_DateTime</a> &amp; left,</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; <span class="keyword">const</span> <a class="code" href="structXMP__DateTime.html">XMP_DateTime</a> &amp; right );</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160;</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; <span class="comment">// =============================================================================================</span></div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#aef3b23bbc152480f699e269620ecad4a">EncodeToBase64</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> rawStr,</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; <a class="code" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> rawLen,</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; tStringObj * encodedStr );</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#aef3b23bbc152480f699e269620ecad4a">EncodeToBase64</a> ( <span class="keyword">const</span> tStringObj &amp; rawStr,</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; tStringObj * encodedStr );</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#ae5bdd91c0c3ee9262dc0a8b9f591b921">DecodeFromBase64</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> encodedStr,</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; <a class="code" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> encodedLen,</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; tStringObj * rawStr );</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160;</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#ae5bdd91c0c3ee9262dc0a8b9f591b921">DecodeFromBase64</a> ( <span class="keyword">const</span> tStringObj &amp; encodedStr,</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; tStringObj * rawStr );</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160;</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160;</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; <span class="comment">// =============================================================================================</span></div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; <span class="comment">// =============================================================================================</span></div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#a6001b4ff54c60fdf0c40e6b78a5c457a">PackageForJPEG</a> ( <span class="keyword">const</span> <a class="code" href="classTXMPMeta.html">TXMPMeta&lt;tStringObj&gt;</a> &amp; xmpObj,</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; tStringObj * standardXMP,</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; tStringObj * extendedXMP,</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; tStringObj * extendedDigest );</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160;</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#a6187cd5fef0eccecac6805d4114dcd2e">MergeFromJPEG</a> ( <a class="code" href="classTXMPMeta.html">TXMPMeta&lt;tStringObj&gt;</a> * fullXMP,</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; <span class="keyword">const</span> <a class="code" href="classTXMPMeta.html">TXMPMeta&lt;tStringObj&gt;</a> &amp; extendedXMP );</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160;</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; <span class="comment">// =============================================================================================</span></div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#ad7e1aa7928252fb88a24fb5c3aef22ba">CatenateArrayItems</a> ( <span class="keyword">const</span> <a class="code" href="classTXMPMeta.html">TXMPMeta&lt;tStringObj&gt;</a> &amp; xmpObj,</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName,</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> separator,</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> quotes,</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options,</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; tStringObj * catedStr );</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160;</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#a66c5ddee47aa36ed906353f94ca18d2e">SeparateArrayItems</a> ( <a class="code" href="classTXMPMeta.html">TXMPMeta&lt;tStringObj&gt;</a> * xmpObj,</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName,</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options,</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> catedStr );</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160;</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#a66c5ddee47aa36ed906353f94ca18d2e">SeparateArrayItems</a> ( <a class="code" href="classTXMPMeta.html">TXMPMeta&lt;tStringObj&gt;</a> * xmpObj,</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName,</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options,</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; <span class="keyword">const</span> tStringObj &amp; catedStr );</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160;</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160;</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160;</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#ab73bfa15116e6d702044542e0a43cce9">ApplyTemplate</a> ( <a class="code" href="classTXMPMeta.html">TXMPMeta&lt;tStringObj&gt;</a> * workingXMP,</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; <span class="keyword">const</span> <a class="code" href="classTXMPMeta.html">TXMPMeta&lt;tStringObj&gt;</a> &amp; templateXMP,</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> actions );</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160;</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#a40c645803530662e08d042b4b7c6190d">RemoveProperties</a> ( <a class="code" href="classTXMPMeta.html">TXMPMeta&lt;tStringObj&gt;</a> * xmpObj,</div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS = 0,</div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName = 0,</div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options = 0 );</div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160;</div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#aa17838f062e5414bc0929f67ac94a3aa">DuplicateSubtree</a> ( <span class="keyword">const</span> <a class="code" href="classTXMPMeta.html">TXMPMeta&lt;tStringObj&gt;</a> &amp; source,</div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160; <a class="code" href="classTXMPMeta.html">TXMPMeta&lt;tStringObj&gt;</a> * dest,</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> sourceNS,</div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> sourceRoot,</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> destNS = 0,</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> destRoot = 0,</div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options = 0 );</div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160;</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160;</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; <span class="comment">// =============================================================================================</span></div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160;</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160;</div><div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPUtils.html#aa9bc319ae425f1e371a3c188b1f9010c">SetClientString</a> ( <span class="keywordtype">void</span> * clientPtr, <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> valuePtr, <a class="code" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> valueLen );</div><div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160;</div><div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160;}; <span class="comment">// class TXMPUtils</span></div><div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160;</div><div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160;</div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160;<span class="preprocessor">#endif // __TXMPUtils_hpp__</span></div><div class="ttc" id="XMP__Const_8h_html_a9f7dcc184f901c713274edfdac5bcc9a"><div class="ttname"><a href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a></div><div class="ttdeci">XMP_Uns32 XMP_StringLen</div><div class="ttdoc">The type for string length parameters. A 32-bit unsigned integer, as big as will be practically neede...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00170">XMP_Const.h:170</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a00e9d9a76c144421105a4c2742203315"><div class="ttname"><a href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a></div><div class="ttdeci">XMP_Int32 XMP_Index</div><div class="ttdoc">The type for offsets and indices. A 32-bit signed integer. It is signed to allow -1 for loop terminat...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00171">XMP_Const.h:171</a></div></div>
+<div class="ttc" id="classTXMPUtils_html_ab73bfa15116e6d702044542e0a43cce9"><div class="ttname"><a href="classTXMPUtils.html#ab73bfa15116e6d702044542e0a43cce9">TXMPUtils::ApplyTemplate</a></div><div class="ttdeci">static void ApplyTemplate(TXMPMeta&lt; tStringObj &gt; *workingXMP, const TXMPMeta&lt; tStringObj &gt; &amp;templateXMP, XMP_OptionBits actions)</div><div class="ttdoc">ApplyTemplate() modifies a working XMP object according to a template object. </div></div>
+<div class="ttc" id="XMP__Const_8h_html_ad439e3ceeb4590d310f6125aa12c6df6"><div class="ttname"><a href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a></div><div class="ttdeci">const char * XMP_StringPtr</div><div class="ttdoc">The type for input string parameters. A const char *, a null-terminated UTF-8 string. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00169">XMP_Const.h:169</a></div></div>
+<div class="ttc" id="classTXMPUtils_html_a47fa195aa2e1457aa1f74f7e1ed06da6"><div class="ttname"><a href="classTXMPUtils.html#a47fa195aa2e1457aa1f74f7e1ed06da6">TXMPUtils::ComposeArrayItemPath</a></div><div class="ttdeci">static void ComposeArrayItemPath(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_Index itemIndex, tStringObj *fullPath)</div><div class="ttdoc">ComposeArrayItemPath() composes the path expression for an item in an array. </div></div>
+<div class="ttc" id="classTXMPUtils_html_a40c645803530662e08d042b4b7c6190d"><div class="ttname"><a href="classTXMPUtils.html#a40c645803530662e08d042b4b7c6190d">TXMPUtils::RemoveProperties</a></div><div class="ttdeci">static void RemoveProperties(TXMPMeta&lt; tStringObj &gt; *xmpObj, XMP_StringPtr schemaNS=0, XMP_StringPtr propName=0, XMP_OptionBits options=0)</div><div class="ttdoc">RemoveProperties() removes multiple properties from an XMP object. </div></div>
+<div class="ttc" id="classTXMPUtils_html_aeec45b4d1a26717290105c9f4e8b4235"><div class="ttname"><a href="classTXMPUtils.html#aeec45b4d1a26717290105c9f4e8b4235">TXMPUtils::ConvertFromInt</a></div><div class="ttdeci">static void ConvertFromInt(long binValue, XMP_StringPtr format, tStringObj *strValue)</div><div class="ttdoc">ConvertFromInt() converts a 32-bit integer value to a string. </div></div>
+<div class="ttc" id="classTXMPUtils_html_a6001b4ff54c60fdf0c40e6b78a5c457a"><div class="ttname"><a href="classTXMPUtils.html#a6001b4ff54c60fdf0c40e6b78a5c457a">TXMPUtils::PackageForJPEG</a></div><div class="ttdeci">static void PackageForJPEG(const TXMPMeta&lt; tStringObj &gt; &amp;xmpObj, tStringObj *standardXMP, tStringObj *extendedXMP, tStringObj *extendedDigest)</div><div class="ttdoc">PackageForJPEG() creates XMP serializations appropriate for a JPEG file. </div></div>
+<div class="ttc" id="classTXMPUtils_html_aa9bc319ae425f1e371a3c188b1f9010c"><div class="ttname"><a href="classTXMPUtils.html#aa9bc319ae425f1e371a3c188b1f9010c">TXMPUtils::SetClientString</a></div><div class="ttdeci">static void SetClientString(void *clientPtr, XMP_StringPtr valuePtr, XMP_StringLen valueLen)</div></div>
+<div class="ttc" id="classTXMPUtils_html_a60d33e6ce30286028acca47b2b6e7a0b"><div class="ttname"><a href="classTXMPUtils.html#a60d33e6ce30286028acca47b2b6e7a0b">TXMPUtils::ConvertToDate</a></div><div class="ttdeci">static void ConvertToDate(XMP_StringPtr strValue, XMP_DateTime *binValue)</div><div class="ttdoc">ConvertToDate() converts a string to a date/time value. </div></div>
+<div class="ttc" id="classTXMPUtils_html_aef3b23bbc152480f699e269620ecad4a"><div class="ttname"><a href="classTXMPUtils.html#aef3b23bbc152480f699e269620ecad4a">TXMPUtils::EncodeToBase64</a></div><div class="ttdeci">static void EncodeToBase64(XMP_StringPtr rawStr, XMP_StringLen rawLen, tStringObj *encodedStr)</div><div class="ttdoc">These functions convert between raw data values and Base64-encoded strings. </div></div>
+<div class="ttc" id="classTXMPUtils_html_a8a507b006286460814e0486c622d828c"><div class="ttname"><a href="classTXMPUtils.html#a8a507b006286460814e0486c622d828c">TXMPUtils::ConvertToFloat</a></div><div class="ttdeci">static double ConvertToFloat(XMP_StringPtr strValue)</div><div class="ttdoc">ConvertToFloat() converts a string to a floating-point value. </div></div>
+<div class="ttc" id="classTXMPUtils_html_abe5d2dcc03c5442202203bba5ca7b172"><div class="ttname"><a href="classTXMPUtils.html#abe5d2dcc03c5442202203bba5ca7b172">TXMPUtils::ConvertToInt64</a></div><div class="ttdeci">static long long ConvertToInt64(XMP_StringPtr strValue)</div><div class="ttdoc">ConvertToInt64() converts a string to a 64-bit integer value. </div></div>
+<div class="ttc" id="classTXMPUtils_html_a6187cd5fef0eccecac6805d4114dcd2e"><div class="ttname"><a href="classTXMPUtils.html#a6187cd5fef0eccecac6805d4114dcd2e">TXMPUtils::MergeFromJPEG</a></div><div class="ttdeci">static void MergeFromJPEG(TXMPMeta&lt; tStringObj &gt; *fullXMP, const TXMPMeta&lt; tStringObj &gt; &amp;extendedXMP)</div><div class="ttdoc">MergeFromJPEG() merges standard and extended XMP retrieved from a JPEG file. </div></div>
+<div class="ttc" id="structXMP__DateTime_html"><div class="ttname"><a href="structXMP__DateTime.html">XMP_DateTime</a></div><div class="ttdoc">The expanded type for a date and time. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00223">XMP_Const.h:223</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_aeb865118433be92d88e5f49ed11487c8"><div class="ttname"><a href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a></div><div class="ttdeci">XMP_Uns32 XMP_OptionBits</div><div class="ttdoc">The type for a collection of 32 flag bits. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00172">XMP_Const.h:172</a></div></div>
+<div class="ttc" id="classTXMPUtils_html_adfd9d1c522377d5db4ad667a7973ba00"><div class="ttname"><a href="classTXMPUtils.html#adfd9d1c522377d5db4ad667a7973ba00">TXMPUtils::ConvertToInt</a></div><div class="ttdeci">static long ConvertToInt(XMP_StringPtr strValue)</div><div class="ttdoc">ConvertToInt() converts a string to a 32-bit integer value. </div></div>
+<div class="ttc" id="classTXMPUtils_html_a66c5ddee47aa36ed906353f94ca18d2e"><div class="ttname"><a href="classTXMPUtils.html#a66c5ddee47aa36ed906353f94ca18d2e">TXMPUtils::SeparateArrayItems</a></div><div class="ttdeci">static void SeparateArrayItems(TXMPMeta&lt; tStringObj &gt; *xmpObj, XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_OptionBits options, XMP_StringPtr catedStr)</div><div class="ttdoc">SeparateArrayItems() updates an array from a concatenated edit string of values. </div></div>
+<div class="ttc" id="classTXMPUtils_html_a40ae0ce2065fcb71725e37137884e172"><div class="ttname"><a href="classTXMPUtils.html#a40ae0ce2065fcb71725e37137884e172">TXMPUtils::ComposeQualifierPath</a></div><div class="ttdeci">static void ComposeQualifierPath(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_StringPtr qualNS, XMP_StringPtr qualName, tStringObj *fullPath)</div><div class="ttdoc">ComposeQualifierPath() composes the path expression for a qualifier. </div></div>
+<div class="ttc" id="classTXMPUtils_html_ad7e1aa7928252fb88a24fb5c3aef22ba"><div class="ttname"><a href="classTXMPUtils.html#ad7e1aa7928252fb88a24fb5c3aef22ba">TXMPUtils::CatenateArrayItems</a></div><div class="ttdeci">static void CatenateArrayItems(const TXMPMeta&lt; tStringObj &gt; &amp;xmpObj, XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_StringPtr separator, XMP_StringPtr quotes, XMP_OptionBits options, tStringObj *catedStr)</div><div class="ttdoc">CatenateArrayItems() creates a single edit string from a set of array item values. </div></div>
+<div class="ttc" id="classTXMPUtils_html_a509691eb270988de6a770c9c8304ab6b"><div class="ttname"><a href="classTXMPUtils.html#a509691eb270988de6a770c9c8304ab6b">TXMPUtils::ConvertFromBool</a></div><div class="ttdeci">static void ConvertFromBool(bool binValue, tStringObj *strValue)</div><div class="ttdoc">ConvertFromBool() converts a Boolean value to a string. </div></div>
+<div class="ttc" id="classTXMPUtils_html_a706eb85b8401b8682a01348f7e25ee3d"><div class="ttname"><a href="classTXMPUtils.html#a706eb85b8401b8682a01348f7e25ee3d">TXMPUtils::ComposeStructFieldPath</a></div><div class="ttdeci">static void ComposeStructFieldPath(XMP_StringPtr schemaNS, XMP_StringPtr structName, XMP_StringPtr fieldNS, XMP_StringPtr fieldName, tStringObj *fullPath)</div><div class="ttdoc">ComposeStructFieldPath() composes the path expression for a field in a struct. </div></div>
+<div class="ttc" id="classTXMPUtils_html_aeae4617e05358433015eaa80953c5e60"><div class="ttname"><a href="classTXMPUtils.html#aeae4617e05358433015eaa80953c5e60">TXMPUtils::ConvertFromInt64</a></div><div class="ttdeci">static void ConvertFromInt64(long long binValue, XMP_StringPtr format, tStringObj *strValue)</div><div class="ttdoc">ConvertFromInt64() converts a 64-bit integer value to a string. </div></div>
+<div class="ttc" id="classTXMPUtils_html"><div class="ttname"><a href="classTXMPUtils.html">TXMPUtils</a></div><div class="ttdoc">API for access to the XMP Toolkit utility services. </div><div class="ttdef"><b>Definition:</b> <a href="TXMPMeta_8hpp_source.html#l00051">TXMPMeta.hpp:51</a></div></div>
+<div class="ttc" id="classTXMPUtils_html_a96bcc45febac55f6c49951815b7de2ef"><div class="ttname"><a href="classTXMPUtils.html#a96bcc45febac55f6c49951815b7de2ef">TXMPUtils::SetTimeZone</a></div><div class="ttdeci">static void SetTimeZone(XMP_DateTime *time)</div><div class="ttdoc">SetTimeZone() sets the time zone in a date/time value to the local time zone. </div></div>
+<div class="ttc" id="classTXMPUtils_html_ae4989e5c199a2a4287ee3ae89b872e69"><div class="ttname"><a href="classTXMPUtils.html#ae4989e5c199a2a4287ee3ae89b872e69">TXMPUtils::ComposeLangSelector</a></div><div class="ttdeci">static void ComposeLangSelector(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_StringPtr langName, tStringObj *fullPath)</div><div class="ttdoc">ComposeLangSelector() composes the path expression to select an alternate item by language...</div></div>
+<div class="ttc" id="classTXMPUtils_html_a61852aaba494c8fbad5a6c0c4caf21f5"><div class="ttname"><a href="classTXMPUtils.html#a61852aaba494c8fbad5a6c0c4caf21f5">TXMPUtils::ConvertToLocalTime</a></div><div class="ttdeci">static void ConvertToLocalTime(XMP_DateTime *time)</div><div class="ttdoc">ConvertToLocalTime() ensures that a time is local. </div></div>
+<div class="ttc" id="classTXMPUtils_html_ac83f0b963ea64d7eee0b481e15a8439c"><div class="ttname"><a href="classTXMPUtils.html#ac83f0b963ea64d7eee0b481e15a8439c">TXMPUtils::CurrentDateTime</a></div><div class="ttdeci">static void CurrentDateTime(XMP_DateTime *time)</div><div class="ttdoc">CurrentDateTime() obtains the current date and time. </div></div>
+<div class="ttc" id="classTXMPUtils_html_aaaaaadb23f4089daa795f50cba4f405c"><div class="ttname"><a href="classTXMPUtils.html#aaaaaadb23f4089daa795f50cba4f405c">TXMPUtils::ConvertToBool</a></div><div class="ttdeci">static bool ConvertToBool(XMP_StringPtr strValue)</div><div class="ttdoc">ConvertToBool() converts a string to a Boolean value. </div></div>
+<div class="ttc" id="classTXMPUtils_html_a6146a522a3974b4088d6e8241e9cd223"><div class="ttname"><a href="classTXMPUtils.html#a6146a522a3974b4088d6e8241e9cd223">TXMPUtils::ConvertFromDate</a></div><div class="ttdeci">static void ConvertFromDate(const XMP_DateTime &amp;binValue, tStringObj *strValue)</div><div class="ttdoc">ConvertFromDate() converts a date/time value to a string. </div></div>
+<div class="ttc" id="classTXMPUtils_html_aa17838f062e5414bc0929f67ac94a3aa"><div class="ttname"><a href="classTXMPUtils.html#aa17838f062e5414bc0929f67ac94a3aa">TXMPUtils::DuplicateSubtree</a></div><div class="ttdeci">static void DuplicateSubtree(const TXMPMeta&lt; tStringObj &gt; &amp;source, TXMPMeta&lt; tStringObj &gt; *dest, XMP_StringPtr sourceNS, XMP_StringPtr sourceRoot, XMP_StringPtr destNS=0, XMP_StringPtr destRoot=0, XMP_OptionBits options=0)</div><div class="ttdoc">DuplicateSubtree() replicates a subtree from one XMP object into another. </div></div>
+<div class="ttc" id="classTXMPUtils_html_abbd4d691c83287ea2fc6b1e33e5858b8"><div class="ttname"><a href="classTXMPUtils.html#abbd4d691c83287ea2fc6b1e33e5858b8">TXMPUtils::ConvertToUTCTime</a></div><div class="ttdeci">static void ConvertToUTCTime(XMP_DateTime *time)</div><div class="ttdoc">ConvertToUTCTime() ensures that a time is UTC. </div></div>
+<div class="ttc" id="classTXMPUtils_html_a458f8e8729e2334fe54ca8f691a9db23"><div class="ttname"><a href="classTXMPUtils.html#a458f8e8729e2334fe54ca8f691a9db23">TXMPUtils::ComposeFieldSelector</a></div><div class="ttdeci">static void ComposeFieldSelector(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_StringPtr fieldNS, XMP_StringPtr fieldName, XMP_StringPtr fieldValue, tStringObj *fullPath)</div><div class="ttdoc">ComposeFieldSelector() composes a path expression to select an alternate item by a field&amp;#39;s value...</div></div>
+<div class="ttc" id="classTXMPUtils_html_ae5bdd91c0c3ee9262dc0a8b9f591b921"><div class="ttname"><a href="classTXMPUtils.html#ae5bdd91c0c3ee9262dc0a8b9f591b921">TXMPUtils::DecodeFromBase64</a></div><div class="ttdeci">static void DecodeFromBase64(XMP_StringPtr encodedStr, XMP_StringLen encodedLen, tStringObj *rawStr)</div><div class="ttdoc">DecodeFromBase64() Decodes a Base64-encoded string to raw data. </div></div>
+<div class="ttc" id="classTXMPUtils_html_ae67ef3931836432b7e574832f0610ed0"><div class="ttname"><a href="classTXMPUtils.html#ae67ef3931836432b7e574832f0610ed0">TXMPUtils::ConvertFromFloat</a></div><div class="ttdeci">static void ConvertFromFloat(double binValue, XMP_StringPtr format, tStringObj *strValue)</div><div class="ttdoc">ConvertFromFloat() converts a floating-point value to a string. </div></div>
+<div class="ttc" id="classTXMPUtils_html_a9fc7f1771032f59f9020aeda4f91991d"><div class="ttname"><a href="classTXMPUtils.html#a9fc7f1771032f59f9020aeda4f91991d">TXMPUtils::CompareDateTime</a></div><div class="ttdeci">static int CompareDateTime(const XMP_DateTime &amp;left, const XMP_DateTime &amp;right)</div><div class="ttdoc">CompareDateTime() compares the order of two date/time values. </div></div>
+<div class="ttc" id="classTXMPMeta_html"><div class="ttname"><a href="classTXMPMeta.html">TXMPMeta</a></div><div class="ttdoc">API for access to the XMP Toolkit core services. </div><div class="ttdef"><b>Definition:</b> <a href="TXMPMeta_8hpp_source.html#l00055">TXMPMeta.hpp:55</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
</body>
</html>
diff --git a/docs/API/TXMPUtils_8incl__cpp.html b/docs/API/TXMPUtils_8incl__cpp.html
deleted file mode 100644
index d8d1ed3..0000000
--- a/docs/API/TXMPUtils_8incl__cpp.html
+++ /dev/null
@@ -1,85 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: TXMPUtils.incl_cpp File Reference</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
-<link href="tabs.css" rel="stylesheet" type="text/css">
-</head><body>
-<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
- <li><a href="annotated.html"><span>Classes</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li><a href="files.html"><span>File&nbsp;List</span></a></li>
- <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
- </ul>
- </div>
-</div>
-<div class="contents">
-<h1>TXMPUtils.incl_cpp File Reference</h1>
-<p>The implementation of the <a class="el" href="classTXMPUtils.html" title="API for access to the XMP Toolkit utility services.">TXMPUtils</a> template class.
-<a href="#_details">More...</a></p>
-<code>#include &quot;XMP.hpp&quot;</code><br/>
-<code>#include &quot;client-glue/WXMP_Common.hpp&quot;</code><br/>
-<code>#include &quot;client-glue/WXMPUtils.hpp&quot;</code><br/>
-<div class="dynheader">
-Include dependency graph for TXMPUtils.incl_cpp:</div>
-<div class="dynsection">
-<div class="center"><img src="TXMPUtils_8incl__cpp__incl.png" border="0" usemap="#TXMPUtils_8incl__cpp_map" alt=""/></div>
-</div>
-<table border="0" cellpadding="0" cellspacing="0">
-</table>
-<hr/><a name="_details"></a><h2>Detailed Description</h2>
-<p>The implementation of the <a class="el" href="classTXMPUtils.html" title="API for access to the XMP Toolkit utility services.">TXMPUtils</a> template class. </p>
-</div>
-<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
-</body>
-</html>
diff --git a/docs/API/TXMPUtils_8incl__cpp__incl.png b/docs/API/TXMPUtils_8incl__cpp__incl.png
deleted file mode 100644
index edcb7c4..0000000
--- a/docs/API/TXMPUtils_8incl__cpp__incl.png
+++ /dev/null
Binary files differ
diff --git a/docs/API/Thumbs.db b/docs/API/Thumbs.db
new file mode 100755
index 0000000..4015e5f
--- /dev/null
+++ b/docs/API/Thumbs.db
Binary files differ
diff --git a/docs/API/WXMPFiles_8hpp.html b/docs/API/WXMPFiles_8hpp.html
new file mode 100755
index 0000000..2de4d9a
--- /dev/null
+++ b/docs/API/WXMPFiles_8hpp.html
@@ -0,0 +1,1923 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/client-glue/WXMPFiles.hpp File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('WXMPFiles_8hpp.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#define-members">Macros</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">WXMPFiles.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>High level support to access metadata in files of interest to Adobe applications.
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &quot;<a class="el" href="WXMP__Common_8hpp_source.html">client-glue/WXMP_Common.hpp</a>&quot;</code><br />
+</div>
+<p><a href="WXMPFiles_8hpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a1411fd7ac45a5f6fa362977c962f6234"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#a1411fd7ac45a5f6fa362977c962f6234">WrapCheckXMPFilesRef</a>(result, WCallProto)</td></tr>
+<tr class="separator:a1411fd7ac45a5f6fa362977c962f6234"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1c07156ac21d3ccd800fbd540fa1894b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#a1c07156ac21d3ccd800fbd540fa1894b">zXMPFiles_GetVersionInfo_1</a>(versionInfo)&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#a96877191902363ca391c357b0bdeedf4">WXMPFiles_GetVersionInfo_1</a> ( versionInfo /* no wResult */ )</td></tr>
+<tr class="separator:a1c07156ac21d3ccd800fbd540fa1894b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa4bd33393eec73960abad65df45555e1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#aa4bd33393eec73960abad65df45555e1">zXMPFiles_Initialize_1</a>(options)&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#a81794d63d62975b313aff0f869c7dded">WXMPFiles_Initialize_1</a> ( options, &amp;wResult )</td></tr>
+<tr class="separator:aa4bd33393eec73960abad65df45555e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3d2fb0bb2d758c818c2d7a544e89235b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#a3d2fb0bb2d758c818c2d7a544e89235b">zXMPFiles_Initialize_2</a>(options, pluginFolder, plugins)&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#a39fce6bafe20c2847a288c6bded9dcc8">WXMPFiles_Initialize_2</a> ( options, pluginFolder, plugins, &amp;wResult )</td></tr>
+<tr class="separator:a3d2fb0bb2d758c818c2d7a544e89235b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a08126268000561c2c10af0f0a8226dce"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#a08126268000561c2c10af0f0a8226dce">zXMPFiles_Terminate_1</a>()&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#a80f57c97820f7c86ddfccd2814b2c973">WXMPFiles_Terminate_1</a> ( /* no wResult */ )</td></tr>
+<tr class="separator:a08126268000561c2c10af0f0a8226dce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab5ad690470439e4813284756971a606e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#ab5ad690470439e4813284756971a606e">zXMPFiles_CTor_1</a>()&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#a973b744c33e9a06d56f8b6b3a06394a4">WXMPFiles_CTor_1</a> ( &amp;wResult )</td></tr>
+<tr class="separator:ab5ad690470439e4813284756971a606e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a22159932057a32ae1b7438a4cb38b061"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#a22159932057a32ae1b7438a4cb38b061">zXMPFiles_GetFormatInfo_1</a>(format, flags)&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#a71037373c70c18a183c7a9ee7f7babc9">WXMPFiles_GetFormatInfo_1</a> ( format, flags, &amp;wResult )</td></tr>
+<tr class="separator:a22159932057a32ae1b7438a4cb38b061"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a91589c63b3c0c034e11c60a4eaaa3de1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#a91589c63b3c0c034e11c60a4eaaa3de1">zXMPFiles_CheckFileFormat_1</a>(filePath)&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#a793167f4d653d6f573dc0f4c4f07b298">WXMPFiles_CheckFileFormat_1</a> ( filePath, &amp;wResult )</td></tr>
+<tr class="separator:a91589c63b3c0c034e11c60a4eaaa3de1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5138829cfbf5712d5afe85109a253de7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#a5138829cfbf5712d5afe85109a253de7">zXMPFiles_CheckPackageFormat_1</a>(folderPath)&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#a0cbf8fcfb5d011fa62c6409a2cd84ede">WXMPFiles_CheckPackageFormat_1</a> ( folderPath, &amp;wResult )</td></tr>
+<tr class="separator:a5138829cfbf5712d5afe85109a253de7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc6b46974e9108cde02b74f5b7a6fb97"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#afc6b46974e9108cde02b74f5b7a6fb97">zXMPFiles_GetFileModDate_1</a>(filePath, modDate, format, options)&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#aefdd49820e9bfede87457429d519c8d2">WXMPFiles_GetFileModDate_1</a> ( filePath, modDate, format, options, &amp;wResult )</td></tr>
+<tr class="separator:afc6b46974e9108cde02b74f5b7a6fb97"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a388f91a00251ec7b9d9dfcf60a5663a0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#a388f91a00251ec7b9d9dfcf60a5663a0">zXMPFiles_GetAssociatedResources_1</a>(filePath, resourceList, format, options, SetClientStringVector)&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#af963f839791b4de926e42680c091af32">WXMPFiles_GetAssociatedResources_1</a> ( filePath, resourceList, format, options, SetClientStringVector, &amp;wResult )</td></tr>
+<tr class="separator:a388f91a00251ec7b9d9dfcf60a5663a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a306bb7b988eec6378c2a9fc487caf617"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#a306bb7b988eec6378c2a9fc487caf617">zXMPFiles_IsMetadataWritable_1</a>(filePath, writable, format, options)&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#a5bfb800ea6bf214b5ac4853e2cfff3cc">WXMPFiles_IsMetadataWritable_1</a> ( filePath, writable, format, options, &amp;wResult )</td></tr>
+<tr class="separator:a306bb7b988eec6378c2a9fc487caf617"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8a739d2d110756df76a6560bf024d7db"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#a8a739d2d110756df76a6560bf024d7db">zXMPFiles_OpenFile_1</a>(filePath, format, openFlags)&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#a58e70573d754cc63966da6fc3fc70a91">WXMPFiles_OpenFile_1</a> ( this-&gt;xmpFilesRef, filePath, format, openFlags, &amp;wResult )</td></tr>
+<tr class="separator:a8a739d2d110756df76a6560bf024d7db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aae01191749d7b0e1b4700516d3a263cf"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#aae01191749d7b0e1b4700516d3a263cf">zXMPFiles_CloseFile_1</a>(closeFlags)&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#a2484fe15e37f4f2644f3568be0c7690e">WXMPFiles_CloseFile_1</a> ( this-&gt;xmpFilesRef, closeFlags, &amp;wResult )</td></tr>
+<tr class="separator:aae01191749d7b0e1b4700516d3a263cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab479175bf8e053d15f94561b681b127a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#ab479175bf8e053d15f94561b681b127a">zXMPFiles_GetFileInfo_1</a>(clientPath, openFlags, format, handlerFlags, SetClientString)&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#a661d52226bb7f7bffb8f9a053721dcab">WXMPFiles_GetFileInfo_1</a> ( this-&gt;xmpFilesRef, clientPath, openFlags, format, handlerFlags, SetClientString, &amp;wResult )</td></tr>
+<tr class="separator:ab479175bf8e053d15f94561b681b127a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaeee52c59e243c3aec3a1f155052cda7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#aaeee52c59e243c3aec3a1f155052cda7">zXMPFiles_SetAbortProc_1</a>(abortProc, abortArg)&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#a3334dd84b04167cc3ae55c77a67f9b2a">WXMPFiles_SetAbortProc_1</a> ( this-&gt;xmpFilesRef, abortProc, abortArg, &amp;wResult )</td></tr>
+<tr class="separator:aaeee52c59e243c3aec3a1f155052cda7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5fdbbcc0de3c2b6c8c67c355bc2b73ef"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#a5fdbbcc0de3c2b6c8c67c355bc2b73ef">zXMPFiles_GetXMP_1</a>(xmpRef, clientPacket, packetInfo, SetClientString)&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#afd223e1c41a44dadcf1e4e9ab765ba7a">WXMPFiles_GetXMP_1</a> ( this-&gt;xmpFilesRef, xmpRef, clientPacket, packetInfo, SetClientString, &amp;wResult )</td></tr>
+<tr class="separator:a5fdbbcc0de3c2b6c8c67c355bc2b73ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1d4f17626f5426e949d89a826b47e139"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#a1d4f17626f5426e949d89a826b47e139">zXMPFiles_PutXMP_1</a>(xmpRef, xmpPacket, xmpPacketLen)&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#aba40b211c434f8265c102c9ad3e801b5">WXMPFiles_PutXMP_1</a> ( this-&gt;xmpFilesRef, xmpRef, xmpPacket, xmpPacketLen, &amp;wResult )</td></tr>
+<tr class="separator:a1d4f17626f5426e949d89a826b47e139"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5c8a9971542af98048b1a19b73d65310"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#a5c8a9971542af98048b1a19b73d65310">zXMPFiles_CanPutXMP_1</a>(xmpRef, xmpPacket, xmpPacketLen)&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#a2ef5dde7ef08bd1c25ffc1950e6b93d5">WXMPFiles_CanPutXMP_1</a> ( this-&gt;xmpFilesRef, xmpRef, xmpPacket, xmpPacketLen, &amp;wResult )</td></tr>
+<tr class="separator:a5c8a9971542af98048b1a19b73d65310"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4fcbcba3b02b01ab8f0e34d4d9db2e81"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#a4fcbcba3b02b01ab8f0e34d4d9db2e81">zXMPFiles_SetDefaultProgressCallback_1</a>(proc, context, interval, sendStartStop)&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#a077600358a735f85573174499356f0c1">WXMPFiles_SetDefaultProgressCallback_1</a> ( <a class="el" href="WXMPFiles_8hpp.html#a595767f50ed53071f5240a94596a3451">WrapProgressReport</a>, proc, context, interval, sendStartStop, &amp;wResult )</td></tr>
+<tr class="separator:a4fcbcba3b02b01ab8f0e34d4d9db2e81"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a226c2df14f357c12de0503e64d9d14f0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#a226c2df14f357c12de0503e64d9d14f0">zXMPFiles_SetProgressCallback_1</a>(proc, context, interval, sendStartStop)&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#ae613a8d848ffd06181ef67910ba3dcdd">WXMPFiles_SetProgressCallback_1</a> ( this-&gt;xmpFilesRef, <a class="el" href="WXMPFiles_8hpp.html#a595767f50ed53071f5240a94596a3451">WrapProgressReport</a>, proc, context, interval, sendStartStop, &amp;wResult )</td></tr>
+<tr class="separator:a226c2df14f357c12de0503e64d9d14f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a49db2cb75d6fbed2f76090d9a8fbcd2c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#a49db2cb75d6fbed2f76090d9a8fbcd2c">zXMPFiles_SetDefaultErrorCallback_1</a>(proc, context, limit)&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#a515bb8c705a05236a146cbc7cde59055">WXMPFiles_SetDefaultErrorCallback_1</a> ( <a class="el" href="WXMPFiles_8hpp.html#a06a216001c8aed3b678bc2bbe510f59e">WrapFilesErrorNotify</a>, proc, context, limit, &amp;wResult )</td></tr>
+<tr class="separator:a49db2cb75d6fbed2f76090d9a8fbcd2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adfc59976766bc8cd2bbafcc512ff22e0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#adfc59976766bc8cd2bbafcc512ff22e0">zXMPFiles_SetErrorCallback_1</a>(proc, context, limit)&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#a15b59bc5c4c18355b097b3d0c85ecc3d">WXMPFiles_SetErrorCallback_1</a> ( this-&gt;xmpFilesRef, <a class="el" href="WXMPFiles_8hpp.html#a06a216001c8aed3b678bc2bbe510f59e">WrapFilesErrorNotify</a>, proc, context, limit, &amp;wResult )</td></tr>
+<tr class="separator:adfc59976766bc8cd2bbafcc512ff22e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a98022dc34d13e606183e09b65ec48c46"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#a98022dc34d13e606183e09b65ec48c46">zXMPFiles_ResetErrorCallbackLimit_1</a>(limit)&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#ab91f3a925e6288c7fb1dc459019b3405">WXMPFiles_ResetErrorCallbackLimit_1</a> ( this-&gt;xmpFilesRef, limit, &amp;wResult )</td></tr>
+<tr class="separator:a98022dc34d13e606183e09b65ec48c46"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a595767f50ed53071f5240a94596a3451"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#a595767f50ed53071f5240a94596a3451">WrapProgressReport</a> (<a class="el" href="XMP__Const_8h.html#a01973e700ac2ba7f3debef340ccaa663">XMP_ProgressReportProc</a> proc, void *context, float elapsedTime, float fractionDone, float secondsToGo)</td></tr>
+<tr class="separator:a595767f50ed53071f5240a94596a3451"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a06a216001c8aed3b678bc2bbe510f59e"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#a06a216001c8aed3b678bc2bbe510f59e">WrapFilesErrorNotify</a> (<a class="el" href="XMP__Const_8h.html#a7bed3dd93335821e5afa0ac2b07a9640">XMPFiles_ErrorCallbackProc</a> proc, void *context, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> filePath, <a class="el" href="XMP__Const_8h.html#ae4a7c9347994883250dc440566eb9f52">XMP_ErrorSeverity</a> severity, XMP_Int32 cause, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> message)</td></tr>
+<tr class="separator:a06a216001c8aed3b678bc2bbe510f59e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a96877191902363ca391c357b0bdeedf4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#a96877191902363ca391c357b0bdeedf4">WXMPFiles_GetVersionInfo_1</a> (<a class="el" href="structXMP__VersionInfo.html">XMP_VersionInfo</a> *versionInfo)</td></tr>
+<tr class="separator:a96877191902363ca391c357b0bdeedf4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a81794d63d62975b313aff0f869c7dded"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#a81794d63d62975b313aff0f869c7dded">WXMPFiles_Initialize_1</a> (<a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *result)</td></tr>
+<tr class="separator:a81794d63d62975b313aff0f869c7dded"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a39fce6bafe20c2847a288c6bded9dcc8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#a39fce6bafe20c2847a288c6bded9dcc8">WXMPFiles_Initialize_2</a> (<a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, const char *pluginFolder, const char *plugins, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *result)</td></tr>
+<tr class="separator:a39fce6bafe20c2847a288c6bded9dcc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a80f57c97820f7c86ddfccd2814b2c973"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#a80f57c97820f7c86ddfccd2814b2c973">WXMPFiles_Terminate_1</a> ()</td></tr>
+<tr class="separator:a80f57c97820f7c86ddfccd2814b2c973"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a973b744c33e9a06d56f8b6b3a06394a4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#a973b744c33e9a06d56f8b6b3a06394a4">WXMPFiles_CTor_1</a> (<a class="el" href="structWXMP__Result.html">WXMP_Result</a> *result)</td></tr>
+<tr class="separator:a973b744c33e9a06d56f8b6b3a06394a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abd63a02504b3199ea8bd5484a58ff02c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#abd63a02504b3199ea8bd5484a58ff02c">WXMPFiles_IncrementRefCount_1</a> (<a class="el" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a> xmpFilesRef)</td></tr>
+<tr class="separator:abd63a02504b3199ea8bd5484a58ff02c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7d423602bfc12e20d83a36df777c4c97"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#a7d423602bfc12e20d83a36df777c4c97">WXMPFiles_DecrementRefCount_1</a> (<a class="el" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a> xmpFilesRef)</td></tr>
+<tr class="separator:a7d423602bfc12e20d83a36df777c4c97"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a71037373c70c18a183c7a9ee7f7babc9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#a71037373c70c18a183c7a9ee7f7babc9">WXMPFiles_GetFormatInfo_1</a> (<a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> format, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *flags, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *result)</td></tr>
+<tr class="separator:a71037373c70c18a183c7a9ee7f7babc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a793167f4d653d6f573dc0f4c4f07b298"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#a793167f4d653d6f573dc0f4c4f07b298">WXMPFiles_CheckFileFormat_1</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> filePath, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *result)</td></tr>
+<tr class="separator:a793167f4d653d6f573dc0f4c4f07b298"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0cbf8fcfb5d011fa62c6409a2cd84ede"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#a0cbf8fcfb5d011fa62c6409a2cd84ede">WXMPFiles_CheckPackageFormat_1</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> folderPath, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *result)</td></tr>
+<tr class="separator:a0cbf8fcfb5d011fa62c6409a2cd84ede"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aefdd49820e9bfede87457429d519c8d2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#aefdd49820e9bfede87457429d519c8d2">WXMPFiles_GetFileModDate_1</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> filePath, <a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *modDate, <a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> *format, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *result)</td></tr>
+<tr class="separator:aefdd49820e9bfede87457429d519c8d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af963f839791b4de926e42680c091af32"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#af963f839791b4de926e42680c091af32">WXMPFiles_GetAssociatedResources_1</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> filePath, void *resourceList, <a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> format, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, <a class="el" href="WXMP__Common_8hpp.html#a657cdd79947744b4c123bf9df9ac1b60">SetClientStringVectorProc</a> SetClientStringVector, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *result)</td></tr>
+<tr class="separator:af963f839791b4de926e42680c091af32"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5bfb800ea6bf214b5ac4853e2cfff3cc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#a5bfb800ea6bf214b5ac4853e2cfff3cc">WXMPFiles_IsMetadataWritable_1</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> filePath, <a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a> *writable, <a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> format, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *result)</td></tr>
+<tr class="separator:a5bfb800ea6bf214b5ac4853e2cfff3cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a58e70573d754cc63966da6fc3fc70a91"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#a58e70573d754cc63966da6fc3fc70a91">WXMPFiles_OpenFile_1</a> (<a class="el" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a> xmpFilesRef, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> filePath, <a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> format, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> openFlags, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *result)</td></tr>
+<tr class="separator:a58e70573d754cc63966da6fc3fc70a91"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2484fe15e37f4f2644f3568be0c7690e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#a2484fe15e37f4f2644f3568be0c7690e">WXMPFiles_CloseFile_1</a> (<a class="el" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a> xmpFilesRef, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> closeFlags, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *result)</td></tr>
+<tr class="separator:a2484fe15e37f4f2644f3568be0c7690e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a661d52226bb7f7bffb8f9a053721dcab"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#a661d52226bb7f7bffb8f9a053721dcab">WXMPFiles_GetFileInfo_1</a> (<a class="el" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a> xmpFilesRef, void *clientPath, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *openFlags, <a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> *format, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *handlerFlags, <a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *result)</td></tr>
+<tr class="separator:a661d52226bb7f7bffb8f9a053721dcab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3334dd84b04167cc3ae55c77a67f9b2a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#a3334dd84b04167cc3ae55c77a67f9b2a">WXMPFiles_SetAbortProc_1</a> (<a class="el" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a> xmpFilesRef, <a class="el" href="XMP__Const_8h.html#ac2434559f67332b9d23021b894da838c">XMP_AbortProc</a> abortProc, void *abortArg, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *result)</td></tr>
+<tr class="separator:a3334dd84b04167cc3ae55c77a67f9b2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd223e1c41a44dadcf1e4e9ab765ba7a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#afd223e1c41a44dadcf1e4e9ab765ba7a">WXMPFiles_GetXMP_1</a> (<a class="el" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a> xmpFilesRef, <a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, void *clientPacket, <a class="el" href="structXMP__PacketInfo.html">XMP_PacketInfo</a> *packetInfo, <a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *result)</td></tr>
+<tr class="separator:afd223e1c41a44dadcf1e4e9ab765ba7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aba40b211c434f8265c102c9ad3e801b5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#aba40b211c434f8265c102c9ad3e801b5">WXMPFiles_PutXMP_1</a> (<a class="el" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a> xmpFilesRef, <a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> xmpPacket, <a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> xmpPacketLen, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *result)</td></tr>
+<tr class="separator:aba40b211c434f8265c102c9ad3e801b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2ef5dde7ef08bd1c25ffc1950e6b93d5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#a2ef5dde7ef08bd1c25ffc1950e6b93d5">WXMPFiles_CanPutXMP_1</a> (<a class="el" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a> xmpFilesRef, <a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> xmpPacket, <a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> xmpPacketLen, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *result)</td></tr>
+<tr class="separator:a2ef5dde7ef08bd1c25ffc1950e6b93d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a077600358a735f85573174499356f0c1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#a077600358a735f85573174499356f0c1">WXMPFiles_SetDefaultProgressCallback_1</a> (<a class="el" href="XMP__Const_8h.html#a61eb4db5a58902c130d3b3929db624db">XMP_ProgressReportWrapper</a> wrapperproc, <a class="el" href="XMP__Const_8h.html#a01973e700ac2ba7f3debef340ccaa663">XMP_ProgressReportProc</a> clientProc, void *context, float interval, <a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a> sendStartStop, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *result)</td></tr>
+<tr class="separator:a077600358a735f85573174499356f0c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae613a8d848ffd06181ef67910ba3dcdd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#ae613a8d848ffd06181ef67910ba3dcdd">WXMPFiles_SetProgressCallback_1</a> (<a class="el" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a> xmpFilesRef, <a class="el" href="XMP__Const_8h.html#a61eb4db5a58902c130d3b3929db624db">XMP_ProgressReportWrapper</a> wrapperproc, <a class="el" href="XMP__Const_8h.html#a01973e700ac2ba7f3debef340ccaa663">XMP_ProgressReportProc</a> clientProc, void *context, float interval, <a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a> sendStartStop, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *result)</td></tr>
+<tr class="separator:ae613a8d848ffd06181ef67910ba3dcdd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a515bb8c705a05236a146cbc7cde59055"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#a515bb8c705a05236a146cbc7cde59055">WXMPFiles_SetDefaultErrorCallback_1</a> (<a class="el" href="XMP__Const_8h.html#a24670f4db8bda6e113612fa0c81ffe6b">XMPFiles_ErrorCallbackWrapper</a> wrapperProc, <a class="el" href="XMP__Const_8h.html#a7bed3dd93335821e5afa0ac2b07a9640">XMPFiles_ErrorCallbackProc</a> clientProc, void *context, XMP_Uns32 limit, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a515bb8c705a05236a146cbc7cde59055"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a15b59bc5c4c18355b097b3d0c85ecc3d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#a15b59bc5c4c18355b097b3d0c85ecc3d">WXMPFiles_SetErrorCallback_1</a> (<a class="el" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a> xmpRef, <a class="el" href="XMP__Const_8h.html#a24670f4db8bda6e113612fa0c81ffe6b">XMPFiles_ErrorCallbackWrapper</a> wrapperProc, <a class="el" href="XMP__Const_8h.html#a7bed3dd93335821e5afa0ac2b07a9640">XMPFiles_ErrorCallbackProc</a> clientProc, void *context, XMP_Uns32 limit, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a15b59bc5c4c18355b097b3d0c85ecc3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab91f3a925e6288c7fb1dc459019b3405"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html#ab91f3a925e6288c7fb1dc459019b3405">WXMPFiles_ResetErrorCallbackLimit_1</a> (<a class="el" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a> xmpRef, XMP_Uns32 limit, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:ab91f3a925e6288c7fb1dc459019b3405"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>High level support to access metadata in files of interest to Adobe applications. </p>
+<p>This header ... </p>
+
+<p>Definition in file <a class="el" href="WXMPFiles_8hpp_source.html">WXMPFiles.hpp</a>.</p>
+</div><h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="a1411fd7ac45a5f6fa362977c962f6234"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define WrapCheckXMPFilesRef</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">result, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">WCallProto&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<b>Value:</b><div class="fragment"><div class="line"><a class="code" href="structWXMP__Result.html">WXMP_Result</a> wResult; \</div><div class="line"> WCallProto; \</div><div class="line"> PropagateException ( wResult ); \</div><div class="line"> XMPFilesRef result = <a class="code" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a>(wResult.<a class="code" href="structWXMP__Result.html#ae1b91c50cee342a87f7708dd92a3d538">ptrResult</a>)</div><div class="ttc" id="XMP__Const_8h_html_aa4bca98ad67d7a62c60cb13dbbab0f25"><div class="ttname"><a href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a></div><div class="ttdeci">struct __XMPFiles__ * XMPFilesRef</div><div class="ttdoc">An &quot;ABI safe&quot; pointer to the internal part of an XMP file-handling object. Use to pass an XMP file-ha...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00142">XMP_Const.h:142</a></div></div>
+<div class="ttc" id="structWXMP__Result_html"><div class="ttname"><a href="structWXMP__Result.html">WXMP_Result</a></div><div class="ttdef"><b>Definition:</b> <a href="WXMP__Common_8hpp_source.html#l00026">WXMP_Common.hpp:26</a></div></div>
+<div class="ttc" id="structWXMP__Result_html_ae1b91c50cee342a87f7708dd92a3d538"><div class="ttname"><a href="structWXMP__Result.html#ae1b91c50cee342a87f7708dd92a3d538">WXMP_Result::ptrResult</a></div><div class="ttdeci">void * ptrResult</div><div class="ttdef"><b>Definition:</b> <a href="WXMP__Common_8hpp_source.html#l00028">WXMP_Common.hpp:28</a></div></div>
+</div><!-- fragment -->
+<p>Definition at line <a class="el" href="WXMPFiles_8hpp_source.html#l00033">33</a> of file <a class="el" href="WXMPFiles_8hpp_source.html">WXMPFiles.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5c8a9971542af98048b1a19b73d65310"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPFiles_CanPutXMP_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">xmpRef, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">xmpPacket, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">xmpPacketLen&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#a2ef5dde7ef08bd1c25ffc1950e6b93d5">WXMPFiles_CanPutXMP_1</a> ( this-&gt;xmpFilesRef, xmpRef, xmpPacket, xmpPacketLen, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPFiles_8hpp_source.html#l00123">123</a> of file <a class="el" href="WXMPFiles_8hpp_source.html">WXMPFiles.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a91589c63b3c0c034e11c60a4eaaa3de1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPFiles_CheckFileFormat_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">filePath</td><td>)</td>
+ <td>&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#a793167f4d653d6f573dc0f4c4f07b298">WXMPFiles_CheckFileFormat_1</a> ( filePath, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPFiles_8hpp_source.html#l00085">85</a> of file <a class="el" href="WXMPFiles_8hpp_source.html">WXMPFiles.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5138829cfbf5712d5afe85109a253de7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPFiles_CheckPackageFormat_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">folderPath</td><td>)</td>
+ <td>&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#a0cbf8fcfb5d011fa62c6409a2cd84ede">WXMPFiles_CheckPackageFormat_1</a> ( folderPath, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPFiles_8hpp_source.html#l00088">88</a> of file <a class="el" href="WXMPFiles_8hpp_source.html">WXMPFiles.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aae01191749d7b0e1b4700516d3a263cf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPFiles_CloseFile_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">closeFlags</td><td>)</td>
+ <td>&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#a2484fe15e37f4f2644f3568be0c7690e">WXMPFiles_CloseFile_1</a> ( this-&gt;xmpFilesRef, closeFlags, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPFiles_8hpp_source.html#l00108">108</a> of file <a class="el" href="WXMPFiles_8hpp_source.html">WXMPFiles.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab5ad690470439e4813284756971a606e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPFiles_CTor_1</td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td>&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#a973b744c33e9a06d56f8b6b3a06394a4">WXMPFiles_CTor_1</a> ( &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPFiles_8hpp_source.html#l00079">79</a> of file <a class="el" href="WXMPFiles_8hpp_source.html">WXMPFiles.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a388f91a00251ec7b9d9dfcf60a5663a0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPFiles_GetAssociatedResources_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">filePath, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">resourceList, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">format, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">options, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">SetClientStringVector&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#af963f839791b4de926e42680c091af32">WXMPFiles_GetAssociatedResources_1</a> ( filePath, resourceList, format, options, SetClientStringVector, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPFiles_8hpp_source.html#l00094">94</a> of file <a class="el" href="WXMPFiles_8hpp_source.html">WXMPFiles.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab479175bf8e053d15f94561b681b127a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPFiles_GetFileInfo_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">clientPath, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">openFlags, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">format, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">handlerFlags, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">SetClientString&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#a661d52226bb7f7bffb8f9a053721dcab">WXMPFiles_GetFileInfo_1</a> ( this-&gt;xmpFilesRef, clientPath, openFlags, format, handlerFlags, SetClientString, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPFiles_8hpp_source.html#l00111">111</a> of file <a class="el" href="WXMPFiles_8hpp_source.html">WXMPFiles.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="afc6b46974e9108cde02b74f5b7a6fb97"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPFiles_GetFileModDate_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">filePath, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">modDate, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">format, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">options&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#aefdd49820e9bfede87457429d519c8d2">WXMPFiles_GetFileModDate_1</a> ( filePath, modDate, format, options, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPFiles_8hpp_source.html#l00091">91</a> of file <a class="el" href="WXMPFiles_8hpp_source.html">WXMPFiles.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a22159932057a32ae1b7438a4cb38b061"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPFiles_GetFormatInfo_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">format, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">flags&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#a71037373c70c18a183c7a9ee7f7babc9">WXMPFiles_GetFormatInfo_1</a> ( format, flags, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPFiles_8hpp_source.html#l00082">82</a> of file <a class="el" href="WXMPFiles_8hpp_source.html">WXMPFiles.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1c07156ac21d3ccd800fbd540fa1894b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPFiles_GetVersionInfo_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">versionInfo</td><td>)</td>
+ <td>&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#a96877191902363ca391c357b0bdeedf4">WXMPFiles_GetVersionInfo_1</a> ( versionInfo /* no wResult */ )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPFiles_8hpp_source.html#l00067">67</a> of file <a class="el" href="WXMPFiles_8hpp_source.html">WXMPFiles.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5fdbbcc0de3c2b6c8c67c355bc2b73ef"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPFiles_GetXMP_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">xmpRef, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">clientPacket, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">packetInfo, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">SetClientString&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#afd223e1c41a44dadcf1e4e9ab765ba7a">WXMPFiles_GetXMP_1</a> ( this-&gt;xmpFilesRef, xmpRef, clientPacket, packetInfo, SetClientString, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPFiles_8hpp_source.html#l00117">117</a> of file <a class="el" href="WXMPFiles_8hpp_source.html">WXMPFiles.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa4bd33393eec73960abad65df45555e1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPFiles_Initialize_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">options</td><td>)</td>
+ <td>&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#a81794d63d62975b313aff0f869c7dded">WXMPFiles_Initialize_1</a> ( options, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPFiles_8hpp_source.html#l00070">70</a> of file <a class="el" href="WXMPFiles_8hpp_source.html">WXMPFiles.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3d2fb0bb2d758c818c2d7a544e89235b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPFiles_Initialize_2</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">options, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">pluginFolder, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">plugins&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#a39fce6bafe20c2847a288c6bded9dcc8">WXMPFiles_Initialize_2</a> ( options, pluginFolder, plugins, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPFiles_8hpp_source.html#l00073">73</a> of file <a class="el" href="WXMPFiles_8hpp_source.html">WXMPFiles.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a306bb7b988eec6378c2a9fc487caf617"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPFiles_IsMetadataWritable_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">filePath, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">writable, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">format, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">options&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#a5bfb800ea6bf214b5ac4853e2cfff3cc">WXMPFiles_IsMetadataWritable_1</a> ( filePath, writable, format, options, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPFiles_8hpp_source.html#l00097">97</a> of file <a class="el" href="WXMPFiles_8hpp_source.html">WXMPFiles.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8a739d2d110756df76a6560bf024d7db"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPFiles_OpenFile_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">filePath, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">format, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">openFlags&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#a58e70573d754cc63966da6fc3fc70a91">WXMPFiles_OpenFile_1</a> ( this-&gt;xmpFilesRef, filePath, format, openFlags, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPFiles_8hpp_source.html#l00100">100</a> of file <a class="el" href="WXMPFiles_8hpp_source.html">WXMPFiles.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1d4f17626f5426e949d89a826b47e139"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPFiles_PutXMP_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">xmpRef, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">xmpPacket, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">xmpPacketLen&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#aba40b211c434f8265c102c9ad3e801b5">WXMPFiles_PutXMP_1</a> ( this-&gt;xmpFilesRef, xmpRef, xmpPacket, xmpPacketLen, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPFiles_8hpp_source.html#l00120">120</a> of file <a class="el" href="WXMPFiles_8hpp_source.html">WXMPFiles.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a98022dc34d13e606183e09b65ec48c46"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPFiles_ResetErrorCallbackLimit_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">limit</td><td>)</td>
+ <td>&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#ab91f3a925e6288c7fb1dc459019b3405">WXMPFiles_ResetErrorCallbackLimit_1</a> ( this-&gt;xmpFilesRef, limit, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPFiles_8hpp_source.html#l00138">138</a> of file <a class="el" href="WXMPFiles_8hpp_source.html">WXMPFiles.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aaeee52c59e243c3aec3a1f155052cda7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPFiles_SetAbortProc_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">abortProc, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">abortArg&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#a3334dd84b04167cc3ae55c77a67f9b2a">WXMPFiles_SetAbortProc_1</a> ( this-&gt;xmpFilesRef, abortProc, abortArg, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPFiles_8hpp_source.html#l00114">114</a> of file <a class="el" href="WXMPFiles_8hpp_source.html">WXMPFiles.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a49db2cb75d6fbed2f76090d9a8fbcd2c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPFiles_SetDefaultErrorCallback_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">proc, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">context, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">limit&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#a515bb8c705a05236a146cbc7cde59055">WXMPFiles_SetDefaultErrorCallback_1</a> ( <a class="el" href="WXMPFiles_8hpp.html#a06a216001c8aed3b678bc2bbe510f59e">WrapFilesErrorNotify</a>, proc, context, limit, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPFiles_8hpp_source.html#l00132">132</a> of file <a class="el" href="WXMPFiles_8hpp_source.html">WXMPFiles.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4fcbcba3b02b01ab8f0e34d4d9db2e81"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPFiles_SetDefaultProgressCallback_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">proc, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">context, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">interval, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">sendStartStop&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#a077600358a735f85573174499356f0c1">WXMPFiles_SetDefaultProgressCallback_1</a> ( <a class="el" href="WXMPFiles_8hpp.html#a595767f50ed53071f5240a94596a3451">WrapProgressReport</a>, proc, context, interval, sendStartStop, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPFiles_8hpp_source.html#l00126">126</a> of file <a class="el" href="WXMPFiles_8hpp_source.html">WXMPFiles.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="adfc59976766bc8cd2bbafcc512ff22e0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPFiles_SetErrorCallback_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">proc, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">context, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">limit&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#a15b59bc5c4c18355b097b3d0c85ecc3d">WXMPFiles_SetErrorCallback_1</a> ( this-&gt;xmpFilesRef, <a class="el" href="WXMPFiles_8hpp.html#a06a216001c8aed3b678bc2bbe510f59e">WrapFilesErrorNotify</a>, proc, context, limit, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPFiles_8hpp_source.html#l00135">135</a> of file <a class="el" href="WXMPFiles_8hpp_source.html">WXMPFiles.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a226c2df14f357c12de0503e64d9d14f0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPFiles_SetProgressCallback_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">proc, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">context, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">interval, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">sendStartStop&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#ae613a8d848ffd06181ef67910ba3dcdd">WXMPFiles_SetProgressCallback_1</a> ( this-&gt;xmpFilesRef, <a class="el" href="WXMPFiles_8hpp.html#a595767f50ed53071f5240a94596a3451">WrapProgressReport</a>, proc, context, interval, sendStartStop, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPFiles_8hpp_source.html#l00129">129</a> of file <a class="el" href="WXMPFiles_8hpp_source.html">WXMPFiles.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a08126268000561c2c10af0f0a8226dce"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPFiles_Terminate_1</td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td>&#160;&#160;&#160;<a class="el" href="WXMPFiles_8hpp.html#a80f57c97820f7c86ddfccd2814b2c973">WXMPFiles_Terminate_1</a> ( /* no wResult */ )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPFiles_8hpp_source.html#l00076">76</a> of file <a class="el" href="WXMPFiles_8hpp_source.html">WXMPFiles.hpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a06a216001c8aed3b678bc2bbe510f59e"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static <a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a> WrapFilesErrorNotify </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a7bed3dd93335821e5afa0ac2b07a9640">XMPFiles_ErrorCallbackProc</a>&#160;</td>
+ <td class="paramname"><em>proc</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>context</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>filePath</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ae4a7c9347994883250dc440566eb9f52">XMP_ErrorSeverity</a>&#160;</td>
+ <td class="paramname"><em>severity</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">XMP_Int32&#160;</td>
+ <td class="paramname"><em>cause</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>message</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPFiles_8hpp_source.html#l00053">53</a> of file <a class="el" href="WXMPFiles_8hpp_source.html">WXMPFiles.hpp</a>.</p>
+
+<p>References <a class="el" href="XMP__Const_8h_source.html#l00107">ConvertBoolToXMP_Bool</a>.</p>
+<div class="fragment"><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordtype">bool</span> ok;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">try</span> {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; ok = (*proc) ( context, filePath, severity, cause, message );</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; } <span class="keywordflow">catch</span> ( ... ) {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; ok = <span class="keyword">false</span>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; }</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">return</span> <a class="code" href="XMP__Const_8h.html#ae6037ae90db1ec7d7c988aec7a8319cb">ConvertBoolToXMP_Bool</a>( ok );</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;}</div><div class="ttc" id="XMP__Const_8h_html_ae6037ae90db1ec7d7c988aec7a8319cb"><div class="ttname"><a href="XMP__Const_8h.html#ae6037ae90db1ec7d7c988aec7a8319cb">ConvertBoolToXMP_Bool</a></div><div class="ttdeci">#define ConvertBoolToXMP_Bool(a)</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00107">XMP_Const.h:107</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a595767f50ed53071f5240a94596a3451"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static <a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a> WrapProgressReport </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a01973e700ac2ba7f3debef340ccaa663">XMP_ProgressReportProc</a>&#160;</td>
+ <td class="paramname"><em>proc</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>context</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">float&#160;</td>
+ <td class="paramname"><em>elapsedTime</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">float&#160;</td>
+ <td class="paramname"><em>fractionDone</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">float&#160;</td>
+ <td class="paramname"><em>secondsToGo</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPFiles_8hpp_source.html#l00039">39</a> of file <a class="el" href="WXMPFiles_8hpp_source.html">WXMPFiles.hpp</a>.</p>
+
+<p>References <a class="el" href="XMP__Const_8h_source.html#l00107">ConvertBoolToXMP_Bool</a>.</p>
+<div class="fragment"><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordtype">bool</span> ok;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">try</span> {</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; ok = (*proc) ( context, elapsedTime, fractionDone, secondsToGo );</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; } <span class="keywordflow">catch</span> ( ... ) {</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; ok = <span class="keyword">false</span>;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; }</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">return</span> <a class="code" href="XMP__Const_8h.html#ae6037ae90db1ec7d7c988aec7a8319cb">ConvertBoolToXMP_Bool</a>( ok );</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;}</div><div class="ttc" id="XMP__Const_8h_html_ae6037ae90db1ec7d7c988aec7a8319cb"><div class="ttname"><a href="XMP__Const_8h.html#ae6037ae90db1ec7d7c988aec7a8319cb">ConvertBoolToXMP_Bool</a></div><div class="ttdeci">#define ConvertBoolToXMP_Bool(a)</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00107">XMP_Const.h:107</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a2ef5dde7ef08bd1c25ffc1950e6b93d5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void WXMPFiles_CanPutXMP_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a>&#160;</td>
+ <td class="paramname"><em>xmpFilesRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>xmpPacket</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a>&#160;</td>
+ <td class="paramname"><em>xmpPacketLen</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>result</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a793167f4d653d6f573dc0f4c4f07b298"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void WXMPFiles_CheckFileFormat_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>filePath</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>result</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0cbf8fcfb5d011fa62c6409a2cd84ede"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void WXMPFiles_CheckPackageFormat_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>folderPath</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>result</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2484fe15e37f4f2644f3568be0c7690e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void WXMPFiles_CloseFile_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a>&#160;</td>
+ <td class="paramname"><em>xmpFilesRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>closeFlags</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>result</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a973b744c33e9a06d56f8b6b3a06394a4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void WXMPFiles_CTor_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>result</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7d423602bfc12e20d83a36df777c4c97"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void WXMPFiles_DecrementRefCount_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a>&#160;</td>
+ <td class="paramname"><em>xmpFilesRef</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af963f839791b4de926e42680c091af32"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void WXMPFiles_GetAssociatedResources_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>filePath</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>resourceList</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a>&#160;</td>
+ <td class="paramname"><em>format</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="WXMP__Common_8hpp.html#a657cdd79947744b4c123bf9df9ac1b60">SetClientStringVectorProc</a>&#160;</td>
+ <td class="paramname"><em>SetClientStringVector</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>result</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a661d52226bb7f7bffb8f9a053721dcab"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void WXMPFiles_GetFileInfo_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a>&#160;</td>
+ <td class="paramname"><em>xmpFilesRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>clientPath</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&#160;</td>
+ <td class="paramname"><em>openFlags</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> *&#160;</td>
+ <td class="paramname"><em>format</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&#160;</td>
+ <td class="paramname"><em>handlerFlags</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a>&#160;</td>
+ <td class="paramname"><em>SetClientString</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>result</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aefdd49820e9bfede87457429d519c8d2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void WXMPFiles_GetFileModDate_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>filePath</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *&#160;</td>
+ <td class="paramname"><em>modDate</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> *&#160;</td>
+ <td class="paramname"><em>format</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>result</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a71037373c70c18a183c7a9ee7f7babc9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void WXMPFiles_GetFormatInfo_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a>&#160;</td>
+ <td class="paramname"><em>format</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&#160;</td>
+ <td class="paramname"><em>flags</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>result</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a96877191902363ca391c357b0bdeedf4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void WXMPFiles_GetVersionInfo_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structXMP__VersionInfo.html">XMP_VersionInfo</a> *&#160;</td>
+ <td class="paramname"><em>versionInfo</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="afd223e1c41a44dadcf1e4e9ab765ba7a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void WXMPFiles_GetXMP_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a>&#160;</td>
+ <td class="paramname"><em>xmpFilesRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>clientPacket</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structXMP__PacketInfo.html">XMP_PacketInfo</a> *&#160;</td>
+ <td class="paramname"><em>packetInfo</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a>&#160;</td>
+ <td class="paramname"><em>SetClientString</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>result</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="abd63a02504b3199ea8bd5484a58ff02c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void WXMPFiles_IncrementRefCount_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a>&#160;</td>
+ <td class="paramname"><em>xmpFilesRef</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a81794d63d62975b313aff0f869c7dded"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void WXMPFiles_Initialize_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>result</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a39fce6bafe20c2847a288c6bded9dcc8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void WXMPFiles_Initialize_2 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>pluginFolder</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>plugins</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>result</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5bfb800ea6bf214b5ac4853e2cfff3cc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void WXMPFiles_IsMetadataWritable_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>filePath</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a> *&#160;</td>
+ <td class="paramname"><em>writable</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a>&#160;</td>
+ <td class="paramname"><em>format</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>result</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a58e70573d754cc63966da6fc3fc70a91"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void WXMPFiles_OpenFile_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a>&#160;</td>
+ <td class="paramname"><em>xmpFilesRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>filePath</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a>&#160;</td>
+ <td class="paramname"><em>format</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>openFlags</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>result</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aba40b211c434f8265c102c9ad3e801b5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void WXMPFiles_PutXMP_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a>&#160;</td>
+ <td class="paramname"><em>xmpFilesRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>xmpPacket</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a>&#160;</td>
+ <td class="paramname"><em>xmpPacketLen</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>result</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab91f3a925e6288c7fb1dc459019b3405"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void WXMPFiles_ResetErrorCallbackLimit_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">XMP_Uns32&#160;</td>
+ <td class="paramname"><em>limit</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3334dd84b04167cc3ae55c77a67f9b2a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void WXMPFiles_SetAbortProc_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a>&#160;</td>
+ <td class="paramname"><em>xmpFilesRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ac2434559f67332b9d23021b894da838c">XMP_AbortProc</a>&#160;</td>
+ <td class="paramname"><em>abortProc</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>abortArg</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>result</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a515bb8c705a05236a146cbc7cde59055"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void WXMPFiles_SetDefaultErrorCallback_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a24670f4db8bda6e113612fa0c81ffe6b">XMPFiles_ErrorCallbackWrapper</a>&#160;</td>
+ <td class="paramname"><em>wrapperProc</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a7bed3dd93335821e5afa0ac2b07a9640">XMPFiles_ErrorCallbackProc</a>&#160;</td>
+ <td class="paramname"><em>clientProc</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>context</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">XMP_Uns32&#160;</td>
+ <td class="paramname"><em>limit</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a077600358a735f85573174499356f0c1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void WXMPFiles_SetDefaultProgressCallback_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a61eb4db5a58902c130d3b3929db624db">XMP_ProgressReportWrapper</a>&#160;</td>
+ <td class="paramname"><em>wrapperproc</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a01973e700ac2ba7f3debef340ccaa663">XMP_ProgressReportProc</a>&#160;</td>
+ <td class="paramname"><em>clientProc</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>context</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">float&#160;</td>
+ <td class="paramname"><em>interval</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a>&#160;</td>
+ <td class="paramname"><em>sendStartStop</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>result</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a15b59bc5c4c18355b097b3d0c85ecc3d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void WXMPFiles_SetErrorCallback_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a24670f4db8bda6e113612fa0c81ffe6b">XMPFiles_ErrorCallbackWrapper</a>&#160;</td>
+ <td class="paramname"><em>wrapperProc</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a7bed3dd93335821e5afa0ac2b07a9640">XMPFiles_ErrorCallbackProc</a>&#160;</td>
+ <td class="paramname"><em>clientProc</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>context</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">XMP_Uns32&#160;</td>
+ <td class="paramname"><em>limit</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae613a8d848ffd06181ef67910ba3dcdd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void WXMPFiles_SetProgressCallback_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a>&#160;</td>
+ <td class="paramname"><em>xmpFilesRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a61eb4db5a58902c130d3b3929db624db">XMP_ProgressReportWrapper</a>&#160;</td>
+ <td class="paramname"><em>wrapperproc</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a01973e700ac2ba7f3debef340ccaa663">XMP_ProgressReportProc</a>&#160;</td>
+ <td class="paramname"><em>clientProc</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>context</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">float&#160;</td>
+ <td class="paramname"><em>interval</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a>&#160;</td>
+ <td class="paramname"><em>sendStartStop</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>result</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a80f57c97820f7c86ddfccd2814b2c973"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void WXMPFiles_Terminate_1 </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/WXMPFiles_8hpp.js b/docs/API/WXMPFiles_8hpp.js
new file mode 100755
index 0000000..70e2463
--- /dev/null
+++ b/docs/API/WXMPFiles_8hpp.js
@@ -0,0 +1,54 @@
+var WXMPFiles_8hpp =
+[
+ [ "WrapCheckXMPFilesRef", "WXMPFiles_8hpp.html#a1411fd7ac45a5f6fa362977c962f6234", null ],
+ [ "zXMPFiles_CanPutXMP_1", "WXMPFiles_8hpp.html#a5c8a9971542af98048b1a19b73d65310", null ],
+ [ "zXMPFiles_CheckFileFormat_1", "WXMPFiles_8hpp.html#a91589c63b3c0c034e11c60a4eaaa3de1", null ],
+ [ "zXMPFiles_CheckPackageFormat_1", "WXMPFiles_8hpp.html#a5138829cfbf5712d5afe85109a253de7", null ],
+ [ "zXMPFiles_CloseFile_1", "WXMPFiles_8hpp.html#aae01191749d7b0e1b4700516d3a263cf", null ],
+ [ "zXMPFiles_CTor_1", "WXMPFiles_8hpp.html#ab5ad690470439e4813284756971a606e", null ],
+ [ "zXMPFiles_GetAssociatedResources_1", "WXMPFiles_8hpp.html#a388f91a00251ec7b9d9dfcf60a5663a0", null ],
+ [ "zXMPFiles_GetFileInfo_1", "WXMPFiles_8hpp.html#ab479175bf8e053d15f94561b681b127a", null ],
+ [ "zXMPFiles_GetFileModDate_1", "WXMPFiles_8hpp.html#afc6b46974e9108cde02b74f5b7a6fb97", null ],
+ [ "zXMPFiles_GetFormatInfo_1", "WXMPFiles_8hpp.html#a22159932057a32ae1b7438a4cb38b061", null ],
+ [ "zXMPFiles_GetVersionInfo_1", "WXMPFiles_8hpp.html#a1c07156ac21d3ccd800fbd540fa1894b", null ],
+ [ "zXMPFiles_GetXMP_1", "WXMPFiles_8hpp.html#a5fdbbcc0de3c2b6c8c67c355bc2b73ef", null ],
+ [ "zXMPFiles_Initialize_1", "WXMPFiles_8hpp.html#aa4bd33393eec73960abad65df45555e1", null ],
+ [ "zXMPFiles_Initialize_2", "WXMPFiles_8hpp.html#a3d2fb0bb2d758c818c2d7a544e89235b", null ],
+ [ "zXMPFiles_IsMetadataWritable_1", "WXMPFiles_8hpp.html#a306bb7b988eec6378c2a9fc487caf617", null ],
+ [ "zXMPFiles_OpenFile_1", "WXMPFiles_8hpp.html#a8a739d2d110756df76a6560bf024d7db", null ],
+ [ "zXMPFiles_PutXMP_1", "WXMPFiles_8hpp.html#a1d4f17626f5426e949d89a826b47e139", null ],
+ [ "zXMPFiles_ResetErrorCallbackLimit_1", "WXMPFiles_8hpp.html#a98022dc34d13e606183e09b65ec48c46", null ],
+ [ "zXMPFiles_SetAbortProc_1", "WXMPFiles_8hpp.html#aaeee52c59e243c3aec3a1f155052cda7", null ],
+ [ "zXMPFiles_SetDefaultErrorCallback_1", "WXMPFiles_8hpp.html#a49db2cb75d6fbed2f76090d9a8fbcd2c", null ],
+ [ "zXMPFiles_SetDefaultProgressCallback_1", "WXMPFiles_8hpp.html#a4fcbcba3b02b01ab8f0e34d4d9db2e81", null ],
+ [ "zXMPFiles_SetErrorCallback_1", "WXMPFiles_8hpp.html#adfc59976766bc8cd2bbafcc512ff22e0", null ],
+ [ "zXMPFiles_SetProgressCallback_1", "WXMPFiles_8hpp.html#a226c2df14f357c12de0503e64d9d14f0", null ],
+ [ "zXMPFiles_Terminate_1", "WXMPFiles_8hpp.html#a08126268000561c2c10af0f0a8226dce", null ],
+ [ "WrapFilesErrorNotify", "WXMPFiles_8hpp.html#a06a216001c8aed3b678bc2bbe510f59e", null ],
+ [ "WrapProgressReport", "WXMPFiles_8hpp.html#a595767f50ed53071f5240a94596a3451", null ],
+ [ "WXMPFiles_CanPutXMP_1", "WXMPFiles_8hpp.html#a2ef5dde7ef08bd1c25ffc1950e6b93d5", null ],
+ [ "WXMPFiles_CheckFileFormat_1", "WXMPFiles_8hpp.html#a793167f4d653d6f573dc0f4c4f07b298", null ],
+ [ "WXMPFiles_CheckPackageFormat_1", "WXMPFiles_8hpp.html#a0cbf8fcfb5d011fa62c6409a2cd84ede", null ],
+ [ "WXMPFiles_CloseFile_1", "WXMPFiles_8hpp.html#a2484fe15e37f4f2644f3568be0c7690e", null ],
+ [ "WXMPFiles_CTor_1", "WXMPFiles_8hpp.html#a973b744c33e9a06d56f8b6b3a06394a4", null ],
+ [ "WXMPFiles_DecrementRefCount_1", "WXMPFiles_8hpp.html#a7d423602bfc12e20d83a36df777c4c97", null ],
+ [ "WXMPFiles_GetAssociatedResources_1", "WXMPFiles_8hpp.html#af963f839791b4de926e42680c091af32", null ],
+ [ "WXMPFiles_GetFileInfo_1", "WXMPFiles_8hpp.html#a661d52226bb7f7bffb8f9a053721dcab", null ],
+ [ "WXMPFiles_GetFileModDate_1", "WXMPFiles_8hpp.html#aefdd49820e9bfede87457429d519c8d2", null ],
+ [ "WXMPFiles_GetFormatInfo_1", "WXMPFiles_8hpp.html#a71037373c70c18a183c7a9ee7f7babc9", null ],
+ [ "WXMPFiles_GetVersionInfo_1", "WXMPFiles_8hpp.html#a96877191902363ca391c357b0bdeedf4", null ],
+ [ "WXMPFiles_GetXMP_1", "WXMPFiles_8hpp.html#afd223e1c41a44dadcf1e4e9ab765ba7a", null ],
+ [ "WXMPFiles_IncrementRefCount_1", "WXMPFiles_8hpp.html#abd63a02504b3199ea8bd5484a58ff02c", null ],
+ [ "WXMPFiles_Initialize_1", "WXMPFiles_8hpp.html#a81794d63d62975b313aff0f869c7dded", null ],
+ [ "WXMPFiles_Initialize_2", "WXMPFiles_8hpp.html#a39fce6bafe20c2847a288c6bded9dcc8", null ],
+ [ "WXMPFiles_IsMetadataWritable_1", "WXMPFiles_8hpp.html#a5bfb800ea6bf214b5ac4853e2cfff3cc", null ],
+ [ "WXMPFiles_OpenFile_1", "WXMPFiles_8hpp.html#a58e70573d754cc63966da6fc3fc70a91", null ],
+ [ "WXMPFiles_PutXMP_1", "WXMPFiles_8hpp.html#aba40b211c434f8265c102c9ad3e801b5", null ],
+ [ "WXMPFiles_ResetErrorCallbackLimit_1", "WXMPFiles_8hpp.html#ab91f3a925e6288c7fb1dc459019b3405", null ],
+ [ "WXMPFiles_SetAbortProc_1", "WXMPFiles_8hpp.html#a3334dd84b04167cc3ae55c77a67f9b2a", null ],
+ [ "WXMPFiles_SetDefaultErrorCallback_1", "WXMPFiles_8hpp.html#a515bb8c705a05236a146cbc7cde59055", null ],
+ [ "WXMPFiles_SetDefaultProgressCallback_1", "WXMPFiles_8hpp.html#a077600358a735f85573174499356f0c1", null ],
+ [ "WXMPFiles_SetErrorCallback_1", "WXMPFiles_8hpp.html#a15b59bc5c4c18355b097b3d0c85ecc3d", null ],
+ [ "WXMPFiles_SetProgressCallback_1", "WXMPFiles_8hpp.html#ae613a8d848ffd06181ef67910ba3dcdd", null ],
+ [ "WXMPFiles_Terminate_1", "WXMPFiles_8hpp.html#a80f57c97820f7c86ddfccd2814b2c973", null ]
+]; \ No newline at end of file
diff --git a/docs/API/WXMPFiles_8hpp_source.html b/docs/API/WXMPFiles_8hpp_source.html
new file mode 100755
index 0000000..b7f6229
--- /dev/null
+++ b/docs/API/WXMPFiles_8hpp_source.html
@@ -0,0 +1,98 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/client-glue/WXMPFiles.hpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('WXMPFiles_8hpp_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">WXMPFiles.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="WXMPFiles_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __WXMPFiles_hpp__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __WXMPFiles_hpp__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// ADOBE SYSTEMS INCORPORATED</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// Copyright 2002 Adobe Systems Incorporated</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// All Rights Reserved</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="WXMP__Common_8hpp.html">client-glue/WXMP_Common.hpp</a>&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#if XMP_StaticBuild // ! Client XMP_IO objects can only be used in static builds.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor"> #include &quot;<a class="code" href="XMP__IO_8hpp.html">XMP_IO.hpp</a>&quot;</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#if __cplusplus</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"></span><span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="WXMPFiles_8hpp.html#a1411fd7ac45a5f6fa362977c962f6234"> 33</a></span>&#160;<span class="preprocessor">#define WrapCheckXMPFilesRef(result,WCallProto) \</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor"> WXMP_Result wResult; \</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor"> WCallProto; \</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor"> PropagateException ( wResult ); \</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor"> XMPFilesRef result = XMPFilesRef(wResult.ptrResult)</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="WXMPFiles_8hpp.html#a595767f50ed53071f5240a94596a3451"> 39</a></span>&#160;<span class="keyword">static</span> <a class="code" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a> <a class="code" href="WXMPFiles_8hpp.html#a595767f50ed53071f5240a94596a3451">WrapProgressReport</a> ( <a class="code" href="XMP__Const_8h.html#a01973e700ac2ba7f3debef340ccaa663">XMP_ProgressReportProc</a> proc, <span class="keywordtype">void</span> * context,</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordtype">float</span> elapsedTime, <span class="keywordtype">float</span> fractionDone, <span class="keywordtype">float</span> secondsToGo )</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordtype">bool</span> ok;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">try</span> {</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; ok = (*proc) ( context, elapsedTime, fractionDone, secondsToGo );</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; } <span class="keywordflow">catch</span> ( ... ) {</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; ok = <span class="keyword">false</span>;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; }</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">return</span> <a class="code" href="XMP__Const_8h.html#ae6037ae90db1ec7d7c988aec7a8319cb">ConvertBoolToXMP_Bool</a>( ok );</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;}</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="WXMPFiles_8hpp.html#a06a216001c8aed3b678bc2bbe510f59e"> 53</a></span>&#160;<span class="keyword">static</span> <a class="code" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a> <a class="code" href="WXMPFiles_8hpp.html#a06a216001c8aed3b678bc2bbe510f59e">WrapFilesErrorNotify</a> ( <a class="code" href="XMP__Const_8h.html#a7bed3dd93335821e5afa0ac2b07a9640">XMPFiles_ErrorCallbackProc</a> proc, <span class="keywordtype">void</span> * context,</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> filePath, <a class="code" href="XMP__Const_8h.html#ae4a7c9347994883250dc440566eb9f52">XMP_ErrorSeverity</a> severity, XMP_Int32 cause, <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> message )</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordtype">bool</span> ok;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">try</span> {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; ok = (*proc) ( context, filePath, severity, cause, message );</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; } <span class="keywordflow">catch</span> ( ... ) {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; ok = <span class="keyword">false</span>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; }</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">return</span> <a class="code" href="XMP__Const_8h.html#ae6037ae90db1ec7d7c988aec7a8319cb">ConvertBoolToXMP_Bool</a>( ok );</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;}</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="WXMPFiles_8hpp.html#a1c07156ac21d3ccd800fbd540fa1894b"> 67</a></span>&#160;<span class="preprocessor">#define zXMPFiles_GetVersionInfo_1(versionInfo) \</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor"> WXMPFiles_GetVersionInfo_1 ( versionInfo </span><span class="comment">/* no wResult */</span><span class="preprocessor"> )</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="WXMPFiles_8hpp.html#aa4bd33393eec73960abad65df45555e1"> 70</a></span>&#160;<span class="preprocessor">#define zXMPFiles_Initialize_1(options) \</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor"> WXMPFiles_Initialize_1 ( options, &amp;wResult )</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="WXMPFiles_8hpp.html#a3d2fb0bb2d758c818c2d7a544e89235b"> 73</a></span>&#160;<span class="preprocessor">#define zXMPFiles_Initialize_2(options,pluginFolder,plugins) \</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor"> WXMPFiles_Initialize_2 ( options, pluginFolder, plugins, &amp;wResult )</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="WXMPFiles_8hpp.html#a08126268000561c2c10af0f0a8226dce"> 76</a></span>&#160;<span class="preprocessor">#define zXMPFiles_Terminate_1() \</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor"> WXMPFiles_Terminate_1 ( </span><span class="comment">/* no wResult */</span><span class="preprocessor"> )</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="WXMPFiles_8hpp.html#ab5ad690470439e4813284756971a606e"> 79</a></span>&#160;<span class="preprocessor">#define zXMPFiles_CTor_1() \</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor"> WXMPFiles_CTor_1 ( &amp;wResult )</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="WXMPFiles_8hpp.html#a22159932057a32ae1b7438a4cb38b061"> 82</a></span>&#160;<span class="preprocessor">#define zXMPFiles_GetFormatInfo_1(format,flags) \</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor"> WXMPFiles_GetFormatInfo_1 ( format, flags, &amp;wResult )</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="WXMPFiles_8hpp.html#a91589c63b3c0c034e11c60a4eaaa3de1"> 85</a></span>&#160;<span class="preprocessor">#define zXMPFiles_CheckFileFormat_1(filePath) \</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor"> WXMPFiles_CheckFileFormat_1 ( filePath, &amp;wResult )</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="WXMPFiles_8hpp.html#a5138829cfbf5712d5afe85109a253de7"> 88</a></span>&#160;<span class="preprocessor">#define zXMPFiles_CheckPackageFormat_1(folderPath) \</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor"> WXMPFiles_CheckPackageFormat_1 ( folderPath, &amp;wResult )</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="WXMPFiles_8hpp.html#afc6b46974e9108cde02b74f5b7a6fb97"> 91</a></span>&#160;<span class="preprocessor">#define zXMPFiles_GetFileModDate_1(filePath,modDate,format,options) \</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="preprocessor"> WXMPFiles_GetFileModDate_1 ( filePath, modDate, format, options, &amp;wResult )</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="WXMPFiles_8hpp.html#a388f91a00251ec7b9d9dfcf60a5663a0"> 94</a></span>&#160;<span class="preprocessor">#define zXMPFiles_GetAssociatedResources_1( filePath, resourceList, format, options, SetClientStringVector ) \</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="preprocessor"> WXMPFiles_GetAssociatedResources_1 ( filePath, resourceList, format, options, SetClientStringVector, &amp;wResult )</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="WXMPFiles_8hpp.html#a306bb7b988eec6378c2a9fc487caf617"> 97</a></span>&#160;<span class="preprocessor">#define zXMPFiles_IsMetadataWritable_1( filePath, writable, format, options ) \</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor"> WXMPFiles_IsMetadataWritable_1 ( filePath, writable, format, options, &amp;wResult )</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="WXMPFiles_8hpp.html#a8a739d2d110756df76a6560bf024d7db"> 100</a></span>&#160;<span class="preprocessor">#define zXMPFiles_OpenFile_1(filePath,format,openFlags) \</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor"> WXMPFiles_OpenFile_1 ( this-&gt;xmpFilesRef, filePath, format, openFlags, &amp;wResult )</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="preprocessor">#if XMP_StaticBuild // ! Client XMP_IO objects can only be used in static builds.</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="preprocessor">#define zXMPFiles_OpenFile_2(clientIO,format,openFlags) \</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="preprocessor"> WXMPFiles_OpenFile_2 ( this-&gt;xmpFilesRef, clientIO, format, openFlags, &amp;wResult )</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="WXMPFiles_8hpp.html#aae01191749d7b0e1b4700516d3a263cf"> 108</a></span>&#160;<span class="preprocessor">#define zXMPFiles_CloseFile_1(closeFlags) \</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="preprocessor"> WXMPFiles_CloseFile_1 ( this-&gt;xmpFilesRef, closeFlags, &amp;wResult )</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="WXMPFiles_8hpp.html#ab479175bf8e053d15f94561b681b127a"> 111</a></span>&#160;<span class="preprocessor">#define zXMPFiles_GetFileInfo_1(clientPath,openFlags,format,handlerFlags,SetClientString) \</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="preprocessor"> WXMPFiles_GetFileInfo_1 ( this-&gt;xmpFilesRef, clientPath, openFlags, format, handlerFlags, SetClientString, &amp;wResult )</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="WXMPFiles_8hpp.html#aaeee52c59e243c3aec3a1f155052cda7"> 114</a></span>&#160;<span class="preprocessor">#define zXMPFiles_SetAbortProc_1(abortProc,abortArg) \</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="preprocessor"> WXMPFiles_SetAbortProc_1 ( this-&gt;xmpFilesRef, abortProc, abortArg, &amp;wResult )</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="WXMPFiles_8hpp.html#a5fdbbcc0de3c2b6c8c67c355bc2b73ef"> 117</a></span>&#160;<span class="preprocessor">#define zXMPFiles_GetXMP_1(xmpRef,clientPacket,packetInfo,SetClientString) \</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="preprocessor"> WXMPFiles_GetXMP_1 ( this-&gt;xmpFilesRef, xmpRef, clientPacket, packetInfo, SetClientString, &amp;wResult )</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="WXMPFiles_8hpp.html#a1d4f17626f5426e949d89a826b47e139"> 120</a></span>&#160;<span class="preprocessor">#define zXMPFiles_PutXMP_1(xmpRef,xmpPacket,xmpPacketLen) \</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="preprocessor"> WXMPFiles_PutXMP_1 ( this-&gt;xmpFilesRef, xmpRef, xmpPacket, xmpPacketLen, &amp;wResult )</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="WXMPFiles_8hpp.html#a5c8a9971542af98048b1a19b73d65310"> 123</a></span>&#160;<span class="preprocessor">#define zXMPFiles_CanPutXMP_1(xmpRef,xmpPacket,xmpPacketLen) \</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="preprocessor"> WXMPFiles_CanPutXMP_1 ( this-&gt;xmpFilesRef, xmpRef, xmpPacket, xmpPacketLen, &amp;wResult )</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="WXMPFiles_8hpp.html#a4fcbcba3b02b01ab8f0e34d4d9db2e81"> 126</a></span>&#160;<span class="preprocessor">#define zXMPFiles_SetDefaultProgressCallback_1(proc,context,interval,sendStartStop) \</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="preprocessor"> WXMPFiles_SetDefaultProgressCallback_1 ( WrapProgressReport, proc, context, interval, sendStartStop, &amp;wResult )</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="WXMPFiles_8hpp.html#a226c2df14f357c12de0503e64d9d14f0"> 129</a></span>&#160;<span class="preprocessor">#define zXMPFiles_SetProgressCallback_1(proc,context,interval,sendStartStop) \</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="preprocessor"> WXMPFiles_SetProgressCallback_1 ( this-&gt;xmpFilesRef, WrapProgressReport, proc, context, interval, sendStartStop, &amp;wResult )</span></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="WXMPFiles_8hpp.html#a49db2cb75d6fbed2f76090d9a8fbcd2c"> 132</a></span>&#160;<span class="preprocessor">#define zXMPFiles_SetDefaultErrorCallback_1(proc,context,limit) \</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="preprocessor"> WXMPFiles_SetDefaultErrorCallback_1 ( WrapFilesErrorNotify, proc, context, limit, &amp;wResult )</span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="WXMPFiles_8hpp.html#adfc59976766bc8cd2bbafcc512ff22e0"> 135</a></span>&#160;<span class="preprocessor">#define zXMPFiles_SetErrorCallback_1(proc,context,limit) \</span></div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="preprocessor"> WXMPFiles_SetErrorCallback_1 ( this-&gt;xmpFilesRef, WrapFilesErrorNotify, proc, context, limit, &amp;wResult )</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="WXMPFiles_8hpp.html#a98022dc34d13e606183e09b65ec48c46"> 138</a></span>&#160;<span class="preprocessor">#define zXMPFiles_ResetErrorCallbackLimit_1(limit) \</span></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="preprocessor"> WXMPFiles_ResetErrorCallbackLimit_1 ( this-&gt;xmpFilesRef, limit, &amp;wResult )</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="WXMPFiles_8hpp.html#a96877191902363ca391c357b0bdeedf4">WXMPFiles_GetVersionInfo_1</a> ( <a class="code" href="structXMP__VersionInfo.html">XMP_VersionInfo</a> * versionInfo );</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="WXMPFiles_8hpp.html#a81794d63d62975b313aff0f869c7dded">WXMPFiles_Initialize_1</a> ( <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options,</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * result );</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="WXMPFiles_8hpp.html#a39fce6bafe20c2847a288c6bded9dcc8">WXMPFiles_Initialize_2</a> ( <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options,</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* pluginFolder,</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* plugins,</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * result );</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="WXMPFiles_8hpp.html#a80f57c97820f7c86ddfccd2814b2c973">WXMPFiles_Terminate_1</a>();</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="WXMPFiles_8hpp.html#a973b744c33e9a06d56f8b6b3a06394a4">WXMPFiles_CTor_1</a> ( <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * result );</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="WXMPFiles_8hpp.html#abd63a02504b3199ea8bd5484a58ff02c">WXMPFiles_IncrementRefCount_1</a> ( <a class="code" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a> xmpFilesRef );</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="WXMPFiles_8hpp.html#a7d423602bfc12e20d83a36df777c4c97">WXMPFiles_DecrementRefCount_1</a> ( <a class="code" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a> xmpFilesRef );</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="WXMPFiles_8hpp.html#a71037373c70c18a183c7a9ee7f7babc9">WXMPFiles_GetFormatInfo_1</a> ( <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> format,</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> * flags, <span class="comment">// ! Can be null.</span></div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * result );</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="WXMPFiles_8hpp.html#a793167f4d653d6f573dc0f4c4f07b298">WXMPFiles_CheckFileFormat_1</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> filePath,</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * result );</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="WXMPFiles_8hpp.html#a0cbf8fcfb5d011fa62c6409a2cd84ede">WXMPFiles_CheckPackageFormat_1</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> folderPath,</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * result );</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="WXMPFiles_8hpp.html#aefdd49820e9bfede87457429d519c8d2">WXMPFiles_GetFileModDate_1</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> filePath,</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <a class="code" href="structXMP__DateTime.html">XMP_DateTime</a> * modDate,</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> * format, <span class="comment">// ! Can be null.</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options,</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * result );</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="WXMPFiles_8hpp.html#af963f839791b4de926e42680c091af32">WXMPFiles_GetAssociatedResources_1</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> filePath,</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordtype">void</span> * resourceList,</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> format, </div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, </div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="WXMP__Common_8hpp.html#a657cdd79947744b4c123bf9df9ac1b60">SetClientStringVectorProc</a> SetClientStringVector,</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * result );</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="WXMPFiles_8hpp.html#a5bfb800ea6bf214b5ac4853e2cfff3cc">WXMPFiles_IsMetadataWritable_1</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> filePath,</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <a class="code" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a> * writable, </div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> format,</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, </div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * result );</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="WXMPFiles_8hpp.html#a58e70573d754cc63966da6fc3fc70a91">WXMPFiles_OpenFile_1</a> ( <a class="code" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a> xmpFilesRef,</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> filePath,</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> format,</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> openFlags,</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * result );</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="preprocessor">#if XMP_StaticBuild // ! Client XMP_IO objects can only be used in static builds.</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> WXMPFiles_OpenFile_2 ( <a class="code" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a> xmpFilesRef,</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="classXMP__IO.html">XMP_IO</a> * clientIO,</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> format,</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> openFlags,</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * result );</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="WXMPFiles_8hpp.html#a2484fe15e37f4f2644f3568be0c7690e">WXMPFiles_CloseFile_1</a> ( <a class="code" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a> xmpFilesRef,</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> closeFlags,</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * result );</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="WXMPFiles_8hpp.html#a661d52226bb7f7bffb8f9a053721dcab">WXMPFiles_GetFileInfo_1</a> ( <a class="code" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a> xmpFilesRef,</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordtype">void</span> * clientPath,</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> * openFlags, <span class="comment">// ! Can be null.</span></div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> * format, <span class="comment">// ! Can be null.</span></div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> * handlerFlags, <span class="comment">// ! Can be null.</span></div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString,</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * result );</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="WXMPFiles_8hpp.html#a3334dd84b04167cc3ae55c77a67f9b2a">WXMPFiles_SetAbortProc_1</a> ( <a class="code" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a> xmpFilesRef,</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <a class="code" href="XMP__Const_8h.html#ac2434559f67332b9d23021b894da838c">XMP_AbortProc</a> abortProc,</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordtype">void</span> * abortArg,</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * result );</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="WXMPFiles_8hpp.html#afd223e1c41a44dadcf1e4e9ab765ba7a">WXMPFiles_GetXMP_1</a> ( <a class="code" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a> xmpFilesRef,</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <span class="comment">// ! Can be null.</span></div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordtype">void</span> * clientPacket,</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <a class="code" href="structXMP__PacketInfo.html">XMP_PacketInfo</a> * packetInfo, <span class="comment">// ! Can be null.</span></div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <a class="code" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString,</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * result );</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="WXMPFiles_8hpp.html#aba40b211c434f8265c102c9ad3e801b5">WXMPFiles_PutXMP_1</a> ( <a class="code" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a> xmpFilesRef,</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <span class="comment">// ! Only one of the XMP object or packet are passed.</span></div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> xmpPacket,</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <a class="code" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> xmpPacketLen,</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * result );</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="WXMPFiles_8hpp.html#a2ef5dde7ef08bd1c25ffc1950e6b93d5">WXMPFiles_CanPutXMP_1</a> ( <a class="code" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a> xmpFilesRef,</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <span class="comment">// ! Only one of the XMP object or packet are passed.</span></div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> xmpPacket,</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <a class="code" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> xmpPacketLen,</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * result );</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="WXMPFiles_8hpp.html#a077600358a735f85573174499356f0c1">WXMPFiles_SetDefaultProgressCallback_1</a> ( <a class="code" href="XMP__Const_8h.html#a61eb4db5a58902c130d3b3929db624db">XMP_ProgressReportWrapper</a> wrapperproc,</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <a class="code" href="XMP__Const_8h.html#a01973e700ac2ba7f3debef340ccaa663">XMP_ProgressReportProc</a> clientProc,</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordtype">void</span> * context,</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordtype">float</span> interval,</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <a class="code" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a> sendStartStop,</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * result );</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="WXMPFiles_8hpp.html#ae613a8d848ffd06181ef67910ba3dcdd">WXMPFiles_SetProgressCallback_1</a> ( <a class="code" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a> xmpFilesRef,</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <a class="code" href="XMP__Const_8h.html#a61eb4db5a58902c130d3b3929db624db">XMP_ProgressReportWrapper</a> wrapperproc,</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <a class="code" href="XMP__Const_8h.html#a01973e700ac2ba7f3debef340ccaa663">XMP_ProgressReportProc</a> clientProc,</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordtype">void</span> * context,</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordtype">float</span> interval,</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <a class="code" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a> sendStartStop,</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * result );</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="comment">// -------------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="WXMPFiles_8hpp.html#a515bb8c705a05236a146cbc7cde59055">WXMPFiles_SetDefaultErrorCallback_1</a> ( <a class="code" href="XMP__Const_8h.html#a24670f4db8bda6e113612fa0c81ffe6b">XMPFiles_ErrorCallbackWrapper</a> wrapperProc,</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <a class="code" href="XMP__Const_8h.html#a7bed3dd93335821e5afa0ac2b07a9640">XMPFiles_ErrorCallbackProc</a> clientProc,</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordtype">void</span> * context,</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; XMP_Uns32 limit,</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="WXMPFiles_8hpp.html#a15b59bc5c4c18355b097b3d0c85ecc3d">WXMPFiles_SetErrorCallback_1</a> ( <a class="code" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a> xmpRef,</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <a class="code" href="XMP__Const_8h.html#a24670f4db8bda6e113612fa0c81ffe6b">XMPFiles_ErrorCallbackWrapper</a> wrapperProc,</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <a class="code" href="XMP__Const_8h.html#a7bed3dd93335821e5afa0ac2b07a9640">XMPFiles_ErrorCallbackProc</a> clientProc,</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordtype">void</span> * context,</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; XMP_Uns32 limit,</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="WXMPFiles_8hpp.html#ab91f3a925e6288c7fb1dc459019b3405">WXMPFiles_ResetErrorCallbackLimit_1</a> ( <a class="code" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a> xmpRef,</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; XMP_Uns32 limit,</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="preprocessor">#if __cplusplus</span></div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;}</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="preprocessor">#endif // __WXMPFiles_hpp__</span></div><div class="ttc" id="WXMP__Common_8hpp_html"><div class="ttname"><a href="WXMP__Common_8hpp.html">WXMP_Common.hpp</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a9f7dcc184f901c713274edfdac5bcc9a"><div class="ttname"><a href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a></div><div class="ttdeci">XMP_Uns32 XMP_StringLen</div><div class="ttdoc">The type for string length parameters. A 32-bit unsigned integer, as big as will be practically neede...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00170">XMP_Const.h:170</a></div></div>
+<div class="ttc" id="WXMPFiles_8hpp_html_abd63a02504b3199ea8bd5484a58ff02c"><div class="ttname"><a href="WXMPFiles_8hpp.html#abd63a02504b3199ea8bd5484a58ff02c">WXMPFiles_IncrementRefCount_1</a></div><div class="ttdeci">void WXMPFiles_IncrementRefCount_1(XMPFilesRef xmpFilesRef)</div></div>
+<div class="ttc" id="XMP__Const_8h_html_ad439e3ceeb4590d310f6125aa12c6df6"><div class="ttname"><a href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a></div><div class="ttdeci">const char * XMP_StringPtr</div><div class="ttdoc">The type for input string parameters. A const char *, a null-terminated UTF-8 string. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00169">XMP_Const.h:169</a></div></div>
+<div class="ttc" id="WXMPFiles_8hpp_html_a0cbf8fcfb5d011fa62c6409a2cd84ede"><div class="ttname"><a href="WXMPFiles_8hpp.html#a0cbf8fcfb5d011fa62c6409a2cd84ede">WXMPFiles_CheckPackageFormat_1</a></div><div class="ttdeci">void WXMPFiles_CheckPackageFormat_1(XMP_StringPtr folderPath, WXMP_Result *result)</div></div>
+<div class="ttc" id="classXMP__IO_html"><div class="ttname"><a href="classXMP__IO.html">XMP_IO</a></div><div class="ttdoc">Abstract base class for client-managed I/O with TXMPFiles. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__IO_8hpp_source.html#l00042">XMP_IO.hpp:42</a></div></div>
+<div class="ttc" id="WXMPFiles_8hpp_html_a80f57c97820f7c86ddfccd2814b2c973"><div class="ttname"><a href="WXMPFiles_8hpp.html#a80f57c97820f7c86ddfccd2814b2c973">WXMPFiles_Terminate_1</a></div><div class="ttdeci">void WXMPFiles_Terminate_1()</div></div>
+<div class="ttc" id="XMP__Const_8h_html_aa4bca98ad67d7a62c60cb13dbbab0f25"><div class="ttname"><a href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a></div><div class="ttdeci">struct __XMPFiles__ * XMPFilesRef</div><div class="ttdoc">An &quot;ABI safe&quot; pointer to the internal part of an XMP file-handling object. Use to pass an XMP file-ha...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00142">XMP_Const.h:142</a></div></div>
+<div class="ttc" id="structXMP__VersionInfo_html"><div class="ttname"><a href="structXMP__VersionInfo.html">XMP_VersionInfo</a></div><div class="ttdoc">XMP Toolkit version information. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01545">XMP_Const.h:1545</a></div></div>
+<div class="ttc" id="WXMPFiles_8hpp_html_a15b59bc5c4c18355b097b3d0c85ecc3d"><div class="ttname"><a href="WXMPFiles_8hpp.html#a15b59bc5c4c18355b097b3d0c85ecc3d">WXMPFiles_SetErrorCallback_1</a></div><div class="ttdeci">void WXMPFiles_SetErrorCallback_1(XMPFilesRef xmpRef, XMPFiles_ErrorCallbackWrapper wrapperProc, XMPFiles_ErrorCallbackProc clientProc, void *context, XMP_Uns32 limit, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPFiles_8hpp_html_a5bfb800ea6bf214b5ac4853e2cfff3cc"><div class="ttname"><a href="WXMPFiles_8hpp.html#a5bfb800ea6bf214b5ac4853e2cfff3cc">WXMPFiles_IsMetadataWritable_1</a></div><div class="ttdeci">void WXMPFiles_IsMetadataWritable_1(XMP_StringPtr filePath, XMP_Bool *writable, XMP_FileFormat format, XMP_OptionBits options, WXMP_Result *result)</div></div>
+<div class="ttc" id="WXMPFiles_8hpp_html_a661d52226bb7f7bffb8f9a053721dcab"><div class="ttname"><a href="WXMPFiles_8hpp.html#a661d52226bb7f7bffb8f9a053721dcab">WXMPFiles_GetFileInfo_1</a></div><div class="ttdeci">void WXMPFiles_GetFileInfo_1(XMPFilesRef xmpFilesRef, void *clientPath, XMP_OptionBits *openFlags, XMP_FileFormat *format, XMP_OptionBits *handlerFlags, SetClientStringProc SetClientString, WXMP_Result *result)</div></div>
+<div class="ttc" id="WXMPFiles_8hpp_html_a595767f50ed53071f5240a94596a3451"><div class="ttname"><a href="WXMPFiles_8hpp.html#a595767f50ed53071f5240a94596a3451">WrapProgressReport</a></div><div class="ttdeci">static XMP_Bool WrapProgressReport(XMP_ProgressReportProc proc, void *context, float elapsedTime, float fractionDone, float secondsToGo)</div><div class="ttdef"><b>Definition:</b> <a href="WXMPFiles_8hpp_source.html#l00039">WXMPFiles.hpp:39</a></div></div>
+<div class="ttc" id="WXMPFiles_8hpp_html_a06a216001c8aed3b678bc2bbe510f59e"><div class="ttname"><a href="WXMPFiles_8hpp.html#a06a216001c8aed3b678bc2bbe510f59e">WrapFilesErrorNotify</a></div><div class="ttdeci">static XMP_Bool WrapFilesErrorNotify(XMPFiles_ErrorCallbackProc proc, void *context, XMP_StringPtr filePath, XMP_ErrorSeverity severity, XMP_Int32 cause, XMP_StringPtr message)</div><div class="ttdef"><b>Definition:</b> <a href="WXMPFiles_8hpp_source.html#l00053">WXMPFiles.hpp:53</a></div></div>
+<div class="ttc" id="WXMPFiles_8hpp_html_a077600358a735f85573174499356f0c1"><div class="ttname"><a href="WXMPFiles_8hpp.html#a077600358a735f85573174499356f0c1">WXMPFiles_SetDefaultProgressCallback_1</a></div><div class="ttdeci">void WXMPFiles_SetDefaultProgressCallback_1(XMP_ProgressReportWrapper wrapperproc, XMP_ProgressReportProc clientProc, void *context, float interval, XMP_Bool sendStartStop, WXMP_Result *result)</div></div>
+<div class="ttc" id="WXMPFiles_8hpp_html_af963f839791b4de926e42680c091af32"><div class="ttname"><a href="WXMPFiles_8hpp.html#af963f839791b4de926e42680c091af32">WXMPFiles_GetAssociatedResources_1</a></div><div class="ttdeci">void WXMPFiles_GetAssociatedResources_1(XMP_StringPtr filePath, void *resourceList, XMP_FileFormat format, XMP_OptionBits options, SetClientStringVectorProc SetClientStringVector, WXMP_Result *result)</div></div>
+<div class="ttc" id="XMP__Const_8h_html_a300d9a9189cb4ddb6970d05389f5c28e"><div class="ttname"><a href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a></div><div class="ttdeci">XMP_Uns32 XMP_FileFormat</div><div class="ttdoc">Type for file format identification constants. See kXMP_PDFFile and following. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00991">XMP_Const.h:991</a></div></div>
+<div class="ttc" id="WXMPFiles_8hpp_html_a2484fe15e37f4f2644f3568be0c7690e"><div class="ttname"><a href="WXMPFiles_8hpp.html#a2484fe15e37f4f2644f3568be0c7690e">WXMPFiles_CloseFile_1</a></div><div class="ttdeci">void WXMPFiles_CloseFile_1(XMPFilesRef xmpFilesRef, XMP_OptionBits closeFlags, WXMP_Result *result)</div></div>
+<div class="ttc" id="structXMP__DateTime_html"><div class="ttname"><a href="structXMP__DateTime.html">XMP_DateTime</a></div><div class="ttdoc">The expanded type for a date and time. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00223">XMP_Const.h:223</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a24670f4db8bda6e113612fa0c81ffe6b"><div class="ttname"><a href="XMP__Const_8h.html#a24670f4db8bda6e113612fa0c81ffe6b">XMPFiles_ErrorCallbackWrapper</a></div><div class="ttdeci">XMP_Bool(* XMPFiles_ErrorCallbackWrapper)(XMPFiles_ErrorCallbackProc clientProc, void *context, XMP_StringPtr filePath, XMP_ErrorSeverity severity, XMP_Int32 cause, XMP_StringPtr message)</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01309">XMP_Const.h:1309</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_aeb865118433be92d88e5f49ed11487c8"><div class="ttname"><a href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a></div><div class="ttdeci">XMP_Uns32 XMP_OptionBits</div><div class="ttdoc">The type for a collection of 32 flag bits. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00172">XMP_Const.h:172</a></div></div>
+<div class="ttc" id="WXMPFiles_8hpp_html_a81794d63d62975b313aff0f869c7dded"><div class="ttname"><a href="WXMPFiles_8hpp.html#a81794d63d62975b313aff0f869c7dded">WXMPFiles_Initialize_1</a></div><div class="ttdeci">void WXMPFiles_Initialize_1(XMP_OptionBits options, WXMP_Result *result)</div></div>
+<div class="ttc" id="XMP__Const_8h_html_ae4a7c9347994883250dc440566eb9f52"><div class="ttname"><a href="XMP__Const_8h.html#ae4a7c9347994883250dc440566eb9f52">XMP_ErrorSeverity</a></div><div class="ttdeci">XMP_Uns8 XMP_ErrorSeverity</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01226">XMP_Const.h:1226</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a0cf68b6f47d136ed571a441a9e0d2248"><div class="ttname"><a href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a></div><div class="ttdeci">XMP_Uns8 XMP_Bool</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00102">XMP_Const.h:102</a></div></div>
+<div class="ttc" id="WXMPFiles_8hpp_html_a58e70573d754cc63966da6fc3fc70a91"><div class="ttname"><a href="WXMPFiles_8hpp.html#a58e70573d754cc63966da6fc3fc70a91">WXMPFiles_OpenFile_1</a></div><div class="ttdeci">void WXMPFiles_OpenFile_1(XMPFilesRef xmpFilesRef, XMP_StringPtr filePath, XMP_FileFormat format, XMP_OptionBits openFlags, WXMP_Result *result)</div></div>
+<div class="ttc" id="WXMPFiles_8hpp_html_ab91f3a925e6288c7fb1dc459019b3405"><div class="ttname"><a href="WXMPFiles_8hpp.html#ab91f3a925e6288c7fb1dc459019b3405">WXMPFiles_ResetErrorCallbackLimit_1</a></div><div class="ttdeci">void WXMPFiles_ResetErrorCallbackLimit_1(XMPFilesRef xmpRef, XMP_Uns32 limit, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="XMP__Const_8h_html_ae6037ae90db1ec7d7c988aec7a8319cb"><div class="ttname"><a href="XMP__Const_8h.html#ae6037ae90db1ec7d7c988aec7a8319cb">ConvertBoolToXMP_Bool</a></div><div class="ttdeci">#define ConvertBoolToXMP_Bool(a)</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00107">XMP_Const.h:107</a></div></div>
+<div class="ttc" id="WXMPFiles_8hpp_html_a515bb8c705a05236a146cbc7cde59055"><div class="ttname"><a href="WXMPFiles_8hpp.html#a515bb8c705a05236a146cbc7cde59055">WXMPFiles_SetDefaultErrorCallback_1</a></div><div class="ttdeci">void WXMPFiles_SetDefaultErrorCallback_1(XMPFiles_ErrorCallbackWrapper wrapperProc, XMPFiles_ErrorCallbackProc clientProc, void *context, XMP_Uns32 limit, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPFiles_8hpp_html_a973b744c33e9a06d56f8b6b3a06394a4"><div class="ttname"><a href="WXMPFiles_8hpp.html#a973b744c33e9a06d56f8b6b3a06394a4">WXMPFiles_CTor_1</a></div><div class="ttdeci">void WXMPFiles_CTor_1(WXMP_Result *result)</div></div>
+<div class="ttc" id="WXMPFiles_8hpp_html_aefdd49820e9bfede87457429d519c8d2"><div class="ttname"><a href="WXMPFiles_8hpp.html#aefdd49820e9bfede87457429d519c8d2">WXMPFiles_GetFileModDate_1</a></div><div class="ttdeci">void WXMPFiles_GetFileModDate_1(XMP_StringPtr filePath, XMP_DateTime *modDate, XMP_FileFormat *format, XMP_OptionBits options, WXMP_Result *result)</div></div>
+<div class="ttc" id="WXMP__Common_8hpp_html_ae22e640b3404ce206ad1678841bcd11f"><div class="ttname"><a href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a></div><div class="ttdeci">void(* SetClientStringProc)(void *clientPtr, XMP_StringPtr valuePtr, XMP_StringLen valueLen)</div><div class="ttdef"><b>Definition:</b> <a href="WXMP__Common_8hpp_source.html#l00023">WXMP_Common.hpp:23</a></div></div>
+<div class="ttc" id="WXMPFiles_8hpp_html_a71037373c70c18a183c7a9ee7f7babc9"><div class="ttname"><a href="WXMPFiles_8hpp.html#a71037373c70c18a183c7a9ee7f7babc9">WXMPFiles_GetFormatInfo_1</a></div><div class="ttdeci">void WXMPFiles_GetFormatInfo_1(XMP_FileFormat format, XMP_OptionBits *flags, WXMP_Result *result)</div></div>
+<div class="ttc" id="structWXMP__Result_html"><div class="ttname"><a href="structWXMP__Result.html">WXMP_Result</a></div><div class="ttdef"><b>Definition:</b> <a href="WXMP__Common_8hpp_source.html#l00026">WXMP_Common.hpp:26</a></div></div>
+<div class="ttc" id="WXMPFiles_8hpp_html_a3334dd84b04167cc3ae55c77a67f9b2a"><div class="ttname"><a href="WXMPFiles_8hpp.html#a3334dd84b04167cc3ae55c77a67f9b2a">WXMPFiles_SetAbortProc_1</a></div><div class="ttdeci">void WXMPFiles_SetAbortProc_1(XMPFilesRef xmpFilesRef, XMP_AbortProc abortProc, void *abortArg, WXMP_Result *result)</div></div>
+<div class="ttc" id="WXMPFiles_8hpp_html_a7d423602bfc12e20d83a36df777c4c97"><div class="ttname"><a href="WXMPFiles_8hpp.html#a7d423602bfc12e20d83a36df777c4c97">WXMPFiles_DecrementRefCount_1</a></div><div class="ttdeci">void WXMPFiles_DecrementRefCount_1(XMPFilesRef xmpFilesRef)</div></div>
+<div class="ttc" id="WXMPFiles_8hpp_html_afd223e1c41a44dadcf1e4e9ab765ba7a"><div class="ttname"><a href="WXMPFiles_8hpp.html#afd223e1c41a44dadcf1e4e9ab765ba7a">WXMPFiles_GetXMP_1</a></div><div class="ttdeci">void WXMPFiles_GetXMP_1(XMPFilesRef xmpFilesRef, XMPMetaRef xmpRef, void *clientPacket, XMP_PacketInfo *packetInfo, SetClientStringProc SetClientString, WXMP_Result *result)</div></div>
+<div class="ttc" id="WXMPFiles_8hpp_html_a793167f4d653d6f573dc0f4c4f07b298"><div class="ttname"><a href="WXMPFiles_8hpp.html#a793167f4d653d6f573dc0f4c4f07b298">WXMPFiles_CheckFileFormat_1</a></div><div class="ttdeci">void WXMPFiles_CheckFileFormat_1(XMP_StringPtr filePath, WXMP_Result *result)</div></div>
+<div class="ttc" id="WXMPFiles_8hpp_html_aba40b211c434f8265c102c9ad3e801b5"><div class="ttname"><a href="WXMPFiles_8hpp.html#aba40b211c434f8265c102c9ad3e801b5">WXMPFiles_PutXMP_1</a></div><div class="ttdeci">void WXMPFiles_PutXMP_1(XMPFilesRef xmpFilesRef, XMPMetaRef xmpRef, XMP_StringPtr xmpPacket, XMP_StringLen xmpPacketLen, WXMP_Result *result)</div></div>
+<div class="ttc" id="WXMP__Common_8hpp_html_a657cdd79947744b4c123bf9df9ac1b60"><div class="ttname"><a href="WXMP__Common_8hpp.html#a657cdd79947744b4c123bf9df9ac1b60">SetClientStringVectorProc</a></div><div class="ttdeci">void(* SetClientStringVectorProc)(void *clientPtr, XMP_StringPtr *arrayPtr, XMP_Uns32 stringCount)</div><div class="ttdef"><b>Definition:</b> <a href="WXMP__Common_8hpp_source.html#l00024">WXMP_Common.hpp:24</a></div></div>
+<div class="ttc" id="WXMPFiles_8hpp_html_a2ef5dde7ef08bd1c25ffc1950e6b93d5"><div class="ttname"><a href="WXMPFiles_8hpp.html#a2ef5dde7ef08bd1c25ffc1950e6b93d5">WXMPFiles_CanPutXMP_1</a></div><div class="ttdeci">void WXMPFiles_CanPutXMP_1(XMPFilesRef xmpFilesRef, XMPMetaRef xmpRef, XMP_StringPtr xmpPacket, XMP_StringLen xmpPacketLen, WXMP_Result *result)</div></div>
+<div class="ttc" id="WXMPFiles_8hpp_html_ae613a8d848ffd06181ef67910ba3dcdd"><div class="ttname"><a href="WXMPFiles_8hpp.html#ae613a8d848ffd06181ef67910ba3dcdd">WXMPFiles_SetProgressCallback_1</a></div><div class="ttdeci">void WXMPFiles_SetProgressCallback_1(XMPFilesRef xmpFilesRef, XMP_ProgressReportWrapper wrapperproc, XMP_ProgressReportProc clientProc, void *context, float interval, XMP_Bool sendStartStop, WXMP_Result *result)</div></div>
+<div class="ttc" id="WXMPFiles_8hpp_html_a96877191902363ca391c357b0bdeedf4"><div class="ttname"><a href="WXMPFiles_8hpp.html#a96877191902363ca391c357b0bdeedf4">WXMPFiles_GetVersionInfo_1</a></div><div class="ttdeci">void WXMPFiles_GetVersionInfo_1(XMP_VersionInfo *versionInfo)</div></div>
+<div class="ttc" id="XMP__Const_8h_html_a61eb4db5a58902c130d3b3929db624db"><div class="ttname"><a href="XMP__Const_8h.html#a61eb4db5a58902c130d3b3929db624db">XMP_ProgressReportWrapper</a></div><div class="ttdeci">XMP_Bool(* XMP_ProgressReportWrapper)(XMP_ProgressReportProc proc, void *context, float elapsedTime, float fractionDone, float secondsToGo)</div><div class="ttdoc">Internal: The signature of a client-side wrapper for the progress report callback. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01535">XMP_Const.h:1535</a></div></div>
+<div class="ttc" id="structXMP__PacketInfo_html"><div class="ttname"><a href="structXMP__PacketInfo.html">XMP_PacketInfo</a></div><div class="ttdoc">XMP packet description. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01068">XMP_Const.h:1068</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a01973e700ac2ba7f3debef340ccaa663"><div class="ttname"><a href="XMP__Const_8h.html#a01973e700ac2ba7f3debef340ccaa663">XMP_ProgressReportProc</a></div><div class="ttdeci">bool(* XMP_ProgressReportProc)(void *context, float elapsedTime, float fractionDone, float secondsToGo)</div><div class="ttdoc">The signature of a client-defined callback for progress report notifications. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01530">XMP_Const.h:1530</a></div></div>
+<div class="ttc" id="XMP__IO_8hpp_html"><div class="ttname"><a href="XMP__IO_8hpp.html">XMP_IO.hpp</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_ac2434559f67332b9d23021b894da838c"><div class="ttname"><a href="XMP__Const_8h.html#ac2434559f67332b9d23021b894da838c">XMP_AbortProc</a></div><div class="ttdeci">bool(* XMP_AbortProc)(void *arg)</div><div class="ttdoc">The signature of a client-defined callback to check for a user request to abort a time-consuming oper...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01507">XMP_Const.h:1507</a></div></div>
+<div class="ttc" id="WXMPFiles_8hpp_html_a39fce6bafe20c2847a288c6bded9dcc8"><div class="ttname"><a href="WXMPFiles_8hpp.html#a39fce6bafe20c2847a288c6bded9dcc8">WXMPFiles_Initialize_2</a></div><div class="ttdeci">void WXMPFiles_Initialize_2(XMP_OptionBits options, const char *pluginFolder, const char *plugins, WXMP_Result *result)</div></div>
+<div class="ttc" id="XMP__Const_8h_html_a549d5e2cbcb58302d3df840a0205283e"><div class="ttname"><a href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a></div><div class="ttdeci">struct __XMPMeta__ * XMPMetaRef</div><div class="ttdoc">An &quot;ABI safe&quot; pointer to the internal part of an XMP object. Use to pass an XMP object across client ...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00130">XMP_Const.h:130</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a7bed3dd93335821e5afa0ac2b07a9640"><div class="ttname"><a href="XMP__Const_8h.html#a7bed3dd93335821e5afa0ac2b07a9640">XMPFiles_ErrorCallbackProc</a></div><div class="ttdeci">bool(* XMPFiles_ErrorCallbackProc)(void *context, XMP_StringPtr filePath, XMP_ErrorSeverity severity, XMP_Int32 cause, XMP_StringPtr message)</div><div class="ttdoc">The signature of a client-defined callback for TXMPFiles error notifications. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01301">XMP_Const.h:1301</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/WXMPIterator_8hpp.html b/docs/API/WXMPIterator_8hpp.html
new file mode 100755
index 0000000..38e0685
--- /dev/null
+++ b/docs/API/WXMPIterator_8hpp.html
@@ -0,0 +1,439 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/client-glue/WXMPIterator.hpp File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('WXMPIterator_8hpp.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#define-members">Macros</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">WXMPIterator.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="WXMP__Common_8hpp_source.html">client-glue/WXMP_Common.hpp</a>&quot;</code><br />
+</div>
+<p><a href="WXMPIterator_8hpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a6beaeb3189c8f5675a7ad399a3d443c7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPIterator_8hpp.html#a6beaeb3189c8f5675a7ad399a3d443c7">__WXMPIterator_hpp__</a>&#160;&#160;&#160;1</td></tr>
+<tr class="separator:a6beaeb3189c8f5675a7ad399a3d443c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a490d04bf7641a1fa38dc1d4a4c106de9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPIterator_8hpp.html#a490d04bf7641a1fa38dc1d4a4c106de9">zXMPIterator_PropCTor_1</a>(xmpRef, schemaNS, propName, options)&#160;&#160;&#160;<a class="el" href="WXMPIterator_8hpp.html#a6835fb3f1b44169a838466f23f197f4d">WXMPIterator_PropCTor_1</a> ( xmpRef, schemaNS, propName, options, &amp;wResult );</td></tr>
+<tr class="separator:a490d04bf7641a1fa38dc1d4a4c106de9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa53f3af28fb173ee0f6d01b9f1196d6d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPIterator_8hpp.html#aa53f3af28fb173ee0f6d01b9f1196d6d">zXMPIterator_TableCTor_1</a>(schemaNS, propName, options)&#160;&#160;&#160;<a class="el" href="WXMPIterator_8hpp.html#a4bcacc41e340e5c12ece3814d2a76d9e">WXMPIterator_TableCTor_1</a> ( schemaNS, propName, options, &amp;wResult );</td></tr>
+<tr class="separator:aa53f3af28fb173ee0f6d01b9f1196d6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac5cfa7bd53753408e8e6b20225429fa0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPIterator_8hpp.html#ac5cfa7bd53753408e8e6b20225429fa0">zXMPIterator_Next_1</a>(schemaNS, propPath, propValue, options, SetClientString)&#160;&#160;&#160;<a class="el" href="WXMPIterator_8hpp.html#a3d19f210969f98668bb9a80281722d5b">WXMPIterator_Next_1</a> ( this-&gt;iterRef, schemaNS, propPath, propValue, options, SetClientString, &amp;wResult );</td></tr>
+<tr class="separator:ac5cfa7bd53753408e8e6b20225429fa0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa79ff88d5629b5161a4cef06f1c9d121"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPIterator_8hpp.html#aa79ff88d5629b5161a4cef06f1c9d121">zXMPIterator_Skip_1</a>(options)&#160;&#160;&#160;<a class="el" href="WXMPIterator_8hpp.html#ae6bb05117662013a9a5873f9d8ce4f2c">WXMPIterator_Skip_1</a> ( this-&gt;iterRef, options, &amp;wResult );</td></tr>
+<tr class="separator:aa79ff88d5629b5161a4cef06f1c9d121"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a6835fb3f1b44169a838466f23f197f4d"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPIterator_8hpp.html#a6835fb3f1b44169a838466f23f197f4d">WXMPIterator_PropCTor_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a6835fb3f1b44169a838466f23f197f4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4bcacc41e340e5c12ece3814d2a76d9e"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPIterator_8hpp.html#a4bcacc41e340e5c12ece3814d2a76d9e">WXMPIterator_TableCTor_1</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a4bcacc41e340e5c12ece3814d2a76d9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaad6b1b5368943be9cb4ce3285c3f5f3"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPIterator_8hpp.html#aaad6b1b5368943be9cb4ce3285c3f5f3">WXMPIterator_IncrementRefCount_1</a> (<a class="el" href="XMP__Const_8h.html#a6ade57a30fb1e40d6aa9695c440fc3d2">XMPIteratorRef</a> iterRef)</td></tr>
+<tr class="separator:aaad6b1b5368943be9cb4ce3285c3f5f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6edb320022815734935207c5d81453c1"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPIterator_8hpp.html#a6edb320022815734935207c5d81453c1">WXMPIterator_DecrementRefCount_1</a> (<a class="el" href="XMP__Const_8h.html#a6ade57a30fb1e40d6aa9695c440fc3d2">XMPIteratorRef</a> iterRef)</td></tr>
+<tr class="separator:a6edb320022815734935207c5d81453c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3d19f210969f98668bb9a80281722d5b"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPIterator_8hpp.html#a3d19f210969f98668bb9a80281722d5b">WXMPIterator_Next_1</a> (<a class="el" href="XMP__Const_8h.html#a6ade57a30fb1e40d6aa9695c440fc3d2">XMPIteratorRef</a> iterRef, void *schemaNS, void *propPath, void *propValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *options, <a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a3d19f210969f98668bb9a80281722d5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae6bb05117662013a9a5873f9d8ce4f2c"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPIterator_8hpp.html#ae6bb05117662013a9a5873f9d8ce4f2c">WXMPIterator_Skip_1</a> (<a class="el" href="XMP__Const_8h.html#a6ade57a30fb1e40d6aa9695c440fc3d2">XMPIteratorRef</a> iterRef, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:ae6bb05117662013a9a5873f9d8ce4f2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="a6beaeb3189c8f5675a7ad399a3d443c7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define __WXMPIterator_hpp__&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPIterator_8hpp_source.html#l00002">2</a> of file <a class="el" href="WXMPIterator_8hpp_source.html">WXMPIterator.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac5cfa7bd53753408e8e6b20225429fa0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPIterator_Next_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">schemaNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">propPath, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">propValue, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">options, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">SetClientString&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPIterator_8hpp.html#a3d19f210969f98668bb9a80281722d5b">WXMPIterator_Next_1</a> ( this-&gt;iterRef, schemaNS, propPath, propValue, options, SetClientString, &amp;wResult );</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPIterator_8hpp_source.html#l00027">27</a> of file <a class="el" href="WXMPIterator_8hpp_source.html">WXMPIterator.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a490d04bf7641a1fa38dc1d4a4c106de9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPIterator_PropCTor_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">xmpRef, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">schemaNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">propName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">options&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPIterator_8hpp.html#a6835fb3f1b44169a838466f23f197f4d">WXMPIterator_PropCTor_1</a> ( xmpRef, schemaNS, propName, options, &amp;wResult );</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPIterator_8hpp_source.html#l00020">20</a> of file <a class="el" href="WXMPIterator_8hpp_source.html">WXMPIterator.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa79ff88d5629b5161a4cef06f1c9d121"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPIterator_Skip_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">options</td><td>)</td>
+ <td>&#160;&#160;&#160;<a class="el" href="WXMPIterator_8hpp.html#ae6bb05117662013a9a5873f9d8ce4f2c">WXMPIterator_Skip_1</a> ( this-&gt;iterRef, options, &amp;wResult );</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPIterator_8hpp_source.html#l00030">30</a> of file <a class="el" href="WXMPIterator_8hpp_source.html">WXMPIterator.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa53f3af28fb173ee0f6d01b9f1196d6d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPIterator_TableCTor_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">schemaNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">propName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">options&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPIterator_8hpp.html#a4bcacc41e340e5c12ece3814d2a76d9e">WXMPIterator_TableCTor_1</a> ( schemaNS, propName, options, &amp;wResult );</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPIterator_8hpp_source.html#l00023">23</a> of file <a class="el" href="WXMPIterator_8hpp_source.html">WXMPIterator.hpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a6edb320022815734935207c5d81453c1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPIterator_DecrementRefCount_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a6ade57a30fb1e40d6aa9695c440fc3d2">XMPIteratorRef</a>&#160;</td>
+ <td class="paramname"><em>iterRef</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aaad6b1b5368943be9cb4ce3285c3f5f3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPIterator_IncrementRefCount_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a6ade57a30fb1e40d6aa9695c440fc3d2">XMPIteratorRef</a>&#160;</td>
+ <td class="paramname"><em>iterRef</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3d19f210969f98668bb9a80281722d5b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPIterator_Next_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a6ade57a30fb1e40d6aa9695c440fc3d2">XMPIteratorRef</a>&#160;</td>
+ <td class="paramname"><em>iterRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>propPath</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>propValue</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a>&#160;</td>
+ <td class="paramname"><em>SetClientString</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6835fb3f1b44169a838466f23f197f4d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPIterator_PropCTor_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae6bb05117662013a9a5873f9d8ce4f2c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPIterator_Skip_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a6ade57a30fb1e40d6aa9695c440fc3d2">XMPIteratorRef</a>&#160;</td>
+ <td class="paramname"><em>iterRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4bcacc41e340e5c12ece3814d2a76d9e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPIterator_TableCTor_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/WXMPIterator_8hpp.js b/docs/API/WXMPIterator_8hpp.js
new file mode 100755
index 0000000..b73cbd6
--- /dev/null
+++ b/docs/API/WXMPIterator_8hpp.js
@@ -0,0 +1,14 @@
+var WXMPIterator_8hpp =
+[
+ [ "__WXMPIterator_hpp__", "WXMPIterator_8hpp.html#a6beaeb3189c8f5675a7ad399a3d443c7", null ],
+ [ "zXMPIterator_Next_1", "WXMPIterator_8hpp.html#ac5cfa7bd53753408e8e6b20225429fa0", null ],
+ [ "zXMPIterator_PropCTor_1", "WXMPIterator_8hpp.html#a490d04bf7641a1fa38dc1d4a4c106de9", null ],
+ [ "zXMPIterator_Skip_1", "WXMPIterator_8hpp.html#aa79ff88d5629b5161a4cef06f1c9d121", null ],
+ [ "zXMPIterator_TableCTor_1", "WXMPIterator_8hpp.html#aa53f3af28fb173ee0f6d01b9f1196d6d", null ],
+ [ "WXMPIterator_DecrementRefCount_1", "WXMPIterator_8hpp.html#a6edb320022815734935207c5d81453c1", null ],
+ [ "WXMPIterator_IncrementRefCount_1", "WXMPIterator_8hpp.html#aaad6b1b5368943be9cb4ce3285c3f5f3", null ],
+ [ "WXMPIterator_Next_1", "WXMPIterator_8hpp.html#a3d19f210969f98668bb9a80281722d5b", null ],
+ [ "WXMPIterator_PropCTor_1", "WXMPIterator_8hpp.html#a6835fb3f1b44169a838466f23f197f4d", null ],
+ [ "WXMPIterator_Skip_1", "WXMPIterator_8hpp.html#ae6bb05117662013a9a5873f9d8ce4f2c", null ],
+ [ "WXMPIterator_TableCTor_1", "WXMPIterator_8hpp.html#a4bcacc41e340e5c12ece3814d2a76d9e", null ]
+]; \ No newline at end of file
diff --git a/docs/API/WXMPIterator_8hpp_source.html b/docs/API/WXMPIterator_8hpp_source.html
new file mode 100755
index 0000000..587b5b9
--- /dev/null
+++ b/docs/API/WXMPIterator_8hpp_source.html
@@ -0,0 +1,62 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/client-glue/WXMPIterator.hpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('WXMPIterator_8hpp_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">WXMPIterator.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="WXMPIterator_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#if ! __WXMPIterator_hpp__</span></div><div class="line"><a name="l00002"></a><span class="lineno"><a class="line" href="WXMPIterator_8hpp.html#a6beaeb3189c8f5675a7ad399a3d443c7"> 2</a></span>&#160;<span class="preprocessor">#define __WXMPIterator_hpp__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright 2002 Adobe Systems Incorporated</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// All Rights Reserved.</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="WXMP__Common_8hpp.html">client-glue/WXMP_Common.hpp</a>&quot;</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#if __cplusplus</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="WXMPIterator_8hpp.html#a490d04bf7641a1fa38dc1d4a4c106de9"> 20</a></span>&#160;<span class="preprocessor">#define zXMPIterator_PropCTor_1(xmpRef,schemaNS,propName,options) \</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor"> WXMPIterator_PropCTor_1 ( xmpRef, schemaNS, propName, options, &amp;wResult );</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="WXMPIterator_8hpp.html#aa53f3af28fb173ee0f6d01b9f1196d6d"> 23</a></span>&#160;<span class="preprocessor">#define zXMPIterator_TableCTor_1(schemaNS,propName,options) \</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor"> WXMPIterator_TableCTor_1 ( schemaNS, propName, options, &amp;wResult );</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="WXMPIterator_8hpp.html#ac5cfa7bd53753408e8e6b20225429fa0"> 27</a></span>&#160;<span class="preprocessor">#define zXMPIterator_Next_1(schemaNS,propPath,propValue,options,SetClientString) \</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor"> WXMPIterator_Next_1 ( this-&gt;iterRef, schemaNS, propPath, propValue, options, SetClientString, &amp;wResult );</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="WXMPIterator_8hpp.html#aa79ff88d5629b5161a4cef06f1c9d121"> 30</a></span>&#160;<span class="preprocessor">#define zXMPIterator_Skip_1(options) \</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor"> WXMPIterator_Skip_1 ( this-&gt;iterRef, options, &amp;wResult );</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment">// -------------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPIterator_8hpp.html#a6835fb3f1b44169a838466f23f197f4d">WXMPIterator_PropCTor_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options,</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPIterator_8hpp.html#a4bcacc41e340e5c12ece3814d2a76d9e">WXMPIterator_TableCTor_1</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options,</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPIterator_8hpp.html#aaad6b1b5368943be9cb4ce3285c3f5f3">WXMPIterator_IncrementRefCount_1</a> ( <a class="code" href="XMP__Const_8h.html#a6ade57a30fb1e40d6aa9695c440fc3d2">XMPIteratorRef</a> iterRef );</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPIterator_8hpp.html#a6edb320022815734935207c5d81453c1">WXMPIterator_DecrementRefCount_1</a> ( <a class="code" href="XMP__Const_8h.html#a6ade57a30fb1e40d6aa9695c440fc3d2">XMPIteratorRef</a> iterRef );</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPIterator_8hpp.html#a3d19f210969f98668bb9a80281722d5b">WXMPIterator_Next_1</a> ( <a class="code" href="XMP__Const_8h.html#a6ade57a30fb1e40d6aa9695c440fc3d2">XMPIteratorRef</a> iterRef,</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordtype">void</span> * schemaNS,</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordtype">void</span> * propPath,</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordtype">void</span> * propValue,</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> * options,</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <a class="code" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString,</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPIterator_8hpp.html#ae6bb05117662013a9a5873f9d8ce4f2c">WXMPIterator_Skip_1</a> ( <a class="code" href="XMP__Const_8h.html#a6ade57a30fb1e40d6aa9695c440fc3d2">XMPIteratorRef</a> iterRef,</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options,</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor">#if __cplusplus</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;} <span class="comment">/* extern &quot;C&quot; */</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor">#endif // __WXMPIterator_hpp__</span></div><div class="ttc" id="WXMP__Common_8hpp_html"><div class="ttname"><a href="WXMP__Common_8hpp.html">WXMP_Common.hpp</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_ad439e3ceeb4590d310f6125aa12c6df6"><div class="ttname"><a href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a></div><div class="ttdeci">const char * XMP_StringPtr</div><div class="ttdoc">The type for input string parameters. A const char *, a null-terminated UTF-8 string. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00169">XMP_Const.h:169</a></div></div>
+<div class="ttc" id="WXMPIterator_8hpp_html_aaad6b1b5368943be9cb4ce3285c3f5f3"><div class="ttname"><a href="WXMPIterator_8hpp.html#aaad6b1b5368943be9cb4ce3285c3f5f3">WXMPIterator_IncrementRefCount_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPIterator_IncrementRefCount_1(XMPIteratorRef iterRef)</div></div>
+<div class="ttc" id="XMP__Environment_8h_html_aac6a4810b1f485f147ab833be63f4d7b"><div class="ttname"><a href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a></div><div class="ttdeci">#define XMP_PUBLIC</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00188">XMP_Environment.h:188</a></div></div>
+<div class="ttc" id="WXMPIterator_8hpp_html_a3d19f210969f98668bb9a80281722d5b"><div class="ttname"><a href="WXMPIterator_8hpp.html#a3d19f210969f98668bb9a80281722d5b">WXMPIterator_Next_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPIterator_Next_1(XMPIteratorRef iterRef, void *schemaNS, void *propPath, void *propValue, XMP_OptionBits *options, SetClientStringProc SetClientString, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="XMP__Const_8h_html_aeb865118433be92d88e5f49ed11487c8"><div class="ttname"><a href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a></div><div class="ttdeci">XMP_Uns32 XMP_OptionBits</div><div class="ttdoc">The type for a collection of 32 flag bits. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00172">XMP_Const.h:172</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a6ade57a30fb1e40d6aa9695c440fc3d2"><div class="ttname"><a href="XMP__Const_8h.html#a6ade57a30fb1e40d6aa9695c440fc3d2">XMPIteratorRef</a></div><div class="ttdeci">struct __XMPIterator__ * XMPIteratorRef</div><div class="ttdoc">An &quot;ABI safe&quot; pointer to the internal part of an XMP iteration object. Use to pass an XMP iteration o...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00134">XMP_Const.h:134</a></div></div>
+<div class="ttc" id="WXMP__Common_8hpp_html_ae22e640b3404ce206ad1678841bcd11f"><div class="ttname"><a href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a></div><div class="ttdeci">void(* SetClientStringProc)(void *clientPtr, XMP_StringPtr valuePtr, XMP_StringLen valueLen)</div><div class="ttdef"><b>Definition:</b> <a href="WXMP__Common_8hpp_source.html#l00023">WXMP_Common.hpp:23</a></div></div>
+<div class="ttc" id="structWXMP__Result_html"><div class="ttname"><a href="structWXMP__Result.html">WXMP_Result</a></div><div class="ttdef"><b>Definition:</b> <a href="WXMP__Common_8hpp_source.html#l00026">WXMP_Common.hpp:26</a></div></div>
+<div class="ttc" id="WXMPIterator_8hpp_html_a4bcacc41e340e5c12ece3814d2a76d9e"><div class="ttname"><a href="WXMPIterator_8hpp.html#a4bcacc41e340e5c12ece3814d2a76d9e">WXMPIterator_TableCTor_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPIterator_TableCTor_1(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_OptionBits options, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPIterator_8hpp_html_a6835fb3f1b44169a838466f23f197f4d"><div class="ttname"><a href="WXMPIterator_8hpp.html#a6835fb3f1b44169a838466f23f197f4d">WXMPIterator_PropCTor_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPIterator_PropCTor_1(XMPMetaRef xmpRef, XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_OptionBits options, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPIterator_8hpp_html_ae6bb05117662013a9a5873f9d8ce4f2c"><div class="ttname"><a href="WXMPIterator_8hpp.html#ae6bb05117662013a9a5873f9d8ce4f2c">WXMPIterator_Skip_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPIterator_Skip_1(XMPIteratorRef iterRef, XMP_OptionBits options, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPIterator_8hpp_html_a6edb320022815734935207c5d81453c1"><div class="ttname"><a href="WXMPIterator_8hpp.html#a6edb320022815734935207c5d81453c1">WXMPIterator_DecrementRefCount_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPIterator_DecrementRefCount_1(XMPIteratorRef iterRef)</div></div>
+<div class="ttc" id="XMP__Const_8h_html_a549d5e2cbcb58302d3df840a0205283e"><div class="ttname"><a href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a></div><div class="ttdeci">struct __XMPMeta__ * XMPMetaRef</div><div class="ttdoc">An &quot;ABI safe&quot; pointer to the internal part of an XMP object. Use to pass an XMP object across client ...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00130">XMP_Const.h:130</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/WXMPMeta_8hpp.html b/docs/API/WXMPMeta_8hpp.html
new file mode 100755
index 0000000..7f9fb60
--- /dev/null
+++ b/docs/API/WXMPMeta_8hpp.html
@@ -0,0 +1,4803 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/client-glue/WXMPMeta.hpp File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('WXMPMeta_8hpp.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#define-members">Macros</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">WXMPMeta.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="WXMP__Common_8hpp_source.html">client-glue/WXMP_Common.hpp</a>&quot;</code><br />
+</div>
+<p><a href="WXMPMeta_8hpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:afff47bd31a726ad7c0b3578a0d8bb9d7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#afff47bd31a726ad7c0b3578a0d8bb9d7">__WXMPMeta_hpp__</a>&#160;&#160;&#160;1</td></tr>
+<tr class="separator:afff47bd31a726ad7c0b3578a0d8bb9d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a72415a5d17bb47c3d818d11a710f5c0b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a72415a5d17bb47c3d818d11a710f5c0b">zXMPMeta_GetVersionInfo_1</a>(info)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#aa678642f09d4bc3ba83b55364112bf25">WXMPMeta_GetVersionInfo_1</a> ( info /* no wResult */ )</td></tr>
+<tr class="separator:a72415a5d17bb47c3d818d11a710f5c0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af0ee01859f7324e6668fe372bc54a2a4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#af0ee01859f7324e6668fe372bc54a2a4">zXMPMeta_Initialize_1</a>()&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a459d905958efba79649c9884ecbfc3d8">WXMPMeta_Initialize_1</a> ( &amp;wResult )</td></tr>
+<tr class="separator:af0ee01859f7324e6668fe372bc54a2a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af9276110cbdeb3b3098b6bbdf620977f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#af9276110cbdeb3b3098b6bbdf620977f">zXMPMeta_Terminate_1</a>()&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a06d38f8fdf6a46ff8e672a98fb50f2f4">WXMPMeta_Terminate_1</a> ( /* no wResult */ )</td></tr>
+<tr class="separator:af9276110cbdeb3b3098b6bbdf620977f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5407ff91fcbe5cae856e8644e998c396"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a5407ff91fcbe5cae856e8644e998c396">zXMPMeta_CTor_1</a>()&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a3fb6f849c25f5bf964beb7eb9e98049d">WXMPMeta_CTor_1</a> ( &amp;wResult )</td></tr>
+<tr class="separator:a5407ff91fcbe5cae856e8644e998c396"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a042f1cb44600209bed7d27a26ee937a3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a042f1cb44600209bed7d27a26ee937a3">zXMPMeta_GetGlobalOptions_1</a>()&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a58a125d8a9eeee3a8906d50262faf06c">WXMPMeta_GetGlobalOptions_1</a> ( &amp;wResult )</td></tr>
+<tr class="separator:a042f1cb44600209bed7d27a26ee937a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab7ed5170b4879381078d0724cbdbbd0f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#ab7ed5170b4879381078d0724cbdbbd0f">zXMPMeta_SetGlobalOptions_1</a>(options)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a1239ebede304d572f34b1319c0b14c05">WXMPMeta_SetGlobalOptions_1</a> ( options, &amp;wResult )</td></tr>
+<tr class="separator:ab7ed5170b4879381078d0724cbdbbd0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5e549c2a44cf580c1f6a25f02ba767af"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a5e549c2a44cf580c1f6a25f02ba767af">zXMPMeta_DumpNamespaces_1</a>(outProc, refCon)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a0328d3f6b63a301c17469f3a636bee8d">WXMPMeta_DumpNamespaces_1</a> ( outProc, refCon, &amp;wResult )</td></tr>
+<tr class="separator:a5e549c2a44cf580c1f6a25f02ba767af"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a696f7638346770aecec1a4570098d9fd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a696f7638346770aecec1a4570098d9fd">zXMPMeta_Use_CPP_DOM_APIs_1</a>(useNewCoreAPIs)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a6d4b43bab339b01d216b29d89e695308">WXMPMeta_Use_CPP_DOM_APIs_1</a>( useNewCoreAPIs, &amp;wResult )</td></tr>
+<tr class="separator:a696f7638346770aecec1a4570098d9fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adde0feeb518ce416f906292542a92d46"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#adde0feeb518ce416f906292542a92d46">zXMPMeta_RegisterNamespace_1</a>(namespaceURI, suggestedPrefix, actualPrefix, SetClientString)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a0b32b12b061f62eb3f8ec1784165e03a">WXMPMeta_RegisterNamespace_1</a> ( namespaceURI, suggestedPrefix, actualPrefix, SetClientString, &amp;wResult )</td></tr>
+<tr class="separator:adde0feeb518ce416f906292542a92d46"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afcbc2ac610c4e23a128ff80203e3a4a5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#afcbc2ac610c4e23a128ff80203e3a4a5">zXMPMeta_GetNamespacePrefix_1</a>(namespaceURI, namespacePrefix, SetClientString)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a7f407dba2b3fee31aad4cc0887ba7a0e">WXMPMeta_GetNamespacePrefix_1</a> ( namespaceURI, namespacePrefix, SetClientString, &amp;wResult )</td></tr>
+<tr class="separator:afcbc2ac610c4e23a128ff80203e3a4a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a21cb3d8399b93c52cb4000cec668c5e3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a21cb3d8399b93c52cb4000cec668c5e3">zXMPMeta_GetNamespaceURI_1</a>(namespacePrefix, namespaceURI, SetClientString)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#ae133a695d6efe0db6528395345f3c0c6">WXMPMeta_GetNamespaceURI_1</a> ( namespacePrefix, namespaceURI, SetClientString, &amp;wResult )</td></tr>
+<tr class="separator:a21cb3d8399b93c52cb4000cec668c5e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad5e74b2f1acce6eab6e090c54ea742cc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#ad5e74b2f1acce6eab6e090c54ea742cc">zXMPMeta_DeleteNamespace_1</a>(namespaceURI)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a8887351f8aee3cc57ababc137ab0719a">WXMPMeta_DeleteNamespace_1</a> ( namespaceURI, &amp;wResult )</td></tr>
+<tr class="separator:ad5e74b2f1acce6eab6e090c54ea742cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4b0a23906a0bd1ef87d381a7d940b5b0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a4b0a23906a0bd1ef87d381a7d940b5b0">zXMPMeta_GetIXMPMetadata_1</a>()&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a0685ed8dc59360366c629cdc559076ce">WXMPMeta_GetIXMPMetadata_1</a>( this-&gt;xmpRef, &amp;wResult )</td></tr>
+<tr class="separator:a4b0a23906a0bd1ef87d381a7d940b5b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af4035499938bb4645b207b7ff65f19d7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#af4035499938bb4645b207b7ff65f19d7">zXMPMeta_GetProperty_1</a>(schemaNS, propName, propValue, options, SetClientString)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a2c650c402ba4850b082c2204eb4ecb43">WXMPMeta_GetProperty_1</a> ( this-&gt;xmpRef, schemaNS, propName, propValue, options, SetClientString, &amp;wResult )</td></tr>
+<tr class="separator:af4035499938bb4645b207b7ff65f19d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4d079b8cbe5efc658a64b0bd9be60e8e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a4d079b8cbe5efc658a64b0bd9be60e8e">zXMPMeta_GetArrayItem_1</a>(schemaNS, arrayName, itemIndex, itemValue, options, SetClientString)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a6d405bbe1c37ddd8ee7423d7be317f52">WXMPMeta_GetArrayItem_1</a> ( this-&gt;xmpRef, schemaNS, arrayName, itemIndex, itemValue, options, SetClientString, &amp;wResult )</td></tr>
+<tr class="separator:a4d079b8cbe5efc658a64b0bd9be60e8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaad2d6874da145ec47c9b4f60b76cfcf"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#aaad2d6874da145ec47c9b4f60b76cfcf">zXMPMeta_GetStructField_1</a>(schemaNS, structName, fieldNS, fieldName, fieldValue, options, SetClientString)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a418658d30d2fd04c9080b3298a959c8d">WXMPMeta_GetStructField_1</a> ( this-&gt;xmpRef, schemaNS, structName, fieldNS, fieldName, fieldValue, options, SetClientString, &amp;wResult )</td></tr>
+<tr class="separator:aaad2d6874da145ec47c9b4f60b76cfcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3490f2d966ecaa048af87a6405128b08"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a3490f2d966ecaa048af87a6405128b08">zXMPMeta_GetQualifier_1</a>(schemaNS, propName, qualNS, qualName, qualValue, options, SetClientString)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#ad71ca4432c9e58f29caa355f70bc4f52">WXMPMeta_GetQualifier_1</a> ( this-&gt;xmpRef, schemaNS, propName, qualNS, qualName, qualValue, options, SetClientString, &amp;wResult )</td></tr>
+<tr class="separator:a3490f2d966ecaa048af87a6405128b08"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abe56d32dec99c09791850e14fa199fff"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#abe56d32dec99c09791850e14fa199fff">zXMPMeta_SetProperty_1</a>(schemaNS, propName, propValue, options)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#aa9fcfcc4ad994abaa91574b956adc998">WXMPMeta_SetProperty_1</a> ( this-&gt;xmpRef, schemaNS, propName, propValue, options, &amp;wResult )</td></tr>
+<tr class="separator:abe56d32dec99c09791850e14fa199fff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa5eeb477a58a35f336c4349e08e13600"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#aa5eeb477a58a35f336c4349e08e13600">zXMPMeta_SetArrayItem_1</a>(schemaNS, arrayName, itemIndex, itemValue, options)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a5a3ced9ef902d7281a4d0e3bbed8d0af">WXMPMeta_SetArrayItem_1</a> ( this-&gt;xmpRef, schemaNS, arrayName, itemIndex, itemValue, options, &amp;wResult )</td></tr>
+<tr class="separator:aa5eeb477a58a35f336c4349e08e13600"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a30ce4c07c9e676bd522ba2de196f8f62"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a30ce4c07c9e676bd522ba2de196f8f62">zXMPMeta_AppendArrayItem_1</a>(schemaNS, arrayName, arrayOptions, itemValue, options)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a76960e4bc1344208d70a6055448ce591">WXMPMeta_AppendArrayItem_1</a> ( this-&gt;xmpRef, schemaNS, arrayName, arrayOptions, itemValue, options, &amp;wResult )</td></tr>
+<tr class="separator:a30ce4c07c9e676bd522ba2de196f8f62"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8faddabe97b832233d6e10aa9ca0fbef"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a8faddabe97b832233d6e10aa9ca0fbef">zXMPMeta_SetStructField_1</a>(schemaNS, structName, fieldNS, fieldName, fieldValue, options)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#ad9ee99501a3dabc327b972ab8c3c000d">WXMPMeta_SetStructField_1</a> ( this-&gt;xmpRef, schemaNS, structName, fieldNS, fieldName, fieldValue, options, &amp;wResult )</td></tr>
+<tr class="separator:a8faddabe97b832233d6e10aa9ca0fbef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a75913c1b8f26041bd029418d39902830"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a75913c1b8f26041bd029418d39902830">zXMPMeta_SetQualifier_1</a>(schemaNS, propName, qualNS, qualName, qualValue, options)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a4fcdf3f4212ff34e0b24a76e11c1c583">WXMPMeta_SetQualifier_1</a> ( this-&gt;xmpRef, schemaNS, propName, qualNS, qualName, qualValue, options, &amp;wResult )</td></tr>
+<tr class="separator:a75913c1b8f26041bd029418d39902830"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1fd13036f7844b3b5c75984e8ac1e1e9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a1fd13036f7844b3b5c75984e8ac1e1e9">zXMPMeta_DeleteProperty_1</a>(schemaNS, propName)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a31f0b721c8e755b228a7ae66fa28b0b7">WXMPMeta_DeleteProperty_1</a> ( this-&gt;xmpRef, schemaNS, propName, &amp;wResult )</td></tr>
+<tr class="separator:a1fd13036f7844b3b5c75984e8ac1e1e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a97ae24365cb43c4e6e6886d0d7fa9df6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a97ae24365cb43c4e6e6886d0d7fa9df6">zXMPMeta_DeleteArrayItem_1</a>(schemaNS, arrayName, itemIndex)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#ae83bc466041e54f8e32b3909b10a63fe">WXMPMeta_DeleteArrayItem_1</a> ( this-&gt;xmpRef, schemaNS, arrayName, itemIndex, &amp;wResult )</td></tr>
+<tr class="separator:a97ae24365cb43c4e6e6886d0d7fa9df6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaa1d0c192d952db671b24d38c974824e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#aaa1d0c192d952db671b24d38c974824e">zXMPMeta_DeleteStructField_1</a>(schemaNS, structName, fieldNS, fieldName)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a50a73f676357dfdbf1c2d5661020e43e">WXMPMeta_DeleteStructField_1</a> ( this-&gt;xmpRef, schemaNS, structName, fieldNS, fieldName, &amp;wResult )</td></tr>
+<tr class="separator:aaa1d0c192d952db671b24d38c974824e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa0e45856fae5a4c45f986978dae73843"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#aa0e45856fae5a4c45f986978dae73843">zXMPMeta_DeleteQualifier_1</a>(schemaNS, propName, qualNS, qualName)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#abf5878ee7b66e8c18d45006579ba41d3">WXMPMeta_DeleteQualifier_1</a> ( this-&gt;xmpRef, schemaNS, propName, qualNS, qualName, &amp;wResult )</td></tr>
+<tr class="separator:aa0e45856fae5a4c45f986978dae73843"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2df62a9ced0164bbc4d4d63922d46e3e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a2df62a9ced0164bbc4d4d63922d46e3e">zXMPMeta_DoesPropertyExist_1</a>(schemaNS, propName)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a30e8a56bbc8c98a4787a6e6b4a1b9d1f">WXMPMeta_DoesPropertyExist_1</a> ( this-&gt;xmpRef, schemaNS, propName, &amp;wResult )</td></tr>
+<tr class="separator:a2df62a9ced0164bbc4d4d63922d46e3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a166e93fe425704a6b9b405b52fd492f8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a166e93fe425704a6b9b405b52fd492f8">zXMPMeta_DoesArrayItemExist_1</a>(schemaNS, arrayName, itemIndex)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a6f0508454f99a854c74744f177c1294d">WXMPMeta_DoesArrayItemExist_1</a> ( this-&gt;xmpRef, schemaNS, arrayName, itemIndex, &amp;wResult )</td></tr>
+<tr class="separator:a166e93fe425704a6b9b405b52fd492f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0a780565631328197529fd5eda5839ed"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a0a780565631328197529fd5eda5839ed">zXMPMeta_DoesStructFieldExist_1</a>(schemaNS, structName, fieldNS, fieldName)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#adb8b207d7a45ffdc126092c97ce95010">WXMPMeta_DoesStructFieldExist_1</a> ( this-&gt;xmpRef, schemaNS, structName, fieldNS, fieldName, &amp;wResult )</td></tr>
+<tr class="separator:a0a780565631328197529fd5eda5839ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa9370910efc3836b82ab4e24f36f859c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#aa9370910efc3836b82ab4e24f36f859c">zXMPMeta_DoesQualifierExist_1</a>(schemaNS, propName, qualNS, qualName)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#ab3c906d916e6dba4f2d422849a642fce">WXMPMeta_DoesQualifierExist_1</a> ( this-&gt;xmpRef, schemaNS, propName, qualNS, qualName, &amp;wResult )</td></tr>
+<tr class="separator:aa9370910efc3836b82ab4e24f36f859c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad18d48d5755d4318c725919eddeb4bec"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#ad18d48d5755d4318c725919eddeb4bec">zXMPMeta_GetLocalizedText_1</a>(schemaNS, altTextName, genericLang, specificLang, clientLang, clientValue, options, SetClientString)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#ac166c8171e8e4079cfbaadbc20bfc4cc">WXMPMeta_GetLocalizedText_1</a> ( this-&gt;xmpRef, schemaNS, altTextName, genericLang, specificLang, clientLang, clientValue, options, SetClientString, &amp;wResult )</td></tr>
+<tr class="separator:ad18d48d5755d4318c725919eddeb4bec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2cf74d9cb0162bca6f5e024773bff238"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a2cf74d9cb0162bca6f5e024773bff238">zXMPMeta_SetLocalizedText_1</a>(schemaNS, altTextName, genericLang, specificLang, itemValue, options)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#ae2b5b7330b5a153cc1de292e7ba291e5">WXMPMeta_SetLocalizedText_1</a> ( this-&gt;xmpRef, schemaNS, altTextName, genericLang, specificLang, itemValue, options, &amp;wResult )</td></tr>
+<tr class="separator:a2cf74d9cb0162bca6f5e024773bff238"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abac12b12f5dc2ccb20fe28e293f8db1d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#abac12b12f5dc2ccb20fe28e293f8db1d">zXMPMeta_DeleteLocalizedText_1</a>(schemaNS, altTextName, genericLang, specificLang)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a198c0bd7ce71a4a1ee5b4ab6daba500e">WXMPMeta_DeleteLocalizedText_1</a> ( this-&gt;xmpRef, schemaNS, altTextName, genericLang, specificLang, &amp;wResult )</td></tr>
+<tr class="separator:abac12b12f5dc2ccb20fe28e293f8db1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7938f68d5243be7813ff405791e36518"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a7938f68d5243be7813ff405791e36518">zXMPMeta_GetProperty_Bool_1</a>(schemaNS, propName, propValue, options)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a38c91b47500447c40cfb3b38d73c749c">WXMPMeta_GetProperty_Bool_1</a> ( this-&gt;xmpRef, schemaNS, propName, propValue, options, &amp;wResult )</td></tr>
+<tr class="separator:a7938f68d5243be7813ff405791e36518"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af95f01dadd596260f8d2833bc650135b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#af95f01dadd596260f8d2833bc650135b">zXMPMeta_GetProperty_Int_1</a>(schemaNS, propName, propValue, options)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a37107581e02cf1197d04118b0bfcffe5">WXMPMeta_GetProperty_Int_1</a> ( this-&gt;xmpRef, schemaNS, propName, propValue, options, &amp;wResult )</td></tr>
+<tr class="separator:af95f01dadd596260f8d2833bc650135b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab5ee5ac8d0de80b02b3d5588c596dfde"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#ab5ee5ac8d0de80b02b3d5588c596dfde">zXMPMeta_GetProperty_Int64_1</a>(schemaNS, propName, propValue, options)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a3c95f29236b9e3a16fec0421479da937">WXMPMeta_GetProperty_Int64_1</a> ( this-&gt;xmpRef, schemaNS, propName, propValue, options, &amp;wResult )</td></tr>
+<tr class="separator:ab5ee5ac8d0de80b02b3d5588c596dfde"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac71c9ef20221ea9bfcf21f8265c35b17"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#ac71c9ef20221ea9bfcf21f8265c35b17">zXMPMeta_GetProperty_Float_1</a>(schemaNS, propName, propValue, options)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#ae80228876bb345c97a0fdebc52d9b5e4">WXMPMeta_GetProperty_Float_1</a> ( this-&gt;xmpRef, schemaNS, propName, propValue, options, &amp;wResult )</td></tr>
+<tr class="separator:ac71c9ef20221ea9bfcf21f8265c35b17"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a17131cb1b6f77db2c6fc56effddb629e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a17131cb1b6f77db2c6fc56effddb629e">zXMPMeta_GetProperty_Date_1</a>(schemaNS, propName, propValue, options)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a27bd62e33f3fe7fd6777b1ef394d7af5">WXMPMeta_GetProperty_Date_1</a> ( this-&gt;xmpRef, schemaNS, propName, propValue, options, &amp;wResult )</td></tr>
+<tr class="separator:a17131cb1b6f77db2c6fc56effddb629e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a15ef1d6a8788115c277cf74d254eae50"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a15ef1d6a8788115c277cf74d254eae50">zXMPMeta_SetProperty_Bool_1</a>(schemaNS, propName, propValue, options)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a1e0b97d88538b256724218c24ec2aa06">WXMPMeta_SetProperty_Bool_1</a> ( this-&gt;xmpRef, schemaNS, propName, propValue, options, &amp;wResult )</td></tr>
+<tr class="separator:a15ef1d6a8788115c277cf74d254eae50"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2224a04bc65b61f1557a4ceedfab2aee"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a2224a04bc65b61f1557a4ceedfab2aee">zXMPMeta_SetProperty_Int_1</a>(schemaNS, propName, propValue, options)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#abee87dd946056b03a1a650524ae3ce13">WXMPMeta_SetProperty_Int_1</a> ( this-&gt;xmpRef, schemaNS, propName, propValue, options, &amp;wResult )</td></tr>
+<tr class="separator:a2224a04bc65b61f1557a4ceedfab2aee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abe1551b9240e06ba4d2ab972f1efbe85"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#abe1551b9240e06ba4d2ab972f1efbe85">zXMPMeta_SetProperty_Int64_1</a>(schemaNS, propName, propValue, options)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a1659214d8debfaa1a7543ff4b96d700a">WXMPMeta_SetProperty_Int64_1</a> ( this-&gt;xmpRef, schemaNS, propName, propValue, options, &amp;wResult )</td></tr>
+<tr class="separator:abe1551b9240e06ba4d2ab972f1efbe85"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a21feb6c743ada14de8277f6bcedd86a5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a21feb6c743ada14de8277f6bcedd86a5">zXMPMeta_SetProperty_Float_1</a>(schemaNS, propName, propValue, options)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a5cf4a4b8c3ecfa12567ffdca5502f322">WXMPMeta_SetProperty_Float_1</a> ( this-&gt;xmpRef, schemaNS, propName, propValue, options, &amp;wResult )</td></tr>
+<tr class="separator:a21feb6c743ada14de8277f6bcedd86a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a10cd70a1efb7cdf9516842a89c8b42eb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a10cd70a1efb7cdf9516842a89c8b42eb">zXMPMeta_SetProperty_Date_1</a>(schemaNS, propName, propValue, options)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a9a1bbebe74385a21e8eecd5883d01381">WXMPMeta_SetProperty_Date_1</a> ( this-&gt;xmpRef, schemaNS, propName, propValue, options, &amp;wResult )</td></tr>
+<tr class="separator:a10cd70a1efb7cdf9516842a89c8b42eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2e1e3752c2a1bc7a80c595ab9d08d2ff"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a2e1e3752c2a1bc7a80c595ab9d08d2ff">zXMPMeta_GetObjectName_1</a>(objName, SetClientString)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a7e9df8e5480d241a7ef7b033aa4e871f">WXMPMeta_GetObjectName_1</a> ( this-&gt;xmpRef, objName, SetClientString, &amp;wResult )</td></tr>
+<tr class="separator:a2e1e3752c2a1bc7a80c595ab9d08d2ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3ce4a228c127f37ebe5085fcbaae8851"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a3ce4a228c127f37ebe5085fcbaae8851">zXMPMeta_SetObjectName_1</a>(name)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#afee2f3c13f8dcb9f72104dd36eff4d68">WXMPMeta_SetObjectName_1</a> ( this-&gt;xmpRef, name, &amp;wResult )</td></tr>
+<tr class="separator:a3ce4a228c127f37ebe5085fcbaae8851"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a04725a82690d7fa41b294237f4a7efeb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a04725a82690d7fa41b294237f4a7efeb">zXMPMeta_GetObjectOptions_1</a>()&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#aaa50f01092ba1f94c9acaa390fb7afe9">WXMPMeta_GetObjectOptions_1</a> ( this-&gt;xmpRef, &amp;wResult )</td></tr>
+<tr class="separator:a04725a82690d7fa41b294237f4a7efeb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad7bf555513506cae450b216eb56dcef1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#ad7bf555513506cae450b216eb56dcef1">zXMPMeta_SetObjectOptions_1</a>(options)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#ae4afaee6e6376e126b919e73a8461e1e">WXMPMeta_SetObjectOptions_1</a> ( this-&gt;xmpRef, options, &amp;wResult )</td></tr>
+<tr class="separator:ad7bf555513506cae450b216eb56dcef1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0ba6dd317cb80ed9acc2bae3faf7a5e4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a0ba6dd317cb80ed9acc2bae3faf7a5e4">zXMPMeta_Sort_1</a>()&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#ac1d4f2bc9d0da42cda44f54071220eb5">WXMPMeta_Sort_1</a> ( this-&gt;xmpRef, &amp;wResult )</td></tr>
+<tr class="separator:a0ba6dd317cb80ed9acc2bae3faf7a5e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae4b069f217d8e161ea7e972f1c37a641"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#ae4b069f217d8e161ea7e972f1c37a641">zXMPMeta_Erase_1</a>()&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a3cce18be810b681d3dcd2a0798fb2990">WXMPMeta_Erase_1</a> ( this-&gt;xmpRef, &amp;wResult )</td></tr>
+<tr class="separator:ae4b069f217d8e161ea7e972f1c37a641"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0acf7eccade1539e1c0a69b8ff2887db"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a0acf7eccade1539e1c0a69b8ff2887db">zXMPMeta_Clone_1</a>(options)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a0cc1264e977ecceec1307b490f70cdcd">WXMPMeta_Clone_1</a> ( this-&gt;xmpRef, options, &amp;wResult )</td></tr>
+<tr class="separator:a0acf7eccade1539e1c0a69b8ff2887db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af665276132037f0aad9c3184163ff088"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#af665276132037f0aad9c3184163ff088">zXMPMeta_CountArrayItems_1</a>(schemaNS, arrayName)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a48f79b8f9005c0cd93e0cf03bbe43024">WXMPMeta_CountArrayItems_1</a> ( this-&gt;xmpRef, schemaNS, arrayName, &amp;wResult )</td></tr>
+<tr class="separator:af665276132037f0aad9c3184163ff088"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a18308efec56a894bfa2ed9a3967c8feb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a18308efec56a894bfa2ed9a3967c8feb">zXMPMeta_DumpObject_1</a>(outProc, refCon)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a68c7253abe28cd30ad7c7657c388f30e">WXMPMeta_DumpObject_1</a> ( this-&gt;xmpRef, outProc, refCon, &amp;wResult )</td></tr>
+<tr class="separator:a18308efec56a894bfa2ed9a3967c8feb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1e85839b8c67c99f43fb15fc2942b34d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a1e85839b8c67c99f43fb15fc2942b34d">zXMPMeta_ParseFromBuffer_1</a>(buffer, bufferSize, options)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a9f3c397b927d7da7c84ee3a5a03ee2df">WXMPMeta_ParseFromBuffer_1</a> ( this-&gt;xmpRef, buffer, bufferSize, options, &amp;wResult )</td></tr>
+<tr class="separator:a1e85839b8c67c99f43fb15fc2942b34d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a91cf006a6594600c7bff11a4460d077f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a91cf006a6594600c7bff11a4460d077f">zXMPMeta_SerializeToBuffer_1</a>(pktString, options, padding, newline, indent, baseIndent, SetClientString)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#af2ffbda0f3e382835296205504517d94">WXMPMeta_SerializeToBuffer_1</a> ( this-&gt;xmpRef, pktString, options, padding, newline, indent, baseIndent, SetClientString, &amp;wResult )</td></tr>
+<tr class="separator:a91cf006a6594600c7bff11a4460d077f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab4d6e5d26b15df865d0e96343d31e408"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#ab4d6e5d26b15df865d0e96343d31e408">zXMPMeta_SetDefaultErrorCallback_1</a>(proc, context, limit)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a21071def1d2284a61790b2d971231471">WXMPMeta_SetDefaultErrorCallback_1</a> ( <a class="el" href="WXMPMeta_8hpp.html#ab4f052c58b02cfecc26f8f2388249f4c">WrapErrorNotify</a>, proc, context, limit, &amp;wResult )</td></tr>
+<tr class="separator:ab4d6e5d26b15df865d0e96343d31e408"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2e349470fb118ebce92e0eabb305f4ff"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a2e349470fb118ebce92e0eabb305f4ff">zXMPMeta_SetErrorCallback_1</a>(proc, context, limit)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#ac4103e2833fe7efa8a46145a38e03ed5">WXMPMeta_SetErrorCallback_1</a> ( this-&gt;xmpRef, <a class="el" href="WXMPMeta_8hpp.html#ab4f052c58b02cfecc26f8f2388249f4c">WrapErrorNotify</a>, proc, context, limit, &amp;wResult )</td></tr>
+<tr class="separator:a2e349470fb118ebce92e0eabb305f4ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9128462ca53008ccf87e5fcd96cf966e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a9128462ca53008ccf87e5fcd96cf966e">zXMPMeta_ResetErrorCallbackLimit_1</a>(limit)&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a4155c5b0ae891213ea2d8f9872c215e8">WXMPMeta_ResetErrorCallbackLimit_1</a> ( this-&gt;xmpRef, limit, &amp;wResult )</td></tr>
+<tr class="separator:a9128462ca53008ccf87e5fcd96cf966e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ab4f052c58b02cfecc26f8f2388249f4c"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#ab4f052c58b02cfecc26f8f2388249f4c">WrapErrorNotify</a> (<a class="el" href="XMP__Const_8h.html#abb3c238ce96e9198ebe4260200bfb67b">XMPMeta_ErrorCallbackProc</a> proc, void *context, <a class="el" href="XMP__Const_8h.html#ae4a7c9347994883250dc440566eb9f52">XMP_ErrorSeverity</a> severity, XMP_Int32 cause, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> message)</td></tr>
+<tr class="separator:ab4f052c58b02cfecc26f8f2388249f4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa678642f09d4bc3ba83b55364112bf25"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#aa678642f09d4bc3ba83b55364112bf25">WXMPMeta_GetVersionInfo_1</a> (<a class="el" href="structXMP__VersionInfo.html">XMP_VersionInfo</a> *info)</td></tr>
+<tr class="separator:aa678642f09d4bc3ba83b55364112bf25"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a459d905958efba79649c9884ecbfc3d8"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a459d905958efba79649c9884ecbfc3d8">WXMPMeta_Initialize_1</a> (<a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a459d905958efba79649c9884ecbfc3d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a06d38f8fdf6a46ff8e672a98fb50f2f4"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a06d38f8fdf6a46ff8e672a98fb50f2f4">WXMPMeta_Terminate_1</a> ()</td></tr>
+<tr class="separator:a06d38f8fdf6a46ff8e672a98fb50f2f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3fb6f849c25f5bf964beb7eb9e98049d"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a3fb6f849c25f5bf964beb7eb9e98049d">WXMPMeta_CTor_1</a> (<a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a3fb6f849c25f5bf964beb7eb9e98049d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac85ab52aa3ea72b7a3a5a0ba90cb58a3"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#ac85ab52aa3ea72b7a3a5a0ba90cb58a3">WXMPMeta_IncrementRefCount_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef)</td></tr>
+<tr class="separator:ac85ab52aa3ea72b7a3a5a0ba90cb58a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac9ff1318eb934f05568d7f8f7177acf6"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#ac9ff1318eb934f05568d7f8f7177acf6">WXMPMeta_DecrementRefCount_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef)</td></tr>
+<tr class="separator:ac9ff1318eb934f05568d7f8f7177acf6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a58a125d8a9eeee3a8906d50262faf06c"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a58a125d8a9eeee3a8906d50262faf06c">WXMPMeta_GetGlobalOptions_1</a> (<a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a58a125d8a9eeee3a8906d50262faf06c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1239ebede304d572f34b1319c0b14c05"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a1239ebede304d572f34b1319c0b14c05">WXMPMeta_SetGlobalOptions_1</a> (<a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a1239ebede304d572f34b1319c0b14c05"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0328d3f6b63a301c17469f3a636bee8d"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a0328d3f6b63a301c17469f3a636bee8d">WXMPMeta_DumpNamespaces_1</a> (<a class="el" href="XMP__Const_8h.html#aa55bae1e6be4ddcefbaf214942e5b272">XMP_TextOutputProc</a> outProc, void *refCon, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a0328d3f6b63a301c17469f3a636bee8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6d4b43bab339b01d216b29d89e695308"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a6d4b43bab339b01d216b29d89e695308">WXMPMeta_Use_CPP_DOM_APIs_1</a> (<a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a> useNewCoreAPIs, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a6d4b43bab339b01d216b29d89e695308"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0b32b12b061f62eb3f8ec1784165e03a"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a0b32b12b061f62eb3f8ec1784165e03a">WXMPMeta_RegisterNamespace_1</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> namespaceURI, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> suggestedPrefix, void *actualPrefix, <a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a0b32b12b061f62eb3f8ec1784165e03a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7f407dba2b3fee31aad4cc0887ba7a0e"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a7f407dba2b3fee31aad4cc0887ba7a0e">WXMPMeta_GetNamespacePrefix_1</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> namespaceURI, void *namespacePrefix, <a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a7f407dba2b3fee31aad4cc0887ba7a0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae133a695d6efe0db6528395345f3c0c6"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#ae133a695d6efe0db6528395345f3c0c6">WXMPMeta_GetNamespaceURI_1</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> namespacePrefix, void *namespaceURI, <a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:ae133a695d6efe0db6528395345f3c0c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8887351f8aee3cc57ababc137ab0719a"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a8887351f8aee3cc57ababc137ab0719a">WXMPMeta_DeleteNamespace_1</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> namespaceURI, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a8887351f8aee3cc57ababc137ab0719a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0685ed8dc59360366c629cdc559076ce"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a0685ed8dc59360366c629cdc559076ce">WXMPMeta_GetIXMPMetadata_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpObjRef, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a0685ed8dc59360366c629cdc559076ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2c650c402ba4850b082c2204eb4ecb43"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a2c650c402ba4850b082c2204eb4ecb43">WXMPMeta_GetProperty_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, void *propValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *options, <a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a2c650c402ba4850b082c2204eb4ecb43"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6d405bbe1c37ddd8ee7423d7be317f52"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a6d405bbe1c37ddd8ee7423d7be317f52">WXMPMeta_GetArrayItem_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName, <a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a> itemIndex, void *itemValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *options, <a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a6d405bbe1c37ddd8ee7423d7be317f52"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a418658d30d2fd04c9080b3298a959c8d"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a418658d30d2fd04c9080b3298a959c8d">WXMPMeta_GetStructField_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> structName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldName, void *fieldValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *options, <a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a418658d30d2fd04c9080b3298a959c8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad71ca4432c9e58f29caa355f70bc4f52"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#ad71ca4432c9e58f29caa355f70bc4f52">WXMPMeta_GetQualifier_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualName, void *qualValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *options, <a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:ad71ca4432c9e58f29caa355f70bc4f52"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa9fcfcc4ad994abaa91574b956adc998"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#aa9fcfcc4ad994abaa91574b956adc998">WXMPMeta_SetProperty_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:aa9fcfcc4ad994abaa91574b956adc998"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a3ced9ef902d7281a4d0e3bbed8d0af"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a5a3ced9ef902d7281a4d0e3bbed8d0af">WXMPMeta_SetArrayItem_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName, <a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a> itemIndex, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> itemValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a5a3ced9ef902d7281a4d0e3bbed8d0af"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a76960e4bc1344208d70a6055448ce591"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a76960e4bc1344208d70a6055448ce591">WXMPMeta_AppendArrayItem_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> arrayOptions, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> itemValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a76960e4bc1344208d70a6055448ce591"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad9ee99501a3dabc327b972ab8c3c000d"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#ad9ee99501a3dabc327b972ab8c3c000d">WXMPMeta_SetStructField_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> structName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:ad9ee99501a3dabc327b972ab8c3c000d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4fcdf3f4212ff34e0b24a76e11c1c583"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a4fcdf3f4212ff34e0b24a76e11c1c583">WXMPMeta_SetQualifier_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a4fcdf3f4212ff34e0b24a76e11c1c583"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a31f0b721c8e755b228a7ae66fa28b0b7"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a31f0b721c8e755b228a7ae66fa28b0b7">WXMPMeta_DeleteProperty_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a31f0b721c8e755b228a7ae66fa28b0b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae83bc466041e54f8e32b3909b10a63fe"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#ae83bc466041e54f8e32b3909b10a63fe">WXMPMeta_DeleteArrayItem_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName, <a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a> itemIndex, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:ae83bc466041e54f8e32b3909b10a63fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a50a73f676357dfdbf1c2d5661020e43e"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a50a73f676357dfdbf1c2d5661020e43e">WXMPMeta_DeleteStructField_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> structName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldName, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a50a73f676357dfdbf1c2d5661020e43e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abf5878ee7b66e8c18d45006579ba41d3"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#abf5878ee7b66e8c18d45006579ba41d3">WXMPMeta_DeleteQualifier_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualName, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:abf5878ee7b66e8c18d45006579ba41d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a30e8a56bbc8c98a4787a6e6b4a1b9d1f"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a30e8a56bbc8c98a4787a6e6b4a1b9d1f">WXMPMeta_DoesPropertyExist_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a30e8a56bbc8c98a4787a6e6b4a1b9d1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6f0508454f99a854c74744f177c1294d"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a6f0508454f99a854c74744f177c1294d">WXMPMeta_DoesArrayItemExist_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName, <a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a> itemIndex, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a6f0508454f99a854c74744f177c1294d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adb8b207d7a45ffdc126092c97ce95010"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#adb8b207d7a45ffdc126092c97ce95010">WXMPMeta_DoesStructFieldExist_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> structName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldName, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:adb8b207d7a45ffdc126092c97ce95010"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab3c906d916e6dba4f2d422849a642fce"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#ab3c906d916e6dba4f2d422849a642fce">WXMPMeta_DoesQualifierExist_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualName, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:ab3c906d916e6dba4f2d422849a642fce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac166c8171e8e4079cfbaadbc20bfc4cc"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#ac166c8171e8e4079cfbaadbc20bfc4cc">WXMPMeta_GetLocalizedText_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> altTextName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> genericLang, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> specificLang, void *clientLang, void *clientValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *options, <a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:ac166c8171e8e4079cfbaadbc20bfc4cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae2b5b7330b5a153cc1de292e7ba291e5"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#ae2b5b7330b5a153cc1de292e7ba291e5">WXMPMeta_SetLocalizedText_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> altTextName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> genericLang, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> specificLang, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> itemValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:ae2b5b7330b5a153cc1de292e7ba291e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a198c0bd7ce71a4a1ee5b4ab6daba500e"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a198c0bd7ce71a4a1ee5b4ab6daba500e">WXMPMeta_DeleteLocalizedText_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> altTextName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> genericLang, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> specificLang, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a198c0bd7ce71a4a1ee5b4ab6daba500e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a38c91b47500447c40cfb3b38d73c749c"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a38c91b47500447c40cfb3b38d73c749c">WXMPMeta_GetProperty_Bool_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, <a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a> *propValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *options, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a38c91b47500447c40cfb3b38d73c749c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a37107581e02cf1197d04118b0bfcffe5"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a37107581e02cf1197d04118b0bfcffe5">WXMPMeta_GetProperty_Int_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, XMP_Int32 *propValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *options, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a37107581e02cf1197d04118b0bfcffe5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3c95f29236b9e3a16fec0421479da937"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a3c95f29236b9e3a16fec0421479da937">WXMPMeta_GetProperty_Int64_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, XMP_Int64 *propValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *options, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a3c95f29236b9e3a16fec0421479da937"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae80228876bb345c97a0fdebc52d9b5e4"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#ae80228876bb345c97a0fdebc52d9b5e4">WXMPMeta_GetProperty_Float_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, double *propValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *options, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:ae80228876bb345c97a0fdebc52d9b5e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a27bd62e33f3fe7fd6777b1ef394d7af5"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a27bd62e33f3fe7fd6777b1ef394d7af5">WXMPMeta_GetProperty_Date_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, <a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *propValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *options, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a27bd62e33f3fe7fd6777b1ef394d7af5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1e0b97d88538b256724218c24ec2aa06"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a1e0b97d88538b256724218c24ec2aa06">WXMPMeta_SetProperty_Bool_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, <a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a> propValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a1e0b97d88538b256724218c24ec2aa06"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abee87dd946056b03a1a650524ae3ce13"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#abee87dd946056b03a1a650524ae3ce13">WXMPMeta_SetProperty_Int_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, XMP_Int32 propValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:abee87dd946056b03a1a650524ae3ce13"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1659214d8debfaa1a7543ff4b96d700a"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a1659214d8debfaa1a7543ff4b96d700a">WXMPMeta_SetProperty_Int64_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, XMP_Int64 propValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a1659214d8debfaa1a7543ff4b96d700a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5cf4a4b8c3ecfa12567ffdca5502f322"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a5cf4a4b8c3ecfa12567ffdca5502f322">WXMPMeta_SetProperty_Float_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, double propValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a5cf4a4b8c3ecfa12567ffdca5502f322"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9a1bbebe74385a21e8eecd5883d01381"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a9a1bbebe74385a21e8eecd5883d01381">WXMPMeta_SetProperty_Date_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, const <a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> &amp;propValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a9a1bbebe74385a21e8eecd5883d01381"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7e9df8e5480d241a7ef7b033aa4e871f"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a7e9df8e5480d241a7ef7b033aa4e871f">WXMPMeta_GetObjectName_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, void *objName, <a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a7e9df8e5480d241a7ef7b033aa4e871f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afee2f3c13f8dcb9f72104dd36eff4d68"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#afee2f3c13f8dcb9f72104dd36eff4d68">WXMPMeta_SetObjectName_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> name, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:afee2f3c13f8dcb9f72104dd36eff4d68"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaa50f01092ba1f94c9acaa390fb7afe9"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#aaa50f01092ba1f94c9acaa390fb7afe9">WXMPMeta_GetObjectOptions_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:aaa50f01092ba1f94c9acaa390fb7afe9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae4afaee6e6376e126b919e73a8461e1e"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#ae4afaee6e6376e126b919e73a8461e1e">WXMPMeta_SetObjectOptions_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:ae4afaee6e6376e126b919e73a8461e1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac1d4f2bc9d0da42cda44f54071220eb5"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#ac1d4f2bc9d0da42cda44f54071220eb5">WXMPMeta_Sort_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:ac1d4f2bc9d0da42cda44f54071220eb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3cce18be810b681d3dcd2a0798fb2990"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a3cce18be810b681d3dcd2a0798fb2990">WXMPMeta_Erase_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a3cce18be810b681d3dcd2a0798fb2990"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0cc1264e977ecceec1307b490f70cdcd"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a0cc1264e977ecceec1307b490f70cdcd">WXMPMeta_Clone_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a0cc1264e977ecceec1307b490f70cdcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a48f79b8f9005c0cd93e0cf03bbe43024"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a48f79b8f9005c0cd93e0cf03bbe43024">WXMPMeta_CountArrayItems_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a48f79b8f9005c0cd93e0cf03bbe43024"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a68c7253abe28cd30ad7c7657c388f30e"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a68c7253abe28cd30ad7c7657c388f30e">WXMPMeta_DumpObject_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="XMP__Const_8h.html#aa55bae1e6be4ddcefbaf214942e5b272">XMP_TextOutputProc</a> outProc, void *refCon, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a68c7253abe28cd30ad7c7657c388f30e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9f3c397b927d7da7c84ee3a5a03ee2df"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a9f3c397b927d7da7c84ee3a5a03ee2df">WXMPMeta_ParseFromBuffer_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> buffer, <a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> bufferSize, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a9f3c397b927d7da7c84ee3a5a03ee2df"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af2ffbda0f3e382835296205504517d94"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#af2ffbda0f3e382835296205504517d94">WXMPMeta_SerializeToBuffer_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, void *pktString, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, <a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> padding, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> newline, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> indent, <a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a> baseIndent, <a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:af2ffbda0f3e382835296205504517d94"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a21071def1d2284a61790b2d971231471"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a21071def1d2284a61790b2d971231471">WXMPMeta_SetDefaultErrorCallback_1</a> (<a class="el" href="XMP__Const_8h.html#a32cbbc2b93eb9028d441ecb4223eb2a4">XMPMeta_ErrorCallbackWrapper</a> wrapperProc, <a class="el" href="XMP__Const_8h.html#abb3c238ce96e9198ebe4260200bfb67b">XMPMeta_ErrorCallbackProc</a> clientProc, void *context, XMP_Uns32 limit, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a21071def1d2284a61790b2d971231471"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac4103e2833fe7efa8a46145a38e03ed5"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#ac4103e2833fe7efa8a46145a38e03ed5">WXMPMeta_SetErrorCallback_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, <a class="el" href="XMP__Const_8h.html#a32cbbc2b93eb9028d441ecb4223eb2a4">XMPMeta_ErrorCallbackWrapper</a> wrapperProc, <a class="el" href="XMP__Const_8h.html#abb3c238ce96e9198ebe4260200bfb67b">XMPMeta_ErrorCallbackProc</a> clientProc, void *context, XMP_Uns32 limit, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:ac4103e2833fe7efa8a46145a38e03ed5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4155c5b0ae891213ea2d8f9872c215e8"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html#a4155c5b0ae891213ea2d8f9872c215e8">WXMPMeta_ResetErrorCallbackLimit_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef, XMP_Uns32 limit, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a4155c5b0ae891213ea2d8f9872c215e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="afff47bd31a726ad7c0b3578a0d8bb9d7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define __WXMPMeta_hpp__&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00002">2</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a30ce4c07c9e676bd522ba2de196f8f62"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_AppendArrayItem_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">schemaNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">arrayName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">arrayOptions, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">itemValue, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">options&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a76960e4bc1344208d70a6055448ce591">WXMPMeta_AppendArrayItem_1</a> ( this-&gt;xmpRef, schemaNS, arrayName, arrayOptions, itemValue, options, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00089">89</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0acf7eccade1539e1c0a69b8ff2887db"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_Clone_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">options</td><td>)</td>
+ <td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a0cc1264e977ecceec1307b490f70cdcd">WXMPMeta_Clone_1</a> ( this-&gt;xmpRef, options, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00178">178</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af665276132037f0aad9c3184163ff088"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_CountArrayItems_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">schemaNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">arrayName&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a48f79b8f9005c0cd93e0cf03bbe43024">WXMPMeta_CountArrayItems_1</a> ( this-&gt;xmpRef, schemaNS, arrayName, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00181">181</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5407ff91fcbe5cae856e8644e998c396"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_CTor_1</td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a3fb6f849c25f5bf964beb7eb9e98049d">WXMPMeta_CTor_1</a> ( &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00042">42</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a97ae24365cb43c4e6e6886d0d7fa9df6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_DeleteArrayItem_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">schemaNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">arrayName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">itemIndex&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#ae83bc466041e54f8e32b3909b10a63fe">WXMPMeta_DeleteArrayItem_1</a> ( this-&gt;xmpRef, schemaNS, arrayName, itemIndex, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00101">101</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abac12b12f5dc2ccb20fe28e293f8db1d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_DeleteLocalizedText_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">schemaNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">altTextName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">genericLang, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">specificLang&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a198c0bd7ce71a4a1ee5b4ab6daba500e">WXMPMeta_DeleteLocalizedText_1</a> ( this-&gt;xmpRef, schemaNS, altTextName, genericLang, specificLang, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00128">128</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad5e74b2f1acce6eab6e090c54ea742cc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_DeleteNamespace_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">namespaceURI</td><td>)</td>
+ <td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a8887351f8aee3cc57ababc137ab0719a">WXMPMeta_DeleteNamespace_1</a> ( namespaceURI, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00065">65</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1fd13036f7844b3b5c75984e8ac1e1e9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_DeleteProperty_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">schemaNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">propName&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a31f0b721c8e755b228a7ae66fa28b0b7">WXMPMeta_DeleteProperty_1</a> ( this-&gt;xmpRef, schemaNS, propName, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00098">98</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa0e45856fae5a4c45f986978dae73843"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_DeleteQualifier_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">schemaNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">propName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">qualNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">qualName&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#abf5878ee7b66e8c18d45006579ba41d3">WXMPMeta_DeleteQualifier_1</a> ( this-&gt;xmpRef, schemaNS, propName, qualNS, qualName, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00107">107</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aaa1d0c192d952db671b24d38c974824e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_DeleteStructField_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">schemaNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">structName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">fieldNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">fieldName&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a50a73f676357dfdbf1c2d5661020e43e">WXMPMeta_DeleteStructField_1</a> ( this-&gt;xmpRef, schemaNS, structName, fieldNS, fieldName, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00104">104</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a166e93fe425704a6b9b405b52fd492f8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_DoesArrayItemExist_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">schemaNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">arrayName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">itemIndex&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a6f0508454f99a854c74744f177c1294d">WXMPMeta_DoesArrayItemExist_1</a> ( this-&gt;xmpRef, schemaNS, arrayName, itemIndex, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00113">113</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2df62a9ced0164bbc4d4d63922d46e3e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_DoesPropertyExist_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">schemaNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">propName&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a30e8a56bbc8c98a4787a6e6b4a1b9d1f">WXMPMeta_DoesPropertyExist_1</a> ( this-&gt;xmpRef, schemaNS, propName, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00110">110</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa9370910efc3836b82ab4e24f36f859c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_DoesQualifierExist_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">schemaNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">propName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">qualNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">qualName&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#ab3c906d916e6dba4f2d422849a642fce">WXMPMeta_DoesQualifierExist_1</a> ( this-&gt;xmpRef, schemaNS, propName, qualNS, qualName, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00119">119</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0a780565631328197529fd5eda5839ed"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_DoesStructFieldExist_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">schemaNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">structName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">fieldNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">fieldName&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#adb8b207d7a45ffdc126092c97ce95010">WXMPMeta_DoesStructFieldExist_1</a> ( this-&gt;xmpRef, schemaNS, structName, fieldNS, fieldName, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00116">116</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5e549c2a44cf580c1f6a25f02ba767af"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_DumpNamespaces_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">outProc, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">refCon&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a0328d3f6b63a301c17469f3a636bee8d">WXMPMeta_DumpNamespaces_1</a> ( outProc, refCon, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00051">51</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a18308efec56a894bfa2ed9a3967c8feb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_DumpObject_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">outProc, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">refCon&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a68c7253abe28cd30ad7c7657c388f30e">WXMPMeta_DumpObject_1</a> ( this-&gt;xmpRef, outProc, refCon, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00184">184</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae4b069f217d8e161ea7e972f1c37a641"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_Erase_1</td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a3cce18be810b681d3dcd2a0798fb2990">WXMPMeta_Erase_1</a> ( this-&gt;xmpRef, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00175">175</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4d079b8cbe5efc658a64b0bd9be60e8e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_GetArrayItem_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">schemaNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">arrayName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">itemIndex, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">itemValue, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">options, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">SetClientString&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a6d405bbe1c37ddd8ee7423d7be317f52">WXMPMeta_GetArrayItem_1</a> ( this-&gt;xmpRef, schemaNS, arrayName, itemIndex, itemValue, options, SetClientString, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00074">74</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a042f1cb44600209bed7d27a26ee937a3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_GetGlobalOptions_1</td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a58a125d8a9eeee3a8906d50262faf06c">WXMPMeta_GetGlobalOptions_1</a> ( &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00045">45</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4b0a23906a0bd1ef87d381a7d940b5b0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_GetIXMPMetadata_1</td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a0685ed8dc59360366c629cdc559076ce">WXMPMeta_GetIXMPMetadata_1</a>( this-&gt;xmpRef, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00068">68</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad18d48d5755d4318c725919eddeb4bec"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_GetLocalizedText_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">schemaNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">altTextName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">genericLang, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">specificLang, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">clientLang, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">clientValue, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">options, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">SetClientString&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#ac166c8171e8e4079cfbaadbc20bfc4cc">WXMPMeta_GetLocalizedText_1</a> ( this-&gt;xmpRef, schemaNS, altTextName, genericLang, specificLang, clientLang, clientValue, options, SetClientString, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00122">122</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="afcbc2ac610c4e23a128ff80203e3a4a5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_GetNamespacePrefix_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">namespaceURI, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">namespacePrefix, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">SetClientString&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a7f407dba2b3fee31aad4cc0887ba7a0e">WXMPMeta_GetNamespacePrefix_1</a> ( namespaceURI, namespacePrefix, SetClientString, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00059">59</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a21cb3d8399b93c52cb4000cec668c5e3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_GetNamespaceURI_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">namespacePrefix, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">namespaceURI, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">SetClientString&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#ae133a695d6efe0db6528395345f3c0c6">WXMPMeta_GetNamespaceURI_1</a> ( namespacePrefix, namespaceURI, SetClientString, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00062">62</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2e1e3752c2a1bc7a80c595ab9d08d2ff"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_GetObjectName_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">objName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">SetClientString&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a7e9df8e5480d241a7ef7b033aa4e871f">WXMPMeta_GetObjectName_1</a> ( this-&gt;xmpRef, objName, SetClientString, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00160">160</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a04725a82690d7fa41b294237f4a7efeb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_GetObjectOptions_1</td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#aaa50f01092ba1f94c9acaa390fb7afe9">WXMPMeta_GetObjectOptions_1</a> ( this-&gt;xmpRef, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00166">166</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af4035499938bb4645b207b7ff65f19d7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_GetProperty_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">schemaNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">propName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">propValue, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">options, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">SetClientString&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a2c650c402ba4850b082c2204eb4ecb43">WXMPMeta_GetProperty_1</a> ( this-&gt;xmpRef, schemaNS, propName, propValue, options, SetClientString, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00071">71</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7938f68d5243be7813ff405791e36518"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_GetProperty_Bool_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">schemaNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">propName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">propValue, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">options&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a38c91b47500447c40cfb3b38d73c749c">WXMPMeta_GetProperty_Bool_1</a> ( this-&gt;xmpRef, schemaNS, propName, propValue, options, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00130">130</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a17131cb1b6f77db2c6fc56effddb629e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_GetProperty_Date_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">schemaNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">propName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">propValue, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">options&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a27bd62e33f3fe7fd6777b1ef394d7af5">WXMPMeta_GetProperty_Date_1</a> ( this-&gt;xmpRef, schemaNS, propName, propValue, options, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00142">142</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac71c9ef20221ea9bfcf21f8265c35b17"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_GetProperty_Float_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">schemaNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">propName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">propValue, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">options&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#ae80228876bb345c97a0fdebc52d9b5e4">WXMPMeta_GetProperty_Float_1</a> ( this-&gt;xmpRef, schemaNS, propName, propValue, options, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00139">139</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab5ee5ac8d0de80b02b3d5588c596dfde"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_GetProperty_Int64_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">schemaNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">propName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">propValue, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">options&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a3c95f29236b9e3a16fec0421479da937">WXMPMeta_GetProperty_Int64_1</a> ( this-&gt;xmpRef, schemaNS, propName, propValue, options, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00136">136</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af95f01dadd596260f8d2833bc650135b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_GetProperty_Int_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">schemaNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">propName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">propValue, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">options&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a37107581e02cf1197d04118b0bfcffe5">WXMPMeta_GetProperty_Int_1</a> ( this-&gt;xmpRef, schemaNS, propName, propValue, options, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00133">133</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3490f2d966ecaa048af87a6405128b08"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_GetQualifier_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">schemaNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">propName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">qualNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">qualName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">qualValue, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">options, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">SetClientString&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#ad71ca4432c9e58f29caa355f70bc4f52">WXMPMeta_GetQualifier_1</a> ( this-&gt;xmpRef, schemaNS, propName, qualNS, qualName, qualValue, options, SetClientString, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00080">80</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aaad2d6874da145ec47c9b4f60b76cfcf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_GetStructField_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">schemaNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">structName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">fieldNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">fieldName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">fieldValue, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">options, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">SetClientString&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a418658d30d2fd04c9080b3298a959c8d">WXMPMeta_GetStructField_1</a> ( this-&gt;xmpRef, schemaNS, structName, fieldNS, fieldName, fieldValue, options, SetClientString, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00077">77</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a72415a5d17bb47c3d818d11a710f5c0b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_GetVersionInfo_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">info</td><td>)</td>
+ <td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#aa678642f09d4bc3ba83b55364112bf25">WXMPMeta_GetVersionInfo_1</a> ( info /* no wResult */ )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00034">34</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af0ee01859f7324e6668fe372bc54a2a4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_Initialize_1</td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a459d905958efba79649c9884ecbfc3d8">WXMPMeta_Initialize_1</a> ( &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00037">37</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1e85839b8c67c99f43fb15fc2942b34d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_ParseFromBuffer_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">buffer, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">bufferSize, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">options&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a9f3c397b927d7da7c84ee3a5a03ee2df">WXMPMeta_ParseFromBuffer_1</a> ( this-&gt;xmpRef, buffer, bufferSize, options, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00187">187</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="adde0feeb518ce416f906292542a92d46"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_RegisterNamespace_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">namespaceURI, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">suggestedPrefix, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">actualPrefix, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">SetClientString&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a0b32b12b061f62eb3f8ec1784165e03a">WXMPMeta_RegisterNamespace_1</a> ( namespaceURI, suggestedPrefix, actualPrefix, SetClientString, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00056">56</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9128462ca53008ccf87e5fcd96cf966e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_ResetErrorCallbackLimit_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">limit</td><td>)</td>
+ <td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a4155c5b0ae891213ea2d8f9872c215e8">WXMPMeta_ResetErrorCallbackLimit_1</a> ( this-&gt;xmpRef, limit, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00199">199</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a91cf006a6594600c7bff11a4460d077f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_SerializeToBuffer_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">pktString, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">options, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">padding, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">newline, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">indent, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">baseIndent, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">SetClientString&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#af2ffbda0f3e382835296205504517d94">WXMPMeta_SerializeToBuffer_1</a> ( this-&gt;xmpRef, pktString, options, padding, newline, indent, baseIndent, SetClientString, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00190">190</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa5eeb477a58a35f336c4349e08e13600"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_SetArrayItem_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">schemaNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">arrayName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">itemIndex, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">itemValue, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">options&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a5a3ced9ef902d7281a4d0e3bbed8d0af">WXMPMeta_SetArrayItem_1</a> ( this-&gt;xmpRef, schemaNS, arrayName, itemIndex, itemValue, options, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00086">86</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab4d6e5d26b15df865d0e96343d31e408"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_SetDefaultErrorCallback_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">proc, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">context, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">limit&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a21071def1d2284a61790b2d971231471">WXMPMeta_SetDefaultErrorCallback_1</a> ( <a class="el" href="WXMPMeta_8hpp.html#ab4f052c58b02cfecc26f8f2388249f4c">WrapErrorNotify</a>, proc, context, limit, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00193">193</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2e349470fb118ebce92e0eabb305f4ff"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_SetErrorCallback_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">proc, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">context, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">limit&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#ac4103e2833fe7efa8a46145a38e03ed5">WXMPMeta_SetErrorCallback_1</a> ( this-&gt;xmpRef, <a class="el" href="WXMPMeta_8hpp.html#ab4f052c58b02cfecc26f8f2388249f4c">WrapErrorNotify</a>, proc, context, limit, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00196">196</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab7ed5170b4879381078d0724cbdbbd0f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_SetGlobalOptions_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">options</td><td>)</td>
+ <td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a1239ebede304d572f34b1319c0b14c05">WXMPMeta_SetGlobalOptions_1</a> ( options, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00048">48</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2cf74d9cb0162bca6f5e024773bff238"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_SetLocalizedText_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">schemaNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">altTextName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">genericLang, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">specificLang, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">itemValue, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">options&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#ae2b5b7330b5a153cc1de292e7ba291e5">WXMPMeta_SetLocalizedText_1</a> ( this-&gt;xmpRef, schemaNS, altTextName, genericLang, specificLang, itemValue, options, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00125">125</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3ce4a228c127f37ebe5085fcbaae8851"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_SetObjectName_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">name</td><td>)</td>
+ <td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#afee2f3c13f8dcb9f72104dd36eff4d68">WXMPMeta_SetObjectName_1</a> ( this-&gt;xmpRef, name, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00163">163</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad7bf555513506cae450b216eb56dcef1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_SetObjectOptions_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">options</td><td>)</td>
+ <td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#ae4afaee6e6376e126b919e73a8461e1e">WXMPMeta_SetObjectOptions_1</a> ( this-&gt;xmpRef, options, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00169">169</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abe56d32dec99c09791850e14fa199fff"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_SetProperty_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">schemaNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">propName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">propValue, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">options&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#aa9fcfcc4ad994abaa91574b956adc998">WXMPMeta_SetProperty_1</a> ( this-&gt;xmpRef, schemaNS, propName, propValue, options, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00083">83</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a15ef1d6a8788115c277cf74d254eae50"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_SetProperty_Bool_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">schemaNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">propName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">propValue, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">options&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a1e0b97d88538b256724218c24ec2aa06">WXMPMeta_SetProperty_Bool_1</a> ( this-&gt;xmpRef, schemaNS, propName, propValue, options, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00145">145</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a10cd70a1efb7cdf9516842a89c8b42eb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_SetProperty_Date_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">schemaNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">propName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">propValue, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">options&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a9a1bbebe74385a21e8eecd5883d01381">WXMPMeta_SetProperty_Date_1</a> ( this-&gt;xmpRef, schemaNS, propName, propValue, options, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00157">157</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a21feb6c743ada14de8277f6bcedd86a5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_SetProperty_Float_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">schemaNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">propName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">propValue, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">options&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a5cf4a4b8c3ecfa12567ffdca5502f322">WXMPMeta_SetProperty_Float_1</a> ( this-&gt;xmpRef, schemaNS, propName, propValue, options, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00154">154</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abe1551b9240e06ba4d2ab972f1efbe85"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_SetProperty_Int64_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">schemaNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">propName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">propValue, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">options&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a1659214d8debfaa1a7543ff4b96d700a">WXMPMeta_SetProperty_Int64_1</a> ( this-&gt;xmpRef, schemaNS, propName, propValue, options, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00151">151</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2224a04bc65b61f1557a4ceedfab2aee"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_SetProperty_Int_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">schemaNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">propName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">propValue, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">options&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#abee87dd946056b03a1a650524ae3ce13">WXMPMeta_SetProperty_Int_1</a> ( this-&gt;xmpRef, schemaNS, propName, propValue, options, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00148">148</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a75913c1b8f26041bd029418d39902830"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_SetQualifier_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">schemaNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">propName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">qualNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">qualName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">qualValue, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">options&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a4fcdf3f4212ff34e0b24a76e11c1c583">WXMPMeta_SetQualifier_1</a> ( this-&gt;xmpRef, schemaNS, propName, qualNS, qualName, qualValue, options, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00095">95</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8faddabe97b832233d6e10aa9ca0fbef"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_SetStructField_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">schemaNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">structName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">fieldNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">fieldName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">fieldValue, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">options&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#ad9ee99501a3dabc327b972ab8c3c000d">WXMPMeta_SetStructField_1</a> ( this-&gt;xmpRef, schemaNS, structName, fieldNS, fieldName, fieldValue, options, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00092">92</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0ba6dd317cb80ed9acc2bae3faf7a5e4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_Sort_1</td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#ac1d4f2bc9d0da42cda44f54071220eb5">WXMPMeta_Sort_1</a> ( this-&gt;xmpRef, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00172">172</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af9276110cbdeb3b3098b6bbdf620977f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_Terminate_1</td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a06d38f8fdf6a46ff8e672a98fb50f2f4">WXMPMeta_Terminate_1</a> ( /* no wResult */ )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00039">39</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a696f7638346770aecec1a4570098d9fd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPMeta_Use_CPP_DOM_APIs_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">useNewCoreAPIs</td><td>)</td>
+ <td>&#160;&#160;&#160;<a class="el" href="WXMPMeta_8hpp.html#a6d4b43bab339b01d216b29d89e695308">WXMPMeta_Use_CPP_DOM_APIs_1</a>( useNewCoreAPIs, &amp;wResult )</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00054">54</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ab4f052c58b02cfecc26f8f2388249f4c"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static <a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a> WrapErrorNotify </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#abb3c238ce96e9198ebe4260200bfb67b">XMPMeta_ErrorCallbackProc</a>&#160;</td>
+ <td class="paramname"><em>proc</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>context</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ae4a7c9347994883250dc440566eb9f52">XMP_ErrorSeverity</a>&#160;</td>
+ <td class="paramname"><em>severity</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">XMP_Int32&#160;</td>
+ <td class="paramname"><em>cause</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>message</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPMeta_8hpp_source.html#l00020">20</a> of file <a class="el" href="WXMPMeta_8hpp_source.html">WXMPMeta.hpp</a>.</p>
+
+<p>References <a class="el" href="XMP__Const_8h_source.html#l00107">ConvertBoolToXMP_Bool</a>.</p>
+<div class="fragment"><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;{</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keywordtype">bool</span> ok;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordflow">try</span> {</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; ok = (*proc) ( context, severity, cause, message );</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; } <span class="keywordflow">catch</span> ( ... ) {</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; ok = <span class="keyword">false</span>;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; }</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordflow">return</span> <a class="code" href="XMP__Const_8h.html#ae6037ae90db1ec7d7c988aec7a8319cb">ConvertBoolToXMP_Bool</a>( ok );</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;}</div><div class="ttc" id="XMP__Const_8h_html_ae6037ae90db1ec7d7c988aec7a8319cb"><div class="ttname"><a href="XMP__Const_8h.html#ae6037ae90db1ec7d7c988aec7a8319cb">ConvertBoolToXMP_Bool</a></div><div class="ttdeci">#define ConvertBoolToXMP_Bool(a)</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00107">XMP_Const.h:107</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a76960e4bc1344208d70a6055448ce591"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_AppendArrayItem_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>arrayName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>arrayOptions</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>itemValue</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0cc1264e977ecceec1307b490f70cdcd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_Clone_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a48f79b8f9005c0cd93e0cf03bbe43024"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_CountArrayItems_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>arrayName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3fb6f849c25f5bf964beb7eb9e98049d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_CTor_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac9ff1318eb934f05568d7f8f7177acf6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_DecrementRefCount_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae83bc466041e54f8e32b3909b10a63fe"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_DeleteArrayItem_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>arrayName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a>&#160;</td>
+ <td class="paramname"><em>itemIndex</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a198c0bd7ce71a4a1ee5b4ab6daba500e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_DeleteLocalizedText_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>altTextName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>genericLang</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>specificLang</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a8887351f8aee3cc57ababc137ab0719a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_DeleteNamespace_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>namespaceURI</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a31f0b721c8e755b228a7ae66fa28b0b7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_DeleteProperty_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="abf5878ee7b66e8c18d45006579ba41d3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_DeleteQualifier_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>qualNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>qualName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a50a73f676357dfdbf1c2d5661020e43e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_DeleteStructField_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>structName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>fieldNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>fieldName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6f0508454f99a854c74744f177c1294d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_DoesArrayItemExist_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>arrayName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a>&#160;</td>
+ <td class="paramname"><em>itemIndex</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a30e8a56bbc8c98a4787a6e6b4a1b9d1f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_DoesPropertyExist_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab3c906d916e6dba4f2d422849a642fce"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_DoesQualifierExist_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>qualNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>qualName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="adb8b207d7a45ffdc126092c97ce95010"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_DoesStructFieldExist_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>structName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>fieldNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>fieldName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0328d3f6b63a301c17469f3a636bee8d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_DumpNamespaces_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aa55bae1e6be4ddcefbaf214942e5b272">XMP_TextOutputProc</a>&#160;</td>
+ <td class="paramname"><em>outProc</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>refCon</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a68c7253abe28cd30ad7c7657c388f30e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_DumpObject_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aa55bae1e6be4ddcefbaf214942e5b272">XMP_TextOutputProc</a>&#160;</td>
+ <td class="paramname"><em>outProc</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>refCon</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3cce18be810b681d3dcd2a0798fb2990"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_Erase_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6d405bbe1c37ddd8ee7423d7be317f52"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_GetArrayItem_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>arrayName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a>&#160;</td>
+ <td class="paramname"><em>itemIndex</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>itemValue</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a>&#160;</td>
+ <td class="paramname"><em>SetClientString</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a58a125d8a9eeee3a8906d50262faf06c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_GetGlobalOptions_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0685ed8dc59360366c629cdc559076ce"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_GetIXMPMetadata_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpObjRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac166c8171e8e4079cfbaadbc20bfc4cc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_GetLocalizedText_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>altTextName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>genericLang</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>specificLang</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>clientLang</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>clientValue</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a>&#160;</td>
+ <td class="paramname"><em>SetClientString</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7f407dba2b3fee31aad4cc0887ba7a0e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_GetNamespacePrefix_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>namespaceURI</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>namespacePrefix</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a>&#160;</td>
+ <td class="paramname"><em>SetClientString</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae133a695d6efe0db6528395345f3c0c6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_GetNamespaceURI_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>namespacePrefix</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>namespaceURI</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a>&#160;</td>
+ <td class="paramname"><em>SetClientString</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7e9df8e5480d241a7ef7b033aa4e871f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_GetObjectName_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>objName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a>&#160;</td>
+ <td class="paramname"><em>SetClientString</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aaa50f01092ba1f94c9acaa390fb7afe9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_GetObjectOptions_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2c650c402ba4850b082c2204eb4ecb43"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_GetProperty_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>propValue</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a>&#160;</td>
+ <td class="paramname"><em>SetClientString</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a38c91b47500447c40cfb3b38d73c749c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_GetProperty_Bool_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a> *&#160;</td>
+ <td class="paramname"><em>propValue</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a27bd62e33f3fe7fd6777b1ef394d7af5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_GetProperty_Date_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *&#160;</td>
+ <td class="paramname"><em>propValue</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae80228876bb345c97a0fdebc52d9b5e4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_GetProperty_Float_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">double *&#160;</td>
+ <td class="paramname"><em>propValue</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3c95f29236b9e3a16fec0421479da937"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_GetProperty_Int64_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">XMP_Int64 *&#160;</td>
+ <td class="paramname"><em>propValue</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a37107581e02cf1197d04118b0bfcffe5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_GetProperty_Int_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">XMP_Int32 *&#160;</td>
+ <td class="paramname"><em>propValue</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad71ca4432c9e58f29caa355f70bc4f52"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_GetQualifier_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>qualNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>qualName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>qualValue</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a>&#160;</td>
+ <td class="paramname"><em>SetClientString</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a418658d30d2fd04c9080b3298a959c8d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_GetStructField_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>structName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>fieldNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>fieldName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>fieldValue</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a>&#160;</td>
+ <td class="paramname"><em>SetClientString</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa678642f09d4bc3ba83b55364112bf25"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_GetVersionInfo_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structXMP__VersionInfo.html">XMP_VersionInfo</a> *&#160;</td>
+ <td class="paramname"><em>info</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac85ab52aa3ea72b7a3a5a0ba90cb58a3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_IncrementRefCount_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a459d905958efba79649c9884ecbfc3d8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_Initialize_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9f3c397b927d7da7c84ee3a5a03ee2df"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_ParseFromBuffer_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>buffer</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a>&#160;</td>
+ <td class="paramname"><em>bufferSize</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0b32b12b061f62eb3f8ec1784165e03a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_RegisterNamespace_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>namespaceURI</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>suggestedPrefix</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>actualPrefix</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a>&#160;</td>
+ <td class="paramname"><em>SetClientString</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4155c5b0ae891213ea2d8f9872c215e8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_ResetErrorCallbackLimit_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">XMP_Uns32&#160;</td>
+ <td class="paramname"><em>limit</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af2ffbda0f3e382835296205504517d94"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_SerializeToBuffer_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>pktString</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a>&#160;</td>
+ <td class="paramname"><em>padding</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>newline</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>indent</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a>&#160;</td>
+ <td class="paramname"><em>baseIndent</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a>&#160;</td>
+ <td class="paramname"><em>SetClientString</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5a3ced9ef902d7281a4d0e3bbed8d0af"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_SetArrayItem_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>arrayName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a>&#160;</td>
+ <td class="paramname"><em>itemIndex</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>itemValue</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a21071def1d2284a61790b2d971231471"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_SetDefaultErrorCallback_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a32cbbc2b93eb9028d441ecb4223eb2a4">XMPMeta_ErrorCallbackWrapper</a>&#160;</td>
+ <td class="paramname"><em>wrapperProc</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#abb3c238ce96e9198ebe4260200bfb67b">XMPMeta_ErrorCallbackProc</a>&#160;</td>
+ <td class="paramname"><em>clientProc</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>context</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">XMP_Uns32&#160;</td>
+ <td class="paramname"><em>limit</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac4103e2833fe7efa8a46145a38e03ed5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_SetErrorCallback_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a32cbbc2b93eb9028d441ecb4223eb2a4">XMPMeta_ErrorCallbackWrapper</a>&#160;</td>
+ <td class="paramname"><em>wrapperProc</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#abb3c238ce96e9198ebe4260200bfb67b">XMPMeta_ErrorCallbackProc</a>&#160;</td>
+ <td class="paramname"><em>clientProc</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>context</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">XMP_Uns32&#160;</td>
+ <td class="paramname"><em>limit</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1239ebede304d572f34b1319c0b14c05"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_SetGlobalOptions_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae2b5b7330b5a153cc1de292e7ba291e5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_SetLocalizedText_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>altTextName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>genericLang</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>specificLang</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>itemValue</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="afee2f3c13f8dcb9f72104dd36eff4d68"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_SetObjectName_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae4afaee6e6376e126b919e73a8461e1e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_SetObjectOptions_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa9fcfcc4ad994abaa91574b956adc998"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_SetProperty_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propValue</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1e0b97d88538b256724218c24ec2aa06"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_SetProperty_Bool_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a>&#160;</td>
+ <td class="paramname"><em>propValue</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9a1bbebe74385a21e8eecd5883d01381"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_SetProperty_Date_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> &amp;&#160;</td>
+ <td class="paramname"><em>propValue</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5cf4a4b8c3ecfa12567ffdca5502f322"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_SetProperty_Float_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>propValue</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1659214d8debfaa1a7543ff4b96d700a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_SetProperty_Int64_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">XMP_Int64&#160;</td>
+ <td class="paramname"><em>propValue</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="abee87dd946056b03a1a650524ae3ce13"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_SetProperty_Int_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">XMP_Int32&#160;</td>
+ <td class="paramname"><em>propValue</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4fcdf3f4212ff34e0b24a76e11c1c583"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_SetQualifier_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>qualNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>qualName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>qualValue</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad9ee99501a3dabc327b972ab8c3c000d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_SetStructField_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>structName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>fieldNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>fieldName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>fieldValue</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac1d4f2bc9d0da42cda44f54071220eb5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_Sort_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a06d38f8fdf6a46ff8e672a98fb50f2f4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_Terminate_1 </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6d4b43bab339b01d216b29d89e695308"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPMeta_Use_CPP_DOM_APIs_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a>&#160;</td>
+ <td class="paramname"><em>useNewCoreAPIs</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/WXMPMeta_8hpp.js b/docs/API/WXMPMeta_8hpp.js
new file mode 100755
index 0000000..0b6d748
--- /dev/null
+++ b/docs/API/WXMPMeta_8hpp.js
@@ -0,0 +1,121 @@
+var WXMPMeta_8hpp =
+[
+ [ "__WXMPMeta_hpp__", "WXMPMeta_8hpp.html#afff47bd31a726ad7c0b3578a0d8bb9d7", null ],
+ [ "zXMPMeta_AppendArrayItem_1", "WXMPMeta_8hpp.html#a30ce4c07c9e676bd522ba2de196f8f62", null ],
+ [ "zXMPMeta_Clone_1", "WXMPMeta_8hpp.html#a0acf7eccade1539e1c0a69b8ff2887db", null ],
+ [ "zXMPMeta_CountArrayItems_1", "WXMPMeta_8hpp.html#af665276132037f0aad9c3184163ff088", null ],
+ [ "zXMPMeta_CTor_1", "WXMPMeta_8hpp.html#a5407ff91fcbe5cae856e8644e998c396", null ],
+ [ "zXMPMeta_DeleteArrayItem_1", "WXMPMeta_8hpp.html#a97ae24365cb43c4e6e6886d0d7fa9df6", null ],
+ [ "zXMPMeta_DeleteLocalizedText_1", "WXMPMeta_8hpp.html#abac12b12f5dc2ccb20fe28e293f8db1d", null ],
+ [ "zXMPMeta_DeleteNamespace_1", "WXMPMeta_8hpp.html#ad5e74b2f1acce6eab6e090c54ea742cc", null ],
+ [ "zXMPMeta_DeleteProperty_1", "WXMPMeta_8hpp.html#a1fd13036f7844b3b5c75984e8ac1e1e9", null ],
+ [ "zXMPMeta_DeleteQualifier_1", "WXMPMeta_8hpp.html#aa0e45856fae5a4c45f986978dae73843", null ],
+ [ "zXMPMeta_DeleteStructField_1", "WXMPMeta_8hpp.html#aaa1d0c192d952db671b24d38c974824e", null ],
+ [ "zXMPMeta_DoesArrayItemExist_1", "WXMPMeta_8hpp.html#a166e93fe425704a6b9b405b52fd492f8", null ],
+ [ "zXMPMeta_DoesPropertyExist_1", "WXMPMeta_8hpp.html#a2df62a9ced0164bbc4d4d63922d46e3e", null ],
+ [ "zXMPMeta_DoesQualifierExist_1", "WXMPMeta_8hpp.html#aa9370910efc3836b82ab4e24f36f859c", null ],
+ [ "zXMPMeta_DoesStructFieldExist_1", "WXMPMeta_8hpp.html#a0a780565631328197529fd5eda5839ed", null ],
+ [ "zXMPMeta_DumpNamespaces_1", "WXMPMeta_8hpp.html#a5e549c2a44cf580c1f6a25f02ba767af", null ],
+ [ "zXMPMeta_DumpObject_1", "WXMPMeta_8hpp.html#a18308efec56a894bfa2ed9a3967c8feb", null ],
+ [ "zXMPMeta_Erase_1", "WXMPMeta_8hpp.html#ae4b069f217d8e161ea7e972f1c37a641", null ],
+ [ "zXMPMeta_GetArrayItem_1", "WXMPMeta_8hpp.html#a4d079b8cbe5efc658a64b0bd9be60e8e", null ],
+ [ "zXMPMeta_GetGlobalOptions_1", "WXMPMeta_8hpp.html#a042f1cb44600209bed7d27a26ee937a3", null ],
+ [ "zXMPMeta_GetIXMPMetadata_1", "WXMPMeta_8hpp.html#a4b0a23906a0bd1ef87d381a7d940b5b0", null ],
+ [ "zXMPMeta_GetLocalizedText_1", "WXMPMeta_8hpp.html#ad18d48d5755d4318c725919eddeb4bec", null ],
+ [ "zXMPMeta_GetNamespacePrefix_1", "WXMPMeta_8hpp.html#afcbc2ac610c4e23a128ff80203e3a4a5", null ],
+ [ "zXMPMeta_GetNamespaceURI_1", "WXMPMeta_8hpp.html#a21cb3d8399b93c52cb4000cec668c5e3", null ],
+ [ "zXMPMeta_GetObjectName_1", "WXMPMeta_8hpp.html#a2e1e3752c2a1bc7a80c595ab9d08d2ff", null ],
+ [ "zXMPMeta_GetObjectOptions_1", "WXMPMeta_8hpp.html#a04725a82690d7fa41b294237f4a7efeb", null ],
+ [ "zXMPMeta_GetProperty_1", "WXMPMeta_8hpp.html#af4035499938bb4645b207b7ff65f19d7", null ],
+ [ "zXMPMeta_GetProperty_Bool_1", "WXMPMeta_8hpp.html#a7938f68d5243be7813ff405791e36518", null ],
+ [ "zXMPMeta_GetProperty_Date_1", "WXMPMeta_8hpp.html#a17131cb1b6f77db2c6fc56effddb629e", null ],
+ [ "zXMPMeta_GetProperty_Float_1", "WXMPMeta_8hpp.html#ac71c9ef20221ea9bfcf21f8265c35b17", null ],
+ [ "zXMPMeta_GetProperty_Int64_1", "WXMPMeta_8hpp.html#ab5ee5ac8d0de80b02b3d5588c596dfde", null ],
+ [ "zXMPMeta_GetProperty_Int_1", "WXMPMeta_8hpp.html#af95f01dadd596260f8d2833bc650135b", null ],
+ [ "zXMPMeta_GetQualifier_1", "WXMPMeta_8hpp.html#a3490f2d966ecaa048af87a6405128b08", null ],
+ [ "zXMPMeta_GetStructField_1", "WXMPMeta_8hpp.html#aaad2d6874da145ec47c9b4f60b76cfcf", null ],
+ [ "zXMPMeta_GetVersionInfo_1", "WXMPMeta_8hpp.html#a72415a5d17bb47c3d818d11a710f5c0b", null ],
+ [ "zXMPMeta_Initialize_1", "WXMPMeta_8hpp.html#af0ee01859f7324e6668fe372bc54a2a4", null ],
+ [ "zXMPMeta_ParseFromBuffer_1", "WXMPMeta_8hpp.html#a1e85839b8c67c99f43fb15fc2942b34d", null ],
+ [ "zXMPMeta_RegisterNamespace_1", "WXMPMeta_8hpp.html#adde0feeb518ce416f906292542a92d46", null ],
+ [ "zXMPMeta_ResetErrorCallbackLimit_1", "WXMPMeta_8hpp.html#a9128462ca53008ccf87e5fcd96cf966e", null ],
+ [ "zXMPMeta_SerializeToBuffer_1", "WXMPMeta_8hpp.html#a91cf006a6594600c7bff11a4460d077f", null ],
+ [ "zXMPMeta_SetArrayItem_1", "WXMPMeta_8hpp.html#aa5eeb477a58a35f336c4349e08e13600", null ],
+ [ "zXMPMeta_SetDefaultErrorCallback_1", "WXMPMeta_8hpp.html#ab4d6e5d26b15df865d0e96343d31e408", null ],
+ [ "zXMPMeta_SetErrorCallback_1", "WXMPMeta_8hpp.html#a2e349470fb118ebce92e0eabb305f4ff", null ],
+ [ "zXMPMeta_SetGlobalOptions_1", "WXMPMeta_8hpp.html#ab7ed5170b4879381078d0724cbdbbd0f", null ],
+ [ "zXMPMeta_SetLocalizedText_1", "WXMPMeta_8hpp.html#a2cf74d9cb0162bca6f5e024773bff238", null ],
+ [ "zXMPMeta_SetObjectName_1", "WXMPMeta_8hpp.html#a3ce4a228c127f37ebe5085fcbaae8851", null ],
+ [ "zXMPMeta_SetObjectOptions_1", "WXMPMeta_8hpp.html#ad7bf555513506cae450b216eb56dcef1", null ],
+ [ "zXMPMeta_SetProperty_1", "WXMPMeta_8hpp.html#abe56d32dec99c09791850e14fa199fff", null ],
+ [ "zXMPMeta_SetProperty_Bool_1", "WXMPMeta_8hpp.html#a15ef1d6a8788115c277cf74d254eae50", null ],
+ [ "zXMPMeta_SetProperty_Date_1", "WXMPMeta_8hpp.html#a10cd70a1efb7cdf9516842a89c8b42eb", null ],
+ [ "zXMPMeta_SetProperty_Float_1", "WXMPMeta_8hpp.html#a21feb6c743ada14de8277f6bcedd86a5", null ],
+ [ "zXMPMeta_SetProperty_Int64_1", "WXMPMeta_8hpp.html#abe1551b9240e06ba4d2ab972f1efbe85", null ],
+ [ "zXMPMeta_SetProperty_Int_1", "WXMPMeta_8hpp.html#a2224a04bc65b61f1557a4ceedfab2aee", null ],
+ [ "zXMPMeta_SetQualifier_1", "WXMPMeta_8hpp.html#a75913c1b8f26041bd029418d39902830", null ],
+ [ "zXMPMeta_SetStructField_1", "WXMPMeta_8hpp.html#a8faddabe97b832233d6e10aa9ca0fbef", null ],
+ [ "zXMPMeta_Sort_1", "WXMPMeta_8hpp.html#a0ba6dd317cb80ed9acc2bae3faf7a5e4", null ],
+ [ "zXMPMeta_Terminate_1", "WXMPMeta_8hpp.html#af9276110cbdeb3b3098b6bbdf620977f", null ],
+ [ "zXMPMeta_Use_CPP_DOM_APIs_1", "WXMPMeta_8hpp.html#a696f7638346770aecec1a4570098d9fd", null ],
+ [ "WrapErrorNotify", "WXMPMeta_8hpp.html#ab4f052c58b02cfecc26f8f2388249f4c", null ],
+ [ "WXMPMeta_AppendArrayItem_1", "WXMPMeta_8hpp.html#a76960e4bc1344208d70a6055448ce591", null ],
+ [ "WXMPMeta_Clone_1", "WXMPMeta_8hpp.html#a0cc1264e977ecceec1307b490f70cdcd", null ],
+ [ "WXMPMeta_CountArrayItems_1", "WXMPMeta_8hpp.html#a48f79b8f9005c0cd93e0cf03bbe43024", null ],
+ [ "WXMPMeta_CTor_1", "WXMPMeta_8hpp.html#a3fb6f849c25f5bf964beb7eb9e98049d", null ],
+ [ "WXMPMeta_DecrementRefCount_1", "WXMPMeta_8hpp.html#ac9ff1318eb934f05568d7f8f7177acf6", null ],
+ [ "WXMPMeta_DeleteArrayItem_1", "WXMPMeta_8hpp.html#ae83bc466041e54f8e32b3909b10a63fe", null ],
+ [ "WXMPMeta_DeleteLocalizedText_1", "WXMPMeta_8hpp.html#a198c0bd7ce71a4a1ee5b4ab6daba500e", null ],
+ [ "WXMPMeta_DeleteNamespace_1", "WXMPMeta_8hpp.html#a8887351f8aee3cc57ababc137ab0719a", null ],
+ [ "WXMPMeta_DeleteProperty_1", "WXMPMeta_8hpp.html#a31f0b721c8e755b228a7ae66fa28b0b7", null ],
+ [ "WXMPMeta_DeleteQualifier_1", "WXMPMeta_8hpp.html#abf5878ee7b66e8c18d45006579ba41d3", null ],
+ [ "WXMPMeta_DeleteStructField_1", "WXMPMeta_8hpp.html#a50a73f676357dfdbf1c2d5661020e43e", null ],
+ [ "WXMPMeta_DoesArrayItemExist_1", "WXMPMeta_8hpp.html#a6f0508454f99a854c74744f177c1294d", null ],
+ [ "WXMPMeta_DoesPropertyExist_1", "WXMPMeta_8hpp.html#a30e8a56bbc8c98a4787a6e6b4a1b9d1f", null ],
+ [ "WXMPMeta_DoesQualifierExist_1", "WXMPMeta_8hpp.html#ab3c906d916e6dba4f2d422849a642fce", null ],
+ [ "WXMPMeta_DoesStructFieldExist_1", "WXMPMeta_8hpp.html#adb8b207d7a45ffdc126092c97ce95010", null ],
+ [ "WXMPMeta_DumpNamespaces_1", "WXMPMeta_8hpp.html#a0328d3f6b63a301c17469f3a636bee8d", null ],
+ [ "WXMPMeta_DumpObject_1", "WXMPMeta_8hpp.html#a68c7253abe28cd30ad7c7657c388f30e", null ],
+ [ "WXMPMeta_Erase_1", "WXMPMeta_8hpp.html#a3cce18be810b681d3dcd2a0798fb2990", null ],
+ [ "WXMPMeta_GetArrayItem_1", "WXMPMeta_8hpp.html#a6d405bbe1c37ddd8ee7423d7be317f52", null ],
+ [ "WXMPMeta_GetGlobalOptions_1", "WXMPMeta_8hpp.html#a58a125d8a9eeee3a8906d50262faf06c", null ],
+ [ "WXMPMeta_GetIXMPMetadata_1", "WXMPMeta_8hpp.html#a0685ed8dc59360366c629cdc559076ce", null ],
+ [ "WXMPMeta_GetLocalizedText_1", "WXMPMeta_8hpp.html#ac166c8171e8e4079cfbaadbc20bfc4cc", null ],
+ [ "WXMPMeta_GetNamespacePrefix_1", "WXMPMeta_8hpp.html#a7f407dba2b3fee31aad4cc0887ba7a0e", null ],
+ [ "WXMPMeta_GetNamespaceURI_1", "WXMPMeta_8hpp.html#ae133a695d6efe0db6528395345f3c0c6", null ],
+ [ "WXMPMeta_GetObjectName_1", "WXMPMeta_8hpp.html#a7e9df8e5480d241a7ef7b033aa4e871f", null ],
+ [ "WXMPMeta_GetObjectOptions_1", "WXMPMeta_8hpp.html#aaa50f01092ba1f94c9acaa390fb7afe9", null ],
+ [ "WXMPMeta_GetProperty_1", "WXMPMeta_8hpp.html#a2c650c402ba4850b082c2204eb4ecb43", null ],
+ [ "WXMPMeta_GetProperty_Bool_1", "WXMPMeta_8hpp.html#a38c91b47500447c40cfb3b38d73c749c", null ],
+ [ "WXMPMeta_GetProperty_Date_1", "WXMPMeta_8hpp.html#a27bd62e33f3fe7fd6777b1ef394d7af5", null ],
+ [ "WXMPMeta_GetProperty_Float_1", "WXMPMeta_8hpp.html#ae80228876bb345c97a0fdebc52d9b5e4", null ],
+ [ "WXMPMeta_GetProperty_Int64_1", "WXMPMeta_8hpp.html#a3c95f29236b9e3a16fec0421479da937", null ],
+ [ "WXMPMeta_GetProperty_Int_1", "WXMPMeta_8hpp.html#a37107581e02cf1197d04118b0bfcffe5", null ],
+ [ "WXMPMeta_GetQualifier_1", "WXMPMeta_8hpp.html#ad71ca4432c9e58f29caa355f70bc4f52", null ],
+ [ "WXMPMeta_GetStructField_1", "WXMPMeta_8hpp.html#a418658d30d2fd04c9080b3298a959c8d", null ],
+ [ "WXMPMeta_GetVersionInfo_1", "WXMPMeta_8hpp.html#aa678642f09d4bc3ba83b55364112bf25", null ],
+ [ "WXMPMeta_IncrementRefCount_1", "WXMPMeta_8hpp.html#ac85ab52aa3ea72b7a3a5a0ba90cb58a3", null ],
+ [ "WXMPMeta_Initialize_1", "WXMPMeta_8hpp.html#a459d905958efba79649c9884ecbfc3d8", null ],
+ [ "WXMPMeta_ParseFromBuffer_1", "WXMPMeta_8hpp.html#a9f3c397b927d7da7c84ee3a5a03ee2df", null ],
+ [ "WXMPMeta_RegisterNamespace_1", "WXMPMeta_8hpp.html#a0b32b12b061f62eb3f8ec1784165e03a", null ],
+ [ "WXMPMeta_ResetErrorCallbackLimit_1", "WXMPMeta_8hpp.html#a4155c5b0ae891213ea2d8f9872c215e8", null ],
+ [ "WXMPMeta_SerializeToBuffer_1", "WXMPMeta_8hpp.html#af2ffbda0f3e382835296205504517d94", null ],
+ [ "WXMPMeta_SetArrayItem_1", "WXMPMeta_8hpp.html#a5a3ced9ef902d7281a4d0e3bbed8d0af", null ],
+ [ "WXMPMeta_SetDefaultErrorCallback_1", "WXMPMeta_8hpp.html#a21071def1d2284a61790b2d971231471", null ],
+ [ "WXMPMeta_SetErrorCallback_1", "WXMPMeta_8hpp.html#ac4103e2833fe7efa8a46145a38e03ed5", null ],
+ [ "WXMPMeta_SetGlobalOptions_1", "WXMPMeta_8hpp.html#a1239ebede304d572f34b1319c0b14c05", null ],
+ [ "WXMPMeta_SetLocalizedText_1", "WXMPMeta_8hpp.html#ae2b5b7330b5a153cc1de292e7ba291e5", null ],
+ [ "WXMPMeta_SetObjectName_1", "WXMPMeta_8hpp.html#afee2f3c13f8dcb9f72104dd36eff4d68", null ],
+ [ "WXMPMeta_SetObjectOptions_1", "WXMPMeta_8hpp.html#ae4afaee6e6376e126b919e73a8461e1e", null ],
+ [ "WXMPMeta_SetProperty_1", "WXMPMeta_8hpp.html#aa9fcfcc4ad994abaa91574b956adc998", null ],
+ [ "WXMPMeta_SetProperty_Bool_1", "WXMPMeta_8hpp.html#a1e0b97d88538b256724218c24ec2aa06", null ],
+ [ "WXMPMeta_SetProperty_Date_1", "WXMPMeta_8hpp.html#a9a1bbebe74385a21e8eecd5883d01381", null ],
+ [ "WXMPMeta_SetProperty_Float_1", "WXMPMeta_8hpp.html#a5cf4a4b8c3ecfa12567ffdca5502f322", null ],
+ [ "WXMPMeta_SetProperty_Int64_1", "WXMPMeta_8hpp.html#a1659214d8debfaa1a7543ff4b96d700a", null ],
+ [ "WXMPMeta_SetProperty_Int_1", "WXMPMeta_8hpp.html#abee87dd946056b03a1a650524ae3ce13", null ],
+ [ "WXMPMeta_SetQualifier_1", "WXMPMeta_8hpp.html#a4fcdf3f4212ff34e0b24a76e11c1c583", null ],
+ [ "WXMPMeta_SetStructField_1", "WXMPMeta_8hpp.html#ad9ee99501a3dabc327b972ab8c3c000d", null ],
+ [ "WXMPMeta_Sort_1", "WXMPMeta_8hpp.html#ac1d4f2bc9d0da42cda44f54071220eb5", null ],
+ [ "WXMPMeta_Terminate_1", "WXMPMeta_8hpp.html#a06d38f8fdf6a46ff8e672a98fb50f2f4", null ],
+ [ "WXMPMeta_Use_CPP_DOM_APIs_1", "WXMPMeta_8hpp.html#a6d4b43bab339b01d216b29d89e695308", null ]
+]; \ No newline at end of file
diff --git a/docs/API/WXMPMeta_8hpp_source.html b/docs/API/WXMPMeta_8hpp_source.html
new file mode 100755
index 0000000..93b8fb9
--- /dev/null
+++ b/docs/API/WXMPMeta_8hpp_source.html
@@ -0,0 +1,125 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/client-glue/WXMPMeta.hpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('WXMPMeta_8hpp_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">WXMPMeta.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="WXMPMeta_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#if ! __WXMPMeta_hpp__</span></div><div class="line"><a name="l00002"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#afff47bd31a726ad7c0b3578a0d8bb9d7"> 2</a></span>&#160;<span class="preprocessor">#define __WXMPMeta_hpp__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright 2002 Adobe Systems Incorporated</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// All Rights Reserved.</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="WXMP__Common_8hpp.html">client-glue/WXMP_Common.hpp</a>&quot;</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#if __cplusplus</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#ab4f052c58b02cfecc26f8f2388249f4c"> 20</a></span>&#160;<span class="keyword">static</span> <a class="code" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a> <a class="code" href="WXMPMeta_8hpp.html#ab4f052c58b02cfecc26f8f2388249f4c">WrapErrorNotify</a> ( <a class="code" href="XMP__Const_8h.html#abb3c238ce96e9198ebe4260200bfb67b">XMPMeta_ErrorCallbackProc</a> proc, <span class="keywordtype">void</span> * context,</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <a class="code" href="XMP__Const_8h.html#ae4a7c9347994883250dc440566eb9f52">XMP_ErrorSeverity</a> severity, XMP_Int32 cause, <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> message )</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;{</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keywordtype">bool</span> ok;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordflow">try</span> {</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; ok = (*proc) ( context, severity, cause, message );</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; } <span class="keywordflow">catch</span> ( ... ) {</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; ok = <span class="keyword">false</span>;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; }</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordflow">return</span> <a class="code" href="XMP__Const_8h.html#ae6037ae90db1ec7d7c988aec7a8319cb">ConvertBoolToXMP_Bool</a>( ok );</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;}</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#a72415a5d17bb47c3d818d11a710f5c0b"> 34</a></span>&#160;<span class="preprocessor">#define zXMPMeta_GetVersionInfo_1(info) \</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor"> WXMPMeta_GetVersionInfo_1 ( info </span><span class="comment">/* no wResult */</span><span class="preprocessor"> )</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#af0ee01859f7324e6668fe372bc54a2a4"> 37</a></span>&#160;<span class="preprocessor">#define zXMPMeta_Initialize_1() \</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor"> WXMPMeta_Initialize_1 ( &amp;wResult )</span></div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#af9276110cbdeb3b3098b6bbdf620977f"> 39</a></span>&#160;<span class="preprocessor">#define zXMPMeta_Terminate_1() \</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor"> WXMPMeta_Terminate_1 ( </span><span class="comment">/* no wResult */</span><span class="preprocessor"> )</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#a5407ff91fcbe5cae856e8644e998c396"> 42</a></span>&#160;<span class="preprocessor">#define zXMPMeta_CTor_1() \</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor"> WXMPMeta_CTor_1 ( &amp;wResult )</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#a042f1cb44600209bed7d27a26ee937a3"> 45</a></span>&#160;<span class="preprocessor">#define zXMPMeta_GetGlobalOptions_1() \</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor"> WXMPMeta_GetGlobalOptions_1 ( &amp;wResult )</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#ab7ed5170b4879381078d0724cbdbbd0f"> 48</a></span>&#160;<span class="preprocessor">#define zXMPMeta_SetGlobalOptions_1(options) \</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"> WXMPMeta_SetGlobalOptions_1 ( options, &amp;wResult )</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#a5e549c2a44cf580c1f6a25f02ba767af"> 51</a></span>&#160;<span class="preprocessor">#define zXMPMeta_DumpNamespaces_1(outProc,refCon) \</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor"> WXMPMeta_DumpNamespaces_1 ( outProc, refCon, &amp;wResult )</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#a696f7638346770aecec1a4570098d9fd"> 54</a></span>&#160;<span class="preprocessor">#define zXMPMeta_Use_CPP_DOM_APIs_1(useNewCoreAPIs) \</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor"> WXMPMeta_Use_CPP_DOM_APIs_1( useNewCoreAPIs, &amp;wResult )</span></div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#adde0feeb518ce416f906292542a92d46"> 56</a></span>&#160;<span class="preprocessor">#define zXMPMeta_RegisterNamespace_1(namespaceURI,suggestedPrefix,actualPrefix,SetClientString) \</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"> WXMPMeta_RegisterNamespace_1 ( namespaceURI, suggestedPrefix, actualPrefix, SetClientString, &amp;wResult )</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#afcbc2ac610c4e23a128ff80203e3a4a5"> 59</a></span>&#160;<span class="preprocessor">#define zXMPMeta_GetNamespacePrefix_1(namespaceURI,namespacePrefix,SetClientString) \</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor"> WXMPMeta_GetNamespacePrefix_1 ( namespaceURI, namespacePrefix, SetClientString, &amp;wResult )</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#a21cb3d8399b93c52cb4000cec668c5e3"> 62</a></span>&#160;<span class="preprocessor">#define zXMPMeta_GetNamespaceURI_1(namespacePrefix,namespaceURI,SetClientString) \</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor"> WXMPMeta_GetNamespaceURI_1 ( namespacePrefix, namespaceURI, SetClientString, &amp;wResult )</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#ad5e74b2f1acce6eab6e090c54ea742cc"> 65</a></span>&#160;<span class="preprocessor">#define zXMPMeta_DeleteNamespace_1(namespaceURI) \</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor"> WXMPMeta_DeleteNamespace_1 ( namespaceURI, &amp;wResult )</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#a4b0a23906a0bd1ef87d381a7d940b5b0"> 68</a></span>&#160;<span class="preprocessor">#define zXMPMeta_GetIXMPMetadata_1() \</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor"> WXMPMeta_GetIXMPMetadata_1( this-&gt;xmpRef, &amp;wResult )</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#af4035499938bb4645b207b7ff65f19d7"> 71</a></span>&#160;<span class="preprocessor">#define zXMPMeta_GetProperty_1(schemaNS,propName,propValue,options,SetClientString) \</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor"> WXMPMeta_GetProperty_1 ( this-&gt;xmpRef, schemaNS, propName, propValue, options, SetClientString, &amp;wResult )</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#a4d079b8cbe5efc658a64b0bd9be60e8e"> 74</a></span>&#160;<span class="preprocessor">#define zXMPMeta_GetArrayItem_1(schemaNS,arrayName,itemIndex,itemValue,options,SetClientString) \</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor"> WXMPMeta_GetArrayItem_1 ( this-&gt;xmpRef, schemaNS, arrayName, itemIndex, itemValue, options, SetClientString, &amp;wResult )</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#aaad2d6874da145ec47c9b4f60b76cfcf"> 77</a></span>&#160;<span class="preprocessor">#define zXMPMeta_GetStructField_1(schemaNS,structName,fieldNS,fieldName,fieldValue,options,SetClientString) \</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor"> WXMPMeta_GetStructField_1 ( this-&gt;xmpRef, schemaNS, structName, fieldNS, fieldName, fieldValue, options, SetClientString, &amp;wResult )</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#a3490f2d966ecaa048af87a6405128b08"> 80</a></span>&#160;<span class="preprocessor">#define zXMPMeta_GetQualifier_1(schemaNS,propName,qualNS,qualName,qualValue,options,SetClientString) \</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor"> WXMPMeta_GetQualifier_1 ( this-&gt;xmpRef, schemaNS, propName, qualNS, qualName, qualValue, options, SetClientString, &amp;wResult )</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#abe56d32dec99c09791850e14fa199fff"> 83</a></span>&#160;<span class="preprocessor">#define zXMPMeta_SetProperty_1(schemaNS,propName,propValue,options) \</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor"> WXMPMeta_SetProperty_1 ( this-&gt;xmpRef, schemaNS, propName, propValue, options, &amp;wResult )</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#aa5eeb477a58a35f336c4349e08e13600"> 86</a></span>&#160;<span class="preprocessor">#define zXMPMeta_SetArrayItem_1(schemaNS,arrayName,itemIndex,itemValue,options) \</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor"> WXMPMeta_SetArrayItem_1 ( this-&gt;xmpRef, schemaNS, arrayName, itemIndex, itemValue, options, &amp;wResult )</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#a30ce4c07c9e676bd522ba2de196f8f62"> 89</a></span>&#160;<span class="preprocessor">#define zXMPMeta_AppendArrayItem_1(schemaNS,arrayName,arrayOptions,itemValue,options) \</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor"> WXMPMeta_AppendArrayItem_1 ( this-&gt;xmpRef, schemaNS, arrayName, arrayOptions, itemValue, options, &amp;wResult )</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#a8faddabe97b832233d6e10aa9ca0fbef"> 92</a></span>&#160;<span class="preprocessor">#define zXMPMeta_SetStructField_1(schemaNS,structName,fieldNS,fieldName,fieldValue,options) \</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="preprocessor"> WXMPMeta_SetStructField_1 ( this-&gt;xmpRef, schemaNS, structName, fieldNS, fieldName, fieldValue, options, &amp;wResult )</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#a75913c1b8f26041bd029418d39902830"> 95</a></span>&#160;<span class="preprocessor">#define zXMPMeta_SetQualifier_1(schemaNS,propName,qualNS,qualName,qualValue,options) \</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="preprocessor"> WXMPMeta_SetQualifier_1 ( this-&gt;xmpRef, schemaNS, propName, qualNS, qualName, qualValue, options, &amp;wResult )</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#a1fd13036f7844b3b5c75984e8ac1e1e9"> 98</a></span>&#160;<span class="preprocessor">#define zXMPMeta_DeleteProperty_1(schemaNS,propName) \</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="preprocessor"> WXMPMeta_DeleteProperty_1 ( this-&gt;xmpRef, schemaNS, propName, &amp;wResult )</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#a97ae24365cb43c4e6e6886d0d7fa9df6"> 101</a></span>&#160;<span class="preprocessor">#define zXMPMeta_DeleteArrayItem_1(schemaNS,arrayName,itemIndex) \</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="preprocessor"> WXMPMeta_DeleteArrayItem_1 ( this-&gt;xmpRef, schemaNS, arrayName, itemIndex, &amp;wResult )</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#aaa1d0c192d952db671b24d38c974824e"> 104</a></span>&#160;<span class="preprocessor">#define zXMPMeta_DeleteStructField_1(schemaNS,structName,fieldNS,fieldName) \</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="preprocessor"> WXMPMeta_DeleteStructField_1 ( this-&gt;xmpRef, schemaNS, structName, fieldNS, fieldName, &amp;wResult )</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#aa0e45856fae5a4c45f986978dae73843"> 107</a></span>&#160;<span class="preprocessor">#define zXMPMeta_DeleteQualifier_1(schemaNS,propName,qualNS,qualName) \</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="preprocessor"> WXMPMeta_DeleteQualifier_1 ( this-&gt;xmpRef, schemaNS, propName, qualNS, qualName, &amp;wResult )</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#a2df62a9ced0164bbc4d4d63922d46e3e"> 110</a></span>&#160;<span class="preprocessor">#define zXMPMeta_DoesPropertyExist_1(schemaNS,propName) \</span></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="preprocessor"> WXMPMeta_DoesPropertyExist_1 ( this-&gt;xmpRef, schemaNS, propName, &amp;wResult )</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#a166e93fe425704a6b9b405b52fd492f8"> 113</a></span>&#160;<span class="preprocessor">#define zXMPMeta_DoesArrayItemExist_1(schemaNS,arrayName,itemIndex) \</span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="preprocessor"> WXMPMeta_DoesArrayItemExist_1 ( this-&gt;xmpRef, schemaNS, arrayName, itemIndex, &amp;wResult )</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#a0a780565631328197529fd5eda5839ed"> 116</a></span>&#160;<span class="preprocessor">#define zXMPMeta_DoesStructFieldExist_1(schemaNS,structName,fieldNS,fieldName) \</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="preprocessor"> WXMPMeta_DoesStructFieldExist_1 ( this-&gt;xmpRef, schemaNS, structName, fieldNS, fieldName, &amp;wResult )</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#aa9370910efc3836b82ab4e24f36f859c"> 119</a></span>&#160;<span class="preprocessor">#define zXMPMeta_DoesQualifierExist_1(schemaNS,propName,qualNS,qualName) \</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="preprocessor"> WXMPMeta_DoesQualifierExist_1 ( this-&gt;xmpRef, schemaNS, propName, qualNS, qualName, &amp;wResult )</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#ad18d48d5755d4318c725919eddeb4bec"> 122</a></span>&#160;<span class="preprocessor">#define zXMPMeta_GetLocalizedText_1(schemaNS,altTextName,genericLang,specificLang,clientLang,clientValue,options,SetClientString) \</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="preprocessor"> WXMPMeta_GetLocalizedText_1 ( this-&gt;xmpRef, schemaNS, altTextName, genericLang, specificLang, clientLang, clientValue, options, SetClientString, &amp;wResult )</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#a2cf74d9cb0162bca6f5e024773bff238"> 125</a></span>&#160;<span class="preprocessor">#define zXMPMeta_SetLocalizedText_1(schemaNS,altTextName,genericLang,specificLang,itemValue,options) \</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="preprocessor"> WXMPMeta_SetLocalizedText_1 ( this-&gt;xmpRef, schemaNS, altTextName, genericLang, specificLang, itemValue, options, &amp;wResult )</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#abac12b12f5dc2ccb20fe28e293f8db1d"> 128</a></span>&#160;<span class="preprocessor">#define zXMPMeta_DeleteLocalizedText_1(schemaNS,altTextName,genericLang,specificLang) \</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="preprocessor"> WXMPMeta_DeleteLocalizedText_1 ( this-&gt;xmpRef, schemaNS, altTextName, genericLang, specificLang, &amp;wResult )</span></div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#a7938f68d5243be7813ff405791e36518"> 130</a></span>&#160;<span class="preprocessor">#define zXMPMeta_GetProperty_Bool_1(schemaNS,propName,propValue,options) \</span></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="preprocessor"> WXMPMeta_GetProperty_Bool_1 ( this-&gt;xmpRef, schemaNS, propName, propValue, options, &amp;wResult )</span></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#af95f01dadd596260f8d2833bc650135b"> 133</a></span>&#160;<span class="preprocessor">#define zXMPMeta_GetProperty_Int_1(schemaNS,propName,propValue,options) \</span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="preprocessor"> WXMPMeta_GetProperty_Int_1 ( this-&gt;xmpRef, schemaNS, propName, propValue, options, &amp;wResult )</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#ab5ee5ac8d0de80b02b3d5588c596dfde"> 136</a></span>&#160;<span class="preprocessor">#define zXMPMeta_GetProperty_Int64_1(schemaNS,propName,propValue,options) \</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="preprocessor"> WXMPMeta_GetProperty_Int64_1 ( this-&gt;xmpRef, schemaNS, propName, propValue, options, &amp;wResult )</span></div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#ac71c9ef20221ea9bfcf21f8265c35b17"> 139</a></span>&#160;<span class="preprocessor">#define zXMPMeta_GetProperty_Float_1(schemaNS,propName,propValue,options) \</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="preprocessor"> WXMPMeta_GetProperty_Float_1 ( this-&gt;xmpRef, schemaNS, propName, propValue, options, &amp;wResult )</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#a17131cb1b6f77db2c6fc56effddb629e"> 142</a></span>&#160;<span class="preprocessor">#define zXMPMeta_GetProperty_Date_1(schemaNS,propName,propValue,options) \</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="preprocessor"> WXMPMeta_GetProperty_Date_1 ( this-&gt;xmpRef, schemaNS, propName, propValue, options, &amp;wResult )</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#a15ef1d6a8788115c277cf74d254eae50"> 145</a></span>&#160;<span class="preprocessor">#define zXMPMeta_SetProperty_Bool_1(schemaNS,propName,propValue,options) \</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="preprocessor"> WXMPMeta_SetProperty_Bool_1 ( this-&gt;xmpRef, schemaNS, propName, propValue, options, &amp;wResult )</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#a2224a04bc65b61f1557a4ceedfab2aee"> 148</a></span>&#160;<span class="preprocessor">#define zXMPMeta_SetProperty_Int_1(schemaNS,propName,propValue,options) \</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="preprocessor"> WXMPMeta_SetProperty_Int_1 ( this-&gt;xmpRef, schemaNS, propName, propValue, options, &amp;wResult )</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#abe1551b9240e06ba4d2ab972f1efbe85"> 151</a></span>&#160;<span class="preprocessor">#define zXMPMeta_SetProperty_Int64_1(schemaNS,propName,propValue,options) \</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="preprocessor"> WXMPMeta_SetProperty_Int64_1 ( this-&gt;xmpRef, schemaNS, propName, propValue, options, &amp;wResult )</span></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#a21feb6c743ada14de8277f6bcedd86a5"> 154</a></span>&#160;<span class="preprocessor">#define zXMPMeta_SetProperty_Float_1(schemaNS,propName,propValue,options) \</span></div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="preprocessor"> WXMPMeta_SetProperty_Float_1 ( this-&gt;xmpRef, schemaNS, propName, propValue, options, &amp;wResult )</span></div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#a10cd70a1efb7cdf9516842a89c8b42eb"> 157</a></span>&#160;<span class="preprocessor">#define zXMPMeta_SetProperty_Date_1(schemaNS,propName,propValue,options) \</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="preprocessor"> WXMPMeta_SetProperty_Date_1 ( this-&gt;xmpRef, schemaNS, propName, propValue, options, &amp;wResult )</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#a2e1e3752c2a1bc7a80c595ab9d08d2ff"> 160</a></span>&#160;<span class="preprocessor">#define zXMPMeta_GetObjectName_1(objName,SetClientString) \</span></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="preprocessor"> WXMPMeta_GetObjectName_1 ( this-&gt;xmpRef, objName, SetClientString, &amp;wResult )</span></div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#a3ce4a228c127f37ebe5085fcbaae8851"> 163</a></span>&#160;<span class="preprocessor">#define zXMPMeta_SetObjectName_1(name) \</span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="preprocessor"> WXMPMeta_SetObjectName_1 ( this-&gt;xmpRef, name, &amp;wResult )</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#a04725a82690d7fa41b294237f4a7efeb"> 166</a></span>&#160;<span class="preprocessor">#define zXMPMeta_GetObjectOptions_1() \</span></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="preprocessor"> WXMPMeta_GetObjectOptions_1 ( this-&gt;xmpRef, &amp;wResult )</span></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#ad7bf555513506cae450b216eb56dcef1"> 169</a></span>&#160;<span class="preprocessor">#define zXMPMeta_SetObjectOptions_1(options) \</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="preprocessor"> WXMPMeta_SetObjectOptions_1 ( this-&gt;xmpRef, options, &amp;wResult )</span></div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#a0ba6dd317cb80ed9acc2bae3faf7a5e4"> 172</a></span>&#160;<span class="preprocessor">#define zXMPMeta_Sort_1() \</span></div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="preprocessor"> WXMPMeta_Sort_1 ( this-&gt;xmpRef, &amp;wResult )</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#ae4b069f217d8e161ea7e972f1c37a641"> 175</a></span>&#160;<span class="preprocessor">#define zXMPMeta_Erase_1() \</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="preprocessor"> WXMPMeta_Erase_1 ( this-&gt;xmpRef, &amp;wResult )</span></div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div><div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#a0acf7eccade1539e1c0a69b8ff2887db"> 178</a></span>&#160;<span class="preprocessor">#define zXMPMeta_Clone_1(options) \</span></div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="preprocessor"> WXMPMeta_Clone_1 ( this-&gt;xmpRef, options, &amp;wResult )</span></div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#af665276132037f0aad9c3184163ff088"> 181</a></span>&#160;<span class="preprocessor">#define zXMPMeta_CountArrayItems_1(schemaNS,arrayName) \</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="preprocessor"> WXMPMeta_CountArrayItems_1 ( this-&gt;xmpRef, schemaNS, arrayName, &amp;wResult )</span></div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#a18308efec56a894bfa2ed9a3967c8feb"> 184</a></span>&#160;<span class="preprocessor">#define zXMPMeta_DumpObject_1(outProc,refCon) \</span></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="preprocessor"> WXMPMeta_DumpObject_1 ( this-&gt;xmpRef, outProc, refCon, &amp;wResult )</span></div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#a1e85839b8c67c99f43fb15fc2942b34d"> 187</a></span>&#160;<span class="preprocessor">#define zXMPMeta_ParseFromBuffer_1(buffer,bufferSize,options) \</span></div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="preprocessor"> WXMPMeta_ParseFromBuffer_1 ( this-&gt;xmpRef, buffer, bufferSize, options, &amp;wResult )</span></div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#a91cf006a6594600c7bff11a4460d077f"> 190</a></span>&#160;<span class="preprocessor">#define zXMPMeta_SerializeToBuffer_1(pktString,options,padding,newline,indent,baseIndent,SetClientString) \</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="preprocessor"> WXMPMeta_SerializeToBuffer_1 ( this-&gt;xmpRef, pktString, options, padding, newline, indent, baseIndent, SetClientString, &amp;wResult )</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#ab4d6e5d26b15df865d0e96343d31e408"> 193</a></span>&#160;<span class="preprocessor">#define zXMPMeta_SetDefaultErrorCallback_1(proc,context,limit) \</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="preprocessor"> WXMPMeta_SetDefaultErrorCallback_1 ( WrapErrorNotify, proc, context, limit, &amp;wResult )</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; </div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#a2e349470fb118ebce92e0eabb305f4ff"> 196</a></span>&#160;<span class="preprocessor">#define zXMPMeta_SetErrorCallback_1(proc,context,limit) \</span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="preprocessor"> WXMPMeta_SetErrorCallback_1 ( this-&gt;xmpRef, WrapErrorNotify, proc, context, limit, &amp;wResult )</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="WXMPMeta_8hpp.html#a9128462ca53008ccf87e5fcd96cf966e"> 199</a></span>&#160;<span class="preprocessor">#define zXMPMeta_ResetErrorCallbackLimit_1(limit) \</span></div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="preprocessor"> WXMPMeta_ResetErrorCallbackLimit_1 ( this-&gt;xmpRef, limit, &amp;wResult )</span></div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#aa678642f09d4bc3ba83b55364112bf25">WXMPMeta_GetVersionInfo_1</a> ( <a class="code" href="structXMP__VersionInfo.html">XMP_VersionInfo</a> * info );</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#a459d905958efba79649c9884ecbfc3d8">WXMPMeta_Initialize_1</a> ( <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#a06d38f8fdf6a46ff8e672a98fb50f2f4">WXMPMeta_Terminate_1</a>();</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="comment">// -------------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#a3fb6f849c25f5bf964beb7eb9e98049d">WXMPMeta_CTor_1</a> ( <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#ac85ab52aa3ea72b7a3a5a0ba90cb58a3">WXMPMeta_IncrementRefCount_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef );</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#ac9ff1318eb934f05568d7f8f7177acf6">WXMPMeta_DecrementRefCount_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef );</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="comment">// -------------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#a58a125d8a9eeee3a8906d50262faf06c">WXMPMeta_GetGlobalOptions_1</a> ( <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#a1239ebede304d572f34b1319c0b14c05">WXMPMeta_SetGlobalOptions_1</a> ( <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options,</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="comment">// -------------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#a0328d3f6b63a301c17469f3a636bee8d">WXMPMeta_DumpNamespaces_1</a> ( <a class="code" href="XMP__Const_8h.html#aa55bae1e6be4ddcefbaf214942e5b272">XMP_TextOutputProc</a> outProc,</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordtype">void</span> * refCon,</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#a6d4b43bab339b01d216b29d89e695308">WXMPMeta_Use_CPP_DOM_APIs_1</a>( <a class="code" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a> useNewCoreAPIs,</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="comment">// -------------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#a0b32b12b061f62eb3f8ec1784165e03a">WXMPMeta_RegisterNamespace_1</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> namespaceURI,</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> suggestedPrefix,</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordtype">void</span> * actualPrefix,</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <a class="code" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString,</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#a7f407dba2b3fee31aad4cc0887ba7a0e">WXMPMeta_GetNamespacePrefix_1</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> namespaceURI,</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordtype">void</span> * namespacePrefix,</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <a class="code" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString,</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#ae133a695d6efe0db6528395345f3c0c6">WXMPMeta_GetNamespaceURI_1</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> namespacePrefix,</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordtype">void</span> * namespaceURI,</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <a class="code" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString,</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#a8887351f8aee3cc57ababc137ab0719a">WXMPMeta_DeleteNamespace_1</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> namespaceURI,</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="comment">// -------------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#a0685ed8dc59360366c629cdc559076ce">WXMPMeta_GetIXMPMetadata_1</a>(<a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpObjRef,</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#a2c650c402ba4850b082c2204eb4ecb43">WXMPMeta_GetProperty_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordtype">void</span> * propValue,</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> * options,</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <a class="code" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString,</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult ) <span class="comment">/* const */</span> ;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#a6d405bbe1c37ddd8ee7423d7be317f52">WXMPMeta_GetArrayItem_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName,</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <a class="code" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a> itemIndex,</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keywordtype">void</span> * itemValue,</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> * options,</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <a class="code" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString,</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult ) <span class="comment">/* const */</span> ;</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#a418658d30d2fd04c9080b3298a959c8d">WXMPMeta_GetStructField_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> structName,</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldNS,</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldName,</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordtype">void</span> * fieldValue,</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> * options,</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <a class="code" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString,</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult ) <span class="comment">/* const */</span> ;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#ad71ca4432c9e58f29caa355f70bc4f52">WXMPMeta_GetQualifier_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualNS,</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualName,</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordtype">void</span> * qualValue,</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> * options,</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <a class="code" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString,</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult ) <span class="comment">/* const */</span> ;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;<span class="comment">// -------------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#aa9fcfcc4ad994abaa91574b956adc998">WXMPMeta_SetProperty_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propValue,</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options,</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#a5a3ced9ef902d7281a4d0e3bbed8d0af">WXMPMeta_SetArrayItem_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName,</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <a class="code" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a> itemIndex,</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> itemValue,</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options,</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#a76960e4bc1344208d70a6055448ce591">WXMPMeta_AppendArrayItem_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName,</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> arrayOptions,</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> itemValue,</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options,</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#ad9ee99501a3dabc327b972ab8c3c000d">WXMPMeta_SetStructField_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> structName,</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldNS,</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldName,</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldValue,</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options,</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#a4fcdf3f4212ff34e0b24a76e11c1c583">WXMPMeta_SetQualifier_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualNS,</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualName,</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualValue,</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options,</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;<span class="comment">// -------------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#a31f0b721c8e755b228a7ae66fa28b0b7">WXMPMeta_DeleteProperty_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#ae83bc466041e54f8e32b3909b10a63fe">WXMPMeta_DeleteArrayItem_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName,</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <a class="code" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a> itemIndex,</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#a50a73f676357dfdbf1c2d5661020e43e">WXMPMeta_DeleteStructField_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> structName,</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldNS,</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldName,</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#abf5878ee7b66e8c18d45006579ba41d3">WXMPMeta_DeleteQualifier_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualNS,</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualName,</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;<span class="comment">// -------------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#a30e8a56bbc8c98a4787a6e6b4a1b9d1f">WXMPMeta_DoesPropertyExist_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult ) <span class="comment">/* const */</span> ;</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#a6f0508454f99a854c74744f177c1294d">WXMPMeta_DoesArrayItemExist_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName,</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <a class="code" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a> itemIndex,</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult ) <span class="comment">/* const */</span> ;</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#adb8b207d7a45ffdc126092c97ce95010">WXMPMeta_DoesStructFieldExist_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> structName,</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldNS,</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldName,</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult ) <span class="comment">/* const */</span> ;</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#ab3c906d916e6dba4f2d422849a642fce">WXMPMeta_DoesQualifierExist_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualNS,</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualName,</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult ) <span class="comment">/* const */</span> ;</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;<span class="comment">// -------------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#ac166c8171e8e4079cfbaadbc20bfc4cc">WXMPMeta_GetLocalizedText_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> altTextName,</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> genericLang,</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> specificLang,</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keywordtype">void</span> * clientLang,</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keywordtype">void</span> * clientValue,</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> * options,</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <a class="code" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString,</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult ) <span class="comment">/* const */</span> ;</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#ae2b5b7330b5a153cc1de292e7ba291e5">WXMPMeta_SetLocalizedText_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> altTextName,</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> genericLang,</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> specificLang,</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> itemValue,</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options,</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#a198c0bd7ce71a4a1ee5b4ab6daba500e">WXMPMeta_DeleteLocalizedText_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> altTextName,</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> genericLang,</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> specificLang,</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;<span class="comment">// -------------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#a38c91b47500447c40cfb3b38d73c749c">WXMPMeta_GetProperty_Bool_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <a class="code" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a> * propValue,</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> * options,</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult ) <span class="comment">/* const */</span> ;</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#a37107581e02cf1197d04118b0bfcffe5">WXMPMeta_GetProperty_Int_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; XMP_Int32 * propValue,</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> * options,</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult ) <span class="comment">/* const */</span> ;</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#a3c95f29236b9e3a16fec0421479da937">WXMPMeta_GetProperty_Int64_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; XMP_Int64 * propValue,</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> * options,</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult ) <span class="comment">/* const */</span> ;</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#ae80228876bb345c97a0fdebc52d9b5e4">WXMPMeta_GetProperty_Float_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="keywordtype">double</span> * propValue,</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> * options,</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult ) <span class="comment">/* const */</span> ;</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#a27bd62e33f3fe7fd6777b1ef394d7af5">WXMPMeta_GetProperty_Date_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <a class="code" href="structXMP__DateTime.html">XMP_DateTime</a> * propValue,</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> * options,</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult ) <span class="comment">/* const */</span> ;</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#a1e0b97d88538b256724218c24ec2aa06">WXMPMeta_SetProperty_Bool_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <a class="code" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a> propValue,</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options,</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#abee87dd946056b03a1a650524ae3ce13">WXMPMeta_SetProperty_Int_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; XMP_Int32 propValue,</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options,</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#a1659214d8debfaa1a7543ff4b96d700a">WXMPMeta_SetProperty_Int64_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; XMP_Int64 propValue,</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options,</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#a5cf4a4b8c3ecfa12567ffdca5502f322">WXMPMeta_SetProperty_Float_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <span class="keywordtype">double</span> propValue,</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options,</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#a9a1bbebe74385a21e8eecd5883d01381">WXMPMeta_SetProperty_Date_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; <span class="keyword">const</span> <a class="code" href="structXMP__DateTime.html">XMP_DateTime</a> &amp; propValue,</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options,</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;<span class="comment">// -------------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#a7e9df8e5480d241a7ef7b033aa4e871f">WXMPMeta_GetObjectName_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <span class="keywordtype">void</span> * objName,</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <a class="code" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString,</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult ) <span class="comment">/* const */</span> ;</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#afee2f3c13f8dcb9f72104dd36eff4d68">WXMPMeta_SetObjectName_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> name,</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#aaa50f01092ba1f94c9acaa390fb7afe9">WXMPMeta_GetObjectOptions_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult ) <span class="comment">/* const */</span> ;</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#ae4afaee6e6376e126b919e73a8461e1e">WXMPMeta_SetObjectOptions_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options,</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#ac1d4f2bc9d0da42cda44f54071220eb5">WXMPMeta_Sort_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#a3cce18be810b681d3dcd2a0798fb2990">WXMPMeta_Erase_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#a0cc1264e977ecceec1307b490f70cdcd">WXMPMeta_Clone_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options,</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult ) <span class="comment">/* const */</span> ;</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#a48f79b8f9005c0cd93e0cf03bbe43024">WXMPMeta_CountArrayItems_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName,</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult ) <span class="comment">/* const */</span> ;</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160;</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#a68c7253abe28cd30ad7c7657c388f30e">WXMPMeta_DumpObject_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <a class="code" href="XMP__Const_8h.html#aa55bae1e6be4ddcefbaf214942e5b272">XMP_TextOutputProc</a> outProc,</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; <span class="keywordtype">void</span> * refCon,</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult ) <span class="comment">/* const */</span> ;</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;<span class="comment">// -------------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#a9f3c397b927d7da7c84ee3a5a03ee2df">WXMPMeta_ParseFromBuffer_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> buffer,</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; <a class="code" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> bufferSize,</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options,</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#af2ffbda0f3e382835296205504517d94">WXMPMeta_SerializeToBuffer_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <span class="keywordtype">void</span> * pktString,</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options,</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; <a class="code" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> padding,</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> newline,</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> indent,</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; <a class="code" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a> baseIndent,</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; <a class="code" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString,</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult ) <span class="comment">/* const */</span> ;</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160;</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160;<span class="comment">// -------------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#a21071def1d2284a61790b2d971231471">WXMPMeta_SetDefaultErrorCallback_1</a> ( <a class="code" href="XMP__Const_8h.html#a32cbbc2b93eb9028d441ecb4223eb2a4">XMPMeta_ErrorCallbackWrapper</a> wrapperProc,</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <a class="code" href="XMP__Const_8h.html#abb3c238ce96e9198ebe4260200bfb67b">XMPMeta_ErrorCallbackProc</a> clientProc,</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; <span class="keywordtype">void</span> * context,</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; XMP_Uns32 limit,</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#ac4103e2833fe7efa8a46145a38e03ed5">WXMPMeta_SetErrorCallback_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; <a class="code" href="XMP__Const_8h.html#a32cbbc2b93eb9028d441ecb4223eb2a4">XMPMeta_ErrorCallbackWrapper</a> wrapperProc,</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <a class="code" href="XMP__Const_8h.html#abb3c238ce96e9198ebe4260200bfb67b">XMPMeta_ErrorCallbackProc</a> clientProc,</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; <span class="keywordtype">void</span> * context,</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; XMP_Uns32 limit,</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160;</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPMeta_8hpp.html#a4155c5b0ae891213ea2d8f9872c215e8">WXMPMeta_ResetErrorCallbackLimit_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef,</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; XMP_Uns32 limit,</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160;</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160;<span class="preprocessor">#if __cplusplus</span></div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160;} <span class="comment">/* extern &quot;C&quot; */</span></div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160;</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160;<span class="preprocessor">#endif // __WXMPMeta_hpp__</span></div><div class="ttc" id="WXMP__Common_8hpp_html"><div class="ttname"><a href="WXMP__Common_8hpp.html">WXMP_Common.hpp</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a9f7dcc184f901c713274edfdac5bcc9a"><div class="ttname"><a href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a></div><div class="ttdeci">XMP_Uns32 XMP_StringLen</div><div class="ttdoc">The type for string length parameters. A 32-bit unsigned integer, as big as will be practically neede...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00170">XMP_Const.h:170</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a00e9d9a76c144421105a4c2742203315"><div class="ttname"><a href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a></div><div class="ttdeci">XMP_Int32 XMP_Index</div><div class="ttdoc">The type for offsets and indices. A 32-bit signed integer. It is signed to allow -1 for loop terminat...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00171">XMP_Const.h:171</a></div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_a5a3ced9ef902d7281a4d0e3bbed8d0af"><div class="ttname"><a href="WXMPMeta_8hpp.html#a5a3ced9ef902d7281a4d0e3bbed8d0af">WXMPMeta_SetArrayItem_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_SetArrayItem_1(XMPMetaRef xmpRef, XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_Index itemIndex, XMP_StringPtr itemValue, XMP_OptionBits options, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="XMP__Const_8h_html_ad439e3ceeb4590d310f6125aa12c6df6"><div class="ttname"><a href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a></div><div class="ttdeci">const char * XMP_StringPtr</div><div class="ttdoc">The type for input string parameters. A const char *, a null-terminated UTF-8 string. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00169">XMP_Const.h:169</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abb3c238ce96e9198ebe4260200bfb67b"><div class="ttname"><a href="XMP__Const_8h.html#abb3c238ce96e9198ebe4260200bfb67b">XMPMeta_ErrorCallbackProc</a></div><div class="ttdeci">bool(* XMPMeta_ErrorCallbackProc)(void *context, XMP_ErrorSeverity severity, XMP_Int32 cause, XMP_StringPtr message)</div><div class="ttdoc">The signature of a client-defined callback for TXMPMeta error notifications. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01265">XMP_Const.h:1265</a></div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_ab4f052c58b02cfecc26f8f2388249f4c"><div class="ttname"><a href="WXMPMeta_8hpp.html#ab4f052c58b02cfecc26f8f2388249f4c">WrapErrorNotify</a></div><div class="ttdeci">static XMP_Bool WrapErrorNotify(XMPMeta_ErrorCallbackProc proc, void *context, XMP_ErrorSeverity severity, XMP_Int32 cause, XMP_StringPtr message)</div><div class="ttdef"><b>Definition:</b> <a href="WXMPMeta_8hpp_source.html#l00020">WXMPMeta.hpp:20</a></div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_a37107581e02cf1197d04118b0bfcffe5"><div class="ttname"><a href="WXMPMeta_8hpp.html#a37107581e02cf1197d04118b0bfcffe5">WXMPMeta_GetProperty_Int_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_GetProperty_Int_1(XMPMetaRef xmpRef, XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_Int32 *propValue, XMP_OptionBits *options, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="XMP__Const_8h_html_aa55bae1e6be4ddcefbaf214942e5b272"><div class="ttname"><a href="XMP__Const_8h.html#aa55bae1e6be4ddcefbaf214942e5b272">XMP_TextOutputProc</a></div><div class="ttdeci">XMP_Status(* XMP_TextOutputProc)(void *refCon, XMP_StringPtr buffer, XMP_StringLen bufferSize)</div><div class="ttdoc">The signature of a client-defined callback for text output from XMP Toolkit debugging operations...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01493">XMP_Const.h:1493</a></div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_a6d4b43bab339b01d216b29d89e695308"><div class="ttname"><a href="WXMPMeta_8hpp.html#a6d4b43bab339b01d216b29d89e695308">WXMPMeta_Use_CPP_DOM_APIs_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_Use_CPP_DOM_APIs_1(XMP_Bool useNewCoreAPIs, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_a0cc1264e977ecceec1307b490f70cdcd"><div class="ttname"><a href="WXMPMeta_8hpp.html#a0cc1264e977ecceec1307b490f70cdcd">WXMPMeta_Clone_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_Clone_1(XMPMetaRef xmpRef, XMP_OptionBits options, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_a1659214d8debfaa1a7543ff4b96d700a"><div class="ttname"><a href="WXMPMeta_8hpp.html#a1659214d8debfaa1a7543ff4b96d700a">WXMPMeta_SetProperty_Int64_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_SetProperty_Int64_1(XMPMetaRef xmpRef, XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_Int64 propValue, XMP_OptionBits options, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_a418658d30d2fd04c9080b3298a959c8d"><div class="ttname"><a href="WXMPMeta_8hpp.html#a418658d30d2fd04c9080b3298a959c8d">WXMPMeta_GetStructField_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_GetStructField_1(XMPMetaRef xmpRef, XMP_StringPtr schemaNS, XMP_StringPtr structName, XMP_StringPtr fieldNS, XMP_StringPtr fieldName, void *fieldValue, XMP_OptionBits *options, SetClientStringProc SetClientString, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_aa9fcfcc4ad994abaa91574b956adc998"><div class="ttname"><a href="WXMPMeta_8hpp.html#aa9fcfcc4ad994abaa91574b956adc998">WXMPMeta_SetProperty_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_SetProperty_1(XMPMetaRef xmpRef, XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_StringPtr propValue, XMP_OptionBits options, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_a1e0b97d88538b256724218c24ec2aa06"><div class="ttname"><a href="WXMPMeta_8hpp.html#a1e0b97d88538b256724218c24ec2aa06">WXMPMeta_SetProperty_Bool_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_SetProperty_Bool_1(XMPMetaRef xmpRef, XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_Bool propValue, XMP_OptionBits options, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_a68c7253abe28cd30ad7c7657c388f30e"><div class="ttname"><a href="WXMPMeta_8hpp.html#a68c7253abe28cd30ad7c7657c388f30e">WXMPMeta_DumpObject_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_DumpObject_1(XMPMetaRef xmpRef, XMP_TextOutputProc outProc, void *refCon, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_a6f0508454f99a854c74744f177c1294d"><div class="ttname"><a href="WXMPMeta_8hpp.html#a6f0508454f99a854c74744f177c1294d">WXMPMeta_DoesArrayItemExist_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_DoesArrayItemExist_1(XMPMetaRef xmpRef, XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_Index itemIndex, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="structXMP__VersionInfo_html"><div class="ttname"><a href="structXMP__VersionInfo.html">XMP_VersionInfo</a></div><div class="ttdoc">XMP Toolkit version information. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01545">XMP_Const.h:1545</a></div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_abf5878ee7b66e8c18d45006579ba41d3"><div class="ttname"><a href="WXMPMeta_8hpp.html#abf5878ee7b66e8c18d45006579ba41d3">WXMPMeta_DeleteQualifier_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_DeleteQualifier_1(XMPMetaRef xmpRef, XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_StringPtr qualNS, XMP_StringPtr qualName, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_aaa50f01092ba1f94c9acaa390fb7afe9"><div class="ttname"><a href="WXMPMeta_8hpp.html#aaa50f01092ba1f94c9acaa390fb7afe9">WXMPMeta_GetObjectOptions_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_GetObjectOptions_1(XMPMetaRef xmpRef, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_af2ffbda0f3e382835296205504517d94"><div class="ttname"><a href="WXMPMeta_8hpp.html#af2ffbda0f3e382835296205504517d94">WXMPMeta_SerializeToBuffer_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_SerializeToBuffer_1(XMPMetaRef xmpRef, void *pktString, XMP_OptionBits options, XMP_StringLen padding, XMP_StringPtr newline, XMP_StringPtr indent, XMP_Index baseIndent, SetClientStringProc SetClientString, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="XMP__Environment_8h_html_aac6a4810b1f485f147ab833be63f4d7b"><div class="ttname"><a href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a></div><div class="ttdeci">#define XMP_PUBLIC</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00188">XMP_Environment.h:188</a></div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_abee87dd946056b03a1a650524ae3ce13"><div class="ttname"><a href="WXMPMeta_8hpp.html#abee87dd946056b03a1a650524ae3ce13">WXMPMeta_SetProperty_Int_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_SetProperty_Int_1(XMPMetaRef xmpRef, XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_Int32 propValue, XMP_OptionBits options, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_aa678642f09d4bc3ba83b55364112bf25"><div class="ttname"><a href="WXMPMeta_8hpp.html#aa678642f09d4bc3ba83b55364112bf25">WXMPMeta_GetVersionInfo_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_GetVersionInfo_1(XMP_VersionInfo *info)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_ac1d4f2bc9d0da42cda44f54071220eb5"><div class="ttname"><a href="WXMPMeta_8hpp.html#ac1d4f2bc9d0da42cda44f54071220eb5">WXMPMeta_Sort_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_Sort_1(XMPMetaRef xmpRef, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_a3fb6f849c25f5bf964beb7eb9e98049d"><div class="ttname"><a href="WXMPMeta_8hpp.html#a3fb6f849c25f5bf964beb7eb9e98049d">WXMPMeta_CTor_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_CTor_1(WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_a7f407dba2b3fee31aad4cc0887ba7a0e"><div class="ttname"><a href="WXMPMeta_8hpp.html#a7f407dba2b3fee31aad4cc0887ba7a0e">WXMPMeta_GetNamespacePrefix_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_GetNamespacePrefix_1(XMP_StringPtr namespaceURI, void *namespacePrefix, SetClientStringProc SetClientString, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_ac166c8171e8e4079cfbaadbc20bfc4cc"><div class="ttname"><a href="WXMPMeta_8hpp.html#ac166c8171e8e4079cfbaadbc20bfc4cc">WXMPMeta_GetLocalizedText_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_GetLocalizedText_1(XMPMetaRef xmpRef, XMP_StringPtr schemaNS, XMP_StringPtr altTextName, XMP_StringPtr genericLang, XMP_StringPtr specificLang, void *clientLang, void *clientValue, XMP_OptionBits *options, SetClientStringProc SetClientString, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_a21071def1d2284a61790b2d971231471"><div class="ttname"><a href="WXMPMeta_8hpp.html#a21071def1d2284a61790b2d971231471">WXMPMeta_SetDefaultErrorCallback_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_SetDefaultErrorCallback_1(XMPMeta_ErrorCallbackWrapper wrapperProc, XMPMeta_ErrorCallbackProc clientProc, void *context, XMP_Uns32 limit, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_afee2f3c13f8dcb9f72104dd36eff4d68"><div class="ttname"><a href="WXMPMeta_8hpp.html#afee2f3c13f8dcb9f72104dd36eff4d68">WXMPMeta_SetObjectName_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_SetObjectName_1(XMPMetaRef xmpRef, XMP_StringPtr name, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_a50a73f676357dfdbf1c2d5661020e43e"><div class="ttname"><a href="WXMPMeta_8hpp.html#a50a73f676357dfdbf1c2d5661020e43e">WXMPMeta_DeleteStructField_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_DeleteStructField_1(XMPMetaRef xmpRef, XMP_StringPtr schemaNS, XMP_StringPtr structName, XMP_StringPtr fieldNS, XMP_StringPtr fieldName, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_a1239ebede304d572f34b1319c0b14c05"><div class="ttname"><a href="WXMPMeta_8hpp.html#a1239ebede304d572f34b1319c0b14c05">WXMPMeta_SetGlobalOptions_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_SetGlobalOptions_1(XMP_OptionBits options, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="structXMP__DateTime_html"><div class="ttname"><a href="structXMP__DateTime.html">XMP_DateTime</a></div><div class="ttdoc">The expanded type for a date and time. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00223">XMP_Const.h:223</a></div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_a38c91b47500447c40cfb3b38d73c749c"><div class="ttname"><a href="WXMPMeta_8hpp.html#a38c91b47500447c40cfb3b38d73c749c">WXMPMeta_GetProperty_Bool_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_GetProperty_Bool_1(XMPMetaRef xmpRef, XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_Bool *propValue, XMP_OptionBits *options, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_a4155c5b0ae891213ea2d8f9872c215e8"><div class="ttname"><a href="WXMPMeta_8hpp.html#a4155c5b0ae891213ea2d8f9872c215e8">WXMPMeta_ResetErrorCallbackLimit_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_ResetErrorCallbackLimit_1(XMPMetaRef xmpRef, XMP_Uns32 limit, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="XMP__Const_8h_html_aeb865118433be92d88e5f49ed11487c8"><div class="ttname"><a href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a></div><div class="ttdeci">XMP_Uns32 XMP_OptionBits</div><div class="ttdoc">The type for a collection of 32 flag bits. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00172">XMP_Const.h:172</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_ae4a7c9347994883250dc440566eb9f52"><div class="ttname"><a href="XMP__Const_8h.html#ae4a7c9347994883250dc440566eb9f52">XMP_ErrorSeverity</a></div><div class="ttdeci">XMP_Uns8 XMP_ErrorSeverity</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01226">XMP_Const.h:1226</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a0cf68b6f47d136ed571a441a9e0d2248"><div class="ttname"><a href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a></div><div class="ttdeci">XMP_Uns8 XMP_Bool</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00102">XMP_Const.h:102</a></div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_ac9ff1318eb934f05568d7f8f7177acf6"><div class="ttname"><a href="WXMPMeta_8hpp.html#ac9ff1318eb934f05568d7f8f7177acf6">WXMPMeta_DecrementRefCount_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_DecrementRefCount_1(XMPMetaRef xmpRef)</div></div>
+<div class="ttc" id="XMP__Const_8h_html_ae6037ae90db1ec7d7c988aec7a8319cb"><div class="ttname"><a href="XMP__Const_8h.html#ae6037ae90db1ec7d7c988aec7a8319cb">ConvertBoolToXMP_Bool</a></div><div class="ttdeci">#define ConvertBoolToXMP_Bool(a)</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00107">XMP_Const.h:107</a></div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_ae80228876bb345c97a0fdebc52d9b5e4"><div class="ttname"><a href="WXMPMeta_8hpp.html#ae80228876bb345c97a0fdebc52d9b5e4">WXMPMeta_GetProperty_Float_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_GetProperty_Float_1(XMPMetaRef xmpRef, XMP_StringPtr schemaNS, XMP_StringPtr propName, double *propValue, XMP_OptionBits *options, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMP__Common_8hpp_html_ae22e640b3404ce206ad1678841bcd11f"><div class="ttname"><a href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a></div><div class="ttdeci">void(* SetClientStringProc)(void *clientPtr, XMP_StringPtr valuePtr, XMP_StringLen valueLen)</div><div class="ttdef"><b>Definition:</b> <a href="WXMP__Common_8hpp_source.html#l00023">WXMP_Common.hpp:23</a></div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_ab3c906d916e6dba4f2d422849a642fce"><div class="ttname"><a href="WXMPMeta_8hpp.html#ab3c906d916e6dba4f2d422849a642fce">WXMPMeta_DoesQualifierExist_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_DoesQualifierExist_1(XMPMetaRef xmpRef, XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_StringPtr qualNS, XMP_StringPtr qualName, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_a8887351f8aee3cc57ababc137ab0719a"><div class="ttname"><a href="WXMPMeta_8hpp.html#a8887351f8aee3cc57ababc137ab0719a">WXMPMeta_DeleteNamespace_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_DeleteNamespace_1(XMP_StringPtr namespaceURI, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_a58a125d8a9eeee3a8906d50262faf06c"><div class="ttname"><a href="WXMPMeta_8hpp.html#a58a125d8a9eeee3a8906d50262faf06c">WXMPMeta_GetGlobalOptions_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_GetGlobalOptions_1(WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_a0328d3f6b63a301c17469f3a636bee8d"><div class="ttname"><a href="WXMPMeta_8hpp.html#a0328d3f6b63a301c17469f3a636bee8d">WXMPMeta_DumpNamespaces_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_DumpNamespaces_1(XMP_TextOutputProc outProc, void *refCon, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_a2c650c402ba4850b082c2204eb4ecb43"><div class="ttname"><a href="WXMPMeta_8hpp.html#a2c650c402ba4850b082c2204eb4ecb43">WXMPMeta_GetProperty_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_GetProperty_1(XMPMetaRef xmpRef, XMP_StringPtr schemaNS, XMP_StringPtr propName, void *propValue, XMP_OptionBits *options, SetClientStringProc SetClientString, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_a0b32b12b061f62eb3f8ec1784165e03a"><div class="ttname"><a href="WXMPMeta_8hpp.html#a0b32b12b061f62eb3f8ec1784165e03a">WXMPMeta_RegisterNamespace_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_RegisterNamespace_1(XMP_StringPtr namespaceURI, XMP_StringPtr suggestedPrefix, void *actualPrefix, SetClientStringProc SetClientString, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_a76960e4bc1344208d70a6055448ce591"><div class="ttname"><a href="WXMPMeta_8hpp.html#a76960e4bc1344208d70a6055448ce591">WXMPMeta_AppendArrayItem_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_AppendArrayItem_1(XMPMetaRef xmpRef, XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_OptionBits arrayOptions, XMP_StringPtr itemValue, XMP_OptionBits options, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="structWXMP__Result_html"><div class="ttname"><a href="structWXMP__Result.html">WXMP_Result</a></div><div class="ttdef"><b>Definition:</b> <a href="WXMP__Common_8hpp_source.html#l00026">WXMP_Common.hpp:26</a></div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_a27bd62e33f3fe7fd6777b1ef394d7af5"><div class="ttname"><a href="WXMPMeta_8hpp.html#a27bd62e33f3fe7fd6777b1ef394d7af5">WXMPMeta_GetProperty_Date_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_GetProperty_Date_1(XMPMetaRef xmpRef, XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_DateTime *propValue, XMP_OptionBits *options, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_a6d405bbe1c37ddd8ee7423d7be317f52"><div class="ttname"><a href="WXMPMeta_8hpp.html#a6d405bbe1c37ddd8ee7423d7be317f52">WXMPMeta_GetArrayItem_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_GetArrayItem_1(XMPMetaRef xmpRef, XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_Index itemIndex, void *itemValue, XMP_OptionBits *options, SetClientStringProc SetClientString, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_a198c0bd7ce71a4a1ee5b4ab6daba500e"><div class="ttname"><a href="WXMPMeta_8hpp.html#a198c0bd7ce71a4a1ee5b4ab6daba500e">WXMPMeta_DeleteLocalizedText_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_DeleteLocalizedText_1(XMPMetaRef xmpRef, XMP_StringPtr schemaNS, XMP_StringPtr altTextName, XMP_StringPtr genericLang, XMP_StringPtr specificLang, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_a48f79b8f9005c0cd93e0cf03bbe43024"><div class="ttname"><a href="WXMPMeta_8hpp.html#a48f79b8f9005c0cd93e0cf03bbe43024">WXMPMeta_CountArrayItems_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_CountArrayItems_1(XMPMetaRef xmpRef, XMP_StringPtr schemaNS, XMP_StringPtr arrayName, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_a7e9df8e5480d241a7ef7b033aa4e871f"><div class="ttname"><a href="WXMPMeta_8hpp.html#a7e9df8e5480d241a7ef7b033aa4e871f">WXMPMeta_GetObjectName_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_GetObjectName_1(XMPMetaRef xmpRef, void *objName, SetClientStringProc SetClientString, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="XMP__Const_8h_html_a32cbbc2b93eb9028d441ecb4223eb2a4"><div class="ttname"><a href="XMP__Const_8h.html#a32cbbc2b93eb9028d441ecb4223eb2a4">XMPMeta_ErrorCallbackWrapper</a></div><div class="ttdeci">XMP_Bool(* XMPMeta_ErrorCallbackWrapper)(XMPMeta_ErrorCallbackProc clientProc, void *context, XMP_ErrorSeverity severity, XMP_Int32 cause, XMP_StringPtr message)</div><div class="ttdoc">Internal: The signatures of client-side wrappers for the error notification callbacks. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01306">XMP_Const.h:1306</a></div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_a3cce18be810b681d3dcd2a0798fb2990"><div class="ttname"><a href="WXMPMeta_8hpp.html#a3cce18be810b681d3dcd2a0798fb2990">WXMPMeta_Erase_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_Erase_1(XMPMetaRef xmpRef, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_ac85ab52aa3ea72b7a3a5a0ba90cb58a3"><div class="ttname"><a href="WXMPMeta_8hpp.html#ac85ab52aa3ea72b7a3a5a0ba90cb58a3">WXMPMeta_IncrementRefCount_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_IncrementRefCount_1(XMPMetaRef xmpRef)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_ad9ee99501a3dabc327b972ab8c3c000d"><div class="ttname"><a href="WXMPMeta_8hpp.html#ad9ee99501a3dabc327b972ab8c3c000d">WXMPMeta_SetStructField_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_SetStructField_1(XMPMetaRef xmpRef, XMP_StringPtr schemaNS, XMP_StringPtr structName, XMP_StringPtr fieldNS, XMP_StringPtr fieldName, XMP_StringPtr fieldValue, XMP_OptionBits options, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_ad71ca4432c9e58f29caa355f70bc4f52"><div class="ttname"><a href="WXMPMeta_8hpp.html#ad71ca4432c9e58f29caa355f70bc4f52">WXMPMeta_GetQualifier_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_GetQualifier_1(XMPMetaRef xmpRef, XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_StringPtr qualNS, XMP_StringPtr qualName, void *qualValue, XMP_OptionBits *options, SetClientStringProc SetClientString, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_ae2b5b7330b5a153cc1de292e7ba291e5"><div class="ttname"><a href="WXMPMeta_8hpp.html#ae2b5b7330b5a153cc1de292e7ba291e5">WXMPMeta_SetLocalizedText_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_SetLocalizedText_1(XMPMetaRef xmpRef, XMP_StringPtr schemaNS, XMP_StringPtr altTextName, XMP_StringPtr genericLang, XMP_StringPtr specificLang, XMP_StringPtr itemValue, XMP_OptionBits options, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_a30e8a56bbc8c98a4787a6e6b4a1b9d1f"><div class="ttname"><a href="WXMPMeta_8hpp.html#a30e8a56bbc8c98a4787a6e6b4a1b9d1f">WXMPMeta_DoesPropertyExist_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_DoesPropertyExist_1(XMPMetaRef xmpRef, XMP_StringPtr schemaNS, XMP_StringPtr propName, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_a0685ed8dc59360366c629cdc559076ce"><div class="ttname"><a href="WXMPMeta_8hpp.html#a0685ed8dc59360366c629cdc559076ce">WXMPMeta_GetIXMPMetadata_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_GetIXMPMetadata_1(XMPMetaRef xmpObjRef, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_a06d38f8fdf6a46ff8e672a98fb50f2f4"><div class="ttname"><a href="WXMPMeta_8hpp.html#a06d38f8fdf6a46ff8e672a98fb50f2f4">WXMPMeta_Terminate_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_Terminate_1()</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_ae83bc466041e54f8e32b3909b10a63fe"><div class="ttname"><a href="WXMPMeta_8hpp.html#ae83bc466041e54f8e32b3909b10a63fe">WXMPMeta_DeleteArrayItem_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_DeleteArrayItem_1(XMPMetaRef xmpRef, XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_Index itemIndex, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_a9f3c397b927d7da7c84ee3a5a03ee2df"><div class="ttname"><a href="WXMPMeta_8hpp.html#a9f3c397b927d7da7c84ee3a5a03ee2df">WXMPMeta_ParseFromBuffer_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_ParseFromBuffer_1(XMPMetaRef xmpRef, XMP_StringPtr buffer, XMP_StringLen bufferSize, XMP_OptionBits options, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_a3c95f29236b9e3a16fec0421479da937"><div class="ttname"><a href="WXMPMeta_8hpp.html#a3c95f29236b9e3a16fec0421479da937">WXMPMeta_GetProperty_Int64_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_GetProperty_Int64_1(XMPMetaRef xmpRef, XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_Int64 *propValue, XMP_OptionBits *options, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_a4fcdf3f4212ff34e0b24a76e11c1c583"><div class="ttname"><a href="WXMPMeta_8hpp.html#a4fcdf3f4212ff34e0b24a76e11c1c583">WXMPMeta_SetQualifier_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_SetQualifier_1(XMPMetaRef xmpRef, XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_StringPtr qualNS, XMP_StringPtr qualName, XMP_StringPtr qualValue, XMP_OptionBits options, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_a9a1bbebe74385a21e8eecd5883d01381"><div class="ttname"><a href="WXMPMeta_8hpp.html#a9a1bbebe74385a21e8eecd5883d01381">WXMPMeta_SetProperty_Date_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_SetProperty_Date_1(XMPMetaRef xmpRef, XMP_StringPtr schemaNS, XMP_StringPtr propName, const XMP_DateTime &amp;propValue, XMP_OptionBits options, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_adb8b207d7a45ffdc126092c97ce95010"><div class="ttname"><a href="WXMPMeta_8hpp.html#adb8b207d7a45ffdc126092c97ce95010">WXMPMeta_DoesStructFieldExist_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_DoesStructFieldExist_1(XMPMetaRef xmpRef, XMP_StringPtr schemaNS, XMP_StringPtr structName, XMP_StringPtr fieldNS, XMP_StringPtr fieldName, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_ac4103e2833fe7efa8a46145a38e03ed5"><div class="ttname"><a href="WXMPMeta_8hpp.html#ac4103e2833fe7efa8a46145a38e03ed5">WXMPMeta_SetErrorCallback_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_SetErrorCallback_1(XMPMetaRef xmpRef, XMPMeta_ErrorCallbackWrapper wrapperProc, XMPMeta_ErrorCallbackProc clientProc, void *context, XMP_Uns32 limit, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_a5cf4a4b8c3ecfa12567ffdca5502f322"><div class="ttname"><a href="WXMPMeta_8hpp.html#a5cf4a4b8c3ecfa12567ffdca5502f322">WXMPMeta_SetProperty_Float_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_SetProperty_Float_1(XMPMetaRef xmpRef, XMP_StringPtr schemaNS, XMP_StringPtr propName, double propValue, XMP_OptionBits options, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_ae133a695d6efe0db6528395345f3c0c6"><div class="ttname"><a href="WXMPMeta_8hpp.html#ae133a695d6efe0db6528395345f3c0c6">WXMPMeta_GetNamespaceURI_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_GetNamespaceURI_1(XMP_StringPtr namespacePrefix, void *namespaceURI, SetClientStringProc SetClientString, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_ae4afaee6e6376e126b919e73a8461e1e"><div class="ttname"><a href="WXMPMeta_8hpp.html#ae4afaee6e6376e126b919e73a8461e1e">WXMPMeta_SetObjectOptions_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_SetObjectOptions_1(XMPMetaRef xmpRef, XMP_OptionBits options, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="XMP__Const_8h_html_a549d5e2cbcb58302d3df840a0205283e"><div class="ttname"><a href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a></div><div class="ttdeci">struct __XMPMeta__ * XMPMetaRef</div><div class="ttdoc">An &quot;ABI safe&quot; pointer to the internal part of an XMP object. Use to pass an XMP object across client ...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00130">XMP_Const.h:130</a></div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_a31f0b721c8e755b228a7ae66fa28b0b7"><div class="ttname"><a href="WXMPMeta_8hpp.html#a31f0b721c8e755b228a7ae66fa28b0b7">WXMPMeta_DeleteProperty_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_DeleteProperty_1(XMPMetaRef xmpRef, XMP_StringPtr schemaNS, XMP_StringPtr propName, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPMeta_8hpp_html_a459d905958efba79649c9884ecbfc3d8"><div class="ttname"><a href="WXMPMeta_8hpp.html#a459d905958efba79649c9884ecbfc3d8">WXMPMeta_Initialize_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPMeta_Initialize_1(WXMP_Result *wResult)</div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/WXMPUtils_8hpp.html b/docs/API/WXMPUtils_8hpp.html
new file mode 100755
index 0000000..83e9ff3
--- /dev/null
+++ b/docs/API/WXMPUtils_8hpp.html
@@ -0,0 +1,2419 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/client-glue/WXMPUtils.hpp File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('WXMPUtils_8hpp.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#define-members">Macros</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">WXMPUtils.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="WXMP__Common_8hpp_source.html">client-glue/WXMP_Common.hpp</a>&quot;</code><br />
+</div>
+<p><a href="WXMPUtils_8hpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a83a5fcd7213385cfdb6b4d4eb85f1162"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#a83a5fcd7213385cfdb6b4d4eb85f1162">__WXMPUtils_hpp__</a>&#160;&#160;&#160;1</td></tr>
+<tr class="separator:a83a5fcd7213385cfdb6b4d4eb85f1162"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad91341db639119d2bf30ff456a29f42c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#ad91341db639119d2bf30ff456a29f42c">zXMPUtils_ComposeArrayItemPath_1</a>(schemaNS, arrayName, itemIndex, itemPath, SetClientString)&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#ae6de22173661f35cf6926806cb052554">WXMPUtils_ComposeArrayItemPath_1</a> ( schemaNS, arrayName, itemIndex, itemPath, SetClientString, &amp;wResult );</td></tr>
+<tr class="separator:ad91341db639119d2bf30ff456a29f42c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a106974fdb19fd470dd25d0913af28246"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#a106974fdb19fd470dd25d0913af28246">zXMPUtils_ComposeStructFieldPath_1</a>(schemaNS, structName, fieldNS, fieldName, fieldPath, SetClientString)&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#a691c12dfc25a4bb4baf82195248ab1c3">WXMPUtils_ComposeStructFieldPath_1</a> ( schemaNS, structName, fieldNS, fieldName, fieldPath, SetClientString, &amp;wResult );</td></tr>
+<tr class="separator:a106974fdb19fd470dd25d0913af28246"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a377a1ad29357867bfcdceda410400b6b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#a377a1ad29357867bfcdceda410400b6b">zXMPUtils_ComposeQualifierPath_1</a>(schemaNS, propName, qualNS, qualName, qualPath, SetClientString)&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#a323219f2ccf286de50a5684a024a25d6">WXMPUtils_ComposeQualifierPath_1</a> ( schemaNS, propName, qualNS, qualName, qualPath, SetClientString, &amp;wResult );</td></tr>
+<tr class="separator:a377a1ad29357867bfcdceda410400b6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a85ade86f24f96a54d386b3d9ae7d96ae"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#a85ade86f24f96a54d386b3d9ae7d96ae">zXMPUtils_ComposeLangSelector_1</a>(schemaNS, arrayName, langName, selPath, SetClientString)&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#af1bad4b3c7d72cff883c0ab0705e6c69">WXMPUtils_ComposeLangSelector_1</a> ( schemaNS, arrayName, langName, selPath, SetClientString, &amp;wResult );</td></tr>
+<tr class="separator:a85ade86f24f96a54d386b3d9ae7d96ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab25f06cea61f5562e1df5efe99922c5e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#ab25f06cea61f5562e1df5efe99922c5e">zXMPUtils_ComposeFieldSelector_1</a>(schemaNS, arrayName, fieldNS, fieldName, fieldValue, selPath, SetClientString)&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#aa7b4576af21a7c816768f1983100d432">WXMPUtils_ComposeFieldSelector_1</a> ( schemaNS, arrayName, fieldNS, fieldName, fieldValue, selPath, SetClientString, &amp;wResult );</td></tr>
+<tr class="separator:ab25f06cea61f5562e1df5efe99922c5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8a014e86556114f1756815477cad4321"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#a8a014e86556114f1756815477cad4321">zXMPUtils_ConvertFromBool_1</a>(binValue, strValue, SetClientString)&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#ad80db557044003d1eb9c692a8703dead">WXMPUtils_ConvertFromBool_1</a> ( binValue, strValue, SetClientString, &amp;wResult );</td></tr>
+<tr class="separator:a8a014e86556114f1756815477cad4321"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6bca9ebbc56f0a9136478d22b43e6bc8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#a6bca9ebbc56f0a9136478d22b43e6bc8">zXMPUtils_ConvertFromInt_1</a>(binValue, format, strValue, SetClientString)&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#ab651b25af61aec9fee3100166911d6c7">WXMPUtils_ConvertFromInt_1</a> ( binValue, format, strValue, SetClientString, &amp;wResult );</td></tr>
+<tr class="separator:a6bca9ebbc56f0a9136478d22b43e6bc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a424ca120abc0e6ef6f2354e82757ce5b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#a424ca120abc0e6ef6f2354e82757ce5b">zXMPUtils_ConvertFromInt64_1</a>(binValue, format, strValue, SetClientString)&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#a180b0ae8451b9606003f1e6e38287ae8">WXMPUtils_ConvertFromInt64_1</a> ( binValue, format, strValue, SetClientString, &amp;wResult );</td></tr>
+<tr class="separator:a424ca120abc0e6ef6f2354e82757ce5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af8bcd900825782a784239b8fed6a6f6e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#af8bcd900825782a784239b8fed6a6f6e">zXMPUtils_ConvertFromFloat_1</a>(binValue, format, strValue, SetClientString)&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#add25c775ebd8186f611365fb45c513df">WXMPUtils_ConvertFromFloat_1</a> ( binValue, format, strValue, SetClientString, &amp;wResult );</td></tr>
+<tr class="separator:af8bcd900825782a784239b8fed6a6f6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acb32764db5b81fa4b0efca35188a4f6a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#acb32764db5b81fa4b0efca35188a4f6a">zXMPUtils_ConvertFromDate_1</a>(binValue, strValue, SetClientString)&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#a2555ce5bb9789967eb75e591e83772fa">WXMPUtils_ConvertFromDate_1</a> ( binValue, strValue, SetClientString, &amp;wResult );</td></tr>
+<tr class="separator:acb32764db5b81fa4b0efca35188a4f6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3de2ac287d2eb9a3786f187b0b5944d7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#a3de2ac287d2eb9a3786f187b0b5944d7">zXMPUtils_ConvertToBool_1</a>(strValue)&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#ac6ea9e5527993203e86849e5d3699bcb">WXMPUtils_ConvertToBool_1</a> ( strValue, &amp;wResult );</td></tr>
+<tr class="separator:a3de2ac287d2eb9a3786f187b0b5944d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac089fd797e17f92af27b512b0d96951c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#ac089fd797e17f92af27b512b0d96951c">zXMPUtils_ConvertToInt_1</a>(strValue)&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#aabf211114925d9eba94089f811efe87a">WXMPUtils_ConvertToInt_1</a> ( strValue, &amp;wResult );</td></tr>
+<tr class="separator:ac089fd797e17f92af27b512b0d96951c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaf92038d52fe0a7eee019a9d51350532"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#aaf92038d52fe0a7eee019a9d51350532">zXMPUtils_ConvertToInt64_1</a>(strValue)&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#a59b3c8316d21dde2b2b79863c7527f02">WXMPUtils_ConvertToInt64_1</a> ( strValue, &amp;wResult );</td></tr>
+<tr class="separator:aaf92038d52fe0a7eee019a9d51350532"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7a6e1c8d446dd9416b7fc4279cb5c026"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#a7a6e1c8d446dd9416b7fc4279cb5c026">zXMPUtils_ConvertToFloat_1</a>(strValue)&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#a7614ad0bb2816ebfe794514f45a10c2e">WXMPUtils_ConvertToFloat_1</a> ( strValue, &amp;wResult );</td></tr>
+<tr class="separator:a7a6e1c8d446dd9416b7fc4279cb5c026"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af2017eaec1cabc679e2083dfd4c1f7c8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#af2017eaec1cabc679e2083dfd4c1f7c8">zXMPUtils_ConvertToDate_1</a>(strValue, binValue)&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#ace54acfb2efef9cc192791b8046f6b3d">WXMPUtils_ConvertToDate_1</a> ( strValue, binValue, &amp;wResult );</td></tr>
+<tr class="separator:af2017eaec1cabc679e2083dfd4c1f7c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0565337a6234a5e7421586787a29d5b6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#a0565337a6234a5e7421586787a29d5b6">zXMPUtils_CurrentDateTime_1</a>(time)&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#a0b0bf2caafca6f06b8c84936ce4c27d8">WXMPUtils_CurrentDateTime_1</a> ( time, &amp;wResult );</td></tr>
+<tr class="separator:a0565337a6234a5e7421586787a29d5b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1d51ef9a2d3fd698e664df2dec2c9b13"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#a1d51ef9a2d3fd698e664df2dec2c9b13">zXMPUtils_SetTimeZone_1</a>(time)&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#a777a7e3b9b0f8b7afab51e40dae3a921">WXMPUtils_SetTimeZone_1</a> ( time, &amp;wResult );</td></tr>
+<tr class="separator:a1d51ef9a2d3fd698e664df2dec2c9b13"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a71770255372756959a29324f2bcdd654"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#a71770255372756959a29324f2bcdd654">zXMPUtils_ConvertToUTCTime_1</a>(time)&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#a764cfb9c96b1e37dd108cb42014fd6b6">WXMPUtils_ConvertToUTCTime_1</a> ( time, &amp;wResult );</td></tr>
+<tr class="separator:a71770255372756959a29324f2bcdd654"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7dd59fc7ea99702edee606e30925ee82"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#a7dd59fc7ea99702edee606e30925ee82">zXMPUtils_ConvertToLocalTime_1</a>(time)&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#a7812f80be0bfa177de3d0bb9d9bd5996">WXMPUtils_ConvertToLocalTime_1</a> ( time, &amp;wResult );</td></tr>
+<tr class="separator:a7dd59fc7ea99702edee606e30925ee82"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0b273ea840ed328c8b0ebce5ea17873c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#a0b273ea840ed328c8b0ebce5ea17873c">zXMPUtils_CompareDateTime_1</a>(left, right)&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#ad0b48ebb31c439d092185aa2d4fbfc79">WXMPUtils_CompareDateTime_1</a> ( left, right, &amp;wResult );</td></tr>
+<tr class="separator:a0b273ea840ed328c8b0ebce5ea17873c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a844d244df1b48816a3397ef50c7f5f5b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#a844d244df1b48816a3397ef50c7f5f5b">zXMPUtils_EncodeToBase64_1</a>(rawStr, rawLen, encodedStr, SetClientString)&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#a4d4fa0056f55d427c3a0c07f98b86172">WXMPUtils_EncodeToBase64_1</a> ( rawStr, rawLen, encodedStr, SetClientString, &amp;wResult );</td></tr>
+<tr class="separator:a844d244df1b48816a3397ef50c7f5f5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aafde1fd448ec36673b9eb70fdac115e8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#aafde1fd448ec36673b9eb70fdac115e8">zXMPUtils_DecodeFromBase64_1</a>(encodedStr, encodedLen, rawStr, SetClientString)&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#ad31b8453fb086269c1118c51501f2987">WXMPUtils_DecodeFromBase64_1</a> ( encodedStr, encodedLen, rawStr, SetClientString, &amp;wResult );</td></tr>
+<tr class="separator:aafde1fd448ec36673b9eb70fdac115e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad3481cdf333724ff87223d1514dd95cf"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#ad3481cdf333724ff87223d1514dd95cf">zXMPUtils_PackageForJPEG_1</a>(xmpObj, stdStr, extStr, digestStr, SetClientString)&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#a1725e2cfd1509da540038ca426b98c8a">WXMPUtils_PackageForJPEG_1</a> ( xmpObj, stdStr, extStr, digestStr, SetClientString, &amp;wResult );</td></tr>
+<tr class="separator:ad3481cdf333724ff87223d1514dd95cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a873b7cbb40f65be873aa2b6ca6cd4eab"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#a873b7cbb40f65be873aa2b6ca6cd4eab">zXMPUtils_MergeFromJPEG_1</a>(fullXMP, extendedXMP)&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#afc180986e0eb5c69a8acd7822780ebfb">WXMPUtils_MergeFromJPEG_1</a> ( fullXMP, extendedXMP, &amp;wResult );</td></tr>
+<tr class="separator:a873b7cbb40f65be873aa2b6ca6cd4eab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aec36d93389403739f12a162502d56ab5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#aec36d93389403739f12a162502d56ab5">zXMPUtils_CatenateArrayItems_1</a>(xmpObj, schemaNS, arrayName, separator, quotes, options, catedStr, SetClientString)&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#ae0b2234822da68ea00aeb7485aab9efe">WXMPUtils_CatenateArrayItems_1</a> ( xmpObj, schemaNS, arrayName, separator, quotes, options, catedStr, SetClientString, &amp;wResult );</td></tr>
+<tr class="separator:aec36d93389403739f12a162502d56ab5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a89d6c91a990c8ec93f00832c946fdf37"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#a89d6c91a990c8ec93f00832c946fdf37">zXMPUtils_SeparateArrayItems_1</a>(xmpObj, schemaNS, arrayName, options, catedStr)&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#a29b7beb40cc51e935bd941eada601139">WXMPUtils_SeparateArrayItems_1</a> ( xmpObj, schemaNS, arrayName, options, catedStr, &amp;wResult );</td></tr>
+<tr class="separator:a89d6c91a990c8ec93f00832c946fdf37"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a862c949794995c58c9ad74737973b6ef"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#a862c949794995c58c9ad74737973b6ef">zXMPUtils_ApplyTemplate_1</a>(workingXMP, templateXMP, actions)&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#a506f87a34b8f983115c3bbfb4eba46f2">WXMPUtils_ApplyTemplate_1</a> ( workingXMP, templateXMP, actions, &amp;wResult );</td></tr>
+<tr class="separator:a862c949794995c58c9ad74737973b6ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeb44088490f2951c3491003796ec50a1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#aeb44088490f2951c3491003796ec50a1">zXMPUtils_RemoveProperties_1</a>(xmpObj, schemaNS, propName, options)&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#a7cc3619ebbd1f2f7527488882729a0cb">WXMPUtils_RemoveProperties_1</a> ( xmpObj, schemaNS, propName, options, &amp;wResult );</td></tr>
+<tr class="separator:aeb44088490f2951c3491003796ec50a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa70282eba27fd239e2cfd561b88c08be"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#aa70282eba27fd239e2cfd561b88c08be">zXMPUtils_DuplicateSubtree_1</a>(source, dest, sourceNS, sourceRoot, destNS, destRoot, options)&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#a4a0f5534dae4f34f3b1a233eb04ac54e">WXMPUtils_DuplicateSubtree_1</a> ( source, dest, sourceNS, sourceRoot, destNS, destRoot, options, &amp;wResult );</td></tr>
+<tr class="separator:aa70282eba27fd239e2cfd561b88c08be"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ae6de22173661f35cf6926806cb052554"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#ae6de22173661f35cf6926806cb052554">WXMPUtils_ComposeArrayItemPath_1</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName, <a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a> itemIndex, void *itemPath, <a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:ae6de22173661f35cf6926806cb052554"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a691c12dfc25a4bb4baf82195248ab1c3"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#a691c12dfc25a4bb4baf82195248ab1c3">WXMPUtils_ComposeStructFieldPath_1</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> structName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldName, void *fieldPath, <a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a691c12dfc25a4bb4baf82195248ab1c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a323219f2ccf286de50a5684a024a25d6"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#a323219f2ccf286de50a5684a024a25d6">WXMPUtils_ComposeQualifierPath_1</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualName, void *qualPath, <a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a323219f2ccf286de50a5684a024a25d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af1bad4b3c7d72cff883c0ab0705e6c69"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#af1bad4b3c7d72cff883c0ab0705e6c69">WXMPUtils_ComposeLangSelector_1</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> langName, void *selPath, <a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:af1bad4b3c7d72cff883c0ab0705e6c69"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa7b4576af21a7c816768f1983100d432"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#aa7b4576af21a7c816768f1983100d432">WXMPUtils_ComposeFieldSelector_1</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldValue, void *selPath, <a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:aa7b4576af21a7c816768f1983100d432"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad80db557044003d1eb9c692a8703dead"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#ad80db557044003d1eb9c692a8703dead">WXMPUtils_ConvertFromBool_1</a> (<a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a> binValue, void *strValue, <a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:ad80db557044003d1eb9c692a8703dead"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab651b25af61aec9fee3100166911d6c7"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#ab651b25af61aec9fee3100166911d6c7">WXMPUtils_ConvertFromInt_1</a> (XMP_Int32 binValue, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> format, void *strValue, <a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:ab651b25af61aec9fee3100166911d6c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a180b0ae8451b9606003f1e6e38287ae8"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#a180b0ae8451b9606003f1e6e38287ae8">WXMPUtils_ConvertFromInt64_1</a> (XMP_Int64 binValue, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> format, void *strValue, <a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a180b0ae8451b9606003f1e6e38287ae8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:add25c775ebd8186f611365fb45c513df"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#add25c775ebd8186f611365fb45c513df">WXMPUtils_ConvertFromFloat_1</a> (double binValue, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> format, void *strValue, <a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:add25c775ebd8186f611365fb45c513df"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2555ce5bb9789967eb75e591e83772fa"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#a2555ce5bb9789967eb75e591e83772fa">WXMPUtils_ConvertFromDate_1</a> (const <a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> &amp;binValue, void *strValue, <a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a2555ce5bb9789967eb75e591e83772fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac6ea9e5527993203e86849e5d3699bcb"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#ac6ea9e5527993203e86849e5d3699bcb">WXMPUtils_ConvertToBool_1</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> strValue, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:ac6ea9e5527993203e86849e5d3699bcb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aabf211114925d9eba94089f811efe87a"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#aabf211114925d9eba94089f811efe87a">WXMPUtils_ConvertToInt_1</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> strValue, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:aabf211114925d9eba94089f811efe87a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a59b3c8316d21dde2b2b79863c7527f02"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#a59b3c8316d21dde2b2b79863c7527f02">WXMPUtils_ConvertToInt64_1</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> strValue, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a59b3c8316d21dde2b2b79863c7527f02"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7614ad0bb2816ebfe794514f45a10c2e"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#a7614ad0bb2816ebfe794514f45a10c2e">WXMPUtils_ConvertToFloat_1</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> strValue, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a7614ad0bb2816ebfe794514f45a10c2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ace54acfb2efef9cc192791b8046f6b3d"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#ace54acfb2efef9cc192791b8046f6b3d">WXMPUtils_ConvertToDate_1</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> strValue, <a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *binValue, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:ace54acfb2efef9cc192791b8046f6b3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0b0bf2caafca6f06b8c84936ce4c27d8"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#a0b0bf2caafca6f06b8c84936ce4c27d8">WXMPUtils_CurrentDateTime_1</a> (<a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *time, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a0b0bf2caafca6f06b8c84936ce4c27d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a777a7e3b9b0f8b7afab51e40dae3a921"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#a777a7e3b9b0f8b7afab51e40dae3a921">WXMPUtils_SetTimeZone_1</a> (<a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *time, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a777a7e3b9b0f8b7afab51e40dae3a921"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a764cfb9c96b1e37dd108cb42014fd6b6"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#a764cfb9c96b1e37dd108cb42014fd6b6">WXMPUtils_ConvertToUTCTime_1</a> (<a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *time, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a764cfb9c96b1e37dd108cb42014fd6b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7812f80be0bfa177de3d0bb9d9bd5996"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#a7812f80be0bfa177de3d0bb9d9bd5996">WXMPUtils_ConvertToLocalTime_1</a> (<a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *time, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a7812f80be0bfa177de3d0bb9d9bd5996"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad0b48ebb31c439d092185aa2d4fbfc79"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#ad0b48ebb31c439d092185aa2d4fbfc79">WXMPUtils_CompareDateTime_1</a> (const <a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> &amp;left, const <a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> &amp;right, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:ad0b48ebb31c439d092185aa2d4fbfc79"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4d4fa0056f55d427c3a0c07f98b86172"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#a4d4fa0056f55d427c3a0c07f98b86172">WXMPUtils_EncodeToBase64_1</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> rawStr, <a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> rawLen, void *encodedStr, <a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a4d4fa0056f55d427c3a0c07f98b86172"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad31b8453fb086269c1118c51501f2987"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#ad31b8453fb086269c1118c51501f2987">WXMPUtils_DecodeFromBase64_1</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> encodedStr, <a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> encodedLen, void *rawStr, <a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:ad31b8453fb086269c1118c51501f2987"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1725e2cfd1509da540038ca426b98c8a"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#a1725e2cfd1509da540038ca426b98c8a">WXMPUtils_PackageForJPEG_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpObj, void *stdStr, void *extStr, void *digestStr, <a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a1725e2cfd1509da540038ca426b98c8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc180986e0eb5c69a8acd7822780ebfb"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#afc180986e0eb5c69a8acd7822780ebfb">WXMPUtils_MergeFromJPEG_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> fullXMP, <a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> extendedXMP, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:afc180986e0eb5c69a8acd7822780ebfb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae0b2234822da68ea00aeb7485aab9efe"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#ae0b2234822da68ea00aeb7485aab9efe">WXMPUtils_CatenateArrayItems_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpObj, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> separator, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> quotes, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, void *catedStr, <a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:ae0b2234822da68ea00aeb7485aab9efe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a29b7beb40cc51e935bd941eada601139"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#a29b7beb40cc51e935bd941eada601139">WXMPUtils_SeparateArrayItems_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpObj, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> catedStr, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a29b7beb40cc51e935bd941eada601139"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a506f87a34b8f983115c3bbfb4eba46f2"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#a506f87a34b8f983115c3bbfb4eba46f2">WXMPUtils_ApplyTemplate_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> workingXMP, <a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> templateXMP, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a506f87a34b8f983115c3bbfb4eba46f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7cc3619ebbd1f2f7527488882729a0cb"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#a7cc3619ebbd1f2f7527488882729a0cb">WXMPUtils_RemoveProperties_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpObj, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a7cc3619ebbd1f2f7527488882729a0cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4a0f5534dae4f34f3b1a233eb04ac54e"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html#a4a0f5534dae4f34f3b1a233eb04ac54e">WXMPUtils_DuplicateSubtree_1</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> source, <a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> dest, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> sourceNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> sourceRoot, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> destNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> destRoot, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, <a class="el" href="structWXMP__Result.html">WXMP_Result</a> *wResult)</td></tr>
+<tr class="separator:a4a0f5534dae4f34f3b1a233eb04ac54e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="a83a5fcd7213385cfdb6b4d4eb85f1162"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define __WXMPUtils_hpp__&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPUtils_8hpp_source.html#l00002">2</a> of file <a class="el" href="WXMPUtils_8hpp_source.html">WXMPUtils.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a862c949794995c58c9ad74737973b6ef"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPUtils_ApplyTemplate_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">workingXMP, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">templateXMP, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">actions&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#a506f87a34b8f983115c3bbfb4eba46f2">WXMPUtils_ApplyTemplate_1</a> ( workingXMP, templateXMP, actions, &amp;wResult );</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPUtils_8hpp_source.html#l00097">97</a> of file <a class="el" href="WXMPUtils_8hpp_source.html">WXMPUtils.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aec36d93389403739f12a162502d56ab5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPUtils_CatenateArrayItems_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">xmpObj, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">schemaNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">arrayName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">separator, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">quotes, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">options, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">catedStr, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">SetClientString&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#ae0b2234822da68ea00aeb7485aab9efe">WXMPUtils_CatenateArrayItems_1</a> ( xmpObj, schemaNS, arrayName, separator, quotes, options, catedStr, SetClientString, &amp;wResult );</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPUtils_8hpp_source.html#l00091">91</a> of file <a class="el" href="WXMPUtils_8hpp_source.html">WXMPUtils.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0b273ea840ed328c8b0ebce5ea17873c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPUtils_CompareDateTime_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">left, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">right&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#ad0b48ebb31c439d092185aa2d4fbfc79">WXMPUtils_CompareDateTime_1</a> ( left, right, &amp;wResult );</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPUtils_8hpp_source.html#l00076">76</a> of file <a class="el" href="WXMPUtils_8hpp_source.html">WXMPUtils.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad91341db639119d2bf30ff456a29f42c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPUtils_ComposeArrayItemPath_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">schemaNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">arrayName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">itemIndex, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">itemPath, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">SetClientString&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#ae6de22173661f35cf6926806cb052554">WXMPUtils_ComposeArrayItemPath_1</a> ( schemaNS, arrayName, itemIndex, itemPath, SetClientString, &amp;wResult );</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPUtils_8hpp_source.html#l00019">19</a> of file <a class="el" href="WXMPUtils_8hpp_source.html">WXMPUtils.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab25f06cea61f5562e1df5efe99922c5e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPUtils_ComposeFieldSelector_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">schemaNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">arrayName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">fieldNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">fieldName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">fieldValue, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">selPath, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">SetClientString&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#aa7b4576af21a7c816768f1983100d432">WXMPUtils_ComposeFieldSelector_1</a> ( schemaNS, arrayName, fieldNS, fieldName, fieldValue, selPath, SetClientString, &amp;wResult );</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPUtils_8hpp_source.html#l00031">31</a> of file <a class="el" href="WXMPUtils_8hpp_source.html">WXMPUtils.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a85ade86f24f96a54d386b3d9ae7d96ae"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPUtils_ComposeLangSelector_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">schemaNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">arrayName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">langName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">selPath, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">SetClientString&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#af1bad4b3c7d72cff883c0ab0705e6c69">WXMPUtils_ComposeLangSelector_1</a> ( schemaNS, arrayName, langName, selPath, SetClientString, &amp;wResult );</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPUtils_8hpp_source.html#l00028">28</a> of file <a class="el" href="WXMPUtils_8hpp_source.html">WXMPUtils.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a377a1ad29357867bfcdceda410400b6b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPUtils_ComposeQualifierPath_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">schemaNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">propName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">qualNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">qualName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">qualPath, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">SetClientString&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#a323219f2ccf286de50a5684a024a25d6">WXMPUtils_ComposeQualifierPath_1</a> ( schemaNS, propName, qualNS, qualName, qualPath, SetClientString, &amp;wResult );</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPUtils_8hpp_source.html#l00025">25</a> of file <a class="el" href="WXMPUtils_8hpp_source.html">WXMPUtils.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a106974fdb19fd470dd25d0913af28246"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPUtils_ComposeStructFieldPath_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">schemaNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">structName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">fieldNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">fieldName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">fieldPath, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">SetClientString&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#a691c12dfc25a4bb4baf82195248ab1c3">WXMPUtils_ComposeStructFieldPath_1</a> ( schemaNS, structName, fieldNS, fieldName, fieldPath, SetClientString, &amp;wResult );</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPUtils_8hpp_source.html#l00022">22</a> of file <a class="el" href="WXMPUtils_8hpp_source.html">WXMPUtils.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8a014e86556114f1756815477cad4321"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPUtils_ConvertFromBool_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">binValue, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">strValue, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">SetClientString&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#ad80db557044003d1eb9c692a8703dead">WXMPUtils_ConvertFromBool_1</a> ( binValue, strValue, SetClientString, &amp;wResult );</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPUtils_8hpp_source.html#l00034">34</a> of file <a class="el" href="WXMPUtils_8hpp_source.html">WXMPUtils.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="acb32764db5b81fa4b0efca35188a4f6a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPUtils_ConvertFromDate_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">binValue, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">strValue, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">SetClientString&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#a2555ce5bb9789967eb75e591e83772fa">WXMPUtils_ConvertFromDate_1</a> ( binValue, strValue, SetClientString, &amp;wResult );</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPUtils_8hpp_source.html#l00046">46</a> of file <a class="el" href="WXMPUtils_8hpp_source.html">WXMPUtils.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af8bcd900825782a784239b8fed6a6f6e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPUtils_ConvertFromFloat_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">binValue, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">format, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">strValue, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">SetClientString&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#add25c775ebd8186f611365fb45c513df">WXMPUtils_ConvertFromFloat_1</a> ( binValue, format, strValue, SetClientString, &amp;wResult );</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPUtils_8hpp_source.html#l00043">43</a> of file <a class="el" href="WXMPUtils_8hpp_source.html">WXMPUtils.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a424ca120abc0e6ef6f2354e82757ce5b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPUtils_ConvertFromInt64_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">binValue, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">format, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">strValue, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">SetClientString&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#a180b0ae8451b9606003f1e6e38287ae8">WXMPUtils_ConvertFromInt64_1</a> ( binValue, format, strValue, SetClientString, &amp;wResult );</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPUtils_8hpp_source.html#l00040">40</a> of file <a class="el" href="WXMPUtils_8hpp_source.html">WXMPUtils.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6bca9ebbc56f0a9136478d22b43e6bc8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPUtils_ConvertFromInt_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">binValue, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">format, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">strValue, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">SetClientString&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#ab651b25af61aec9fee3100166911d6c7">WXMPUtils_ConvertFromInt_1</a> ( binValue, format, strValue, SetClientString, &amp;wResult );</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPUtils_8hpp_source.html#l00037">37</a> of file <a class="el" href="WXMPUtils_8hpp_source.html">WXMPUtils.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3de2ac287d2eb9a3786f187b0b5944d7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPUtils_ConvertToBool_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">strValue</td><td>)</td>
+ <td>&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#ac6ea9e5527993203e86849e5d3699bcb">WXMPUtils_ConvertToBool_1</a> ( strValue, &amp;wResult );</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPUtils_8hpp_source.html#l00049">49</a> of file <a class="el" href="WXMPUtils_8hpp_source.html">WXMPUtils.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af2017eaec1cabc679e2083dfd4c1f7c8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPUtils_ConvertToDate_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">strValue, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">binValue&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#ace54acfb2efef9cc192791b8046f6b3d">WXMPUtils_ConvertToDate_1</a> ( strValue, binValue, &amp;wResult );</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPUtils_8hpp_source.html#l00061">61</a> of file <a class="el" href="WXMPUtils_8hpp_source.html">WXMPUtils.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7a6e1c8d446dd9416b7fc4279cb5c026"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPUtils_ConvertToFloat_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">strValue</td><td>)</td>
+ <td>&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#a7614ad0bb2816ebfe794514f45a10c2e">WXMPUtils_ConvertToFloat_1</a> ( strValue, &amp;wResult );</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPUtils_8hpp_source.html#l00058">58</a> of file <a class="el" href="WXMPUtils_8hpp_source.html">WXMPUtils.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aaf92038d52fe0a7eee019a9d51350532"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPUtils_ConvertToInt64_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">strValue</td><td>)</td>
+ <td>&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#a59b3c8316d21dde2b2b79863c7527f02">WXMPUtils_ConvertToInt64_1</a> ( strValue, &amp;wResult );</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPUtils_8hpp_source.html#l00055">55</a> of file <a class="el" href="WXMPUtils_8hpp_source.html">WXMPUtils.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac089fd797e17f92af27b512b0d96951c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPUtils_ConvertToInt_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">strValue</td><td>)</td>
+ <td>&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#aabf211114925d9eba94089f811efe87a">WXMPUtils_ConvertToInt_1</a> ( strValue, &amp;wResult );</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPUtils_8hpp_source.html#l00052">52</a> of file <a class="el" href="WXMPUtils_8hpp_source.html">WXMPUtils.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7dd59fc7ea99702edee606e30925ee82"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPUtils_ConvertToLocalTime_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">time</td><td>)</td>
+ <td>&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#a7812f80be0bfa177de3d0bb9d9bd5996">WXMPUtils_ConvertToLocalTime_1</a> ( time, &amp;wResult );</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPUtils_8hpp_source.html#l00073">73</a> of file <a class="el" href="WXMPUtils_8hpp_source.html">WXMPUtils.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a71770255372756959a29324f2bcdd654"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPUtils_ConvertToUTCTime_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">time</td><td>)</td>
+ <td>&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#a764cfb9c96b1e37dd108cb42014fd6b6">WXMPUtils_ConvertToUTCTime_1</a> ( time, &amp;wResult );</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPUtils_8hpp_source.html#l00070">70</a> of file <a class="el" href="WXMPUtils_8hpp_source.html">WXMPUtils.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0565337a6234a5e7421586787a29d5b6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPUtils_CurrentDateTime_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">time</td><td>)</td>
+ <td>&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#a0b0bf2caafca6f06b8c84936ce4c27d8">WXMPUtils_CurrentDateTime_1</a> ( time, &amp;wResult );</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPUtils_8hpp_source.html#l00064">64</a> of file <a class="el" href="WXMPUtils_8hpp_source.html">WXMPUtils.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aafde1fd448ec36673b9eb70fdac115e8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPUtils_DecodeFromBase64_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">encodedStr, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">encodedLen, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">rawStr, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">SetClientString&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#ad31b8453fb086269c1118c51501f2987">WXMPUtils_DecodeFromBase64_1</a> ( encodedStr, encodedLen, rawStr, SetClientString, &amp;wResult );</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPUtils_8hpp_source.html#l00082">82</a> of file <a class="el" href="WXMPUtils_8hpp_source.html">WXMPUtils.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa70282eba27fd239e2cfd561b88c08be"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPUtils_DuplicateSubtree_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">source, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">dest, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">sourceNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">sourceRoot, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">destNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">destRoot, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">options&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#a4a0f5534dae4f34f3b1a233eb04ac54e">WXMPUtils_DuplicateSubtree_1</a> ( source, dest, sourceNS, sourceRoot, destNS, destRoot, options, &amp;wResult );</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPUtils_8hpp_source.html#l00103">103</a> of file <a class="el" href="WXMPUtils_8hpp_source.html">WXMPUtils.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a844d244df1b48816a3397ef50c7f5f5b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPUtils_EncodeToBase64_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">rawStr, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">rawLen, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">encodedStr, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">SetClientString&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#a4d4fa0056f55d427c3a0c07f98b86172">WXMPUtils_EncodeToBase64_1</a> ( rawStr, rawLen, encodedStr, SetClientString, &amp;wResult );</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPUtils_8hpp_source.html#l00079">79</a> of file <a class="el" href="WXMPUtils_8hpp_source.html">WXMPUtils.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a873b7cbb40f65be873aa2b6ca6cd4eab"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPUtils_MergeFromJPEG_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">fullXMP, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">extendedXMP&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#afc180986e0eb5c69a8acd7822780ebfb">WXMPUtils_MergeFromJPEG_1</a> ( fullXMP, extendedXMP, &amp;wResult );</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPUtils_8hpp_source.html#l00088">88</a> of file <a class="el" href="WXMPUtils_8hpp_source.html">WXMPUtils.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad3481cdf333724ff87223d1514dd95cf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPUtils_PackageForJPEG_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">xmpObj, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">stdStr, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">extStr, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">digestStr, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">SetClientString&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#a1725e2cfd1509da540038ca426b98c8a">WXMPUtils_PackageForJPEG_1</a> ( xmpObj, stdStr, extStr, digestStr, SetClientString, &amp;wResult );</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPUtils_8hpp_source.html#l00085">85</a> of file <a class="el" href="WXMPUtils_8hpp_source.html">WXMPUtils.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aeb44088490f2951c3491003796ec50a1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPUtils_RemoveProperties_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">xmpObj, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">schemaNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">propName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">options&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#a7cc3619ebbd1f2f7527488882729a0cb">WXMPUtils_RemoveProperties_1</a> ( xmpObj, schemaNS, propName, options, &amp;wResult );</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPUtils_8hpp_source.html#l00100">100</a> of file <a class="el" href="WXMPUtils_8hpp_source.html">WXMPUtils.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a89d6c91a990c8ec93f00832c946fdf37"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPUtils_SeparateArrayItems_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">xmpObj, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">schemaNS, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">arrayName, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">options, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">catedStr&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#a29b7beb40cc51e935bd941eada601139">WXMPUtils_SeparateArrayItems_1</a> ( xmpObj, schemaNS, arrayName, options, catedStr, &amp;wResult );</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPUtils_8hpp_source.html#l00094">94</a> of file <a class="el" href="WXMPUtils_8hpp_source.html">WXMPUtils.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1d51ef9a2d3fd698e664df2dec2c9b13"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define zXMPUtils_SetTimeZone_1</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">time</td><td>)</td>
+ <td>&#160;&#160;&#160;<a class="el" href="WXMPUtils_8hpp.html#a777a7e3b9b0f8b7afab51e40dae3a921">WXMPUtils_SetTimeZone_1</a> ( time, &amp;wResult );</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMPUtils_8hpp_source.html#l00067">67</a> of file <a class="el" href="WXMPUtils_8hpp_source.html">WXMPUtils.hpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a506f87a34b8f983115c3bbfb4eba46f2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPUtils_ApplyTemplate_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>workingXMP</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>templateXMP</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae0b2234822da68ea00aeb7485aab9efe"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPUtils_CatenateArrayItems_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpObj</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>arrayName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>separator</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>quotes</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>catedStr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a>&#160;</td>
+ <td class="paramname"><em>SetClientString</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad0b48ebb31c439d092185aa2d4fbfc79"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPUtils_CompareDateTime_1 </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> &amp;&#160;</td>
+ <td class="paramname"><em>left</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> &amp;&#160;</td>
+ <td class="paramname"><em>right</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae6de22173661f35cf6926806cb052554"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPUtils_ComposeArrayItemPath_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>arrayName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a>&#160;</td>
+ <td class="paramname"><em>itemIndex</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>itemPath</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a>&#160;</td>
+ <td class="paramname"><em>SetClientString</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa7b4576af21a7c816768f1983100d432"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPUtils_ComposeFieldSelector_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>arrayName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>fieldNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>fieldName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>fieldValue</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>selPath</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a>&#160;</td>
+ <td class="paramname"><em>SetClientString</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af1bad4b3c7d72cff883c0ab0705e6c69"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPUtils_ComposeLangSelector_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>arrayName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>langName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>selPath</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a>&#160;</td>
+ <td class="paramname"><em>SetClientString</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a323219f2ccf286de50a5684a024a25d6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPUtils_ComposeQualifierPath_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>qualNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>qualName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>qualPath</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a>&#160;</td>
+ <td class="paramname"><em>SetClientString</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a691c12dfc25a4bb4baf82195248ab1c3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPUtils_ComposeStructFieldPath_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>structName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>fieldNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>fieldName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>fieldPath</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a>&#160;</td>
+ <td class="paramname"><em>SetClientString</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad80db557044003d1eb9c692a8703dead"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPUtils_ConvertFromBool_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a>&#160;</td>
+ <td class="paramname"><em>binValue</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>strValue</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a>&#160;</td>
+ <td class="paramname"><em>SetClientString</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2555ce5bb9789967eb75e591e83772fa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPUtils_ConvertFromDate_1 </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> &amp;&#160;</td>
+ <td class="paramname"><em>binValue</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>strValue</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a>&#160;</td>
+ <td class="paramname"><em>SetClientString</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="add25c775ebd8186f611365fb45c513df"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPUtils_ConvertFromFloat_1 </td>
+ <td>(</td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>binValue</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>format</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>strValue</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a>&#160;</td>
+ <td class="paramname"><em>SetClientString</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a180b0ae8451b9606003f1e6e38287ae8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPUtils_ConvertFromInt64_1 </td>
+ <td>(</td>
+ <td class="paramtype">XMP_Int64&#160;</td>
+ <td class="paramname"><em>binValue</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>format</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>strValue</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a>&#160;</td>
+ <td class="paramname"><em>SetClientString</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab651b25af61aec9fee3100166911d6c7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPUtils_ConvertFromInt_1 </td>
+ <td>(</td>
+ <td class="paramtype">XMP_Int32&#160;</td>
+ <td class="paramname"><em>binValue</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>format</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>strValue</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a>&#160;</td>
+ <td class="paramname"><em>SetClientString</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac6ea9e5527993203e86849e5d3699bcb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPUtils_ConvertToBool_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>strValue</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ace54acfb2efef9cc192791b8046f6b3d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPUtils_ConvertToDate_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>strValue</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *&#160;</td>
+ <td class="paramname"><em>binValue</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7614ad0bb2816ebfe794514f45a10c2e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPUtils_ConvertToFloat_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>strValue</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a59b3c8316d21dde2b2b79863c7527f02"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPUtils_ConvertToInt64_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>strValue</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aabf211114925d9eba94089f811efe87a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPUtils_ConvertToInt_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>strValue</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7812f80be0bfa177de3d0bb9d9bd5996"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPUtils_ConvertToLocalTime_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *&#160;</td>
+ <td class="paramname"><em>time</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a764cfb9c96b1e37dd108cb42014fd6b6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPUtils_ConvertToUTCTime_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *&#160;</td>
+ <td class="paramname"><em>time</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0b0bf2caafca6f06b8c84936ce4c27d8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPUtils_CurrentDateTime_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *&#160;</td>
+ <td class="paramname"><em>time</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad31b8453fb086269c1118c51501f2987"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPUtils_DecodeFromBase64_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>encodedStr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a>&#160;</td>
+ <td class="paramname"><em>encodedLen</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>rawStr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a>&#160;</td>
+ <td class="paramname"><em>SetClientString</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4a0f5534dae4f34f3b1a233eb04ac54e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPUtils_DuplicateSubtree_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>source</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>dest</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>sourceNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>sourceRoot</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>destNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>destRoot</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4d4fa0056f55d427c3a0c07f98b86172"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPUtils_EncodeToBase64_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>rawStr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a>&#160;</td>
+ <td class="paramname"><em>rawLen</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>encodedStr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a>&#160;</td>
+ <td class="paramname"><em>SetClientString</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="afc180986e0eb5c69a8acd7822780ebfb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPUtils_MergeFromJPEG_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>fullXMP</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>extendedXMP</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1725e2cfd1509da540038ca426b98c8a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPUtils_PackageForJPEG_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpObj</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>stdStr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>extStr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>digestStr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a>&#160;</td>
+ <td class="paramname"><em>SetClientString</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7cc3619ebbd1f2f7527488882729a0cb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPUtils_RemoveProperties_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpObj</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a29b7beb40cc51e935bd941eada601139"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPUtils_SeparateArrayItems_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpObj</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>arrayName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>catedStr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a777a7e3b9b0f8b7afab51e40dae3a921"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> WXMPUtils_SetTimeZone_1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *&#160;</td>
+ <td class="paramname"><em>time</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structWXMP__Result.html">WXMP_Result</a> *&#160;</td>
+ <td class="paramname"><em>wResult</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/WXMPUtils_8hpp.js b/docs/API/WXMPUtils_8hpp.js
new file mode 100755
index 0000000..d1acf7c
--- /dev/null
+++ b/docs/API/WXMPUtils_8hpp.js
@@ -0,0 +1,62 @@
+var WXMPUtils_8hpp =
+[
+ [ "__WXMPUtils_hpp__", "WXMPUtils_8hpp.html#a83a5fcd7213385cfdb6b4d4eb85f1162", null ],
+ [ "zXMPUtils_ApplyTemplate_1", "WXMPUtils_8hpp.html#a862c949794995c58c9ad74737973b6ef", null ],
+ [ "zXMPUtils_CatenateArrayItems_1", "WXMPUtils_8hpp.html#aec36d93389403739f12a162502d56ab5", null ],
+ [ "zXMPUtils_CompareDateTime_1", "WXMPUtils_8hpp.html#a0b273ea840ed328c8b0ebce5ea17873c", null ],
+ [ "zXMPUtils_ComposeArrayItemPath_1", "WXMPUtils_8hpp.html#ad91341db639119d2bf30ff456a29f42c", null ],
+ [ "zXMPUtils_ComposeFieldSelector_1", "WXMPUtils_8hpp.html#ab25f06cea61f5562e1df5efe99922c5e", null ],
+ [ "zXMPUtils_ComposeLangSelector_1", "WXMPUtils_8hpp.html#a85ade86f24f96a54d386b3d9ae7d96ae", null ],
+ [ "zXMPUtils_ComposeQualifierPath_1", "WXMPUtils_8hpp.html#a377a1ad29357867bfcdceda410400b6b", null ],
+ [ "zXMPUtils_ComposeStructFieldPath_1", "WXMPUtils_8hpp.html#a106974fdb19fd470dd25d0913af28246", null ],
+ [ "zXMPUtils_ConvertFromBool_1", "WXMPUtils_8hpp.html#a8a014e86556114f1756815477cad4321", null ],
+ [ "zXMPUtils_ConvertFromDate_1", "WXMPUtils_8hpp.html#acb32764db5b81fa4b0efca35188a4f6a", null ],
+ [ "zXMPUtils_ConvertFromFloat_1", "WXMPUtils_8hpp.html#af8bcd900825782a784239b8fed6a6f6e", null ],
+ [ "zXMPUtils_ConvertFromInt64_1", "WXMPUtils_8hpp.html#a424ca120abc0e6ef6f2354e82757ce5b", null ],
+ [ "zXMPUtils_ConvertFromInt_1", "WXMPUtils_8hpp.html#a6bca9ebbc56f0a9136478d22b43e6bc8", null ],
+ [ "zXMPUtils_ConvertToBool_1", "WXMPUtils_8hpp.html#a3de2ac287d2eb9a3786f187b0b5944d7", null ],
+ [ "zXMPUtils_ConvertToDate_1", "WXMPUtils_8hpp.html#af2017eaec1cabc679e2083dfd4c1f7c8", null ],
+ [ "zXMPUtils_ConvertToFloat_1", "WXMPUtils_8hpp.html#a7a6e1c8d446dd9416b7fc4279cb5c026", null ],
+ [ "zXMPUtils_ConvertToInt64_1", "WXMPUtils_8hpp.html#aaf92038d52fe0a7eee019a9d51350532", null ],
+ [ "zXMPUtils_ConvertToInt_1", "WXMPUtils_8hpp.html#ac089fd797e17f92af27b512b0d96951c", null ],
+ [ "zXMPUtils_ConvertToLocalTime_1", "WXMPUtils_8hpp.html#a7dd59fc7ea99702edee606e30925ee82", null ],
+ [ "zXMPUtils_ConvertToUTCTime_1", "WXMPUtils_8hpp.html#a71770255372756959a29324f2bcdd654", null ],
+ [ "zXMPUtils_CurrentDateTime_1", "WXMPUtils_8hpp.html#a0565337a6234a5e7421586787a29d5b6", null ],
+ [ "zXMPUtils_DecodeFromBase64_1", "WXMPUtils_8hpp.html#aafde1fd448ec36673b9eb70fdac115e8", null ],
+ [ "zXMPUtils_DuplicateSubtree_1", "WXMPUtils_8hpp.html#aa70282eba27fd239e2cfd561b88c08be", null ],
+ [ "zXMPUtils_EncodeToBase64_1", "WXMPUtils_8hpp.html#a844d244df1b48816a3397ef50c7f5f5b", null ],
+ [ "zXMPUtils_MergeFromJPEG_1", "WXMPUtils_8hpp.html#a873b7cbb40f65be873aa2b6ca6cd4eab", null ],
+ [ "zXMPUtils_PackageForJPEG_1", "WXMPUtils_8hpp.html#ad3481cdf333724ff87223d1514dd95cf", null ],
+ [ "zXMPUtils_RemoveProperties_1", "WXMPUtils_8hpp.html#aeb44088490f2951c3491003796ec50a1", null ],
+ [ "zXMPUtils_SeparateArrayItems_1", "WXMPUtils_8hpp.html#a89d6c91a990c8ec93f00832c946fdf37", null ],
+ [ "zXMPUtils_SetTimeZone_1", "WXMPUtils_8hpp.html#a1d51ef9a2d3fd698e664df2dec2c9b13", null ],
+ [ "WXMPUtils_ApplyTemplate_1", "WXMPUtils_8hpp.html#a506f87a34b8f983115c3bbfb4eba46f2", null ],
+ [ "WXMPUtils_CatenateArrayItems_1", "WXMPUtils_8hpp.html#ae0b2234822da68ea00aeb7485aab9efe", null ],
+ [ "WXMPUtils_CompareDateTime_1", "WXMPUtils_8hpp.html#ad0b48ebb31c439d092185aa2d4fbfc79", null ],
+ [ "WXMPUtils_ComposeArrayItemPath_1", "WXMPUtils_8hpp.html#ae6de22173661f35cf6926806cb052554", null ],
+ [ "WXMPUtils_ComposeFieldSelector_1", "WXMPUtils_8hpp.html#aa7b4576af21a7c816768f1983100d432", null ],
+ [ "WXMPUtils_ComposeLangSelector_1", "WXMPUtils_8hpp.html#af1bad4b3c7d72cff883c0ab0705e6c69", null ],
+ [ "WXMPUtils_ComposeQualifierPath_1", "WXMPUtils_8hpp.html#a323219f2ccf286de50a5684a024a25d6", null ],
+ [ "WXMPUtils_ComposeStructFieldPath_1", "WXMPUtils_8hpp.html#a691c12dfc25a4bb4baf82195248ab1c3", null ],
+ [ "WXMPUtils_ConvertFromBool_1", "WXMPUtils_8hpp.html#ad80db557044003d1eb9c692a8703dead", null ],
+ [ "WXMPUtils_ConvertFromDate_1", "WXMPUtils_8hpp.html#a2555ce5bb9789967eb75e591e83772fa", null ],
+ [ "WXMPUtils_ConvertFromFloat_1", "WXMPUtils_8hpp.html#add25c775ebd8186f611365fb45c513df", null ],
+ [ "WXMPUtils_ConvertFromInt64_1", "WXMPUtils_8hpp.html#a180b0ae8451b9606003f1e6e38287ae8", null ],
+ [ "WXMPUtils_ConvertFromInt_1", "WXMPUtils_8hpp.html#ab651b25af61aec9fee3100166911d6c7", null ],
+ [ "WXMPUtils_ConvertToBool_1", "WXMPUtils_8hpp.html#ac6ea9e5527993203e86849e5d3699bcb", null ],
+ [ "WXMPUtils_ConvertToDate_1", "WXMPUtils_8hpp.html#ace54acfb2efef9cc192791b8046f6b3d", null ],
+ [ "WXMPUtils_ConvertToFloat_1", "WXMPUtils_8hpp.html#a7614ad0bb2816ebfe794514f45a10c2e", null ],
+ [ "WXMPUtils_ConvertToInt64_1", "WXMPUtils_8hpp.html#a59b3c8316d21dde2b2b79863c7527f02", null ],
+ [ "WXMPUtils_ConvertToInt_1", "WXMPUtils_8hpp.html#aabf211114925d9eba94089f811efe87a", null ],
+ [ "WXMPUtils_ConvertToLocalTime_1", "WXMPUtils_8hpp.html#a7812f80be0bfa177de3d0bb9d9bd5996", null ],
+ [ "WXMPUtils_ConvertToUTCTime_1", "WXMPUtils_8hpp.html#a764cfb9c96b1e37dd108cb42014fd6b6", null ],
+ [ "WXMPUtils_CurrentDateTime_1", "WXMPUtils_8hpp.html#a0b0bf2caafca6f06b8c84936ce4c27d8", null ],
+ [ "WXMPUtils_DecodeFromBase64_1", "WXMPUtils_8hpp.html#ad31b8453fb086269c1118c51501f2987", null ],
+ [ "WXMPUtils_DuplicateSubtree_1", "WXMPUtils_8hpp.html#a4a0f5534dae4f34f3b1a233eb04ac54e", null ],
+ [ "WXMPUtils_EncodeToBase64_1", "WXMPUtils_8hpp.html#a4d4fa0056f55d427c3a0c07f98b86172", null ],
+ [ "WXMPUtils_MergeFromJPEG_1", "WXMPUtils_8hpp.html#afc180986e0eb5c69a8acd7822780ebfb", null ],
+ [ "WXMPUtils_PackageForJPEG_1", "WXMPUtils_8hpp.html#a1725e2cfd1509da540038ca426b98c8a", null ],
+ [ "WXMPUtils_RemoveProperties_1", "WXMPUtils_8hpp.html#a7cc3619ebbd1f2f7527488882729a0cb", null ],
+ [ "WXMPUtils_SeparateArrayItems_1", "WXMPUtils_8hpp.html#a29b7beb40cc51e935bd941eada601139", null ],
+ [ "WXMPUtils_SetTimeZone_1", "WXMPUtils_8hpp.html#a777a7e3b9b0f8b7afab51e40dae3a921", null ]
+]; \ No newline at end of file
diff --git a/docs/API/WXMPUtils_8hpp_source.html b/docs/API/WXMPUtils_8hpp_source.html
new file mode 100755
index 0000000..614cd6d
--- /dev/null
+++ b/docs/API/WXMPUtils_8hpp_source.html
@@ -0,0 +1,88 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/client-glue/WXMPUtils.hpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('WXMPUtils_8hpp_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">WXMPUtils.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="WXMPUtils_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#if ! __WXMPUtils_hpp__</span></div><div class="line"><a name="l00002"></a><span class="lineno"><a class="line" href="WXMPUtils_8hpp.html#a83a5fcd7213385cfdb6b4d4eb85f1162"> 2</a></span>&#160;<span class="preprocessor">#define __WXMPUtils_hpp__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright 2002 Adobe Systems Incorporated</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// All Rights Reserved.</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="WXMP__Common_8hpp.html">client-glue/WXMP_Common.hpp</a>&quot;</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#if __cplusplus</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="WXMPUtils_8hpp.html#ad91341db639119d2bf30ff456a29f42c"> 19</a></span>&#160;<span class="preprocessor">#define zXMPUtils_ComposeArrayItemPath_1(schemaNS,arrayName,itemIndex,itemPath,SetClientString) \</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"> WXMPUtils_ComposeArrayItemPath_1 ( schemaNS, arrayName, itemIndex, itemPath, SetClientString, &amp;wResult );</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="WXMPUtils_8hpp.html#a106974fdb19fd470dd25d0913af28246"> 22</a></span>&#160;<span class="preprocessor">#define zXMPUtils_ComposeStructFieldPath_1(schemaNS,structName,fieldNS,fieldName,fieldPath,SetClientString) \</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor"> WXMPUtils_ComposeStructFieldPath_1 ( schemaNS, structName, fieldNS, fieldName, fieldPath, SetClientString, &amp;wResult );</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="WXMPUtils_8hpp.html#a377a1ad29357867bfcdceda410400b6b"> 25</a></span>&#160;<span class="preprocessor">#define zXMPUtils_ComposeQualifierPath_1(schemaNS,propName,qualNS,qualName,qualPath,SetClientString) \</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor"> WXMPUtils_ComposeQualifierPath_1 ( schemaNS, propName, qualNS, qualName, qualPath, SetClientString, &amp;wResult );</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="WXMPUtils_8hpp.html#a85ade86f24f96a54d386b3d9ae7d96ae"> 28</a></span>&#160;<span class="preprocessor">#define zXMPUtils_ComposeLangSelector_1(schemaNS,arrayName,langName,selPath,SetClientString) \</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor"> WXMPUtils_ComposeLangSelector_1 ( schemaNS, arrayName, langName, selPath, SetClientString, &amp;wResult );</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="WXMPUtils_8hpp.html#ab25f06cea61f5562e1df5efe99922c5e"> 31</a></span>&#160;<span class="preprocessor">#define zXMPUtils_ComposeFieldSelector_1(schemaNS,arrayName,fieldNS,fieldName,fieldValue,selPath,SetClientString) \</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor"> WXMPUtils_ComposeFieldSelector_1 ( schemaNS, arrayName, fieldNS, fieldName, fieldValue, selPath, SetClientString, &amp;wResult );</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="WXMPUtils_8hpp.html#a8a014e86556114f1756815477cad4321"> 34</a></span>&#160;<span class="preprocessor">#define zXMPUtils_ConvertFromBool_1(binValue,strValue,SetClientString) \</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor"> WXMPUtils_ConvertFromBool_1 ( binValue, strValue, SetClientString, &amp;wResult );</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="WXMPUtils_8hpp.html#a6bca9ebbc56f0a9136478d22b43e6bc8"> 37</a></span>&#160;<span class="preprocessor">#define zXMPUtils_ConvertFromInt_1(binValue,format,strValue,SetClientString) \</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor"> WXMPUtils_ConvertFromInt_1 ( binValue, format, strValue, SetClientString, &amp;wResult );</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="WXMPUtils_8hpp.html#a424ca120abc0e6ef6f2354e82757ce5b"> 40</a></span>&#160;<span class="preprocessor">#define zXMPUtils_ConvertFromInt64_1(binValue,format,strValue,SetClientString) \</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor"> WXMPUtils_ConvertFromInt64_1 ( binValue, format, strValue, SetClientString, &amp;wResult );</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="WXMPUtils_8hpp.html#af8bcd900825782a784239b8fed6a6f6e"> 43</a></span>&#160;<span class="preprocessor">#define zXMPUtils_ConvertFromFloat_1(binValue,format,strValue,SetClientString) \</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor"> WXMPUtils_ConvertFromFloat_1 ( binValue, format, strValue, SetClientString, &amp;wResult );</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="WXMPUtils_8hpp.html#acb32764db5b81fa4b0efca35188a4f6a"> 46</a></span>&#160;<span class="preprocessor">#define zXMPUtils_ConvertFromDate_1(binValue,strValue,SetClientString) \</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor"> WXMPUtils_ConvertFromDate_1 ( binValue, strValue, SetClientString, &amp;wResult );</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="WXMPUtils_8hpp.html#a3de2ac287d2eb9a3786f187b0b5944d7"> 49</a></span>&#160;<span class="preprocessor">#define zXMPUtils_ConvertToBool_1(strValue) \</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor"> WXMPUtils_ConvertToBool_1 ( strValue, &amp;wResult );</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="WXMPUtils_8hpp.html#ac089fd797e17f92af27b512b0d96951c"> 52</a></span>&#160;<span class="preprocessor">#define zXMPUtils_ConvertToInt_1(strValue) \</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor"> WXMPUtils_ConvertToInt_1 ( strValue, &amp;wResult );</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="WXMPUtils_8hpp.html#aaf92038d52fe0a7eee019a9d51350532"> 55</a></span>&#160;<span class="preprocessor">#define zXMPUtils_ConvertToInt64_1(strValue) \</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor"> WXMPUtils_ConvertToInt64_1 ( strValue, &amp;wResult );</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="WXMPUtils_8hpp.html#a7a6e1c8d446dd9416b7fc4279cb5c026"> 58</a></span>&#160;<span class="preprocessor">#define zXMPUtils_ConvertToFloat_1(strValue) \</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor"> WXMPUtils_ConvertToFloat_1 ( strValue, &amp;wResult );</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="WXMPUtils_8hpp.html#af2017eaec1cabc679e2083dfd4c1f7c8"> 61</a></span>&#160;<span class="preprocessor">#define zXMPUtils_ConvertToDate_1(strValue,binValue) \</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor"> WXMPUtils_ConvertToDate_1 ( strValue, binValue, &amp;wResult );</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="WXMPUtils_8hpp.html#a0565337a6234a5e7421586787a29d5b6"> 64</a></span>&#160;<span class="preprocessor">#define zXMPUtils_CurrentDateTime_1(time) \</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor"> WXMPUtils_CurrentDateTime_1 ( time, &amp;wResult );</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="WXMPUtils_8hpp.html#a1d51ef9a2d3fd698e664df2dec2c9b13"> 67</a></span>&#160;<span class="preprocessor">#define zXMPUtils_SetTimeZone_1(time) \</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor"> WXMPUtils_SetTimeZone_1 ( time, &amp;wResult );</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="WXMPUtils_8hpp.html#a71770255372756959a29324f2bcdd654"> 70</a></span>&#160;<span class="preprocessor">#define zXMPUtils_ConvertToUTCTime_1(time) \</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor"> WXMPUtils_ConvertToUTCTime_1 ( time, &amp;wResult );</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="WXMPUtils_8hpp.html#a7dd59fc7ea99702edee606e30925ee82"> 73</a></span>&#160;<span class="preprocessor">#define zXMPUtils_ConvertToLocalTime_1(time) \</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor"> WXMPUtils_ConvertToLocalTime_1 ( time, &amp;wResult );</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="WXMPUtils_8hpp.html#a0b273ea840ed328c8b0ebce5ea17873c"> 76</a></span>&#160;<span class="preprocessor">#define zXMPUtils_CompareDateTime_1(left,right) \</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor"> WXMPUtils_CompareDateTime_1 ( left, right, &amp;wResult );</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="WXMPUtils_8hpp.html#a844d244df1b48816a3397ef50c7f5f5b"> 79</a></span>&#160;<span class="preprocessor">#define zXMPUtils_EncodeToBase64_1(rawStr,rawLen,encodedStr,SetClientString) \</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor"> WXMPUtils_EncodeToBase64_1 ( rawStr, rawLen, encodedStr, SetClientString, &amp;wResult );</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="WXMPUtils_8hpp.html#aafde1fd448ec36673b9eb70fdac115e8"> 82</a></span>&#160;<span class="preprocessor">#define zXMPUtils_DecodeFromBase64_1(encodedStr,encodedLen,rawStr,SetClientString) \</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor"> WXMPUtils_DecodeFromBase64_1 ( encodedStr, encodedLen, rawStr, SetClientString, &amp;wResult );</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="WXMPUtils_8hpp.html#ad3481cdf333724ff87223d1514dd95cf"> 85</a></span>&#160;<span class="preprocessor">#define zXMPUtils_PackageForJPEG_1(xmpObj,stdStr,extStr,digestStr,SetClientString) \</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor"> WXMPUtils_PackageForJPEG_1 ( xmpObj, stdStr, extStr, digestStr, SetClientString, &amp;wResult );</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="WXMPUtils_8hpp.html#a873b7cbb40f65be873aa2b6ca6cd4eab"> 88</a></span>&#160;<span class="preprocessor">#define zXMPUtils_MergeFromJPEG_1(fullXMP,extendedXMP) \</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor"> WXMPUtils_MergeFromJPEG_1 ( fullXMP, extendedXMP, &amp;wResult );</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="WXMPUtils_8hpp.html#aec36d93389403739f12a162502d56ab5"> 91</a></span>&#160;<span class="preprocessor">#define zXMPUtils_CatenateArrayItems_1(xmpObj,schemaNS,arrayName,separator,quotes,options,catedStr,SetClientString) \</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="preprocessor"> WXMPUtils_CatenateArrayItems_1 ( xmpObj, schemaNS, arrayName, separator, quotes, options, catedStr, SetClientString, &amp;wResult );</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="WXMPUtils_8hpp.html#a89d6c91a990c8ec93f00832c946fdf37"> 94</a></span>&#160;<span class="preprocessor">#define zXMPUtils_SeparateArrayItems_1(xmpObj,schemaNS,arrayName,options,catedStr) \</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="preprocessor"> WXMPUtils_SeparateArrayItems_1 ( xmpObj, schemaNS, arrayName, options, catedStr, &amp;wResult );</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="WXMPUtils_8hpp.html#a862c949794995c58c9ad74737973b6ef"> 97</a></span>&#160;<span class="preprocessor">#define zXMPUtils_ApplyTemplate_1(workingXMP,templateXMP,actions) \</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor"> WXMPUtils_ApplyTemplate_1 ( workingXMP, templateXMP, actions, &amp;wResult );</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="WXMPUtils_8hpp.html#aeb44088490f2951c3491003796ec50a1"> 100</a></span>&#160;<span class="preprocessor">#define zXMPUtils_RemoveProperties_1(xmpObj,schemaNS,propName,options) \</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor"> WXMPUtils_RemoveProperties_1 ( xmpObj, schemaNS, propName, options, &amp;wResult );</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="WXMPUtils_8hpp.html#aa70282eba27fd239e2cfd561b88c08be"> 103</a></span>&#160;<span class="preprocessor">#define zXMPUtils_DuplicateSubtree_1(source,dest,sourceNS,sourceRoot,destNS,destRoot,options) \</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="preprocessor"> WXMPUtils_DuplicateSubtree_1 ( source, dest, sourceNS, sourceRoot, destNS, destRoot, options, &amp;wResult );</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPUtils_8hpp.html#ae6de22173661f35cf6926806cb052554">WXMPUtils_ComposeArrayItemPath_1</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName,</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="code" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a> itemIndex,</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordtype">void</span> * itemPath,</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="code" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString,</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPUtils_8hpp.html#a691c12dfc25a4bb4baf82195248ab1c3">WXMPUtils_ComposeStructFieldPath_1</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> structName,</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldNS,</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldName,</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordtype">void</span> * fieldPath,</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <a class="code" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString,</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPUtils_8hpp.html#a323219f2ccf286de50a5684a024a25d6">WXMPUtils_ComposeQualifierPath_1</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualNS,</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualName,</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordtype">void</span> * qualPath,</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString,</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPUtils_8hpp.html#af1bad4b3c7d72cff883c0ab0705e6c69">WXMPUtils_ComposeLangSelector_1</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName,</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> langName,</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordtype">void</span> * selPath,</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString,</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPUtils_8hpp.html#aa7b4576af21a7c816768f1983100d432">WXMPUtils_ComposeFieldSelector_1</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName,</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldNS,</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldName,</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldValue,</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordtype">void</span> * selPath,</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <a class="code" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString,</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="comment">// -------------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPUtils_8hpp.html#ad80db557044003d1eb9c692a8703dead">WXMPUtils_ConvertFromBool_1</a> ( <a class="code" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a> binValue,</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordtype">void</span> * strValue,</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <a class="code" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString,</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPUtils_8hpp.html#ab651b25af61aec9fee3100166911d6c7">WXMPUtils_ConvertFromInt_1</a> ( XMP_Int32 binValue,</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> format,</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordtype">void</span> * strValue,</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString,</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPUtils_8hpp.html#a180b0ae8451b9606003f1e6e38287ae8">WXMPUtils_ConvertFromInt64_1</a> ( XMP_Int64 binValue,</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> format,</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordtype">void</span> * strValue,</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <a class="code" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString,</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPUtils_8hpp.html#add25c775ebd8186f611365fb45c513df">WXMPUtils_ConvertFromFloat_1</a> ( <span class="keywordtype">double</span> binValue,</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> format,</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordtype">void</span> * strValue,</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <a class="code" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString,</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPUtils_8hpp.html#a2555ce5bb9789967eb75e591e83772fa">WXMPUtils_ConvertFromDate_1</a> ( <span class="keyword">const</span> <a class="code" href="structXMP__DateTime.html">XMP_DateTime</a> &amp; binValue,</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordtype">void</span> * strValue,</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <a class="code" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString,</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="comment">// -------------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPUtils_8hpp.html#ac6ea9e5527993203e86849e5d3699bcb">WXMPUtils_ConvertToBool_1</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> strValue,</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPUtils_8hpp.html#aabf211114925d9eba94089f811efe87a">WXMPUtils_ConvertToInt_1</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> strValue,</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPUtils_8hpp.html#a59b3c8316d21dde2b2b79863c7527f02">WXMPUtils_ConvertToInt64_1</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> strValue,</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPUtils_8hpp.html#a7614ad0bb2816ebfe794514f45a10c2e">WXMPUtils_ConvertToFloat_1</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> strValue,</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPUtils_8hpp.html#ace54acfb2efef9cc192791b8046f6b3d">WXMPUtils_ConvertToDate_1</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> strValue,</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="structXMP__DateTime.html">XMP_DateTime</a> * binValue,</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="comment">// -------------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPUtils_8hpp.html#a0b0bf2caafca6f06b8c84936ce4c27d8">WXMPUtils_CurrentDateTime_1</a> ( <a class="code" href="structXMP__DateTime.html">XMP_DateTime</a> * time,</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPUtils_8hpp.html#a777a7e3b9b0f8b7afab51e40dae3a921">WXMPUtils_SetTimeZone_1</a> ( <a class="code" href="structXMP__DateTime.html">XMP_DateTime</a> * time,</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPUtils_8hpp.html#a764cfb9c96b1e37dd108cb42014fd6b6">WXMPUtils_ConvertToUTCTime_1</a> ( <a class="code" href="structXMP__DateTime.html">XMP_DateTime</a> * time,</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPUtils_8hpp.html#a7812f80be0bfa177de3d0bb9d9bd5996">WXMPUtils_ConvertToLocalTime_1</a> ( <a class="code" href="structXMP__DateTime.html">XMP_DateTime</a> * time,</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPUtils_8hpp.html#ad0b48ebb31c439d092185aa2d4fbfc79">WXMPUtils_CompareDateTime_1</a> ( <span class="keyword">const</span> <a class="code" href="structXMP__DateTime.html">XMP_DateTime</a> &amp; left,</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keyword">const</span> <a class="code" href="structXMP__DateTime.html">XMP_DateTime</a> &amp; right,</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="comment">// -------------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPUtils_8hpp.html#a4d4fa0056f55d427c3a0c07f98b86172">WXMPUtils_EncodeToBase64_1</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> rawStr,</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <a class="code" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> rawLen,</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordtype">void</span> * encodedStr,</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <a class="code" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString,</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPUtils_8hpp.html#ad31b8453fb086269c1118c51501f2987">WXMPUtils_DecodeFromBase64_1</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> encodedStr,</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <a class="code" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> encodedLen,</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordtype">void</span> * rawStr,</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <a class="code" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString,</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="comment">// -------------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPUtils_8hpp.html#a1725e2cfd1509da540038ca426b98c8a">WXMPUtils_PackageForJPEG_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpObj,</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordtype">void</span> * stdStr,</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordtype">void</span> * extStr,</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordtype">void</span> * digestStr,</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <a class="code" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString,</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPUtils_8hpp.html#afc180986e0eb5c69a8acd7822780ebfb">WXMPUtils_MergeFromJPEG_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> fullXMP,</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> extendedXMP,</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="comment">// -------------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPUtils_8hpp.html#ae0b2234822da68ea00aeb7485aab9efe">WXMPUtils_CatenateArrayItems_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpObj,</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName,</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> separator,</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> quotes,</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options,</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordtype">void</span> * catedStr,</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <a class="code" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a> SetClientString,</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPUtils_8hpp.html#a29b7beb40cc51e935bd941eada601139">WXMPUtils_SeparateArrayItems_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpObj,</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName,</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options,</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> catedStr,</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPUtils_8hpp.html#a506f87a34b8f983115c3bbfb4eba46f2">WXMPUtils_ApplyTemplate_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> workingXMP,</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> templateXMP,</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options,</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPUtils_8hpp.html#a7cc3619ebbd1f2f7527488882729a0cb">WXMPUtils_RemoveProperties_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpObj,</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options,</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<a class="code" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a> <a class="code" href="WXMPUtils_8hpp.html#a4a0f5534dae4f34f3b1a233eb04ac54e">WXMPUtils_DuplicateSubtree_1</a> ( <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> source,</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> dest,</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> sourceNS,</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> sourceRoot,</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> destNS,</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> destRoot,</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options,</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <a class="code" href="structWXMP__Result.html">WXMP_Result</a> * wResult );</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="preprocessor">#if __cplusplus</span></div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;} <span class="comment">/* extern &quot;C&quot; */</span></div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;<span class="preprocessor">#endif // __WXMPUtils_hpp__</span></div><div class="ttc" id="WXMP__Common_8hpp_html"><div class="ttname"><a href="WXMP__Common_8hpp.html">WXMP_Common.hpp</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a9f7dcc184f901c713274edfdac5bcc9a"><div class="ttname"><a href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a></div><div class="ttdeci">XMP_Uns32 XMP_StringLen</div><div class="ttdoc">The type for string length parameters. A 32-bit unsigned integer, as big as will be practically neede...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00170">XMP_Const.h:170</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a00e9d9a76c144421105a4c2742203315"><div class="ttname"><a href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a></div><div class="ttdeci">XMP_Int32 XMP_Index</div><div class="ttdoc">The type for offsets and indices. A 32-bit signed integer. It is signed to allow -1 for loop terminat...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00171">XMP_Const.h:171</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_ad439e3ceeb4590d310f6125aa12c6df6"><div class="ttname"><a href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a></div><div class="ttdeci">const char * XMP_StringPtr</div><div class="ttdoc">The type for input string parameters. A const char *, a null-terminated UTF-8 string. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00169">XMP_Const.h:169</a></div></div>
+<div class="ttc" id="WXMPUtils_8hpp_html_a59b3c8316d21dde2b2b79863c7527f02"><div class="ttname"><a href="WXMPUtils_8hpp.html#a59b3c8316d21dde2b2b79863c7527f02">WXMPUtils_ConvertToInt64_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPUtils_ConvertToInt64_1(XMP_StringPtr strValue, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPUtils_8hpp_html_a0b0bf2caafca6f06b8c84936ce4c27d8"><div class="ttname"><a href="WXMPUtils_8hpp.html#a0b0bf2caafca6f06b8c84936ce4c27d8">WXMPUtils_CurrentDateTime_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPUtils_CurrentDateTime_1(XMP_DateTime *time, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPUtils_8hpp_html_ad80db557044003d1eb9c692a8703dead"><div class="ttname"><a href="WXMPUtils_8hpp.html#ad80db557044003d1eb9c692a8703dead">WXMPUtils_ConvertFromBool_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPUtils_ConvertFromBool_1(XMP_Bool binValue, void *strValue, SetClientStringProc SetClientString, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPUtils_8hpp_html_a323219f2ccf286de50a5684a024a25d6"><div class="ttname"><a href="WXMPUtils_8hpp.html#a323219f2ccf286de50a5684a024a25d6">WXMPUtils_ComposeQualifierPath_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPUtils_ComposeQualifierPath_1(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_StringPtr qualNS, XMP_StringPtr qualName, void *qualPath, SetClientStringProc SetClientString, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="XMP__Environment_8h_html_aac6a4810b1f485f147ab833be63f4d7b"><div class="ttname"><a href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a></div><div class="ttdeci">#define XMP_PUBLIC</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Environment_8h_source.html#l00188">XMP_Environment.h:188</a></div></div>
+<div class="ttc" id="WXMPUtils_8hpp_html_a7812f80be0bfa177de3d0bb9d9bd5996"><div class="ttname"><a href="WXMPUtils_8hpp.html#a7812f80be0bfa177de3d0bb9d9bd5996">WXMPUtils_ConvertToLocalTime_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPUtils_ConvertToLocalTime_1(XMP_DateTime *time, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPUtils_8hpp_html_ac6ea9e5527993203e86849e5d3699bcb"><div class="ttname"><a href="WXMPUtils_8hpp.html#ac6ea9e5527993203e86849e5d3699bcb">WXMPUtils_ConvertToBool_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPUtils_ConvertToBool_1(XMP_StringPtr strValue, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPUtils_8hpp_html_ab651b25af61aec9fee3100166911d6c7"><div class="ttname"><a href="WXMPUtils_8hpp.html#ab651b25af61aec9fee3100166911d6c7">WXMPUtils_ConvertFromInt_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPUtils_ConvertFromInt_1(XMP_Int32 binValue, XMP_StringPtr format, void *strValue, SetClientStringProc SetClientString, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPUtils_8hpp_html_a506f87a34b8f983115c3bbfb4eba46f2"><div class="ttname"><a href="WXMPUtils_8hpp.html#a506f87a34b8f983115c3bbfb4eba46f2">WXMPUtils_ApplyTemplate_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPUtils_ApplyTemplate_1(XMPMetaRef workingXMP, XMPMetaRef templateXMP, XMP_OptionBits options, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPUtils_8hpp_html_ad0b48ebb31c439d092185aa2d4fbfc79"><div class="ttname"><a href="WXMPUtils_8hpp.html#ad0b48ebb31c439d092185aa2d4fbfc79">WXMPUtils_CompareDateTime_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPUtils_CompareDateTime_1(const XMP_DateTime &amp;left, const XMP_DateTime &amp;right, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPUtils_8hpp_html_ace54acfb2efef9cc192791b8046f6b3d"><div class="ttname"><a href="WXMPUtils_8hpp.html#ace54acfb2efef9cc192791b8046f6b3d">WXMPUtils_ConvertToDate_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPUtils_ConvertToDate_1(XMP_StringPtr strValue, XMP_DateTime *binValue, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="structXMP__DateTime_html"><div class="ttname"><a href="structXMP__DateTime.html">XMP_DateTime</a></div><div class="ttdoc">The expanded type for a date and time. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00223">XMP_Const.h:223</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_aeb865118433be92d88e5f49ed11487c8"><div class="ttname"><a href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a></div><div class="ttdeci">XMP_Uns32 XMP_OptionBits</div><div class="ttdoc">The type for a collection of 32 flag bits. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00172">XMP_Const.h:172</a></div></div>
+<div class="ttc" id="WXMPUtils_8hpp_html_a777a7e3b9b0f8b7afab51e40dae3a921"><div class="ttname"><a href="WXMPUtils_8hpp.html#a777a7e3b9b0f8b7afab51e40dae3a921">WXMPUtils_SetTimeZone_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPUtils_SetTimeZone_1(XMP_DateTime *time, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="XMP__Const_8h_html_a0cf68b6f47d136ed571a441a9e0d2248"><div class="ttname"><a href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a></div><div class="ttdeci">XMP_Uns8 XMP_Bool</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00102">XMP_Const.h:102</a></div></div>
+<div class="ttc" id="WXMP__Common_8hpp_html_ae22e640b3404ce206ad1678841bcd11f"><div class="ttname"><a href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a></div><div class="ttdeci">void(* SetClientStringProc)(void *clientPtr, XMP_StringPtr valuePtr, XMP_StringLen valueLen)</div><div class="ttdef"><b>Definition:</b> <a href="WXMP__Common_8hpp_source.html#l00023">WXMP_Common.hpp:23</a></div></div>
+<div class="ttc" id="WXMPUtils_8hpp_html_a29b7beb40cc51e935bd941eada601139"><div class="ttname"><a href="WXMPUtils_8hpp.html#a29b7beb40cc51e935bd941eada601139">WXMPUtils_SeparateArrayItems_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPUtils_SeparateArrayItems_1(XMPMetaRef xmpObj, XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_OptionBits options, XMP_StringPtr catedStr, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPUtils_8hpp_html_a1725e2cfd1509da540038ca426b98c8a"><div class="ttname"><a href="WXMPUtils_8hpp.html#a1725e2cfd1509da540038ca426b98c8a">WXMPUtils_PackageForJPEG_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPUtils_PackageForJPEG_1(XMPMetaRef xmpObj, void *stdStr, void *extStr, void *digestStr, SetClientStringProc SetClientString, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPUtils_8hpp_html_a7cc3619ebbd1f2f7527488882729a0cb"><div class="ttname"><a href="WXMPUtils_8hpp.html#a7cc3619ebbd1f2f7527488882729a0cb">WXMPUtils_RemoveProperties_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPUtils_RemoveProperties_1(XMPMetaRef xmpObj, XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_OptionBits options, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="structWXMP__Result_html"><div class="ttname"><a href="structWXMP__Result.html">WXMP_Result</a></div><div class="ttdef"><b>Definition:</b> <a href="WXMP__Common_8hpp_source.html#l00026">WXMP_Common.hpp:26</a></div></div>
+<div class="ttc" id="WXMPUtils_8hpp_html_af1bad4b3c7d72cff883c0ab0705e6c69"><div class="ttname"><a href="WXMPUtils_8hpp.html#af1bad4b3c7d72cff883c0ab0705e6c69">WXMPUtils_ComposeLangSelector_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPUtils_ComposeLangSelector_1(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_StringPtr langName, void *selPath, SetClientStringProc SetClientString, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPUtils_8hpp_html_aabf211114925d9eba94089f811efe87a"><div class="ttname"><a href="WXMPUtils_8hpp.html#aabf211114925d9eba94089f811efe87a">WXMPUtils_ConvertToInt_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPUtils_ConvertToInt_1(XMP_StringPtr strValue, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPUtils_8hpp_html_ae6de22173661f35cf6926806cb052554"><div class="ttname"><a href="WXMPUtils_8hpp.html#ae6de22173661f35cf6926806cb052554">WXMPUtils_ComposeArrayItemPath_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPUtils_ComposeArrayItemPath_1(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_Index itemIndex, void *itemPath, SetClientStringProc SetClientString, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPUtils_8hpp_html_a764cfb9c96b1e37dd108cb42014fd6b6"><div class="ttname"><a href="WXMPUtils_8hpp.html#a764cfb9c96b1e37dd108cb42014fd6b6">WXMPUtils_ConvertToUTCTime_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPUtils_ConvertToUTCTime_1(XMP_DateTime *time, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPUtils_8hpp_html_a180b0ae8451b9606003f1e6e38287ae8"><div class="ttname"><a href="WXMPUtils_8hpp.html#a180b0ae8451b9606003f1e6e38287ae8">WXMPUtils_ConvertFromInt64_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPUtils_ConvertFromInt64_1(XMP_Int64 binValue, XMP_StringPtr format, void *strValue, SetClientStringProc SetClientString, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPUtils_8hpp_html_a2555ce5bb9789967eb75e591e83772fa"><div class="ttname"><a href="WXMPUtils_8hpp.html#a2555ce5bb9789967eb75e591e83772fa">WXMPUtils_ConvertFromDate_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPUtils_ConvertFromDate_1(const XMP_DateTime &amp;binValue, void *strValue, SetClientStringProc SetClientString, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPUtils_8hpp_html_a4a0f5534dae4f34f3b1a233eb04ac54e"><div class="ttname"><a href="WXMPUtils_8hpp.html#a4a0f5534dae4f34f3b1a233eb04ac54e">WXMPUtils_DuplicateSubtree_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPUtils_DuplicateSubtree_1(XMPMetaRef source, XMPMetaRef dest, XMP_StringPtr sourceNS, XMP_StringPtr sourceRoot, XMP_StringPtr destNS, XMP_StringPtr destRoot, XMP_OptionBits options, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPUtils_8hpp_html_a7614ad0bb2816ebfe794514f45a10c2e"><div class="ttname"><a href="WXMPUtils_8hpp.html#a7614ad0bb2816ebfe794514f45a10c2e">WXMPUtils_ConvertToFloat_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPUtils_ConvertToFloat_1(XMP_StringPtr strValue, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPUtils_8hpp_html_a4d4fa0056f55d427c3a0c07f98b86172"><div class="ttname"><a href="WXMPUtils_8hpp.html#a4d4fa0056f55d427c3a0c07f98b86172">WXMPUtils_EncodeToBase64_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPUtils_EncodeToBase64_1(XMP_StringPtr rawStr, XMP_StringLen rawLen, void *encodedStr, SetClientStringProc SetClientString, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPUtils_8hpp_html_afc180986e0eb5c69a8acd7822780ebfb"><div class="ttname"><a href="WXMPUtils_8hpp.html#afc180986e0eb5c69a8acd7822780ebfb">WXMPUtils_MergeFromJPEG_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPUtils_MergeFromJPEG_1(XMPMetaRef fullXMP, XMPMetaRef extendedXMP, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPUtils_8hpp_html_aa7b4576af21a7c816768f1983100d432"><div class="ttname"><a href="WXMPUtils_8hpp.html#aa7b4576af21a7c816768f1983100d432">WXMPUtils_ComposeFieldSelector_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPUtils_ComposeFieldSelector_1(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_StringPtr fieldNS, XMP_StringPtr fieldName, XMP_StringPtr fieldValue, void *selPath, SetClientStringProc SetClientString, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPUtils_8hpp_html_add25c775ebd8186f611365fb45c513df"><div class="ttname"><a href="WXMPUtils_8hpp.html#add25c775ebd8186f611365fb45c513df">WXMPUtils_ConvertFromFloat_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPUtils_ConvertFromFloat_1(double binValue, XMP_StringPtr format, void *strValue, SetClientStringProc SetClientString, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPUtils_8hpp_html_ae0b2234822da68ea00aeb7485aab9efe"><div class="ttname"><a href="WXMPUtils_8hpp.html#ae0b2234822da68ea00aeb7485aab9efe">WXMPUtils_CatenateArrayItems_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPUtils_CatenateArrayItems_1(XMPMetaRef xmpObj, XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_StringPtr separator, XMP_StringPtr quotes, XMP_OptionBits options, void *catedStr, SetClientStringProc SetClientString, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="WXMPUtils_8hpp_html_a691c12dfc25a4bb4baf82195248ab1c3"><div class="ttname"><a href="WXMPUtils_8hpp.html#a691c12dfc25a4bb4baf82195248ab1c3">WXMPUtils_ComposeStructFieldPath_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPUtils_ComposeStructFieldPath_1(XMP_StringPtr schemaNS, XMP_StringPtr structName, XMP_StringPtr fieldNS, XMP_StringPtr fieldName, void *fieldPath, SetClientStringProc SetClientString, WXMP_Result *wResult)</div></div>
+<div class="ttc" id="XMP__Const_8h_html_a549d5e2cbcb58302d3df840a0205283e"><div class="ttname"><a href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a></div><div class="ttdeci">struct __XMPMeta__ * XMPMetaRef</div><div class="ttdoc">An &quot;ABI safe&quot; pointer to the internal part of an XMP object. Use to pass an XMP object across client ...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00130">XMP_Const.h:130</a></div></div>
+<div class="ttc" id="WXMPUtils_8hpp_html_ad31b8453fb086269c1118c51501f2987"><div class="ttname"><a href="WXMPUtils_8hpp.html#ad31b8453fb086269c1118c51501f2987">WXMPUtils_DecodeFromBase64_1</a></div><div class="ttdeci">void XMP_PUBLIC WXMPUtils_DecodeFromBase64_1(XMP_StringPtr encodedStr, XMP_StringLen encodedLen, void *rawStr, SetClientStringProc SetClientString, WXMP_Result *wResult)</div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/WXMP__Common_8hpp.html b/docs/API/WXMP__Common_8hpp.html
new file mode 100755
index 0000000..9534054
--- /dev/null
+++ b/docs/API/WXMP__Common_8hpp.html
@@ -0,0 +1,706 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/client-glue/WXMP_Common.hpp File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('WXMP__Common_8hpp.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#define-members">Macros</a> &#124;
+<a href="#typedef-members">Typedefs</a> </div>
+ <div class="headertitle">
+<div class="title">WXMP_Common.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="WXMP__Common_8hpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structWXMP__Result.html">WXMP_Result</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a92bfba5db10b3ea02b3ad736c8e11dc7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMP__Common_8hpp.html#a92bfba5db10b3ea02b3ad736c8e11dc7">__WXMP_Common_hpp__</a>&#160;&#160;&#160;1</td></tr>
+<tr class="separator:a92bfba5db10b3ea02b3ad736c8e11dc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acfcb026582fc145095d3667241515353"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMP__Common_8hpp.html#acfcb026582fc145095d3667241515353">XMP_Inline</a>&#160;&#160;&#160;/* not inline */</td></tr>
+<tr class="separator:acfcb026582fc145095d3667241515353"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a360e92875f1147e47c365950a6560d6c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMP__Common_8hpp.html#a360e92875f1147e47c365950a6560d6c">XMP_CTorDTorIntro</a>(Class)&#160;&#160;&#160;template &lt;class tStringObj&gt; <a class="el" href="WXMP__Common_8hpp.html#acfcb026582fc145095d3667241515353">XMP_Inline</a> Class&lt;tStringObj&gt;</td></tr>
+<tr class="separator:a360e92875f1147e47c365950a6560d6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9874672542b6adee728f1176b565c141"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMP__Common_8hpp.html#a9874672542b6adee728f1176b565c141">XMP_MethodIntro</a>(Class, ResultType)&#160;&#160;&#160;template &lt;class tStringObj&gt; <a class="el" href="WXMP__Common_8hpp.html#acfcb026582fc145095d3667241515353">XMP_Inline</a> ResultType Class&lt;tStringObj&gt;</td></tr>
+<tr class="separator:a9874672542b6adee728f1176b565c141"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5dfbc13f3139cae2812a1cf0c979999c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMP__Common_8hpp.html#a5dfbc13f3139cae2812a1cf0c979999c">PropagateException</a>(res)&#160;&#160;&#160;if ( res.errMessage != 0 ) throw <a class="el" href="classXMP__Error.html">XMP_Error</a> ( res.int32Result, res.errMessage );</td></tr>
+<tr class="separator:a5dfbc13f3139cae2812a1cf0c979999c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a803c218d593737c645bbea4bf80dd815"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMP__Common_8hpp.html#a803c218d593737c645bbea4bf80dd815">XMP_TraceClientCalls</a>&#160;&#160;&#160;0</td></tr>
+<tr class="separator:a803c218d593737c645bbea4bf80dd815"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aab5f92f08cddd67ae7c8bab22b4f0dd7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMP__Common_8hpp.html#aab5f92f08cddd67ae7c8bab22b4f0dd7">XMP_TraceClientCallsToFile</a>&#160;&#160;&#160;0</td></tr>
+<tr class="separator:aab5f92f08cddd67ae7c8bab22b4f0dd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a58d0e4857f5a40d6a82eb480832d068e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMP__Common_8hpp.html#a58d0e4857f5a40d6a82eb480832d068e">InvokeCheck</a>(WCallProto)</td></tr>
+<tr class="separator:a58d0e4857f5a40d6a82eb480832d068e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ade570a6b1a2c59e509c71b5e82df6f80"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMP__Common_8hpp.html#ade570a6b1a2c59e509c71b5e82df6f80">WrapNoCheckVoid</a>(WCallProto)&#160;&#160;&#160;WCallProto;</td></tr>
+<tr class="separator:ade570a6b1a2c59e509c71b5e82df6f80"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a683fa38b9541eb26f91304087acad44d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMP__Common_8hpp.html#a683fa38b9541eb26f91304087acad44d">WrapCheckVoid</a>(WCallProto)&#160;&#160;&#160;<a class="el" href="WXMP__Common_8hpp.html#a58d0e4857f5a40d6a82eb480832d068e">InvokeCheck</a>(WCallProto);</td></tr>
+<tr class="separator:a683fa38b9541eb26f91304087acad44d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2cb35fa2967a5bce3686dde786db8210"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMP__Common_8hpp.html#a2cb35fa2967a5bce3686dde786db8210">WrapCheckMetaRef</a>(result, WCallProto)</td></tr>
+<tr class="separator:a2cb35fa2967a5bce3686dde786db8210"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a08838e2c5bcb3f4547172b4cce27a4a4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMP__Common_8hpp.html#a08838e2c5bcb3f4547172b4cce27a4a4">WrapCheckIterRef</a>(result, WCallProto)</td></tr>
+<tr class="separator:a08838e2c5bcb3f4547172b4cce27a4a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00bbfd8bed08cc3ef59534e66a7e55f8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMP__Common_8hpp.html#a00bbfd8bed08cc3ef59534e66a7e55f8">WrapCheckDocOpsRef</a>(result, WCallProto)</td></tr>
+<tr class="separator:a00bbfd8bed08cc3ef59534e66a7e55f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab7a2f115c6388749a3e20928978d3874"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMP__Common_8hpp.html#ab7a2f115c6388749a3e20928978d3874">WrapCheckNewMetadata</a>(result, WCallProto)</td></tr>
+<tr class="separator:ab7a2f115c6388749a3e20928978d3874"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a31e0519b68ec7cb1f4e54cd480dbc6bd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMP__Common_8hpp.html#a31e0519b68ec7cb1f4e54cd480dbc6bd">WrapCheckBool</a>(result, WCallProto)</td></tr>
+<tr class="separator:a31e0519b68ec7cb1f4e54cd480dbc6bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3ade7afea8e0dd088c4322680712246a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMP__Common_8hpp.html#a3ade7afea8e0dd088c4322680712246a">WrapCheckTriState</a>(result, WCallProto)</td></tr>
+<tr class="separator:a3ade7afea8e0dd088c4322680712246a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab0186f6247d7b051f1ab263c461c14c0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMP__Common_8hpp.html#ab0186f6247d7b051f1ab263c461c14c0">WrapCheckOptions</a>(result, WCallProto)</td></tr>
+<tr class="separator:ab0186f6247d7b051f1ab263c461c14c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa5157be6b847c59d15e166d6fc7d392d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMP__Common_8hpp.html#aa5157be6b847c59d15e166d6fc7d392d">WrapCheckStatus</a>(result, WCallProto)</td></tr>
+<tr class="separator:aa5157be6b847c59d15e166d6fc7d392d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae20f3a4940eeddcf29a174c86be91788"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMP__Common_8hpp.html#ae20f3a4940eeddcf29a174c86be91788">WrapCheckIndex</a>(result, WCallProto)</td></tr>
+<tr class="separator:ae20f3a4940eeddcf29a174c86be91788"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a18b3cd640d64484f12de7f0367d4ccb2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMP__Common_8hpp.html#a18b3cd640d64484f12de7f0367d4ccb2">WrapCheckInt32</a>(result, WCallProto)</td></tr>
+<tr class="separator:a18b3cd640d64484f12de7f0367d4ccb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a22af7eda5280ca99f2c2e48b20ee4c74"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMP__Common_8hpp.html#a22af7eda5280ca99f2c2e48b20ee4c74">WrapCheckInt64</a>(result, WCallProto)</td></tr>
+<tr class="separator:a22af7eda5280ca99f2c2e48b20ee4c74"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0f0d9f01db5db9c03a3432d3fb43b86a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMP__Common_8hpp.html#a0f0d9f01db5db9c03a3432d3fb43b86a">WrapCheckFloat</a>(result, WCallProto)</td></tr>
+<tr class="separator:a0f0d9f01db5db9c03a3432d3fb43b86a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a75478cb5e5f458cd440d87c650dd3673"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMP__Common_8hpp.html#a75478cb5e5f458cd440d87c650dd3673">WrapCheckFormat</a>(result, WCallProto)</td></tr>
+<tr class="separator:a75478cb5e5f458cd440d87c650dd3673"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:ae22e640b3404ce206ad1678841bcd11f"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a>) (void *clientPtr, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> valuePtr, <a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> valueLen)</td></tr>
+<tr class="separator:ae22e640b3404ce206ad1678841bcd11f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a657cdd79947744b4c123bf9df9ac1b60"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMP__Common_8hpp.html#a657cdd79947744b4c123bf9df9ac1b60">SetClientStringVectorProc</a>) (void *clientPtr, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> *arrayPtr, XMP_Uns32 stringCount)</td></tr>
+<tr class="separator:a657cdd79947744b4c123bf9df9ac1b60"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="a92bfba5db10b3ea02b3ad736c8e11dc7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define __WXMP_Common_hpp__&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMP__Common_8hpp_source.html#l00002">2</a> of file <a class="el" href="WXMP__Common_8hpp_source.html">WXMP_Common.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a58d0e4857f5a40d6a82eb480832d068e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define InvokeCheck</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">WCallProto</td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<b>Value:</b><div class="fragment"><div class="line"><a class="code" href="structWXMP__Result.html">WXMP_Result</a> wResult; \</div><div class="line"> WCallProto; <a class="code" href="WXMP__Common_8hpp.html#a5dfbc13f3139cae2812a1cf0c979999c">\</a></div><div class="line"><a class="code" href="WXMP__Common_8hpp.html#a5dfbc13f3139cae2812a1cf0c979999c"> PropagateException</a> ( wResult )</div><div class="ttc" id="WXMP__Common_8hpp_html_a5dfbc13f3139cae2812a1cf0c979999c"><div class="ttname"><a href="WXMP__Common_8hpp.html#a5dfbc13f3139cae2812a1cf0c979999c">PropagateException</a></div><div class="ttdeci">#define PropagateException(res)</div><div class="ttdef"><b>Definition:</b> <a href="WXMP__Common_8hpp_source.html#l00039">WXMP_Common.hpp:39</a></div></div>
+<div class="ttc" id="structWXMP__Result_html"><div class="ttname"><a href="structWXMP__Result.html">WXMP_Result</a></div><div class="ttdef"><b>Definition:</b> <a href="WXMP__Common_8hpp_source.html#l00026">WXMP_Common.hpp:26</a></div></div>
+</div><!-- fragment -->
+<p>Definition at line <a class="el" href="WXMP__Common_8hpp_source.html#l00048">48</a> of file <a class="el" href="WXMP__Common_8hpp_source.html">WXMP_Common.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5dfbc13f3139cae2812a1cf0c979999c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define PropagateException</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">res</td><td>)</td>
+ <td>&#160;&#160;&#160;if ( res.errMessage != 0 ) throw <a class="el" href="classXMP__Error.html">XMP_Error</a> ( res.int32Result, res.errMessage );</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMP__Common_8hpp_source.html#l00039">39</a> of file <a class="el" href="WXMP__Common_8hpp_source.html">WXMP_Common.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a31e0519b68ec7cb1f4e54cd480dbc6bd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define WrapCheckBool</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">result, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">WCallProto&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<b>Value:</b><div class="fragment"><div class="line"><a class="code" href="WXMP__Common_8hpp.html#a58d0e4857f5a40d6a82eb480832d068e">InvokeCheck</a>(WCallProto); \</div><div class="line"> bool result = bool(wResult.int32Result)</div><div class="ttc" id="WXMP__Common_8hpp_html_a58d0e4857f5a40d6a82eb480832d068e"><div class="ttname"><a href="WXMP__Common_8hpp.html#a58d0e4857f5a40d6a82eb480832d068e">InvokeCheck</a></div><div class="ttdeci">#define InvokeCheck(WCallProto)</div><div class="ttdef"><b>Definition:</b> <a href="WXMP__Common_8hpp_source.html#l00048">WXMP_Common.hpp:48</a></div></div>
+</div><!-- fragment -->
+<p>Definition at line <a class="el" href="WXMP__Common_8hpp_source.html#l00090">90</a> of file <a class="el" href="WXMP__Common_8hpp_source.html">WXMP_Common.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a00bbfd8bed08cc3ef59534e66a7e55f8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define WrapCheckDocOpsRef</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">result, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">WCallProto&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<b>Value:</b><div class="fragment"><div class="line"><a class="code" href="WXMP__Common_8hpp.html#a58d0e4857f5a40d6a82eb480832d068e">InvokeCheck</a>(WCallProto); \</div><div class="line"> XMPDocOpsRef result = <a class="code" href="XMP__Const_8h.html#ab516453dd7d906e911f8951983cde5f1">XMPDocOpsRef</a>(wResult.ptrResult)</div><div class="ttc" id="XMP__Const_8h_html_ab516453dd7d906e911f8951983cde5f1"><div class="ttname"><a href="XMP__Const_8h.html#ab516453dd7d906e911f8951983cde5f1">XMPDocOpsRef</a></div><div class="ttdeci">struct __XMPDocOps__ * XMPDocOpsRef</div><div class="ttdoc">An &quot;ABI safe&quot; pointer to the internal part of an XMP document operations object. Use to pass an XMP d...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00138">XMP_Const.h:138</a></div></div>
+<div class="ttc" id="WXMP__Common_8hpp_html_a58d0e4857f5a40d6a82eb480832d068e"><div class="ttname"><a href="WXMP__Common_8hpp.html#a58d0e4857f5a40d6a82eb480832d068e">InvokeCheck</a></div><div class="ttdeci">#define InvokeCheck(WCallProto)</div><div class="ttdef"><b>Definition:</b> <a href="WXMP__Common_8hpp_source.html#l00048">WXMP_Common.hpp:48</a></div></div>
+</div><!-- fragment -->
+<p>Definition at line <a class="el" href="WXMP__Common_8hpp_source.html#l00082">82</a> of file <a class="el" href="WXMP__Common_8hpp_source.html">WXMP_Common.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0f0d9f01db5db9c03a3432d3fb43b86a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define WrapCheckFloat</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">result, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">WCallProto&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<b>Value:</b><div class="fragment"><div class="line"><a class="code" href="WXMP__Common_8hpp.html#a58d0e4857f5a40d6a82eb480832d068e">InvokeCheck</a>(WCallProto); \</div><div class="line"> double result = wResult.floatResult</div><div class="ttc" id="WXMP__Common_8hpp_html_a58d0e4857f5a40d6a82eb480832d068e"><div class="ttname"><a href="WXMP__Common_8hpp.html#a58d0e4857f5a40d6a82eb480832d068e">InvokeCheck</a></div><div class="ttdeci">#define InvokeCheck(WCallProto)</div><div class="ttdef"><b>Definition:</b> <a href="WXMP__Common_8hpp_source.html#l00048">WXMP_Common.hpp:48</a></div></div>
+</div><!-- fragment -->
+<p>Definition at line <a class="el" href="WXMP__Common_8hpp_source.html#l00118">118</a> of file <a class="el" href="WXMP__Common_8hpp_source.html">WXMP_Common.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a75478cb5e5f458cd440d87c650dd3673"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define WrapCheckFormat</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">result, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">WCallProto&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<b>Value:</b><div class="fragment"><div class="line"><a class="code" href="WXMP__Common_8hpp.html#a58d0e4857f5a40d6a82eb480832d068e">InvokeCheck</a>(WCallProto); \</div><div class="line"> XMP_FileFormat result = wResult.int32Result</div><div class="ttc" id="WXMP__Common_8hpp_html_a58d0e4857f5a40d6a82eb480832d068e"><div class="ttname"><a href="WXMP__Common_8hpp.html#a58d0e4857f5a40d6a82eb480832d068e">InvokeCheck</a></div><div class="ttdeci">#define InvokeCheck(WCallProto)</div><div class="ttdef"><b>Definition:</b> <a href="WXMP__Common_8hpp_source.html#l00048">WXMP_Common.hpp:48</a></div></div>
+</div><!-- fragment -->
+<p>Definition at line <a class="el" href="WXMP__Common_8hpp_source.html#l00122">122</a> of file <a class="el" href="WXMP__Common_8hpp_source.html">WXMP_Common.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae20f3a4940eeddcf29a174c86be91788"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define WrapCheckIndex</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">result, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">WCallProto&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<b>Value:</b><div class="fragment"><div class="line"><a class="code" href="WXMP__Common_8hpp.html#a58d0e4857f5a40d6a82eb480832d068e">InvokeCheck</a>(WCallProto); \</div><div class="line"> XMP_Index result = <a class="code" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a>(wResult.int32Result)</div><div class="ttc" id="XMP__Const_8h_html_a00e9d9a76c144421105a4c2742203315"><div class="ttname"><a href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a></div><div class="ttdeci">XMP_Int32 XMP_Index</div><div class="ttdoc">The type for offsets and indices. A 32-bit signed integer. It is signed to allow -1 for loop terminat...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00171">XMP_Const.h:171</a></div></div>
+<div class="ttc" id="WXMP__Common_8hpp_html_a58d0e4857f5a40d6a82eb480832d068e"><div class="ttname"><a href="WXMP__Common_8hpp.html#a58d0e4857f5a40d6a82eb480832d068e">InvokeCheck</a></div><div class="ttdeci">#define InvokeCheck(WCallProto)</div><div class="ttdef"><b>Definition:</b> <a href="WXMP__Common_8hpp_source.html#l00048">WXMP_Common.hpp:48</a></div></div>
+</div><!-- fragment -->
+<p>Definition at line <a class="el" href="WXMP__Common_8hpp_source.html#l00106">106</a> of file <a class="el" href="WXMP__Common_8hpp_source.html">WXMP_Common.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a18b3cd640d64484f12de7f0367d4ccb2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define WrapCheckInt32</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">result, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">WCallProto&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<b>Value:</b><div class="fragment"><div class="line"><a class="code" href="WXMP__Common_8hpp.html#a58d0e4857f5a40d6a82eb480832d068e">InvokeCheck</a>(WCallProto); \</div><div class="line"> XMP_Int32 result = wResult.int32Result</div><div class="ttc" id="WXMP__Common_8hpp_html_a58d0e4857f5a40d6a82eb480832d068e"><div class="ttname"><a href="WXMP__Common_8hpp.html#a58d0e4857f5a40d6a82eb480832d068e">InvokeCheck</a></div><div class="ttdeci">#define InvokeCheck(WCallProto)</div><div class="ttdef"><b>Definition:</b> <a href="WXMP__Common_8hpp_source.html#l00048">WXMP_Common.hpp:48</a></div></div>
+</div><!-- fragment -->
+<p>Definition at line <a class="el" href="WXMP__Common_8hpp_source.html#l00110">110</a> of file <a class="el" href="WXMP__Common_8hpp_source.html">WXMP_Common.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a22af7eda5280ca99f2c2e48b20ee4c74"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define WrapCheckInt64</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">result, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">WCallProto&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<b>Value:</b><div class="fragment"><div class="line"><a class="code" href="WXMP__Common_8hpp.html#a58d0e4857f5a40d6a82eb480832d068e">InvokeCheck</a>(WCallProto); \</div><div class="line"> XMP_Int64 result = wResult.int64Result</div><div class="ttc" id="WXMP__Common_8hpp_html_a58d0e4857f5a40d6a82eb480832d068e"><div class="ttname"><a href="WXMP__Common_8hpp.html#a58d0e4857f5a40d6a82eb480832d068e">InvokeCheck</a></div><div class="ttdeci">#define InvokeCheck(WCallProto)</div><div class="ttdef"><b>Definition:</b> <a href="WXMP__Common_8hpp_source.html#l00048">WXMP_Common.hpp:48</a></div></div>
+</div><!-- fragment -->
+<p>Definition at line <a class="el" href="WXMP__Common_8hpp_source.html#l00114">114</a> of file <a class="el" href="WXMP__Common_8hpp_source.html">WXMP_Common.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a08838e2c5bcb3f4547172b4cce27a4a4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define WrapCheckIterRef</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">result, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">WCallProto&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<b>Value:</b><div class="fragment"><div class="line"><a class="code" href="WXMP__Common_8hpp.html#a58d0e4857f5a40d6a82eb480832d068e">InvokeCheck</a>(WCallProto); \</div><div class="line"> XMPIteratorRef result = <a class="code" href="XMP__Const_8h.html#a6ade57a30fb1e40d6aa9695c440fc3d2">XMPIteratorRef</a>(wResult.ptrResult)</div><div class="ttc" id="XMP__Const_8h_html_a6ade57a30fb1e40d6aa9695c440fc3d2"><div class="ttname"><a href="XMP__Const_8h.html#a6ade57a30fb1e40d6aa9695c440fc3d2">XMPIteratorRef</a></div><div class="ttdeci">struct __XMPIterator__ * XMPIteratorRef</div><div class="ttdoc">An &quot;ABI safe&quot; pointer to the internal part of an XMP iteration object. Use to pass an XMP iteration o...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00134">XMP_Const.h:134</a></div></div>
+<div class="ttc" id="WXMP__Common_8hpp_html_a58d0e4857f5a40d6a82eb480832d068e"><div class="ttname"><a href="WXMP__Common_8hpp.html#a58d0e4857f5a40d6a82eb480832d068e">InvokeCheck</a></div><div class="ttdeci">#define InvokeCheck(WCallProto)</div><div class="ttdef"><b>Definition:</b> <a href="WXMP__Common_8hpp_source.html#l00048">WXMP_Common.hpp:48</a></div></div>
+</div><!-- fragment -->
+<p>Definition at line <a class="el" href="WXMP__Common_8hpp_source.html#l00078">78</a> of file <a class="el" href="WXMP__Common_8hpp_source.html">WXMP_Common.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2cb35fa2967a5bce3686dde786db8210"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define WrapCheckMetaRef</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">result, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">WCallProto&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<b>Value:</b><div class="fragment"><div class="line"><a class="code" href="WXMP__Common_8hpp.html#a58d0e4857f5a40d6a82eb480832d068e">InvokeCheck</a>(WCallProto); \</div><div class="line"> XMPMetaRef result = <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>(wResult.ptrResult)</div><div class="ttc" id="WXMP__Common_8hpp_html_a58d0e4857f5a40d6a82eb480832d068e"><div class="ttname"><a href="WXMP__Common_8hpp.html#a58d0e4857f5a40d6a82eb480832d068e">InvokeCheck</a></div><div class="ttdeci">#define InvokeCheck(WCallProto)</div><div class="ttdef"><b>Definition:</b> <a href="WXMP__Common_8hpp_source.html#l00048">WXMP_Common.hpp:48</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a549d5e2cbcb58302d3df840a0205283e"><div class="ttname"><a href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a></div><div class="ttdeci">struct __XMPMeta__ * XMPMetaRef</div><div class="ttdoc">An &quot;ABI safe&quot; pointer to the internal part of an XMP object. Use to pass an XMP object across client ...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00130">XMP_Const.h:130</a></div></div>
+</div><!-- fragment -->
+<p>Definition at line <a class="el" href="WXMP__Common_8hpp_source.html#l00074">74</a> of file <a class="el" href="WXMP__Common_8hpp_source.html">WXMP_Common.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab7a2f115c6388749a3e20928978d3874"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define WrapCheckNewMetadata</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">result, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">WCallProto&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<b>Value:</b><div class="fragment"><div class="line"><a class="code" href="WXMP__Common_8hpp.html#a58d0e4857f5a40d6a82eb480832d068e">InvokeCheck</a>(WCallProto); \</div><div class="line"> void * result = wResult.ptrResult</div><div class="ttc" id="WXMP__Common_8hpp_html_a58d0e4857f5a40d6a82eb480832d068e"><div class="ttname"><a href="WXMP__Common_8hpp.html#a58d0e4857f5a40d6a82eb480832d068e">InvokeCheck</a></div><div class="ttdeci">#define InvokeCheck(WCallProto)</div><div class="ttdef"><b>Definition:</b> <a href="WXMP__Common_8hpp_source.html#l00048">WXMP_Common.hpp:48</a></div></div>
+</div><!-- fragment -->
+<p>Definition at line <a class="el" href="WXMP__Common_8hpp_source.html#l00086">86</a> of file <a class="el" href="WXMP__Common_8hpp_source.html">WXMP_Common.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab0186f6247d7b051f1ab263c461c14c0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define WrapCheckOptions</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">result, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">WCallProto&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<b>Value:</b><div class="fragment"><div class="line"><a class="code" href="WXMP__Common_8hpp.html#a58d0e4857f5a40d6a82eb480832d068e">InvokeCheck</a>(WCallProto); \</div><div class="line"> XMP_OptionBits result = <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>(wResult.int32Result)</div><div class="ttc" id="XMP__Const_8h_html_aeb865118433be92d88e5f49ed11487c8"><div class="ttname"><a href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a></div><div class="ttdeci">XMP_Uns32 XMP_OptionBits</div><div class="ttdoc">The type for a collection of 32 flag bits. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00172">XMP_Const.h:172</a></div></div>
+<div class="ttc" id="WXMP__Common_8hpp_html_a58d0e4857f5a40d6a82eb480832d068e"><div class="ttname"><a href="WXMP__Common_8hpp.html#a58d0e4857f5a40d6a82eb480832d068e">InvokeCheck</a></div><div class="ttdeci">#define InvokeCheck(WCallProto)</div><div class="ttdef"><b>Definition:</b> <a href="WXMP__Common_8hpp_source.html#l00048">WXMP_Common.hpp:48</a></div></div>
+</div><!-- fragment -->
+<p>Definition at line <a class="el" href="WXMP__Common_8hpp_source.html#l00098">98</a> of file <a class="el" href="WXMP__Common_8hpp_source.html">WXMP_Common.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa5157be6b847c59d15e166d6fc7d392d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define WrapCheckStatus</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">result, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">WCallProto&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<b>Value:</b><div class="fragment"><div class="line"><a class="code" href="WXMP__Common_8hpp.html#a58d0e4857f5a40d6a82eb480832d068e">InvokeCheck</a>(WCallProto); \</div><div class="line"> XMP_Status result = <a class="code" href="XMP__Const_8h.html#a05b81829c04746826f4f85fbac76e3dd">XMP_Status</a>(wResult.int32Result)</div><div class="ttc" id="XMP__Const_8h_html_a05b81829c04746826f4f85fbac76e3dd"><div class="ttname"><a href="XMP__Const_8h.html#a05b81829c04746826f4f85fbac76e3dd">XMP_Status</a></div><div class="ttdeci">XMP_Int32 XMP_Status</div><div class="ttdoc">A signed 32-bit integer used as a status result for the output callback routine, XMP_TextOutputProc. Zero means no error, all other values except -1 are private to the callback. The callback is wrapped to prevent exceptions being thrown across DLL boundaries. Any exceptions thrown out of the callback cause a return status of -1. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01474">XMP_Const.h:1474</a></div></div>
+<div class="ttc" id="WXMP__Common_8hpp_html_a58d0e4857f5a40d6a82eb480832d068e"><div class="ttname"><a href="WXMP__Common_8hpp.html#a58d0e4857f5a40d6a82eb480832d068e">InvokeCheck</a></div><div class="ttdeci">#define InvokeCheck(WCallProto)</div><div class="ttdef"><b>Definition:</b> <a href="WXMP__Common_8hpp_source.html#l00048">WXMP_Common.hpp:48</a></div></div>
+</div><!-- fragment -->
+<p>Definition at line <a class="el" href="WXMP__Common_8hpp_source.html#l00102">102</a> of file <a class="el" href="WXMP__Common_8hpp_source.html">WXMP_Common.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3ade7afea8e0dd088c4322680712246a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define WrapCheckTriState</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">result, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">WCallProto&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<b>Value:</b><div class="fragment"><div class="line"><a class="code" href="WXMP__Common_8hpp.html#a58d0e4857f5a40d6a82eb480832d068e">InvokeCheck</a>(WCallProto); \</div><div class="line"> XMP_TriState result = <a class="code" href="XMP__Const_8h.html#a377e4a668de99ce6ed176cef5aaf3fcd">XMP_TriState</a>(wResult.int32Result)</div><div class="ttc" id="XMP__Const_8h_html_a377e4a668de99ce6ed176cef5aaf3fcd"><div class="ttname"><a href="XMP__Const_8h.html#a377e4a668de99ce6ed176cef5aaf3fcd">XMP_TriState</a></div><div class="ttdeci">XMP_Int8 XMP_TriState</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00197">XMP_Const.h:197</a></div></div>
+<div class="ttc" id="WXMP__Common_8hpp_html_a58d0e4857f5a40d6a82eb480832d068e"><div class="ttname"><a href="WXMP__Common_8hpp.html#a58d0e4857f5a40d6a82eb480832d068e">InvokeCheck</a></div><div class="ttdeci">#define InvokeCheck(WCallProto)</div><div class="ttdef"><b>Definition:</b> <a href="WXMP__Common_8hpp_source.html#l00048">WXMP_Common.hpp:48</a></div></div>
+</div><!-- fragment -->
+<p>Definition at line <a class="el" href="WXMP__Common_8hpp_source.html#l00094">94</a> of file <a class="el" href="WXMP__Common_8hpp_source.html">WXMP_Common.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a683fa38b9541eb26f91304087acad44d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define WrapCheckVoid</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">WCallProto</td><td>)</td>
+ <td>&#160;&#160;&#160;<a class="el" href="WXMP__Common_8hpp.html#a58d0e4857f5a40d6a82eb480832d068e">InvokeCheck</a>(WCallProto);</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMP__Common_8hpp_source.html#l00071">71</a> of file <a class="el" href="WXMP__Common_8hpp_source.html">WXMP_Common.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ade570a6b1a2c59e509c71b5e82df6f80"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define WrapNoCheckVoid</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">WCallProto</td><td>)</td>
+ <td>&#160;&#160;&#160;WCallProto;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMP__Common_8hpp_source.html#l00068">68</a> of file <a class="el" href="WXMP__Common_8hpp_source.html">WXMP_Common.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a360e92875f1147e47c365950a6560d6c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define XMP_CTorDTorIntro</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">Class</td><td>)</td>
+ <td>&#160;&#160;&#160;template &lt;class tStringObj&gt; <a class="el" href="WXMP__Common_8hpp.html#acfcb026582fc145095d3667241515353">XMP_Inline</a> Class&lt;tStringObj&gt;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMP__Common_8hpp_source.html#l00020">20</a> of file <a class="el" href="WXMP__Common_8hpp_source.html">WXMP_Common.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="acfcb026582fc145095d3667241515353"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define XMP_Inline&#160;&#160;&#160;/* not inline */</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMP__Common_8hpp_source.html#l00016">16</a> of file <a class="el" href="WXMP__Common_8hpp_source.html">WXMP_Common.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9874672542b6adee728f1176b565c141"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define XMP_MethodIntro</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">Class, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">ResultType&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;template &lt;class tStringObj&gt; <a class="el" href="WXMP__Common_8hpp.html#acfcb026582fc145095d3667241515353">XMP_Inline</a> ResultType Class&lt;tStringObj&gt;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMP__Common_8hpp_source.html#l00021">21</a> of file <a class="el" href="WXMP__Common_8hpp_source.html">WXMP_Common.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a803c218d593737c645bbea4bf80dd815"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define XMP_TraceClientCalls&#160;&#160;&#160;0</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMP__Common_8hpp_source.html#l00043">43</a> of file <a class="el" href="WXMP__Common_8hpp_source.html">WXMP_Common.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aab5f92f08cddd67ae7c8bab22b4f0dd7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define XMP_TraceClientCallsToFile&#160;&#160;&#160;0</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMP__Common_8hpp_source.html#l00044">44</a> of file <a class="el" href="WXMP__Common_8hpp_source.html">WXMP_Common.hpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="ae22e640b3404ce206ad1678841bcd11f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* SetClientStringProc) (void *clientPtr, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> valuePtr, <a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> valueLen)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMP__Common_8hpp_source.html#l00023">23</a> of file <a class="el" href="WXMP__Common_8hpp_source.html">WXMP_Common.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a657cdd79947744b4c123bf9df9ac1b60"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* SetClientStringVectorProc) (void *clientPtr, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> *arrayPtr, XMP_Uns32 stringCount)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMP__Common_8hpp_source.html#l00024">24</a> of file <a class="el" href="WXMP__Common_8hpp_source.html">WXMP_Common.hpp</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/WXMP__Common_8hpp.js b/docs/API/WXMP__Common_8hpp.js
new file mode 100755
index 0000000..26c87e6
--- /dev/null
+++ b/docs/API/WXMP__Common_8hpp.js
@@ -0,0 +1,29 @@
+var WXMP__Common_8hpp =
+[
+ [ "WXMP_Result", "structWXMP__Result.html", "structWXMP__Result" ],
+ [ "__WXMP_Common_hpp__", "WXMP__Common_8hpp.html#a92bfba5db10b3ea02b3ad736c8e11dc7", null ],
+ [ "InvokeCheck", "WXMP__Common_8hpp.html#a58d0e4857f5a40d6a82eb480832d068e", null ],
+ [ "PropagateException", "WXMP__Common_8hpp.html#a5dfbc13f3139cae2812a1cf0c979999c", null ],
+ [ "WrapCheckBool", "WXMP__Common_8hpp.html#a31e0519b68ec7cb1f4e54cd480dbc6bd", null ],
+ [ "WrapCheckDocOpsRef", "WXMP__Common_8hpp.html#a00bbfd8bed08cc3ef59534e66a7e55f8", null ],
+ [ "WrapCheckFloat", "WXMP__Common_8hpp.html#a0f0d9f01db5db9c03a3432d3fb43b86a", null ],
+ [ "WrapCheckFormat", "WXMP__Common_8hpp.html#a75478cb5e5f458cd440d87c650dd3673", null ],
+ [ "WrapCheckIndex", "WXMP__Common_8hpp.html#ae20f3a4940eeddcf29a174c86be91788", null ],
+ [ "WrapCheckInt32", "WXMP__Common_8hpp.html#a18b3cd640d64484f12de7f0367d4ccb2", null ],
+ [ "WrapCheckInt64", "WXMP__Common_8hpp.html#a22af7eda5280ca99f2c2e48b20ee4c74", null ],
+ [ "WrapCheckIterRef", "WXMP__Common_8hpp.html#a08838e2c5bcb3f4547172b4cce27a4a4", null ],
+ [ "WrapCheckMetaRef", "WXMP__Common_8hpp.html#a2cb35fa2967a5bce3686dde786db8210", null ],
+ [ "WrapCheckNewMetadata", "WXMP__Common_8hpp.html#ab7a2f115c6388749a3e20928978d3874", null ],
+ [ "WrapCheckOptions", "WXMP__Common_8hpp.html#ab0186f6247d7b051f1ab263c461c14c0", null ],
+ [ "WrapCheckStatus", "WXMP__Common_8hpp.html#aa5157be6b847c59d15e166d6fc7d392d", null ],
+ [ "WrapCheckTriState", "WXMP__Common_8hpp.html#a3ade7afea8e0dd088c4322680712246a", null ],
+ [ "WrapCheckVoid", "WXMP__Common_8hpp.html#a683fa38b9541eb26f91304087acad44d", null ],
+ [ "WrapNoCheckVoid", "WXMP__Common_8hpp.html#ade570a6b1a2c59e509c71b5e82df6f80", null ],
+ [ "XMP_CTorDTorIntro", "WXMP__Common_8hpp.html#a360e92875f1147e47c365950a6560d6c", null ],
+ [ "XMP_Inline", "WXMP__Common_8hpp.html#acfcb026582fc145095d3667241515353", null ],
+ [ "XMP_MethodIntro", "WXMP__Common_8hpp.html#a9874672542b6adee728f1176b565c141", null ],
+ [ "XMP_TraceClientCalls", "WXMP__Common_8hpp.html#a803c218d593737c645bbea4bf80dd815", null ],
+ [ "XMP_TraceClientCallsToFile", "WXMP__Common_8hpp.html#aab5f92f08cddd67ae7c8bab22b4f0dd7", null ],
+ [ "SetClientStringProc", "WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f", null ],
+ [ "SetClientStringVectorProc", "WXMP__Common_8hpp.html#a657cdd79947744b4c123bf9df9ac1b60", null ]
+]; \ No newline at end of file
diff --git a/docs/API/WXMP__Common_8hpp_source.html b/docs/API/WXMP__Common_8hpp_source.html
new file mode 100755
index 0000000..66257a0
--- /dev/null
+++ b/docs/API/WXMP__Common_8hpp_source.html
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/client-glue/WXMP_Common.hpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('WXMP__Common_8hpp_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">WXMP_Common.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="WXMP__Common_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#if ! __WXMP_Common_hpp__</span></div><div class="line"><a name="l00002"></a><span class="lineno"><a class="line" href="WXMP__Common_8hpp.html#a92bfba5db10b3ea02b3ad736c8e11dc7"> 2</a></span>&#160;<span class="preprocessor">#define __WXMP_Common_hpp__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright 2002 Adobe Systems Incorporated</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// All Rights Reserved.</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#ifndef XMP_Inline</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor"> #if TXMP_EXPAND_INLINE</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor"> #define XMP_Inline inline</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor"> #else</span></div><div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="WXMP__Common_8hpp.html#acfcb026582fc145095d3667241515353"> 16</a></span>&#160;<span class="preprocessor"> #define XMP_Inline </span><span class="comment">/* not inline */</span><span class="preprocessor"></span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="WXMP__Common_8hpp.html#a360e92875f1147e47c365950a6560d6c"> 20</a></span>&#160;<span class="preprocessor">#define XMP_CTorDTorIntro(Class) template &lt;class tStringObj&gt; XMP_Inline Class&lt;tStringObj&gt;</span></div><div class="line"><a name="l00021"></a><span class="lineno"><a class="line" href="WXMP__Common_8hpp.html#a9874672542b6adee728f1176b565c141"> 21</a></span>&#160;<span class="preprocessor">#define XMP_MethodIntro(Class,ResultType) template &lt;class tStringObj&gt; XMP_Inline ResultType Class&lt;tStringObj&gt;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f"> 23</a></span>&#160;<span class="keyword">typedef</span> void (* <a class="code" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a>) ( <span class="keywordtype">void</span> * clientPtr, <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> valuePtr, <a class="code" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> valueLen );</div><div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="WXMP__Common_8hpp.html#a657cdd79947744b4c123bf9df9ac1b60"> 24</a></span>&#160;<span class="keyword">typedef</span> void (* <a class="code" href="WXMP__Common_8hpp.html#a657cdd79947744b4c123bf9df9ac1b60">SetClientStringVectorProc</a>) ( <span class="keywordtype">void</span> * clientPtr, <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> * arrayPtr, XMP_Uns32 stringCount );</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="structWXMP__Result.html"> 26</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structWXMP__Result.html">WXMP_Result</a> {</div><div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="structWXMP__Result.html#ae329adc6d31243687d8bd85987ad6999"> 27</a></span>&#160; <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> <a class="code" href="structWXMP__Result.html#ae329adc6d31243687d8bd85987ad6999">errMessage</a>;</div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="structWXMP__Result.html#ae1b91c50cee342a87f7708dd92a3d538"> 28</a></span>&#160; <span class="keywordtype">void</span> * <a class="code" href="structWXMP__Result.html#ae1b91c50cee342a87f7708dd92a3d538">ptrResult</a>;</div><div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="structWXMP__Result.html#a872bf8583413190b991beda67f017fb5"> 29</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="structWXMP__Result.html#a872bf8583413190b991beda67f017fb5">floatResult</a>;</div><div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="structWXMP__Result.html#af515f52630be278a2334d7d9db587f13"> 30</a></span>&#160; XMP_Uns64 <a class="code" href="structWXMP__Result.html#af515f52630be278a2334d7d9db587f13">int64Result</a>;</div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="structWXMP__Result.html#a0bef8219ee23d2869ae6701330820794"> 31</a></span>&#160; XMP_Uns32 <a class="code" href="structWXMP__Result.html#a0bef8219ee23d2869ae6701330820794">int32Result</a>;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="structWXMP__Result.html#ad1046c86e2b3eba3109e6ae3f7063352"> 32</a></span>&#160; <a class="code" href="structWXMP__Result.html#ad1046c86e2b3eba3109e6ae3f7063352">WXMP_Result</a>() : errMessage(0),ptrResult(NULL),floatResult(0),int64Result(0),int32Result(0){};</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;};</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#if __cplusplus</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="WXMP__Common_8hpp.html#a5dfbc13f3139cae2812a1cf0c979999c"> 39</a></span>&#160;<span class="preprocessor">#define PropagateException(res) \</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor"> if ( res.errMessage != 0 ) throw XMP_Error ( res.int32Result, res.errMessage );</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#ifndef XMP_TraceClientCalls</span></div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="WXMP__Common_8hpp.html#a803c218d593737c645bbea4bf80dd815"> 43</a></span>&#160;<span class="preprocessor"> #define XMP_TraceClientCalls 0</span></div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="WXMP__Common_8hpp.html#aab5f92f08cddd67ae7c8bab22b4f0dd7"> 44</a></span>&#160;<span class="preprocessor"> #define XMP_TraceClientCallsToFile 0</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#if ! XMP_TraceClientCalls</span></div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="WXMP__Common_8hpp.html#a58d0e4857f5a40d6a82eb480832d068e"> 48</a></span>&#160;<span class="preprocessor"> #define InvokeCheck(WCallProto) \</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"> WXMP_Result wResult; \</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor"> WCallProto; \</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor"> PropagateException ( wResult )</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">extern</span> FILE * xmpClientLog;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor"> #define InvokeCheck(WCallProto) \</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor"> WXMP_Result wResult; \</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor"> fprintf ( xmpClientLog, &quot;WXMP calling: %s\n&quot;, #WCallProto ); fflush ( xmpClientLog ); \</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"> WCallProto; \</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor"> if ( wResult.errMessage == 0 ) { \</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor"> fprintf ( xmpClientLog, &quot;WXMP back, no error\n&quot; ); fflush ( xmpClientLog ); \</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor"> } else { \</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor"> fprintf ( xmpClientLog, &quot;WXMP back, error: %s\n&quot;, wResult.errMessage ); fflush ( xmpClientLog ); \</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor"> } \</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor"> PropagateException ( wResult )</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="WXMP__Common_8hpp.html#ade570a6b1a2c59e509c71b5e82df6f80"> 68</a></span>&#160;<span class="preprocessor">#define WrapNoCheckVoid(WCallProto) \</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor"> WCallProto;</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="WXMP__Common_8hpp.html#a683fa38b9541eb26f91304087acad44d"> 71</a></span>&#160;<span class="preprocessor">#define WrapCheckVoid(WCallProto) \</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor"> InvokeCheck(WCallProto);</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="WXMP__Common_8hpp.html#a2cb35fa2967a5bce3686dde786db8210"> 74</a></span>&#160;<span class="preprocessor">#define WrapCheckMetaRef(result,WCallProto) \</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor"> InvokeCheck(WCallProto); \</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor"> XMPMetaRef result = XMPMetaRef(wResult.ptrResult)</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="WXMP__Common_8hpp.html#a08838e2c5bcb3f4547172b4cce27a4a4"> 78</a></span>&#160;<span class="preprocessor">#define WrapCheckIterRef(result,WCallProto) \</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor"> InvokeCheck(WCallProto); \</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor"> XMPIteratorRef result = XMPIteratorRef(wResult.ptrResult)</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="WXMP__Common_8hpp.html#a00bbfd8bed08cc3ef59534e66a7e55f8"> 82</a></span>&#160;<span class="preprocessor">#define WrapCheckDocOpsRef(result,WCallProto) \</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor"> InvokeCheck(WCallProto); \</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor"> XMPDocOpsRef result = XMPDocOpsRef(wResult.ptrResult)</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="WXMP__Common_8hpp.html#ab7a2f115c6388749a3e20928978d3874"> 86</a></span>&#160;<span class="preprocessor">#define WrapCheckNewMetadata(result,WCallProto) \</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor"> InvokeCheck(WCallProto); \</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor"> void * result = wResult.ptrResult</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="WXMP__Common_8hpp.html#a31e0519b68ec7cb1f4e54cd480dbc6bd"> 90</a></span>&#160;<span class="preprocessor">#define WrapCheckBool(result,WCallProto) \</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="preprocessor"> InvokeCheck(WCallProto); \</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="preprocessor"> bool result = bool(wResult.int32Result)</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="WXMP__Common_8hpp.html#a3ade7afea8e0dd088c4322680712246a"> 94</a></span>&#160;<span class="preprocessor">#define WrapCheckTriState(result,WCallProto) \</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="preprocessor"> InvokeCheck(WCallProto); \</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="preprocessor"> XMP_TriState result = XMP_TriState(wResult.int32Result)</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="WXMP__Common_8hpp.html#ab0186f6247d7b051f1ab263c461c14c0"> 98</a></span>&#160;<span class="preprocessor">#define WrapCheckOptions(result,WCallProto) \</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="preprocessor"> InvokeCheck(WCallProto); \</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="preprocessor"> XMP_OptionBits result = XMP_OptionBits(wResult.int32Result)</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="WXMP__Common_8hpp.html#aa5157be6b847c59d15e166d6fc7d392d"> 102</a></span>&#160;<span class="preprocessor">#define WrapCheckStatus(result,WCallProto) \</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="preprocessor"> InvokeCheck(WCallProto); \</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="preprocessor"> XMP_Status result = XMP_Status(wResult.int32Result)</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="WXMP__Common_8hpp.html#ae20f3a4940eeddcf29a174c86be91788"> 106</a></span>&#160;<span class="preprocessor">#define WrapCheckIndex(result,WCallProto) \</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="preprocessor"> InvokeCheck(WCallProto); \</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="preprocessor"> XMP_Index result = XMP_Index(wResult.int32Result)</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="WXMP__Common_8hpp.html#a18b3cd640d64484f12de7f0367d4ccb2"> 110</a></span>&#160;<span class="preprocessor">#define WrapCheckInt32(result,WCallProto) \</span></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="preprocessor"> InvokeCheck(WCallProto); \</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="preprocessor"> XMP_Int32 result = wResult.int32Result</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="WXMP__Common_8hpp.html#a22af7eda5280ca99f2c2e48b20ee4c74"> 114</a></span>&#160;<span class="preprocessor">#define WrapCheckInt64(result,WCallProto) \</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="preprocessor"> InvokeCheck(WCallProto); \</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="preprocessor"> XMP_Int64 result = wResult.int64Result</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="WXMP__Common_8hpp.html#a0f0d9f01db5db9c03a3432d3fb43b86a"> 118</a></span>&#160;<span class="preprocessor">#define WrapCheckFloat(result,WCallProto) \</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="preprocessor"> InvokeCheck(WCallProto); \</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="preprocessor"> double result = wResult.floatResult</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="WXMP__Common_8hpp.html#a75478cb5e5f458cd440d87c650dd3673"> 122</a></span>&#160;<span class="preprocessor">#define WrapCheckFormat(result,WCallProto) \</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="preprocessor"> InvokeCheck(WCallProto); \</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="preprocessor"> XMP_FileFormat result = wResult.int32Result</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="preprocessor">#if __cplusplus</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;} <span class="comment">// extern &quot;C&quot;</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="preprocessor">#endif // __WXMP_Common_hpp__</span></div><div class="ttc" id="structWXMP__Result_html_ae329adc6d31243687d8bd85987ad6999"><div class="ttname"><a href="structWXMP__Result.html#ae329adc6d31243687d8bd85987ad6999">WXMP_Result::errMessage</a></div><div class="ttdeci">XMP_StringPtr errMessage</div><div class="ttdef"><b>Definition:</b> <a href="WXMP__Common_8hpp_source.html#l00027">WXMP_Common.hpp:27</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a9f7dcc184f901c713274edfdac5bcc9a"><div class="ttname"><a href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a></div><div class="ttdeci">XMP_Uns32 XMP_StringLen</div><div class="ttdoc">The type for string length parameters. A 32-bit unsigned integer, as big as will be practically neede...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00170">XMP_Const.h:170</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_ad439e3ceeb4590d310f6125aa12c6df6"><div class="ttname"><a href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a></div><div class="ttdeci">const char * XMP_StringPtr</div><div class="ttdoc">The type for input string parameters. A const char *, a null-terminated UTF-8 string. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00169">XMP_Const.h:169</a></div></div>
+<div class="ttc" id="structWXMP__Result_html_ad1046c86e2b3eba3109e6ae3f7063352"><div class="ttname"><a href="structWXMP__Result.html#ad1046c86e2b3eba3109e6ae3f7063352">WXMP_Result::WXMP_Result</a></div><div class="ttdeci">WXMP_Result()</div><div class="ttdef"><b>Definition:</b> <a href="WXMP__Common_8hpp_source.html#l00032">WXMP_Common.hpp:32</a></div></div>
+<div class="ttc" id="structWXMP__Result_html_a0bef8219ee23d2869ae6701330820794"><div class="ttname"><a href="structWXMP__Result.html#a0bef8219ee23d2869ae6701330820794">WXMP_Result::int32Result</a></div><div class="ttdeci">XMP_Uns32 int32Result</div><div class="ttdef"><b>Definition:</b> <a href="WXMP__Common_8hpp_source.html#l00031">WXMP_Common.hpp:31</a></div></div>
+<div class="ttc" id="WXMP__Common_8hpp_html_ae22e640b3404ce206ad1678841bcd11f"><div class="ttname"><a href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">SetClientStringProc</a></div><div class="ttdeci">void(* SetClientStringProc)(void *clientPtr, XMP_StringPtr valuePtr, XMP_StringLen valueLen)</div><div class="ttdef"><b>Definition:</b> <a href="WXMP__Common_8hpp_source.html#l00023">WXMP_Common.hpp:23</a></div></div>
+<div class="ttc" id="structWXMP__Result_html_af515f52630be278a2334d7d9db587f13"><div class="ttname"><a href="structWXMP__Result.html#af515f52630be278a2334d7d9db587f13">WXMP_Result::int64Result</a></div><div class="ttdeci">XMP_Uns64 int64Result</div><div class="ttdef"><b>Definition:</b> <a href="WXMP__Common_8hpp_source.html#l00030">WXMP_Common.hpp:30</a></div></div>
+<div class="ttc" id="structWXMP__Result_html"><div class="ttname"><a href="structWXMP__Result.html">WXMP_Result</a></div><div class="ttdef"><b>Definition:</b> <a href="WXMP__Common_8hpp_source.html#l00026">WXMP_Common.hpp:26</a></div></div>
+<div class="ttc" id="WXMP__Common_8hpp_html_a657cdd79947744b4c123bf9df9ac1b60"><div class="ttname"><a href="WXMP__Common_8hpp.html#a657cdd79947744b4c123bf9df9ac1b60">SetClientStringVectorProc</a></div><div class="ttdeci">void(* SetClientStringVectorProc)(void *clientPtr, XMP_StringPtr *arrayPtr, XMP_Uns32 stringCount)</div><div class="ttdef"><b>Definition:</b> <a href="WXMP__Common_8hpp_source.html#l00024">WXMP_Common.hpp:24</a></div></div>
+<div class="ttc" id="structWXMP__Result_html_ae1b91c50cee342a87f7708dd92a3d538"><div class="ttname"><a href="structWXMP__Result.html#ae1b91c50cee342a87f7708dd92a3d538">WXMP_Result::ptrResult</a></div><div class="ttdeci">void * ptrResult</div><div class="ttdef"><b>Definition:</b> <a href="WXMP__Common_8hpp_source.html#l00028">WXMP_Common.hpp:28</a></div></div>
+<div class="ttc" id="structWXMP__Result_html_a872bf8583413190b991beda67f017fb5"><div class="ttname"><a href="structWXMP__Result.html#a872bf8583413190b991beda67f017fb5">WXMP_Result::floatResult</a></div><div class="ttdeci">double floatResult</div><div class="ttdef"><b>Definition:</b> <a href="WXMP__Common_8hpp_source.html#l00029">WXMP_Common.hpp:29</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/XMPCommonDefines_8h.html b/docs/API/XMPCommonDefines_8h.html
new file mode 100755
index 0000000..74ece33
--- /dev/null
+++ b/docs/API/XMPCommonDefines_8h.html
@@ -0,0 +1,339 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/XMPCommonDefines.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('XMPCommonDefines_8h.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#namespaces">Namespaces</a> &#124;
+<a href="#define-members">Macros</a> &#124;
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">XMPCommonDefines.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="XMP__Environment_8h_source.html">XMP_Environment.h</a>&quot;</code><br />
+<code>#include &lt;ciso646&gt;</code><br />
+<code>#include &quot;<a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>&quot;</code><br />
+</div>
+<p><a href="XMPCommonDefines_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceAdobeXMPCommon"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:ae1dbf35f9d0d606368d149565ca04006"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCommonDefines_8h.html#ae1dbf35f9d0d606368d149565ca04006">SUPPORT_VARIADIC_TEMPLATES</a>&#160;&#160;&#160;1</td></tr>
+<tr class="separator:ae1dbf35f9d0d606368d149565ca04006"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a89e9297f497c2b3f1179788c31d24da4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">REQ_FRIEND_CLASS_DECLARATION</a>()</td></tr>
+<tr class="separator:a89e9297f497c2b3f1179788c31d24da4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aae4268f82f1d5d97bb483fef36f252ee"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCommonDefines_8h.html#aae4268f82f1d5d97bb483fef36f252ee">JOIN_CLASSNAME_WITH_VERSION_NUMBER_INT</a>(x, y)&#160;&#160;&#160;x ## _v ## y</td></tr>
+<tr class="separator:aae4268f82f1d5d97bb483fef36f252ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a944a0a31a728943ffb6f1bf62712649a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCommonDefines_8h.html#a944a0a31a728943ffb6f1bf62712649a">JOIN_CLASSNAME_WITH_VERSION_NUMBER</a>(x, y)&#160;&#160;&#160;<a class="el" href="XMPCommonDefines_8h.html#aae4268f82f1d5d97bb483fef36f252ee">JOIN_CLASSNAME_WITH_VERSION_NUMBER_INT</a>(x,y)</td></tr>
+<tr class="separator:a944a0a31a728943ffb6f1bf62712649a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:affa2ae123fa7bf387394d5ba499b1441"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCommonDefines_8h.html#affa2ae123fa7bf387394d5ba499b1441">BASE_CLASS</a>(classNameWithoutVersionNumber, versionNumber)&#160;&#160;&#160;<a class="el" href="XMPCommonDefines_8h.html#a944a0a31a728943ffb6f1bf62712649a">JOIN_CLASSNAME_WITH_VERSION_NUMBER</a>(classNameWithoutVersionNumber, versionNumber)</td></tr>
+<tr class="separator:affa2ae123fa7bf387394d5ba499b1441"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4ec864140f86759daee62dd337b61501"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCommonDefines_8h.html#a4ec864140f86759daee62dd337b61501">EXPAND_MACRO</a>(X)&#160;&#160;&#160;X</td></tr>
+<tr class="separator:a4ec864140f86759daee62dd337b61501"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1fd06a6a11b9c1c9d7998e8ef08d0c77"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCommonDefines_8h.html#a1fd06a6a11b9c1c9d7998e8ef08d0c77">QUOTEME2</a>(X)&#160;&#160;&#160;#X</td></tr>
+<tr class="separator:a1fd06a6a11b9c1c9d7998e8ef08d0c77"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4dd82e6c008275864ab4059ce2e2e4e9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCommonDefines_8h.html#a4dd82e6c008275864ab4059ce2e2e4e9">QUOTEME</a>(X)&#160;&#160;&#160;<a class="el" href="XMPCommonDefines_8h.html#a1fd06a6a11b9c1c9d7998e8ef08d0c77">QUOTEME2</a>(X)</td></tr>
+<tr class="separator:a4dd82e6c008275864ab4059ce2e2e4e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a929113d3d50bda3fb7135a5c8b24a2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>&#160;&#160;&#160;throw()</td></tr>
+<tr class="separator:a5a929113d3d50bda3fb7135a5c8b24a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3ad5c0d7b537a67fc621dd30670397df"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCommonDefines_8h.html#a3ad5c0d7b537a67fc621dd30670397df">SOURCE_COMPILING_XMPCOMMON_LIB</a>&#160;&#160;&#160;0</td></tr>
+<tr class="separator:a3ad5c0d7b537a67fc621dd30670397df"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5686c8f09ffafbdc3b46817eea895bc2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCommonDefines_8h.html#a5686c8f09ffafbdc3b46817eea895bc2">BUILDING_XMPCOMMON_LIB</a>&#160;&#160;&#160;0</td></tr>
+<tr class="separator:a5686c8f09ffafbdc3b46817eea895bc2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:aee4f68e01de51c2cf1c1044ecafebc25"><td class="memItemLeft" align="right" valign="top">typedef XMP_Int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#aee4f68e01de51c2cf1c1044ecafebc25">AdobeXMPCommon::int64</a></td></tr>
+<tr class="separator:aee4f68e01de51c2cf1c1044ecafebc25"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aea1d692da07b844d1f642b47ea6a91bd"><td class="memItemLeft" align="right" valign="top">typedef XMP_Uns64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">AdobeXMPCommon::uint64</a></td></tr>
+<tr class="separator:aea1d692da07b844d1f642b47ea6a91bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a070d4ea981e6080468e9a3cdbd82b458"><td class="memItemLeft" align="right" valign="top">typedef XMP_Int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a070d4ea981e6080468e9a3cdbd82b458">AdobeXMPCommon::int32</a></td></tr>
+<tr class="separator:a070d4ea981e6080468e9a3cdbd82b458"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0b1bbe96e1a757e66974c2f076afe4d2"><td class="memItemLeft" align="right" valign="top">typedef XMP_Uns32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">AdobeXMPCommon::uint32</a></td></tr>
+<tr class="separator:a0b1bbe96e1a757e66974c2f076afe4d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1c85c2f558b495c3d41eabe692a96cf2"><td class="memItemLeft" align="right" valign="top">typedef uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a></td></tr>
+<tr class="separator:a1c85c2f558b495c3d41eabe692a96cf2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a509d67aa4eb5b6a31db63f448d2a2343"><td class="memItemLeft" align="right" valign="top">const sizet&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a509d67aa4eb5b6a31db63f448d2a2343">AdobeXMPCommon::kMaxSize</a> ((sizet)-1)</td></tr>
+<tr class="separator:a509d67aa4eb5b6a31db63f448d2a2343"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc1bfa88991003b305ab5023b483d3f9"><td class="memItemLeft" align="right" valign="top">const sizet&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a> (kMaxSize)</td></tr>
+<tr class="separator:afc1bfa88991003b305ab5023b483d3f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8ec7e2a77ea452c3d46bb7dbbc722574"><td class="memItemLeft" align="right" valign="top">static const uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a8ec7e2a77ea452c3d46bb7dbbc722574">AdobeXMPCommon::kMaxEnumValue</a> (<a class="el" href="XMP__Const_8h.html#adc36ebc09374b4400ebc68df37a5abad">Max_XMP_Uns32</a>)</td></tr>
+<tr class="separator:a8ec7e2a77ea452c3d46bb7dbbc722574"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3e31c8b25cbf95c42b8e439071bdf865"><td class="memItemLeft" align="right" valign="top">static const uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a3e31c8b25cbf95c42b8e439071bdf865">AdobeXMPCommon::kAllBits</a> (0xFFFFFFFF)</td></tr>
+<tr class="separator:a3e31c8b25cbf95c42b8e439071bdf865"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad4c8ddc8db2d27cbcc0d88688fabdd93"><td class="memItemLeft" align="right" valign="top">static const uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#ad4c8ddc8db2d27cbcc0d88688fabdd93">AdobeXMPCommon::kIErrorID</a> (0x6e4572726f722020)</td></tr>
+<tr class="separator:ad4c8ddc8db2d27cbcc0d88688fabdd93"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a97f984a3b999db35dd915b17322c8c7f"><td class="memItemLeft" align="right" valign="top">static const uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a97f984a3b999db35dd915b17322c8c7f">AdobeXMPCommon::kIUTF8StringID</a> (0x6e55544638537472)</td></tr>
+<tr class="separator:a97f984a3b999db35dd915b17322c8c7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3eaf39cde126acb079462286763ca44a"><td class="memItemLeft" align="right" valign="top">static const uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a3eaf39cde126acb079462286763ca44a">AdobeXMPCommon::kIObjectFactoryID</a> (0x6e4f626a46616374)</td></tr>
+<tr class="separator:a3eaf39cde126acb079462286763ca44a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab7bbf3293de0d0539f3cbb65b7680252"><td class="memItemLeft" align="right" valign="top">static const uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#ab7bbf3293de0d0539f3cbb65b7680252">AdobeXMPCommon::kIErrorNotifierID</a> (0x6e4572724e6f7466)</td></tr>
+<tr class="separator:ab7bbf3293de0d0539f3cbb65b7680252"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af73d2c15fb6abf10bf2b82be984d9be0"><td class="memItemLeft" align="right" valign="top">static const uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#af73d2c15fb6abf10bf2b82be984d9be0">AdobeXMPCommon::kIConfigurationManagerID</a> (0x6e436f6e664d6772)</td></tr>
+<tr class="separator:af73d2c15fb6abf10bf2b82be984d9be0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="a5a929113d3d50bda3fb7135a5c8b24a2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define __NOTHROW__&#160;&#160;&#160;throw()</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonDefines_8h_source.html#l00117">117</a> of file <a class="el" href="XMPCommonDefines_8h_source.html">XMPCommonDefines.h</a>.</p>
+
+<p>Referenced by <a class="el" href="IUTF8String_8h_source.html#l00347">AdobeXMPCommon::IUTF8String_v1::compare()</a>, <a class="el" href="IStructureNode_8h_source.html#l00128">AdobeXMPCore::IStructureNode_v1::GetArrayNode()</a>, <a class="el" href="IArrayNode_8h_source.html#l00139">AdobeXMPCore::IArrayNode_v1::GetArrayNodeAtIndex()</a>, <a class="el" href="IConfigurationManager_8h_source.html#l00145">AdobeXMPCommon::IConfigurationManagerProxy::GetISharedObject_I()</a>, <a class="el" href="IError_8h_source.html#l00171">AdobeXMPCommon::IError_v1::GetNextError()</a>, <a class="el" href="INode_8h_source.html#l00073">AdobeXMPCore::INode_v1::GetParent()</a>, <a class="el" href="ICompositeNode_8h_source.html#l00116">AdobeXMPCore::ICompositeNode_v1::Iterator()</a>, <a class="el" href="INodeIterator_8h_source.html#l00112">AdobeXMPCore::INodeIterator_v1::Next()</a>, <a class="el" href="IClientDOMParser_8h_source.html#l00060">AdobeXMPCore::IClientDOMParser_v1::Validate()</a>, <a class="el" href="IClientDOMSerializer_8h_source.html#l00064">AdobeXMPCore::IClientDOMSerializer_v1::Validate()</a>, <a class="el" href="IClientDOMParser_8h_source.html#l00073">AdobeXMPCore::IClientDOMParser_v1::~IClientDOMParser_v1()</a>, <a class="el" href="IClientDOMSerializer_8h_source.html#l00077">AdobeXMPCore::IClientDOMSerializer_v1::~IClientDOMSerializer_v1()</a>, <a class="el" href="ICompositeNode_8h_source.html#l00257">AdobeXMPCore::ICompositeNode_v1::~ICompositeNode_v1()</a>, <a class="el" href="IConfigurable_8h_source.html#l00171">AdobeXMPCommon::IConfigurable::~IConfigurable()</a>, <a class="el" href="INode_8h_source.html#l00447">AdobeXMPCore::INode_v1::~INode_v1()</a>, <a class="el" href="IStructureNode_8h_source.html#l00241">AdobeXMPCore::IStructureNode_v1::~IStructureNode_v1()</a>, and <a class="el" href="IVersionable_8h_source.html#l00056">AdobeXMPCommon::IVersionable::~IVersionable()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="affa2ae123fa7bf387394d5ba499b1441"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define BASE_CLASS</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">classNameWithoutVersionNumber, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">versionNumber&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="XMPCommonDefines_8h.html#a944a0a31a728943ffb6f1bf62712649a">JOIN_CLASSNAME_WITH_VERSION_NUMBER</a>(classNameWithoutVersionNumber, versionNumber)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonDefines_8h_source.html#l00112">112</a> of file <a class="el" href="XMPCommonDefines_8h_source.html">XMPCommonDefines.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5686c8f09ffafbdc3b46817eea895bc2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define BUILDING_XMPCOMMON_LIB&#160;&#160;&#160;0</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonDefines_8h_source.html#l00126">126</a> of file <a class="el" href="XMPCommonDefines_8h_source.html">XMPCommonDefines.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4ec864140f86759daee62dd337b61501"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define EXPAND_MACRO</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">X</td><td>)</td>
+ <td>&#160;&#160;&#160;X</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonDefines_8h_source.html#l00113">113</a> of file <a class="el" href="XMPCommonDefines_8h_source.html">XMPCommonDefines.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a944a0a31a728943ffb6f1bf62712649a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define JOIN_CLASSNAME_WITH_VERSION_NUMBER</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">x, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">y&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;<a class="el" href="XMPCommonDefines_8h.html#aae4268f82f1d5d97bb483fef36f252ee">JOIN_CLASSNAME_WITH_VERSION_NUMBER_INT</a>(x,y)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonDefines_8h_source.html#l00111">111</a> of file <a class="el" href="XMPCommonDefines_8h_source.html">XMPCommonDefines.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aae4268f82f1d5d97bb483fef36f252ee"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define JOIN_CLASSNAME_WITH_VERSION_NUMBER_INT</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">x, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">y&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;x ## _v ## y</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonDefines_8h_source.html#l00110">110</a> of file <a class="el" href="XMPCommonDefines_8h_source.html">XMPCommonDefines.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4dd82e6c008275864ab4059ce2e2e4e9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define QUOTEME</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">X</td><td>)</td>
+ <td>&#160;&#160;&#160;<a class="el" href="XMPCommonDefines_8h.html#a1fd06a6a11b9c1c9d7998e8ef08d0c77">QUOTEME2</a>(X)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonDefines_8h_source.html#l00115">115</a> of file <a class="el" href="XMPCommonDefines_8h_source.html">XMPCommonDefines.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1fd06a6a11b9c1c9d7998e8ef08d0c77"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define QUOTEME2</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">X</td><td>)</td>
+ <td>&#160;&#160;&#160;#X</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonDefines_8h_source.html#l00114">114</a> of file <a class="el" href="XMPCommonDefines_8h_source.html">XMPCommonDefines.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a89e9297f497c2b3f1179788c31d24da4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define REQ_FRIEND_CLASS_DECLARATION</td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonDefines_8h_source.html#l00107">107</a> of file <a class="el" href="XMPCommonDefines_8h_source.html">XMPCommonDefines.h</a>.</p>
+
+<p>Referenced by <a class="el" href="IArrayNode_8h_source.html#l00284">AdobeXMPCore::IArrayNode_v1::~IArrayNode_v1()</a>, <a class="el" href="IClientDOMParser_8h_source.html#l00073">AdobeXMPCore::IClientDOMParser_v1::~IClientDOMParser_v1()</a>, <a class="el" href="IClientDOMSerializer_8h_source.html#l00077">AdobeXMPCore::IClientDOMSerializer_v1::~IClientDOMSerializer_v1()</a>, <a class="el" href="ICompositeNode_8h_source.html#l00257">AdobeXMPCore::ICompositeNode_v1::~ICompositeNode_v1()</a>, <a class="el" href="IConfigurable_8h_source.html#l00171">AdobeXMPCommon::IConfigurable::~IConfigurable()</a>, <a class="el" href="IConfigurationManager_8h_source.html#l00107">AdobeXMPCommon::IConfigurationManager_v1::~IConfigurationManager_v1()</a>, <a class="el" href="ICoreConfigurationManager_8h_source.html#l00094">AdobeXMPCore::ICoreConfigurationManager_v1::~ICoreConfigurationManager_v1()</a>, <a class="el" href="ICoreObjectFactory_8h_source.html#l00252">AdobeXMPCore::ICoreObjectFactory_v1::~ICoreObjectFactory_v1()</a>, <a class="el" href="IDOMImplementationRegistry_8h_source.html#l00133">AdobeXMPCore::IDOMImplementationRegistry_v1::~IDOMImplementationRegistry_v1()</a>, <a class="el" href="IDOMParser_8h_source.html#l00165">AdobeXMPCore::IDOMParser_v1::~IDOMParser_v1()</a>, <a class="el" href="IDOMSerializer_8h_source.html#l00104">AdobeXMPCore::IDOMSerializer_v1::~IDOMSerializer_v1()</a>, <a class="el" href="IError_8h_source.html#l00314">AdobeXMPCommon::IError_v1::~IError_v1()</a>, <a class="el" href="IMetadata_8h_source.html#l00124">AdobeXMPCore::IMetadata_v1::~IMetadata_v1()</a>, <a class="el" href="INameSpacePrefixMap_8h_source.html#l00215">AdobeXMPCore::INameSpacePrefixMap_v1::~INameSpacePrefixMap_v1()</a>, <a class="el" href="INode_8h_source.html#l00447">AdobeXMPCore::INode_v1::~INode_v1()</a>, <a class="el" href="INodeIterator_8h_source.html#l00177">AdobeXMPCore::INodeIterator_v1::~INodeIterator_v1()</a>, <a class="el" href="IObjectFactory_8h_source.html#l00080">AdobeXMPCommon::IObjectFactory_v1::~IObjectFactory_v1()</a>, <a class="el" href="IPath_8h_source.html#l00192">AdobeXMPCore::IPath_v1::~IPath_v1()</a>, <a class="el" href="IPathSegment_8h_source.html#l00208">AdobeXMPCore::IPathSegment_v1::~IPathSegment_v1()</a>, <a class="el" href="ISimpleNode_8h_source.html#l00133">AdobeXMPCore::ISimpleNode_v1::~ISimpleNode_v1()</a>, <a class="el" href="IStructureNode_8h_source.html#l00241">AdobeXMPCore::IStructureNode_v1::~IStructureNode_v1()</a>, <a class="el" href="IUTF8String_8h_source.html#l00473">AdobeXMPCommon::IUTF8String_v1::~IUTF8String_v1()</a>, and <a class="el" href="IVersionable_8h_source.html#l00056">AdobeXMPCommon::IVersionable::~IVersionable()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3ad5c0d7b537a67fc621dd30670397df"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define SOURCE_COMPILING_XMPCOMMON_LIB&#160;&#160;&#160;0</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonDefines_8h_source.html#l00122">122</a> of file <a class="el" href="XMPCommonDefines_8h_source.html">XMPCommonDefines.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae1dbf35f9d0d606368d149565ca04006"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define SUPPORT_VARIADIC_TEMPLATES&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonDefines_8h_source.html#l00103">103</a> of file <a class="el" href="XMPCommonDefines_8h_source.html">XMPCommonDefines.h</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/XMPCommonDefines_8h.js b/docs/API/XMPCommonDefines_8h.js
new file mode 100755
index 0000000..9242e41
--- /dev/null
+++ b/docs/API/XMPCommonDefines_8h.js
@@ -0,0 +1,28 @@
+var XMPCommonDefines_8h =
+[
+ [ "__NOTHROW__", "XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2", null ],
+ [ "BASE_CLASS", "XMPCommonDefines_8h.html#affa2ae123fa7bf387394d5ba499b1441", null ],
+ [ "BUILDING_XMPCOMMON_LIB", "XMPCommonDefines_8h.html#a5686c8f09ffafbdc3b46817eea895bc2", null ],
+ [ "EXPAND_MACRO", "XMPCommonDefines_8h.html#a4ec864140f86759daee62dd337b61501", null ],
+ [ "JOIN_CLASSNAME_WITH_VERSION_NUMBER", "XMPCommonDefines_8h.html#a944a0a31a728943ffb6f1bf62712649a", null ],
+ [ "JOIN_CLASSNAME_WITH_VERSION_NUMBER_INT", "XMPCommonDefines_8h.html#aae4268f82f1d5d97bb483fef36f252ee", null ],
+ [ "QUOTEME", "XMPCommonDefines_8h.html#a4dd82e6c008275864ab4059ce2e2e4e9", null ],
+ [ "QUOTEME2", "XMPCommonDefines_8h.html#a1fd06a6a11b9c1c9d7998e8ef08d0c77", null ],
+ [ "REQ_FRIEND_CLASS_DECLARATION", "XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4", null ],
+ [ "SOURCE_COMPILING_XMPCOMMON_LIB", "XMPCommonDefines_8h.html#a3ad5c0d7b537a67fc621dd30670397df", null ],
+ [ "SUPPORT_VARIADIC_TEMPLATES", "XMPCommonDefines_8h.html#ae1dbf35f9d0d606368d149565ca04006", null ],
+ [ "int32", "XMPCommonDefines_8h.html#a070d4ea981e6080468e9a3cdbd82b458", null ],
+ [ "int64", "XMPCommonDefines_8h.html#aee4f68e01de51c2cf1c1044ecafebc25", null ],
+ [ "sizet", "XMPCommonDefines_8h.html#a1c85c2f558b495c3d41eabe692a96cf2", null ],
+ [ "uint32", "XMPCommonDefines_8h.html#a0b1bbe96e1a757e66974c2f076afe4d2", null ],
+ [ "uint64", "XMPCommonDefines_8h.html#aea1d692da07b844d1f642b47ea6a91bd", null ],
+ [ "kAllBits", "XMPCommonDefines_8h.html#a3e31c8b25cbf95c42b8e439071bdf865", null ],
+ [ "kIConfigurationManagerID", "XMPCommonDefines_8h.html#af73d2c15fb6abf10bf2b82be984d9be0", null ],
+ [ "kIErrorID", "XMPCommonDefines_8h.html#ad4c8ddc8db2d27cbcc0d88688fabdd93", null ],
+ [ "kIErrorNotifierID", "XMPCommonDefines_8h.html#ab7bbf3293de0d0539f3cbb65b7680252", null ],
+ [ "kIObjectFactoryID", "XMPCommonDefines_8h.html#a3eaf39cde126acb079462286763ca44a", null ],
+ [ "kIUTF8StringID", "XMPCommonDefines_8h.html#a97f984a3b999db35dd915b17322c8c7f", null ],
+ [ "kMaxEnumValue", "XMPCommonDefines_8h.html#a8ec7e2a77ea452c3d46bb7dbbc722574", null ],
+ [ "kMaxSize", "XMPCommonDefines_8h.html#a509d67aa4eb5b6a31db63f448d2a2343", null ],
+ [ "npos", "XMPCommonDefines_8h.html#afc1bfa88991003b305ab5023b483d3f9", null ]
+]; \ No newline at end of file
diff --git a/docs/API/XMPCommonDefines_8h_source.html b/docs/API/XMPCommonDefines_8h_source.html
new file mode 100755
index 0000000..5db2521
--- /dev/null
+++ b/docs/API/XMPCommonDefines_8h_source.html
@@ -0,0 +1,66 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/XMPCommonDefines.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('XMPCommonDefines_8h_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">XMPCommonDefines.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="XMPCommonDefines_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __XMPCommonDefines_h__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __XMPCommonDefines_h__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright 2014 Adobe Systems Incorporated</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// All Rights Reserved.</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// XMP_CommonDefines.h - Common Defines across all the XMP Components</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// ================================================================</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// This header defines common definitions to be used across all the XMP Components.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// All Platform Settings</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// ===========================</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="XMP__Environment_8h.html">XMP_Environment.h</a>&quot;</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#if !XMP_WinBuild</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor"> #include &lt;ciso646&gt;</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="comment">// Macintosh Specific Settings</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="comment">// ===========================</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor"> #if XMP_MacBuild</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor"> #define SUPPORT_STD_ATOMIC_IMPLEMENTATION 0</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor"> #ifdef _LIBCPP_VERSION</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor"> #define SUPPORT_SHARED_POINTERS_IN_TR1 0</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor"> #define SUPPORT_SHARED_POINTERS_IN_STD 1</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor"> #else</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor"> #define SUPPORT_SHARED_POINTERS_IN_TR1 1</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor"> #define SUPPORT_SHARED_POINTERS_IN_STD 0</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor"> #define SUPPORT_SHARED_POINTERS_WITH_ALLOCATORS 0</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor"> #define BAD_EXCEPTION_SUPPORT_STRINGS 0</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor"> #define VECTOR_SUPPORT_CONST_ITERATOR_FUNCTIONS 0</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor"> #define SUPPORT_VARIADIC_TEMPLATES 0</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="comment">// IOS Specific Settings</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="comment">// ===========================</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor"> #if XMP_iOSBuild</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"> #define SUPPORT_STD_ATOMIC_IMPLEMENTATION 0</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor"> #ifdef _LIBCPP_VERSION</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor"> #define SUPPORT_SHARED_POINTERS_IN_TR1 0</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor"> #define SUPPORT_SHARED_POINTERS_IN_STD 1</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor"> #else</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor"> #define SUPPORT_SHARED_POINTERS_IN_TR1 1</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor"> #define SUPPORT_SHARED_POINTERS_IN_STD 0</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"> #define SUPPORT_SHARED_POINTERS_WITH_ALLOCATORS 0</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor"> #define BAD_EXCEPTION_SUPPORT_STRINGS 0</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor"> #define VECTOR_SUPPORT_CONST_ITERATOR_FUNCTIONS 0</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor"> #define SUPPORT_VARIADIC_TEMPLATES 0</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="comment">// Windows Specific Settings</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="comment">// =========================</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor"> #if XMP_WinBuild</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor"> #define SUPPORT_SHARED_POINTERS_WITH_ALLOCATORS 1</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor"> #if _MSC_VER &lt;= 1600</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor"> #define SUPPORT_STD_ATOMIC_IMPLEMENTATION 0</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor"> #define SUPPORT_SHARED_POINTERS_IN_TR1 1</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor"> #define SUPPORT_SHARED_POINTERS_IN_STD 0</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor"> #else</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor"> #define SUPPORT_STD_ATOMIC_IMPLEMENTATION 1</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor"> #define SUPPORT_SHARED_POINTERS_IN_TR1 0</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor"> #define SUPPORT_SHARED_POINTERS_IN_STD 1</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor"> #define BAD_EXCEPTION_SUPPORT_STRINGS 1</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor"> #define VECTOR_SUPPORT_CONST_ITERATOR_FUNCTIONS 1</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="comment">// UNIX Specific Settings</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="comment">// ======================</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor"> #if XMP_UNIXBuild</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor"> #define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor"> #if GCC_VERSION &gt;= 40800</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor"> #define SUPPORT_STD_ATOMIC_IMPLEMENTATION 1</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor"> #else</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor"> #define REQ_FRIEND_CLASS_DECLARATION() template&lt;typename _Ptr, std::_Lock_policy _Lp&gt; friend class std::_Sp_counted_ptr;</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor"> #define SUPPORT_STD_ATOMIC_IMPLEMENTATION 0</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="preprocessor"> #define SUPPORT_SHARED_POINTERS_IN_TR1 0</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="preprocessor"> #define SUPPORT_SHARED_POINTERS_IN_STD 1</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="preprocessor"> #define SUPPORT_SHARED_POINTERS_WITH_ALLOCATORS 0</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="preprocessor"> #define BAD_EXCEPTION_SUPPORT_STRINGS 0</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="preprocessor"> #define VECTOR_SUPPORT_CONST_ITERATOR_FUNCTIONS 1</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor"> #define SUPPORT_DYNAMIC_CAST_OPTIMIZATION 0</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="preprocessor"> #define SUPPORT_VARIADIC_TEMPLATES 0</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="preprocessor"> #ifndef SUPPORT_VARIADIC_TEMPLATES</span></div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="XMPCommonDefines_8h.html#ae1dbf35f9d0d606368d149565ca04006"> 103</a></span>&#160;<span class="preprocessor"> #define SUPPORT_VARIADIC_TEMPLATES 1</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor"> #ifndef REQ_FRIEND_CLASS_DECLARATION</span></div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4"> 107</a></span>&#160;<span class="preprocessor"> #define REQ_FRIEND_CLASS_DECLARATION()</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="XMPCommonDefines_8h.html#aae4268f82f1d5d97bb483fef36f252ee"> 110</a></span>&#160;<span class="preprocessor"> #define JOIN_CLASSNAME_WITH_VERSION_NUMBER_INT(x,y) x ## _v ## y</span></div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="XMPCommonDefines_8h.html#a944a0a31a728943ffb6f1bf62712649a"> 111</a></span>&#160;<span class="preprocessor"> #define JOIN_CLASSNAME_WITH_VERSION_NUMBER(x,y) JOIN_CLASSNAME_WITH_VERSION_NUMBER_INT(x,y)</span></div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="XMPCommonDefines_8h.html#affa2ae123fa7bf387394d5ba499b1441"> 112</a></span>&#160;<span class="preprocessor"> #define BASE_CLASS(classNameWithoutVersionNumber, versionNumber) JOIN_CLASSNAME_WITH_VERSION_NUMBER(classNameWithoutVersionNumber, versionNumber)</span></div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="XMPCommonDefines_8h.html#a4ec864140f86759daee62dd337b61501"> 113</a></span>&#160;<span class="preprocessor"> #define EXPAND_MACRO(X) X</span></div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="XMPCommonDefines_8h.html#a1fd06a6a11b9c1c9d7998e8ef08d0c77"> 114</a></span>&#160;<span class="preprocessor"> #define QUOTEME2(X) #X</span></div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="XMPCommonDefines_8h.html#a4dd82e6c008275864ab4059ce2e2e4e9"> 115</a></span>&#160;<span class="preprocessor"> #define QUOTEME(X) QUOTEME2(X)</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2"> 117</a></span>&#160;<span class="preprocessor"> #define __NOTHROW__ throw()</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="preprocessor"> #if SOURCE_COMPILING_XMP_ALL || SOURCE_COMPILING_XMPCORE_LIB || SOURCE_COMPILING_XMPCOMPAREANDMERGE_LIB || SOURCE_COMPILING_XMPEXTENSIONS_LIB</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="preprocessor"> #define SOURCE_COMPILING_XMPCOMMON_LIB 1</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="preprocessor"> #else</span></div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="XMPCommonDefines_8h.html#a3ad5c0d7b537a67fc621dd30670397df"> 122</a></span>&#160;<span class="preprocessor"> #define SOURCE_COMPILING_XMPCOMMON_LIB 0</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="preprocessor"> #ifndef BUILDING_XMPCOMMON_LIB</span></div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="XMPCommonDefines_8h.html#a5686c8f09ffafbdc3b46817eea895bc2"> 126</a></span>&#160;<span class="preprocessor"> #define BUILDING_XMPCOMMON_LIB 0</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="preprocessor"> #if BUILDING_XMPCOMMON_LIB</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="preprocessor"> #if !BUILDING_XMPCOMMON_AS_STATIC &amp;&amp; !BUILDING_XMPCOMMON_AS_DYNAMIC</span></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="preprocessor"> #error &quot;Define either BUILDING_XMPCOMMON_AS_STATIC as 1 or BUILDING_XMPCOMMON_AS_DYNAMIC as 1&quot;</span></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="preprocessor"> #ifndef __XMP_Const_h__</span></div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="preprocessor"> #include &quot;<a class="code" href="XMP__Const_8h.html">XMP_Const.h</a>&quot;</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">namespace </span><a class="code" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a> {</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#aee4f68e01de51c2cf1c1044ecafebc25"> 141</a></span>&#160; <span class="keyword">typedef</span> XMP_Int64 <a class="code" href="namespaceAdobeXMPCommon.html#aee4f68e01de51c2cf1c1044ecafebc25">int64</a>;</div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd"> 142</a></span>&#160; <span class="keyword">typedef</span> XMP_Uns64 <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>;</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a070d4ea981e6080468e9a3cdbd82b458"> 143</a></span>&#160; <span class="keyword">typedef</span> XMP_Int32 <a class="code" href="namespaceAdobeXMPCommon.html#a070d4ea981e6080468e9a3cdbd82b458">int32</a>;</div><div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2"> 144</a></span>&#160; <span class="keyword">typedef</span> XMP_Uns32 <a class="code" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a>;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="preprocessor"> #if !XMP_64</span></div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2"> 146</a></span>&#160; <span class="keyword">typedef</span> uint32 <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="preprocessor"> #else</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">typedef</span> uint64 <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">const</span> sizet <a class="code" href="namespaceAdobeXMPCommon.html#a509d67aa4eb5b6a31db63f448d2a2343">kMaxSize</a> ( ( sizet ) -1 );</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">const</span> sizet <a class="code" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a> ( <a class="code" href="namespaceAdobeXMPCommon.html#a509d67aa4eb5b6a31db63f448d2a2343">kMaxSize</a> );</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="comment">// force an enum type to be represented in 32 bits</span></div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint32 <a class="code" href="namespaceAdobeXMPCommon.html#a8ec7e2a77ea452c3d46bb7dbbc722574">kMaxEnumValue</a> ( <a class="code" href="XMP__Const_8h.html#adc36ebc09374b4400ebc68df37a5abad">Max_XMP_Uns32</a> );</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint32 <a class="code" href="namespaceAdobeXMPCommon.html#a3e31c8b25cbf95c42b8e439071bdf865">kAllBits</a> ( 0xFFFFFFFF );</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="comment">// unique ids for the interfaces defined in the namespace</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint64 <a class="code" href="namespaceAdobeXMPCommon.html#ad4c8ddc8db2d27cbcc0d88688fabdd93">kIErrorID</a> ( 0x6e4572726f722020 <span class="comment">/* nError */</span> );</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint64 <a class="code" href="namespaceAdobeXMPCommon.html#a97f984a3b999db35dd915b17322c8c7f">kIUTF8StringID</a> ( 0x6e55544638537472 <span class="comment">/* nUTF8Str */</span> );</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint64 <a class="code" href="namespaceAdobeXMPCommon.html#a3eaf39cde126acb079462286763ca44a">kIObjectFactoryID</a> ( 0x6e4f626a46616374 <span class="comment">/* nObjFact */</span> );</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint64 <a class="code" href="namespaceAdobeXMPCommon.html#ab7bbf3293de0d0539f3cbb65b7680252">kIErrorNotifierID</a> ( 0x6e4572724e6f7466 <span class="comment">/* nErrNotf */</span> );</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint64 <a class="code" href="namespaceAdobeXMPCommon.html#af73d2c15fb6abf10bf2b82be984d9be0">kIConfigurationManagerID</a> ( 0x6e436f6e664d6772 <span class="comment">/* nConfMgr */</span> );</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; } <span class="comment">// namespace AdobeXMPCommon</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="preprocessor">#endif // __XMPCommonDefines_h__</span></div><div class="ttc" id="namespaceAdobeXMPCommon_html_aea1d692da07b844d1f642b47ea6a91bd"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">AdobeXMPCommon::uint64</a></div><div class="ttdeci">XMP_Uns64 uint64</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00142">XMPCommonDefines.h:142</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_aee4f68e01de51c2cf1c1044ecafebc25"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#aee4f68e01de51c2cf1c1044ecafebc25">AdobeXMPCommon::int64</a></div><div class="ttdeci">XMP_Int64 int64</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00141">XMPCommonDefines.h:141</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_ab7bbf3293de0d0539f3cbb65b7680252"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#ab7bbf3293de0d0539f3cbb65b7680252">AdobeXMPCommon::kIErrorNotifierID</a></div><div class="ttdeci">static const uint64 kIErrorNotifierID(0x6e4572724e6f7466)</div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a509d67aa4eb5b6a31db63f448d2a2343"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a509d67aa4eb5b6a31db63f448d2a2343">AdobeXMPCommon::kMaxSize</a></div><div class="ttdeci">const sizet kMaxSize((sizet)-1)</div></div>
+<div class="ttc" id="XMP__Const_8h_html"><div class="ttname"><a href="XMP__Const_8h.html">XMP_Const.h</a></div><div class="ttdoc">Common C/C++ types and constants for the XMP toolkit. </div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_afc1bfa88991003b305ab5023b483d3f9"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a></div><div class="ttdeci">const sizet npos(kMaxSize)</div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a3e31c8b25cbf95c42b8e439071bdf865"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a3e31c8b25cbf95c42b8e439071bdf865">AdobeXMPCommon::kAllBits</a></div><div class="ttdeci">static const uint32 kAllBits(0xFFFFFFFF)</div></div>
+<div class="ttc" id="XMP__Const_8h_html_adc36ebc09374b4400ebc68df37a5abad"><div class="ttname"><a href="XMP__Const_8h.html#adc36ebc09374b4400ebc68df37a5abad">Max_XMP_Uns32</a></div><div class="ttdeci">static const XMP_Uns32 Max_XMP_Uns32</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00114">XMP_Const.h:114</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html"><div class="ttname"><a href="XMP__Environment_8h.html">XMP_Environment.h</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a3eaf39cde126acb079462286763ca44a"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a3eaf39cde126acb079462286763ca44a">AdobeXMPCommon::kIObjectFactoryID</a></div><div class="ttdeci">static const uint64 kIObjectFactoryID(0x6e4f626a46616374)</div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a1c85c2f558b495c3d41eabe692a96cf2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a></div><div class="ttdeci">uint32 sizet</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00146">XMPCommonDefines.h:146</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_af73d2c15fb6abf10bf2b82be984d9be0"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#af73d2c15fb6abf10bf2b82be984d9be0">AdobeXMPCommon::kIConfigurationManagerID</a></div><div class="ttdeci">static const uint64 kIConfigurationManagerID(0x6e436f6e664d6772)</div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8ec7e2a77ea452c3d46bb7dbbc722574"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8ec7e2a77ea452c3d46bb7dbbc722574">AdobeXMPCommon::kMaxEnumValue</a></div><div class="ttdeci">static const uint32 kMaxEnumValue(Max_XMP_Uns32)</div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a070d4ea981e6080468e9a3cdbd82b458"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a070d4ea981e6080468e9a3cdbd82b458">AdobeXMPCommon::int32</a></div><div class="ttdeci">XMP_Int32 int32</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00143">XMPCommonDefines.h:143</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html"><div class="ttname"><a href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a></div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00019">IConfigurable.h:19</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_ad4c8ddc8db2d27cbcc0d88688fabdd93"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#ad4c8ddc8db2d27cbcc0d88688fabdd93">AdobeXMPCommon::kIErrorID</a></div><div class="ttdeci">static const uint64 kIErrorID(0x6e4572726f722020)</div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a0b1bbe96e1a757e66974c2f076afe4d2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">AdobeXMPCommon::uint32</a></div><div class="ttdeci">XMP_Uns32 uint32</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00144">XMPCommonDefines.h:144</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a97f984a3b999db35dd915b17322c8c7f"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a97f984a3b999db35dd915b17322c8c7f">AdobeXMPCommon::kIUTF8StringID</a></div><div class="ttdeci">static const uint64 kIUTF8StringID(0x6e55544638537472)</div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/XMPCommonErrorCodes_8h.html b/docs/API/XMPCommonErrorCodes_8h.html
new file mode 100755
index 0000000..ab00b89
--- /dev/null
+++ b/docs/API/XMPCommonErrorCodes_8h.html
@@ -0,0 +1,108 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/XMPCommonErrorCodes.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('XMPCommonErrorCodes_8h.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#namespaces">Namespaces</a> &#124;
+<a href="#enum-members">Enumerations</a> </div>
+ <div class="headertitle">
+<div class="title">XMPCommonErrorCodes.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="XMPCommonDefines_8h_source.html">XMPCommon/XMPCommonDefines.h</a>&quot;</code><br />
+</div>
+<p><a href="XMPCommonErrorCodes_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceAdobeXMPCommon"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:a8f3cda4a2111f1fccbcc182ca1cf5b14"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14">AdobeXMPCommon::eGeneralErrorCode</a> { <br />
+&#160;&#160;<a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac9bbc6373eb1432da67162e2d3d8ba00">AdobeXMPCommon::kGECNone</a> = 0,
+<a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac8114fd7fafcae7a7d13793cf32f84e4">AdobeXMPCommon::kGECParametersNotAsExpected</a> = 1,
+<a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac4d59c9d462932453e1e5b96efce4beb">AdobeXMPCommon::kGECVersionUnavailable</a> = 2,
+<a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac7ad8bab8d1d8f890d26a13076730473">AdobeXMPCommon::kGECAssertionFailure</a> = 3,
+<br />
+&#160;&#160;<a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a99ed4bfb1b57eea7e5ed9cdd6f63bb88">AdobeXMPCommon::kGECLogicalError</a> = 4,
+<a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a4d0d8c80b3932d6160a3117979cf59c7">AdobeXMPCommon::kGECIndexOutOfBounds</a> = 5,
+<a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aa85fc48596da99b5ac6ec775c5e9d4f1">AdobeXMPCommon::kGECInternalFailure</a> = 6,
+<a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a34f838480c145031638141ea204b9436">AdobeXMPCommon::kGECDeprecatedFunctionCall</a> = 7,
+<br />
+&#160;&#160;<a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aa089e0cea5a0b9fb19ed39c8d53ea624">AdobeXMPCommon::kGECExternalFailure</a> = 8,
+<a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ae5d6719cf38299f4f4bf170467c5e977">AdobeXMPCommon::kGECUnknownFailure</a> = 9,
+<a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aabc494bfa6cc5c42f4d6203a419943fe">AdobeXMPCommon::kGECUserAbort</a> = 10,
+<a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14af605e8ceabdf52ced8bf1a2961041719">AdobeXMPCommon::kGECInterfaceUnavailable</a> = 11,
+<br />
+&#160;&#160;<a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a84f703a7e6aed295b04266ba33e382db">AdobeXMPCommon::kGECClientThrownExceptionCaught</a> = 100,
+<a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ab6be1e47808269e89bff9854599179f0">AdobeXMPCommon::kGECStandardException</a> = 101,
+<a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a1ec371ab7db9ac473a04755491b4d996">AdobeXMPCommon::kGECUnknownExceptionCaught</a> = 200,
+<a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a38faaba6657c0fab6d51f2e7807ab560">AdobeXMPCommon::kGECNotImplemented</a> = 10000,
+<br />
+&#160;&#160;<a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aa3bc0d5f5b5bae142630473abaee9f1f">AdobeXMPCommon::kGECMaxValue</a> = kMaxEnumValue
+<br />
+ }<tr class="memdesc:a8f3cda4a2111f1fccbcc182ca1cf5b14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates various types of error codes within General Domain. <a href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:a8f3cda4a2111f1fccbcc182ca1cf5b14"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aba59dd1cfea0b1759617fc53108d92af"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#aba59dd1cfea0b1759617fc53108d92af">AdobeXMPCommon::eMemoryManagementErrorCode</a> { <a class="el" href="namespaceAdobeXMPCommon.html#aba59dd1cfea0b1759617fc53108d92afa2c2fba02472378e6f5621fa89f662754">AdobeXMPCommon::kMMECNone</a> = 0,
+<a class="el" href="namespaceAdobeXMPCommon.html#aba59dd1cfea0b1759617fc53108d92afa2bbd2fba1abe18a0abbeeb04276fa5d7">AdobeXMPCommon::kMMECAllocationFailure</a> = 1,
+<a class="el" href="namespaceAdobeXMPCommon.html#aba59dd1cfea0b1759617fc53108d92afa6c3458ee055e89d620fe6f9941658564">AdobeXMPCommon::kMMECMaxValue</a> = kMaxEnumValue
+ }<tr class="memdesc:aba59dd1cfea0b1759617fc53108d92af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates various types of error codes within Memory Management domain. <a href="namespaceAdobeXMPCommon.html#aba59dd1cfea0b1759617fc53108d92af">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:aba59dd1cfea0b1759617fc53108d92af"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a87fa911f1ea5a79801b7fe3530637c42"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42">AdobeXMPCommon::eConfigurableErrorCode</a> { <br />
+&#160;&#160;<a class="el" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a48a521a6e08fd24bef691efb926189f4">AdobeXMPCommon::kCECNone</a> = 0,
+<a class="el" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a78a9ef459e114b9e66dbd431d47e367f">AdobeXMPCommon::kCECKeyNotSupported</a> = 1,
+<a class="el" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a318281c6e6734794b732505f77ed7e1e">AdobeXMPCommon::kCECValueTypeNotSupported</a> = 2,
+<a class="el" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a9459b3f1895defa4a14e42f0d7c44c64">AdobeXMPCommon::kCECPreviousTypeDifferent</a> = 3,
+<br />
+&#160;&#160;<a class="el" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42ad00affae57206343bb1a2cbfd64a7727">AdobeXMPCommon::kCECValueTypeMismatch</a> = 4,
+<a class="el" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a4a285133844f12c9db30cac96272ca99">AdobeXMPCommon::kCECValueNotSupported</a> = 5,
+<a class="el" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a2da955fac9fd8e3e44105ee827c8bca8">AdobeXMPCommon::kCECodeMaxValue</a> = 0xFFFFFFFF
+<br />
+ }<tr class="memdesc:a87fa911f1ea5a79801b7fe3530637c42"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates various types of error codes within Configurable domain. <a href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:a87fa911f1ea5a79801b7fe3530637c42"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/XMPCommonErrorCodes_8h.js b/docs/API/XMPCommonErrorCodes_8h.js
new file mode 100755
index 0000000..6d9fc4c
--- /dev/null
+++ b/docs/API/XMPCommonErrorCodes_8h.js
@@ -0,0 +1,36 @@
+var XMPCommonErrorCodes_8h =
+[
+ [ "eConfigurableErrorCode", "XMPCommonErrorCodes_8h.html#a87fa911f1ea5a79801b7fe3530637c42", [
+ [ "kCECNone", "XMPCommonErrorCodes_8h.html#a87fa911f1ea5a79801b7fe3530637c42a48a521a6e08fd24bef691efb926189f4", null ],
+ [ "kCECKeyNotSupported", "XMPCommonErrorCodes_8h.html#a87fa911f1ea5a79801b7fe3530637c42a78a9ef459e114b9e66dbd431d47e367f", null ],
+ [ "kCECValueTypeNotSupported", "XMPCommonErrorCodes_8h.html#a87fa911f1ea5a79801b7fe3530637c42a318281c6e6734794b732505f77ed7e1e", null ],
+ [ "kCECPreviousTypeDifferent", "XMPCommonErrorCodes_8h.html#a87fa911f1ea5a79801b7fe3530637c42a9459b3f1895defa4a14e42f0d7c44c64", null ],
+ [ "kCECValueTypeMismatch", "XMPCommonErrorCodes_8h.html#a87fa911f1ea5a79801b7fe3530637c42ad00affae57206343bb1a2cbfd64a7727", null ],
+ [ "kCECValueNotSupported", "XMPCommonErrorCodes_8h.html#a87fa911f1ea5a79801b7fe3530637c42a4a285133844f12c9db30cac96272ca99", null ],
+ [ "kCECodeMaxValue", "XMPCommonErrorCodes_8h.html#a87fa911f1ea5a79801b7fe3530637c42a2da955fac9fd8e3e44105ee827c8bca8", null ]
+ ] ],
+ [ "eGeneralErrorCode", "XMPCommonErrorCodes_8h.html#a8f3cda4a2111f1fccbcc182ca1cf5b14", [
+ [ "kGECNone", "XMPCommonErrorCodes_8h.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac9bbc6373eb1432da67162e2d3d8ba00", null ],
+ [ "kGECParametersNotAsExpected", "XMPCommonErrorCodes_8h.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac8114fd7fafcae7a7d13793cf32f84e4", null ],
+ [ "kGECVersionUnavailable", "XMPCommonErrorCodes_8h.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac4d59c9d462932453e1e5b96efce4beb", null ],
+ [ "kGECAssertionFailure", "XMPCommonErrorCodes_8h.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac7ad8bab8d1d8f890d26a13076730473", null ],
+ [ "kGECLogicalError", "XMPCommonErrorCodes_8h.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a99ed4bfb1b57eea7e5ed9cdd6f63bb88", null ],
+ [ "kGECIndexOutOfBounds", "XMPCommonErrorCodes_8h.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a4d0d8c80b3932d6160a3117979cf59c7", null ],
+ [ "kGECInternalFailure", "XMPCommonErrorCodes_8h.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aa85fc48596da99b5ac6ec775c5e9d4f1", null ],
+ [ "kGECDeprecatedFunctionCall", "XMPCommonErrorCodes_8h.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a34f838480c145031638141ea204b9436", null ],
+ [ "kGECExternalFailure", "XMPCommonErrorCodes_8h.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aa089e0cea5a0b9fb19ed39c8d53ea624", null ],
+ [ "kGECUnknownFailure", "XMPCommonErrorCodes_8h.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ae5d6719cf38299f4f4bf170467c5e977", null ],
+ [ "kGECUserAbort", "XMPCommonErrorCodes_8h.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aabc494bfa6cc5c42f4d6203a419943fe", null ],
+ [ "kGECInterfaceUnavailable", "XMPCommonErrorCodes_8h.html#a8f3cda4a2111f1fccbcc182ca1cf5b14af605e8ceabdf52ced8bf1a2961041719", null ],
+ [ "kGECClientThrownExceptionCaught", "XMPCommonErrorCodes_8h.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a84f703a7e6aed295b04266ba33e382db", null ],
+ [ "kGECStandardException", "XMPCommonErrorCodes_8h.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ab6be1e47808269e89bff9854599179f0", null ],
+ [ "kGECUnknownExceptionCaught", "XMPCommonErrorCodes_8h.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a1ec371ab7db9ac473a04755491b4d996", null ],
+ [ "kGECNotImplemented", "XMPCommonErrorCodes_8h.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a38faaba6657c0fab6d51f2e7807ab560", null ],
+ [ "kGECMaxValue", "XMPCommonErrorCodes_8h.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aa3bc0d5f5b5bae142630473abaee9f1f", null ]
+ ] ],
+ [ "eMemoryManagementErrorCode", "XMPCommonErrorCodes_8h.html#aba59dd1cfea0b1759617fc53108d92af", [
+ [ "kMMECNone", "XMPCommonErrorCodes_8h.html#aba59dd1cfea0b1759617fc53108d92afa2c2fba02472378e6f5621fa89f662754", null ],
+ [ "kMMECAllocationFailure", "XMPCommonErrorCodes_8h.html#aba59dd1cfea0b1759617fc53108d92afa2bbd2fba1abe18a0abbeeb04276fa5d7", null ],
+ [ "kMMECMaxValue", "XMPCommonErrorCodes_8h.html#aba59dd1cfea0b1759617fc53108d92afa6c3458ee055e89d620fe6f9941658564", null ]
+ ] ]
+]; \ No newline at end of file
diff --git a/docs/API/XMPCommonErrorCodes_8h_source.html b/docs/API/XMPCommonErrorCodes_8h_source.html
new file mode 100755
index 0000000..79d1448
--- /dev/null
+++ b/docs/API/XMPCommonErrorCodes_8h_source.html
@@ -0,0 +1,81 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/XMPCommonErrorCodes.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('XMPCommonErrorCodes_8h_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">XMPCommonErrorCodes.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="XMPCommonErrorCodes_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef XMPCommonErrorCodes_h__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define XMPCommonErrorCodes_h__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// ADOBE SYSTEMS INCORPORATED</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// Copyright 2014 Adobe Systems Incorporated</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// All Rights Reserved</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="XMPCommonDefines_8h.html">XMPCommon/XMPCommonDefines.h</a>&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a> {</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14"> 20</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">enum</span> {</div><div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac9bbc6373eb1432da67162e2d3d8ba00"> 22</a></span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac9bbc6373eb1432da67162e2d3d8ba00">kGECNone</a> = 0,</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac8114fd7fafcae7a7d13793cf32f84e4"> 25</a></span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac8114fd7fafcae7a7d13793cf32f84e4">kGECParametersNotAsExpected</a> = 1,</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac4d59c9d462932453e1e5b96efce4beb"> 28</a></span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac4d59c9d462932453e1e5b96efce4beb">kGECVersionUnavailable</a> = 2,</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac7ad8bab8d1d8f890d26a13076730473"> 31</a></span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac7ad8bab8d1d8f890d26a13076730473">kGECAssertionFailure</a> = 3,</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a99ed4bfb1b57eea7e5ed9cdd6f63bb88"> 34</a></span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a99ed4bfb1b57eea7e5ed9cdd6f63bb88">kGECLogicalError</a> = 4,</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a4d0d8c80b3932d6160a3117979cf59c7"> 37</a></span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a4d0d8c80b3932d6160a3117979cf59c7">kGECIndexOutOfBounds</a> = 5,</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aa85fc48596da99b5ac6ec775c5e9d4f1"> 40</a></span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aa85fc48596da99b5ac6ec775c5e9d4f1">kGECInternalFailure</a> = 6,</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a34f838480c145031638141ea204b9436"> 43</a></span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a34f838480c145031638141ea204b9436">kGECDeprecatedFunctionCall</a> = 7,</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aa089e0cea5a0b9fb19ed39c8d53ea624"> 46</a></span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aa089e0cea5a0b9fb19ed39c8d53ea624">kGECExternalFailure</a> = 8,</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ae5d6719cf38299f4f4bf170467c5e977"> 49</a></span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ae5d6719cf38299f4f4bf170467c5e977">kGECUnknownFailure</a> = 9,</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aabc494bfa6cc5c42f4d6203a419943fe"> 52</a></span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aabc494bfa6cc5c42f4d6203a419943fe">kGECUserAbort</a> = 10,</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14af605e8ceabdf52ced8bf1a2961041719"> 55</a></span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14af605e8ceabdf52ced8bf1a2961041719">kGECInterfaceUnavailable</a> = 11,</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a84f703a7e6aed295b04266ba33e382db"> 58</a></span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a84f703a7e6aed295b04266ba33e382db">kGECClientThrownExceptionCaught</a> = 100,</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ab6be1e47808269e89bff9854599179f0"> 61</a></span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ab6be1e47808269e89bff9854599179f0">kGECStandardException</a> = 101,</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a1ec371ab7db9ac473a04755491b4d996"> 64</a></span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a1ec371ab7db9ac473a04755491b4d996">kGECUnknownExceptionCaught</a> = 200,</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a38faaba6657c0fab6d51f2e7807ab560"> 67</a></span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a38faaba6657c0fab6d51f2e7807ab560">kGECNotImplemented</a> = 10000,</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aa3bc0d5f5b5bae142630473abaee9f1f"> 70</a></span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aa3bc0d5f5b5bae142630473abaee9f1f">kGECMaxValue</a> = <a class="code" href="namespaceAdobeXMPCommon.html#a8ec7e2a77ea452c3d46bb7dbbc722574">kMaxEnumValue</a></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; } <a class="code" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14">eGeneralErrorCode</a>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#aba59dd1cfea0b1759617fc53108d92af"> 76</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">enum</span> {</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#aba59dd1cfea0b1759617fc53108d92afa2c2fba02472378e6f5621fa89f662754"> 78</a></span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#aba59dd1cfea0b1759617fc53108d92afa2c2fba02472378e6f5621fa89f662754">kMMECNone</a> = 0,</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#aba59dd1cfea0b1759617fc53108d92afa2bbd2fba1abe18a0abbeeb04276fa5d7"> 81</a></span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#aba59dd1cfea0b1759617fc53108d92afa2bbd2fba1abe18a0abbeeb04276fa5d7">kMMECAllocationFailure</a> = 1,</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#aba59dd1cfea0b1759617fc53108d92afa6c3458ee055e89d620fe6f9941658564"> 84</a></span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#aba59dd1cfea0b1759617fc53108d92afa6c3458ee055e89d620fe6f9941658564">kMMECMaxValue</a> = <a class="code" href="namespaceAdobeXMPCommon.html#a8ec7e2a77ea452c3d46bb7dbbc722574">kMaxEnumValue</a></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; } <a class="code" href="namespaceAdobeXMPCommon.html#aba59dd1cfea0b1759617fc53108d92af">eMemoryManagementErrorCode</a>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42"> 90</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">enum</span> {</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a48a521a6e08fd24bef691efb926189f4"> 92</a></span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a48a521a6e08fd24bef691efb926189f4">kCECNone</a> = 0,</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a78a9ef459e114b9e66dbd431d47e367f"> 95</a></span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a78a9ef459e114b9e66dbd431d47e367f">kCECKeyNotSupported</a> = 1,</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a318281c6e6734794b732505f77ed7e1e"> 98</a></span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a318281c6e6734794b732505f77ed7e1e">kCECValueTypeNotSupported</a> = 2,</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a9459b3f1895defa4a14e42f0d7c44c64"> 101</a></span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a9459b3f1895defa4a14e42f0d7c44c64">kCECPreviousTypeDifferent</a> = 3,</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42ad00affae57206343bb1a2cbfd64a7727"> 104</a></span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42ad00affae57206343bb1a2cbfd64a7727">kCECValueTypeMismatch</a> = 4,</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a4a285133844f12c9db30cac96272ca99"> 107</a></span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a4a285133844f12c9db30cac96272ca99">kCECValueNotSupported</a> = 5,</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a2da955fac9fd8e3e44105ee827c8bca8"> 110</a></span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a2da955fac9fd8e3e44105ee827c8bca8">kCECodeMaxValue</a> = 0xFFFFFFFF</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; } <a class="code" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42">eConfigurableErrorCode</a>;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;}</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="preprocessor">#endif // XMPCommonErrorCodes_h__</span></div><div class="ttc" id="namespaceAdobeXMPCommon_html_a87fa911f1ea5a79801b7fe3530637c42a318281c6e6734794b732505f77ed7e1e"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a318281c6e6734794b732505f77ed7e1e">AdobeXMPCommon::kCECValueTypeNotSupported</a></div><div class="ttdoc">Indicates different type of value provided than the one supported for a key. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00098">XMPCommonErrorCodes.h:98</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a87fa911f1ea5a79801b7fe3530637c42"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42">AdobeXMPCommon::eConfigurableErrorCode</a></div><div class="ttdeci">eConfigurableErrorCode</div><div class="ttdoc">Indicates various types of error codes within Configurable domain. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00090">XMPCommonErrorCodes.h:90</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8f3cda4a2111f1fccbcc182ca1cf5b14af605e8ceabdf52ced8bf1a2961041719"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14af605e8ceabdf52ced8bf1a2961041719">AdobeXMPCommon::kGECInterfaceUnavailable</a></div><div class="ttdoc">Indicates a particular interface is not available. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00055">XMPCommonErrorCodes.h:55</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html"><div class="ttname"><a href="XMPCommonDefines_8h.html">XMPCommonDefines.h</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8f3cda4a2111f1fccbcc182ca1cf5b14a99ed4bfb1b57eea7e5ed9cdd6f63bb88"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a99ed4bfb1b57eea7e5ed9cdd6f63bb88">AdobeXMPCommon::kGECLogicalError</a></div><div class="ttdoc">Indicates logic failure. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00034">XMPCommonErrorCodes.h:34</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a87fa911f1ea5a79801b7fe3530637c42a48a521a6e08fd24bef691efb926189f4"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a48a521a6e08fd24bef691efb926189f4">AdobeXMPCommon::kCECNone</a></div><div class="ttdoc">Indicates no error. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00092">XMPCommonErrorCodes.h:92</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8f3cda4a2111f1fccbcc182ca1cf5b14a84f703a7e6aed295b04266ba33e382db"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a84f703a7e6aed295b04266ba33e382db">AdobeXMPCommon::kGECClientThrownExceptionCaught</a></div><div class="ttdoc">Indicates that client code has thrown some exception. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00058">XMPCommonErrorCodes.h:58</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8f3cda4a2111f1fccbcc182ca1cf5b14ac9bbc6373eb1432da67162e2d3d8ba00"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac9bbc6373eb1432da67162e2d3d8ba00">AdobeXMPCommon::kGECNone</a></div><div class="ttdoc">Indicates no error. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00022">XMPCommonErrorCodes.h:22</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a87fa911f1ea5a79801b7fe3530637c42a4a285133844f12c9db30cac96272ca99"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a4a285133844f12c9db30cac96272ca99">AdobeXMPCommon::kCECValueNotSupported</a></div><div class="ttdoc">Indicates an invalid value is provided. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00107">XMPCommonErrorCodes.h:107</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a87fa911f1ea5a79801b7fe3530637c42a2da955fac9fd8e3e44105ee827c8bca8"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a2da955fac9fd8e3e44105ee827c8bca8">AdobeXMPCommon::kCECodeMaxValue</a></div><div class="ttdoc">Maximum value this enum can hold, should be treated as invalid value. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00110">XMPCommonErrorCodes.h:110</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8f3cda4a2111f1fccbcc182ca1cf5b14a34f838480c145031638141ea204b9436"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a34f838480c145031638141ea204b9436">AdobeXMPCommon::kGECDeprecatedFunctionCall</a></div><div class="ttdoc">Indicates a call to deprecated function. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00043">XMPCommonErrorCodes.h:43</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_aba59dd1cfea0b1759617fc53108d92af"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#aba59dd1cfea0b1759617fc53108d92af">AdobeXMPCommon::eMemoryManagementErrorCode</a></div><div class="ttdeci">eMemoryManagementErrorCode</div><div class="ttdoc">Indicates various types of error codes within Memory Management domain. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00076">XMPCommonErrorCodes.h:76</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_aba59dd1cfea0b1759617fc53108d92afa2bbd2fba1abe18a0abbeeb04276fa5d7"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#aba59dd1cfea0b1759617fc53108d92afa2bbd2fba1abe18a0abbeeb04276fa5d7">AdobeXMPCommon::kMMECAllocationFailure</a></div><div class="ttdoc">Indicates that allocation has failed. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00081">XMPCommonErrorCodes.h:81</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a87fa911f1ea5a79801b7fe3530637c42a78a9ef459e114b9e66dbd431d47e367f"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a78a9ef459e114b9e66dbd431d47e367f">AdobeXMPCommon::kCECKeyNotSupported</a></div><div class="ttdoc">Indicates that key is not supported by the object. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00095">XMPCommonErrorCodes.h:95</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8f3cda4a2111f1fccbcc182ca1cf5b14ae5d6719cf38299f4f4bf170467c5e977"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ae5d6719cf38299f4f4bf170467c5e977">AdobeXMPCommon::kGECUnknownFailure</a></div><div class="ttdoc">Indicates an unknown failure. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00049">XMPCommonErrorCodes.h:49</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8f3cda4a2111f1fccbcc182ca1cf5b14a38faaba6657c0fab6d51f2e7807ab560"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a38faaba6657c0fab6d51f2e7807ab560">AdobeXMPCommon::kGECNotImplemented</a></div><div class="ttdoc">Indicates that functionality is not yet implemented. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00067">XMPCommonErrorCodes.h:67</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_aba59dd1cfea0b1759617fc53108d92afa2c2fba02472378e6f5621fa89f662754"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#aba59dd1cfea0b1759617fc53108d92afa2c2fba02472378e6f5621fa89f662754">AdobeXMPCommon::kMMECNone</a></div><div class="ttdoc">Indicates no error. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00078">XMPCommonErrorCodes.h:78</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8f3cda4a2111f1fccbcc182ca1cf5b14a1ec371ab7db9ac473a04755491b4d996"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a1ec371ab7db9ac473a04755491b4d996">AdobeXMPCommon::kGECUnknownExceptionCaught</a></div><div class="ttdoc">Indicates that some unknown exception has occurred. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00064">XMPCommonErrorCodes.h:64</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8f3cda4a2111f1fccbcc182ca1cf5b14aabc494bfa6cc5c42f4d6203a419943fe"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aabc494bfa6cc5c42f4d6203a419943fe">AdobeXMPCommon::kGECUserAbort</a></div><div class="ttdoc">Indicates an error due to User Abort. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00052">XMPCommonErrorCodes.h:52</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8f3cda4a2111f1fccbcc182ca1cf5b14a4d0d8c80b3932d6160a3117979cf59c7"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a4d0d8c80b3932d6160a3117979cf59c7">AdobeXMPCommon::kGECIndexOutOfBounds</a></div><div class="ttdoc">Indicates index provided is out of bounds. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00037">XMPCommonErrorCodes.h:37</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8f3cda4a2111f1fccbcc182ca1cf5b14ab6be1e47808269e89bff9854599179f0"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ab6be1e47808269e89bff9854599179f0">AdobeXMPCommon::kGECStandardException</a></div><div class="ttdoc">Indicates that standard exception has occurred. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00061">XMPCommonErrorCodes.h:61</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8f3cda4a2111f1fccbcc182ca1cf5b14aa3bc0d5f5b5bae142630473abaee9f1f"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aa3bc0d5f5b5bae142630473abaee9f1f">AdobeXMPCommon::kGECMaxValue</a></div><div class="ttdoc">Maximum value this enum can hold, should be treated as invalid value. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00070">XMPCommonErrorCodes.h:70</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8f3cda4a2111f1fccbcc182ca1cf5b14aa85fc48596da99b5ac6ec775c5e9d4f1"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aa85fc48596da99b5ac6ec775c5e9d4f1">AdobeXMPCommon::kGECInternalFailure</a></div><div class="ttdoc">Indicates an internal failure. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00040">XMPCommonErrorCodes.h:40</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8f3cda4a2111f1fccbcc182ca1cf5b14aa089e0cea5a0b9fb19ed39c8d53ea624"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aa089e0cea5a0b9fb19ed39c8d53ea624">AdobeXMPCommon::kGECExternalFailure</a></div><div class="ttdoc">Indicates an external failure. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00046">XMPCommonErrorCodes.h:46</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_aba59dd1cfea0b1759617fc53108d92afa6c3458ee055e89d620fe6f9941658564"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#aba59dd1cfea0b1759617fc53108d92afa6c3458ee055e89d620fe6f9941658564">AdobeXMPCommon::kMMECMaxValue</a></div><div class="ttdoc">Maximum value this enum can hold, should be treated as invalid value. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00084">XMPCommonErrorCodes.h:84</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8f3cda4a2111f1fccbcc182ca1cf5b14ac8114fd7fafcae7a7d13793cf32f84e4"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac8114fd7fafcae7a7d13793cf32f84e4">AdobeXMPCommon::kGECParametersNotAsExpected</a></div><div class="ttdoc">Indicates that parameters passed to function are not as expected. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00025">XMPCommonErrorCodes.h:25</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8ec7e2a77ea452c3d46bb7dbbc722574"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8ec7e2a77ea452c3d46bb7dbbc722574">AdobeXMPCommon::kMaxEnumValue</a></div><div class="ttdeci">static const uint32 kMaxEnumValue(Max_XMP_Uns32)</div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html"><div class="ttname"><a href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a></div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00019">IConfigurable.h:19</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8f3cda4a2111f1fccbcc182ca1cf5b14"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14">AdobeXMPCommon::eGeneralErrorCode</a></div><div class="ttdeci">eGeneralErrorCode</div><div class="ttdoc">Indicates various types of error codes within General Domain. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00020">XMPCommonErrorCodes.h:20</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a87fa911f1ea5a79801b7fe3530637c42a9459b3f1895defa4a14e42f0d7c44c64"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a9459b3f1895defa4a14e42f0d7c44c64">AdobeXMPCommon::kCECPreviousTypeDifferent</a></div><div class="ttdoc">Indicates that different value type is previously stored for a key. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00101">XMPCommonErrorCodes.h:101</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8f3cda4a2111f1fccbcc182ca1cf5b14ac7ad8bab8d1d8f890d26a13076730473"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac7ad8bab8d1d8f890d26a13076730473">AdobeXMPCommon::kGECAssertionFailure</a></div><div class="ttdoc">Indicates that some assertion has failed. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00031">XMPCommonErrorCodes.h:31</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a87fa911f1ea5a79801b7fe3530637c42ad00affae57206343bb1a2cbfd64a7727"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42ad00affae57206343bb1a2cbfd64a7727">AdobeXMPCommon::kCECValueTypeMismatch</a></div><div class="ttdoc">Indicates the type of value stored for a key is different than what client is asking for...</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00104">XMPCommonErrorCodes.h:104</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8f3cda4a2111f1fccbcc182ca1cf5b14ac4d59c9d462932453e1e5b96efce4beb"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac4d59c9d462932453e1e5b96efce4beb">AdobeXMPCommon::kGECVersionUnavailable</a></div><div class="ttdoc">Indicates that version expected by client is not available in the library. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00028">XMPCommonErrorCodes.h:28</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/XMPCommonFwdDeclarations_8h.html b/docs/API/XMPCommonFwdDeclarations_8h.html
new file mode 100755
index 0000000..1ee5e94
--- /dev/null
+++ b/docs/API/XMPCommonFwdDeclarations_8h.html
@@ -0,0 +1,205 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/XMPCommonFwdDeclarations.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('XMPCommonFwdDeclarations_8h.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#namespaces">Namespaces</a> &#124;
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">XMPCommonFwdDeclarations.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="XMPCommonDefines_8h_source.html">XMPCommon/XMPCommonDefines.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="XMPCommonLatestInterfaceVersions_8h_source.html">XMPCommon/XMPCommonLatestInterfaceVersions.h</a>&quot;</code><br />
+<code>#include &lt;vector&gt;</code><br />
+</div>
+<p><a href="XMPCommonFwdDeclarations_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceAdobeXMPCommon"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:namespaceAdobeXMPCommon__Int"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon__Int.html">AdobeXMPCommon_Int</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:ab59e650373a5efadfbfd2486313258a6"><td class="memItemLeft" align="right" valign="top">typedef void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#ab59e650373a5efadfbfd2486313258a6">AdobeXMPCommon::pvoid</a></td></tr>
+<tr class="separator:ab59e650373a5efadfbfd2486313258a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a19692335f9547f4bc07d0ff727f14605"><td class="memItemLeft" align="right" valign="top">typedef const void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a19692335f9547f4bc07d0ff727f14605">AdobeXMPCommon::pcvoid</a></td></tr>
+<tr class="separator:a19692335f9547f4bc07d0ff727f14605"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a28d3e703084f75a411ece4bb7b22fdd4"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; void &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a28d3e703084f75a411ece4bb7b22fdd4">AdobeXMPCommon::spvoid</a></td></tr>
+<tr class="separator:a28d3e703084f75a411ece4bb7b22fdd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a93bf79ca806273dc229d940504654caa"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const void * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a93bf79ca806273dc229d940504654caa">AdobeXMPCommon::spcvoid</a></td></tr>
+<tr class="separator:a93bf79ca806273dc229d940504654caa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a25f44f5d5e5c651d20124037a7c3b5c3"><td class="memItemLeft" align="right" valign="top">typedef IObjectFactory_v1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a25f44f5d5e5c651d20124037a7c3b5c3">AdobeXMPCommon::IObjectFactory_base</a></td></tr>
+<tr class="separator:a25f44f5d5e5c651d20124037a7c3b5c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adb1552a01da782d3f1c5ff00e49f48f8"><td class="memItemLeft" align="right" valign="top">typedef IObjectFactory_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#adb1552a01da782d3f1c5ff00e49f48f8">AdobeXMPCommon::pIObjectFactory_base</a></td></tr>
+<tr class="separator:adb1552a01da782d3f1c5ff00e49f48f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8d7232279921e3ccaa69fe314052415b"><td class="memItemLeft" align="right" valign="top">typedef const IObjectFactory_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a8d7232279921e3ccaa69fe314052415b">AdobeXMPCommon::pcIObjectFactory_base</a></td></tr>
+<tr class="separator:a8d7232279921e3ccaa69fe314052415b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0863cf1c24764306839671985373b93f"><td class="memItemLeft" align="right" valign="top">typedef IObjectFactory *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a0863cf1c24764306839671985373b93f">AdobeXMPCommon::pIObjectFactory</a></td></tr>
+<tr class="separator:a0863cf1c24764306839671985373b93f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a272e32106a7573db514736bfb68a1673"><td class="memItemLeft" align="right" valign="top">typedef const IObjectFactory *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a272e32106a7573db514736bfb68a1673">AdobeXMPCommon::pcIObjectFactory</a></td></tr>
+<tr class="separator:a272e32106a7573db514736bfb68a1673"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5f4d698bf8beb5f6604b61aa1362d2c6"><td class="memItemLeft" align="right" valign="top">typedef IError_v1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a5f4d698bf8beb5f6604b61aa1362d2c6">AdobeXMPCommon::IError_base</a></td></tr>
+<tr class="separator:a5f4d698bf8beb5f6604b61aa1362d2c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4e907810e5d5937b974343d279e0181d"><td class="memItemLeft" align="right" valign="top">typedef IError_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a4e907810e5d5937b974343d279e0181d">AdobeXMPCommon::pIError_base</a></td></tr>
+<tr class="separator:a4e907810e5d5937b974343d279e0181d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae3cc983230819089dc742273902228c5"><td class="memItemLeft" align="right" valign="top">typedef const IError_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">AdobeXMPCommon::pcIError_base</a></td></tr>
+<tr class="separator:ae3cc983230819089dc742273902228c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac0db32de8e6a3688ad0dfc36c2757fb4"><td class="memItemLeft" align="right" valign="top">typedef IError *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#ac0db32de8e6a3688ad0dfc36c2757fb4">AdobeXMPCommon::pIError</a></td></tr>
+<tr class="separator:ac0db32de8e6a3688ad0dfc36c2757fb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0e0c89c232b777fb332e0ddc10b65fc2"><td class="memItemLeft" align="right" valign="top">typedef const IError *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a0e0c89c232b777fb332e0ddc10b65fc2">AdobeXMPCommon::pcIError</a></td></tr>
+<tr class="separator:a0e0c89c232b777fb332e0ddc10b65fc2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adb05c7ceec43360b84aee536612151f9"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; IError &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#adb05c7ceec43360b84aee536612151f9">AdobeXMPCommon::spIError</a></td></tr>
+<tr class="separator:adb05c7ceec43360b84aee536612151f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3f0de5ba5753a56896f2941927b23560"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const IError &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a3f0de5ba5753a56896f2941927b23560">AdobeXMPCommon::spcIError</a></td></tr>
+<tr class="separator:a3f0de5ba5753a56896f2941927b23560"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a169532f774f2b1f3d8501e896d6f1957"><td class="memItemLeft" align="right" valign="top">typedef IUTF8String_v1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a169532f774f2b1f3d8501e896d6f1957">AdobeXMPCommon::IUTF8String_base</a></td></tr>
+<tr class="separator:a169532f774f2b1f3d8501e896d6f1957"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0430b250dd00621dcb9f32a3acb87b7f"><td class="memItemLeft" align="right" valign="top">typedef IUTF8String_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a0430b250dd00621dcb9f32a3acb87b7f">AdobeXMPCommon::pIUTF8String_base</a></td></tr>
+<tr class="separator:a0430b250dd00621dcb9f32a3acb87b7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a34ccf48e077c7308540d98149a4a8b2b"><td class="memItemLeft" align="right" valign="top">typedef const IUTF8String_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a34ccf48e077c7308540d98149a4a8b2b">AdobeXMPCommon::pcIUTF8String_base</a></td></tr>
+<tr class="separator:a34ccf48e077c7308540d98149a4a8b2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a27ba1868ebc552bef10fe156bd4e340b"><td class="memItemLeft" align="right" valign="top">typedef IUTF8String *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a27ba1868ebc552bef10fe156bd4e340b">AdobeXMPCommon::pIUTF8String</a></td></tr>
+<tr class="separator:a27ba1868ebc552bef10fe156bd4e340b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa9b2c45fd472c6e0e322a94c87e36e23"><td class="memItemLeft" align="right" valign="top">typedef const IUTF8String *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#aa9b2c45fd472c6e0e322a94c87e36e23">AdobeXMPCommon::pcIUTF8String</a></td></tr>
+<tr class="separator:aa9b2c45fd472c6e0e322a94c87e36e23"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac9d7760a1805b1e28828511a2c8c5588"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; IUTF8String &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">AdobeXMPCommon::spIUTF8String</a></td></tr>
+<tr class="separator:ac9d7760a1805b1e28828511a2c8c5588"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a91aaab1f1d7030b26df65258bd131a63"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const IUTF8String &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">AdobeXMPCommon::spcIUTF8String</a></td></tr>
+<tr class="separator:a91aaab1f1d7030b26df65258bd131a63"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae79591aae25236208281cd3e48a2483d"><td class="memItemLeft" align="right" valign="top">typedef IMemoryAllocator_v1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#ae79591aae25236208281cd3e48a2483d">AdobeXMPCommon::IMemoryAllocator_base</a></td></tr>
+<tr class="separator:ae79591aae25236208281cd3e48a2483d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aff75b5c835a8eb072072be6b404aa0d5"><td class="memItemLeft" align="right" valign="top">typedef IMemoryAllocator_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#aff75b5c835a8eb072072be6b404aa0d5">AdobeXMPCommon::pIMemoryAllocator_base</a></td></tr>
+<tr class="separator:aff75b5c835a8eb072072be6b404aa0d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a42a89fb94134c8eaed66765f2975b3f9"><td class="memItemLeft" align="right" valign="top">typedef const IMemoryAllocator_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a42a89fb94134c8eaed66765f2975b3f9">AdobeXMPCommon::pcIMemoryAllocator_base</a></td></tr>
+<tr class="separator:a42a89fb94134c8eaed66765f2975b3f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a605dcb5281a71a01673c81e6508f932f"><td class="memItemLeft" align="right" valign="top">typedef IMemoryAllocator *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a605dcb5281a71a01673c81e6508f932f">AdobeXMPCommon::pIMemoryAllocator</a></td></tr>
+<tr class="separator:a605dcb5281a71a01673c81e6508f932f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af5a7d4d78400043e3e49dfa6a2725abb"><td class="memItemLeft" align="right" valign="top">typedef const IMemoryAllocator *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#af5a7d4d78400043e3e49dfa6a2725abb">AdobeXMPCommon::pcIMemoryAllocator</a></td></tr>
+<tr class="separator:af5a7d4d78400043e3e49dfa6a2725abb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9423cafa21356df5d02adf7a94f4e4b0"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; IMemoryAllocator &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a9423cafa21356df5d02adf7a94f4e4b0">AdobeXMPCommon::spIMemoryAllocator</a></td></tr>
+<tr class="separator:a9423cafa21356df5d02adf7a94f4e4b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a183fc5e814bdad0ddf9946ddc35c307a"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const IMemoryAllocator &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a183fc5e814bdad0ddf9946ddc35c307a">AdobeXMPCommon::spcIMemoryAllocator</a></td></tr>
+<tr class="separator:a183fc5e814bdad0ddf9946ddc35c307a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a692c91c0b558cbc476e43e7f0a9112e0"><td class="memItemLeft" align="right" valign="top">typedef IErrorNotifier_v1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a692c91c0b558cbc476e43e7f0a9112e0">AdobeXMPCommon::IErrorNotifier_base</a></td></tr>
+<tr class="separator:a692c91c0b558cbc476e43e7f0a9112e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4ad7bda9e1289b0bb93510402b6e86f9"><td class="memItemLeft" align="right" valign="top">typedef IErrorNotifier_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a4ad7bda9e1289b0bb93510402b6e86f9">AdobeXMPCommon::pIErrorNotifier_base</a></td></tr>
+<tr class="separator:a4ad7bda9e1289b0bb93510402b6e86f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a15919ce22d7dc4def5a590f0dbb882ca"><td class="memItemLeft" align="right" valign="top">typedef const IErrorNotifier_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a15919ce22d7dc4def5a590f0dbb882ca">AdobeXMPCommon::pcIErrorNotifier_base</a></td></tr>
+<tr class="separator:a15919ce22d7dc4def5a590f0dbb882ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9981f3ca088023224e80dbad05090f3c"><td class="memItemLeft" align="right" valign="top">typedef IErrorNotifier *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a9981f3ca088023224e80dbad05090f3c">AdobeXMPCommon::pIErrorNotifier</a></td></tr>
+<tr class="separator:a9981f3ca088023224e80dbad05090f3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa4baade1a8eb0dbb544860e0c89362f8"><td class="memItemLeft" align="right" valign="top">typedef const IErrorNotifier *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#aa4baade1a8eb0dbb544860e0c89362f8">AdobeXMPCommon::pcIErrorNotifier</a></td></tr>
+<tr class="separator:aa4baade1a8eb0dbb544860e0c89362f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4d5b76921b44568978986a81d2c19336"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; IErrorNotifier &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a4d5b76921b44568978986a81d2c19336">AdobeXMPCommon::spIErrorNotifier</a></td></tr>
+<tr class="separator:a4d5b76921b44568978986a81d2c19336"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4eeee081576f932942082744eb05456c"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const IErrorNotifier &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a4eeee081576f932942082744eb05456c">AdobeXMPCommon::spcIErrorNotifier</a></td></tr>
+<tr class="separator:a4eeee081576f932942082744eb05456c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab6a71f81b4e3c8e5d2d0c90f82fbee08"><td class="memItemLeft" align="right" valign="top">typedef IConfigurationManager_v1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#ab6a71f81b4e3c8e5d2d0c90f82fbee08">AdobeXMPCommon::IConfigurationManager_base</a></td></tr>
+<tr class="separator:ab6a71f81b4e3c8e5d2d0c90f82fbee08"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a20fcfcaa614eba9a9fcdf2353b82fdb7"><td class="memItemLeft" align="right" valign="top">typedef IConfigurationManager_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a20fcfcaa614eba9a9fcdf2353b82fdb7">AdobeXMPCommon::pIConfigurationManager_base</a></td></tr>
+<tr class="separator:a20fcfcaa614eba9a9fcdf2353b82fdb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a39556e80a6bda05757b7f2766ddc2ba1"><td class="memItemLeft" align="right" valign="top">typedef const IConfigurationManager_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a39556e80a6bda05757b7f2766ddc2ba1">AdobeXMPCommon::pcIConfigurationManager_base</a></td></tr>
+<tr class="separator:a39556e80a6bda05757b7f2766ddc2ba1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a66f57b67d8be6cbf836ad084a3d27d76"><td class="memItemLeft" align="right" valign="top">typedef IConfigurationManager *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a66f57b67d8be6cbf836ad084a3d27d76">AdobeXMPCommon::pIConfigurationManager</a></td></tr>
+<tr class="separator:a66f57b67d8be6cbf836ad084a3d27d76"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2a6831c5d17f5c9990c01268f67b7bb2"><td class="memItemLeft" align="right" valign="top">typedef const IConfigurationManager *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a2a6831c5d17f5c9990c01268f67b7bb2">AdobeXMPCommon::pcIConfigurationManager</a></td></tr>
+<tr class="separator:a2a6831c5d17f5c9990c01268f67b7bb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4ebcc3c8cb04d7593dc3250aa720f0d4"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; IConfigurationManager &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a4ebcc3c8cb04d7593dc3250aa720f0d4">AdobeXMPCommon::spIConfigurationManager</a></td></tr>
+<tr class="separator:a4ebcc3c8cb04d7593dc3250aa720f0d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abe53a5a98ec0d2d6ce76d1d820794177"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const IConfigurationManager &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#abe53a5a98ec0d2d6ce76d1d820794177">AdobeXMPCommon::spcIConfigurationManager</a></td></tr>
+<tr class="separator:abe53a5a98ec0d2d6ce76d1d820794177"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9befc7ddfe5977c8176eed763d9ce69e"><td class="memItemLeft" align="right" valign="top">typedef IConfigurable *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a9befc7ddfe5977c8176eed763d9ce69e">AdobeXMPCommon::pIConfigurable</a></td></tr>
+<tr class="separator:a9befc7ddfe5977c8176eed763d9ce69e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a394d772cfe78f1dbeba6059e7a3c65d6"><td class="memItemLeft" align="right" valign="top">typedef const IConfigurable *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a394d772cfe78f1dbeba6059e7a3c65d6">AdobeXMPCommon::pcIConfigurable</a></td></tr>
+<tr class="separator:a394d772cfe78f1dbeba6059e7a3c65d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac82ab59bdaecb219834ac2ff81573414"><td class="memItemLeft" align="right" valign="top">typedef std::vector&lt; spIUTF8String &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#ac82ab59bdaecb219834ac2ff81573414">AdobeXMPCommon::IUTF8Strings</a></td></tr>
+<tr class="separator:ac82ab59bdaecb219834ac2ff81573414"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aae5dbe164f71188aa24c87fa6306539a"><td class="memItemLeft" align="right" valign="top">typedef std::vector&lt; spcIUTF8String &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#aae5dbe164f71188aa24c87fa6306539a">AdobeXMPCommon::cIUTF8Strings</a></td></tr>
+<tr class="separator:aae5dbe164f71188aa24c87fa6306539a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5f4ff8126658f07efbc881778bfea430"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; IUTF8Strings &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a5f4ff8126658f07efbc881778bfea430">AdobeXMPCommon::spIUTF8Strings</a></td></tr>
+<tr class="separator:a5f4ff8126658f07efbc881778bfea430"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a181114a44f34efda2d8b4cb98446de86"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; cIUTF8Strings &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a181114a44f34efda2d8b4cb98446de86">AdobeXMPCommon::spcIUTF8Strings</a></td></tr>
+<tr class="separator:a181114a44f34efda2d8b4cb98446de86"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab4410cb115c4e0fa0800ab6ebf21abf7"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const IUTF8Strings &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#ab4410cb115c4e0fa0800ab6ebf21abf7">AdobeXMPCommon::spIUTF8Strings_const</a></td></tr>
+<tr class="separator:ab4410cb115c4e0fa0800ab6ebf21abf7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeea9f5dbdf44fd5382b0ca50dda8f2cf"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const cIUTF8Strings &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#aeea9f5dbdf44fd5382b0ca50dda8f2cf">AdobeXMPCommon::spcIUTF8Strings_const</a></td></tr>
+<tr class="separator:aeea9f5dbdf44fd5382b0ca50dda8f2cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6ddf5efa8f9b686e5d7fef41d6b10096"><td class="memItemLeft" align="right" valign="top">typedef void *(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a6ddf5efa8f9b686e5d7fef41d6b10096">AdobeXMPCommon::MemAllocateProc</a>) (sizet sz)</td></tr>
+<tr class="memdesc:a6ddf5efa8f9b686e5d7fef41d6b10096"><td class="mdescLeft">&#160;</td><td class="mdescRight">A function pointer to get the memory allocated from the library. <a href="namespaceAdobeXMPCommon.html#a6ddf5efa8f9b686e5d7fef41d6b10096">More...</a><br /></td></tr>
+<tr class="separator:a6ddf5efa8f9b686e5d7fef41d6b10096"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a79edf1f9139609bf6ed70b24cc99a2e0"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a79edf1f9139609bf6ed70b24cc99a2e0">AdobeXMPCommon::MemReleaseProc</a>) (void *ptr)</td></tr>
+<tr class="memdesc:a79edf1f9139609bf6ed70b24cc99a2e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">A function pointer to get the memory freed from the library. <a href="namespaceAdobeXMPCommon.html#a79edf1f9139609bf6ed70b24cc99a2e0">More...</a><br /></td></tr>
+<tr class="separator:a79edf1f9139609bf6ed70b24cc99a2e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ada4b051c58f05ef398453930451bc13d"><td class="memItemLeft" align="right" valign="top">typedef ISharedObject_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon__Int.html#ada4b051c58f05ef398453930451bc13d">AdobeXMPCommon_Int::pISharedObject_I</a></td></tr>
+<tr class="separator:ada4b051c58f05ef398453930451bc13d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:affd72b6c7abbc84fdef10b5a607cd432"><td class="memItemLeft" align="right" valign="top">typedef const ISharedObject_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon__Int.html#affd72b6c7abbc84fdef10b5a607cd432">AdobeXMPCommon_Int::pcISharedObject_I</a></td></tr>
+<tr class="separator:affd72b6c7abbc84fdef10b5a607cd432"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac9c07c42e647a17838c9314b8d2823d9"><td class="memItemLeft" align="right" valign="top">typedef IThreadSafe_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon__Int.html#ac9c07c42e647a17838c9314b8d2823d9">AdobeXMPCommon_Int::pIThreadSafe_I</a></td></tr>
+<tr class="separator:ac9c07c42e647a17838c9314b8d2823d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2becb4c0d21c71e1dcecdcaae0e92bd7"><td class="memItemLeft" align="right" valign="top">typedef const IThreadSafe_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon__Int.html#a2becb4c0d21c71e1dcecdcaae0e92bd7">AdobeXMPCommon_Int::pcIThreadSafe_I</a></td></tr>
+<tr class="separator:a2becb4c0d21c71e1dcecdcaae0e92bd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a376c8e3ade71b2836888a07746dd3882"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a376c8e3ade71b2836888a07746dd3882">AdobeXMPCommon::BASE_CLASS</a> (IObjectFactory, <a class="el" href="XMPCommonLatestInterfaceVersions_8h.html#a6844f2fb727f99e352e61045154eba8b">IOBJECTFACTORY_VERSION</a>) IObjectFactory</td></tr>
+<tr class="separator:a376c8e3ade71b2836888a07746dd3882"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae2d21f9711d5fdc36354b14a401ec53b"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#ae2d21f9711d5fdc36354b14a401ec53b">AdobeXMPCommon::BASE_CLASS</a> (IError, <a class="el" href="XMPCommonLatestInterfaceVersions_8h.html#a4d8312c0c69be3f57e5f14b7b2d1224d">IERROR_VERSION</a>) IError</td></tr>
+<tr class="separator:ae2d21f9711d5fdc36354b14a401ec53b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a55f2498472648e9b5647f039202820b2"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a55f2498472648e9b5647f039202820b2">AdobeXMPCommon::BASE_CLASS</a> (IUTF8String, <a class="el" href="XMPCommonLatestInterfaceVersions_8h.html#a884c112243a29a7b0388b1954efc317b">IUTF8STRING_VERSION</a>) IUTF8String</td></tr>
+<tr class="separator:a55f2498472648e9b5647f039202820b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afee5efdc17ad732ac218b39bb305ed63"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#afee5efdc17ad732ac218b39bb305ed63">AdobeXMPCommon::BASE_CLASS</a> (IMemoryAllocator, <a class="el" href="XMPCommonLatestInterfaceVersions_8h.html#a5c5712b51cebbbdbf40cc691b4123209">IMEMORYALLOCATOR_VERSION</a>) IMemoryAllocator</td></tr>
+<tr class="separator:afee5efdc17ad732ac218b39bb305ed63"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5d655944f5ebfaff4c6f61d227257035"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a5d655944f5ebfaff4c6f61d227257035">AdobeXMPCommon::BASE_CLASS</a> (IErrorNotifier, <a class="el" href="XMPCommonLatestInterfaceVersions_8h.html#ad84704e1c2910ca9d71d41183c3a378c">IERRORNOTIFIER_VERSION</a>) IErrorNotifier</td></tr>
+<tr class="separator:a5d655944f5ebfaff4c6f61d227257035"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a41216c3793d99220ce00076ad18f9b44"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a41216c3793d99220ce00076ad18f9b44">AdobeXMPCommon::BASE_CLASS</a> (IConfigurationManager, <a class="el" href="XMPCommonLatestInterfaceVersions_8h.html#a21492cbe0c77bbbad967232b377855c1">ICONFIGURATIONMANAGER_VERSION</a>) IConfigurationManager</td></tr>
+<tr class="separator:a41216c3793d99220ce00076ad18f9b44"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3349137d458c48d779670626d7b6ba1a"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a3349137d458c48d779670626d7b6ba1a">AdobeXMPCommon::MemAllocate</a> (sizet size) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:a3349137d458c48d779670626d7b6ba1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad4c125f465214507005d84a360fa83e5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#ad4c125f465214507005d84a360fa83e5">AdobeXMPCommon::MemRelease</a> (void *ptr) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:ad4c125f465214507005d84a360fa83e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/XMPCommonFwdDeclarations_8h.js b/docs/API/XMPCommonFwdDeclarations_8h.js
new file mode 100755
index 0000000..52b18a5
--- /dev/null
+++ b/docs/API/XMPCommonFwdDeclarations_8h.js
@@ -0,0 +1,69 @@
+var XMPCommonFwdDeclarations_8h =
+[
+ [ "cIUTF8Strings", "XMPCommonFwdDeclarations_8h.html#aae5dbe164f71188aa24c87fa6306539a", null ],
+ [ "IConfigurationManager_base", "XMPCommonFwdDeclarations_8h.html#ab6a71f81b4e3c8e5d2d0c90f82fbee08", null ],
+ [ "IError_base", "XMPCommonFwdDeclarations_8h.html#a5f4d698bf8beb5f6604b61aa1362d2c6", null ],
+ [ "IErrorNotifier_base", "XMPCommonFwdDeclarations_8h.html#a692c91c0b558cbc476e43e7f0a9112e0", null ],
+ [ "IMemoryAllocator_base", "XMPCommonFwdDeclarations_8h.html#ae79591aae25236208281cd3e48a2483d", null ],
+ [ "IObjectFactory_base", "XMPCommonFwdDeclarations_8h.html#a25f44f5d5e5c651d20124037a7c3b5c3", null ],
+ [ "IUTF8String_base", "XMPCommonFwdDeclarations_8h.html#a169532f774f2b1f3d8501e896d6f1957", null ],
+ [ "IUTF8Strings", "XMPCommonFwdDeclarations_8h.html#ac82ab59bdaecb219834ac2ff81573414", null ],
+ [ "MemAllocateProc", "XMPCommonFwdDeclarations_8h.html#a6ddf5efa8f9b686e5d7fef41d6b10096", null ],
+ [ "MemReleaseProc", "XMPCommonFwdDeclarations_8h.html#a79edf1f9139609bf6ed70b24cc99a2e0", null ],
+ [ "pcIConfigurable", "XMPCommonFwdDeclarations_8h.html#a394d772cfe78f1dbeba6059e7a3c65d6", null ],
+ [ "pcIConfigurationManager", "XMPCommonFwdDeclarations_8h.html#a2a6831c5d17f5c9990c01268f67b7bb2", null ],
+ [ "pcIConfigurationManager_base", "XMPCommonFwdDeclarations_8h.html#a39556e80a6bda05757b7f2766ddc2ba1", null ],
+ [ "pcIError", "XMPCommonFwdDeclarations_8h.html#a0e0c89c232b777fb332e0ddc10b65fc2", null ],
+ [ "pcIError_base", "XMPCommonFwdDeclarations_8h.html#ae3cc983230819089dc742273902228c5", null ],
+ [ "pcIErrorNotifier", "XMPCommonFwdDeclarations_8h.html#aa4baade1a8eb0dbb544860e0c89362f8", null ],
+ [ "pcIErrorNotifier_base", "XMPCommonFwdDeclarations_8h.html#a15919ce22d7dc4def5a590f0dbb882ca", null ],
+ [ "pcIMemoryAllocator", "XMPCommonFwdDeclarations_8h.html#af5a7d4d78400043e3e49dfa6a2725abb", null ],
+ [ "pcIMemoryAllocator_base", "XMPCommonFwdDeclarations_8h.html#a42a89fb94134c8eaed66765f2975b3f9", null ],
+ [ "pcIObjectFactory", "XMPCommonFwdDeclarations_8h.html#a272e32106a7573db514736bfb68a1673", null ],
+ [ "pcIObjectFactory_base", "XMPCommonFwdDeclarations_8h.html#a8d7232279921e3ccaa69fe314052415b", null ],
+ [ "pcISharedObject_I", "XMPCommonFwdDeclarations_8h.html#affd72b6c7abbc84fdef10b5a607cd432", null ],
+ [ "pcIThreadSafe_I", "XMPCommonFwdDeclarations_8h.html#a2becb4c0d21c71e1dcecdcaae0e92bd7", null ],
+ [ "pcIUTF8String", "XMPCommonFwdDeclarations_8h.html#aa9b2c45fd472c6e0e322a94c87e36e23", null ],
+ [ "pcIUTF8String_base", "XMPCommonFwdDeclarations_8h.html#a34ccf48e077c7308540d98149a4a8b2b", null ],
+ [ "pcvoid", "XMPCommonFwdDeclarations_8h.html#a19692335f9547f4bc07d0ff727f14605", null ],
+ [ "pIConfigurable", "XMPCommonFwdDeclarations_8h.html#a9befc7ddfe5977c8176eed763d9ce69e", null ],
+ [ "pIConfigurationManager", "XMPCommonFwdDeclarations_8h.html#a66f57b67d8be6cbf836ad084a3d27d76", null ],
+ [ "pIConfigurationManager_base", "XMPCommonFwdDeclarations_8h.html#a20fcfcaa614eba9a9fcdf2353b82fdb7", null ],
+ [ "pIError", "XMPCommonFwdDeclarations_8h.html#ac0db32de8e6a3688ad0dfc36c2757fb4", null ],
+ [ "pIError_base", "XMPCommonFwdDeclarations_8h.html#a4e907810e5d5937b974343d279e0181d", null ],
+ [ "pIErrorNotifier", "XMPCommonFwdDeclarations_8h.html#a9981f3ca088023224e80dbad05090f3c", null ],
+ [ "pIErrorNotifier_base", "XMPCommonFwdDeclarations_8h.html#a4ad7bda9e1289b0bb93510402b6e86f9", null ],
+ [ "pIMemoryAllocator", "XMPCommonFwdDeclarations_8h.html#a605dcb5281a71a01673c81e6508f932f", null ],
+ [ "pIMemoryAllocator_base", "XMPCommonFwdDeclarations_8h.html#aff75b5c835a8eb072072be6b404aa0d5", null ],
+ [ "pIObjectFactory", "XMPCommonFwdDeclarations_8h.html#a0863cf1c24764306839671985373b93f", null ],
+ [ "pIObjectFactory_base", "XMPCommonFwdDeclarations_8h.html#adb1552a01da782d3f1c5ff00e49f48f8", null ],
+ [ "pISharedObject_I", "XMPCommonFwdDeclarations_8h.html#ada4b051c58f05ef398453930451bc13d", null ],
+ [ "pIThreadSafe_I", "XMPCommonFwdDeclarations_8h.html#ac9c07c42e647a17838c9314b8d2823d9", null ],
+ [ "pIUTF8String", "XMPCommonFwdDeclarations_8h.html#a27ba1868ebc552bef10fe156bd4e340b", null ],
+ [ "pIUTF8String_base", "XMPCommonFwdDeclarations_8h.html#a0430b250dd00621dcb9f32a3acb87b7f", null ],
+ [ "pvoid", "XMPCommonFwdDeclarations_8h.html#ab59e650373a5efadfbfd2486313258a6", null ],
+ [ "spcIConfigurationManager", "XMPCommonFwdDeclarations_8h.html#abe53a5a98ec0d2d6ce76d1d820794177", null ],
+ [ "spcIError", "XMPCommonFwdDeclarations_8h.html#a3f0de5ba5753a56896f2941927b23560", null ],
+ [ "spcIErrorNotifier", "XMPCommonFwdDeclarations_8h.html#a4eeee081576f932942082744eb05456c", null ],
+ [ "spcIMemoryAllocator", "XMPCommonFwdDeclarations_8h.html#a183fc5e814bdad0ddf9946ddc35c307a", null ],
+ [ "spcIUTF8String", "XMPCommonFwdDeclarations_8h.html#a91aaab1f1d7030b26df65258bd131a63", null ],
+ [ "spcIUTF8Strings", "XMPCommonFwdDeclarations_8h.html#a181114a44f34efda2d8b4cb98446de86", null ],
+ [ "spcIUTF8Strings_const", "XMPCommonFwdDeclarations_8h.html#aeea9f5dbdf44fd5382b0ca50dda8f2cf", null ],
+ [ "spcvoid", "XMPCommonFwdDeclarations_8h.html#a93bf79ca806273dc229d940504654caa", null ],
+ [ "spIConfigurationManager", "XMPCommonFwdDeclarations_8h.html#a4ebcc3c8cb04d7593dc3250aa720f0d4", null ],
+ [ "spIError", "XMPCommonFwdDeclarations_8h.html#adb05c7ceec43360b84aee536612151f9", null ],
+ [ "spIErrorNotifier", "XMPCommonFwdDeclarations_8h.html#a4d5b76921b44568978986a81d2c19336", null ],
+ [ "spIMemoryAllocator", "XMPCommonFwdDeclarations_8h.html#a9423cafa21356df5d02adf7a94f4e4b0", null ],
+ [ "spIUTF8String", "XMPCommonFwdDeclarations_8h.html#ac9d7760a1805b1e28828511a2c8c5588", null ],
+ [ "spIUTF8Strings", "XMPCommonFwdDeclarations_8h.html#a5f4ff8126658f07efbc881778bfea430", null ],
+ [ "spIUTF8Strings_const", "XMPCommonFwdDeclarations_8h.html#ab4410cb115c4e0fa0800ab6ebf21abf7", null ],
+ [ "spvoid", "XMPCommonFwdDeclarations_8h.html#a28d3e703084f75a411ece4bb7b22fdd4", null ],
+ [ "BASE_CLASS", "XMPCommonFwdDeclarations_8h.html#a376c8e3ade71b2836888a07746dd3882", null ],
+ [ "BASE_CLASS", "XMPCommonFwdDeclarations_8h.html#ae2d21f9711d5fdc36354b14a401ec53b", null ],
+ [ "BASE_CLASS", "XMPCommonFwdDeclarations_8h.html#a55f2498472648e9b5647f039202820b2", null ],
+ [ "BASE_CLASS", "XMPCommonFwdDeclarations_8h.html#afee5efdc17ad732ac218b39bb305ed63", null ],
+ [ "BASE_CLASS", "XMPCommonFwdDeclarations_8h.html#a5d655944f5ebfaff4c6f61d227257035", null ],
+ [ "BASE_CLASS", "XMPCommonFwdDeclarations_8h.html#a41216c3793d99220ce00076ad18f9b44", null ],
+ [ "MemAllocate", "XMPCommonFwdDeclarations_8h.html#a3349137d458c48d779670626d7b6ba1a", null ],
+ [ "MemRelease", "XMPCommonFwdDeclarations_8h.html#ad4c125f465214507005d84a360fa83e5", null ]
+]; \ No newline at end of file
diff --git a/docs/API/XMPCommonFwdDeclarations_8h_source.html b/docs/API/XMPCommonFwdDeclarations_8h_source.html
new file mode 100755
index 0000000..cba1e4e
--- /dev/null
+++ b/docs/API/XMPCommonFwdDeclarations_8h_source.html
@@ -0,0 +1,111 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/XMPCommonFwdDeclarations.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('XMPCommonFwdDeclarations_8h_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">XMPCommonFwdDeclarations.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="XMPCommonFwdDeclarations_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __XMPCommonFwdDeclarations_h__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __XMPCommonFwdDeclarations_h__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// ADOBE SYSTEMS INCORPORATED</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// Copyright 2014 Adobe Systems Incorporated</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// All Rights Reserved</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="XMPCommonDefines_8h.html">XMPCommon/XMPCommonDefines.h</a>&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="XMPCommonLatestInterfaceVersions_8h.html">XMPCommon/XMPCommonLatestInterfaceVersions.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#if SUPPORT_SHARED_POINTERS_IN_STD</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor"> #include &lt;memory&gt;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"> #include &lt;functional&gt;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#elif SUPPORT_SHARED_POINTERS_IN_TR1</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor"> #if XMP_WinBuild</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor"> #include &lt;memory&gt;</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor"> #else</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor"> #include &lt;tr1/memory&gt;</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor"> #include &lt;tr1/functional&gt;</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor"> #error &quot;location of shared pointer stuff is unknown&quot;</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a> {</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor"> #if SUPPORT_SHARED_POINTERS_IN_STD</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">using</span> std::shared_ptr;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">using</span> std::enable_shared_from_this;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">using</span> std::mem_fn;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor"> #elif SUPPORT_SHARED_POINTERS_IN_TR1</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">using</span> std::tr1::shared_ptr;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">using</span> std::tr1::enable_shared_from_this;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">using</span> std::tr1::mem_fn;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="comment">// void</span></div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#ab59e650373a5efadfbfd2486313258a6"> 44</a></span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">void</span> * <a class="code" href="namespaceAdobeXMPCommon.html#ab59e650373a5efadfbfd2486313258a6">pvoid</a>;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a19692335f9547f4bc07d0ff727f14605"> 45</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">const</span> <span class="keywordtype">void</span> * <a class="code" href="namespaceAdobeXMPCommon.html#a19692335f9547f4bc07d0ff727f14605">pcvoid</a>;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a28d3e703084f75a411ece4bb7b22fdd4"> 46</a></span>&#160; <span class="keyword">typedef</span> shared_ptr&lt; void &gt; <a class="code" href="namespaceAdobeXMPCommon.html#a28d3e703084f75a411ece4bb7b22fdd4">spvoid</a>;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a93bf79ca806273dc229d940504654caa"> 47</a></span>&#160; <span class="keyword">typedef</span> shared_ptr&lt; const void * &gt; <a class="code" href="namespaceAdobeXMPCommon.html#a93bf79ca806273dc229d940504654caa">spcvoid</a>;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="comment">// IObjectFactory</span></div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a25f44f5d5e5c651d20124037a7c3b5c3"> 50</a></span>&#160; <span class="keyword">class </span><a class="code" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html">IObjectFactory_v1</a>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">typedef</span> <a class="code" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html">IObjectFactory_v1</a> <a class="code" href="namespaceAdobeXMPCommon.html#a25f44f5d5e5c651d20124037a7c3b5c3">IObjectFactory_base</a>;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#adb1552a01da782d3f1c5ff00e49f48f8"> 52</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html">IObjectFactory_v1</a> * <a class="code" href="namespaceAdobeXMPCommon.html#adb1552a01da782d3f1c5ff00e49f48f8">pIObjectFactory_base</a>;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a8d7232279921e3ccaa69fe314052415b"> 53</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">const</span> <a class="code" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html">IObjectFactory_v1</a> * <a class="code" href="namespaceAdobeXMPCommon.html#a8d7232279921e3ccaa69fe314052415b">pcIObjectFactory_base</a>;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceAdobeXMPCommon.html#a376c8e3ade71b2836888a07746dd3882">BASE_CLASS</a>( IObjectFactory, <a class="code" href="XMPCommonLatestInterfaceVersions_8h.html#a6844f2fb727f99e352e61045154eba8b">IOBJECTFACTORY_VERSION</a> ) IObjectFactory;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a0863cf1c24764306839671985373b93f"> 55</a></span>&#160; typedef IObjectFactory * <a class="code" href="namespaceAdobeXMPCommon.html#a0863cf1c24764306839671985373b93f">pIObjectFactory</a>;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a272e32106a7573db514736bfb68a1673"> 56</a></span>&#160; typedef const IObjectFactory * <a class="code" href="namespaceAdobeXMPCommon.html#a272e32106a7573db514736bfb68a1673">pcIObjectFactory</a>;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="comment">// IError</span></div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a5f4d698bf8beb5f6604b61aa1362d2c6"> 59</a></span>&#160; class <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">IError_v1</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; typedef IError_v1 <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">IError_base</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a4e907810e5d5937b974343d279e0181d"> 61</a></span>&#160; typedef IError_v1 * <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pIError_base</a>;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5"> 62</a></span>&#160; typedef const IError_v1 * <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html">pcIError_base</a>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; typedef <a class="code" href="namespaceAdobeXMPCommon.html#a376c8e3ade71b2836888a07746dd3882">BASE_CLASS</a>( IError, <a class="code" href="XMPCommonLatestInterfaceVersions_8h.html#a4d8312c0c69be3f57e5f14b7b2d1224d">IERROR_VERSION</a> ) IError;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#ac0db32de8e6a3688ad0dfc36c2757fb4"> 64</a></span>&#160; typedef IError * <a class="code" href="namespaceAdobeXMPCommon.html#ac0db32de8e6a3688ad0dfc36c2757fb4">pIError</a>;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a0e0c89c232b777fb332e0ddc10b65fc2"> 65</a></span>&#160; typedef const IError * <a class="code" href="namespaceAdobeXMPCommon.html#a0e0c89c232b777fb332e0ddc10b65fc2">pcIError</a>;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#adb05c7ceec43360b84aee536612151f9"> 66</a></span>&#160; typedef shared_ptr&lt; IError &gt; <a class="code" href="namespaceAdobeXMPCommon.html#adb05c7ceec43360b84aee536612151f9">spIError</a>;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a3f0de5ba5753a56896f2941927b23560"> 67</a></span>&#160; typedef shared_ptr&lt; const IError &gt; <a class="code" href="namespaceAdobeXMPCommon.html#a3f0de5ba5753a56896f2941927b23560">spcIError</a>;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="comment">// IUTF8String</span></div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a169532f774f2b1f3d8501e896d6f1957"> 70</a></span>&#160; class <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">IUTF8String_v1</a>;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; typedef IUTF8String_v1 <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">IUTF8String_base</a>;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a0430b250dd00621dcb9f32a3acb87b7f"> 72</a></span>&#160; typedef IUTF8String_v1 * <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">pIUTF8String_base</a>;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a34ccf48e077c7308540d98149a4a8b2b"> 73</a></span>&#160; typedef const IUTF8String_v1 * <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">pcIUTF8String_base</a>;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; typedef <a class="code" href="namespaceAdobeXMPCommon.html#a376c8e3ade71b2836888a07746dd3882">BASE_CLASS</a>( IUTF8String, <a class="code" href="XMPCommonLatestInterfaceVersions_8h.html#a884c112243a29a7b0388b1954efc317b">IUTF8STRING_VERSION</a> ) IUTF8String;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a27ba1868ebc552bef10fe156bd4e340b"> 75</a></span>&#160; typedef IUTF8String * <a class="code" href="namespaceAdobeXMPCommon.html#a27ba1868ebc552bef10fe156bd4e340b">pIUTF8String</a>;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#aa9b2c45fd472c6e0e322a94c87e36e23"> 76</a></span>&#160; typedef const IUTF8String * <a class="code" href="namespaceAdobeXMPCommon.html#aa9b2c45fd472c6e0e322a94c87e36e23">pcIUTF8String</a>;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588"> 77</a></span>&#160; typedef shared_ptr&lt; IUTF8String &gt; <a class="code" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a>;</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63"> 78</a></span>&#160; typedef shared_ptr&lt; const IUTF8String &gt; <a class="code" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a>;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="comment">// IMemoryAllocator</span></div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#ae79591aae25236208281cd3e48a2483d"> 81</a></span>&#160; class <a class="code" href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html">IMemoryAllocator_v1</a>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; typedef IMemoryAllocator_v1 <a class="code" href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html">IMemoryAllocator_base</a>;</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#aff75b5c835a8eb072072be6b404aa0d5"> 83</a></span>&#160; typedef IMemoryAllocator_v1 * <a class="code" href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html">pIMemoryAllocator_base</a>;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a42a89fb94134c8eaed66765f2975b3f9"> 84</a></span>&#160; typedef const IMemoryAllocator_v1 * <a class="code" href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html">pcIMemoryAllocator_base</a>;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; typedef <a class="code" href="namespaceAdobeXMPCommon.html#a376c8e3ade71b2836888a07746dd3882">BASE_CLASS</a>( IMemoryAllocator, <a class="code" href="XMPCommonLatestInterfaceVersions_8h.html#a5c5712b51cebbbdbf40cc691b4123209">IMEMORYALLOCATOR_VERSION</a> ) IMemoryAllocator;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a605dcb5281a71a01673c81e6508f932f"> 86</a></span>&#160; typedef IMemoryAllocator * <a class="code" href="namespaceAdobeXMPCommon.html#a605dcb5281a71a01673c81e6508f932f">pIMemoryAllocator</a>;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#af5a7d4d78400043e3e49dfa6a2725abb"> 87</a></span>&#160; typedef const IMemoryAllocator * <a class="code" href="namespaceAdobeXMPCommon.html#af5a7d4d78400043e3e49dfa6a2725abb">pcIMemoryAllocator</a>;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a9423cafa21356df5d02adf7a94f4e4b0"> 88</a></span>&#160; typedef shared_ptr&lt; IMemoryAllocator &gt; <a class="code" href="namespaceAdobeXMPCommon.html#a9423cafa21356df5d02adf7a94f4e4b0">spIMemoryAllocator</a>;</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a183fc5e814bdad0ddf9946ddc35c307a"> 89</a></span>&#160; typedef shared_ptr&lt; const IMemoryAllocator &gt; <a class="code" href="namespaceAdobeXMPCommon.html#a183fc5e814bdad0ddf9946ddc35c307a">spcIMemoryAllocator</a>;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="comment">// IErrorNotifier</span></div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a692c91c0b558cbc476e43e7f0a9112e0"> 92</a></span>&#160; class <a class="code" href="classAdobeXMPCommon_1_1IErrorNotifier__v1.html">IErrorNotifier_v1</a>;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; typedef IErrorNotifier_v1 <a class="code" href="classAdobeXMPCommon_1_1IErrorNotifier__v1.html">IErrorNotifier_base</a>;</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a4ad7bda9e1289b0bb93510402b6e86f9"> 94</a></span>&#160; typedef IErrorNotifier_v1 * <a class="code" href="classAdobeXMPCommon_1_1IErrorNotifier__v1.html">pIErrorNotifier_base</a>;</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a15919ce22d7dc4def5a590f0dbb882ca"> 95</a></span>&#160; typedef const IErrorNotifier_v1 * <a class="code" href="classAdobeXMPCommon_1_1IErrorNotifier__v1.html">pcIErrorNotifier_base</a>;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; typedef <a class="code" href="namespaceAdobeXMPCommon.html#a376c8e3ade71b2836888a07746dd3882">BASE_CLASS</a>( IErrorNotifier, <a class="code" href="XMPCommonLatestInterfaceVersions_8h.html#ad84704e1c2910ca9d71d41183c3a378c">IERRORNOTIFIER_VERSION</a> ) IErrorNotifier;</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a9981f3ca088023224e80dbad05090f3c"> 97</a></span>&#160; typedef IErrorNotifier * <a class="code" href="namespaceAdobeXMPCommon.html#a9981f3ca088023224e80dbad05090f3c">pIErrorNotifier</a>;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#aa4baade1a8eb0dbb544860e0c89362f8"> 98</a></span>&#160; typedef const IErrorNotifier * <a class="code" href="namespaceAdobeXMPCommon.html#aa4baade1a8eb0dbb544860e0c89362f8">pcIErrorNotifier</a>;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a4d5b76921b44568978986a81d2c19336"> 99</a></span>&#160; typedef shared_ptr&lt; IErrorNotifier &gt; <a class="code" href="namespaceAdobeXMPCommon.html#a4d5b76921b44568978986a81d2c19336">spIErrorNotifier</a>;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a4eeee081576f932942082744eb05456c"> 100</a></span>&#160; typedef shared_ptr&lt; const IErrorNotifier &gt; <a class="code" href="namespaceAdobeXMPCommon.html#a4eeee081576f932942082744eb05456c">spcIErrorNotifier</a>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="comment">// IConfigurationManager</span></div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#ab6a71f81b4e3c8e5d2d0c90f82fbee08"> 103</a></span>&#160; class <a class="code" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html">IConfigurationManager_v1</a>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; typedef IConfigurationManager_v1 <a class="code" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html">IConfigurationManager_base</a>;</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a20fcfcaa614eba9a9fcdf2353b82fdb7"> 105</a></span>&#160; typedef IConfigurationManager_v1 * <a class="code" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html">pIConfigurationManager_base</a>;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a39556e80a6bda05757b7f2766ddc2ba1"> 106</a></span>&#160; typedef const IConfigurationManager_v1 * <a class="code" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html">pcIConfigurationManager_base</a>;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; typedef <a class="code" href="namespaceAdobeXMPCommon.html#a376c8e3ade71b2836888a07746dd3882">BASE_CLASS</a>( IConfigurationManager, <a class="code" href="XMPCommonLatestInterfaceVersions_8h.html#a21492cbe0c77bbbad967232b377855c1">ICONFIGURATIONMANAGER_VERSION</a> ) IConfigurationManager;</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a66f57b67d8be6cbf836ad084a3d27d76"> 108</a></span>&#160; typedef IConfigurationManager * <a class="code" href="namespaceAdobeXMPCommon.html#a66f57b67d8be6cbf836ad084a3d27d76">pIConfigurationManager</a>;</div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a2a6831c5d17f5c9990c01268f67b7bb2"> 109</a></span>&#160; typedef const IConfigurationManager * <a class="code" href="namespaceAdobeXMPCommon.html#a2a6831c5d17f5c9990c01268f67b7bb2">pcIConfigurationManager</a>;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a4ebcc3c8cb04d7593dc3250aa720f0d4"> 110</a></span>&#160; typedef shared_ptr&lt; IConfigurationManager &gt; <a class="code" href="namespaceAdobeXMPCommon.html#a4ebcc3c8cb04d7593dc3250aa720f0d4">spIConfigurationManager</a>;</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#abe53a5a98ec0d2d6ce76d1d820794177"> 111</a></span>&#160; typedef shared_ptr&lt; const IConfigurationManager &gt; <a class="code" href="namespaceAdobeXMPCommon.html#abe53a5a98ec0d2d6ce76d1d820794177">spcIConfigurationManager</a>;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="comment">// IConfigurable</span></div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a9befc7ddfe5977c8176eed763d9ce69e"> 114</a></span>&#160; class <a class="code" href="classAdobeXMPCommon_1_1IConfigurable.html">IConfigurable</a>;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; typedef IConfigurable * <a class="code" href="classAdobeXMPCommon_1_1IConfigurable.html">pIConfigurable</a>;</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a394d772cfe78f1dbeba6059e7a3c65d6"> 116</a></span>&#160; typedef const IConfigurable * <a class="code" href="classAdobeXMPCommon_1_1IConfigurable.html">pcIConfigurable</a>;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="comment">// typedefs for vectors and their corresponding shared pointers.</span></div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#ac82ab59bdaecb219834ac2ff81573414"> 119</a></span>&#160; typedef std::vector&lt; spIUTF8String &gt; <a class="code" href="namespaceAdobeXMPCommon.html#ac82ab59bdaecb219834ac2ff81573414">IUTF8Strings</a>;</div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#aae5dbe164f71188aa24c87fa6306539a"> 120</a></span>&#160; typedef std::vector&lt; spcIUTF8String &gt; <a class="code" href="namespaceAdobeXMPCommon.html#aae5dbe164f71188aa24c87fa6306539a">cIUTF8Strings</a>;</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a5f4ff8126658f07efbc881778bfea430"> 121</a></span>&#160; typedef shared_ptr&lt; IUTF8Strings &gt; <a class="code" href="namespaceAdobeXMPCommon.html#a5f4ff8126658f07efbc881778bfea430">spIUTF8Strings</a>;</div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a181114a44f34efda2d8b4cb98446de86"> 122</a></span>&#160; typedef shared_ptr&lt; cIUTF8Strings &gt; <a class="code" href="namespaceAdobeXMPCommon.html#a181114a44f34efda2d8b4cb98446de86">spcIUTF8Strings</a>;</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#ab4410cb115c4e0fa0800ab6ebf21abf7"> 123</a></span>&#160; typedef shared_ptr&lt; const IUTF8Strings &gt; <a class="code" href="namespaceAdobeXMPCommon.html#ab4410cb115c4e0fa0800ab6ebf21abf7">spIUTF8Strings_const</a>;</div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#aeea9f5dbdf44fd5382b0ca50dda8f2cf"> 124</a></span>&#160; typedef shared_ptr&lt; const cIUTF8Strings &gt; <a class="code" href="namespaceAdobeXMPCommon.html#aeea9f5dbdf44fd5382b0ca50dda8f2cf">spcIUTF8Strings_const</a>;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a6ddf5efa8f9b686e5d7fef41d6b10096"> 132</a></span>&#160; typedef <span class="keywordtype">void</span> * ( *<a class="code" href="namespaceAdobeXMPCommon.html#a6ddf5efa8f9b686e5d7fef41d6b10096">MemAllocateProc</a> )( <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> sz );</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordtype">void</span> * <a class="code" href="namespaceAdobeXMPCommon.html#a3349137d458c48d779670626d7b6ba1a">MemAllocate</a>( <a class="code" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> size ) <a class="code" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon.html#a79edf1f9139609bf6ed70b24cc99a2e0"> 139</a></span>&#160; typedef <span class="keywordtype">void</span>( *<a class="code" href="namespaceAdobeXMPCommon.html#a79edf1f9139609bf6ed70b24cc99a2e0">MemReleaseProc</a> )( <span class="keywordtype">void</span> * ptr );</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordtype">void</span> <a class="code" href="namespaceAdobeXMPCommon.html#ad4c125f465214507005d84a360fa83e5">MemRelease</a>( <span class="keywordtype">void</span> * ptr ) __NOTHROW__;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;} <span class="comment">// namespace AdobeXMPCommon</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon__Int.html"> 144</a></span>&#160;namespace <a class="code" href="namespaceAdobeXMPCommon__Int.html">AdobeXMPCommon_Int</a> {</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="comment">// ISharedObject_I</span></div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon__Int.html#ada4b051c58f05ef398453930451bc13d"> 147</a></span>&#160; <span class="keyword">class </span>ISharedObject_I;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">typedef</span> ISharedObject_I * <a class="code" href="namespaceAdobeXMPCommon__Int.html#ada4b051c58f05ef398453930451bc13d">pISharedObject_I</a>;</div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon__Int.html#affd72b6c7abbc84fdef10b5a607cd432"> 149</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">const</span> ISharedObject_I * <a class="code" href="namespaceAdobeXMPCommon__Int.html#affd72b6c7abbc84fdef10b5a607cd432">pcISharedObject_I</a>;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="comment">// IThreadSafe_I</span></div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon__Int.html#ac9c07c42e647a17838c9314b8d2823d9"> 152</a></span>&#160; <span class="keyword">class </span>IThreadSafe_I;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keyword">typedef</span> IThreadSafe_I * <a class="code" href="namespaceAdobeXMPCommon__Int.html#ac9c07c42e647a17838c9314b8d2823d9">pIThreadSafe_I</a>;</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCommon__Int.html#a2becb4c0d21c71e1dcecdcaae0e92bd7"> 154</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">const</span> IThreadSafe_I * <a class="code" href="namespaceAdobeXMPCommon__Int.html#a2becb4c0d21c71e1dcecdcaae0e92bd7">pcIThreadSafe_I</a>;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;}</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="preprocessor">#endif // __XMPCommonFwdDeclarations_h__</span></div><div class="ttc" id="namespaceAdobeXMPCommon__Int_html_ada4b051c58f05ef398453930451bc13d"><div class="ttname"><a href="namespaceAdobeXMPCommon__Int.html#ada4b051c58f05ef398453930451bc13d">AdobeXMPCommon_Int::pISharedObject_I</a></div><div class="ttdeci">ISharedObject_I * pISharedObject_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00147">XMPCommonFwdDeclarations.h:147</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a3349137d458c48d779670626d7b6ba1a"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a3349137d458c48d779670626d7b6ba1a">AdobeXMPCommon::MemAllocate</a></div><div class="ttdeci">void * MemAllocate(sizet size) __NOTHROW__</div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_aae5dbe164f71188aa24c87fa6306539a"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#aae5dbe164f71188aa24c87fa6306539a">AdobeXMPCommon::cIUTF8Strings</a></div><div class="ttdeci">std::vector&lt; spcIUTF8String &gt; cIUTF8Strings</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00120">XMPCommonFwdDeclarations.h:120</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_aa4baade1a8eb0dbb544860e0c89362f8"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#aa4baade1a8eb0dbb544860e0c89362f8">AdobeXMPCommon::pcIErrorNotifier</a></div><div class="ttdeci">const IErrorNotifier * pcIErrorNotifier</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00098">XMPCommonFwdDeclarations.h:98</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html"><div class="ttname"><a href="XMPCommonDefines_8h.html">XMPCommonDefines.h</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a4d5b76921b44568978986a81d2c19336"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a4d5b76921b44568978986a81d2c19336">AdobeXMPCommon::spIErrorNotifier</a></div><div class="ttdeci">shared_ptr&lt; IErrorNotifier &gt; spIErrorNotifier</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00099">XMPCommonFwdDeclarations.h:99</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a4ebcc3c8cb04d7593dc3250aa720f0d4"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a4ebcc3c8cb04d7593dc3250aa720f0d4">AdobeXMPCommon::spIConfigurationManager</a></div><div class="ttdeci">shared_ptr&lt; IConfigurationManager &gt; spIConfigurationManager</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00110">XMPCommonFwdDeclarations.h:110</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a9423cafa21356df5d02adf7a94f4e4b0"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a9423cafa21356df5d02adf7a94f4e4b0">AdobeXMPCommon::spIMemoryAllocator</a></div><div class="ttdeci">shared_ptr&lt; IMemoryAllocator &gt; spIMemoryAllocator</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00088">XMPCommonFwdDeclarations.h:88</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8d7232279921e3ccaa69fe314052415b"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8d7232279921e3ccaa69fe314052415b">AdobeXMPCommon::pcIObjectFactory_base</a></div><div class="ttdeci">const IObjectFactory_v1 * pcIObjectFactory_base</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00053">XMPCommonFwdDeclarations.h:53</a></div></div>
+<div class="ttc" id="XMPCommonLatestInterfaceVersions_8h_html_a5c5712b51cebbbdbf40cc691b4123209"><div class="ttname"><a href="XMPCommonLatestInterfaceVersions_8h.html#a5c5712b51cebbbdbf40cc691b4123209">IMEMORYALLOCATOR_VERSION</a></div><div class="ttdeci">#define IMEMORYALLOCATOR_VERSION</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonLatestInterfaceVersions_8h_source.html#l00036">XMPCommonLatestInterfaceVersions.h:36</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a9981f3ca088023224e80dbad05090f3c"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a9981f3ca088023224e80dbad05090f3c">AdobeXMPCommon::pIErrorNotifier</a></div><div class="ttdeci">IErrorNotifier * pIErrorNotifier</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00097">XMPCommonFwdDeclarations.h:97</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a25f44f5d5e5c651d20124037a7c3b5c3"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a25f44f5d5e5c651d20124037a7c3b5c3">AdobeXMPCommon::IObjectFactory_base</a></div><div class="ttdeci">IObjectFactory_v1 IObjectFactory_base</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00050">XMPCommonFwdDeclarations.h:50</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IErrorNotifier__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IErrorNotifier__v1.html">AdobeXMPCommon::IErrorNotifier_v1</a></div><div class="ttdoc">Version1 of the interface that represents an interface to be implemented by client in case he is inte...</div><div class="ttdef"><b>Definition:</b> <a href="IErrorNotifier_8h_source.html#l00027">IErrorNotifier.h:27</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a0e0c89c232b777fb332e0ddc10b65fc2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a0e0c89c232b777fb332e0ddc10b65fc2">AdobeXMPCommon::pcIError</a></div><div class="ttdeci">const IError * pcIError</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00065">XMPCommonFwdDeclarations.h:65</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_adb05c7ceec43360b84aee536612151f9"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#adb05c7ceec43360b84aee536612151f9">AdobeXMPCommon::spIError</a></div><div class="ttdeci">shared_ptr&lt; IError &gt; spIError</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00066">XMPCommonFwdDeclarations.h:66</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon__Int_html_affd72b6c7abbc84fdef10b5a607cd432"><div class="ttname"><a href="namespaceAdobeXMPCommon__Int.html#affd72b6c7abbc84fdef10b5a607cd432">AdobeXMPCommon_Int::pcISharedObject_I</a></div><div class="ttdeci">const ISharedObject_I * pcISharedObject_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00149">XMPCommonFwdDeclarations.h:149</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a3f0de5ba5753a56896f2941927b23560"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a3f0de5ba5753a56896f2941927b23560">AdobeXMPCommon::spcIError</a></div><div class="ttdeci">shared_ptr&lt; const IError &gt; spcIError</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00067">XMPCommonFwdDeclarations.h:67</a></div></div>
+<div class="ttc" id="XMPCommonDefines_8h_html_a5a929113d3d50bda3fb7135a5c8b24a2"><div class="ttname"><a href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></div><div class="ttdeci">#define __NOTHROW__</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00117">XMPCommonDefines.h:117</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a91aaab1f1d7030b26df65258bd131a63"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">AdobeXMPCommon::spcIUTF8String</a></div><div class="ttdeci">shared_ptr&lt; const IUTF8String &gt; spcIUTF8String</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00078">XMPCommonFwdDeclarations.h:78</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_ad4c125f465214507005d84a360fa83e5"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#ad4c125f465214507005d84a360fa83e5">AdobeXMPCommon::MemRelease</a></div><div class="ttdeci">void MemRelease(void *ptr) __NOTHROW__</div></div>
+<div class="ttc" id="XMPCommonLatestInterfaceVersions_8h_html_a884c112243a29a7b0388b1954efc317b"><div class="ttname"><a href="XMPCommonLatestInterfaceVersions_8h.html#a884c112243a29a7b0388b1954efc317b">IUTF8STRING_VERSION</a></div><div class="ttdeci">#define IUTF8STRING_VERSION</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonLatestInterfaceVersions_8h_source.html#l00032">XMPCommonLatestInterfaceVersions.h:32</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a272e32106a7573db514736bfb68a1673"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a272e32106a7573db514736bfb68a1673">AdobeXMPCommon::pcIObjectFactory</a></div><div class="ttdeci">const IObjectFactory * pcIObjectFactory</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00056">XMPCommonFwdDeclarations.h:56</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a2a6831c5d17f5c9990c01268f67b7bb2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a2a6831c5d17f5c9990c01268f67b7bb2">AdobeXMPCommon::pcIConfigurationManager</a></div><div class="ttdeci">const IConfigurationManager * pcIConfigurationManager</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00109">XMPCommonFwdDeclarations.h:109</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_ac0db32de8e6a3688ad0dfc36c2757fb4"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#ac0db32de8e6a3688ad0dfc36c2757fb4">AdobeXMPCommon::pIError</a></div><div class="ttdeci">IError * pIError</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00064">XMPCommonFwdDeclarations.h:64</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IConfigurable_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></div><div class="ttdoc">Interface that allows to attach various key-value parameters to the underlying object. </div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00030">IConfigurable.h:30</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IMemoryAllocator__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html">AdobeXMPCommon::IMemoryAllocator_v1</a></div><div class="ttdoc">Version1 of the interface that represents an interface to be implemented by client in case he is inte...</div><div class="ttdef"><b>Definition:</b> <a href="IMemoryAllocator_8h_source.html#l00027">IMemoryAllocator.h:27</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_ac82ab59bdaecb219834ac2ff81573414"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#ac82ab59bdaecb219834ac2ff81573414">AdobeXMPCommon::IUTF8Strings</a></div><div class="ttdeci">std::vector&lt; spIUTF8String &gt; IUTF8Strings</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00119">XMPCommonFwdDeclarations.h:119</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a66f57b67d8be6cbf836ad084a3d27d76"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a66f57b67d8be6cbf836ad084a3d27d76">AdobeXMPCommon::pIConfigurationManager</a></div><div class="ttdeci">IConfigurationManager * pIConfigurationManager</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00108">XMPCommonFwdDeclarations.h:108</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a27ba1868ebc552bef10fe156bd4e340b"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a27ba1868ebc552bef10fe156bd4e340b">AdobeXMPCommon::pIUTF8String</a></div><div class="ttdeci">IUTF8String * pIUTF8String</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00075">XMPCommonFwdDeclarations.h:75</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_aa9b2c45fd472c6e0e322a94c87e36e23"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#aa9b2c45fd472c6e0e322a94c87e36e23">AdobeXMPCommon::pcIUTF8String</a></div><div class="ttdeci">const IUTF8String * pcIUTF8String</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00076">XMPCommonFwdDeclarations.h:76</a></div></div>
+<div class="ttc" id="XMPCommonLatestInterfaceVersions_8h_html_a21492cbe0c77bbbad967232b377855c1"><div class="ttname"><a href="XMPCommonLatestInterfaceVersions_8h.html#a21492cbe0c77bbbad967232b377855c1">ICONFIGURATIONMANAGER_VERSION</a></div><div class="ttdeci">#define ICONFIGURATIONMANAGER_VERSION</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonLatestInterfaceVersions_8h_source.html#l00044">XMPCommonLatestInterfaceVersions.h:44</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a79edf1f9139609bf6ed70b24cc99a2e0"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a79edf1f9139609bf6ed70b24cc99a2e0">AdobeXMPCommon::MemReleaseProc</a></div><div class="ttdeci">void(* MemReleaseProc)(void *ptr)</div><div class="ttdoc">A function pointer to get the memory freed from the library. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00139">XMPCommonFwdDeclarations.h:139</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a183fc5e814bdad0ddf9946ddc35c307a"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a183fc5e814bdad0ddf9946ddc35c307a">AdobeXMPCommon::spcIMemoryAllocator</a></div><div class="ttdeci">shared_ptr&lt; const IMemoryAllocator &gt; spcIMemoryAllocator</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00089">XMPCommonFwdDeclarations.h:89</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a6ddf5efa8f9b686e5d7fef41d6b10096"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a6ddf5efa8f9b686e5d7fef41d6b10096">AdobeXMPCommon::MemAllocateProc</a></div><div class="ttdeci">void *(* MemAllocateProc)(sizet sz)</div><div class="ttdoc">A function pointer to get the memory allocated from the library. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00132">XMPCommonFwdDeclarations.h:132</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a28d3e703084f75a411ece4bb7b22fdd4"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a28d3e703084f75a411ece4bb7b22fdd4">AdobeXMPCommon::spvoid</a></div><div class="ttdeci">shared_ptr&lt; void &gt; spvoid</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00046">XMPCommonFwdDeclarations.h:46</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IObjectFactory__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IObjectFactory__v1.html">AdobeXMPCommon::IObjectFactory_v1</a></div><div class="ttdoc">Version1 of a interface that represents a factory to create various artifacts defined within AdobeXMP...</div><div class="ttdef"><b>Definition:</b> <a href="IObjectFactory_8h_source.html#l00025">IObjectFactory.h:25</a></div></div>
+<div class="ttc" id="XMPCommonLatestInterfaceVersions_8h_html_a4d8312c0c69be3f57e5f14b7b2d1224d"><div class="ttname"><a href="XMPCommonLatestInterfaceVersions_8h.html#a4d8312c0c69be3f57e5f14b7b2d1224d">IERROR_VERSION</a></div><div class="ttdeci">#define IERROR_VERSION</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonLatestInterfaceVersions_8h_source.html#l00028">XMPCommonLatestInterfaceVersions.h:28</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_aeea9f5dbdf44fd5382b0ca50dda8f2cf"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#aeea9f5dbdf44fd5382b0ca50dda8f2cf">AdobeXMPCommon::spcIUTF8Strings_const</a></div><div class="ttdeci">shared_ptr&lt; const cIUTF8Strings &gt; spcIUTF8Strings_const</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00124">XMPCommonFwdDeclarations.h:124</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></div><div class="ttdoc">Version1 of the interface that represents an error/warning encountered during processing. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00026">IError.h:26</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a1c85c2f558b495c3d41eabe692a96cf2"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a></div><div class="ttdeci">uint32 sizet</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00146">XMPCommonDefines.h:146</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_af5a7d4d78400043e3e49dfa6a2725abb"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#af5a7d4d78400043e3e49dfa6a2725abb">AdobeXMPCommon::pcIMemoryAllocator</a></div><div class="ttdeci">const IMemoryAllocator * pcIMemoryAllocator</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00087">XMPCommonFwdDeclarations.h:87</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_ab59e650373a5efadfbfd2486313258a6"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#ab59e650373a5efadfbfd2486313258a6">AdobeXMPCommon::pvoid</a></div><div class="ttdeci">void * pvoid</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00044">XMPCommonFwdDeclarations.h:44</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a93bf79ca806273dc229d940504654caa"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a93bf79ca806273dc229d940504654caa">AdobeXMPCommon::spcvoid</a></div><div class="ttdeci">shared_ptr&lt; const void * &gt; spcvoid</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00047">XMPCommonFwdDeclarations.h:47</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon__Int_html_a2becb4c0d21c71e1dcecdcaae0e92bd7"><div class="ttname"><a href="namespaceAdobeXMPCommon__Int.html#a2becb4c0d21c71e1dcecdcaae0e92bd7">AdobeXMPCommon_Int::pcIThreadSafe_I</a></div><div class="ttdeci">const IThreadSafe_I * pcIThreadSafe_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00154">XMPCommonFwdDeclarations.h:154</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a4eeee081576f932942082744eb05456c"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a4eeee081576f932942082744eb05456c">AdobeXMPCommon::spcIErrorNotifier</a></div><div class="ttdeci">shared_ptr&lt; const IErrorNotifier &gt; spcIErrorNotifier</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00100">XMPCommonFwdDeclarations.h:100</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_abe53a5a98ec0d2d6ce76d1d820794177"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#abe53a5a98ec0d2d6ce76d1d820794177">AdobeXMPCommon::spcIConfigurationManager</a></div><div class="ttdeci">shared_ptr&lt; const IConfigurationManager &gt; spcIConfigurationManager</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00111">XMPCommonFwdDeclarations.h:111</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a0863cf1c24764306839671985373b93f"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a0863cf1c24764306839671985373b93f">AdobeXMPCommon::pIObjectFactory</a></div><div class="ttdeci">IObjectFactory * pIObjectFactory</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00055">XMPCommonFwdDeclarations.h:55</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a5f4ff8126658f07efbc881778bfea430"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a5f4ff8126658f07efbc881778bfea430">AdobeXMPCommon::spIUTF8Strings</a></div><div class="ttdeci">shared_ptr&lt; IUTF8Strings &gt; spIUTF8Strings</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00121">XMPCommonFwdDeclarations.h:121</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html"><div class="ttname"><a href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a></div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00019">IConfigurable.h:19</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IConfigurationManager__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html">AdobeXMPCommon::IConfigurationManager_v1</a></div><div class="ttdoc">Version1 of the interface that represents configuration settings controllable by the client...</div><div class="ttdef"><b>Definition:</b> <a href="IConfigurationManager_8h_source.html#l00030">IConfigurationManager.h:30</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_adb1552a01da782d3f1c5ff00e49f48f8"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#adb1552a01da782d3f1c5ff00e49f48f8">AdobeXMPCommon::pIObjectFactory_base</a></div><div class="ttdeci">IObjectFactory_v1 * pIObjectFactory_base</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00052">XMPCommonFwdDeclarations.h:52</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon__Int_html"><div class="ttname"><a href="namespaceAdobeXMPCommon__Int.html">AdobeXMPCommon_Int</a></div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00144">XMPCommonFwdDeclarations.h:144</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a376c8e3ade71b2836888a07746dd3882"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a376c8e3ade71b2836888a07746dd3882">AdobeXMPCommon::BASE_CLASS</a></div><div class="ttdeci">typedef BASE_CLASS(IObjectFactory, IOBJECTFACTORY_VERSION) IObjectFactory</div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a605dcb5281a71a01673c81e6508f932f"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a605dcb5281a71a01673c81e6508f932f">AdobeXMPCommon::pIMemoryAllocator</a></div><div class="ttdeci">IMemoryAllocator * pIMemoryAllocator</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00086">XMPCommonFwdDeclarations.h:86</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon__Int_html_ac9c07c42e647a17838c9314b8d2823d9"><div class="ttname"><a href="namespaceAdobeXMPCommon__Int.html#ac9c07c42e647a17838c9314b8d2823d9">AdobeXMPCommon_Int::pIThreadSafe_I</a></div><div class="ttdeci">IThreadSafe_I * pIThreadSafe_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00152">XMPCommonFwdDeclarations.h:152</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a19692335f9547f4bc07d0ff727f14605"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a19692335f9547f4bc07d0ff727f14605">AdobeXMPCommon::pcvoid</a></div><div class="ttdeci">const void * pcvoid</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00045">XMPCommonFwdDeclarations.h:45</a></div></div>
+<div class="ttc" id="XMPCommonLatestInterfaceVersions_8h_html_ad84704e1c2910ca9d71d41183c3a378c"><div class="ttname"><a href="XMPCommonLatestInterfaceVersions_8h.html#ad84704e1c2910ca9d71d41183c3a378c">IERRORNOTIFIER_VERSION</a></div><div class="ttdeci">#define IERRORNOTIFIER_VERSION</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonLatestInterfaceVersions_8h_source.html#l00040">XMPCommonLatestInterfaceVersions.h:40</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IUTF8String__v1_html"><div class="ttname"><a href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></div><div class="ttdoc">Version1 of the interface that represents an UTF8String. </div><div class="ttdef"><b>Definition:</b> <a href="IUTF8String_8h_source.html#l00023">IUTF8String.h:23</a></div></div>
+<div class="ttc" id="XMPCommonLatestInterfaceVersions_8h_html"><div class="ttname"><a href="XMPCommonLatestInterfaceVersions_8h.html">XMPCommonLatestInterfaceVersions.h</a></div></div>
+<div class="ttc" id="XMPCommonLatestInterfaceVersions_8h_html_a6844f2fb727f99e352e61045154eba8b"><div class="ttname"><a href="XMPCommonLatestInterfaceVersions_8h.html#a6844f2fb727f99e352e61045154eba8b">IOBJECTFACTORY_VERSION</a></div><div class="ttdeci">#define IOBJECTFACTORY_VERSION</div><div class="ttdoc">Macro to include a client file through with client can control the interface versions he wants to sti...</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonLatestInterfaceVersions_8h_source.html#l00024">XMPCommonLatestInterfaceVersions.h:24</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_ac9d7760a1805b1e28828511a2c8c5588"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">AdobeXMPCommon::spIUTF8String</a></div><div class="ttdeci">shared_ptr&lt; IUTF8String &gt; spIUTF8String</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00077">XMPCommonFwdDeclarations.h:77</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a181114a44f34efda2d8b4cb98446de86"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a181114a44f34efda2d8b4cb98446de86">AdobeXMPCommon::spcIUTF8Strings</a></div><div class="ttdeci">shared_ptr&lt; cIUTF8Strings &gt; spcIUTF8Strings</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00122">XMPCommonFwdDeclarations.h:122</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_ab4410cb115c4e0fa0800ab6ebf21abf7"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#ab4410cb115c4e0fa0800ab6ebf21abf7">AdobeXMPCommon::spIUTF8Strings_const</a></div><div class="ttdeci">shared_ptr&lt; const IUTF8Strings &gt; spIUTF8Strings_const</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00123">XMPCommonFwdDeclarations.h:123</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/XMPCommonLatestInterfaceVersions_8h.html b/docs/API/XMPCommonLatestInterfaceVersions_8h.html
new file mode 100755
index 0000000..a0f9739
--- /dev/null
+++ b/docs/API/XMPCommonLatestInterfaceVersions_8h.html
@@ -0,0 +1,172 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/XMPCommonLatestInterfaceVersions.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('XMPCommonLatestInterfaceVersions_8h.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#define-members">Macros</a> </div>
+ <div class="headertitle">
+<div class="title">XMPCommonLatestInterfaceVersions.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="XMPCommonLatestInterfaceVersions_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a6844f2fb727f99e352e61045154eba8b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCommonLatestInterfaceVersions_8h.html#a6844f2fb727f99e352e61045154eba8b">IOBJECTFACTORY_VERSION</a>&#160;&#160;&#160;1</td></tr>
+<tr class="memdesc:a6844f2fb727f99e352e61045154eba8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro to include a client file through with client can control the interface versions he wants to stick with if not the latest ones. <a href="#a6844f2fb727f99e352e61045154eba8b">More...</a><br /></td></tr>
+<tr class="separator:a6844f2fb727f99e352e61045154eba8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4d8312c0c69be3f57e5f14b7b2d1224d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCommonLatestInterfaceVersions_8h.html#a4d8312c0c69be3f57e5f14b7b2d1224d">IERROR_VERSION</a>&#160;&#160;&#160;1</td></tr>
+<tr class="separator:a4d8312c0c69be3f57e5f14b7b2d1224d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a884c112243a29a7b0388b1954efc317b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCommonLatestInterfaceVersions_8h.html#a884c112243a29a7b0388b1954efc317b">IUTF8STRING_VERSION</a>&#160;&#160;&#160;1</td></tr>
+<tr class="separator:a884c112243a29a7b0388b1954efc317b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5c5712b51cebbbdbf40cc691b4123209"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCommonLatestInterfaceVersions_8h.html#a5c5712b51cebbbdbf40cc691b4123209">IMEMORYALLOCATOR_VERSION</a>&#160;&#160;&#160;1</td></tr>
+<tr class="separator:a5c5712b51cebbbdbf40cc691b4123209"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad84704e1c2910ca9d71d41183c3a378c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCommonLatestInterfaceVersions_8h.html#ad84704e1c2910ca9d71d41183c3a378c">IERRORNOTIFIER_VERSION</a>&#160;&#160;&#160;1</td></tr>
+<tr class="separator:ad84704e1c2910ca9d71d41183c3a378c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a21492cbe0c77bbbad967232b377855c1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCommonLatestInterfaceVersions_8h.html#a21492cbe0c77bbbad967232b377855c1">ICONFIGURATIONMANAGER_VERSION</a>&#160;&#160;&#160;1</td></tr>
+<tr class="separator:a21492cbe0c77bbbad967232b377855c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a829031e337c57225307b0be2d229a8b4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCommonLatestInterfaceVersions_8h.html#a829031e337c57225307b0be2d229a8b4">ICONFIGURABLE_VERSION</a>&#160;&#160;&#160;1</td></tr>
+<tr class="separator:a829031e337c57225307b0be2d229a8b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="a829031e337c57225307b0be2d229a8b4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define ICONFIGURABLE_VERSION&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonLatestInterfaceVersions_8h_source.html#l00048">48</a> of file <a class="el" href="XMPCommonLatestInterfaceVersions_8h_source.html">XMPCommonLatestInterfaceVersions.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a21492cbe0c77bbbad967232b377855c1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define ICONFIGURATIONMANAGER_VERSION&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonLatestInterfaceVersions_8h_source.html#l00044">44</a> of file <a class="el" href="XMPCommonLatestInterfaceVersions_8h_source.html">XMPCommonLatestInterfaceVersions.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4d8312c0c69be3f57e5f14b7b2d1224d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define IERROR_VERSION&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonLatestInterfaceVersions_8h_source.html#l00028">28</a> of file <a class="el" href="XMPCommonLatestInterfaceVersions_8h_source.html">XMPCommonLatestInterfaceVersions.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad84704e1c2910ca9d71d41183c3a378c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define IERRORNOTIFIER_VERSION&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonLatestInterfaceVersions_8h_source.html#l00040">40</a> of file <a class="el" href="XMPCommonLatestInterfaceVersions_8h_source.html">XMPCommonLatestInterfaceVersions.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5c5712b51cebbbdbf40cc691b4123209"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define IMEMORYALLOCATOR_VERSION&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonLatestInterfaceVersions_8h_source.html#l00036">36</a> of file <a class="el" href="XMPCommonLatestInterfaceVersions_8h_source.html">XMPCommonLatestInterfaceVersions.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6844f2fb727f99e352e61045154eba8b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define IOBJECTFACTORY_VERSION&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Macro to include a client file through with client can control the interface versions he wants to stick with if not the latest ones. </p>
+
+<p>Definition at line <a class="el" href="XMPCommonLatestInterfaceVersions_8h_source.html#l00024">24</a> of file <a class="el" href="XMPCommonLatestInterfaceVersions_8h_source.html">XMPCommonLatestInterfaceVersions.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a884c112243a29a7b0388b1954efc317b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define IUTF8STRING_VERSION&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonLatestInterfaceVersions_8h_source.html#l00032">32</a> of file <a class="el" href="XMPCommonLatestInterfaceVersions_8h_source.html">XMPCommonLatestInterfaceVersions.h</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/XMPCommonLatestInterfaceVersions_8h.js b/docs/API/XMPCommonLatestInterfaceVersions_8h.js
new file mode 100755
index 0000000..7c634ab
--- /dev/null
+++ b/docs/API/XMPCommonLatestInterfaceVersions_8h.js
@@ -0,0 +1,10 @@
+var XMPCommonLatestInterfaceVersions_8h =
+[
+ [ "ICONFIGURABLE_VERSION", "XMPCommonLatestInterfaceVersions_8h.html#a829031e337c57225307b0be2d229a8b4", null ],
+ [ "ICONFIGURATIONMANAGER_VERSION", "XMPCommonLatestInterfaceVersions_8h.html#a21492cbe0c77bbbad967232b377855c1", null ],
+ [ "IERROR_VERSION", "XMPCommonLatestInterfaceVersions_8h.html#a4d8312c0c69be3f57e5f14b7b2d1224d", null ],
+ [ "IERRORNOTIFIER_VERSION", "XMPCommonLatestInterfaceVersions_8h.html#ad84704e1c2910ca9d71d41183c3a378c", null ],
+ [ "IMEMORYALLOCATOR_VERSION", "XMPCommonLatestInterfaceVersions_8h.html#a5c5712b51cebbbdbf40cc691b4123209", null ],
+ [ "IOBJECTFACTORY_VERSION", "XMPCommonLatestInterfaceVersions_8h.html#a6844f2fb727f99e352e61045154eba8b", null ],
+ [ "IUTF8STRING_VERSION", "XMPCommonLatestInterfaceVersions_8h.html#a884c112243a29a7b0388b1954efc317b", null ]
+]; \ No newline at end of file
diff --git a/docs/API/XMPCommonLatestInterfaceVersions_8h_source.html b/docs/API/XMPCommonLatestInterfaceVersions_8h_source.html
new file mode 100755
index 0000000..4dd2a53
--- /dev/null
+++ b/docs/API/XMPCommonLatestInterfaceVersions_8h_source.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/XMPCommonLatestInterfaceVersions.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('XMPCommonLatestInterfaceVersions_8h_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">XMPCommonLatestInterfaceVersions.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="XMPCommonLatestInterfaceVersions_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef XMPCommonLatestInterfaceVersions_h__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define XMPCommonLatestInterfaceVersions_h__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// ADOBE SYSTEMS INCORPORATED</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// Copyright 2015 Adobe Systems Incorporated</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// All Rights Reserved</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#if !SOURCE_COMPILING_XMPCOMMON_LIB</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor"> #ifdef XMPCOMMON_CLIENT_VERSION_NUMBER_FILE</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"> #include QUOTEME(XMPCOMMON_CLIENT_VERSION_NUMBER_FILE)</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#ifndef IOBJECTFACTORY_VERSION</span></div><div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="XMPCommonLatestInterfaceVersions_8h.html#a6844f2fb727f99e352e61045154eba8b"> 24</a></span>&#160;<span class="preprocessor"> #define IOBJECTFACTORY_VERSION 1</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#ifndef IERROR_VERSION</span></div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="XMPCommonLatestInterfaceVersions_8h.html#a4d8312c0c69be3f57e5f14b7b2d1224d"> 28</a></span>&#160;<span class="preprocessor"> #define IERROR_VERSION 1</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#ifndef IUTF8STRING_VERSION</span></div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="XMPCommonLatestInterfaceVersions_8h.html#a884c112243a29a7b0388b1954efc317b"> 32</a></span>&#160;<span class="preprocessor"> #define IUTF8STRING_VERSION 1</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#ifndef IMEMORYALLOCATOR_VERSION</span></div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="XMPCommonLatestInterfaceVersions_8h.html#a5c5712b51cebbbdbf40cc691b4123209"> 36</a></span>&#160;<span class="preprocessor"> #define IMEMORYALLOCATOR_VERSION 1</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#ifndef IERRORNOTIFIER_VERSION</span></div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="XMPCommonLatestInterfaceVersions_8h.html#ad84704e1c2910ca9d71d41183c3a378c"> 40</a></span>&#160;<span class="preprocessor"> #define IERRORNOTIFIER_VERSION 1</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#ifndef ICONFIGURATIONMANAGER_VERSION</span></div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="XMPCommonLatestInterfaceVersions_8h.html#a21492cbe0c77bbbad967232b377855c1"> 44</a></span>&#160;<span class="preprocessor"> #define ICONFIGURATIONMANAGER_VERSION 1</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#ifndef ICONFIGURABLE_VERSION</span></div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="XMPCommonLatestInterfaceVersions_8h.html#a829031e337c57225307b0be2d229a8b4"> 48</a></span>&#160;<span class="preprocessor"> #define ICONFIGURABLE_VERSION 1</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#endif // XMPCommonLatestInterfaceVersions_h__</span></div></div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/XMPCoreDefines_8h.html b/docs/API/XMPCoreDefines_8h.html
new file mode 100755
index 0000000..3591b29
--- /dev/null
+++ b/docs/API/XMPCoreDefines_8h.html
@@ -0,0 +1,74 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/XMPCoreDefines.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('XMPCoreDefines_8h.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#define-members">Macros</a> </div>
+ <div class="headertitle">
+<div class="title">XMPCoreDefines.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="XMPCommonDefines_8h_source.html">XMPCommon/XMPCommonDefines.h</a>&quot;</code><br />
+</div>
+<p><a href="XMPCoreDefines_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a6919ea0ee288c12c640a170d34d35cbe"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCoreDefines_8h.html#a6919ea0ee288c12c640a170d34d35cbe">ENABLE_CPP_DOM_MODEL</a>&#160;&#160;&#160;0</td></tr>
+<tr class="separator:a6919ea0ee288c12c640a170d34d35cbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="a6919ea0ee288c12c640a170d34d35cbe"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define ENABLE_CPP_DOM_MODEL&#160;&#160;&#160;0</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreDefines_8h_source.html#l00056">56</a> of file <a class="el" href="XMPCoreDefines_8h_source.html">XMPCoreDefines.h</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/XMPCoreDefines_8h.js b/docs/API/XMPCoreDefines_8h.js
new file mode 100755
index 0000000..153f5ba
--- /dev/null
+++ b/docs/API/XMPCoreDefines_8h.js
@@ -0,0 +1,4 @@
+var XMPCoreDefines_8h =
+[
+ [ "ENABLE_CPP_DOM_MODEL", "XMPCoreDefines_8h.html#a6919ea0ee288c12c640a170d34d35cbe", null ]
+]; \ No newline at end of file
diff --git a/docs/API/XMPCoreDefines_8h_source.html b/docs/API/XMPCoreDefines_8h_source.html
new file mode 100755
index 0000000..1a56d40
--- /dev/null
+++ b/docs/API/XMPCoreDefines_8h_source.html
@@ -0,0 +1,50 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/XMPCoreDefines.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('XMPCoreDefines_8h_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">XMPCoreDefines.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="XMPCoreDefines_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef XMPCoreDefines_h__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define XMPCoreDefines_h__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright 2014 Adobe Systems Incorporated</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// All Rights Reserved.</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// XMPCoreDefines.h - Common Defines for XMP Core component</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// ================================================================</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// This header defines common definitions to be used in XMP Core component.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// All Platform Settings</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// ===========================</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="XMPCommonDefines_8h.html">XMPCommon/XMPCommonDefines.h</a>&quot;</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#ifndef ENABLE_CPP_DOM_MODEL</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment">// Macintosh Specific Settings</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment">// ===========================</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#if XMP_MacBuild</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor"> #define ENABLE_CPP_DOM_MODEL 0</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment">// IOS Specific Settings</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// ===========================</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#if XMP_iOSBuild</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor"> #define ENABLE_CPP_DOM_MODEL 0</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment">// Windows Specific Settings</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment">// =========================</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#if XMP_WinBuild</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor"> #define ENABLE_CPP_DOM_MODEL 0</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment">// UNIX Specific Settings</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment">// ======================</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#if XMP_UNIXBuild</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#define ENABLE_CPP_DOM_MODEL 0</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#endif // ENABLE_CPP_DOM_MODEL</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#ifndef ENABLE_CPP_DOM_MODEL</span></div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="XMPCoreDefines_8h.html#a6919ea0ee288c12c640a170d34d35cbe"> 56</a></span>&#160;<span class="preprocessor"> #define ENABLE_CPP_DOM_MODEL 0</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#if ENABLE_CPP_DOM_MODEL</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor"> #if SOURCE_COMPILING_XMP_ALL</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor"> #define SOURCE_COMPILING_XMPCORE_LIB 1</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor"> #ifndef SOURCE_COMPILING_XMPCORE_LIB</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor"> #define SOURCE_COMPILING_XMPCORE_LIB 0</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor"> #ifndef BUILDING_XMPCORE_LIB</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor"> #define BUILDING_XMPCORE_LIB 0</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor"> #if BUILDING_XMPCORE_LIB</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor"> #if !BUILDING_XMPCORE_AS_STATIC &amp;&amp; !BUILDING_XMPCORE_AS_DYNAMIC</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor"> #error &quot;Define either BUILDING_XMPCORE_AS_STATIC as 1 or BUILDING_XMPCORE_AS_DYNAMIC as 1&quot;</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor"> #ifndef LINKING_XMPCORE_LIB</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor"> #define LINKING_XMPCORE_LIB 1</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">namespace </span><a class="code" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a> {};</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor">#endif // ENABLE_CPP_DOM_MODEL</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor">#endif // XMPCoreDefines_h__</span></div><div class="ttc" id="XMPCommonDefines_8h_html"><div class="ttname"><a href="XMPCommonDefines_8h.html">XMPCommonDefines.h</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html"><div class="ttname"><a href="namespaceAdobeXMPCore.html">AdobeXMPCore</a></div><div class="ttdef"><b>Definition:</b> <a href="IArrayNode_8h_source.html#l00016">IArrayNode.h:16</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/XMPCoreErrorCodes_8h.html b/docs/API/XMPCoreErrorCodes_8h.html
new file mode 100755
index 0000000..9ae622e
--- /dev/null
+++ b/docs/API/XMPCoreErrorCodes_8h.html
@@ -0,0 +1,108 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/XMPCoreErrorCodes.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('XMPCoreErrorCodes_8h.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#namespaces">Namespaces</a> &#124;
+<a href="#enum-members">Enumerations</a> </div>
+ <div class="headertitle">
+<div class="title">XMPCoreErrorCodes.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="XMPCoreDefines_8h_source.html">XMPCore/XMPCoreDefines.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="XMPCommonErrorCodes_8h_source.html">XMPCommon/XMPCommonErrorCodes.h</a>&quot;</code><br />
+</div>
+<p><a href="XMPCoreErrorCodes_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceAdobeXMPCore"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:aacd1fd7f96affcf9707f45c272f08a00"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00">AdobeXMPCore::eDataModelErrorCode</a> { <br />
+&#160;&#160;<a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a2c80efa41e7821f6226aa59f28dfb579">AdobeXMPCore::kDMECNone</a> = 0,
+<a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00ac32e4160006f15e60fd7024cf6f7ac97">AdobeXMPCore::kDMECNameSpacePrefixMapEntryMissing</a> = 1,
+<a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00ae7e65aa4749b12616a43316687d6a355">AdobeXMPCore::kDMECDifferentNodeTypePresent</a> = 2,
+<a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a161dfd9dfc01ba8d6c4e17732f6c0acb">AdobeXMPCore::kDMECNodeAlreadyAChild</a> = 3,
+<br />
+&#160;&#160;<a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a92ffb54182a7cf24b2f09851a6e5fa4a">AdobeXMPCore::kDMECNodeAlreadyExists</a> = 4,
+<a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00ae89776605ae99914cfe1b32cb4674c26">AdobeXMPCore::kDMECNoSuchNodeExists</a> = 5,
+<a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a3b02c3806196f643a69970dd75b25464">AdobeXMPCore::kDMECArrayItemTypeDifferent</a> = 6,
+<a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a7643a6753e328945c9f2580bed3366b1">AdobeXMPCore::kDMECInvalidPathSegment</a> = 7,
+<br />
+&#160;&#160;<a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a3053414fb4821785a9dc653ec9ac3c64">AdobeXMPCore::kDMECBadSchema</a> = 101,
+<a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a5969c9392bfb21fc391de418925e8b4f">AdobeXMPCore::kDMECBadXPath</a> = 102,
+<a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a24f924ad842132ebd85573d0f93bd7f2">AdobeXMPCore::kDMECBadOptions</a> = 103,
+<a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a9b4b77cfab51a51107011966c97e40e1">AdobeXMPCore::kDMECBadIterPosition</a> = 104,
+<br />
+&#160;&#160;<a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a8214373306d98cbb58dd480b825d490f">AdobeXMPCore::kDMECBadUnicode</a> = 105,
+<a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00af8aa55dc3ffd9c4d4612463ed430b262">AdobeXMPCore::kDMECValidationError</a> = 106,
+<a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00ac1c31716f2bb30971e3b1d33b9993234">AdobeXMPCore::kDMECEmptyIterator</a> = 107,
+<a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a301e1376a4475452904ef20167a254a3">AdobeXMPCore::kDMECMaxValue</a> = kMaxEnumValue
+<br />
+ }</td></tr>
+<tr class="separator:aacd1fd7f96affcf9707f45c272f08a00"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afab54256094fbdd7a9732e4582675341"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341">AdobeXMPCore::eParserErrorCode</a> { <br />
+&#160;&#160;<a class="el" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341aca80ed9623ff6873b2057b4f9a4f82ac">AdobeXMPCore::kPECNone</a> = 0,
+<a class="el" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341aa537d1ba3f2a47c9feb5b183338314a9">AdobeXMPCore::kPECBadXML</a> = 1,
+<a class="el" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341a05b1bde4783b56530499a6015d7704e9">AdobeXMPCore::kPECBadRDF</a> = 2,
+<a class="el" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341a25971d0de364f541b042f0f21df412eb">AdobeXMPCore::kPECBadXMP</a> = 3,
+<br />
+&#160;&#160;<a class="el" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341aed1376b733f98e4cb670d9beba0d6339">AdobeXMPCore::kPECInvalidContextNode</a> = 4,
+<a class="el" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341a7c8e86e45ec62e9748301065944b38ac">AdobeXMPCore::kPECContextNodeIsNonComposite</a> = 5,
+<a class="el" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341a2f23307e996411a65ac6e206f7557264">AdobeXMPCore::kPECContextNodeParentIsNonArray</a> = 6,
+<a class="el" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341ae5fc4151a61d73cf47d5ed861dc4ec02">AdobeXMPCore::kPECMaxValue</a> = kMaxEnumValue
+<br />
+ }<tr class="memdesc:afab54256094fbdd7a9732e4582675341"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates various errors encountered during parsing. <a href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:afab54256094fbdd7a9732e4582675341"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad4e9bcfc5d25760a93189c0ba2962c3e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3e">AdobeXMPCore::eSerializerErrorCode</a> { <a class="el" href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3ea852818fcc062b51ded30ae5cc6943ef8">AdobeXMPCore::kSECNone</a> = 0,
+<a class="el" href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3ea199673856ea7c62993fb5850817b9181">AdobeXMPCore::kSECSizeExceed</a> = 1,
+<a class="el" href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3ea0f3c48b132df0de45927cf636944ccee">AdobeXMPCore::kSECUnRegisteredNameSpace</a> = 2,
+<a class="el" href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3ea2e8b7434f32a1f65875dd7ac184af458">AdobeXMPCore::kSECMaxValue</a> = kMaxEnumValue
+ }<tr class="memdesc:ad4e9bcfc5d25760a93189c0ba2962c3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates various errors encountered during serialization. <a href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3e">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:ad4e9bcfc5d25760a93189c0ba2962c3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/XMPCoreErrorCodes_8h.js b/docs/API/XMPCoreErrorCodes_8h.js
new file mode 100755
index 0000000..56651d8
--- /dev/null
+++ b/docs/API/XMPCoreErrorCodes_8h.js
@@ -0,0 +1,37 @@
+var XMPCoreErrorCodes_8h =
+[
+ [ "eDataModelErrorCode", "XMPCoreErrorCodes_8h.html#aacd1fd7f96affcf9707f45c272f08a00", [
+ [ "kDMECNone", "XMPCoreErrorCodes_8h.html#aacd1fd7f96affcf9707f45c272f08a00a2c80efa41e7821f6226aa59f28dfb579", null ],
+ [ "kDMECNameSpacePrefixMapEntryMissing", "XMPCoreErrorCodes_8h.html#aacd1fd7f96affcf9707f45c272f08a00ac32e4160006f15e60fd7024cf6f7ac97", null ],
+ [ "kDMECDifferentNodeTypePresent", "XMPCoreErrorCodes_8h.html#aacd1fd7f96affcf9707f45c272f08a00ae7e65aa4749b12616a43316687d6a355", null ],
+ [ "kDMECNodeAlreadyAChild", "XMPCoreErrorCodes_8h.html#aacd1fd7f96affcf9707f45c272f08a00a161dfd9dfc01ba8d6c4e17732f6c0acb", null ],
+ [ "kDMECNodeAlreadyExists", "XMPCoreErrorCodes_8h.html#aacd1fd7f96affcf9707f45c272f08a00a92ffb54182a7cf24b2f09851a6e5fa4a", null ],
+ [ "kDMECNoSuchNodeExists", "XMPCoreErrorCodes_8h.html#aacd1fd7f96affcf9707f45c272f08a00ae89776605ae99914cfe1b32cb4674c26", null ],
+ [ "kDMECArrayItemTypeDifferent", "XMPCoreErrorCodes_8h.html#aacd1fd7f96affcf9707f45c272f08a00a3b02c3806196f643a69970dd75b25464", null ],
+ [ "kDMECInvalidPathSegment", "XMPCoreErrorCodes_8h.html#aacd1fd7f96affcf9707f45c272f08a00a7643a6753e328945c9f2580bed3366b1", null ],
+ [ "kDMECBadSchema", "XMPCoreErrorCodes_8h.html#aacd1fd7f96affcf9707f45c272f08a00a3053414fb4821785a9dc653ec9ac3c64", null ],
+ [ "kDMECBadXPath", "XMPCoreErrorCodes_8h.html#aacd1fd7f96affcf9707f45c272f08a00a5969c9392bfb21fc391de418925e8b4f", null ],
+ [ "kDMECBadOptions", "XMPCoreErrorCodes_8h.html#aacd1fd7f96affcf9707f45c272f08a00a24f924ad842132ebd85573d0f93bd7f2", null ],
+ [ "kDMECBadIterPosition", "XMPCoreErrorCodes_8h.html#aacd1fd7f96affcf9707f45c272f08a00a9b4b77cfab51a51107011966c97e40e1", null ],
+ [ "kDMECBadUnicode", "XMPCoreErrorCodes_8h.html#aacd1fd7f96affcf9707f45c272f08a00a8214373306d98cbb58dd480b825d490f", null ],
+ [ "kDMECValidationError", "XMPCoreErrorCodes_8h.html#aacd1fd7f96affcf9707f45c272f08a00af8aa55dc3ffd9c4d4612463ed430b262", null ],
+ [ "kDMECEmptyIterator", "XMPCoreErrorCodes_8h.html#aacd1fd7f96affcf9707f45c272f08a00ac1c31716f2bb30971e3b1d33b9993234", null ],
+ [ "kDMECMaxValue", "XMPCoreErrorCodes_8h.html#aacd1fd7f96affcf9707f45c272f08a00a301e1376a4475452904ef20167a254a3", null ]
+ ] ],
+ [ "eParserErrorCode", "XMPCoreErrorCodes_8h.html#afab54256094fbdd7a9732e4582675341", [
+ [ "kPECNone", "XMPCoreErrorCodes_8h.html#afab54256094fbdd7a9732e4582675341aca80ed9623ff6873b2057b4f9a4f82ac", null ],
+ [ "kPECBadXML", "XMPCoreErrorCodes_8h.html#afab54256094fbdd7a9732e4582675341aa537d1ba3f2a47c9feb5b183338314a9", null ],
+ [ "kPECBadRDF", "XMPCoreErrorCodes_8h.html#afab54256094fbdd7a9732e4582675341a05b1bde4783b56530499a6015d7704e9", null ],
+ [ "kPECBadXMP", "XMPCoreErrorCodes_8h.html#afab54256094fbdd7a9732e4582675341a25971d0de364f541b042f0f21df412eb", null ],
+ [ "kPECInvalidContextNode", "XMPCoreErrorCodes_8h.html#afab54256094fbdd7a9732e4582675341aed1376b733f98e4cb670d9beba0d6339", null ],
+ [ "kPECContextNodeIsNonComposite", "XMPCoreErrorCodes_8h.html#afab54256094fbdd7a9732e4582675341a7c8e86e45ec62e9748301065944b38ac", null ],
+ [ "kPECContextNodeParentIsNonArray", "XMPCoreErrorCodes_8h.html#afab54256094fbdd7a9732e4582675341a2f23307e996411a65ac6e206f7557264", null ],
+ [ "kPECMaxValue", "XMPCoreErrorCodes_8h.html#afab54256094fbdd7a9732e4582675341ae5fc4151a61d73cf47d5ed861dc4ec02", null ]
+ ] ],
+ [ "eSerializerErrorCode", "XMPCoreErrorCodes_8h.html#ad4e9bcfc5d25760a93189c0ba2962c3e", [
+ [ "kSECNone", "XMPCoreErrorCodes_8h.html#ad4e9bcfc5d25760a93189c0ba2962c3ea852818fcc062b51ded30ae5cc6943ef8", null ],
+ [ "kSECSizeExceed", "XMPCoreErrorCodes_8h.html#ad4e9bcfc5d25760a93189c0ba2962c3ea199673856ea7c62993fb5850817b9181", null ],
+ [ "kSECUnRegisteredNameSpace", "XMPCoreErrorCodes_8h.html#ad4e9bcfc5d25760a93189c0ba2962c3ea0f3c48b132df0de45927cf636944ccee", null ],
+ [ "kSECMaxValue", "XMPCoreErrorCodes_8h.html#ad4e9bcfc5d25760a93189c0ba2962c3ea2e8b7434f32a1f65875dd7ac184af458", null ]
+ ] ]
+]; \ No newline at end of file
diff --git a/docs/API/XMPCoreErrorCodes_8h_source.html b/docs/API/XMPCoreErrorCodes_8h_source.html
new file mode 100755
index 0000000..41bf422
--- /dev/null
+++ b/docs/API/XMPCoreErrorCodes_8h_source.html
@@ -0,0 +1,83 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/XMPCoreErrorCodes.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('XMPCoreErrorCodes_8h_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">XMPCoreErrorCodes.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="XMPCoreErrorCodes_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef XMPCoreErrorCodes_h__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define XMPCoreErrorCodes_h__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// ADOBE SYSTEMS INCORPORATED</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// Copyright 2015 Adobe Systems Incorporated</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// All Rights Reserved</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="XMPCoreDefines_8h.html">XMPCore/XMPCoreDefines.h</a>&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="XMPCommonErrorCodes_8h.html">XMPCommon/XMPCommonErrorCodes.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a> {</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00"> 18</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">enum</span> {</div><div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a2c80efa41e7821f6226aa59f28dfb579"> 20</a></span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a2c80efa41e7821f6226aa59f28dfb579">kDMECNone</a> = 0,</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00ac32e4160006f15e60fd7024cf6f7ac97"> 23</a></span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00ac32e4160006f15e60fd7024cf6f7ac97">kDMECNameSpacePrefixMapEntryMissing</a> = 1,</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00ae7e65aa4749b12616a43316687d6a355"> 26</a></span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00ae7e65aa4749b12616a43316687d6a355">kDMECDifferentNodeTypePresent</a> = 2,</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; </div><div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a161dfd9dfc01ba8d6c4e17732f6c0acb"> 29</a></span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a161dfd9dfc01ba8d6c4e17732f6c0acb">kDMECNodeAlreadyAChild</a> = 3,</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a92ffb54182a7cf24b2f09851a6e5fa4a"> 32</a></span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a92ffb54182a7cf24b2f09851a6e5fa4a">kDMECNodeAlreadyExists</a> = 4,</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00ae89776605ae99914cfe1b32cb4674c26"> 35</a></span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00ae89776605ae99914cfe1b32cb4674c26">kDMECNoSuchNodeExists</a> = 5,</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a3b02c3806196f643a69970dd75b25464"> 38</a></span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a3b02c3806196f643a69970dd75b25464">kDMECArrayItemTypeDifferent</a> = 6,</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a7643a6753e328945c9f2580bed3366b1"> 41</a></span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a7643a6753e328945c9f2580bed3366b1">kDMECInvalidPathSegment</a> = 7,</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a3053414fb4821785a9dc653ec9ac3c64"> 44</a></span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a3053414fb4821785a9dc653ec9ac3c64">kDMECBadSchema</a> = 101,</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a5969c9392bfb21fc391de418925e8b4f"> 47</a></span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a5969c9392bfb21fc391de418925e8b4f">kDMECBadXPath</a> = 102,</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a24f924ad842132ebd85573d0f93bd7f2"> 50</a></span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a24f924ad842132ebd85573d0f93bd7f2">kDMECBadOptions</a> = 103,</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a9b4b77cfab51a51107011966c97e40e1"> 53</a></span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a9b4b77cfab51a51107011966c97e40e1">kDMECBadIterPosition</a> = 104,</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a8214373306d98cbb58dd480b825d490f"> 56</a></span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a8214373306d98cbb58dd480b825d490f">kDMECBadUnicode</a> = 105,</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00af8aa55dc3ffd9c4d4612463ed430b262"> 59</a></span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00af8aa55dc3ffd9c4d4612463ed430b262">kDMECValidationError</a> = 106,</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00ac1c31716f2bb30971e3b1d33b9993234"> 62</a></span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00ac1c31716f2bb30971e3b1d33b9993234">kDMECEmptyIterator</a> = 107,</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a301e1376a4475452904ef20167a254a3"> 65</a></span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a301e1376a4475452904ef20167a254a3">kDMECMaxValue</a> = <a class="code" href="namespaceAdobeXMPCommon.html#a8ec7e2a77ea452c3d46bb7dbbc722574">kMaxEnumValue</a></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; } <a class="code" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00">eDataModelErrorCode</a>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341"> 71</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">enum</span> {</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341aca80ed9623ff6873b2057b4f9a4f82ac"> 73</a></span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341aca80ed9623ff6873b2057b4f9a4f82ac">kPECNone</a> = 0,</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; </div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341aa537d1ba3f2a47c9feb5b183338314a9"> 76</a></span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341aa537d1ba3f2a47c9feb5b183338314a9">kPECBadXML</a> = 1,</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341a05b1bde4783b56530499a6015d7704e9"> 79</a></span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341a05b1bde4783b56530499a6015d7704e9">kPECBadRDF</a> = 2,</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341a25971d0de364f541b042f0f21df412eb"> 82</a></span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341a25971d0de364f541b042f0f21df412eb">kPECBadXMP</a> = 3,</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341aed1376b733f98e4cb670d9beba0d6339"> 85</a></span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341aed1376b733f98e4cb670d9beba0d6339">kPECInvalidContextNode</a> = 4,</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341a7c8e86e45ec62e9748301065944b38ac"> 88</a></span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341a7c8e86e45ec62e9748301065944b38ac">kPECContextNodeIsNonComposite</a> = 5,</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341a2f23307e996411a65ac6e206f7557264"> 91</a></span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341a2f23307e996411a65ac6e206f7557264">kPECContextNodeParentIsNonArray</a> = 6,</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341ae5fc4151a61d73cf47d5ed861dc4ec02"> 94</a></span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341ae5fc4151a61d73cf47d5ed861dc4ec02">kPECMaxValue</a> = <a class="code" href="namespaceAdobeXMPCommon.html#a8ec7e2a77ea452c3d46bb7dbbc722574">kMaxEnumValue</a></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; } <a class="code" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341">eParserErrorCode</a>;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3e"> 100</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">enum</span> {</div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3ea852818fcc062b51ded30ae5cc6943ef8"> 102</a></span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3ea852818fcc062b51ded30ae5cc6943ef8">kSECNone</a> = 0,</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3ea199673856ea7c62993fb5850817b9181"> 105</a></span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3ea199673856ea7c62993fb5850817b9181">kSECSizeExceed</a> = 1,</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3ea0f3c48b132df0de45927cf636944ccee"> 108</a></span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3ea0f3c48b132df0de45927cf636944ccee">kSECUnRegisteredNameSpace</a> = 2,</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3ea2e8b7434f32a1f65875dd7ac184af458"> 111</a></span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3ea2e8b7434f32a1f65875dd7ac184af458">kSECMaxValue</a> = <a class="code" href="namespaceAdobeXMPCommon.html#a8ec7e2a77ea452c3d46bb7dbbc722574">kMaxEnumValue</a></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; } <a class="code" href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3e">eSerializerErrorCode</a>;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;}</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="preprocessor">#endif // XMPCoreErrorCodes_h__</span></div><div class="ttc" id="namespaceAdobeXMPCore_html_aacd1fd7f96affcf9707f45c272f08a00ae89776605ae99914cfe1b32cb4674c26"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00ae89776605ae99914cfe1b32cb4674c26">AdobeXMPCore::kDMECNoSuchNodeExists</a></div><div class="ttdoc">Indicates no such node exists. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00035">XMPCoreErrorCodes.h:35</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_afab54256094fbdd7a9732e4582675341a25971d0de364f541b042f0f21df412eb"><div class="ttname"><a href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341a25971d0de364f541b042f0f21df412eb">AdobeXMPCore::kPECBadXMP</a></div><div class="ttdoc">XMP format error. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00082">XMPCoreErrorCodes.h:82</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ad4e9bcfc5d25760a93189c0ba2962c3ea2e8b7434f32a1f65875dd7ac184af458"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3ea2e8b7434f32a1f65875dd7ac184af458">AdobeXMPCore::kSECMaxValue</a></div><div class="ttdoc">Maximum value this enum can hold, should be treated as invalid value. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00111">XMPCoreErrorCodes.h:111</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aacd1fd7f96affcf9707f45c272f08a00ae7e65aa4749b12616a43316687d6a355"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00ae7e65aa4749b12616a43316687d6a355">AdobeXMPCore::kDMECDifferentNodeTypePresent</a></div><div class="ttdoc">Indicates that a different type of node is present than one user is expecting. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00026">XMPCoreErrorCodes.h:26</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aacd1fd7f96affcf9707f45c272f08a00a301e1376a4475452904ef20167a254a3"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a301e1376a4475452904ef20167a254a3">AdobeXMPCore::kDMECMaxValue</a></div><div class="ttdoc">Maximum value this enum can hold, should be treated as invalid value. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00065">XMPCoreErrorCodes.h:65</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aacd1fd7f96affcf9707f45c272f08a00a3b02c3806196f643a69970dd75b25464"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a3b02c3806196f643a69970dd75b25464">AdobeXMPCore::kDMECArrayItemTypeDifferent</a></div><div class="ttdoc">Indicates current array element type is not same as that of other child items. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00038">XMPCoreErrorCodes.h:38</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aacd1fd7f96affcf9707f45c272f08a00a8214373306d98cbb58dd480b825d490f"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a8214373306d98cbb58dd480b825d490f">AdobeXMPCore::kDMECBadUnicode</a></div><div class="ttdoc">Indicates Unicode error. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00056">XMPCoreErrorCodes.h:56</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_afab54256094fbdd7a9732e4582675341a05b1bde4783b56530499a6015d7704e9"><div class="ttname"><a href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341a05b1bde4783b56530499a6015d7704e9">AdobeXMPCore::kPECBadRDF</a></div><div class="ttdoc">RDF format error. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00079">XMPCoreErrorCodes.h:79</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_afab54256094fbdd7a9732e4582675341aca80ed9623ff6873b2057b4f9a4f82ac"><div class="ttname"><a href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341aca80ed9623ff6873b2057b4f9a4f82ac">AdobeXMPCore::kPECNone</a></div><div class="ttdoc">Indicates no error. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00073">XMPCoreErrorCodes.h:73</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aacd1fd7f96affcf9707f45c272f08a00a7643a6753e328945c9f2580bed3366b1"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a7643a6753e328945c9f2580bed3366b1">AdobeXMPCore::kDMECInvalidPathSegment</a></div><div class="ttdoc">Indicates invalid path segment inside a path. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00041">XMPCoreErrorCodes.h:41</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ad4e9bcfc5d25760a93189c0ba2962c3ea852818fcc062b51ded30ae5cc6943ef8"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3ea852818fcc062b51ded30ae5cc6943ef8">AdobeXMPCore::kSECNone</a></div><div class="ttdoc">Indicates no error. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00102">XMPCoreErrorCodes.h:102</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_afab54256094fbdd7a9732e4582675341a2f23307e996411a65ac6e206f7557264"><div class="ttname"><a href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341a2f23307e996411a65ac6e206f7557264">AdobeXMPCore::kPECContextNodeParentIsNonArray</a></div><div class="ttdoc">Parent of Context Node is not an array node. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00091">XMPCoreErrorCodes.h:91</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ad4e9bcfc5d25760a93189c0ba2962c3ea0f3c48b132df0de45927cf636944ccee"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3ea0f3c48b132df0de45927cf636944ccee">AdobeXMPCore::kSECUnRegisteredNameSpace</a></div><div class="ttdoc">Indicates un registered namespace encountered during serialization. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00108">XMPCoreErrorCodes.h:108</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_afab54256094fbdd7a9732e4582675341aed1376b733f98e4cb670d9beba0d6339"><div class="ttname"><a href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341aed1376b733f98e4cb670d9beba0d6339">AdobeXMPCore::kPECInvalidContextNode</a></div><div class="ttdoc">Context Node is invalid. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00085">XMPCoreErrorCodes.h:85</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aacd1fd7f96affcf9707f45c272f08a00a2c80efa41e7821f6226aa59f28dfb579"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a2c80efa41e7821f6226aa59f28dfb579">AdobeXMPCore::kDMECNone</a></div><div class="ttdoc">Indicates no error. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00020">XMPCoreErrorCodes.h:20</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ad4e9bcfc5d25760a93189c0ba2962c3e"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3e">AdobeXMPCore::eSerializerErrorCode</a></div><div class="ttdeci">eSerializerErrorCode</div><div class="ttdoc">Indicates various errors encountered during serialization. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00100">XMPCoreErrorCodes.h:100</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_afab54256094fbdd7a9732e4582675341ae5fc4151a61d73cf47d5ed861dc4ec02"><div class="ttname"><a href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341ae5fc4151a61d73cf47d5ed861dc4ec02">AdobeXMPCore::kPECMaxValue</a></div><div class="ttdoc">Maximum value this enum can hold, should be treated as invalid value. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00094">XMPCoreErrorCodes.h:94</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aacd1fd7f96affcf9707f45c272f08a00a3053414fb4821785a9dc653ec9ac3c64"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a3053414fb4821785a9dc653ec9ac3c64">AdobeXMPCore::kDMECBadSchema</a></div><div class="ttdoc">Indicates Bad schema parameter. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00044">XMPCoreErrorCodes.h:44</a></div></div>
+<div class="ttc" id="XMPCoreDefines_8h_html"><div class="ttname"><a href="XMPCoreDefines_8h.html">XMPCoreDefines.h</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html"><div class="ttname"><a href="namespaceAdobeXMPCore.html">AdobeXMPCore</a></div><div class="ttdef"><b>Definition:</b> <a href="IArrayNode_8h_source.html#l00016">IArrayNode.h:16</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ad4e9bcfc5d25760a93189c0ba2962c3ea199673856ea7c62993fb5850817b9181"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3ea199673856ea7c62993fb5850817b9181">AdobeXMPCore::kSECSizeExceed</a></div><div class="ttdoc">Indicates serialization failed to achieve size requirement. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00105">XMPCoreErrorCodes.h:105</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aacd1fd7f96affcf9707f45c272f08a00a24f924ad842132ebd85573d0f93bd7f2"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a24f924ad842132ebd85573d0f93bd7f2">AdobeXMPCore::kDMECBadOptions</a></div><div class="ttdoc">Indicates Bad options parameter. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00050">XMPCoreErrorCodes.h:50</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aacd1fd7f96affcf9707f45c272f08a00a92ffb54182a7cf24b2f09851a6e5fa4a"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a92ffb54182a7cf24b2f09851a6e5fa4a">AdobeXMPCore::kDMECNodeAlreadyExists</a></div><div class="ttdoc">Indicates a node with the same qualified name or index already exists. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00032">XMPCoreErrorCodes.h:32</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_afab54256094fbdd7a9732e4582675341"><div class="ttname"><a href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341">AdobeXMPCore::eParserErrorCode</a></div><div class="ttdeci">eParserErrorCode</div><div class="ttdoc">Indicates various errors encountered during parsing. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00071">XMPCoreErrorCodes.h:71</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aacd1fd7f96affcf9707f45c272f08a00af8aa55dc3ffd9c4d4612463ed430b262"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00af8aa55dc3ffd9c4d4612463ed430b262">AdobeXMPCore::kDMECValidationError</a></div><div class="ttdoc">Indicates XMP format error. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00059">XMPCoreErrorCodes.h:59</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8ec7e2a77ea452c3d46bb7dbbc722574"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8ec7e2a77ea452c3d46bb7dbbc722574">AdobeXMPCommon::kMaxEnumValue</a></div><div class="ttdeci">static const uint32 kMaxEnumValue(Max_XMP_Uns32)</div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aacd1fd7f96affcf9707f45c272f08a00ac1c31716f2bb30971e3b1d33b9993234"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00ac1c31716f2bb30971e3b1d33b9993234">AdobeXMPCore::kDMECEmptyIterator</a></div><div class="ttdoc">Indicates Empty iterator. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00062">XMPCoreErrorCodes.h:62</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_afab54256094fbdd7a9732e4582675341a7c8e86e45ec62e9748301065944b38ac"><div class="ttname"><a href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341a7c8e86e45ec62e9748301065944b38ac">AdobeXMPCore::kPECContextNodeIsNonComposite</a></div><div class="ttdoc">Context Node is not a composite node. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00088">XMPCoreErrorCodes.h:88</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aacd1fd7f96affcf9707f45c272f08a00a5969c9392bfb21fc391de418925e8b4f"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a5969c9392bfb21fc391de418925e8b4f">AdobeXMPCore::kDMECBadXPath</a></div><div class="ttdoc">Indicates Bad XPath parameter. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00047">XMPCoreErrorCodes.h:47</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aacd1fd7f96affcf9707f45c272f08a00a161dfd9dfc01ba8d6c4e17732f6c0acb"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a161dfd9dfc01ba8d6c4e17732f6c0acb">AdobeXMPCore::kDMECNodeAlreadyAChild</a></div><div class="ttdoc">Indicates that node is already a child of another parent. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00029">XMPCoreErrorCodes.h:29</a></div></div>
+<div class="ttc" id="XMPCommonErrorCodes_8h_html"><div class="ttname"><a href="XMPCommonErrorCodes_8h.html">XMPCommonErrorCodes.h</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aacd1fd7f96affcf9707f45c272f08a00"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00">AdobeXMPCore::eDataModelErrorCode</a></div><div class="ttdeci">eDataModelErrorCode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00018">XMPCoreErrorCodes.h:18</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aacd1fd7f96affcf9707f45c272f08a00a9b4b77cfab51a51107011966c97e40e1"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a9b4b77cfab51a51107011966c97e40e1">AdobeXMPCore::kDMECBadIterPosition</a></div><div class="ttdoc">Indicates Bad iteration position. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00053">XMPCoreErrorCodes.h:53</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aacd1fd7f96affcf9707f45c272f08a00ac32e4160006f15e60fd7024cf6f7ac97"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00ac32e4160006f15e60fd7024cf6f7ac97">AdobeXMPCore::kDMECNameSpacePrefixMapEntryMissing</a></div><div class="ttdoc">Indicates that IXMPNameSpacePrefixMap has an entry missing. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00023">XMPCoreErrorCodes.h:23</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_afab54256094fbdd7a9732e4582675341aa537d1ba3f2a47c9feb5b183338314a9"><div class="ttname"><a href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341aa537d1ba3f2a47c9feb5b183338314a9">AdobeXMPCore::kPECBadXML</a></div><div class="ttdoc">Indicates XML parsing error. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00076">XMPCoreErrorCodes.h:76</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/XMPCoreFwdDeclarations_8h.html b/docs/API/XMPCoreFwdDeclarations_8h.html
new file mode 100755
index 0000000..f96e258
--- /dev/null
+++ b/docs/API/XMPCoreFwdDeclarations_8h.html
@@ -0,0 +1,429 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/XMPCoreFwdDeclarations.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('XMPCoreFwdDeclarations_8h.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#namespaces">Namespaces</a> &#124;
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">XMPCoreFwdDeclarations.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="XMPCoreDefines_8h_source.html">XMPCore/XMPCoreDefines.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommon/XMPCommonFwdDeclarations.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="XMPCoreLatestInterfaceVersions_8h_source.html">XMPCore/XMPCoreLatestInterfaceVersions.h</a>&quot;</code><br />
+</div>
+<p><a href="XMPCoreFwdDeclarations_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceAdobeXMPCore"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:namespaceAdobeXMPCore__Int"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html">AdobeXMPCore_Int</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:a459a371e2e25b93998a16921e3536bc7"><td class="memItemLeft" align="right" valign="top">typedef INameSpacePrefixMap_v1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a459a371e2e25b93998a16921e3536bc7">AdobeXMPCore::INameSpacePrefixMap_base</a></td></tr>
+<tr class="separator:a459a371e2e25b93998a16921e3536bc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad7423726463e791584bdeeb0a699c2d6"><td class="memItemLeft" align="right" valign="top">typedef INameSpacePrefixMap_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ad7423726463e791584bdeeb0a699c2d6">AdobeXMPCore::pINameSpacePrefixMap_base</a></td></tr>
+<tr class="separator:ad7423726463e791584bdeeb0a699c2d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad877a19389a4ba0dd5ef226470fd7f5b"><td class="memItemLeft" align="right" valign="top">typedef const INameSpacePrefixMap_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ad877a19389a4ba0dd5ef226470fd7f5b">AdobeXMPCore::pcINameSpacePrefixMap_base</a></td></tr>
+<tr class="separator:ad877a19389a4ba0dd5ef226470fd7f5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7c13887bb991ed5707ebae28d26543b1"><td class="memItemLeft" align="right" valign="top">typedef INameSpacePrefixMap *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a7c13887bb991ed5707ebae28d26543b1">AdobeXMPCore::pINameSpacePrefixMap</a></td></tr>
+<tr class="separator:a7c13887bb991ed5707ebae28d26543b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac973b0e26fb1fdf9146be95ab9f12b1e"><td class="memItemLeft" align="right" valign="top">typedef const INameSpacePrefixMap *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ac973b0e26fb1fdf9146be95ab9f12b1e">AdobeXMPCore::pcINameSpacePrefixMap</a></td></tr>
+<tr class="separator:ac973b0e26fb1fdf9146be95ab9f12b1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab17b1221c559007c5fbc73cf2c555c6c"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; INameSpacePrefixMap &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ab17b1221c559007c5fbc73cf2c555c6c">AdobeXMPCore::spINameSpacePrefixMap</a></td></tr>
+<tr class="separator:ab17b1221c559007c5fbc73cf2c555c6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a22f9e572045a61aa3cfc629a0d877d72"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const INameSpacePrefixMap &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a22f9e572045a61aa3cfc629a0d877d72">AdobeXMPCore::spcINameSpacePrefixMap</a></td></tr>
+<tr class="separator:a22f9e572045a61aa3cfc629a0d877d72"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7b83ccf46420d268a2cbce051f61a413"><td class="memItemLeft" align="right" valign="top">typedef IPathSegment_v1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a7b83ccf46420d268a2cbce051f61a413">AdobeXMPCore::IPathSegment_base</a></td></tr>
+<tr class="separator:a7b83ccf46420d268a2cbce051f61a413"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a11f058662f2f67819f52a97154076b"><td class="memItemLeft" align="right" valign="top">typedef IPathSegment_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a5a11f058662f2f67819f52a97154076b">AdobeXMPCore::pIPathSegment_base</a></td></tr>
+<tr class="separator:a5a11f058662f2f67819f52a97154076b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa1d5ef746b351d46f0d9be2d53538d7b"><td class="memItemLeft" align="right" valign="top">typedef const IPathSegment_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#aa1d5ef746b351d46f0d9be2d53538d7b">AdobeXMPCore::pcIPathSegment_base</a></td></tr>
+<tr class="separator:aa1d5ef746b351d46f0d9be2d53538d7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afcc8116b5f4020c02bc96bd91a4d5235"><td class="memItemLeft" align="right" valign="top">typedef IPathSegment *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#afcc8116b5f4020c02bc96bd91a4d5235">AdobeXMPCore::pIPathSegment</a></td></tr>
+<tr class="separator:afcc8116b5f4020c02bc96bd91a4d5235"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6ae7c996eea34342b41719bcc4bf766a"><td class="memItemLeft" align="right" valign="top">typedef const IPathSegment *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a6ae7c996eea34342b41719bcc4bf766a">AdobeXMPCore::pcIPathSegment</a></td></tr>
+<tr class="separator:a6ae7c996eea34342b41719bcc4bf766a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae339cdf18168ecc8197e651df8f43854"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; IPathSegment &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ae339cdf18168ecc8197e651df8f43854">AdobeXMPCore::spIPathSegment</a></td></tr>
+<tr class="separator:ae339cdf18168ecc8197e651df8f43854"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a98ce40154ef1c1d92f2077c8211f2a9c"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const IPathSegment &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a98ce40154ef1c1d92f2077c8211f2a9c">AdobeXMPCore::spcIPathSegment</a></td></tr>
+<tr class="separator:a98ce40154ef1c1d92f2077c8211f2a9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab063c96638c29753c9799d3184319b85"><td class="memItemLeft" align="right" valign="top">typedef IPath_v1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ab063c96638c29753c9799d3184319b85">AdobeXMPCore::IPath_base</a></td></tr>
+<tr class="separator:ab063c96638c29753c9799d3184319b85"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8a912843a6b3779781ed27cde7e330d6"><td class="memItemLeft" align="right" valign="top">typedef IPath_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a8a912843a6b3779781ed27cde7e330d6">AdobeXMPCore::pIPath_base</a></td></tr>
+<tr class="separator:a8a912843a6b3779781ed27cde7e330d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a822c7331a85db496adc520310ac6c144"><td class="memItemLeft" align="right" valign="top">typedef const IPath_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a822c7331a85db496adc520310ac6c144">AdobeXMPCore::pcIPath_base</a></td></tr>
+<tr class="separator:a822c7331a85db496adc520310ac6c144"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abce7d351f3258b3edfb1c96e7d2d4945"><td class="memItemLeft" align="right" valign="top">typedef IPath *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#abce7d351f3258b3edfb1c96e7d2d4945">AdobeXMPCore::pIPath</a></td></tr>
+<tr class="separator:abce7d351f3258b3edfb1c96e7d2d4945"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a277f8ceb2e7074edb4ce6c3bc906a71c"><td class="memItemLeft" align="right" valign="top">typedef const IPath *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a277f8ceb2e7074edb4ce6c3bc906a71c">AdobeXMPCore::pcIPath</a></td></tr>
+<tr class="separator:a277f8ceb2e7074edb4ce6c3bc906a71c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa54f5ed241da9437ad01c1047a199f56"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; IPath &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#aa54f5ed241da9437ad01c1047a199f56">AdobeXMPCore::spIPath</a></td></tr>
+<tr class="separator:aa54f5ed241da9437ad01c1047a199f56"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa01e44df0f17d2a1d959710ec856261c"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const IPath &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">AdobeXMPCore::spcIPath</a></td></tr>
+<tr class="separator:aa01e44df0f17d2a1d959710ec856261c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a625f7fd9cabaa743f95f3cbd876285d3"><td class="memItemLeft" align="right" valign="top">typedef INode_v1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a625f7fd9cabaa743f95f3cbd876285d3">AdobeXMPCore::INode_base</a></td></tr>
+<tr class="separator:a625f7fd9cabaa743f95f3cbd876285d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adb4509f09f05618cebbd4f09a5fbb05a"><td class="memItemLeft" align="right" valign="top">typedef INode_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#adb4509f09f05618cebbd4f09a5fbb05a">AdobeXMPCore::pINode_base</a></td></tr>
+<tr class="separator:adb4509f09f05618cebbd4f09a5fbb05a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4cddd2e1fe643106d1c026481157bdc8"><td class="memItemLeft" align="right" valign="top">typedef const INode_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a4cddd2e1fe643106d1c026481157bdc8">AdobeXMPCore::pcINode_base</a></td></tr>
+<tr class="separator:a4cddd2e1fe643106d1c026481157bdc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abc833d7b10347a44a303b973337cf536"><td class="memItemLeft" align="right" valign="top">typedef INode *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#abc833d7b10347a44a303b973337cf536">AdobeXMPCore::pINode</a></td></tr>
+<tr class="separator:abc833d7b10347a44a303b973337cf536"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab2c77e55a81c018160035cea22f49a1a"><td class="memItemLeft" align="right" valign="top">typedef const INode *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ab2c77e55a81c018160035cea22f49a1a">AdobeXMPCore::pcINode</a></td></tr>
+<tr class="separator:ab2c77e55a81c018160035cea22f49a1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeec2c711a611cbc3c77ef1a0bb026e33"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; INode &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">AdobeXMPCore::spINode</a></td></tr>
+<tr class="separator:aeec2c711a611cbc3c77ef1a0bb026e33"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a597eaeb0ed86794ea01f74a5be0f88ed"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const INode &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">AdobeXMPCore::spcINode</a></td></tr>
+<tr class="separator:a597eaeb0ed86794ea01f74a5be0f88ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6bdb87029a97b11b3b8ce4d8eb84e7b7"><td class="memItemLeft" align="right" valign="top">typedef ISimpleNode_v1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a6bdb87029a97b11b3b8ce4d8eb84e7b7">AdobeXMPCore::ISimpleNode_base</a></td></tr>
+<tr class="separator:a6bdb87029a97b11b3b8ce4d8eb84e7b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a14569c99ffc10ff405f51220851fbe36"><td class="memItemLeft" align="right" valign="top">typedef ISimpleNode_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a14569c99ffc10ff405f51220851fbe36">AdobeXMPCore::pISimpleNode_base</a></td></tr>
+<tr class="separator:a14569c99ffc10ff405f51220851fbe36"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abaf2af5208e93c52361d13dff16c959d"><td class="memItemLeft" align="right" valign="top">typedef const ISimpleNode_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#abaf2af5208e93c52361d13dff16c959d">AdobeXMPCore::pcISimpleNode_base</a></td></tr>
+<tr class="separator:abaf2af5208e93c52361d13dff16c959d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad9403696e40df26b5d17e0d17d6799f0"><td class="memItemLeft" align="right" valign="top">typedef ISimpleNode *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ad9403696e40df26b5d17e0d17d6799f0">AdobeXMPCore::pISimpleNode</a></td></tr>
+<tr class="separator:ad9403696e40df26b5d17e0d17d6799f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acff9cacaf46a6c6923117852e63579b6"><td class="memItemLeft" align="right" valign="top">typedef const ISimpleNode *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#acff9cacaf46a6c6923117852e63579b6">AdobeXMPCore::pcISimpleNode</a></td></tr>
+<tr class="separator:acff9cacaf46a6c6923117852e63579b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab20ecb8d094c1dd81cb278370b746343"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; ISimpleNode &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">AdobeXMPCore::spISimpleNode</a></td></tr>
+<tr class="separator:ab20ecb8d094c1dd81cb278370b746343"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4cb671d44948c7505c33431ec12f6c1f"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const ISimpleNode &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">AdobeXMPCore::spcISimpleNode</a></td></tr>
+<tr class="separator:a4cb671d44948c7505c33431ec12f6c1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aab9120a7fc533281e84ead6df110e0a5"><td class="memItemLeft" align="right" valign="top">typedef ICompositeNode_v1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#aab9120a7fc533281e84ead6df110e0a5">AdobeXMPCore::ICompositeNode_base</a></td></tr>
+<tr class="separator:aab9120a7fc533281e84ead6df110e0a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a294ebc2cc2287c14558850dcd8c88f1e"><td class="memItemLeft" align="right" valign="top">typedef ICompositeNode_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a294ebc2cc2287c14558850dcd8c88f1e">AdobeXMPCore::pICompositeNode_base</a></td></tr>
+<tr class="separator:a294ebc2cc2287c14558850dcd8c88f1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2bb4ccadea260bcce39d23e45f5d592f"><td class="memItemLeft" align="right" valign="top">typedef const ICompositeNode_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a2bb4ccadea260bcce39d23e45f5d592f">AdobeXMPCore::pcICompositeNode_base</a></td></tr>
+<tr class="separator:a2bb4ccadea260bcce39d23e45f5d592f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aef05040bb5475b170f4816511f0655d0"><td class="memItemLeft" align="right" valign="top">typedef ICompositeNode *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#aef05040bb5475b170f4816511f0655d0">AdobeXMPCore::pICompositeNode</a></td></tr>
+<tr class="separator:aef05040bb5475b170f4816511f0655d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a920b0717c8a08d3c68ece64a8f815a"><td class="memItemLeft" align="right" valign="top">typedef const ICompositeNode *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a5a920b0717c8a08d3c68ece64a8f815a">AdobeXMPCore::pcICompositeNode</a></td></tr>
+<tr class="separator:a5a920b0717c8a08d3c68ece64a8f815a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acfcbb43bd0f659f554877c4f9dd7d459"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; ICompositeNode &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#acfcbb43bd0f659f554877c4f9dd7d459">AdobeXMPCore::spICompositeNode</a></td></tr>
+<tr class="separator:acfcbb43bd0f659f554877c4f9dd7d459"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7c98739d62fca879db910ac0fca82c3c"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const ICompositeNode &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a7c98739d62fca879db910ac0fca82c3c">AdobeXMPCore::spcICompositeNode</a></td></tr>
+<tr class="separator:a7c98739d62fca879db910ac0fca82c3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8ed683c00df5d7ccdb8428cfc072ca90"><td class="memItemLeft" align="right" valign="top">typedef IStructureNode_v1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a8ed683c00df5d7ccdb8428cfc072ca90">AdobeXMPCore::IStructureNode_base</a></td></tr>
+<tr class="separator:a8ed683c00df5d7ccdb8428cfc072ca90"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af51bfb0cbccc377fb76fbc7187eb3456"><td class="memItemLeft" align="right" valign="top">typedef IStructureNode_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#af51bfb0cbccc377fb76fbc7187eb3456">AdobeXMPCore::pIStructureNode_base</a></td></tr>
+<tr class="separator:af51bfb0cbccc377fb76fbc7187eb3456"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae429e590ecce9128e7bb3c8ea91c6b16"><td class="memItemLeft" align="right" valign="top">typedef const IStructureNode_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ae429e590ecce9128e7bb3c8ea91c6b16">AdobeXMPCore::pcIStructureNode_base</a></td></tr>
+<tr class="separator:ae429e590ecce9128e7bb3c8ea91c6b16"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac7a54801a0cd4ae9441548ccfb1fd608"><td class="memItemLeft" align="right" valign="top">typedef IStructureNode *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ac7a54801a0cd4ae9441548ccfb1fd608">AdobeXMPCore::pIStructureNode</a></td></tr>
+<tr class="separator:ac7a54801a0cd4ae9441548ccfb1fd608"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abae00582b217eaa165ccf0006afa23bd"><td class="memItemLeft" align="right" valign="top">typedef const IStructureNode *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#abae00582b217eaa165ccf0006afa23bd">AdobeXMPCore::pcIStructureNode</a></td></tr>
+<tr class="separator:abae00582b217eaa165ccf0006afa23bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a957c57fcbb47c704fc5c31cf36dcbde7"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; IStructureNode &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">AdobeXMPCore::spIStructureNode</a></td></tr>
+<tr class="separator:a957c57fcbb47c704fc5c31cf36dcbde7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab5807ab783087243a3676a19ad6f9b90"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const IStructureNode &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">AdobeXMPCore::spcIStructureNode</a></td></tr>
+<tr class="separator:ab5807ab783087243a3676a19ad6f9b90"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a91f2a2df5097022662328e102a56a4ea"><td class="memItemLeft" align="right" valign="top">typedef IArrayNode_v1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a91f2a2df5097022662328e102a56a4ea">AdobeXMPCore::IArrayNode_base</a></td></tr>
+<tr class="separator:a91f2a2df5097022662328e102a56a4ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a47468e9aeeb0e9d2541bccfbbaf916f7"><td class="memItemLeft" align="right" valign="top">typedef IArrayNode_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a47468e9aeeb0e9d2541bccfbbaf916f7">AdobeXMPCore::pIArrayNode_base</a></td></tr>
+<tr class="separator:a47468e9aeeb0e9d2541bccfbbaf916f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a61344da48c839ebe8d613175563935bf"><td class="memItemLeft" align="right" valign="top">typedef const IArrayNode_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a61344da48c839ebe8d613175563935bf">AdobeXMPCore::pcIArrayNode_base</a></td></tr>
+<tr class="separator:a61344da48c839ebe8d613175563935bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0f163418e9969110fdf767b0092a08cd"><td class="memItemLeft" align="right" valign="top">typedef IArrayNode *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a0f163418e9969110fdf767b0092a08cd">AdobeXMPCore::pIArrayNode</a></td></tr>
+<tr class="separator:a0f163418e9969110fdf767b0092a08cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3c61d7ec18d24b058624ff83657ad886"><td class="memItemLeft" align="right" valign="top">typedef const IArrayNode *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a3c61d7ec18d24b058624ff83657ad886">AdobeXMPCore::pcIArrayNode</a></td></tr>
+<tr class="separator:a3c61d7ec18d24b058624ff83657ad886"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a24e8e82d63d879d77408ce5c7e30c609"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; IArrayNode &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">AdobeXMPCore::spIArrayNode</a></td></tr>
+<tr class="separator:a24e8e82d63d879d77408ce5c7e30c609"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4ea338a9eed923abf6aba47a27926a0f"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const IArrayNode &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">AdobeXMPCore::spcIArrayNode</a></td></tr>
+<tr class="separator:a4ea338a9eed923abf6aba47a27926a0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad0578d38c94516edb5414524392845b7"><td class="memItemLeft" align="right" valign="top">typedef INodeIterator_v1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ad0578d38c94516edb5414524392845b7">AdobeXMPCore::INodeIterator_base</a></td></tr>
+<tr class="separator:ad0578d38c94516edb5414524392845b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6e8a84e7b4b342b98bc1af7297c30250"><td class="memItemLeft" align="right" valign="top">typedef INodeIterator_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a6e8a84e7b4b342b98bc1af7297c30250">AdobeXMPCore::pINodeIterator_base</a></td></tr>
+<tr class="separator:a6e8a84e7b4b342b98bc1af7297c30250"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a830414d5b50ee73daa2d85efb174921a"><td class="memItemLeft" align="right" valign="top">typedef const INodeIterator_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a830414d5b50ee73daa2d85efb174921a">AdobeXMPCore::pcINodeIterator_base</a></td></tr>
+<tr class="separator:a830414d5b50ee73daa2d85efb174921a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac162eebfff7088f633bc0dd401a18862"><td class="memItemLeft" align="right" valign="top">typedef INodeIterator *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ac162eebfff7088f633bc0dd401a18862">AdobeXMPCore::pINodeIterator</a></td></tr>
+<tr class="separator:ac162eebfff7088f633bc0dd401a18862"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a634afe8da11f5cea93b0f07e8270da5f"><td class="memItemLeft" align="right" valign="top">typedef const INodeIterator *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a634afe8da11f5cea93b0f07e8270da5f">AdobeXMPCore::pcINodeIterator</a></td></tr>
+<tr class="separator:a634afe8da11f5cea93b0f07e8270da5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5386a735d9eb66d5859e4657dfeebb7c"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; INodeIterator &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a5386a735d9eb66d5859e4657dfeebb7c">AdobeXMPCore::spINodeIterator</a></td></tr>
+<tr class="separator:a5386a735d9eb66d5859e4657dfeebb7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab423c366f29043e79694f805bceddb56"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const INodeIterator &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ab423c366f29043e79694f805bceddb56">AdobeXMPCore::spcINodeIterator</a></td></tr>
+<tr class="separator:ab423c366f29043e79694f805bceddb56"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3600be9aa8da5d9fcfd522c76755866b"><td class="memItemLeft" align="right" valign="top">typedef IMetadata_v1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a3600be9aa8da5d9fcfd522c76755866b">AdobeXMPCore::IMetadata_base</a></td></tr>
+<tr class="separator:a3600be9aa8da5d9fcfd522c76755866b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa6b155d7624638c88d2b64b551ef1b0c"><td class="memItemLeft" align="right" valign="top">typedef IMetadata_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#aa6b155d7624638c88d2b64b551ef1b0c">AdobeXMPCore::pIMetadata_base</a></td></tr>
+<tr class="separator:aa6b155d7624638c88d2b64b551ef1b0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2987cd583f3105668b529ad5fe385481"><td class="memItemLeft" align="right" valign="top">typedef const IMetadata_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a2987cd583f3105668b529ad5fe385481">AdobeXMPCore::pcIMetadata_base</a></td></tr>
+<tr class="separator:a2987cd583f3105668b529ad5fe385481"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0c1658ecfb260ac950498f17edd5ebd0"><td class="memItemLeft" align="right" valign="top">typedef IMetadata *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a0c1658ecfb260ac950498f17edd5ebd0">AdobeXMPCore::pIMetadata</a></td></tr>
+<tr class="separator:a0c1658ecfb260ac950498f17edd5ebd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa542fbf0ea812dbe340cd7837d68ef9f"><td class="memItemLeft" align="right" valign="top">typedef const IMetadata *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#aa542fbf0ea812dbe340cd7837d68ef9f">AdobeXMPCore::pcIMetadata</a></td></tr>
+<tr class="separator:aa542fbf0ea812dbe340cd7837d68ef9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7f1de39fd79aeac4402eba73cb1ffe82"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; IMetadata &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a7f1de39fd79aeac4402eba73cb1ffe82">AdobeXMPCore::spIMetadata</a></td></tr>
+<tr class="separator:a7f1de39fd79aeac4402eba73cb1ffe82"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1e81ce748e90e850d0a48b0b5943fce2"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const IMetadata &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a1e81ce748e90e850d0a48b0b5943fce2">AdobeXMPCore::spcIMetadata</a></td></tr>
+<tr class="separator:a1e81ce748e90e850d0a48b0b5943fce2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acf6b51a9bb0059c712e6e423ef94fd0d"><td class="memItemLeft" align="right" valign="top">typedef IClientDOMParser_v1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#acf6b51a9bb0059c712e6e423ef94fd0d">AdobeXMPCore::IClientDOMParser_base</a></td></tr>
+<tr class="separator:acf6b51a9bb0059c712e6e423ef94fd0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9dd27d79138a3d399e48343b626cd3a9"><td class="memItemLeft" align="right" valign="top">typedef IClientDOMParser_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a9dd27d79138a3d399e48343b626cd3a9">AdobeXMPCore::pIClientDOMParser_base</a></td></tr>
+<tr class="separator:a9dd27d79138a3d399e48343b626cd3a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a886c1974205be855cea961bfacc60604"><td class="memItemLeft" align="right" valign="top">typedef const IClientDOMParser_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a886c1974205be855cea961bfacc60604">AdobeXMPCore::pcIClientDOMParser_base</a></td></tr>
+<tr class="separator:a886c1974205be855cea961bfacc60604"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab5d69f05635d466dcd976f8b2b8e8617"><td class="memItemLeft" align="right" valign="top">typedef IClientDOMParser *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ab5d69f05635d466dcd976f8b2b8e8617">AdobeXMPCore::pIClientDOMParser</a></td></tr>
+<tr class="separator:ab5d69f05635d466dcd976f8b2b8e8617"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:affaedf89b30a42f4aea5bb10619d1801"><td class="memItemLeft" align="right" valign="top">typedef const IClientDOMParser *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#affaedf89b30a42f4aea5bb10619d1801">AdobeXMPCore::pcIClientDOMParser</a></td></tr>
+<tr class="separator:affaedf89b30a42f4aea5bb10619d1801"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac50d8fc1c60d397b440d075184e01212"><td class="memItemLeft" align="right" valign="top">typedef IClientDOMSerializer_v1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ac50d8fc1c60d397b440d075184e01212">AdobeXMPCore::IClientDOMSerializer_base</a></td></tr>
+<tr class="separator:ac50d8fc1c60d397b440d075184e01212"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2dfed76bf986f6fad861aa2323b28caf"><td class="memItemLeft" align="right" valign="top">typedef IClientDOMSerializer_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a2dfed76bf986f6fad861aa2323b28caf">AdobeXMPCore::pIClientDOMSerializer_base</a></td></tr>
+<tr class="separator:a2dfed76bf986f6fad861aa2323b28caf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a871b93cc85748a5d49fe9774d3305203"><td class="memItemLeft" align="right" valign="top">typedef const IClientDOMSerializer_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a871b93cc85748a5d49fe9774d3305203">AdobeXMPCore::pcIClientDOMSerializer_base</a></td></tr>
+<tr class="separator:a871b93cc85748a5d49fe9774d3305203"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a901745dcadcfc4387450dd28aaa2d490"><td class="memItemLeft" align="right" valign="top">typedef IClientDOMSerializer *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a901745dcadcfc4387450dd28aaa2d490">AdobeXMPCore::pIClientDOMSerializer</a></td></tr>
+<tr class="separator:a901745dcadcfc4387450dd28aaa2d490"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad638e9de1a595aa976f69d3773d46d16"><td class="memItemLeft" align="right" valign="top">typedef const IClientDOMSerializer *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ad638e9de1a595aa976f69d3773d46d16">AdobeXMPCore::pcIClientDOMSerializer</a></td></tr>
+<tr class="separator:ad638e9de1a595aa976f69d3773d46d16"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afcc78a159d893be198c97d1af098a9e3"><td class="memItemLeft" align="right" valign="top">typedef IDOMParser_v1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#afcc78a159d893be198c97d1af098a9e3">AdobeXMPCore::IDOMParser_base</a></td></tr>
+<tr class="separator:afcc78a159d893be198c97d1af098a9e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad8fa3ac657a8506d5d25544060c4af15"><td class="memItemLeft" align="right" valign="top">typedef IDOMParser_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ad8fa3ac657a8506d5d25544060c4af15">AdobeXMPCore::pIDOMParser_base</a></td></tr>
+<tr class="separator:ad8fa3ac657a8506d5d25544060c4af15"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a761f1236009e028ec7c95d4e3fa59b71"><td class="memItemLeft" align="right" valign="top">typedef const IDOMParser_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a761f1236009e028ec7c95d4e3fa59b71">AdobeXMPCore::pcIDOMParser_base</a></td></tr>
+<tr class="separator:a761f1236009e028ec7c95d4e3fa59b71"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8b003da6674d32c5c628f1d0e1fa45aa"><td class="memItemLeft" align="right" valign="top">typedef IDOMParser *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a8b003da6674d32c5c628f1d0e1fa45aa">AdobeXMPCore::pIDOMParser</a></td></tr>
+<tr class="separator:a8b003da6674d32c5c628f1d0e1fa45aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6b5fc097880814213414c58da877fea5"><td class="memItemLeft" align="right" valign="top">typedef const IDOMParser *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a6b5fc097880814213414c58da877fea5">AdobeXMPCore::pcIDOMParser</a></td></tr>
+<tr class="separator:a6b5fc097880814213414c58da877fea5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a737ec082bb4e7f817b45e073337c0893"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; IDOMParser &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a737ec082bb4e7f817b45e073337c0893">AdobeXMPCore::spIDOMParser</a></td></tr>
+<tr class="separator:a737ec082bb4e7f817b45e073337c0893"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a587ba854add16d5201c974a3a0f7050c"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const IDOMParser &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a587ba854add16d5201c974a3a0f7050c">AdobeXMPCore::spcIDOMParser</a></td></tr>
+<tr class="separator:a587ba854add16d5201c974a3a0f7050c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2ab7b53419863c354957c09ce4bbb44c"><td class="memItemLeft" align="right" valign="top">typedef IDOMSerializer_v1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a2ab7b53419863c354957c09ce4bbb44c">AdobeXMPCore::IDOMSerializer_base</a></td></tr>
+<tr class="separator:a2ab7b53419863c354957c09ce4bbb44c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa83dd7633a221cb189681dff2bbd78a3"><td class="memItemLeft" align="right" valign="top">typedef IDOMSerializer_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#aa83dd7633a221cb189681dff2bbd78a3">AdobeXMPCore::pIDOMSerializer_base</a></td></tr>
+<tr class="separator:aa83dd7633a221cb189681dff2bbd78a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9259d01efe1d26b66d5f60cf79f81296"><td class="memItemLeft" align="right" valign="top">typedef const IDOMSerializer_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a9259d01efe1d26b66d5f60cf79f81296">AdobeXMPCore::pcIDOMSerializer_base</a></td></tr>
+<tr class="separator:a9259d01efe1d26b66d5f60cf79f81296"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6b414731e356594947b08382866c9fcf"><td class="memItemLeft" align="right" valign="top">typedef IDOMSerializer *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a6b414731e356594947b08382866c9fcf">AdobeXMPCore::pIDOMSerializer</a></td></tr>
+<tr class="separator:a6b414731e356594947b08382866c9fcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1de6f60a0aefc1d42bb656731ff33a9b"><td class="memItemLeft" align="right" valign="top">typedef const IDOMSerializer *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a1de6f60a0aefc1d42bb656731ff33a9b">AdobeXMPCore::pcIDOMSerializer</a></td></tr>
+<tr class="separator:a1de6f60a0aefc1d42bb656731ff33a9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af3525e619e07f58d7eb8247b56ddad21"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; IDOMSerializer &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#af3525e619e07f58d7eb8247b56ddad21">AdobeXMPCore::spIDOMSerializer</a></td></tr>
+<tr class="separator:af3525e619e07f58d7eb8247b56ddad21"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aee2397438ef33989fb100e5923821eb9"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const IDOMSerializer &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#aee2397438ef33989fb100e5923821eb9">AdobeXMPCore::spcIDOMSerializer</a></td></tr>
+<tr class="separator:aee2397438ef33989fb100e5923821eb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeab5d78356ee44cbab72a48443d7a026"><td class="memItemLeft" align="right" valign="top">typedef IDOMImplementationRegistry_v1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#aeab5d78356ee44cbab72a48443d7a026">AdobeXMPCore::IDOMImplementationRegistry_base</a></td></tr>
+<tr class="separator:aeab5d78356ee44cbab72a48443d7a026"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae600077e4e41eec5ebb90fa7510b8b48"><td class="memItemLeft" align="right" valign="top">typedef IDOMImplementationRegistry_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ae600077e4e41eec5ebb90fa7510b8b48">AdobeXMPCore::pIDOMImplementationRegistry_base</a></td></tr>
+<tr class="separator:ae600077e4e41eec5ebb90fa7510b8b48"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a71d91db5d9f5b30fa16b5790948f11cc"><td class="memItemLeft" align="right" valign="top">typedef const IDOMImplementationRegistry_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a71d91db5d9f5b30fa16b5790948f11cc">AdobeXMPCore::pcIDOMImplementationRegistry_base</a></td></tr>
+<tr class="separator:a71d91db5d9f5b30fa16b5790948f11cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae332986668c86f3e5c6bbd57fd5f4cad"><td class="memItemLeft" align="right" valign="top">typedef IDOMImplementationRegistry *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ae332986668c86f3e5c6bbd57fd5f4cad">AdobeXMPCore::pIDOMImplementationRegistry</a></td></tr>
+<tr class="separator:ae332986668c86f3e5c6bbd57fd5f4cad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3971bab010eb9c01783af14c58ccfe54"><td class="memItemLeft" align="right" valign="top">typedef const IDOMImplementationRegistry *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a3971bab010eb9c01783af14c58ccfe54">AdobeXMPCore::pcIDOMImplementationRegistry</a></td></tr>
+<tr class="separator:a3971bab010eb9c01783af14c58ccfe54"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a197acc21ecf883449824a1e87a99586a"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; IDOMImplementationRegistry &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a197acc21ecf883449824a1e87a99586a">AdobeXMPCore::spIDOMImplementationRegistry</a></td></tr>
+<tr class="separator:a197acc21ecf883449824a1e87a99586a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6efe4728a027ee77597fe1a05a6bc30c"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const IDOMImplementationRegistry &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a6efe4728a027ee77597fe1a05a6bc30c">AdobeXMPCore::spcIDOMImplementationRegistry</a></td></tr>
+<tr class="separator:a6efe4728a027ee77597fe1a05a6bc30c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a77c425a2d9deb50bc0ae4d71232dd98a"><td class="memItemLeft" align="right" valign="top">typedef ICoreObjectFactory_v1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a77c425a2d9deb50bc0ae4d71232dd98a">AdobeXMPCore::ICoreObjectFactory_base</a></td></tr>
+<tr class="separator:a77c425a2d9deb50bc0ae4d71232dd98a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac062cb6e980601a1eedf6085cca9b850"><td class="memItemLeft" align="right" valign="top">typedef ICoreObjectFactory_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ac062cb6e980601a1eedf6085cca9b850">AdobeXMPCore::pICoreObjectFactory_base</a></td></tr>
+<tr class="separator:ac062cb6e980601a1eedf6085cca9b850"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2ccf603c61b8576fb4a0de760e27f6ba"><td class="memItemLeft" align="right" valign="top">typedef const ICoreObjectFactory_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a2ccf603c61b8576fb4a0de760e27f6ba">AdobeXMPCore::pcICoreObjectFactory_base</a></td></tr>
+<tr class="separator:a2ccf603c61b8576fb4a0de760e27f6ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad925e271d292d0b0af1a24342391219d"><td class="memItemLeft" align="right" valign="top">typedef ICoreObjectFactory *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ad925e271d292d0b0af1a24342391219d">AdobeXMPCore::pICoreObjectFactory</a></td></tr>
+<tr class="separator:ad925e271d292d0b0af1a24342391219d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a55e6a583f61b00819b7034f9dd2243f9"><td class="memItemLeft" align="right" valign="top">typedef const ICoreObjectFactory *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a55e6a583f61b00819b7034f9dd2243f9">AdobeXMPCore::pcICoreObjectFactory</a></td></tr>
+<tr class="separator:a55e6a583f61b00819b7034f9dd2243f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a51c59c2b14cae80da8b1fa5dfa2f4732"><td class="memItemLeft" align="right" valign="top">typedef ICoreConfigurationManager_v1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a51c59c2b14cae80da8b1fa5dfa2f4732">AdobeXMPCore::ICoreConfigurationManager_base</a></td></tr>
+<tr class="separator:a51c59c2b14cae80da8b1fa5dfa2f4732"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a55c34a6f458c74682e542edd2a258686"><td class="memItemLeft" align="right" valign="top">typedef ICoreConfigurationManager_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a55c34a6f458c74682e542edd2a258686">AdobeXMPCore::pICoreConfigurationManager_base</a></td></tr>
+<tr class="separator:a55c34a6f458c74682e542edd2a258686"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a748a32416e42b563251d682d49535fb8"><td class="memItemLeft" align="right" valign="top">typedef const ICoreConfigurationManager_v1 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a748a32416e42b563251d682d49535fb8">AdobeXMPCore::pcICoreConfigurationManager_base</a></td></tr>
+<tr class="separator:a748a32416e42b563251d682d49535fb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0476368bde6f3c6e43e3659ae092f6e1"><td class="memItemLeft" align="right" valign="top">typedef ICoreConfigurationManager *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a0476368bde6f3c6e43e3659ae092f6e1">AdobeXMPCore::pICoreConfigurationManager</a></td></tr>
+<tr class="separator:a0476368bde6f3c6e43e3659ae092f6e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a691bc74f235854166554f597f777bb5f"><td class="memItemLeft" align="right" valign="top">typedef const ICoreConfigurationManager *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a691bc74f235854166554f597f777bb5f">AdobeXMPCore::pcICoreConfigurationManager</a></td></tr>
+<tr class="separator:a691bc74f235854166554f597f777bb5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a123c6e847d41233c9e4ba6c64a650c7f"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; ICoreConfigurationManager &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a123c6e847d41233c9e4ba6c64a650c7f">AdobeXMPCore::spICoreConfigurationManager</a></td></tr>
+<tr class="separator:a123c6e847d41233c9e4ba6c64a650c7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a885f02b2d6de4b5403445eb74e5e2ce6"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const ICoreConfigurationManager &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a885f02b2d6de4b5403445eb74e5e2ce6">AdobeXMPCore::spcICoreConfigurationManager</a></td></tr>
+<tr class="separator:a885f02b2d6de4b5403445eb74e5e2ce6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0665746b848a075cc4aaf72f553cea95"><td class="memItemLeft" align="right" valign="top">typedef INameSpacePrefixMap_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a0665746b848a075cc4aaf72f553cea95">AdobeXMPCore_Int::pINameSpacePrefixMap_I</a></td></tr>
+<tr class="separator:a0665746b848a075cc4aaf72f553cea95"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab7edb8a8ca91f8397965cf85502c2043"><td class="memItemLeft" align="right" valign="top">typedef const INameSpacePrefixMap_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#ab7edb8a8ca91f8397965cf85502c2043">AdobeXMPCore_Int::pcINameSpacePrefixMap_I</a></td></tr>
+<tr class="separator:ab7edb8a8ca91f8397965cf85502c2043"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7b86a8447002d8c63c837cffda64dd2a"><td class="memItemLeft" align="right" valign="top">typedef IPathSegment_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a7b86a8447002d8c63c837cffda64dd2a">AdobeXMPCore_Int::pIPathSegment_I</a></td></tr>
+<tr class="separator:a7b86a8447002d8c63c837cffda64dd2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8c2801e50baa3f7979aa4a31225bc25d"><td class="memItemLeft" align="right" valign="top">typedef const IPathSegment_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a8c2801e50baa3f7979aa4a31225bc25d">AdobeXMPCore_Int::pcIPathSegment_I</a></td></tr>
+<tr class="separator:a8c2801e50baa3f7979aa4a31225bc25d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac72d014801c316df78e38687d0c11aa7"><td class="memItemLeft" align="right" valign="top">typedef IPath_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#ac72d014801c316df78e38687d0c11aa7">AdobeXMPCore_Int::pIPath_I</a></td></tr>
+<tr class="separator:ac72d014801c316df78e38687d0c11aa7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa917512a62ab131edf95fab4e6ba7067"><td class="memItemLeft" align="right" valign="top">typedef const IPath_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#aa917512a62ab131edf95fab4e6ba7067">AdobeXMPCore_Int::pcIPath_I</a></td></tr>
+<tr class="separator:aa917512a62ab131edf95fab4e6ba7067"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7ab22fbbd637098e7e0db48036864228"><td class="memItemLeft" align="right" valign="top">typedef INode_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a7ab22fbbd637098e7e0db48036864228">AdobeXMPCore_Int::pINode_I</a></td></tr>
+<tr class="separator:a7ab22fbbd637098e7e0db48036864228"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a09decb910c24c7929d609f1e29ca16b1"><td class="memItemLeft" align="right" valign="top">typedef const INode_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a09decb910c24c7929d609f1e29ca16b1">AdobeXMPCore_Int::pcINode_I</a></td></tr>
+<tr class="separator:a09decb910c24c7929d609f1e29ca16b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9b914b7e3bafee8e830a982810ed2191"><td class="memItemLeft" align="right" valign="top">typedef ISimpleNode_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a9b914b7e3bafee8e830a982810ed2191">AdobeXMPCore_Int::pISimpleNode_I</a></td></tr>
+<tr class="separator:a9b914b7e3bafee8e830a982810ed2191"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0de0f06ece9bff0c77df3e519af9f506"><td class="memItemLeft" align="right" valign="top">typedef const ISimpleNode_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a0de0f06ece9bff0c77df3e519af9f506">AdobeXMPCore_Int::pcISimpleNode_I</a></td></tr>
+<tr class="separator:a0de0f06ece9bff0c77df3e519af9f506"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a88df781b3af9dc7dfe7cb967b6e9b440"><td class="memItemLeft" align="right" valign="top">typedef ICompositeNode_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a88df781b3af9dc7dfe7cb967b6e9b440">AdobeXMPCore_Int::pICompositeNode_I</a></td></tr>
+<tr class="separator:a88df781b3af9dc7dfe7cb967b6e9b440"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa1ac753eb7735e19c3f1a2a21d02a047"><td class="memItemLeft" align="right" valign="top">typedef const ICompositeNode_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#aa1ac753eb7735e19c3f1a2a21d02a047">AdobeXMPCore_Int::pcICompositeNode_I</a></td></tr>
+<tr class="separator:aa1ac753eb7735e19c3f1a2a21d02a047"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4d4375869e320dc1596a9d62a4030b05"><td class="memItemLeft" align="right" valign="top">typedef IStructureNode_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a4d4375869e320dc1596a9d62a4030b05">AdobeXMPCore_Int::pIStructureNode_I</a></td></tr>
+<tr class="separator:a4d4375869e320dc1596a9d62a4030b05"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a85d314eae1eef235e7c698c5c84bdda1"><td class="memItemLeft" align="right" valign="top">typedef const IStructureNode_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a85d314eae1eef235e7c698c5c84bdda1">AdobeXMPCore_Int::pcIStructureNode_I</a></td></tr>
+<tr class="separator:a85d314eae1eef235e7c698c5c84bdda1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af2a081973401c42b5772dc9faec58a58"><td class="memItemLeft" align="right" valign="top">typedef IArrayNode_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#af2a081973401c42b5772dc9faec58a58">AdobeXMPCore_Int::pIArrayNode_I</a></td></tr>
+<tr class="separator:af2a081973401c42b5772dc9faec58a58"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad705150e811fbc6ff116e850c444fc2d"><td class="memItemLeft" align="right" valign="top">typedef const IArrayNode_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#ad705150e811fbc6ff116e850c444fc2d">AdobeXMPCore_Int::pcIArrayNode_I</a></td></tr>
+<tr class="separator:ad705150e811fbc6ff116e850c444fc2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a71dcb1468c552abdd9fb1666cadc6600"><td class="memItemLeft" align="right" valign="top">typedef INodeIterator_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a71dcb1468c552abdd9fb1666cadc6600">AdobeXMPCore_Int::pINodeIterator_I</a></td></tr>
+<tr class="separator:a71dcb1468c552abdd9fb1666cadc6600"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9d8ff928f0b3e120916451e57b1b05bb"><td class="memItemLeft" align="right" valign="top">typedef const INodeIterator_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a9d8ff928f0b3e120916451e57b1b05bb">AdobeXMPCore_Int::pcINodeIterator_I</a></td></tr>
+<tr class="separator:a9d8ff928f0b3e120916451e57b1b05bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a70359e8aaa387b24879f1510ac1c4725"><td class="memItemLeft" align="right" valign="top">typedef IMetadata_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a70359e8aaa387b24879f1510ac1c4725">AdobeXMPCore_Int::pIMetadata_I</a></td></tr>
+<tr class="separator:a70359e8aaa387b24879f1510ac1c4725"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abf85881909a28303736ad48039524d73"><td class="memItemLeft" align="right" valign="top">typedef const IMetadata_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#abf85881909a28303736ad48039524d73">AdobeXMPCore_Int::pcIMetadata_I</a></td></tr>
+<tr class="separator:abf85881909a28303736ad48039524d73"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5c9e417017018f36cdbfdbcaa8cd0585"><td class="memItemLeft" align="right" valign="top">typedef IClientDOMParser_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a5c9e417017018f36cdbfdbcaa8cd0585">AdobeXMPCore_Int::pIClientDOMParser_I</a></td></tr>
+<tr class="separator:a5c9e417017018f36cdbfdbcaa8cd0585"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3c5ae6e52bf994fc05ed79ca9c58aae0"><td class="memItemLeft" align="right" valign="top">typedef const IClientDOMParser_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a3c5ae6e52bf994fc05ed79ca9c58aae0">AdobeXMPCore_Int::pcIClientDOMParser_I</a></td></tr>
+<tr class="separator:a3c5ae6e52bf994fc05ed79ca9c58aae0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9807c050f5244e2cf017e5f247d22473"><td class="memItemLeft" align="right" valign="top">typedef IClientDOMSerializer_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a9807c050f5244e2cf017e5f247d22473">AdobeXMPCore_Int::pIClientDOMSerializer_I</a></td></tr>
+<tr class="separator:a9807c050f5244e2cf017e5f247d22473"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a786137be71601c8a876f6798ba798eea"><td class="memItemLeft" align="right" valign="top">typedef const IClientDOMSerializer_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a786137be71601c8a876f6798ba798eea">AdobeXMPCore_Int::pcIClientDOMSerializer_I</a></td></tr>
+<tr class="separator:a786137be71601c8a876f6798ba798eea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4dad9e02be4a3efae9ea99e5f03ae11e"><td class="memItemLeft" align="right" valign="top">typedef IDOMParser_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a4dad9e02be4a3efae9ea99e5f03ae11e">AdobeXMPCore_Int::pIDOMParser_I</a></td></tr>
+<tr class="separator:a4dad9e02be4a3efae9ea99e5f03ae11e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3a6d0893476eb4ce3713ca88e5c80b4e"><td class="memItemLeft" align="right" valign="top">typedef const IDOMParser_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a3a6d0893476eb4ce3713ca88e5c80b4e">AdobeXMPCore_Int::pcIDOMParser_I</a></td></tr>
+<tr class="separator:a3a6d0893476eb4ce3713ca88e5c80b4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1bbf04f53ef3da6e5e12f535679bb177"><td class="memItemLeft" align="right" valign="top">typedef IDOMSerializer_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a1bbf04f53ef3da6e5e12f535679bb177">AdobeXMPCore_Int::pIDOMSerializer_I</a></td></tr>
+<tr class="separator:a1bbf04f53ef3da6e5e12f535679bb177"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a771229361d508f6fc0d427803543d38b"><td class="memItemLeft" align="right" valign="top">typedef const IDOMSerializer_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a771229361d508f6fc0d427803543d38b">AdobeXMPCore_Int::pcIDOMSerializer_I</a></td></tr>
+<tr class="separator:a771229361d508f6fc0d427803543d38b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad26aadc3f0926468c34c02cc1a0f1dbd"><td class="memItemLeft" align="right" valign="top">typedef IDOMImplementationRegistry_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#ad26aadc3f0926468c34c02cc1a0f1dbd">AdobeXMPCore_Int::pIDOMImplementationRegistry_I</a></td></tr>
+<tr class="separator:ad26aadc3f0926468c34c02cc1a0f1dbd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae7c82f1920d2cbe1956fc5c43d0b10e2"><td class="memItemLeft" align="right" valign="top">typedef const IDOMImplementationRegistry_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#ae7c82f1920d2cbe1956fc5c43d0b10e2">AdobeXMPCore_Int::pcIDOMImplementationRegistry_I</a></td></tr>
+<tr class="separator:ae7c82f1920d2cbe1956fc5c43d0b10e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad445bf512b4b3179b131b0a7dec31d86"><td class="memItemLeft" align="right" valign="top">typedef ICoreObjectFactory_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#ad445bf512b4b3179b131b0a7dec31d86">AdobeXMPCore_Int::pICoreObjectFactory_I</a></td></tr>
+<tr class="separator:ad445bf512b4b3179b131b0a7dec31d86"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae32d6c403c99fe665bbeff4483a7b144"><td class="memItemLeft" align="right" valign="top">typedef const ICoreObjectFactory_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#ae32d6c403c99fe665bbeff4483a7b144">AdobeXMPCore_Int::pcICoreObjectFactory_I</a></td></tr>
+<tr class="separator:ae32d6c403c99fe665bbeff4483a7b144"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a643dfc0500b39ea6d5a81c187fe0e9bc"><td class="memItemLeft" align="right" valign="top">typedef ICoreConfigurationManager_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a643dfc0500b39ea6d5a81c187fe0e9bc">AdobeXMPCore_Int::pICoreConfigurationManager_I</a></td></tr>
+<tr class="separator:a643dfc0500b39ea6d5a81c187fe0e9bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae995733eb74953fd4e8cafe373236938"><td class="memItemLeft" align="right" valign="top">typedef const ICoreConfigurationManager_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#ae995733eb74953fd4e8cafe373236938">AdobeXMPCore_Int::pcICoreConfigurationManager_I</a></td></tr>
+<tr class="separator:ae995733eb74953fd4e8cafe373236938"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ab25d27977dd99a041e01a4b8558f08fe"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ab25d27977dd99a041e01a4b8558f08fe">AdobeXMPCore::BASE_CLASS</a> (INameSpacePrefixMap, <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a79e1c8ec2c46a2cbee3ba9cfd0d78ad4">INAMESPACEPREFIXMAP_VERSION</a>) INameSpacePrefixMap</td></tr>
+<tr class="separator:ab25d27977dd99a041e01a4b8558f08fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aab6f1fa4adf9d3b8c40d4e8f601ddfdf"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#aab6f1fa4adf9d3b8c40d4e8f601ddfdf">AdobeXMPCore::kINameSpacePrefixMapID</a> (0x634e5350724d6170)</td></tr>
+<tr class="separator:aab6f1fa4adf9d3b8c40d4e8f601ddfdf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad4e3ab53add36a4678405f4b1ac5826b"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ad4e3ab53add36a4678405f4b1ac5826b">AdobeXMPCore::BASE_CLASS</a> (IPathSegment, <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a42cb9bdb3894ac77ff614349e5c371e5">IPATHSEGMENT_VERSION</a>) IPathSegment</td></tr>
+<tr class="separator:ad4e3ab53add36a4678405f4b1ac5826b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a20562f7f885eacd89465270be790c31f"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a20562f7f885eacd89465270be790c31f">AdobeXMPCore::kIPathSegmentID</a> (0x6350617468536567)</td></tr>
+<tr class="separator:a20562f7f885eacd89465270be790c31f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aae83a987190b96eba7659457c737709c"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#aae83a987190b96eba7659457c737709c">AdobeXMPCore::BASE_CLASS</a> (IPath, <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#adc9fb16e479a79e35a9dc58e166fcbad">IPATH_VERSION</a>) IPath</td></tr>
+<tr class="separator:aae83a987190b96eba7659457c737709c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a169bb4bbf2a32d4201625eca17bde615"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a169bb4bbf2a32d4201625eca17bde615">AdobeXMPCore::kIPathID</a> (0x6350617468202020)</td></tr>
+<tr class="separator:a169bb4bbf2a32d4201625eca17bde615"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa8b539533f4842694b7d5c5ac05e4961"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#aa8b539533f4842694b7d5c5ac05e4961">AdobeXMPCore::BASE_CLASS</a> (INode, <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#aff2b1eabe2ac90a68ba3690930494a17">INODE_VERSION</a>) INode</td></tr>
+<tr class="separator:aa8b539533f4842694b7d5c5ac05e4961"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae76eb0e35e0e35e5b476b6fecc6e3603"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ae76eb0e35e0e35e5b476b6fecc6e3603">AdobeXMPCore::kINodeID</a> (0x634e6f6465202020)</td></tr>
+<tr class="separator:ae76eb0e35e0e35e5b476b6fecc6e3603"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa13d8ba12f5ac8ec0b73323472a9c977"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#aa13d8ba12f5ac8ec0b73323472a9c977">AdobeXMPCore::BASE_CLASS</a> (ISimpleNode, <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a799da65cf5811707628bb2681a4545ec">ISIMPLENODE_VERSION</a>) ISimpleNode</td></tr>
+<tr class="separator:aa13d8ba12f5ac8ec0b73323472a9c977"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a258ec247968bc8e101a087b2f914c95b"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a258ec247968bc8e101a087b2f914c95b">AdobeXMPCore::kISimpleNodeID</a> (0x63536d6c4e6f6465)</td></tr>
+<tr class="separator:a258ec247968bc8e101a087b2f914c95b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac94856cb1ce1f56b29673bc3eda30a2b"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ac94856cb1ce1f56b29673bc3eda30a2b">AdobeXMPCore::BASE_CLASS</a> (ICompositeNode, <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#aefe5b8d014bd0f2ca4933a16572b51df">ICOMPOSITENODE_VERSION</a>) ICompositeNode</td></tr>
+<tr class="separator:ac94856cb1ce1f56b29673bc3eda30a2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a663e9a570224c4361f5ab883e32cf460"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a663e9a570224c4361f5ab883e32cf460">AdobeXMPCore::kICompositeNodeID</a> (0x63436d704e6f6465)</td></tr>
+<tr class="separator:a663e9a570224c4361f5ab883e32cf460"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac94822da2d3427c627df15c4af5824d3"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ac94822da2d3427c627df15c4af5824d3">AdobeXMPCore::BASE_CLASS</a> (IStructureNode, <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a28325920d39a80ba79dd3774ce056f45">ISTRUCTURENODE_VERSION</a>) IStructureNode</td></tr>
+<tr class="separator:ac94822da2d3427c627df15c4af5824d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a099de3a79749ee161daf59313861702e"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a099de3a79749ee161daf59313861702e">AdobeXMPCore::kIStructureNodeID</a> (0x635374724e6f6465)</td></tr>
+<tr class="separator:a099de3a79749ee161daf59313861702e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aafbff1ea559ac40a588ee191a94b25af"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#aafbff1ea559ac40a588ee191a94b25af">AdobeXMPCore::BASE_CLASS</a> (IArrayNode, <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a1f8464a97acb8671e6cc2a466955d45d">IARRAYNODE_VERSION</a>) IArrayNode</td></tr>
+<tr class="separator:aafbff1ea559ac40a588ee191a94b25af"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a865ec7a2af5304ec42d443da038ae5b7"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a865ec7a2af5304ec42d443da038ae5b7">AdobeXMPCore::kIArrayNodeID</a> (0x634172724e6f6465)</td></tr>
+<tr class="separator:a865ec7a2af5304ec42d443da038ae5b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a66384130267cdd648e0f677128635123"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a66384130267cdd648e0f677128635123">AdobeXMPCore::BASE_CLASS</a> (INodeIterator, <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#afe7756c974951e8e78be1cfb96aacc8b">INODEITERATOR_VERSION</a>) INodeIterator</td></tr>
+<tr class="separator:a66384130267cdd648e0f677128635123"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afb1db1e3afd3cb409aab3c32435b506b"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#afb1db1e3afd3cb409aab3c32435b506b">AdobeXMPCore::kINodeIteratorID</a> (0x634e6f6465497420)</td></tr>
+<tr class="separator:afb1db1e3afd3cb409aab3c32435b506b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1da997b938e393546c72aca8811b5300"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a1da997b938e393546c72aca8811b5300">AdobeXMPCore::BASE_CLASS</a> (IMetadata, <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#af7d51c3ccf825fc82fa4a2a6cca26bc8">IMETADATA_VERSION</a>) IMetadata</td></tr>
+<tr class="separator:a1da997b938e393546c72aca8811b5300"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae266f1d0a72a69dbbad9443f1b4140e6"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ae266f1d0a72a69dbbad9443f1b4140e6">AdobeXMPCore::kIMetadataID</a> (0x634d657461646174)</td></tr>
+<tr class="separator:ae266f1d0a72a69dbbad9443f1b4140e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a257c4389ad7bddfa28bfdf34d92bd28b"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a257c4389ad7bddfa28bfdf34d92bd28b">AdobeXMPCore::BASE_CLASS</a> (IClientDOMParser, <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a64636b4e59a6212968ad30494675603e">ICLIENTDOMPARSER_VERSION</a>) IClientDOMParser</td></tr>
+<tr class="separator:a257c4389ad7bddfa28bfdf34d92bd28b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a207afe21d3d4fcb8cb1170ba646003f4"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a207afe21d3d4fcb8cb1170ba646003f4">AdobeXMPCore::BASE_CLASS</a> (IClientDOMSerializer, <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#aa928953eda71cda88699483e1fca4526">ICLIENTDOMSERIALIZER_VERSION</a>) IClientDOMSerializer</td></tr>
+<tr class="separator:a207afe21d3d4fcb8cb1170ba646003f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a812c55394dd0d590ae2ca9a4e0178671"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a812c55394dd0d590ae2ca9a4e0178671">AdobeXMPCore::BASE_CLASS</a> (IDOMParser, <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a813f82b55a0bb68c1553e8b38592e705">IDOMPARSER_VERSION</a>) IDOMParser</td></tr>
+<tr class="separator:a812c55394dd0d590ae2ca9a4e0178671"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa11deda1f160ba3bfba36558afcaa0ef"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#aa11deda1f160ba3bfba36558afcaa0ef">AdobeXMPCore::kIDOMParserID</a> (0x63444f4d50727372)</td></tr>
+<tr class="separator:aa11deda1f160ba3bfba36558afcaa0ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3dba425488e67755405e5e9b1476babc"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a3dba425488e67755405e5e9b1476babc">AdobeXMPCore::BASE_CLASS</a> (IDOMSerializer, <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a52d6e44f27f19214b38959683d6cc829">IDOMSERIALIZER_VERSION</a>) IDOMSerializer</td></tr>
+<tr class="separator:a3dba425488e67755405e5e9b1476babc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a16e22df4b5facaffff284ab0104404a9"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a16e22df4b5facaffff284ab0104404a9">AdobeXMPCore::kIDOMSerializerID</a> (0x63444f4d53726c7a)</td></tr>
+<tr class="separator:a16e22df4b5facaffff284ab0104404a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa62775052accb00b04f530857b5fc18a"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#aa62775052accb00b04f530857b5fc18a">AdobeXMPCore::BASE_CLASS</a> (IDOMImplementationRegistry, <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#aa34dc59f9267eceb6d51235cd778292e">IDOMIMPLEMENTATIONREGISTRY_VERSION</a>) IDOMImplementationRegistry</td></tr>
+<tr class="separator:aa62775052accb00b04f530857b5fc18a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6d787e316880e838d2a03f641a520a5b"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a6d787e316880e838d2a03f641a520a5b">AdobeXMPCore::kIDOMImplementationRegistryID</a> (0x63444f4d52677374)</td></tr>
+<tr class="separator:a6d787e316880e838d2a03f641a520a5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1d1b0939f67456659a36e11ce594690d"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a1d1b0939f67456659a36e11ce594690d">AdobeXMPCore::BASE_CLASS</a> (ICoreObjectFactory, <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a3d28ba37018741b3794789e5edc6e27e">ICOREOBJECTFACTORY_VERSION</a>) ICoreObjectFactory</td></tr>
+<tr class="separator:a1d1b0939f67456659a36e11ce594690d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a30bb255921760813b83dfb94449051dd"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a30bb255921760813b83dfb94449051dd">AdobeXMPCore::kICoreObjectFactoryID</a> (0x634f626a46616374)</td></tr>
+<tr class="separator:a30bb255921760813b83dfb94449051dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2fea5ada7406b2712ed3bfeecf84c2e2"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a2fea5ada7406b2712ed3bfeecf84c2e2">AdobeXMPCore::BASE_CLASS</a> (ICoreConfigurationManager, <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#adf7818c7264e7a80b1b3c5a5b283c47c">ICORECONFIGURATIONMANAGER_VERSION</a>) ICoreConfigurationManager</td></tr>
+<tr class="separator:a2fea5ada7406b2712ed3bfeecf84c2e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1fb39caa1c8eeed351b0fca6eca60577"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a1fb39caa1c8eeed351b0fca6eca60577">AdobeXMPCore::kICoreConfigurationManagerID</a> (0x63436f6e664d6772)</td></tr>
+<tr class="separator:a1fb39caa1c8eeed351b0fca6eca60577"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/XMPCoreFwdDeclarations_8h.js b/docs/API/XMPCoreFwdDeclarations_8h.js
new file mode 100755
index 0000000..75b7347
--- /dev/null
+++ b/docs/API/XMPCoreFwdDeclarations_8h.js
@@ -0,0 +1,182 @@
+var XMPCoreFwdDeclarations_8h =
+[
+ [ "IArrayNode_base", "XMPCoreFwdDeclarations_8h.html#a91f2a2df5097022662328e102a56a4ea", null ],
+ [ "IClientDOMParser_base", "XMPCoreFwdDeclarations_8h.html#acf6b51a9bb0059c712e6e423ef94fd0d", null ],
+ [ "IClientDOMSerializer_base", "XMPCoreFwdDeclarations_8h.html#ac50d8fc1c60d397b440d075184e01212", null ],
+ [ "ICompositeNode_base", "XMPCoreFwdDeclarations_8h.html#aab9120a7fc533281e84ead6df110e0a5", null ],
+ [ "ICoreConfigurationManager_base", "XMPCoreFwdDeclarations_8h.html#a51c59c2b14cae80da8b1fa5dfa2f4732", null ],
+ [ "ICoreObjectFactory_base", "XMPCoreFwdDeclarations_8h.html#a77c425a2d9deb50bc0ae4d71232dd98a", null ],
+ [ "IDOMImplementationRegistry_base", "XMPCoreFwdDeclarations_8h.html#aeab5d78356ee44cbab72a48443d7a026", null ],
+ [ "IDOMParser_base", "XMPCoreFwdDeclarations_8h.html#afcc78a159d893be198c97d1af098a9e3", null ],
+ [ "IDOMSerializer_base", "XMPCoreFwdDeclarations_8h.html#a2ab7b53419863c354957c09ce4bbb44c", null ],
+ [ "IMetadata_base", "XMPCoreFwdDeclarations_8h.html#a3600be9aa8da5d9fcfd522c76755866b", null ],
+ [ "INameSpacePrefixMap_base", "XMPCoreFwdDeclarations_8h.html#a459a371e2e25b93998a16921e3536bc7", null ],
+ [ "INode_base", "XMPCoreFwdDeclarations_8h.html#a625f7fd9cabaa743f95f3cbd876285d3", null ],
+ [ "INodeIterator_base", "XMPCoreFwdDeclarations_8h.html#ad0578d38c94516edb5414524392845b7", null ],
+ [ "IPath_base", "XMPCoreFwdDeclarations_8h.html#ab063c96638c29753c9799d3184319b85", null ],
+ [ "IPathSegment_base", "XMPCoreFwdDeclarations_8h.html#a7b83ccf46420d268a2cbce051f61a413", null ],
+ [ "ISimpleNode_base", "XMPCoreFwdDeclarations_8h.html#a6bdb87029a97b11b3b8ce4d8eb84e7b7", null ],
+ [ "IStructureNode_base", "XMPCoreFwdDeclarations_8h.html#a8ed683c00df5d7ccdb8428cfc072ca90", null ],
+ [ "pcIArrayNode", "XMPCoreFwdDeclarations_8h.html#a3c61d7ec18d24b058624ff83657ad886", null ],
+ [ "pcIArrayNode_base", "XMPCoreFwdDeclarations_8h.html#a61344da48c839ebe8d613175563935bf", null ],
+ [ "pcIArrayNode_I", "XMPCoreFwdDeclarations_8h.html#ad705150e811fbc6ff116e850c444fc2d", null ],
+ [ "pcIClientDOMParser", "XMPCoreFwdDeclarations_8h.html#affaedf89b30a42f4aea5bb10619d1801", null ],
+ [ "pcIClientDOMParser_base", "XMPCoreFwdDeclarations_8h.html#a886c1974205be855cea961bfacc60604", null ],
+ [ "pcIClientDOMParser_I", "XMPCoreFwdDeclarations_8h.html#a3c5ae6e52bf994fc05ed79ca9c58aae0", null ],
+ [ "pcIClientDOMSerializer", "XMPCoreFwdDeclarations_8h.html#ad638e9de1a595aa976f69d3773d46d16", null ],
+ [ "pcIClientDOMSerializer_base", "XMPCoreFwdDeclarations_8h.html#a871b93cc85748a5d49fe9774d3305203", null ],
+ [ "pcIClientDOMSerializer_I", "XMPCoreFwdDeclarations_8h.html#a786137be71601c8a876f6798ba798eea", null ],
+ [ "pcICompositeNode", "XMPCoreFwdDeclarations_8h.html#a5a920b0717c8a08d3c68ece64a8f815a", null ],
+ [ "pcICompositeNode_base", "XMPCoreFwdDeclarations_8h.html#a2bb4ccadea260bcce39d23e45f5d592f", null ],
+ [ "pcICompositeNode_I", "XMPCoreFwdDeclarations_8h.html#aa1ac753eb7735e19c3f1a2a21d02a047", null ],
+ [ "pcICoreConfigurationManager", "XMPCoreFwdDeclarations_8h.html#a691bc74f235854166554f597f777bb5f", null ],
+ [ "pcICoreConfigurationManager_base", "XMPCoreFwdDeclarations_8h.html#a748a32416e42b563251d682d49535fb8", null ],
+ [ "pcICoreConfigurationManager_I", "XMPCoreFwdDeclarations_8h.html#ae995733eb74953fd4e8cafe373236938", null ],
+ [ "pcICoreObjectFactory", "XMPCoreFwdDeclarations_8h.html#a55e6a583f61b00819b7034f9dd2243f9", null ],
+ [ "pcICoreObjectFactory_base", "XMPCoreFwdDeclarations_8h.html#a2ccf603c61b8576fb4a0de760e27f6ba", null ],
+ [ "pcICoreObjectFactory_I", "XMPCoreFwdDeclarations_8h.html#ae32d6c403c99fe665bbeff4483a7b144", null ],
+ [ "pcIDOMImplementationRegistry", "XMPCoreFwdDeclarations_8h.html#a3971bab010eb9c01783af14c58ccfe54", null ],
+ [ "pcIDOMImplementationRegistry_base", "XMPCoreFwdDeclarations_8h.html#a71d91db5d9f5b30fa16b5790948f11cc", null ],
+ [ "pcIDOMImplementationRegistry_I", "XMPCoreFwdDeclarations_8h.html#ae7c82f1920d2cbe1956fc5c43d0b10e2", null ],
+ [ "pcIDOMParser", "XMPCoreFwdDeclarations_8h.html#a6b5fc097880814213414c58da877fea5", null ],
+ [ "pcIDOMParser_base", "XMPCoreFwdDeclarations_8h.html#a761f1236009e028ec7c95d4e3fa59b71", null ],
+ [ "pcIDOMParser_I", "XMPCoreFwdDeclarations_8h.html#a3a6d0893476eb4ce3713ca88e5c80b4e", null ],
+ [ "pcIDOMSerializer", "XMPCoreFwdDeclarations_8h.html#a1de6f60a0aefc1d42bb656731ff33a9b", null ],
+ [ "pcIDOMSerializer_base", "XMPCoreFwdDeclarations_8h.html#a9259d01efe1d26b66d5f60cf79f81296", null ],
+ [ "pcIDOMSerializer_I", "XMPCoreFwdDeclarations_8h.html#a771229361d508f6fc0d427803543d38b", null ],
+ [ "pcIMetadata", "XMPCoreFwdDeclarations_8h.html#aa542fbf0ea812dbe340cd7837d68ef9f", null ],
+ [ "pcIMetadata_base", "XMPCoreFwdDeclarations_8h.html#a2987cd583f3105668b529ad5fe385481", null ],
+ [ "pcIMetadata_I", "XMPCoreFwdDeclarations_8h.html#abf85881909a28303736ad48039524d73", null ],
+ [ "pcINameSpacePrefixMap", "XMPCoreFwdDeclarations_8h.html#ac973b0e26fb1fdf9146be95ab9f12b1e", null ],
+ [ "pcINameSpacePrefixMap_base", "XMPCoreFwdDeclarations_8h.html#ad877a19389a4ba0dd5ef226470fd7f5b", null ],
+ [ "pcINameSpacePrefixMap_I", "XMPCoreFwdDeclarations_8h.html#ab7edb8a8ca91f8397965cf85502c2043", null ],
+ [ "pcINode", "XMPCoreFwdDeclarations_8h.html#ab2c77e55a81c018160035cea22f49a1a", null ],
+ [ "pcINode_base", "XMPCoreFwdDeclarations_8h.html#a4cddd2e1fe643106d1c026481157bdc8", null ],
+ [ "pcINode_I", "XMPCoreFwdDeclarations_8h.html#a09decb910c24c7929d609f1e29ca16b1", null ],
+ [ "pcINodeIterator", "XMPCoreFwdDeclarations_8h.html#a634afe8da11f5cea93b0f07e8270da5f", null ],
+ [ "pcINodeIterator_base", "XMPCoreFwdDeclarations_8h.html#a830414d5b50ee73daa2d85efb174921a", null ],
+ [ "pcINodeIterator_I", "XMPCoreFwdDeclarations_8h.html#a9d8ff928f0b3e120916451e57b1b05bb", null ],
+ [ "pcIPath", "XMPCoreFwdDeclarations_8h.html#a277f8ceb2e7074edb4ce6c3bc906a71c", null ],
+ [ "pcIPath_base", "XMPCoreFwdDeclarations_8h.html#a822c7331a85db496adc520310ac6c144", null ],
+ [ "pcIPath_I", "XMPCoreFwdDeclarations_8h.html#aa917512a62ab131edf95fab4e6ba7067", null ],
+ [ "pcIPathSegment", "XMPCoreFwdDeclarations_8h.html#a6ae7c996eea34342b41719bcc4bf766a", null ],
+ [ "pcIPathSegment_base", "XMPCoreFwdDeclarations_8h.html#aa1d5ef746b351d46f0d9be2d53538d7b", null ],
+ [ "pcIPathSegment_I", "XMPCoreFwdDeclarations_8h.html#a8c2801e50baa3f7979aa4a31225bc25d", null ],
+ [ "pcISimpleNode", "XMPCoreFwdDeclarations_8h.html#acff9cacaf46a6c6923117852e63579b6", null ],
+ [ "pcISimpleNode_base", "XMPCoreFwdDeclarations_8h.html#abaf2af5208e93c52361d13dff16c959d", null ],
+ [ "pcISimpleNode_I", "XMPCoreFwdDeclarations_8h.html#a0de0f06ece9bff0c77df3e519af9f506", null ],
+ [ "pcIStructureNode", "XMPCoreFwdDeclarations_8h.html#abae00582b217eaa165ccf0006afa23bd", null ],
+ [ "pcIStructureNode_base", "XMPCoreFwdDeclarations_8h.html#ae429e590ecce9128e7bb3c8ea91c6b16", null ],
+ [ "pcIStructureNode_I", "XMPCoreFwdDeclarations_8h.html#a85d314eae1eef235e7c698c5c84bdda1", null ],
+ [ "pIArrayNode", "XMPCoreFwdDeclarations_8h.html#a0f163418e9969110fdf767b0092a08cd", null ],
+ [ "pIArrayNode_base", "XMPCoreFwdDeclarations_8h.html#a47468e9aeeb0e9d2541bccfbbaf916f7", null ],
+ [ "pIArrayNode_I", "XMPCoreFwdDeclarations_8h.html#af2a081973401c42b5772dc9faec58a58", null ],
+ [ "pIClientDOMParser", "XMPCoreFwdDeclarations_8h.html#ab5d69f05635d466dcd976f8b2b8e8617", null ],
+ [ "pIClientDOMParser_base", "XMPCoreFwdDeclarations_8h.html#a9dd27d79138a3d399e48343b626cd3a9", null ],
+ [ "pIClientDOMParser_I", "XMPCoreFwdDeclarations_8h.html#a5c9e417017018f36cdbfdbcaa8cd0585", null ],
+ [ "pIClientDOMSerializer", "XMPCoreFwdDeclarations_8h.html#a901745dcadcfc4387450dd28aaa2d490", null ],
+ [ "pIClientDOMSerializer_base", "XMPCoreFwdDeclarations_8h.html#a2dfed76bf986f6fad861aa2323b28caf", null ],
+ [ "pIClientDOMSerializer_I", "XMPCoreFwdDeclarations_8h.html#a9807c050f5244e2cf017e5f247d22473", null ],
+ [ "pICompositeNode", "XMPCoreFwdDeclarations_8h.html#aef05040bb5475b170f4816511f0655d0", null ],
+ [ "pICompositeNode_base", "XMPCoreFwdDeclarations_8h.html#a294ebc2cc2287c14558850dcd8c88f1e", null ],
+ [ "pICompositeNode_I", "XMPCoreFwdDeclarations_8h.html#a88df781b3af9dc7dfe7cb967b6e9b440", null ],
+ [ "pICoreConfigurationManager", "XMPCoreFwdDeclarations_8h.html#a0476368bde6f3c6e43e3659ae092f6e1", null ],
+ [ "pICoreConfigurationManager_base", "XMPCoreFwdDeclarations_8h.html#a55c34a6f458c74682e542edd2a258686", null ],
+ [ "pICoreConfigurationManager_I", "XMPCoreFwdDeclarations_8h.html#a643dfc0500b39ea6d5a81c187fe0e9bc", null ],
+ [ "pICoreObjectFactory", "XMPCoreFwdDeclarations_8h.html#ad925e271d292d0b0af1a24342391219d", null ],
+ [ "pICoreObjectFactory_base", "XMPCoreFwdDeclarations_8h.html#ac062cb6e980601a1eedf6085cca9b850", null ],
+ [ "pICoreObjectFactory_I", "XMPCoreFwdDeclarations_8h.html#ad445bf512b4b3179b131b0a7dec31d86", null ],
+ [ "pIDOMImplementationRegistry", "XMPCoreFwdDeclarations_8h.html#ae332986668c86f3e5c6bbd57fd5f4cad", null ],
+ [ "pIDOMImplementationRegistry_base", "XMPCoreFwdDeclarations_8h.html#ae600077e4e41eec5ebb90fa7510b8b48", null ],
+ [ "pIDOMImplementationRegistry_I", "XMPCoreFwdDeclarations_8h.html#ad26aadc3f0926468c34c02cc1a0f1dbd", null ],
+ [ "pIDOMParser", "XMPCoreFwdDeclarations_8h.html#a8b003da6674d32c5c628f1d0e1fa45aa", null ],
+ [ "pIDOMParser_base", "XMPCoreFwdDeclarations_8h.html#ad8fa3ac657a8506d5d25544060c4af15", null ],
+ [ "pIDOMParser_I", "XMPCoreFwdDeclarations_8h.html#a4dad9e02be4a3efae9ea99e5f03ae11e", null ],
+ [ "pIDOMSerializer", "XMPCoreFwdDeclarations_8h.html#a6b414731e356594947b08382866c9fcf", null ],
+ [ "pIDOMSerializer_base", "XMPCoreFwdDeclarations_8h.html#aa83dd7633a221cb189681dff2bbd78a3", null ],
+ [ "pIDOMSerializer_I", "XMPCoreFwdDeclarations_8h.html#a1bbf04f53ef3da6e5e12f535679bb177", null ],
+ [ "pIMetadata", "XMPCoreFwdDeclarations_8h.html#a0c1658ecfb260ac950498f17edd5ebd0", null ],
+ [ "pIMetadata_base", "XMPCoreFwdDeclarations_8h.html#aa6b155d7624638c88d2b64b551ef1b0c", null ],
+ [ "pIMetadata_I", "XMPCoreFwdDeclarations_8h.html#a70359e8aaa387b24879f1510ac1c4725", null ],
+ [ "pINameSpacePrefixMap", "XMPCoreFwdDeclarations_8h.html#a7c13887bb991ed5707ebae28d26543b1", null ],
+ [ "pINameSpacePrefixMap_base", "XMPCoreFwdDeclarations_8h.html#ad7423726463e791584bdeeb0a699c2d6", null ],
+ [ "pINameSpacePrefixMap_I", "XMPCoreFwdDeclarations_8h.html#a0665746b848a075cc4aaf72f553cea95", null ],
+ [ "pINode", "XMPCoreFwdDeclarations_8h.html#abc833d7b10347a44a303b973337cf536", null ],
+ [ "pINode_base", "XMPCoreFwdDeclarations_8h.html#adb4509f09f05618cebbd4f09a5fbb05a", null ],
+ [ "pINode_I", "XMPCoreFwdDeclarations_8h.html#a7ab22fbbd637098e7e0db48036864228", null ],
+ [ "pINodeIterator", "XMPCoreFwdDeclarations_8h.html#ac162eebfff7088f633bc0dd401a18862", null ],
+ [ "pINodeIterator_base", "XMPCoreFwdDeclarations_8h.html#a6e8a84e7b4b342b98bc1af7297c30250", null ],
+ [ "pINodeIterator_I", "XMPCoreFwdDeclarations_8h.html#a71dcb1468c552abdd9fb1666cadc6600", null ],
+ [ "pIPath", "XMPCoreFwdDeclarations_8h.html#abce7d351f3258b3edfb1c96e7d2d4945", null ],
+ [ "pIPath_base", "XMPCoreFwdDeclarations_8h.html#a8a912843a6b3779781ed27cde7e330d6", null ],
+ [ "pIPath_I", "XMPCoreFwdDeclarations_8h.html#ac72d014801c316df78e38687d0c11aa7", null ],
+ [ "pIPathSegment", "XMPCoreFwdDeclarations_8h.html#afcc8116b5f4020c02bc96bd91a4d5235", null ],
+ [ "pIPathSegment_base", "XMPCoreFwdDeclarations_8h.html#a5a11f058662f2f67819f52a97154076b", null ],
+ [ "pIPathSegment_I", "XMPCoreFwdDeclarations_8h.html#a7b86a8447002d8c63c837cffda64dd2a", null ],
+ [ "pISimpleNode", "XMPCoreFwdDeclarations_8h.html#ad9403696e40df26b5d17e0d17d6799f0", null ],
+ [ "pISimpleNode_base", "XMPCoreFwdDeclarations_8h.html#a14569c99ffc10ff405f51220851fbe36", null ],
+ [ "pISimpleNode_I", "XMPCoreFwdDeclarations_8h.html#a9b914b7e3bafee8e830a982810ed2191", null ],
+ [ "pIStructureNode", "XMPCoreFwdDeclarations_8h.html#ac7a54801a0cd4ae9441548ccfb1fd608", null ],
+ [ "pIStructureNode_base", "XMPCoreFwdDeclarations_8h.html#af51bfb0cbccc377fb76fbc7187eb3456", null ],
+ [ "pIStructureNode_I", "XMPCoreFwdDeclarations_8h.html#a4d4375869e320dc1596a9d62a4030b05", null ],
+ [ "spcIArrayNode", "XMPCoreFwdDeclarations_8h.html#a4ea338a9eed923abf6aba47a27926a0f", null ],
+ [ "spcICompositeNode", "XMPCoreFwdDeclarations_8h.html#a7c98739d62fca879db910ac0fca82c3c", null ],
+ [ "spcICoreConfigurationManager", "XMPCoreFwdDeclarations_8h.html#a885f02b2d6de4b5403445eb74e5e2ce6", null ],
+ [ "spcIDOMImplementationRegistry", "XMPCoreFwdDeclarations_8h.html#a6efe4728a027ee77597fe1a05a6bc30c", null ],
+ [ "spcIDOMParser", "XMPCoreFwdDeclarations_8h.html#a587ba854add16d5201c974a3a0f7050c", null ],
+ [ "spcIDOMSerializer", "XMPCoreFwdDeclarations_8h.html#aee2397438ef33989fb100e5923821eb9", null ],
+ [ "spcIMetadata", "XMPCoreFwdDeclarations_8h.html#a1e81ce748e90e850d0a48b0b5943fce2", null ],
+ [ "spcINameSpacePrefixMap", "XMPCoreFwdDeclarations_8h.html#a22f9e572045a61aa3cfc629a0d877d72", null ],
+ [ "spcINode", "XMPCoreFwdDeclarations_8h.html#a597eaeb0ed86794ea01f74a5be0f88ed", null ],
+ [ "spcINodeIterator", "XMPCoreFwdDeclarations_8h.html#ab423c366f29043e79694f805bceddb56", null ],
+ [ "spcIPath", "XMPCoreFwdDeclarations_8h.html#aa01e44df0f17d2a1d959710ec856261c", null ],
+ [ "spcIPathSegment", "XMPCoreFwdDeclarations_8h.html#a98ce40154ef1c1d92f2077c8211f2a9c", null ],
+ [ "spcISimpleNode", "XMPCoreFwdDeclarations_8h.html#a4cb671d44948c7505c33431ec12f6c1f", null ],
+ [ "spcIStructureNode", "XMPCoreFwdDeclarations_8h.html#ab5807ab783087243a3676a19ad6f9b90", null ],
+ [ "spIArrayNode", "XMPCoreFwdDeclarations_8h.html#a24e8e82d63d879d77408ce5c7e30c609", null ],
+ [ "spICompositeNode", "XMPCoreFwdDeclarations_8h.html#acfcbb43bd0f659f554877c4f9dd7d459", null ],
+ [ "spICoreConfigurationManager", "XMPCoreFwdDeclarations_8h.html#a123c6e847d41233c9e4ba6c64a650c7f", null ],
+ [ "spIDOMImplementationRegistry", "XMPCoreFwdDeclarations_8h.html#a197acc21ecf883449824a1e87a99586a", null ],
+ [ "spIDOMParser", "XMPCoreFwdDeclarations_8h.html#a737ec082bb4e7f817b45e073337c0893", null ],
+ [ "spIDOMSerializer", "XMPCoreFwdDeclarations_8h.html#af3525e619e07f58d7eb8247b56ddad21", null ],
+ [ "spIMetadata", "XMPCoreFwdDeclarations_8h.html#a7f1de39fd79aeac4402eba73cb1ffe82", null ],
+ [ "spINameSpacePrefixMap", "XMPCoreFwdDeclarations_8h.html#ab17b1221c559007c5fbc73cf2c555c6c", null ],
+ [ "spINode", "XMPCoreFwdDeclarations_8h.html#aeec2c711a611cbc3c77ef1a0bb026e33", null ],
+ [ "spINodeIterator", "XMPCoreFwdDeclarations_8h.html#a5386a735d9eb66d5859e4657dfeebb7c", null ],
+ [ "spIPath", "XMPCoreFwdDeclarations_8h.html#aa54f5ed241da9437ad01c1047a199f56", null ],
+ [ "spIPathSegment", "XMPCoreFwdDeclarations_8h.html#ae339cdf18168ecc8197e651df8f43854", null ],
+ [ "spISimpleNode", "XMPCoreFwdDeclarations_8h.html#ab20ecb8d094c1dd81cb278370b746343", null ],
+ [ "spIStructureNode", "XMPCoreFwdDeclarations_8h.html#a957c57fcbb47c704fc5c31cf36dcbde7", null ],
+ [ "BASE_CLASS", "XMPCoreFwdDeclarations_8h.html#ab25d27977dd99a041e01a4b8558f08fe", null ],
+ [ "BASE_CLASS", "XMPCoreFwdDeclarations_8h.html#ad4e3ab53add36a4678405f4b1ac5826b", null ],
+ [ "BASE_CLASS", "XMPCoreFwdDeclarations_8h.html#aae83a987190b96eba7659457c737709c", null ],
+ [ "BASE_CLASS", "XMPCoreFwdDeclarations_8h.html#aa8b539533f4842694b7d5c5ac05e4961", null ],
+ [ "BASE_CLASS", "XMPCoreFwdDeclarations_8h.html#aa13d8ba12f5ac8ec0b73323472a9c977", null ],
+ [ "BASE_CLASS", "XMPCoreFwdDeclarations_8h.html#ac94856cb1ce1f56b29673bc3eda30a2b", null ],
+ [ "BASE_CLASS", "XMPCoreFwdDeclarations_8h.html#ac94822da2d3427c627df15c4af5824d3", null ],
+ [ "BASE_CLASS", "XMPCoreFwdDeclarations_8h.html#aafbff1ea559ac40a588ee191a94b25af", null ],
+ [ "BASE_CLASS", "XMPCoreFwdDeclarations_8h.html#a66384130267cdd648e0f677128635123", null ],
+ [ "BASE_CLASS", "XMPCoreFwdDeclarations_8h.html#a1da997b938e393546c72aca8811b5300", null ],
+ [ "BASE_CLASS", "XMPCoreFwdDeclarations_8h.html#a257c4389ad7bddfa28bfdf34d92bd28b", null ],
+ [ "BASE_CLASS", "XMPCoreFwdDeclarations_8h.html#a207afe21d3d4fcb8cb1170ba646003f4", null ],
+ [ "BASE_CLASS", "XMPCoreFwdDeclarations_8h.html#a812c55394dd0d590ae2ca9a4e0178671", null ],
+ [ "BASE_CLASS", "XMPCoreFwdDeclarations_8h.html#a3dba425488e67755405e5e9b1476babc", null ],
+ [ "BASE_CLASS", "XMPCoreFwdDeclarations_8h.html#aa62775052accb00b04f530857b5fc18a", null ],
+ [ "BASE_CLASS", "XMPCoreFwdDeclarations_8h.html#a1d1b0939f67456659a36e11ce594690d", null ],
+ [ "BASE_CLASS", "XMPCoreFwdDeclarations_8h.html#a2fea5ada7406b2712ed3bfeecf84c2e2", null ],
+ [ "kIArrayNodeID", "XMPCoreFwdDeclarations_8h.html#a865ec7a2af5304ec42d443da038ae5b7", null ],
+ [ "kICompositeNodeID", "XMPCoreFwdDeclarations_8h.html#a663e9a570224c4361f5ab883e32cf460", null ],
+ [ "kICoreConfigurationManagerID", "XMPCoreFwdDeclarations_8h.html#a1fb39caa1c8eeed351b0fca6eca60577", null ],
+ [ "kICoreObjectFactoryID", "XMPCoreFwdDeclarations_8h.html#a30bb255921760813b83dfb94449051dd", null ],
+ [ "kIDOMImplementationRegistryID", "XMPCoreFwdDeclarations_8h.html#a6d787e316880e838d2a03f641a520a5b", null ],
+ [ "kIDOMParserID", "XMPCoreFwdDeclarations_8h.html#aa11deda1f160ba3bfba36558afcaa0ef", null ],
+ [ "kIDOMSerializerID", "XMPCoreFwdDeclarations_8h.html#a16e22df4b5facaffff284ab0104404a9", null ],
+ [ "kIMetadataID", "XMPCoreFwdDeclarations_8h.html#ae266f1d0a72a69dbbad9443f1b4140e6", null ],
+ [ "kINameSpacePrefixMapID", "XMPCoreFwdDeclarations_8h.html#aab6f1fa4adf9d3b8c40d4e8f601ddfdf", null ],
+ [ "kINodeID", "XMPCoreFwdDeclarations_8h.html#ae76eb0e35e0e35e5b476b6fecc6e3603", null ],
+ [ "kINodeIteratorID", "XMPCoreFwdDeclarations_8h.html#afb1db1e3afd3cb409aab3c32435b506b", null ],
+ [ "kIPathID", "XMPCoreFwdDeclarations_8h.html#a169bb4bbf2a32d4201625eca17bde615", null ],
+ [ "kIPathSegmentID", "XMPCoreFwdDeclarations_8h.html#a20562f7f885eacd89465270be790c31f", null ],
+ [ "kISimpleNodeID", "XMPCoreFwdDeclarations_8h.html#a258ec247968bc8e101a087b2f914c95b", null ],
+ [ "kIStructureNodeID", "XMPCoreFwdDeclarations_8h.html#a099de3a79749ee161daf59313861702e", null ]
+]; \ No newline at end of file
diff --git a/docs/API/XMPCoreFwdDeclarations_8h_source.html b/docs/API/XMPCoreFwdDeclarations_8h_source.html
new file mode 100755
index 0000000..6450c8f
--- /dev/null
+++ b/docs/API/XMPCoreFwdDeclarations_8h_source.html
@@ -0,0 +1,204 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/XMPCoreFwdDeclarations.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('XMPCoreFwdDeclarations_8h_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">XMPCoreFwdDeclarations.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="XMPCoreFwdDeclarations_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef XMPCoreFwdDeclarations_h__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define XMPCoreFwdDeclarations_h__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// ADOBE SYSTEMS INCORPORATED</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// Copyright 2014 Adobe Systems Incorporated</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// All Rights Reserved</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="XMPCoreDefines_8h.html">XMPCore/XMPCoreDefines.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="XMPCommonFwdDeclarations_8h.html">XMPCommon/XMPCommonFwdDeclarations.h</a>&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="XMPCoreLatestInterfaceVersions_8h.html">XMPCore/XMPCoreLatestInterfaceVersions.h</a>&quot;</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a> {</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">using namespace </span><a class="code" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a>;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="comment">// INameSpacePrefixMap</span></div><div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a459a371e2e25b93998a16921e3536bc7"> 22</a></span>&#160; <span class="keyword">class </span><a class="code" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">INameSpacePrefixMap_v1</a>;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keyword">typedef</span> <a class="code" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">INameSpacePrefixMap_v1</a> <a class="code" href="namespaceAdobeXMPCore.html#a459a371e2e25b93998a16921e3536bc7">INameSpacePrefixMap_base</a>;</div><div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#ad7423726463e791584bdeeb0a699c2d6"> 24</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">INameSpacePrefixMap_v1</a> * <a class="code" href="namespaceAdobeXMPCore.html#ad7423726463e791584bdeeb0a699c2d6">pINameSpacePrefixMap_base</a>;</div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#ad877a19389a4ba0dd5ef226470fd7f5b"> 25</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">const</span> <a class="code" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">INameSpacePrefixMap_v1</a> * <a class="code" href="namespaceAdobeXMPCore.html#ad877a19389a4ba0dd5ef226470fd7f5b">pcINameSpacePrefixMap_base</a>;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceAdobeXMPCore.html#ab25d27977dd99a041e01a4b8558f08fe">BASE_CLASS</a>( INameSpacePrefixMap, <a class="code" href="XMPCoreLatestInterfaceVersions_8h.html#a79e1c8ec2c46a2cbee3ba9cfd0d78ad4">INAMESPACEPREFIXMAP_VERSION</a> ) INameSpacePrefixMap;</div><div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a7c13887bb991ed5707ebae28d26543b1"> 27</a></span>&#160; typedef INameSpacePrefixMap * <a class="code" href="namespaceAdobeXMPCore.html#a7c13887bb991ed5707ebae28d26543b1">pINameSpacePrefixMap</a>;</div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#ac973b0e26fb1fdf9146be95ab9f12b1e"> 28</a></span>&#160; typedef const INameSpacePrefixMap * <a class="code" href="namespaceAdobeXMPCore.html#ac973b0e26fb1fdf9146be95ab9f12b1e">pcINameSpacePrefixMap</a>;</div><div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#ab17b1221c559007c5fbc73cf2c555c6c"> 29</a></span>&#160; typedef shared_ptr&lt; INameSpacePrefixMap &gt; <a class="code" href="namespaceAdobeXMPCore.html#ab17b1221c559007c5fbc73cf2c555c6c">spINameSpacePrefixMap</a>;</div><div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a22f9e572045a61aa3cfc629a0d877d72"> 30</a></span>&#160; typedef shared_ptr&lt; const INameSpacePrefixMap &gt; <a class="code" href="namespaceAdobeXMPCore.html#a22f9e572045a61aa3cfc629a0d877d72">spcINameSpacePrefixMap</a>;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; static const <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> <a class="code" href="namespaceAdobeXMPCore.html#aab6f1fa4adf9d3b8c40d4e8f601ddfdf">kINameSpacePrefixMapID</a> ( 0x634e5350724d6170 <span class="comment">/* cNSPrMap */</span> );</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="comment">// IPathSegment</span></div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a7b83ccf46420d268a2cbce051f61a413"> 34</a></span>&#160; class <a class="code" href="classAdobeXMPCore_1_1IPathSegment__v1.html">IPathSegment_v1</a>;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; typedef IPathSegment_v1 <a class="code" href="classAdobeXMPCore_1_1IPathSegment__v1.html">IPathSegment_base</a>;</div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a5a11f058662f2f67819f52a97154076b"> 36</a></span>&#160; typedef IPathSegment_v1 * <a class="code" href="classAdobeXMPCore_1_1IPathSegment__v1.html">pIPathSegment_base</a>;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#aa1d5ef746b351d46f0d9be2d53538d7b"> 37</a></span>&#160; typedef const IPathSegment_v1 * <a class="code" href="classAdobeXMPCore_1_1IPathSegment__v1.html">pcIPathSegment_base</a>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; typedef <a class="code" href="namespaceAdobeXMPCore.html#ab25d27977dd99a041e01a4b8558f08fe">BASE_CLASS</a>( IPathSegment, <a class="code" href="XMPCoreLatestInterfaceVersions_8h.html#a42cb9bdb3894ac77ff614349e5c371e5">IPATHSEGMENT_VERSION</a> ) IPathSegment;</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#afcc8116b5f4020c02bc96bd91a4d5235"> 39</a></span>&#160; typedef IPathSegment * <a class="code" href="namespaceAdobeXMPCore.html#afcc8116b5f4020c02bc96bd91a4d5235">pIPathSegment</a>;</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a6ae7c996eea34342b41719bcc4bf766a"> 40</a></span>&#160; typedef const IPathSegment * <a class="code" href="namespaceAdobeXMPCore.html#a6ae7c996eea34342b41719bcc4bf766a">pcIPathSegment</a>;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#ae339cdf18168ecc8197e651df8f43854"> 41</a></span>&#160; typedef shared_ptr&lt; IPathSegment &gt; <a class="code" href="namespaceAdobeXMPCore.html#ae339cdf18168ecc8197e651df8f43854">spIPathSegment</a>;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a98ce40154ef1c1d92f2077c8211f2a9c"> 42</a></span>&#160; typedef shared_ptr&lt; const IPathSegment &gt; <a class="code" href="namespaceAdobeXMPCore.html#a98ce40154ef1c1d92f2077c8211f2a9c">spcIPathSegment</a>;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; static const <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> <a class="code" href="namespaceAdobeXMPCore.html#a20562f7f885eacd89465270be790c31f">kIPathSegmentID</a> ( 0x6350617468536567 <span class="comment">/* cPathSeg */</span> );</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="comment">// IPath</span></div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#ab063c96638c29753c9799d3184319b85"> 46</a></span>&#160; class <a class="code" href="classAdobeXMPCore_1_1IPath__v1.html">IPath_v1</a>;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; typedef IPath_v1 <a class="code" href="classAdobeXMPCore_1_1IPath__v1.html">IPath_base</a>;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a8a912843a6b3779781ed27cde7e330d6"> 48</a></span>&#160; typedef IPath_v1 * <a class="code" href="classAdobeXMPCore_1_1IPath__v1.html">pIPath_base</a>;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a822c7331a85db496adc520310ac6c144"> 49</a></span>&#160; typedef const IPath_v1 * <a class="code" href="classAdobeXMPCore_1_1IPath__v1.html">pcIPath_base</a>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; typedef <a class="code" href="namespaceAdobeXMPCore.html#ab25d27977dd99a041e01a4b8558f08fe">BASE_CLASS</a>( IPath, <a class="code" href="XMPCoreLatestInterfaceVersions_8h.html#adc9fb16e479a79e35a9dc58e166fcbad">IPATH_VERSION</a> ) IPath;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#abce7d351f3258b3edfb1c96e7d2d4945"> 51</a></span>&#160; typedef IPath * <a class="code" href="namespaceAdobeXMPCore.html#abce7d351f3258b3edfb1c96e7d2d4945">pIPath</a>;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a277f8ceb2e7074edb4ce6c3bc906a71c"> 52</a></span>&#160; typedef const IPath * <a class="code" href="namespaceAdobeXMPCore.html#a277f8ceb2e7074edb4ce6c3bc906a71c">pcIPath</a>;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#aa54f5ed241da9437ad01c1047a199f56"> 53</a></span>&#160; typedef shared_ptr&lt; IPath &gt; <a class="code" href="namespaceAdobeXMPCore.html#aa54f5ed241da9437ad01c1047a199f56">spIPath</a>;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c"> 54</a></span>&#160; typedef shared_ptr&lt; const IPath &gt; <a class="code" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; static const <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> <a class="code" href="namespaceAdobeXMPCore.html#a169bb4bbf2a32d4201625eca17bde615">kIPathID</a> ( 0x6350617468202020 <span class="comment">/* cPath */</span> );</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="comment">// INode</span></div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a625f7fd9cabaa743f95f3cbd876285d3"> 58</a></span>&#160; class <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">INode_v1</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; typedef INode_v1 <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">INode_base</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#adb4509f09f05618cebbd4f09a5fbb05a"> 60</a></span>&#160; typedef INode_v1 * <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pINode_base</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a4cddd2e1fe643106d1c026481157bdc8"> 61</a></span>&#160; typedef const INode_v1 * <a class="code" href="classAdobeXMPCore_1_1INode__v1.html">pcINode_base</a>;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; typedef <a class="code" href="namespaceAdobeXMPCore.html#ab25d27977dd99a041e01a4b8558f08fe">BASE_CLASS</a>( INode, <a class="code" href="XMPCoreLatestInterfaceVersions_8h.html#aff2b1eabe2ac90a68ba3690930494a17">INODE_VERSION</a> ) INode;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#abc833d7b10347a44a303b973337cf536"> 63</a></span>&#160; typedef INode * <a class="code" href="namespaceAdobeXMPCore.html#abc833d7b10347a44a303b973337cf536">pINode</a>;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#ab2c77e55a81c018160035cea22f49a1a"> 64</a></span>&#160; typedef const INode * <a class="code" href="namespaceAdobeXMPCore.html#ab2c77e55a81c018160035cea22f49a1a">pcINode</a>;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33"> 65</a></span>&#160; typedef shared_ptr&lt; INode &gt; <a class="code" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a>;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed"> 66</a></span>&#160; typedef shared_ptr&lt; const INode &gt; <a class="code" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">spcINode</a>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; static const <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> <a class="code" href="namespaceAdobeXMPCore.html#ae76eb0e35e0e35e5b476b6fecc6e3603">kINodeID</a> ( 0x634e6f6465202020 <span class="comment">/* cNode */</span> );</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="comment">// ISimpleNode</span></div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a6bdb87029a97b11b3b8ce4d8eb84e7b7"> 70</a></span>&#160; class <a class="code" href="classAdobeXMPCore_1_1ISimpleNode__v1.html">ISimpleNode_v1</a>;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; typedef ISimpleNode_v1 <a class="code" href="classAdobeXMPCore_1_1ISimpleNode__v1.html">ISimpleNode_base</a>;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a14569c99ffc10ff405f51220851fbe36"> 72</a></span>&#160; typedef ISimpleNode_v1 * <a class="code" href="classAdobeXMPCore_1_1ISimpleNode__v1.html">pISimpleNode_base</a>;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#abaf2af5208e93c52361d13dff16c959d"> 73</a></span>&#160; typedef const ISimpleNode_v1 * <a class="code" href="classAdobeXMPCore_1_1ISimpleNode__v1.html">pcISimpleNode_base</a>;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; typedef <a class="code" href="namespaceAdobeXMPCore.html#ab25d27977dd99a041e01a4b8558f08fe">BASE_CLASS</a>( ISimpleNode, <a class="code" href="XMPCoreLatestInterfaceVersions_8h.html#a799da65cf5811707628bb2681a4545ec">ISIMPLENODE_VERSION</a> ) ISimpleNode;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#ad9403696e40df26b5d17e0d17d6799f0"> 75</a></span>&#160; typedef ISimpleNode * <a class="code" href="namespaceAdobeXMPCore.html#ad9403696e40df26b5d17e0d17d6799f0">pISimpleNode</a>;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#acff9cacaf46a6c6923117852e63579b6"> 76</a></span>&#160; typedef const ISimpleNode * <a class="code" href="namespaceAdobeXMPCore.html#acff9cacaf46a6c6923117852e63579b6">pcISimpleNode</a>;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343"> 77</a></span>&#160; typedef shared_ptr&lt; ISimpleNode &gt; <a class="code" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a>;</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f"> 78</a></span>&#160; typedef shared_ptr&lt; const ISimpleNode &gt; <a class="code" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a>;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; static const <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> <a class="code" href="namespaceAdobeXMPCore.html#a258ec247968bc8e101a087b2f914c95b">kISimpleNodeID</a> ( 0x63536d6c4e6f6465 <span class="comment">/* cSmlNode */</span> );</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="comment">// ICompositeNode</span></div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#aab9120a7fc533281e84ead6df110e0a5"> 82</a></span>&#160; class <a class="code" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">ICompositeNode_v1</a>;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; typedef ICompositeNode_v1 <a class="code" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">ICompositeNode_base</a>;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a294ebc2cc2287c14558850dcd8c88f1e"> 84</a></span>&#160; typedef ICompositeNode_v1 * <a class="code" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">pICompositeNode_base</a>;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a2bb4ccadea260bcce39d23e45f5d592f"> 85</a></span>&#160; typedef const ICompositeNode_v1 * <a class="code" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">pcICompositeNode_base</a>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; typedef <a class="code" href="namespaceAdobeXMPCore.html#ab25d27977dd99a041e01a4b8558f08fe">BASE_CLASS</a>( ICompositeNode, <a class="code" href="XMPCoreLatestInterfaceVersions_8h.html#aefe5b8d014bd0f2ca4933a16572b51df">ICOMPOSITENODE_VERSION</a> ) ICompositeNode;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#aef05040bb5475b170f4816511f0655d0"> 87</a></span>&#160; typedef ICompositeNode * <a class="code" href="namespaceAdobeXMPCore.html#aef05040bb5475b170f4816511f0655d0">pICompositeNode</a>;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a5a920b0717c8a08d3c68ece64a8f815a"> 88</a></span>&#160; typedef const ICompositeNode * <a class="code" href="namespaceAdobeXMPCore.html#a5a920b0717c8a08d3c68ece64a8f815a">pcICompositeNode</a>;</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#acfcbb43bd0f659f554877c4f9dd7d459"> 89</a></span>&#160; typedef shared_ptr&lt; ICompositeNode &gt; <a class="code" href="namespaceAdobeXMPCore.html#acfcbb43bd0f659f554877c4f9dd7d459">spICompositeNode</a>;</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a7c98739d62fca879db910ac0fca82c3c"> 90</a></span>&#160; typedef shared_ptr&lt; const ICompositeNode &gt; <a class="code" href="namespaceAdobeXMPCore.html#a7c98739d62fca879db910ac0fca82c3c">spcICompositeNode</a>;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; static const <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> <a class="code" href="namespaceAdobeXMPCore.html#a663e9a570224c4361f5ab883e32cf460">kICompositeNodeID</a> ( 0x63436d704e6f6465 <span class="comment">/* cCmpNode */</span> );</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="comment">// IStructureNode</span></div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a8ed683c00df5d7ccdb8428cfc072ca90"> 94</a></span>&#160; class <a class="code" href="classAdobeXMPCore_1_1IStructureNode__v1.html">IStructureNode_v1</a>;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; typedef IStructureNode_v1 <a class="code" href="classAdobeXMPCore_1_1IStructureNode__v1.html">IStructureNode_base</a>;</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#af51bfb0cbccc377fb76fbc7187eb3456"> 96</a></span>&#160; typedef IStructureNode_v1 * <a class="code" href="classAdobeXMPCore_1_1IStructureNode__v1.html">pIStructureNode_base</a>;</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#ae429e590ecce9128e7bb3c8ea91c6b16"> 97</a></span>&#160; typedef const IStructureNode_v1 * <a class="code" href="classAdobeXMPCore_1_1IStructureNode__v1.html">pcIStructureNode_base</a>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; typedef <a class="code" href="namespaceAdobeXMPCore.html#ab25d27977dd99a041e01a4b8558f08fe">BASE_CLASS</a>( IStructureNode, <a class="code" href="XMPCoreLatestInterfaceVersions_8h.html#a28325920d39a80ba79dd3774ce056f45">ISTRUCTURENODE_VERSION</a> ) IStructureNode;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#ac7a54801a0cd4ae9441548ccfb1fd608"> 99</a></span>&#160; typedef IStructureNode * <a class="code" href="namespaceAdobeXMPCore.html#ac7a54801a0cd4ae9441548ccfb1fd608">pIStructureNode</a>;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#abae00582b217eaa165ccf0006afa23bd"> 100</a></span>&#160; typedef const IStructureNode * <a class="code" href="namespaceAdobeXMPCore.html#abae00582b217eaa165ccf0006afa23bd">pcIStructureNode</a>;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7"> 101</a></span>&#160; typedef shared_ptr&lt; IStructureNode &gt; <a class="code" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a>;</div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90"> 102</a></span>&#160; typedef shared_ptr&lt; const IStructureNode &gt; <a class="code" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; static const <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> <a class="code" href="namespaceAdobeXMPCore.html#a099de3a79749ee161daf59313861702e">kIStructureNodeID</a> ( 0x635374724e6f6465 <span class="comment">/* cStrNode */</span> );</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="comment">// IArrayNode</span></div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a91f2a2df5097022662328e102a56a4ea"> 106</a></span>&#160; class <a class="code" href="classAdobeXMPCore_1_1IArrayNode__v1.html">IArrayNode_v1</a>;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; typedef IArrayNode_v1 <a class="code" href="classAdobeXMPCore_1_1IArrayNode__v1.html">IArrayNode_base</a>;</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a47468e9aeeb0e9d2541bccfbbaf916f7"> 108</a></span>&#160; typedef IArrayNode_v1 * <a class="code" href="classAdobeXMPCore_1_1IArrayNode__v1.html">pIArrayNode_base</a>;</div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a61344da48c839ebe8d613175563935bf"> 109</a></span>&#160; typedef const IArrayNode_v1 * <a class="code" href="classAdobeXMPCore_1_1IArrayNode__v1.html">pcIArrayNode_base</a>;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; typedef <a class="code" href="namespaceAdobeXMPCore.html#ab25d27977dd99a041e01a4b8558f08fe">BASE_CLASS</a>( IArrayNode, <a class="code" href="XMPCoreLatestInterfaceVersions_8h.html#a1f8464a97acb8671e6cc2a466955d45d">IARRAYNODE_VERSION</a> ) IArrayNode;</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a0f163418e9969110fdf767b0092a08cd"> 111</a></span>&#160; typedef IArrayNode * <a class="code" href="namespaceAdobeXMPCore.html#a0f163418e9969110fdf767b0092a08cd">pIArrayNode</a>;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a3c61d7ec18d24b058624ff83657ad886"> 112</a></span>&#160; typedef const IArrayNode * <a class="code" href="namespaceAdobeXMPCore.html#a3c61d7ec18d24b058624ff83657ad886">pcIArrayNode</a>;</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609"> 113</a></span>&#160; typedef shared_ptr&lt; IArrayNode &gt; <a class="code" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a>;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f"> 114</a></span>&#160; typedef shared_ptr&lt; const IArrayNode &gt; <a class="code" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a>;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; static const <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> <a class="code" href="namespaceAdobeXMPCore.html#a865ec7a2af5304ec42d443da038ae5b7">kIArrayNodeID</a> ( 0x634172724e6f6465 <span class="comment">/* cArrNode */</span> );</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="comment">// INodeIterator</span></div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#ad0578d38c94516edb5414524392845b7"> 118</a></span>&#160; class <a class="code" href="classAdobeXMPCore_1_1INodeIterator__v1.html">INodeIterator_v1</a>;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; typedef INodeIterator_v1 <a class="code" href="classAdobeXMPCore_1_1INodeIterator__v1.html">INodeIterator_base</a>;</div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a6e8a84e7b4b342b98bc1af7297c30250"> 120</a></span>&#160; typedef INodeIterator_v1 * <a class="code" href="classAdobeXMPCore_1_1INodeIterator__v1.html">pINodeIterator_base</a>;</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a830414d5b50ee73daa2d85efb174921a"> 121</a></span>&#160; typedef const INodeIterator_v1 * <a class="code" href="classAdobeXMPCore_1_1INodeIterator__v1.html">pcINodeIterator_base</a>;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; typedef <a class="code" href="namespaceAdobeXMPCore.html#ab25d27977dd99a041e01a4b8558f08fe">BASE_CLASS</a>(INodeIterator, <a class="code" href="XMPCoreLatestInterfaceVersions_8h.html#afe7756c974951e8e78be1cfb96aacc8b">INODEITERATOR_VERSION</a>) INodeIterator;</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#ac162eebfff7088f633bc0dd401a18862"> 123</a></span>&#160; typedef INodeIterator * <a class="code" href="namespaceAdobeXMPCore.html#ac162eebfff7088f633bc0dd401a18862">pINodeIterator</a>;</div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a634afe8da11f5cea93b0f07e8270da5f"> 124</a></span>&#160; typedef const INodeIterator * <a class="code" href="namespaceAdobeXMPCore.html#a634afe8da11f5cea93b0f07e8270da5f">pcINodeIterator</a>;</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a5386a735d9eb66d5859e4657dfeebb7c"> 125</a></span>&#160; typedef shared_ptr&lt; INodeIterator &gt; <a class="code" href="namespaceAdobeXMPCore.html#a5386a735d9eb66d5859e4657dfeebb7c">spINodeIterator</a>;</div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#ab423c366f29043e79694f805bceddb56"> 126</a></span>&#160; typedef shared_ptr&lt; const INodeIterator &gt; <a class="code" href="namespaceAdobeXMPCore.html#ab423c366f29043e79694f805bceddb56">spcINodeIterator</a>;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; static const <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> <a class="code" href="namespaceAdobeXMPCore.html#afb1db1e3afd3cb409aab3c32435b506b">kINodeIteratorID</a> (0x634e6f6465497420 <span class="comment">/* cNodeIt */</span>);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="comment">// IMetadata</span></div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a3600be9aa8da5d9fcfd522c76755866b"> 130</a></span>&#160; class <a class="code" href="classAdobeXMPCore_1_1IMetadata__v1.html">IMetadata_v1</a>;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; typedef IMetadata_v1 <a class="code" href="classAdobeXMPCore_1_1IMetadata__v1.html">IMetadata_base</a>;</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#aa6b155d7624638c88d2b64b551ef1b0c"> 132</a></span>&#160; typedef IMetadata_v1 * <a class="code" href="classAdobeXMPCore_1_1IMetadata__v1.html">pIMetadata_base</a>;</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a2987cd583f3105668b529ad5fe385481"> 133</a></span>&#160; typedef const IMetadata_v1 * <a class="code" href="classAdobeXMPCore_1_1IMetadata__v1.html">pcIMetadata_base</a>;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; typedef <a class="code" href="namespaceAdobeXMPCore.html#ab25d27977dd99a041e01a4b8558f08fe">BASE_CLASS</a>( IMetadata, <a class="code" href="XMPCoreLatestInterfaceVersions_8h.html#af7d51c3ccf825fc82fa4a2a6cca26bc8">IMETADATA_VERSION</a> ) IMetadata;</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a0c1658ecfb260ac950498f17edd5ebd0"> 135</a></span>&#160; typedef IMetadata * <a class="code" href="namespaceAdobeXMPCore.html#a0c1658ecfb260ac950498f17edd5ebd0">pIMetadata</a>;</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#aa542fbf0ea812dbe340cd7837d68ef9f"> 136</a></span>&#160; typedef const IMetadata * <a class="code" href="namespaceAdobeXMPCore.html#aa542fbf0ea812dbe340cd7837d68ef9f">pcIMetadata</a>;</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a7f1de39fd79aeac4402eba73cb1ffe82"> 137</a></span>&#160; typedef shared_ptr&lt; IMetadata &gt; <a class="code" href="namespaceAdobeXMPCore.html#a7f1de39fd79aeac4402eba73cb1ffe82">spIMetadata</a>;</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a1e81ce748e90e850d0a48b0b5943fce2"> 138</a></span>&#160; typedef shared_ptr&lt; const IMetadata &gt; <a class="code" href="namespaceAdobeXMPCore.html#a1e81ce748e90e850d0a48b0b5943fce2">spcIMetadata</a>;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; static const <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> <a class="code" href="namespaceAdobeXMPCore.html#ae266f1d0a72a69dbbad9443f1b4140e6">kIMetadataID</a> ( 0x634d657461646174 <span class="comment">/* cMetadat */</span> );</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="comment">// IClientDOMParser</span></div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#acf6b51a9bb0059c712e6e423ef94fd0d"> 142</a></span>&#160; class <a class="code" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html">IClientDOMParser_v1</a>;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; typedef IClientDOMParser_v1 <a class="code" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html">IClientDOMParser_base</a>;</div><div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a9dd27d79138a3d399e48343b626cd3a9"> 144</a></span>&#160; typedef IClientDOMParser_v1 * <a class="code" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html">pIClientDOMParser_base</a>;</div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a886c1974205be855cea961bfacc60604"> 145</a></span>&#160; typedef const IClientDOMParser_v1 * <a class="code" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html">pcIClientDOMParser_base</a>;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; typedef <a class="code" href="namespaceAdobeXMPCore.html#ab25d27977dd99a041e01a4b8558f08fe">BASE_CLASS</a>( IClientDOMParser, <a class="code" href="XMPCoreLatestInterfaceVersions_8h.html#a64636b4e59a6212968ad30494675603e">ICLIENTDOMPARSER_VERSION</a> ) IClientDOMParser;</div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#ab5d69f05635d466dcd976f8b2b8e8617"> 147</a></span>&#160; typedef IClientDOMParser * <a class="code" href="namespaceAdobeXMPCore.html#ab5d69f05635d466dcd976f8b2b8e8617">pIClientDOMParser</a>;</div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#affaedf89b30a42f4aea5bb10619d1801"> 148</a></span>&#160; typedef const IClientDOMParser * <a class="code" href="namespaceAdobeXMPCore.html#affaedf89b30a42f4aea5bb10619d1801">pcIClientDOMParser</a>;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="comment">// IClientDOMSerializer</span></div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#ac50d8fc1c60d397b440d075184e01212"> 151</a></span>&#160; class <a class="code" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html">IClientDOMSerializer_v1</a>;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; typedef IClientDOMSerializer_v1 <a class="code" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html">IClientDOMSerializer_base</a>;</div><div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a2dfed76bf986f6fad861aa2323b28caf"> 153</a></span>&#160; typedef IClientDOMSerializer_v1 * <a class="code" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html">pIClientDOMSerializer_base</a>;</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a871b93cc85748a5d49fe9774d3305203"> 154</a></span>&#160; typedef const IClientDOMSerializer_v1 * <a class="code" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html">pcIClientDOMSerializer_base</a>;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; typedef <a class="code" href="namespaceAdobeXMPCore.html#ab25d27977dd99a041e01a4b8558f08fe">BASE_CLASS</a>( IClientDOMSerializer, <a class="code" href="XMPCoreLatestInterfaceVersions_8h.html#aa928953eda71cda88699483e1fca4526">ICLIENTDOMSERIALIZER_VERSION</a> ) IClientDOMSerializer;</div><div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a901745dcadcfc4387450dd28aaa2d490"> 156</a></span>&#160; typedef IClientDOMSerializer * <a class="code" href="namespaceAdobeXMPCore.html#a901745dcadcfc4387450dd28aaa2d490">pIClientDOMSerializer</a>;</div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#ad638e9de1a595aa976f69d3773d46d16"> 157</a></span>&#160; typedef const IClientDOMSerializer * <a class="code" href="namespaceAdobeXMPCore.html#ad638e9de1a595aa976f69d3773d46d16">pcIClientDOMSerializer</a>;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; </div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="comment">// IDOMParser</span></div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#afcc78a159d893be198c97d1af098a9e3"> 160</a></span>&#160; class <a class="code" href="classAdobeXMPCore_1_1IDOMParser__v1.html">IDOMParser_v1</a>;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; typedef IDOMParser_v1 <a class="code" href="classAdobeXMPCore_1_1IDOMParser__v1.html">IDOMParser_base</a>;</div><div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#ad8fa3ac657a8506d5d25544060c4af15"> 162</a></span>&#160; typedef IDOMParser_v1 * <a class="code" href="classAdobeXMPCore_1_1IDOMParser__v1.html">pIDOMParser_base</a>;</div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a761f1236009e028ec7c95d4e3fa59b71"> 163</a></span>&#160; typedef const IDOMParser_v1 * <a class="code" href="classAdobeXMPCore_1_1IDOMParser__v1.html">pcIDOMParser_base</a>;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; typedef <a class="code" href="namespaceAdobeXMPCore.html#ab25d27977dd99a041e01a4b8558f08fe">BASE_CLASS</a>( IDOMParser, <a class="code" href="XMPCoreLatestInterfaceVersions_8h.html#a813f82b55a0bb68c1553e8b38592e705">IDOMPARSER_VERSION</a> ) IDOMParser;</div><div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a8b003da6674d32c5c628f1d0e1fa45aa"> 165</a></span>&#160; typedef IDOMParser * <a class="code" href="namespaceAdobeXMPCore.html#a8b003da6674d32c5c628f1d0e1fa45aa">pIDOMParser</a>;</div><div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a6b5fc097880814213414c58da877fea5"> 166</a></span>&#160; typedef const IDOMParser * <a class="code" href="namespaceAdobeXMPCore.html#a6b5fc097880814213414c58da877fea5">pcIDOMParser</a>;</div><div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a737ec082bb4e7f817b45e073337c0893"> 167</a></span>&#160; typedef shared_ptr&lt; IDOMParser &gt; <a class="code" href="namespaceAdobeXMPCore.html#a737ec082bb4e7f817b45e073337c0893">spIDOMParser</a>;</div><div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a587ba854add16d5201c974a3a0f7050c"> 168</a></span>&#160; typedef shared_ptr&lt; const IDOMParser &gt; <a class="code" href="namespaceAdobeXMPCore.html#a587ba854add16d5201c974a3a0f7050c">spcIDOMParser</a>;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; static const <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> <a class="code" href="namespaceAdobeXMPCore.html#aa11deda1f160ba3bfba36558afcaa0ef">kIDOMParserID</a> ( 0x63444f4d50727372 <span class="comment">/* cDOMPrsr */</span> );</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="comment">// IDOMSerializer</span></div><div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a2ab7b53419863c354957c09ce4bbb44c"> 172</a></span>&#160; class <a class="code" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html">IDOMSerializer_v1</a>;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; typedef IDOMSerializer_v1 <a class="code" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html">IDOMSerializer_base</a>;</div><div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#aa83dd7633a221cb189681dff2bbd78a3"> 174</a></span>&#160; typedef IDOMSerializer_v1 * <a class="code" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html">pIDOMSerializer_base</a>;</div><div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a9259d01efe1d26b66d5f60cf79f81296"> 175</a></span>&#160; typedef const IDOMSerializer_v1 * <a class="code" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html">pcIDOMSerializer_base</a>;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; typedef <a class="code" href="namespaceAdobeXMPCore.html#ab25d27977dd99a041e01a4b8558f08fe">BASE_CLASS</a>( IDOMSerializer, <a class="code" href="XMPCoreLatestInterfaceVersions_8h.html#a52d6e44f27f19214b38959683d6cc829">IDOMSERIALIZER_VERSION</a> ) IDOMSerializer;</div><div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a6b414731e356594947b08382866c9fcf"> 177</a></span>&#160; typedef IDOMSerializer * <a class="code" href="namespaceAdobeXMPCore.html#a6b414731e356594947b08382866c9fcf">pIDOMSerializer</a>;</div><div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a1de6f60a0aefc1d42bb656731ff33a9b"> 178</a></span>&#160; typedef const IDOMSerializer * <a class="code" href="namespaceAdobeXMPCore.html#a1de6f60a0aefc1d42bb656731ff33a9b">pcIDOMSerializer</a>;</div><div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#af3525e619e07f58d7eb8247b56ddad21"> 179</a></span>&#160; typedef shared_ptr&lt; IDOMSerializer &gt; <a class="code" href="namespaceAdobeXMPCore.html#af3525e619e07f58d7eb8247b56ddad21">spIDOMSerializer</a>;</div><div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#aee2397438ef33989fb100e5923821eb9"> 180</a></span>&#160; typedef shared_ptr&lt; const IDOMSerializer &gt; <a class="code" href="namespaceAdobeXMPCore.html#aee2397438ef33989fb100e5923821eb9">spcIDOMSerializer</a>;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; static const <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> <a class="code" href="namespaceAdobeXMPCore.html#a16e22df4b5facaffff284ab0104404a9">kIDOMSerializerID</a> ( 0x63444f4d53726c7a <span class="comment">/* cDOMSrlz */</span> );</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="comment">// IDOMImplementationRegistry</span></div><div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#aeab5d78356ee44cbab72a48443d7a026"> 184</a></span>&#160; class <a class="code" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html">IDOMImplementationRegistry_v1</a>;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; typedef IDOMImplementationRegistry_v1 <a class="code" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html">IDOMImplementationRegistry_base</a>;</div><div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#ae600077e4e41eec5ebb90fa7510b8b48"> 186</a></span>&#160; typedef IDOMImplementationRegistry_v1 * <a class="code" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html">pIDOMImplementationRegistry_base</a>;</div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a71d91db5d9f5b30fa16b5790948f11cc"> 187</a></span>&#160; typedef const IDOMImplementationRegistry_v1 * <a class="code" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html">pcIDOMImplementationRegistry_base</a>;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; typedef <a class="code" href="namespaceAdobeXMPCore.html#ab25d27977dd99a041e01a4b8558f08fe">BASE_CLASS</a>( IDOMImplementationRegistry, <a class="code" href="XMPCoreLatestInterfaceVersions_8h.html#aa34dc59f9267eceb6d51235cd778292e">IDOMIMPLEMENTATIONREGISTRY_VERSION</a>) IDOMImplementationRegistry;</div><div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#ae332986668c86f3e5c6bbd57fd5f4cad"> 189</a></span>&#160; typedef IDOMImplementationRegistry * <a class="code" href="namespaceAdobeXMPCore.html#ae332986668c86f3e5c6bbd57fd5f4cad">pIDOMImplementationRegistry</a>;</div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a3971bab010eb9c01783af14c58ccfe54"> 190</a></span>&#160; typedef const IDOMImplementationRegistry * <a class="code" href="namespaceAdobeXMPCore.html#a3971bab010eb9c01783af14c58ccfe54">pcIDOMImplementationRegistry</a>;</div><div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a197acc21ecf883449824a1e87a99586a"> 191</a></span>&#160; typedef shared_ptr&lt; IDOMImplementationRegistry &gt; <a class="code" href="namespaceAdobeXMPCore.html#a197acc21ecf883449824a1e87a99586a">spIDOMImplementationRegistry</a>;</div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a6efe4728a027ee77597fe1a05a6bc30c"> 192</a></span>&#160; typedef shared_ptr&lt; const IDOMImplementationRegistry &gt; <a class="code" href="namespaceAdobeXMPCore.html#a6efe4728a027ee77597fe1a05a6bc30c">spcIDOMImplementationRegistry</a>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; static const <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> <a class="code" href="namespaceAdobeXMPCore.html#a6d787e316880e838d2a03f641a520a5b">kIDOMImplementationRegistryID</a> ( 0x63444f4d52677374 <span class="comment">/* cDOMRgst */</span> );</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="comment">// ICoreObjectFactory</span></div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a77c425a2d9deb50bc0ae4d71232dd98a"> 196</a></span>&#160; class <a class="code" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html">ICoreObjectFactory_v1</a>;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; typedef ICoreObjectFactory_v1 <a class="code" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html">ICoreObjectFactory_base</a>;</div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#ac062cb6e980601a1eedf6085cca9b850"> 198</a></span>&#160; typedef ICoreObjectFactory_v1 * <a class="code" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html">pICoreObjectFactory_base</a>;</div><div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a2ccf603c61b8576fb4a0de760e27f6ba"> 199</a></span>&#160; typedef const ICoreObjectFactory_v1 * <a class="code" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html">pcICoreObjectFactory_base</a>;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; typedef <a class="code" href="namespaceAdobeXMPCore.html#ab25d27977dd99a041e01a4b8558f08fe">BASE_CLASS</a>( ICoreObjectFactory, <a class="code" href="XMPCoreLatestInterfaceVersions_8h.html#a3d28ba37018741b3794789e5edc6e27e">ICOREOBJECTFACTORY_VERSION</a> ) ICoreObjectFactory;</div><div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#ad925e271d292d0b0af1a24342391219d"> 201</a></span>&#160; typedef ICoreObjectFactory * <a class="code" href="namespaceAdobeXMPCore.html#ad925e271d292d0b0af1a24342391219d">pICoreObjectFactory</a>;</div><div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a55e6a583f61b00819b7034f9dd2243f9"> 202</a></span>&#160; typedef const ICoreObjectFactory * <a class="code" href="namespaceAdobeXMPCore.html#a55e6a583f61b00819b7034f9dd2243f9">pcICoreObjectFactory</a>;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; static const <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> <a class="code" href="namespaceAdobeXMPCore.html#a30bb255921760813b83dfb94449051dd">kICoreObjectFactoryID</a> ( 0x634f626a46616374 <span class="comment">/* cObjFact */</span> );</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="comment">// ICoreConfigurationManager</span></div><div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a51c59c2b14cae80da8b1fa5dfa2f4732"> 206</a></span>&#160; class <a class="code" href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html">ICoreConfigurationManager_v1</a>;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; typedef ICoreConfigurationManager_v1 <a class="code" href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html">ICoreConfigurationManager_base</a>;</div><div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a55c34a6f458c74682e542edd2a258686"> 208</a></span>&#160; typedef ICoreConfigurationManager_v1 * <a class="code" href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html">pICoreConfigurationManager_base</a>;</div><div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a748a32416e42b563251d682d49535fb8"> 209</a></span>&#160; typedef const ICoreConfigurationManager_v1 * <a class="code" href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html">pcICoreConfigurationManager_base</a>;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; typedef <a class="code" href="namespaceAdobeXMPCore.html#ab25d27977dd99a041e01a4b8558f08fe">BASE_CLASS</a>( ICoreConfigurationManager, <a class="code" href="XMPCoreLatestInterfaceVersions_8h.html#adf7818c7264e7a80b1b3c5a5b283c47c">ICORECONFIGURATIONMANAGER_VERSION</a> ) ICoreConfigurationManager;</div><div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a0476368bde6f3c6e43e3659ae092f6e1"> 211</a></span>&#160; typedef ICoreConfigurationManager * <a class="code" href="namespaceAdobeXMPCore.html#a0476368bde6f3c6e43e3659ae092f6e1">pICoreConfigurationManager</a>;</div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a691bc74f235854166554f597f777bb5f"> 212</a></span>&#160; typedef const ICoreConfigurationManager * <a class="code" href="namespaceAdobeXMPCore.html#a691bc74f235854166554f597f777bb5f">pcICoreConfigurationManager</a>;</div><div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a123c6e847d41233c9e4ba6c64a650c7f"> 213</a></span>&#160; typedef shared_ptr&lt; ICoreConfigurationManager &gt; <a class="code" href="namespaceAdobeXMPCore.html#a123c6e847d41233c9e4ba6c64a650c7f">spICoreConfigurationManager</a>;</div><div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore.html#a885f02b2d6de4b5403445eb74e5e2ce6"> 214</a></span>&#160; typedef shared_ptr&lt; const ICoreConfigurationManager &gt; <a class="code" href="namespaceAdobeXMPCore.html#a885f02b2d6de4b5403445eb74e5e2ce6">spcICoreConfigurationManager</a>; </div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; static const <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> <a class="code" href="namespaceAdobeXMPCore.html#a1fb39caa1c8eeed351b0fca6eca60577">kICoreConfigurationManagerID</a> ( 0x63436f6e664d6772 <span class="comment">/* cConfMgr */</span> );</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;}</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore__Int.html"> 219</a></span>&#160;namespace <a class="code" href="namespaceAdobeXMPCore__Int.html">AdobeXMPCore_Int</a> {</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="comment">// INameSpacePrefixMap_I</span></div><div class="line"><a name="l00222"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore__Int.html#a0665746b848a075cc4aaf72f553cea95"> 222</a></span>&#160; <span class="keyword">class </span>INameSpacePrefixMap_I;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keyword">typedef</span> INameSpacePrefixMap_I * <a class="code" href="namespaceAdobeXMPCore__Int.html#a0665746b848a075cc4aaf72f553cea95">pINameSpacePrefixMap_I</a>;</div><div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore__Int.html#ab7edb8a8ca91f8397965cf85502c2043"> 224</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">const</span> INameSpacePrefixMap_I * <a class="code" href="namespaceAdobeXMPCore__Int.html#ab7edb8a8ca91f8397965cf85502c2043">pcINameSpacePrefixMap_I</a>;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="comment">// IPathSegment_I</span></div><div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore__Int.html#a7b86a8447002d8c63c837cffda64dd2a"> 227</a></span>&#160; <span class="keyword">class </span>IPathSegment_I;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keyword">typedef</span> IPathSegment_I * <a class="code" href="namespaceAdobeXMPCore__Int.html#a7b86a8447002d8c63c837cffda64dd2a">pIPathSegment_I</a>;</div><div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore__Int.html#a8c2801e50baa3f7979aa4a31225bc25d"> 229</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">const</span> IPathSegment_I * <a class="code" href="namespaceAdobeXMPCore__Int.html#a8c2801e50baa3f7979aa4a31225bc25d">pcIPathSegment_I</a>;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="comment">// IPath_I</span></div><div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore__Int.html#ac72d014801c316df78e38687d0c11aa7"> 232</a></span>&#160; <span class="keyword">class </span>IPath_I;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keyword">typedef</span> IPath_I * <a class="code" href="namespaceAdobeXMPCore__Int.html#ac72d014801c316df78e38687d0c11aa7">pIPath_I</a>;</div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore__Int.html#aa917512a62ab131edf95fab4e6ba7067"> 234</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">const</span> IPath_I * <a class="code" href="namespaceAdobeXMPCore__Int.html#aa917512a62ab131edf95fab4e6ba7067">pcIPath_I</a>;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="comment">// INode_I</span></div><div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore__Int.html#a7ab22fbbd637098e7e0db48036864228"> 237</a></span>&#160; <span class="keyword">class </span>INode_I;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keyword">typedef</span> INode_I * <a class="code" href="namespaceAdobeXMPCore__Int.html#a7ab22fbbd637098e7e0db48036864228">pINode_I</a>;</div><div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore__Int.html#a09decb910c24c7929d609f1e29ca16b1"> 239</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">const</span> INode_I * <a class="code" href="namespaceAdobeXMPCore__Int.html#a09decb910c24c7929d609f1e29ca16b1">pcINode_I</a>;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="comment">// ISimpleNode_I</span></div><div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore__Int.html#a9b914b7e3bafee8e830a982810ed2191"> 242</a></span>&#160; <span class="keyword">class </span>ISimpleNode_I;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keyword">typedef</span> ISimpleNode_I * <a class="code" href="namespaceAdobeXMPCore__Int.html#a9b914b7e3bafee8e830a982810ed2191">pISimpleNode_I</a>;</div><div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore__Int.html#a0de0f06ece9bff0c77df3e519af9f506"> 244</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">const</span> ISimpleNode_I * <a class="code" href="namespaceAdobeXMPCore__Int.html#a0de0f06ece9bff0c77df3e519af9f506">pcISimpleNode_I</a>;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="comment">// ICompositeNode_I</span></div><div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore__Int.html#a88df781b3af9dc7dfe7cb967b6e9b440"> 247</a></span>&#160; <span class="keyword">class </span>ICompositeNode_I;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keyword">typedef</span> ICompositeNode_I * <a class="code" href="namespaceAdobeXMPCore__Int.html#a88df781b3af9dc7dfe7cb967b6e9b440">pICompositeNode_I</a>;</div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore__Int.html#aa1ac753eb7735e19c3f1a2a21d02a047"> 249</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">const</span> ICompositeNode_I * <a class="code" href="namespaceAdobeXMPCore__Int.html#aa1ac753eb7735e19c3f1a2a21d02a047">pcICompositeNode_I</a>;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="comment">// IStructureNode_I</span></div><div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore__Int.html#a4d4375869e320dc1596a9d62a4030b05"> 252</a></span>&#160; <span class="keyword">class </span>IStructureNode_I;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keyword">typedef</span> IStructureNode_I * <a class="code" href="namespaceAdobeXMPCore__Int.html#a4d4375869e320dc1596a9d62a4030b05">pIStructureNode_I</a>;</div><div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore__Int.html#a85d314eae1eef235e7c698c5c84bdda1"> 254</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">const</span> IStructureNode_I * <a class="code" href="namespaceAdobeXMPCore__Int.html#a85d314eae1eef235e7c698c5c84bdda1">pcIStructureNode_I</a>;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="comment">// IArrayNode_I</span></div><div class="line"><a name="l00257"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore__Int.html#af2a081973401c42b5772dc9faec58a58"> 257</a></span>&#160; <span class="keyword">class </span>IArrayNode_I;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keyword">typedef</span> IArrayNode_I * <a class="code" href="namespaceAdobeXMPCore__Int.html#af2a081973401c42b5772dc9faec58a58">pIArrayNode_I</a>;</div><div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore__Int.html#ad705150e811fbc6ff116e850c444fc2d"> 259</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">const</span> IArrayNode_I * <a class="code" href="namespaceAdobeXMPCore__Int.html#ad705150e811fbc6ff116e850c444fc2d">pcIArrayNode_I</a>;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="comment">// INodeIterator_I</span></div><div class="line"><a name="l00262"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore__Int.html#a71dcb1468c552abdd9fb1666cadc6600"> 262</a></span>&#160; <span class="keyword">class </span>INodeIterator_I;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keyword">typedef</span> INodeIterator_I * <a class="code" href="namespaceAdobeXMPCore__Int.html#a71dcb1468c552abdd9fb1666cadc6600">pINodeIterator_I</a>;</div><div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore__Int.html#a9d8ff928f0b3e120916451e57b1b05bb"> 264</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">const</span> INodeIterator_I * <a class="code" href="namespaceAdobeXMPCore__Int.html#a9d8ff928f0b3e120916451e57b1b05bb">pcINodeIterator_I</a>;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="comment">// IMetadata_I</span></div><div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore__Int.html#a70359e8aaa387b24879f1510ac1c4725"> 267</a></span>&#160; <span class="keyword">class </span>IMetadata_I;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keyword">typedef</span> IMetadata_I * <a class="code" href="namespaceAdobeXMPCore__Int.html#a70359e8aaa387b24879f1510ac1c4725">pIMetadata_I</a>;</div><div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore__Int.html#abf85881909a28303736ad48039524d73"> 269</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">const</span> IMetadata_I * <a class="code" href="namespaceAdobeXMPCore__Int.html#abf85881909a28303736ad48039524d73">pcIMetadata_I</a>;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="comment">// IClientDOMParser_I</span></div><div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore__Int.html#a5c9e417017018f36cdbfdbcaa8cd0585"> 272</a></span>&#160; <span class="keyword">class </span>IClientDOMParser_I;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keyword">typedef</span> IClientDOMParser_I * <a class="code" href="namespaceAdobeXMPCore__Int.html#a5c9e417017018f36cdbfdbcaa8cd0585">pIClientDOMParser_I</a>;</div><div class="line"><a name="l00274"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore__Int.html#a3c5ae6e52bf994fc05ed79ca9c58aae0"> 274</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">const</span> IClientDOMParser_I * <a class="code" href="namespaceAdobeXMPCore__Int.html#a3c5ae6e52bf994fc05ed79ca9c58aae0">pcIClientDOMParser_I</a>;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="comment">// IClientDOMSerializer_I</span></div><div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore__Int.html#a9807c050f5244e2cf017e5f247d22473"> 277</a></span>&#160; <span class="keyword">class </span>IClientDOMSerializer_I;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keyword">typedef</span> IClientDOMSerializer_I * <a class="code" href="namespaceAdobeXMPCore__Int.html#a9807c050f5244e2cf017e5f247d22473">pIClientDOMSerializer_I</a>;</div><div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore__Int.html#a786137be71601c8a876f6798ba798eea"> 279</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">const</span> IClientDOMSerializer_I * <a class="code" href="namespaceAdobeXMPCore__Int.html#a786137be71601c8a876f6798ba798eea">pcIClientDOMSerializer_I</a>;</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="comment">// IDOMParser_I</span></div><div class="line"><a name="l00282"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore__Int.html#a4dad9e02be4a3efae9ea99e5f03ae11e"> 282</a></span>&#160; <span class="keyword">class </span>IDOMParser_I;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keyword">typedef</span> IDOMParser_I * <a class="code" href="namespaceAdobeXMPCore__Int.html#a4dad9e02be4a3efae9ea99e5f03ae11e">pIDOMParser_I</a>;</div><div class="line"><a name="l00284"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore__Int.html#a3a6d0893476eb4ce3713ca88e5c80b4e"> 284</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">const</span> IDOMParser_I * <a class="code" href="namespaceAdobeXMPCore__Int.html#a3a6d0893476eb4ce3713ca88e5c80b4e">pcIDOMParser_I</a>;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="comment">// IDOMSerializer_I</span></div><div class="line"><a name="l00287"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore__Int.html#a1bbf04f53ef3da6e5e12f535679bb177"> 287</a></span>&#160; <span class="keyword">class </span>IDOMSerializer_I;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keyword">typedef</span> IDOMSerializer_I * <a class="code" href="namespaceAdobeXMPCore__Int.html#a1bbf04f53ef3da6e5e12f535679bb177">pIDOMSerializer_I</a>;</div><div class="line"><a name="l00289"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore__Int.html#a771229361d508f6fc0d427803543d38b"> 289</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">const</span> IDOMSerializer_I * <a class="code" href="namespaceAdobeXMPCore__Int.html#a771229361d508f6fc0d427803543d38b">pcIDOMSerializer_I</a>;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="comment">// IDOMImplementationRegistry_I</span></div><div class="line"><a name="l00292"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore__Int.html#ad26aadc3f0926468c34c02cc1a0f1dbd"> 292</a></span>&#160; <span class="keyword">class </span>IDOMImplementationRegistry_I;</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keyword">typedef</span> IDOMImplementationRegistry_I * <a class="code" href="namespaceAdobeXMPCore__Int.html#ad26aadc3f0926468c34c02cc1a0f1dbd">pIDOMImplementationRegistry_I</a>;</div><div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore__Int.html#ae7c82f1920d2cbe1956fc5c43d0b10e2"> 294</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">const</span> IDOMImplementationRegistry_I * <a class="code" href="namespaceAdobeXMPCore__Int.html#ae7c82f1920d2cbe1956fc5c43d0b10e2">pcIDOMImplementationRegistry_I</a>;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="comment">// ICoreObjectFactory_I</span></div><div class="line"><a name="l00297"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore__Int.html#ad445bf512b4b3179b131b0a7dec31d86"> 297</a></span>&#160; <span class="keyword">class </span>ICoreObjectFactory_I;</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keyword">typedef</span> ICoreObjectFactory_I * <a class="code" href="namespaceAdobeXMPCore__Int.html#ad445bf512b4b3179b131b0a7dec31d86">pICoreObjectFactory_I</a>;</div><div class="line"><a name="l00299"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore__Int.html#ae32d6c403c99fe665bbeff4483a7b144"> 299</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">const</span> ICoreObjectFactory_I * <a class="code" href="namespaceAdobeXMPCore__Int.html#ae32d6c403c99fe665bbeff4483a7b144">pcICoreObjectFactory_I</a>;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="comment">// ICoreConfigurationManager_I</span></div><div class="line"><a name="l00302"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore__Int.html#a643dfc0500b39ea6d5a81c187fe0e9bc"> 302</a></span>&#160; <span class="keyword">class </span>ICoreConfigurationManager_I;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keyword">typedef</span> ICoreConfigurationManager_I * <a class="code" href="namespaceAdobeXMPCore__Int.html#a643dfc0500b39ea6d5a81c187fe0e9bc">pICoreConfigurationManager_I</a>;</div><div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="namespaceAdobeXMPCore__Int.html#ae995733eb74953fd4e8cafe373236938"> 304</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">const</span> ICoreConfigurationManager_I * <a class="code" href="namespaceAdobeXMPCore__Int.html#ae995733eb74953fd4e8cafe373236938">pcICoreConfigurationManager_I</a>;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;}</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<span class="preprocessor">#endif // XMPCoreFwdDeclarations_h__</span></div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;</div><div class="ttc" id="namespaceAdobeXMPCommon_html_aea1d692da07b844d1f642b47ea6a91bd"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">AdobeXMPCommon::uint64</a></div><div class="ttdeci">XMP_Uns64 uint64</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00142">XMPCommonDefines.h:142</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_afcc8116b5f4020c02bc96bd91a4d5235"><div class="ttname"><a href="namespaceAdobeXMPCore.html#afcc8116b5f4020c02bc96bd91a4d5235">AdobeXMPCore::pIPathSegment</a></div><div class="ttdeci">IPathSegment * pIPathSegment</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00039">XMPCoreFwdDeclarations.h:39</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aa11deda1f160ba3bfba36558afcaa0ef"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aa11deda1f160ba3bfba36558afcaa0ef">AdobeXMPCore::kIDOMParserID</a></div><div class="ttdeci">static const uint64 kIDOMParserID(0x63444f4d50727372)</div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a6d787e316880e838d2a03f641a520a5b"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a6d787e316880e838d2a03f641a520a5b">AdobeXMPCore::kIDOMImplementationRegistryID</a></div><div class="ttdeci">static const uint64 kIDOMImplementationRegistryID(0x63444f4d52677374)</div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a587ba854add16d5201c974a3a0f7050c"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a587ba854add16d5201c974a3a0f7050c">AdobeXMPCore::spcIDOMParser</a></div><div class="ttdeci">shared_ptr&lt; const IDOMParser &gt; spcIDOMParser</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00168">XMPCoreFwdDeclarations.h:168</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_a5c9e417017018f36cdbfdbcaa8cd0585"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#a5c9e417017018f36cdbfdbcaa8cd0585">AdobeXMPCore_Int::pIClientDOMParser_I</a></div><div class="ttdeci">IClientDOMParser_I * pIClientDOMParser_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00272">XMPCoreFwdDeclarations.h:272</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_a0de0f06ece9bff0c77df3e519af9f506"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#a0de0f06ece9bff0c77df3e519af9f506">AdobeXMPCore_Int::pcISimpleNode_I</a></div><div class="ttdeci">const ISimpleNode_I * pcISimpleNode_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00244">XMPCoreFwdDeclarations.h:244</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a7c98739d62fca879db910ac0fca82c3c"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a7c98739d62fca879db910ac0fca82c3c">AdobeXMPCore::spcICompositeNode</a></div><div class="ttdeci">shared_ptr&lt; const ICompositeNode &gt; spcICompositeNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00090">XMPCoreFwdDeclarations.h:90</a></div></div>
+<div class="ttc" id="XMPCoreLatestInterfaceVersions_8h_html_adf7818c7264e7a80b1b3c5a5b283c47c"><div class="ttname"><a href="XMPCoreLatestInterfaceVersions_8h.html#adf7818c7264e7a80b1b3c5a5b283c47c">ICORECONFIGURATIONMANAGER_VERSION</a></div><div class="ttdeci">#define ICORECONFIGURATIONMANAGER_VERSION</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreLatestInterfaceVersions_8h_source.html#l00088">XMPCoreLatestInterfaceVersions.h:88</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a865ec7a2af5304ec42d443da038ae5b7"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a865ec7a2af5304ec42d443da038ae5b7">AdobeXMPCore::kIArrayNodeID</a></div><div class="ttdeci">static const uint64 kIArrayNodeID(0x634172724e6f6465)</div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_a3a6d0893476eb4ce3713ca88e5c80b4e"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#a3a6d0893476eb4ce3713ca88e5c80b4e">AdobeXMPCore_Int::pcIDOMParser_I</a></div><div class="ttdeci">const IDOMParser_I * pcIDOMParser_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00284">XMPCoreFwdDeclarations.h:284</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a634afe8da11f5cea93b0f07e8270da5f"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a634afe8da11f5cea93b0f07e8270da5f">AdobeXMPCore::pcINodeIterator</a></div><div class="ttdeci">const INodeIterator * pcINodeIterator</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00124">XMPCoreFwdDeclarations.h:124</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ab17b1221c559007c5fbc73cf2c555c6c"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ab17b1221c559007c5fbc73cf2c555c6c">AdobeXMPCore::spINameSpacePrefixMap</a></div><div class="ttdeci">shared_ptr&lt; INameSpacePrefixMap &gt; spINameSpacePrefixMap</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00029">XMPCoreFwdDeclarations.h:29</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_acfcbb43bd0f659f554877c4f9dd7d459"><div class="ttname"><a href="namespaceAdobeXMPCore.html#acfcbb43bd0f659f554877c4f9dd7d459">AdobeXMPCore::spICompositeNode</a></div><div class="ttdeci">shared_ptr&lt; ICompositeNode &gt; spICompositeNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00089">XMPCoreFwdDeclarations.h:89</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_a9807c050f5244e2cf017e5f247d22473"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#a9807c050f5244e2cf017e5f247d22473">AdobeXMPCore_Int::pIClientDOMSerializer_I</a></div><div class="ttdeci">IClientDOMSerializer_I * pIClientDOMSerializer_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00277">XMPCoreFwdDeclarations.h:277</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a5386a735d9eb66d5859e4657dfeebb7c"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a5386a735d9eb66d5859e4657dfeebb7c">AdobeXMPCore::spINodeIterator</a></div><div class="ttdeci">shared_ptr&lt; INodeIterator &gt; spINodeIterator</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00125">XMPCoreFwdDeclarations.h:125</a></div></div>
+<div class="ttc" id="XMPCoreLatestInterfaceVersions_8h_html_aa34dc59f9267eceb6d51235cd778292e"><div class="ttname"><a href="XMPCoreLatestInterfaceVersions_8h.html#aa34dc59f9267eceb6d51235cd778292e">IDOMIMPLEMENTATIONREGISTRY_VERSION</a></div><div class="ttdeci">#define IDOMIMPLEMENTATIONREGISTRY_VERSION</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreLatestInterfaceVersions_8h_source.html#l00080">XMPCoreLatestInterfaceVersions.h:80</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a123c6e847d41233c9e4ba6c64a650c7f"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a123c6e847d41233c9e4ba6c64a650c7f">AdobeXMPCore::spICoreConfigurationManager</a></div><div class="ttdeci">shared_ptr&lt; ICoreConfigurationManager &gt; spICoreConfigurationManager</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00213">XMPCoreFwdDeclarations.h:213</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aef05040bb5475b170f4816511f0655d0"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aef05040bb5475b170f4816511f0655d0">AdobeXMPCore::pICompositeNode</a></div><div class="ttdeci">ICompositeNode * pICompositeNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00087">XMPCoreFwdDeclarations.h:87</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_abc833d7b10347a44a303b973337cf536"><div class="ttname"><a href="namespaceAdobeXMPCore.html#abc833d7b10347a44a303b973337cf536">AdobeXMPCore::pINode</a></div><div class="ttdeci">INode * pINode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00063">XMPCoreFwdDeclarations.h:63</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IClientDOMParser__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1IClientDOMParser__v1.html">AdobeXMPCore::IClientDOMParser_v1</a></div><div class="ttdoc">Version 1 of the interface that supports parsing by the client supplied parser of the XMP Data Model...</div><div class="ttdef"><b>Definition:</b> <a href="IClientDOMParser_8h_source.html#l00022">IClientDOMParser.h:22</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_a7b86a8447002d8c63c837cffda64dd2a"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#a7b86a8447002d8c63c837cffda64dd2a">AdobeXMPCore_Int::pIPathSegment_I</a></div><div class="ttdeci">IPathSegment_I * pIPathSegment_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00227">XMPCoreFwdDeclarations.h:227</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_a71dcb1468c552abdd9fb1666cadc6600"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#a71dcb1468c552abdd9fb1666cadc6600">AdobeXMPCore_Int::pINodeIterator_I</a></div><div class="ttdeci">INodeIterator_I * pINodeIterator_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00262">XMPCoreFwdDeclarations.h:262</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a7c13887bb991ed5707ebae28d26543b1"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a7c13887bb991ed5707ebae28d26543b1">AdobeXMPCore::pINameSpacePrefixMap</a></div><div class="ttdeci">INameSpacePrefixMap * pINameSpacePrefixMap</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00027">XMPCoreFwdDeclarations.h:27</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1ISimpleNode__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1ISimpleNode__v1.html">AdobeXMPCore::ISimpleNode_v1</a></div><div class="ttdoc">Version1 of the interface that represents a Simple Property Node of XMP DOM. </div><div class="ttdef"><b>Definition:</b> <a href="ISimpleNode_8h_source.html#l00023">ISimpleNode.h:23</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_a4d4375869e320dc1596a9d62a4030b05"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#a4d4375869e320dc1596a9d62a4030b05">AdobeXMPCore_Int::pIStructureNode_I</a></div><div class="ttdeci">IStructureNode_I * pIStructureNode_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00252">XMPCoreFwdDeclarations.h:252</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ab2c77e55a81c018160035cea22f49a1a"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ab2c77e55a81c018160035cea22f49a1a">AdobeXMPCore::pcINode</a></div><div class="ttdeci">const INode * pcINode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00064">XMPCoreFwdDeclarations.h:64</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_a09decb910c24c7929d609f1e29ca16b1"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#a09decb910c24c7929d609f1e29ca16b1">AdobeXMPCore_Int::pcINode_I</a></div><div class="ttdeci">const INode_I * pcINode_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00239">XMPCoreFwdDeclarations.h:239</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a0f163418e9969110fdf767b0092a08cd"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a0f163418e9969110fdf767b0092a08cd">AdobeXMPCore::pIArrayNode</a></div><div class="ttdeci">IArrayNode * pIArrayNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00111">XMPCoreFwdDeclarations.h:111</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_ae32d6c403c99fe665bbeff4483a7b144"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#ae32d6c403c99fe665bbeff4483a7b144">AdobeXMPCore_Int::pcICoreObjectFactory_I</a></div><div class="ttdeci">const ICoreObjectFactory_I * pcICoreObjectFactory_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00299">XMPCoreFwdDeclarations.h:299</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_a786137be71601c8a876f6798ba798eea"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#a786137be71601c8a876f6798ba798eea">AdobeXMPCore_Int::pcIClientDOMSerializer_I</a></div><div class="ttdeci">const IClientDOMSerializer_I * pcIClientDOMSerializer_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00279">XMPCoreFwdDeclarations.h:279</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IClientDOMSerializer__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html">AdobeXMPCore::IClientDOMSerializer_v1</a></div><div class="ttdoc">Version 1 of the interface that supports serializing by the client supplied serializer of the XMP Dat...</div><div class="ttdef"><b>Definition:</b> <a href="IClientDOMSerializer_8h_source.html#l00025">IClientDOMSerializer.h:25</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_afb1db1e3afd3cb409aab3c32435b506b"><div class="ttname"><a href="namespaceAdobeXMPCore.html#afb1db1e3afd3cb409aab3c32435b506b">AdobeXMPCore::kINodeIteratorID</a></div><div class="ttdeci">static const uint64 kINodeIteratorID(0x634e6f6465497420)</div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_a70359e8aaa387b24879f1510ac1c4725"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#a70359e8aaa387b24879f1510ac1c4725">AdobeXMPCore_Int::pIMetadata_I</a></div><div class="ttdeci">IMetadata_I * pIMetadata_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00267">XMPCoreFwdDeclarations.h:267</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_a1bbf04f53ef3da6e5e12f535679bb177"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#a1bbf04f53ef3da6e5e12f535679bb177">AdobeXMPCore_Int::pIDOMSerializer_I</a></div><div class="ttdeci">IDOMSerializer_I * pIDOMSerializer_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00287">XMPCoreFwdDeclarations.h:287</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ab5d69f05635d466dcd976f8b2b8e8617"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ab5d69f05635d466dcd976f8b2b8e8617">AdobeXMPCore::pIClientDOMParser</a></div><div class="ttdeci">IClientDOMParser * pIClientDOMParser</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00147">XMPCoreFwdDeclarations.h:147</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_a88df781b3af9dc7dfe7cb967b6e9b440"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#a88df781b3af9dc7dfe7cb967b6e9b440">AdobeXMPCore_Int::pICompositeNode_I</a></div><div class="ttdeci">ICompositeNode_I * pICompositeNode_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00247">XMPCoreFwdDeclarations.h:247</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_a9b914b7e3bafee8e830a982810ed2191"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#a9b914b7e3bafee8e830a982810ed2191">AdobeXMPCore_Int::pISimpleNode_I</a></div><div class="ttdeci">ISimpleNode_I * pISimpleNode_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00242">XMPCoreFwdDeclarations.h:242</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a98ce40154ef1c1d92f2077c8211f2a9c"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a98ce40154ef1c1d92f2077c8211f2a9c">AdobeXMPCore::spcIPathSegment</a></div><div class="ttdeci">shared_ptr&lt; const IPathSegment &gt; spcIPathSegment</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00042">XMPCoreFwdDeclarations.h:42</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_a3c5ae6e52bf994fc05ed79ca9c58aae0"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#a3c5ae6e52bf994fc05ed79ca9c58aae0">AdobeXMPCore_Int::pcIClientDOMParser_I</a></div><div class="ttdeci">const IClientDOMParser_I * pcIClientDOMParser_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00274">XMPCoreFwdDeclarations.h:274</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ad7423726463e791584bdeeb0a699c2d6"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ad7423726463e791584bdeeb0a699c2d6">AdobeXMPCore::pINameSpacePrefixMap_base</a></div><div class="ttdeci">INameSpacePrefixMap_v1 * pINameSpacePrefixMap_base</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00024">XMPCoreFwdDeclarations.h:24</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_ac72d014801c316df78e38687d0c11aa7"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#ac72d014801c316df78e38687d0c11aa7">AdobeXMPCore_Int::pIPath_I</a></div><div class="ttdeci">IPath_I * pIPath_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00232">XMPCoreFwdDeclarations.h:232</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a459a371e2e25b93998a16921e3536bc7"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a459a371e2e25b93998a16921e3536bc7">AdobeXMPCore::INameSpacePrefixMap_base</a></div><div class="ttdeci">INameSpacePrefixMap_v1 INameSpacePrefixMap_base</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00022">XMPCoreFwdDeclarations.h:22</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a901745dcadcfc4387450dd28aaa2d490"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a901745dcadcfc4387450dd28aaa2d490">AdobeXMPCore::pIClientDOMSerializer</a></div><div class="ttdeci">IClientDOMSerializer * pIClientDOMSerializer</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00156">XMPCoreFwdDeclarations.h:156</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a22f9e572045a61aa3cfc629a0d877d72"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a22f9e572045a61aa3cfc629a0d877d72">AdobeXMPCore::spcINameSpacePrefixMap</a></div><div class="ttdeci">shared_ptr&lt; const INameSpacePrefixMap &gt; spcINameSpacePrefixMap</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00030">XMPCoreFwdDeclarations.h:30</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aa542fbf0ea812dbe340cd7837d68ef9f"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aa542fbf0ea812dbe340cd7837d68ef9f">AdobeXMPCore::pcIMetadata</a></div><div class="ttdeci">const IMetadata * pcIMetadata</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00136">XMPCoreFwdDeclarations.h:136</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1ICoreConfigurationManager__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html">AdobeXMPCore::ICoreConfigurationManager_v1</a></div><div class="ttdoc">Version1 of the interface that represents configuration settings controllable by the client...</div><div class="ttdef"><b>Definition:</b> <a href="ICoreConfigurationManager_8h_source.html#l00022">ICoreConfigurationManager.h:22</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a6b5fc097880814213414c58da877fea5"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a6b5fc097880814213414c58da877fea5">AdobeXMPCore::pcIDOMParser</a></div><div class="ttdeci">const IDOMParser * pcIDOMParser</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00166">XMPCoreFwdDeclarations.h:166</a></div></div>
+<div class="ttc" id="XMPCoreLatestInterfaceVersions_8h_html_aa928953eda71cda88699483e1fca4526"><div class="ttname"><a href="XMPCoreLatestInterfaceVersions_8h.html#aa928953eda71cda88699483e1fca4526">ICLIENTDOMSERIALIZER_VERSION</a></div><div class="ttdeci">#define ICLIENTDOMSERIALIZER_VERSION</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreLatestInterfaceVersions_8h_source.html#l00068">XMPCoreLatestInterfaceVersions.h:68</a></div></div>
+<div class="ttc" id="XMPCoreLatestInterfaceVersions_8h_html_a42cb9bdb3894ac77ff614349e5c371e5"><div class="ttname"><a href="XMPCoreLatestInterfaceVersions_8h.html#a42cb9bdb3894ac77ff614349e5c371e5">IPATHSEGMENT_VERSION</a></div><div class="ttdeci">#define IPATHSEGMENT_VERSION</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreLatestInterfaceVersions_8h_source.html#l00028">XMPCoreLatestInterfaceVersions.h:28</a></div></div>
+<div class="ttc" id="XMPCommonFwdDeclarations_8h_html"><div class="ttname"><a href="XMPCommonFwdDeclarations_8h.html">XMPCommonFwdDeclarations.h</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ab20ecb8d094c1dd81cb278370b746343"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">AdobeXMPCore::spISimpleNode</a></div><div class="ttdeci">shared_ptr&lt; ISimpleNode &gt; spISimpleNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00077">XMPCoreFwdDeclarations.h:77</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_affaedf89b30a42f4aea5bb10619d1801"><div class="ttname"><a href="namespaceAdobeXMPCore.html#affaedf89b30a42f4aea5bb10619d1801">AdobeXMPCore::pcIClientDOMParser</a></div><div class="ttdeci">const IClientDOMParser * pcIClientDOMParser</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00148">XMPCoreFwdDeclarations.h:148</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a099de3a79749ee161daf59313861702e"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a099de3a79749ee161daf59313861702e">AdobeXMPCore::kIStructureNodeID</a></div><div class="ttdeci">static const uint64 kIStructureNodeID(0x635374724e6f6465)</div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ab25d27977dd99a041e01a4b8558f08fe"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ab25d27977dd99a041e01a4b8558f08fe">AdobeXMPCore::BASE_CLASS</a></div><div class="ttdeci">typedef BASE_CLASS(INameSpacePrefixMap, INAMESPACEPREFIXMAP_VERSION) INameSpacePrefixMap</div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ab423c366f29043e79694f805bceddb56"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ab423c366f29043e79694f805bceddb56">AdobeXMPCore::spcINodeIterator</a></div><div class="ttdeci">shared_ptr&lt; const INodeIterator &gt; spcINodeIterator</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00126">XMPCoreFwdDeclarations.h:126</a></div></div>
+<div class="ttc" id="XMPCoreLatestInterfaceVersions_8h_html_aefe5b8d014bd0f2ca4933a16572b51df"><div class="ttname"><a href="XMPCoreLatestInterfaceVersions_8h.html#aefe5b8d014bd0f2ca4933a16572b51df">ICOMPOSITENODE_VERSION</a></div><div class="ttdeci">#define ICOMPOSITENODE_VERSION</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreLatestInterfaceVersions_8h_source.html#l00048">XMPCoreLatestInterfaceVersions.h:48</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a957c57fcbb47c704fc5c31cf36dcbde7"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">AdobeXMPCore::spIStructureNode</a></div><div class="ttdeci">shared_ptr&lt; IStructureNode &gt; spIStructureNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00101">XMPCoreFwdDeclarations.h:101</a></div></div>
+<div class="ttc" id="XMPCoreLatestInterfaceVersions_8h_html"><div class="ttname"><a href="XMPCoreLatestInterfaceVersions_8h.html">XMPCoreLatestInterfaceVersions.h</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a3971bab010eb9c01783af14c58ccfe54"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a3971bab010eb9c01783af14c58ccfe54">AdobeXMPCore::pcIDOMImplementationRegistry</a></div><div class="ttdeci">const IDOMImplementationRegistry * pcIDOMImplementationRegistry</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00190">XMPCoreFwdDeclarations.h:190</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a0476368bde6f3c6e43e3659ae092f6e1"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a0476368bde6f3c6e43e3659ae092f6e1">AdobeXMPCore::pICoreConfigurationManager</a></div><div class="ttdeci">ICoreConfigurationManager * pICoreConfigurationManager</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00211">XMPCoreFwdDeclarations.h:211</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_af2a081973401c42b5772dc9faec58a58"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#af2a081973401c42b5772dc9faec58a58">AdobeXMPCore_Int::pIArrayNode_I</a></div><div class="ttdeci">IArrayNode_I * pIArrayNode_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00257">XMPCoreFwdDeclarations.h:257</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a663e9a570224c4361f5ab883e32cf460"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a663e9a570224c4361f5ab883e32cf460">AdobeXMPCore::kICompositeNodeID</a></div><div class="ttdeci">static const uint64 kICompositeNodeID(0x63436d704e6f6465)</div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a277f8ceb2e7074edb4ce6c3bc906a71c"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a277f8ceb2e7074edb4ce6c3bc906a71c">AdobeXMPCore::pcIPath</a></div><div class="ttdeci">const IPath * pcIPath</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00052">XMPCoreFwdDeclarations.h:52</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IMetadata__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1IMetadata__v1.html">AdobeXMPCore::IMetadata_v1</a></div><div class="ttdoc">Version1 of the interface that represents the whole xmp metadata for an asset. </div><div class="ttdef"><b>Definition:</b> <a href="IMetadata_8h_source.html#l00024">IMetadata.h:24</a></div></div>
+<div class="ttc" id="XMPCoreLatestInterfaceVersions_8h_html_aff2b1eabe2ac90a68ba3690930494a17"><div class="ttname"><a href="XMPCoreLatestInterfaceVersions_8h.html#aff2b1eabe2ac90a68ba3690930494a17">INODE_VERSION</a></div><div class="ttdeci">#define INODE_VERSION</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreLatestInterfaceVersions_8h_source.html#l00036">XMPCoreLatestInterfaceVersions.h:36</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a1de6f60a0aefc1d42bb656731ff33a9b"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a1de6f60a0aefc1d42bb656731ff33a9b">AdobeXMPCore::pcIDOMSerializer</a></div><div class="ttdeci">const IDOMSerializer * pcIDOMSerializer</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00178">XMPCoreFwdDeclarations.h:178</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a4ea338a9eed923abf6aba47a27926a0f"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">AdobeXMPCore::spcIArrayNode</a></div><div class="ttdeci">shared_ptr&lt; const IArrayNode &gt; spcIArrayNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00114">XMPCoreFwdDeclarations.h:114</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aa54f5ed241da9437ad01c1047a199f56"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aa54f5ed241da9437ad01c1047a199f56">AdobeXMPCore::spIPath</a></div><div class="ttdeci">shared_ptr&lt; IPath &gt; spIPath</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00053">XMPCoreFwdDeclarations.h:53</a></div></div>
+<div class="ttc" id="XMPCoreLatestInterfaceVersions_8h_html_a799da65cf5811707628bb2681a4545ec"><div class="ttname"><a href="XMPCoreLatestInterfaceVersions_8h.html#a799da65cf5811707628bb2681a4545ec">ISIMPLENODE_VERSION</a></div><div class="ttdeci">#define ISIMPLENODE_VERSION</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreLatestInterfaceVersions_8h_source.html#l00044">XMPCoreLatestInterfaceVersions.h:44</a></div></div>
+<div class="ttc" id="XMPCoreLatestInterfaceVersions_8h_html_a28325920d39a80ba79dd3774ce056f45"><div class="ttname"><a href="XMPCoreLatestInterfaceVersions_8h.html#a28325920d39a80ba79dd3774ce056f45">ISTRUCTURENODE_VERSION</a></div><div class="ttdeci">#define ISTRUCTURENODE_VERSION</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreLatestInterfaceVersions_8h_source.html#l00052">XMPCoreLatestInterfaceVersions.h:52</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_a643dfc0500b39ea6d5a81c187fe0e9bc"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#a643dfc0500b39ea6d5a81c187fe0e9bc">AdobeXMPCore_Int::pICoreConfigurationManager_I</a></div><div class="ttdeci">ICoreConfigurationManager_I * pICoreConfigurationManager_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00302">XMPCoreFwdDeclarations.h:302</a></div></div>
+<div class="ttc" id="XMPCoreDefines_8h_html"><div class="ttname"><a href="XMPCoreDefines_8h.html">XMPCoreDefines.h</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html"><div class="ttname"><a href="namespaceAdobeXMPCore.html">AdobeXMPCore</a></div><div class="ttdef"><b>Definition:</b> <a href="IArrayNode_8h_source.html#l00016">IArrayNode.h:16</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></div><div class="ttdoc">Version1 of the interface that serves as a base interface to all types of nodes in the XMP DOM...</div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00026">INode.h:26</a></div></div>
+<div class="ttc" id="XMPCoreLatestInterfaceVersions_8h_html_a1f8464a97acb8671e6cc2a466955d45d"><div class="ttname"><a href="XMPCoreLatestInterfaceVersions_8h.html#a1f8464a97acb8671e6cc2a466955d45d">IARRAYNODE_VERSION</a></div><div class="ttdeci">#define IARRAYNODE_VERSION</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreLatestInterfaceVersions_8h_source.html#l00056">XMPCoreLatestInterfaceVersions.h:56</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INameSpacePrefixMap__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">AdobeXMPCore::INameSpacePrefixMap_v1</a></div><div class="ttdoc">Version1 of the interface that represents map where each entry consists of prefix string as the key a...</div><div class="ttdef"><b>Definition:</b> <a href="INameSpacePrefixMap_8h_source.html#l00026">INameSpacePrefixMap.h:26</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_af3525e619e07f58d7eb8247b56ddad21"><div class="ttname"><a href="namespaceAdobeXMPCore.html#af3525e619e07f58d7eb8247b56ddad21">AdobeXMPCore::spIDOMSerializer</a></div><div class="ttdeci">shared_ptr&lt; IDOMSerializer &gt; spIDOMSerializer</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00179">XMPCoreFwdDeclarations.h:179</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a737ec082bb4e7f817b45e073337c0893"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a737ec082bb4e7f817b45e073337c0893">AdobeXMPCore::spIDOMParser</a></div><div class="ttdeci">shared_ptr&lt; IDOMParser &gt; spIDOMParser</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00167">XMPCoreFwdDeclarations.h:167</a></div></div>
+<div class="ttc" id="XMPCoreLatestInterfaceVersions_8h_html_af7d51c3ccf825fc82fa4a2a6cca26bc8"><div class="ttname"><a href="XMPCoreLatestInterfaceVersions_8h.html#af7d51c3ccf825fc82fa4a2a6cca26bc8">IMETADATA_VERSION</a></div><div class="ttdeci">#define IMETADATA_VERSION</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreLatestInterfaceVersions_8h_source.html#l00060">XMPCoreLatestInterfaceVersions.h:60</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1ICompositeNode__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></div><div class="ttdoc">Version1 of the interface that serves as a base interface to all composite types of nodes in the XMP ...</div><div class="ttdef"><b>Definition:</b> <a href="ICompositeNode_8h_source.html#l00025">ICompositeNode.h:25</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a24e8e82d63d879d77408ce5c7e30c609"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">AdobeXMPCore::spIArrayNode</a></div><div class="ttdeci">shared_ptr&lt; IArrayNode &gt; spIArrayNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00113">XMPCoreFwdDeclarations.h:113</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ad925e271d292d0b0af1a24342391219d"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ad925e271d292d0b0af1a24342391219d">AdobeXMPCore::pICoreObjectFactory</a></div><div class="ttdeci">ICoreObjectFactory * pICoreObjectFactory</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00201">XMPCoreFwdDeclarations.h:201</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_abf85881909a28303736ad48039524d73"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#abf85881909a28303736ad48039524d73">AdobeXMPCore_Int::pcIMetadata_I</a></div><div class="ttdeci">const IMetadata_I * pcIMetadata_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00269">XMPCoreFwdDeclarations.h:269</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_a0665746b848a075cc4aaf72f553cea95"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#a0665746b848a075cc4aaf72f553cea95">AdobeXMPCore_Int::pINameSpacePrefixMap_I</a></div><div class="ttdeci">INameSpacePrefixMap_I * pINameSpacePrefixMap_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00222">XMPCoreFwdDeclarations.h:222</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_ad705150e811fbc6ff116e850c444fc2d"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#ad705150e811fbc6ff116e850c444fc2d">AdobeXMPCore_Int::pcIArrayNode_I</a></div><div class="ttdeci">const IArrayNode_I * pcIArrayNode_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00259">XMPCoreFwdDeclarations.h:259</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a0c1658ecfb260ac950498f17edd5ebd0"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a0c1658ecfb260ac950498f17edd5ebd0">AdobeXMPCore::pIMetadata</a></div><div class="ttdeci">IMetadata * pIMetadata</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00135">XMPCoreFwdDeclarations.h:135</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a1fb39caa1c8eeed351b0fca6eca60577"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a1fb39caa1c8eeed351b0fca6eca60577">AdobeXMPCore::kICoreConfigurationManagerID</a></div><div class="ttdeci">static const uint64 kICoreConfigurationManagerID(0x63436f6e664d6772)</div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IDOMParser__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1IDOMParser__v1.html">AdobeXMPCore::IDOMParser_v1</a></div><div class="ttdoc">Version 1 of the interface that supports parsing of the XMP Data Model. </div><div class="ttdef"><b>Definition:</b> <a href="IDOMParser_8h_source.html#l00024">IDOMParser.h:24</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ae76eb0e35e0e35e5b476b6fecc6e3603"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ae76eb0e35e0e35e5b476b6fecc6e3603">AdobeXMPCore::kINodeID</a></div><div class="ttdeci">static const uint64 kINodeID(0x634e6f6465202020)</div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a885f02b2d6de4b5403445eb74e5e2ce6"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a885f02b2d6de4b5403445eb74e5e2ce6">AdobeXMPCore::spcICoreConfigurationManager</a></div><div class="ttdeci">shared_ptr&lt; const ICoreConfigurationManager &gt; spcICoreConfigurationManager</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00214">XMPCoreFwdDeclarations.h:214</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_aa917512a62ab131edf95fab4e6ba7067"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#aa917512a62ab131edf95fab4e6ba7067">AdobeXMPCore_Int::pcIPath_I</a></div><div class="ttdeci">const IPath_I * pcIPath_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00234">XMPCoreFwdDeclarations.h:234</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_a4dad9e02be4a3efae9ea99e5f03ae11e"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#a4dad9e02be4a3efae9ea99e5f03ae11e">AdobeXMPCore_Int::pIDOMParser_I</a></div><div class="ttdeci">IDOMParser_I * pIDOMParser_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00282">XMPCoreFwdDeclarations.h:282</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IArrayNode__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1IArrayNode__v1.html">AdobeXMPCore::IArrayNode_v1</a></div><div class="ttdoc">Version1 of the interface that represents an Array Node of XMP DOM. </div><div class="ttdef"><b>Definition:</b> <a href="IArrayNode_8h_source.html#l00025">IArrayNode.h:25</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a6efe4728a027ee77597fe1a05a6bc30c"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a6efe4728a027ee77597fe1a05a6bc30c">AdobeXMPCore::spcIDOMImplementationRegistry</a></div><div class="ttdeci">shared_ptr&lt; const IDOMImplementationRegistry &gt; spcIDOMImplementationRegistry</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00192">XMPCoreFwdDeclarations.h:192</a></div></div>
+<div class="ttc" id="XMPCoreLatestInterfaceVersions_8h_html_adc9fb16e479a79e35a9dc58e166fcbad"><div class="ttname"><a href="XMPCoreLatestInterfaceVersions_8h.html#adc9fb16e479a79e35a9dc58e166fcbad">IPATH_VERSION</a></div><div class="ttdeci">#define IPATH_VERSION</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreLatestInterfaceVersions_8h_source.html#l00032">XMPCoreLatestInterfaceVersions.h:32</a></div></div>
+<div class="ttc" id="XMPCoreLatestInterfaceVersions_8h_html_a64636b4e59a6212968ad30494675603e"><div class="ttname"><a href="XMPCoreLatestInterfaceVersions_8h.html#a64636b4e59a6212968ad30494675603e">ICLIENTDOMPARSER_VERSION</a></div><div class="ttdeci">#define ICLIENTDOMPARSER_VERSION</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreLatestInterfaceVersions_8h_source.html#l00064">XMPCoreLatestInterfaceVersions.h:64</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ae332986668c86f3e5c6bbd57fd5f4cad"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ae332986668c86f3e5c6bbd57fd5f4cad">AdobeXMPCore::pIDOMImplementationRegistry</a></div><div class="ttdeci">IDOMImplementationRegistry * pIDOMImplementationRegistry</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00189">XMPCoreFwdDeclarations.h:189</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INodeIterator__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1INodeIterator__v1.html">AdobeXMPCore::INodeIterator_v1</a></div><div class="ttdoc">Interface that represents an iterator over the mutable children of a XMP DOM Node. </div><div class="ttdef"><b>Definition:</b> <a href="INodeIterator_8h_source.html#l00026">INodeIterator.h:26</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a258ec247968bc8e101a087b2f914c95b"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a258ec247968bc8e101a087b2f914c95b">AdobeXMPCore::kISimpleNodeID</a></div><div class="ttdeci">static const uint64 kISimpleNodeID(0x63536d6c4e6f6465)</div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_ae995733eb74953fd4e8cafe373236938"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#ae995733eb74953fd4e8cafe373236938">AdobeXMPCore_Int::pcICoreConfigurationManager_I</a></div><div class="ttdeci">const ICoreConfigurationManager_I * pcICoreConfigurationManager_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00304">XMPCoreFwdDeclarations.h:304</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aa01e44df0f17d2a1d959710ec856261c"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">AdobeXMPCore::spcIPath</a></div><div class="ttdeci">shared_ptr&lt; const IPath &gt; spcIPath</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00054">XMPCoreFwdDeclarations.h:54</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ad877a19389a4ba0dd5ef226470fd7f5b"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ad877a19389a4ba0dd5ef226470fd7f5b">AdobeXMPCore::pcINameSpacePrefixMap_base</a></div><div class="ttdeci">const INameSpacePrefixMap_v1 * pcINameSpacePrefixMap_base</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00025">XMPCoreFwdDeclarations.h:25</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a16e22df4b5facaffff284ab0104404a9"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a16e22df4b5facaffff284ab0104404a9">AdobeXMPCore::kIDOMSerializerID</a></div><div class="ttdeci">static const uint64 kIDOMSerializerID(0x63444f4d53726c7a)</div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_ae7c82f1920d2cbe1956fc5c43d0b10e2"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#ae7c82f1920d2cbe1956fc5c43d0b10e2">AdobeXMPCore_Int::pcIDOMImplementationRegistry_I</a></div><div class="ttdeci">const IDOMImplementationRegistry_I * pcIDOMImplementationRegistry_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00294">XMPCoreFwdDeclarations.h:294</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a169bb4bbf2a32d4201625eca17bde615"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a169bb4bbf2a32d4201625eca17bde615">AdobeXMPCore::kIPathID</a></div><div class="ttdeci">static const uint64 kIPathID(0x6350617468202020)</div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a55e6a583f61b00819b7034f9dd2243f9"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a55e6a583f61b00819b7034f9dd2243f9">AdobeXMPCore::pcICoreObjectFactory</a></div><div class="ttdeci">const ICoreObjectFactory * pcICoreObjectFactory</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00202">XMPCoreFwdDeclarations.h:202</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a4cb671d44948c7505c33431ec12f6c1f"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">AdobeXMPCore::spcISimpleNode</a></div><div class="ttdeci">shared_ptr&lt; const ISimpleNode &gt; spcISimpleNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00078">XMPCoreFwdDeclarations.h:78</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a3c61d7ec18d24b058624ff83657ad886"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a3c61d7ec18d24b058624ff83657ad886">AdobeXMPCore::pcIArrayNode</a></div><div class="ttdeci">const IArrayNode * pcIArrayNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00112">XMPCoreFwdDeclarations.h:112</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ad638e9de1a595aa976f69d3773d46d16"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ad638e9de1a595aa976f69d3773d46d16">AdobeXMPCore::pcIClientDOMSerializer</a></div><div class="ttdeci">const IClientDOMSerializer * pcIClientDOMSerializer</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00157">XMPCoreFwdDeclarations.h:157</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aee2397438ef33989fb100e5923821eb9"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aee2397438ef33989fb100e5923821eb9">AdobeXMPCore::spcIDOMSerializer</a></div><div class="ttdeci">shared_ptr&lt; const IDOMSerializer &gt; spcIDOMSerializer</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00180">XMPCoreFwdDeclarations.h:180</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_a7ab22fbbd637098e7e0db48036864228"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#a7ab22fbbd637098e7e0db48036864228">AdobeXMPCore_Int::pINode_I</a></div><div class="ttdeci">INode_I * pINode_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00237">XMPCoreFwdDeclarations.h:237</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_acff9cacaf46a6c6923117852e63579b6"><div class="ttname"><a href="namespaceAdobeXMPCore.html#acff9cacaf46a6c6923117852e63579b6">AdobeXMPCore::pcISimpleNode</a></div><div class="ttdeci">const ISimpleNode * pcISimpleNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00076">XMPCoreFwdDeclarations.h:76</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a5a920b0717c8a08d3c68ece64a8f815a"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a5a920b0717c8a08d3c68ece64a8f815a">AdobeXMPCore::pcICompositeNode</a></div><div class="ttdeci">const ICompositeNode * pcICompositeNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00088">XMPCoreFwdDeclarations.h:88</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ac973b0e26fb1fdf9146be95ab9f12b1e"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ac973b0e26fb1fdf9146be95ab9f12b1e">AdobeXMPCore::pcINameSpacePrefixMap</a></div><div class="ttdeci">const INameSpacePrefixMap * pcINameSpacePrefixMap</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00028">XMPCoreFwdDeclarations.h:28</a></div></div>
+<div class="ttc" id="XMPCoreLatestInterfaceVersions_8h_html_a52d6e44f27f19214b38959683d6cc829"><div class="ttname"><a href="XMPCoreLatestInterfaceVersions_8h.html#a52d6e44f27f19214b38959683d6cc829">IDOMSERIALIZER_VERSION</a></div><div class="ttdeci">#define IDOMSERIALIZER_VERSION</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreLatestInterfaceVersions_8h_source.html#l00076">XMPCoreLatestInterfaceVersions.h:76</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_abce7d351f3258b3edfb1c96e7d2d4945"><div class="ttname"><a href="namespaceAdobeXMPCore.html#abce7d351f3258b3edfb1c96e7d2d4945">AdobeXMPCore::pIPath</a></div><div class="ttdeci">IPath * pIPath</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00051">XMPCoreFwdDeclarations.h:51</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a691bc74f235854166554f597f777bb5f"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a691bc74f235854166554f597f777bb5f">AdobeXMPCore::pcICoreConfigurationManager</a></div><div class="ttdeci">const ICoreConfigurationManager * pcICoreConfigurationManager</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00212">XMPCoreFwdDeclarations.h:212</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_ab7edb8a8ca91f8397965cf85502c2043"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#ab7edb8a8ca91f8397965cf85502c2043">AdobeXMPCore_Int::pcINameSpacePrefixMap_I</a></div><div class="ttdeci">const INameSpacePrefixMap_I * pcINameSpacePrefixMap_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00224">XMPCoreFwdDeclarations.h:224</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html"><div class="ttname"><a href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a></div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00019">IConfigurable.h:19</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_a771229361d508f6fc0d427803543d38b"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#a771229361d508f6fc0d427803543d38b">AdobeXMPCore_Int::pcIDOMSerializer_I</a></div><div class="ttdeci">const IDOMSerializer_I * pcIDOMSerializer_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00289">XMPCoreFwdDeclarations.h:289</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a197acc21ecf883449824a1e87a99586a"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a197acc21ecf883449824a1e87a99586a">AdobeXMPCore::spIDOMImplementationRegistry</a></div><div class="ttdeci">shared_ptr&lt; IDOMImplementationRegistry &gt; spIDOMImplementationRegistry</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00191">XMPCoreFwdDeclarations.h:191</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a20562f7f885eacd89465270be790c31f"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a20562f7f885eacd89465270be790c31f">AdobeXMPCore::kIPathSegmentID</a></div><div class="ttdeci">static const uint64 kIPathSegmentID(0x6350617468536567)</div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a6ae7c996eea34342b41719bcc4bf766a"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a6ae7c996eea34342b41719bcc4bf766a">AdobeXMPCore::pcIPathSegment</a></div><div class="ttdeci">const IPathSegment * pcIPathSegment</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00040">XMPCoreFwdDeclarations.h:40</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IPath__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1IPath__v1.html">AdobeXMPCore::IPath_v1</a></div><div class="ttdoc">Version1 of the interface that provides an easy iterative description of a specific path into the XMP...</div><div class="ttdef"><b>Definition:</b> <a href="IPath_8h_source.html#l00026">IPath.h:26</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IStructureNode__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1IStructureNode__v1.html">AdobeXMPCore::IStructureNode_v1</a></div><div class="ttdoc">Version1 of the interface that represents a structure Node of XMP DOM. </div><div class="ttdef"><b>Definition:</b> <a href="IStructureNode_8h_source.html#l00023">IStructureNode.h:23</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html">AdobeXMPCore_Int</a></div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00219">XMPCoreFwdDeclarations.h:219</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ac162eebfff7088f633bc0dd401a18862"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ac162eebfff7088f633bc0dd401a18862">AdobeXMPCore::pINodeIterator</a></div><div class="ttdeci">INodeIterator * pINodeIterator</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00123">XMPCoreFwdDeclarations.h:123</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ac7a54801a0cd4ae9441548ccfb1fd608"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ac7a54801a0cd4ae9441548ccfb1fd608">AdobeXMPCore::pIStructureNode</a></div><div class="ttdeci">IStructureNode * pIStructureNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00099">XMPCoreFwdDeclarations.h:99</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_a9d8ff928f0b3e120916451e57b1b05bb"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#a9d8ff928f0b3e120916451e57b1b05bb">AdobeXMPCore_Int::pcINodeIterator_I</a></div><div class="ttdeci">const INodeIterator_I * pcINodeIterator_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00264">XMPCoreFwdDeclarations.h:264</a></div></div>
+<div class="ttc" id="XMPCoreLatestInterfaceVersions_8h_html_a813f82b55a0bb68c1553e8b38592e705"><div class="ttname"><a href="XMPCoreLatestInterfaceVersions_8h.html#a813f82b55a0bb68c1553e8b38592e705">IDOMPARSER_VERSION</a></div><div class="ttdeci">#define IDOMPARSER_VERSION</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreLatestInterfaceVersions_8h_source.html#l00072">XMPCoreLatestInterfaceVersions.h:72</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a7f1de39fd79aeac4402eba73cb1ffe82"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a7f1de39fd79aeac4402eba73cb1ffe82">AdobeXMPCore::spIMetadata</a></div><div class="ttdeci">shared_ptr&lt; IMetadata &gt; spIMetadata</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00137">XMPCoreFwdDeclarations.h:137</a></div></div>
+<div class="ttc" id="XMPCoreLatestInterfaceVersions_8h_html_a3d28ba37018741b3794789e5edc6e27e"><div class="ttname"><a href="XMPCoreLatestInterfaceVersions_8h.html#a3d28ba37018741b3794789e5edc6e27e">ICOREOBJECTFACTORY_VERSION</a></div><div class="ttdeci">#define ICOREOBJECTFACTORY_VERSION</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreLatestInterfaceVersions_8h_source.html#l00084">XMPCoreLatestInterfaceVersions.h:84</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_aa1ac753eb7735e19c3f1a2a21d02a047"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#aa1ac753eb7735e19c3f1a2a21d02a047">AdobeXMPCore_Int::pcICompositeNode_I</a></div><div class="ttdeci">const ICompositeNode_I * pcICompositeNode_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00249">XMPCoreFwdDeclarations.h:249</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_a8c2801e50baa3f7979aa4a31225bc25d"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#a8c2801e50baa3f7979aa4a31225bc25d">AdobeXMPCore_Int::pcIPathSegment_I</a></div><div class="ttdeci">const IPathSegment_I * pcIPathSegment_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00229">XMPCoreFwdDeclarations.h:229</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a30bb255921760813b83dfb94449051dd"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a30bb255921760813b83dfb94449051dd">AdobeXMPCore::kICoreObjectFactoryID</a></div><div class="ttdeci">static const uint64 kICoreObjectFactoryID(0x634f626a46616374)</div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ae266f1d0a72a69dbbad9443f1b4140e6"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ae266f1d0a72a69dbbad9443f1b4140e6">AdobeXMPCore::kIMetadataID</a></div><div class="ttdeci">static const uint64 kIMetadataID(0x634d657461646174)</div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aeec2c711a611cbc3c77ef1a0bb026e33"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">AdobeXMPCore::spINode</a></div><div class="ttdeci">shared_ptr&lt; INode &gt; spINode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00065">XMPCoreFwdDeclarations.h:65</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_a85d314eae1eef235e7c698c5c84bdda1"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#a85d314eae1eef235e7c698c5c84bdda1">AdobeXMPCore_Int::pcIStructureNode_I</a></div><div class="ttdeci">const IStructureNode_I * pcIStructureNode_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00254">XMPCoreFwdDeclarations.h:254</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html">AdobeXMPCore::IDOMImplementationRegistry_v1</a></div><div class="ttdoc">Version1 of the interface that serves as a database/registry of all the parsers and serializers avail...</div><div class="ttdef"><b>Definition:</b> <a href="IDOMImplementationRegistry_8h_source.html#l00029">IDOMImplementationRegistry.h:29</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ae339cdf18168ecc8197e651df8f43854"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ae339cdf18168ecc8197e651df8f43854">AdobeXMPCore::spIPathSegment</a></div><div class="ttdeci">shared_ptr&lt; IPathSegment &gt; spIPathSegment</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00041">XMPCoreFwdDeclarations.h:41</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_abae00582b217eaa165ccf0006afa23bd"><div class="ttname"><a href="namespaceAdobeXMPCore.html#abae00582b217eaa165ccf0006afa23bd">AdobeXMPCore::pcIStructureNode</a></div><div class="ttdeci">const IStructureNode * pcIStructureNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00100">XMPCoreFwdDeclarations.h:100</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1ICoreObjectFactory__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html">AdobeXMPCore::ICoreObjectFactory_v1</a></div><div class="ttdoc">Version1 of a interface that represents a factory to create various artifacts of XMP DOM like array...</div><div class="ttdef"><b>Definition:</b> <a href="ICoreObjectFactory_8h_source.html#l00025">ICoreObjectFactory.h:25</a></div></div>
+<div class="ttc" id="XMPCoreLatestInterfaceVersions_8h_html_a79e1c8ec2c46a2cbee3ba9cfd0d78ad4"><div class="ttname"><a href="XMPCoreLatestInterfaceVersions_8h.html#a79e1c8ec2c46a2cbee3ba9cfd0d78ad4">INAMESPACEPREFIXMAP_VERSION</a></div><div class="ttdeci">#define INAMESPACEPREFIXMAP_VERSION</div><div class="ttdoc">Macro to include a client file through with client can control the interface versions he wants to sti...</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreLatestInterfaceVersions_8h_source.html#l00024">XMPCoreLatestInterfaceVersions.h:24</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a597eaeb0ed86794ea01f74a5be0f88ed"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">AdobeXMPCore::spcINode</a></div><div class="ttdeci">shared_ptr&lt; const INode &gt; spcINode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00066">XMPCoreFwdDeclarations.h:66</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_ad26aadc3f0926468c34c02cc1a0f1dbd"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#ad26aadc3f0926468c34c02cc1a0f1dbd">AdobeXMPCore_Int::pIDOMImplementationRegistry_I</a></div><div class="ttdeci">IDOMImplementationRegistry_I * pIDOMImplementationRegistry_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00292">XMPCoreFwdDeclarations.h:292</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore__Int_html_ad445bf512b4b3179b131b0a7dec31d86"><div class="ttname"><a href="namespaceAdobeXMPCore__Int.html#ad445bf512b4b3179b131b0a7dec31d86">AdobeXMPCore_Int::pICoreObjectFactory_I</a></div><div class="ttdeci">ICoreObjectFactory_I * pICoreObjectFactory_I</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00297">XMPCoreFwdDeclarations.h:297</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IDOMSerializer__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1IDOMSerializer__v1.html">AdobeXMPCore::IDOMSerializer_v1</a></div><div class="ttdoc">Version1 of the interface that represents an object that can serialize an XMP Data Model to a buffer...</div><div class="ttdef"><b>Definition:</b> <a href="IDOMSerializer_8h_source.html#l00023">IDOMSerializer.h:23</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a1e81ce748e90e850d0a48b0b5943fce2"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a1e81ce748e90e850d0a48b0b5943fce2">AdobeXMPCore::spcIMetadata</a></div><div class="ttdeci">shared_ptr&lt; const IMetadata &gt; spcIMetadata</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00138">XMPCoreFwdDeclarations.h:138</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a6b414731e356594947b08382866c9fcf"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a6b414731e356594947b08382866c9fcf">AdobeXMPCore::pIDOMSerializer</a></div><div class="ttdeci">IDOMSerializer * pIDOMSerializer</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00177">XMPCoreFwdDeclarations.h:177</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a8b003da6674d32c5c628f1d0e1fa45aa"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a8b003da6674d32c5c628f1d0e1fa45aa">AdobeXMPCore::pIDOMParser</a></div><div class="ttdeci">IDOMParser * pIDOMParser</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00165">XMPCoreFwdDeclarations.h:165</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ab5807ab783087243a3676a19ad6f9b90"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">AdobeXMPCore::spcIStructureNode</a></div><div class="ttdeci">shared_ptr&lt; const IStructureNode &gt; spcIStructureNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00102">XMPCoreFwdDeclarations.h:102</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IPathSegment__v1_html"><div class="ttname"><a href="classAdobeXMPCore_1_1IPathSegment__v1.html">AdobeXMPCore::IPathSegment_v1</a></div><div class="ttdoc">Version1 of the interface that represents one segment in a path to a node into the XMP tree...</div><div class="ttdef"><b>Definition:</b> <a href="IPathSegment_8h_source.html#l00024">IPathSegment.h:24</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aab6f1fa4adf9d3b8c40d4e8f601ddfdf"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aab6f1fa4adf9d3b8c40d4e8f601ddfdf">AdobeXMPCore::kINameSpacePrefixMapID</a></div><div class="ttdeci">static const uint64 kINameSpacePrefixMapID(0x634e5350724d6170)</div></div>
+<div class="ttc" id="XMPCoreLatestInterfaceVersions_8h_html_afe7756c974951e8e78be1cfb96aacc8b"><div class="ttname"><a href="XMPCoreLatestInterfaceVersions_8h.html#afe7756c974951e8e78be1cfb96aacc8b">INODEITERATOR_VERSION</a></div><div class="ttdeci">#define INODEITERATOR_VERSION</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreLatestInterfaceVersions_8h_source.html#l00040">XMPCoreLatestInterfaceVersions.h:40</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ad9403696e40df26b5d17e0d17d6799f0"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ad9403696e40df26b5d17e0d17d6799f0">AdobeXMPCore::pISimpleNode</a></div><div class="ttdeci">ISimpleNode * pISimpleNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00075">XMPCoreFwdDeclarations.h:75</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/XMPCoreLatestInterfaceVersions_8h.html b/docs/API/XMPCoreLatestInterfaceVersions_8h.html
new file mode 100755
index 0000000..83496c5
--- /dev/null
+++ b/docs/API/XMPCoreLatestInterfaceVersions_8h.html
@@ -0,0 +1,332 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/XMPCoreLatestInterfaceVersions.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('XMPCoreLatestInterfaceVersions_8h.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#define-members">Macros</a> </div>
+ <div class="headertitle">
+<div class="title">XMPCoreLatestInterfaceVersions.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="XMPCoreLatestInterfaceVersions_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a79e1c8ec2c46a2cbee3ba9cfd0d78ad4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a79e1c8ec2c46a2cbee3ba9cfd0d78ad4">INAMESPACEPREFIXMAP_VERSION</a>&#160;&#160;&#160;1</td></tr>
+<tr class="memdesc:a79e1c8ec2c46a2cbee3ba9cfd0d78ad4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro to include a client file through with client can control the interface versions he wants to stick with if not the latest ones. <a href="#a79e1c8ec2c46a2cbee3ba9cfd0d78ad4">More...</a><br /></td></tr>
+<tr class="separator:a79e1c8ec2c46a2cbee3ba9cfd0d78ad4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a42cb9bdb3894ac77ff614349e5c371e5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a42cb9bdb3894ac77ff614349e5c371e5">IPATHSEGMENT_VERSION</a>&#160;&#160;&#160;1</td></tr>
+<tr class="separator:a42cb9bdb3894ac77ff614349e5c371e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adc9fb16e479a79e35a9dc58e166fcbad"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#adc9fb16e479a79e35a9dc58e166fcbad">IPATH_VERSION</a>&#160;&#160;&#160;1</td></tr>
+<tr class="separator:adc9fb16e479a79e35a9dc58e166fcbad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aff2b1eabe2ac90a68ba3690930494a17"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#aff2b1eabe2ac90a68ba3690930494a17">INODE_VERSION</a>&#160;&#160;&#160;1</td></tr>
+<tr class="separator:aff2b1eabe2ac90a68ba3690930494a17"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afe7756c974951e8e78be1cfb96aacc8b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#afe7756c974951e8e78be1cfb96aacc8b">INODEITERATOR_VERSION</a>&#160;&#160;&#160;1</td></tr>
+<tr class="separator:afe7756c974951e8e78be1cfb96aacc8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a799da65cf5811707628bb2681a4545ec"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a799da65cf5811707628bb2681a4545ec">ISIMPLENODE_VERSION</a>&#160;&#160;&#160;1</td></tr>
+<tr class="separator:a799da65cf5811707628bb2681a4545ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aefe5b8d014bd0f2ca4933a16572b51df"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#aefe5b8d014bd0f2ca4933a16572b51df">ICOMPOSITENODE_VERSION</a>&#160;&#160;&#160;1</td></tr>
+<tr class="separator:aefe5b8d014bd0f2ca4933a16572b51df"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a28325920d39a80ba79dd3774ce056f45"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a28325920d39a80ba79dd3774ce056f45">ISTRUCTURENODE_VERSION</a>&#160;&#160;&#160;1</td></tr>
+<tr class="separator:a28325920d39a80ba79dd3774ce056f45"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1f8464a97acb8671e6cc2a466955d45d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a1f8464a97acb8671e6cc2a466955d45d">IARRAYNODE_VERSION</a>&#160;&#160;&#160;1</td></tr>
+<tr class="separator:a1f8464a97acb8671e6cc2a466955d45d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af7d51c3ccf825fc82fa4a2a6cca26bc8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#af7d51c3ccf825fc82fa4a2a6cca26bc8">IMETADATA_VERSION</a>&#160;&#160;&#160;1</td></tr>
+<tr class="separator:af7d51c3ccf825fc82fa4a2a6cca26bc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a64636b4e59a6212968ad30494675603e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a64636b4e59a6212968ad30494675603e">ICLIENTDOMPARSER_VERSION</a>&#160;&#160;&#160;1</td></tr>
+<tr class="separator:a64636b4e59a6212968ad30494675603e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa928953eda71cda88699483e1fca4526"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#aa928953eda71cda88699483e1fca4526">ICLIENTDOMSERIALIZER_VERSION</a>&#160;&#160;&#160;1</td></tr>
+<tr class="separator:aa928953eda71cda88699483e1fca4526"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a813f82b55a0bb68c1553e8b38592e705"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a813f82b55a0bb68c1553e8b38592e705">IDOMPARSER_VERSION</a>&#160;&#160;&#160;1</td></tr>
+<tr class="separator:a813f82b55a0bb68c1553e8b38592e705"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a52d6e44f27f19214b38959683d6cc829"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a52d6e44f27f19214b38959683d6cc829">IDOMSERIALIZER_VERSION</a>&#160;&#160;&#160;1</td></tr>
+<tr class="separator:a52d6e44f27f19214b38959683d6cc829"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa34dc59f9267eceb6d51235cd778292e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#aa34dc59f9267eceb6d51235cd778292e">IDOMIMPLEMENTATIONREGISTRY_VERSION</a>&#160;&#160;&#160;1</td></tr>
+<tr class="separator:aa34dc59f9267eceb6d51235cd778292e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3d28ba37018741b3794789e5edc6e27e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a3d28ba37018741b3794789e5edc6e27e">ICOREOBJECTFACTORY_VERSION</a>&#160;&#160;&#160;1</td></tr>
+<tr class="separator:a3d28ba37018741b3794789e5edc6e27e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adf7818c7264e7a80b1b3c5a5b283c47c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#adf7818c7264e7a80b1b3c5a5b283c47c">ICORECONFIGURATIONMANAGER_VERSION</a>&#160;&#160;&#160;1</td></tr>
+<tr class="separator:adf7818c7264e7a80b1b3c5a5b283c47c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="a1f8464a97acb8671e6cc2a466955d45d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define IARRAYNODE_VERSION&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreLatestInterfaceVersions_8h_source.html#l00056">56</a> of file <a class="el" href="XMPCoreLatestInterfaceVersions_8h_source.html">XMPCoreLatestInterfaceVersions.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a64636b4e59a6212968ad30494675603e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define ICLIENTDOMPARSER_VERSION&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreLatestInterfaceVersions_8h_source.html#l00064">64</a> of file <a class="el" href="XMPCoreLatestInterfaceVersions_8h_source.html">XMPCoreLatestInterfaceVersions.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa928953eda71cda88699483e1fca4526"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define ICLIENTDOMSERIALIZER_VERSION&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreLatestInterfaceVersions_8h_source.html#l00068">68</a> of file <a class="el" href="XMPCoreLatestInterfaceVersions_8h_source.html">XMPCoreLatestInterfaceVersions.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aefe5b8d014bd0f2ca4933a16572b51df"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define ICOMPOSITENODE_VERSION&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreLatestInterfaceVersions_8h_source.html#l00048">48</a> of file <a class="el" href="XMPCoreLatestInterfaceVersions_8h_source.html">XMPCoreLatestInterfaceVersions.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="adf7818c7264e7a80b1b3c5a5b283c47c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define ICORECONFIGURATIONMANAGER_VERSION&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreLatestInterfaceVersions_8h_source.html#l00088">88</a> of file <a class="el" href="XMPCoreLatestInterfaceVersions_8h_source.html">XMPCoreLatestInterfaceVersions.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3d28ba37018741b3794789e5edc6e27e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define ICOREOBJECTFACTORY_VERSION&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreLatestInterfaceVersions_8h_source.html#l00084">84</a> of file <a class="el" href="XMPCoreLatestInterfaceVersions_8h_source.html">XMPCoreLatestInterfaceVersions.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa34dc59f9267eceb6d51235cd778292e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define IDOMIMPLEMENTATIONREGISTRY_VERSION&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreLatestInterfaceVersions_8h_source.html#l00080">80</a> of file <a class="el" href="XMPCoreLatestInterfaceVersions_8h_source.html">XMPCoreLatestInterfaceVersions.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a813f82b55a0bb68c1553e8b38592e705"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define IDOMPARSER_VERSION&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreLatestInterfaceVersions_8h_source.html#l00072">72</a> of file <a class="el" href="XMPCoreLatestInterfaceVersions_8h_source.html">XMPCoreLatestInterfaceVersions.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a52d6e44f27f19214b38959683d6cc829"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define IDOMSERIALIZER_VERSION&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreLatestInterfaceVersions_8h_source.html#l00076">76</a> of file <a class="el" href="XMPCoreLatestInterfaceVersions_8h_source.html">XMPCoreLatestInterfaceVersions.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af7d51c3ccf825fc82fa4a2a6cca26bc8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define IMETADATA_VERSION&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreLatestInterfaceVersions_8h_source.html#l00060">60</a> of file <a class="el" href="XMPCoreLatestInterfaceVersions_8h_source.html">XMPCoreLatestInterfaceVersions.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a79e1c8ec2c46a2cbee3ba9cfd0d78ad4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define INAMESPACEPREFIXMAP_VERSION&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Macro to include a client file through with client can control the interface versions he wants to stick with if not the latest ones. </p>
+
+<p>Definition at line <a class="el" href="XMPCoreLatestInterfaceVersions_8h_source.html#l00024">24</a> of file <a class="el" href="XMPCoreLatestInterfaceVersions_8h_source.html">XMPCoreLatestInterfaceVersions.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aff2b1eabe2ac90a68ba3690930494a17"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define INODE_VERSION&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreLatestInterfaceVersions_8h_source.html#l00036">36</a> of file <a class="el" href="XMPCoreLatestInterfaceVersions_8h_source.html">XMPCoreLatestInterfaceVersions.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="afe7756c974951e8e78be1cfb96aacc8b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define INODEITERATOR_VERSION&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreLatestInterfaceVersions_8h_source.html#l00040">40</a> of file <a class="el" href="XMPCoreLatestInterfaceVersions_8h_source.html">XMPCoreLatestInterfaceVersions.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="adc9fb16e479a79e35a9dc58e166fcbad"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define IPATH_VERSION&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreLatestInterfaceVersions_8h_source.html#l00032">32</a> of file <a class="el" href="XMPCoreLatestInterfaceVersions_8h_source.html">XMPCoreLatestInterfaceVersions.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a42cb9bdb3894ac77ff614349e5c371e5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define IPATHSEGMENT_VERSION&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreLatestInterfaceVersions_8h_source.html#l00028">28</a> of file <a class="el" href="XMPCoreLatestInterfaceVersions_8h_source.html">XMPCoreLatestInterfaceVersions.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a799da65cf5811707628bb2681a4545ec"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define ISIMPLENODE_VERSION&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreLatestInterfaceVersions_8h_source.html#l00044">44</a> of file <a class="el" href="XMPCoreLatestInterfaceVersions_8h_source.html">XMPCoreLatestInterfaceVersions.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a28325920d39a80ba79dd3774ce056f45"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define ISTRUCTURENODE_VERSION&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreLatestInterfaceVersions_8h_source.html#l00052">52</a> of file <a class="el" href="XMPCoreLatestInterfaceVersions_8h_source.html">XMPCoreLatestInterfaceVersions.h</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/XMPCoreLatestInterfaceVersions_8h.js b/docs/API/XMPCoreLatestInterfaceVersions_8h.js
new file mode 100755
index 0000000..e8bddfe
--- /dev/null
+++ b/docs/API/XMPCoreLatestInterfaceVersions_8h.js
@@ -0,0 +1,20 @@
+var XMPCoreLatestInterfaceVersions_8h =
+[
+ [ "IARRAYNODE_VERSION", "XMPCoreLatestInterfaceVersions_8h.html#a1f8464a97acb8671e6cc2a466955d45d", null ],
+ [ "ICLIENTDOMPARSER_VERSION", "XMPCoreLatestInterfaceVersions_8h.html#a64636b4e59a6212968ad30494675603e", null ],
+ [ "ICLIENTDOMSERIALIZER_VERSION", "XMPCoreLatestInterfaceVersions_8h.html#aa928953eda71cda88699483e1fca4526", null ],
+ [ "ICOMPOSITENODE_VERSION", "XMPCoreLatestInterfaceVersions_8h.html#aefe5b8d014bd0f2ca4933a16572b51df", null ],
+ [ "ICORECONFIGURATIONMANAGER_VERSION", "XMPCoreLatestInterfaceVersions_8h.html#adf7818c7264e7a80b1b3c5a5b283c47c", null ],
+ [ "ICOREOBJECTFACTORY_VERSION", "XMPCoreLatestInterfaceVersions_8h.html#a3d28ba37018741b3794789e5edc6e27e", null ],
+ [ "IDOMIMPLEMENTATIONREGISTRY_VERSION", "XMPCoreLatestInterfaceVersions_8h.html#aa34dc59f9267eceb6d51235cd778292e", null ],
+ [ "IDOMPARSER_VERSION", "XMPCoreLatestInterfaceVersions_8h.html#a813f82b55a0bb68c1553e8b38592e705", null ],
+ [ "IDOMSERIALIZER_VERSION", "XMPCoreLatestInterfaceVersions_8h.html#a52d6e44f27f19214b38959683d6cc829", null ],
+ [ "IMETADATA_VERSION", "XMPCoreLatestInterfaceVersions_8h.html#af7d51c3ccf825fc82fa4a2a6cca26bc8", null ],
+ [ "INAMESPACEPREFIXMAP_VERSION", "XMPCoreLatestInterfaceVersions_8h.html#a79e1c8ec2c46a2cbee3ba9cfd0d78ad4", null ],
+ [ "INODE_VERSION", "XMPCoreLatestInterfaceVersions_8h.html#aff2b1eabe2ac90a68ba3690930494a17", null ],
+ [ "INODEITERATOR_VERSION", "XMPCoreLatestInterfaceVersions_8h.html#afe7756c974951e8e78be1cfb96aacc8b", null ],
+ [ "IPATH_VERSION", "XMPCoreLatestInterfaceVersions_8h.html#adc9fb16e479a79e35a9dc58e166fcbad", null ],
+ [ "IPATHSEGMENT_VERSION", "XMPCoreLatestInterfaceVersions_8h.html#a42cb9bdb3894ac77ff614349e5c371e5", null ],
+ [ "ISIMPLENODE_VERSION", "XMPCoreLatestInterfaceVersions_8h.html#a799da65cf5811707628bb2681a4545ec", null ],
+ [ "ISTRUCTURENODE_VERSION", "XMPCoreLatestInterfaceVersions_8h.html#a28325920d39a80ba79dd3774ce056f45", null ]
+]; \ No newline at end of file
diff --git a/docs/API/XMPCoreLatestInterfaceVersions_8h_source.html b/docs/API/XMPCoreLatestInterfaceVersions_8h_source.html
new file mode 100755
index 0000000..52d4cf0
--- /dev/null
+++ b/docs/API/XMPCoreLatestInterfaceVersions_8h_source.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/XMPCoreLatestInterfaceVersions.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('XMPCoreLatestInterfaceVersions_8h_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">XMPCoreLatestInterfaceVersions.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="XMPCoreLatestInterfaceVersions_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef XMPCoreLatestInterfaceVersions_h__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define XMPCoreLatestInterfaceVersions_h__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// ADOBE SYSTEMS INCORPORATED</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// Copyright 2015 Adobe Systems Incorporated</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// All Rights Reserved</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#if !SOURCE_COMPILING_XMPCORE_LIB</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor"> #ifdef XMPCORE_CLIENT_VERSION_NUMBER_FILE</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"> #include QUOTEME(XMPCORE_CLIENT_VERSION_NUMBER_FILE)</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#ifndef INAMESPACEPREFIXMAP_VERSION</span></div><div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="XMPCoreLatestInterfaceVersions_8h.html#a79e1c8ec2c46a2cbee3ba9cfd0d78ad4"> 24</a></span>&#160;<span class="preprocessor"> #define INAMESPACEPREFIXMAP_VERSION 1</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#ifndef IPATHSEGMENT_VERSION</span></div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="XMPCoreLatestInterfaceVersions_8h.html#a42cb9bdb3894ac77ff614349e5c371e5"> 28</a></span>&#160;<span class="preprocessor"> #define IPATHSEGMENT_VERSION 1</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#ifndef IPATH_VERSION</span></div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="XMPCoreLatestInterfaceVersions_8h.html#adc9fb16e479a79e35a9dc58e166fcbad"> 32</a></span>&#160;<span class="preprocessor"> #define IPATH_VERSION 1</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#ifndef INODE_VERSION</span></div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="XMPCoreLatestInterfaceVersions_8h.html#aff2b1eabe2ac90a68ba3690930494a17"> 36</a></span>&#160;<span class="preprocessor"> #define INODE_VERSION 1</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#ifndef INODEITERATOR_VERSION</span></div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="XMPCoreLatestInterfaceVersions_8h.html#afe7756c974951e8e78be1cfb96aacc8b"> 40</a></span>&#160;<span class="preprocessor"> #define INODEITERATOR_VERSION 1</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#ifndef ISIMPLENODE_VERSION</span></div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="XMPCoreLatestInterfaceVersions_8h.html#a799da65cf5811707628bb2681a4545ec"> 44</a></span>&#160;<span class="preprocessor"> #define ISIMPLENODE_VERSION 1</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#ifndef ICOMPOSITENODE_VERSION</span></div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="XMPCoreLatestInterfaceVersions_8h.html#aefe5b8d014bd0f2ca4933a16572b51df"> 48</a></span>&#160;<span class="preprocessor"> #define ICOMPOSITENODE_VERSION 1</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#ifndef ISTRUCTURENODE_VERSION</span></div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="XMPCoreLatestInterfaceVersions_8h.html#a28325920d39a80ba79dd3774ce056f45"> 52</a></span>&#160;<span class="preprocessor"> #define ISTRUCTURENODE_VERSION 1</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#ifndef IARRAYNODE_VERSION</span></div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="XMPCoreLatestInterfaceVersions_8h.html#a1f8464a97acb8671e6cc2a466955d45d"> 56</a></span>&#160;<span class="preprocessor"> #define IARRAYNODE_VERSION 1</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#ifndef IMETADATA_VERSION</span></div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="XMPCoreLatestInterfaceVersions_8h.html#af7d51c3ccf825fc82fa4a2a6cca26bc8"> 60</a></span>&#160;<span class="preprocessor"> #define IMETADATA_VERSION 1</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">#ifndef ICLIENTDOMPARSER_VERSION</span></div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="XMPCoreLatestInterfaceVersions_8h.html#a64636b4e59a6212968ad30494675603e"> 64</a></span>&#160;<span class="preprocessor"> #define ICLIENTDOMPARSER_VERSION 1</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor">#ifndef ICLIENTDOMSERIALIZER_VERSION</span></div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="XMPCoreLatestInterfaceVersions_8h.html#aa928953eda71cda88699483e1fca4526"> 68</a></span>&#160;<span class="preprocessor"> #define ICLIENTDOMSERIALIZER_VERSION 1</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor">#ifndef IDOMPARSER_VERSION</span></div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="XMPCoreLatestInterfaceVersions_8h.html#a813f82b55a0bb68c1553e8b38592e705"> 72</a></span>&#160;<span class="preprocessor"> #define IDOMPARSER_VERSION 1</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor">#ifndef IDOMSERIALIZER_VERSION</span></div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="XMPCoreLatestInterfaceVersions_8h.html#a52d6e44f27f19214b38959683d6cc829"> 76</a></span>&#160;<span class="preprocessor"> #define IDOMSERIALIZER_VERSION 1</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor">#ifndef IDOMIMPLEMENTATIONREGISTRY_VERSION</span></div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="XMPCoreLatestInterfaceVersions_8h.html#aa34dc59f9267eceb6d51235cd778292e"> 80</a></span>&#160;<span class="preprocessor"> #define IDOMIMPLEMENTATIONREGISTRY_VERSION 1</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor">#ifndef ICOREOBJECTFACTORY_VERSION</span></div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="XMPCoreLatestInterfaceVersions_8h.html#a3d28ba37018741b3794789e5edc6e27e"> 84</a></span>&#160;<span class="preprocessor"> #define ICOREOBJECTFACTORY_VERSION 1</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor">#ifndef ICORECONFIGURATIONMANAGER_VERSION</span></div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="XMPCoreLatestInterfaceVersions_8h.html#adf7818c7264e7a80b1b3c5a5b283c47c"> 88</a></span>&#160;<span class="preprocessor"> #define ICORECONFIGURATIONMANAGER_VERSION 1</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="preprocessor">#endif // XMPCoreLatestInterfaceVersions_h__</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div></div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/XMP_8hpp.html b/docs/API/XMP_8hpp.html
new file mode 100755
index 0000000..fd21411
--- /dev/null
+++ b/docs/API/XMP_8hpp.html
@@ -0,0 +1,75 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMP.hpp File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('XMP_8hpp.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">XMP.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Overall header file for the XMP Toolkit.
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &quot;<a class="el" href="XMP__Environment_8h_source.html">XMP_Environment.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="XMP__Version_8h_source.html">XMP_Version.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>&quot;</code><br />
+</div>
+<p><a href="XMP_8hpp_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Overall header file for the XMP Toolkit. </p>
+<p>This is an overall header file, the only one that C++ clients should include.</p>
+<p>The full client API is in the <code><a class="el" href="TXMPMeta_8hpp.html" title="API for access to the XMP Toolkit core services. ">TXMPMeta.hpp</a></code>, <code><a class="el" href="TXMPIterator_8hpp.html" title="API for access to the XMP Toolkit iteration services. ">TXMPIterator.hpp</a></code>, <code><a class="el" href="TXMPUtils_8hpp.html" title="API for access to the XMP Toolkit utility services. ">TXMPUtils.hpp</a></code> headers. Read these for information, but do not include them directly. The <code>TXMP</code>... classes are C++ template classes that must be instantiated with a string class such as <code>std::string</code>. The string class is used to return text strings for property values, serialized XMP, and so on. Clients must also compile <code>XMP.incl_cpp</code> to ensure that all client-side glue code is generated. This should be done by including it in exactly one client source file.</p>
+<p>There are two C preprocessor macros that simplify use of the templates:</p>
+<ul>
+<li><code>TXMP_STRING_TYPE</code> - Define this as the string class to use with the template. You will get the template headers included and typedefs (<code>SXMPMeta</code>, and so on) to use in your code.</li>
+</ul>
+<ul>
+<li><code>TXMP_EXPAND_INLINE</code> - Define this as 1 if you want to have the template functions expanded inline in your code. Leave it undefined, or defined as 0, to use out-of-line instantiations of the template functions. Compiling <code>XMP.incl_cpp</code> generates explicit out-of-line instantiations if <code>TXMP_EXPAND_INLINE</code> is off.</li>
+</ul>
+<p>The template parameter, class <code>tStringObj</code>, must have the following member functions (which match those for <code>std::string</code>):</p>
+<pre>
+ tStringObj&amp; assign ( const char * str, size_t len )
+ size_t size() const
+ const char * c_str() const
+</pre><p>The string class must be suitable for at least UTF-8. This is the encoding used for all general values, and is the default encoding for serialized XMP. The string type must also be suitable for UTF-16 or UTF-32 if those serialization encodings are used. This mainly means tolerating embedded 0 bytes, which <code>std::string</code> does. </p>
+
+<p>Definition in file <a class="el" href="XMP_8hpp_source.html">XMP.hpp</a>.</p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/XMP_8hpp_source.html b/docs/API/XMP_8hpp_source.html
new file mode 100755
index 0000000..be7e496
--- /dev/null
+++ b/docs/API/XMP_8hpp_source.html
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMP.hpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('XMP_8hpp_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">XMP.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="XMP_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __XMP_hpp__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __XMP_hpp__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright 2002 Adobe Systems Incorporated</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// All Rights Reserved.</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// ================================================================================================</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment"></span><span class="comment">// ================================================================================================</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="XMP__Environment_8h.html">XMP_Environment.h</a>&quot;</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="XMP__Version_8h.html">XMP_Version.h</a>&quot;</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="XMP__Const_8h.html">XMP_Const.h</a>&quot;</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#if XMP_WinBuild</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"> #if XMP_DebugBuild</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor"> #pragma warning ( push, 4 )</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor"> #else</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor"> #pragma warning ( push, 3 )</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor"> #pragma warning ( disable : 4702 ) // unreachable code</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor"> #pragma warning ( disable : 4800 ) // forcing value to bool &#39;true&#39; or &#39;false&#39; (performance warning)</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">#if defined ( TXMP_STRING_TYPE )</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor"> #include &quot;<a class="code" href="TXMPMeta_8hpp.html">TXMPMeta.hpp</a>&quot;</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor"> #include &quot;<a class="code" href="TXMPIterator_8hpp.html">TXMPIterator.hpp</a>&quot;</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor"> #include &quot;<a class="code" href="TXMPUtils_8hpp.html">TXMPUtils.hpp</a>&quot;</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">typedef</span> <span class="keyword">class </span><a class="code" href="classTXMPMeta.html">TXMPMeta</a> &lt;TXMP_STRING_TYPE&gt; SXMPMeta; <span class="comment">// For client convenience.</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">typedef</span> <span class="keyword">class </span><a class="code" href="classTXMPIterator.html">TXMPIterator</a> &lt;TXMP_STRING_TYPE&gt; SXMPIterator;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">typedef</span> <span class="keyword">class </span><a class="code" href="classTXMPUtils.html">TXMPUtils</a> &lt;TXMP_STRING_TYPE&gt; SXMPUtils;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor"> #if TXMP_EXPAND_INLINE</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor"> #error &quot;TXMP_EXPAND_INLINE is not working at present. Please don&#39;t use it.&quot;</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor"> #include &quot;client-glue/TXMPMeta.incl_cpp&quot;</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor"> #include &quot;client-glue/TXMPIterator.incl_cpp&quot;</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor"> #include &quot;client-glue/TXMPUtils.incl_cpp&quot;</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor"> #include &quot;client-glue/TXMPFiles.incl_cpp&quot;</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor"> #if XMP_INCLUDE_XMPFILES</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor"> #include &quot;<a class="code" href="TXMPFiles_8hpp.html">TXMPFiles.hpp</a>&quot;</span> <span class="comment">// ! Needs typedef for SXMPMeta.</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">typedef</span> <span class="keyword">class </span><a class="code" href="classTXMPFiles.html">TXMPFiles</a> &lt;TXMP_STRING_TYPE&gt; SXMPFiles;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor"> #if TXMP_EXPAND_INLINE</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor"> #include &quot;client-glue/TXMPFiles.incl_cpp&quot;</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor">#endif // TXMP_STRING_TYPE</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="preprocessor">#if XMP_WinBuild</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="preprocessor"> #pragma warning ( pop )</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor">#endif // __XMP_hpp__</span></div><div class="ttc" id="XMP__Const_8h_html"><div class="ttname"><a href="XMP__Const_8h.html">XMP_Const.h</a></div><div class="ttdoc">Common C/C++ types and constants for the XMP toolkit. </div></div>
+<div class="ttc" id="TXMPFiles_8hpp_html"><div class="ttname"><a href="TXMPFiles_8hpp.html">TXMPFiles.hpp</a></div><div class="ttdoc">API for access to the main (document-level) metadata in a file_. </div></div>
+<div class="ttc" id="XMP__Version_8h_html"><div class="ttname"><a href="XMP__Version_8h.html">XMP_Version.h</a></div></div>
+<div class="ttc" id="TXMPMeta_8hpp_html"><div class="ttname"><a href="TXMPMeta_8hpp.html">TXMPMeta.hpp</a></div><div class="ttdoc">API for access to the XMP Toolkit core services. </div></div>
+<div class="ttc" id="classTXMPUtils_html"><div class="ttname"><a href="classTXMPUtils.html">TXMPUtils</a></div><div class="ttdoc">API for access to the XMP Toolkit utility services. </div><div class="ttdef"><b>Definition:</b> <a href="TXMPMeta_8hpp_source.html#l00051">TXMPMeta.hpp:51</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html"><div class="ttname"><a href="XMP__Environment_8h.html">XMP_Environment.h</a></div></div>
+<div class="ttc" id="TXMPUtils_8hpp_html"><div class="ttname"><a href="TXMPUtils_8hpp.html">TXMPUtils.hpp</a></div><div class="ttdoc">API for access to the XMP Toolkit utility services. </div></div>
+<div class="ttc" id="classTXMPIterator_html"><div class="ttname"><a href="classTXMPIterator.html">TXMPIterator</a></div><div class="ttdoc">API for access to the XMP Toolkit iteration services. </div><div class="ttdef"><b>Definition:</b> <a href="TXMPIterator_8hpp_source.html#l00079">TXMPIterator.hpp:79</a></div></div>
+<div class="ttc" id="classTXMPFiles_html"><div class="ttname"><a href="classTXMPFiles.html">TXMPFiles</a></div><div class="ttdoc">API for access to the main (document-level) metadata in a file. </div><div class="ttdef"><b>Definition:</b> <a href="TXMPFiles_8hpp_source.html#l00067">TXMPFiles.hpp:67</a></div></div>
+<div class="ttc" id="TXMPIterator_8hpp_html"><div class="ttname"><a href="TXMPIterator_8hpp.html">TXMPIterator.hpp</a></div><div class="ttdoc">API for access to the XMP Toolkit iteration services. </div></div>
+<div class="ttc" id="classTXMPMeta_html"><div class="ttname"><a href="classTXMPMeta.html">TXMPMeta</a></div><div class="ttdoc">API for access to the XMP Toolkit core services. </div><div class="ttdef"><b>Definition:</b> <a href="TXMPMeta_8hpp_source.html#l00055">TXMPMeta.hpp:55</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/XMP_8incl__cpp.html b/docs/API/XMP_8incl__cpp.html
deleted file mode 100644
index 8d571ae..0000000
--- a/docs/API/XMP_8incl__cpp.html
+++ /dev/null
@@ -1,95 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: XMP.incl_cpp File Reference</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
-<link href="tabs.css" rel="stylesheet" type="text/css">
-</head><body>
-<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
- <li><a href="annotated.html"><span>Classes</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li><a href="files.html"><span>File&nbsp;List</span></a></li>
- <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
- </ul>
- </div>
-</div>
-<div class="contents">
-<h1>XMP.incl_cpp File Reference</h1>
-<p>Overall client glue file for the XMP toolkit.
-<a href="#_details">More...</a></p>
-<code>#include &quot;<a class="el" href="XMP_8incl__cpp.html">XMP.hpp</a>&quot;</code><br/>
-<code>#include &quot;XMP_Environment.h&quot;</code><br/>
-<code>#include &lt;stddef.h&gt;</code><br/>
-<code>#include &lt;vector&gt;</code><br/>
-<div class="dynheader">
-Include dependency graph for XMP.incl_cpp:</div>
-<div class="dynsection">
-<div class="center"><img src="XMP_8incl__cpp__incl.png" border="0" usemap="#XMP_8incl__cpp_map" alt=""/></div>
-</div>
-<div class="dynheader">
-This graph shows which files directly or indirectly include this file:</div>
-<div class="dynsection">
-<div class="center"><img src="XMP_8incl__cpp__dep__incl.png" border="0" usemap="#XMP_8incl__cppdep_map" alt=""/></div>
-</div>
-<table border="0" cellpadding="0" cellspacing="0">
-</table>
-<hr/><a name="_details"></a><h2>Detailed Description</h2>
-<p>Overall client glue file for the XMP toolkit. </p>
-<p>This is an overall client source file of XMP toolkit glue, the only XMP-specific one that clients should build in projects. This ensures that all of the client-side glue code for the XMP toolkit gets compiled.</p>
-<p>You cannot compile this file directly, because the template's string type must be declared and only the client can do that. Instead, include this in some other source file. For example, to use <code>std::string</code> you only need these two lines:</p>
-<div class="fragment"><pre class="fragment"><span class="preprocessor"> #include &lt;string&gt;</span>
-<span class="preprocessor"> #include &quot;<a class="code" href="XMP_8incl__cpp.html" title="Overall client glue file for the XMP toolkit.">XMP.incl_cpp</a>&quot;</span>
-</pre></div> </div>
-<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
-</body>
-</html>
diff --git a/docs/API/XMP_8incl__cpp__dep__incl.png b/docs/API/XMP_8incl__cpp__dep__incl.png
deleted file mode 100644
index 26880e2..0000000
--- a/docs/API/XMP_8incl__cpp__dep__incl.png
+++ /dev/null
Binary files differ
diff --git a/docs/API/XMP_8incl__cpp__incl.png b/docs/API/XMP_8incl__cpp__incl.png
deleted file mode 100644
index 680edbf..0000000
--- a/docs/API/XMP_8incl__cpp__incl.png
+++ /dev/null
Binary files differ
diff --git a/docs/API/XMP__Const_8h.html b/docs/API/XMP__Const_8h.html
index 7dd7158..8b932b7 100644..100755
--- a/docs/API/XMP__Const_8h.html
+++ b/docs/API/XMP__Const_8h.html
@@ -1,1583 +1,2824 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: XMP_Const.h File Reference</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMP_Const.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
- <li><a href="files.html"><span>File&nbsp;List</span></a></li>
- <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('XMP__Const_8h.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#define-members">Macros</a> &#124;
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#var-members">Variables</a> </div>
+ <div class="headertitle">
+<div class="title">XMP_Const.h File Reference</div> </div>
+</div><!--header-->
<div class="contents">
-<h1>XMP_Const.h File Reference</h1>
+
<p>Common C/C++ types and constants for the XMP toolkit.
-<a href="#_details">More...</a></p>
-<code>#include &quot;XMP_Environment.h&quot;</code><br/>
-<code>#include &lt;stddef.h&gt;</code><br/>
-<code>#include &lt;vector&gt;</code><br/>
-<div class="dynheader">
-Include dependency graph for XMP_Const.h:</div>
-<div class="dynsection">
-<div class="center"><img src="XMP__Const_8h__incl.png" border="0" usemap="#XMP__Const_8h_map" alt=""/></div>
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &quot;<a class="el" href="XMP__Environment_8h_source.html">XMP_Environment.h</a>&quot;</code><br />
+<code>#include &lt;stddef.h&gt;</code><br />
+<code>#include &lt;vector&gt;</code><br />
</div>
-
<p><a href="XMP__Const_8h_source.html">Go to the source code of this file.</a></p>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td colspan="2"><h2>Classes</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The expanded type for a date and time. <a href="structXMP__DateTime.html#_details">More...</a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__PacketInfo.html">XMP_PacketInfo</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">XMP packet description. <a href="structXMP__PacketInfo.html#_details">More...</a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMP__Error.html">XMP_Error</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">XMP Toolkit error, associates an error code with a descriptive error string. <a href="classXMP__Error.html#_details">More...</a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__VersionInfo.html">XMP_VersionInfo</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">XMP Toolkit version information. <a href="structXMP__VersionInfo.html#_details">More...</a><br/></td></tr>
-<tr><td colspan="2"><h2>Defines</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a673355818b7b9224e8fec0fbc60ba00c"></a><!-- doxytag: member="XMP_Const.h::kXMP_NS_TIFF" ref="a673355818b7b9224e8fec0fbc60ba00c" args="" -->
-#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a673355818b7b9224e8fec0fbc60ba00c">kXMP_NS_TIFF</a>&nbsp;&nbsp;&nbsp;&quot;http://ns.adobe.com/tiff/1.0/&quot;</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The XML namespace for Adobe's TIFF schema. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac7dc4d65bcbba2862e410cc8cfdff6f6"></a><!-- doxytag: member="XMP_Const.h::kXMP_NS_XMP_ST_Job" ref="ac7dc4d65bcbba2862e410cc8cfdff6f6" args="" -->
-#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#ac7dc4d65bcbba2862e410cc8cfdff6f6">kXMP_NS_XMP_ST_Job</a>&nbsp;&nbsp;&nbsp;&quot;http://ns.adobe.com/xap/1.0/sType/Job#&quot;</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The XML namespace for fields of the JobRef type. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a97564c70460d1f235c8a41b8ac40cfe9"></a><!-- doxytag: member="XMP_Const.h::kXMP_NS_XML" ref="a97564c70460d1f235c8a41b8ac40cfe9" args="" -->
-#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a97564c70460d1f235c8a41b8ac40cfe9">kXMP_NS_XML</a>&nbsp;&nbsp;&nbsp;&quot;http://www.w3.org/XML/1998/namespace&quot;</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The XML namespace for XML. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aff1df9f3cf050f8b8d3a574db3c3326b"></a><!-- doxytag: member="XMP_Const.h::kXMP_NoOptions" ref="aff1df9f3cf050f8b8d3a574db3c3326b" args="" -->
-#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#aff1df9f3cf050f8b8d3a574db3c3326b">kXMP_NoOptions</a>&nbsp;&nbsp;&nbsp;((<a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>)0UL)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Options macro clears all property-type bits. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a1d41f53bd1d5c88fad8322ce15e39516">XMP_OptionIsClear</a>(var, opt)&nbsp;&nbsp;&nbsp;(((var) &amp; (opt)) == 0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Macro reports whether an option flag bit is clear. <a href="#a1d41f53bd1d5c88fad8322ce15e39516"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a193b1414fa5312da2aa1d833b85612d0">XMP_PropIsAlias</a>(opt)&nbsp;&nbsp;&nbsp;(((opt) &amp; kXMP_PropIsAlias) != 0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Macro reports the property type specified by an options flag. <a href="#a193b1414fa5312da2aa1d833b85612d0"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a93e7900e6c9fb4057dfd685b5201057d">XMP_CharFromSerializeForm</a>(sf)&nbsp;&nbsp;&nbsp;( (XMP_Uns8)(sf) )</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Macro converts <code>XMP_OptionBits</code> to <code>XMP_Uns8</code>. <a href="#a93e7900e6c9fb4057dfd685b5201057d"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6a9b77b60c63781a8776f10880856bf4"></a><!-- doxytag: member="XMP_Const.h::kXMPFiles_UnknownOffset" ref="a6a9b77b60c63781a8776f10880856bf4" args="" -->
-#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a6a9b77b60c63781a8776f10880856bf4">kXMPFiles_UnknownOffset</a>&nbsp;&nbsp;&nbsp;((XMP_Int64)-1)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constant for an unknown packet offset within a file. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae0901aabcf619f17cff03f08e5ed3658"></a><!-- doxytag: member="XMP_Const.h::kXMPFiles_UnknownLength" ref="ae0901aabcf619f17cff03f08e5ed3658" args="" -->
-#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#ae0901aabcf619f17cff03f08e5ed3658">kXMPFiles_UnknownLength</a>&nbsp;&nbsp;&nbsp;((XMP_Int32)-1)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constant for an unknown packet length within a file. <br/></td></tr>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The expanded type for a date and time. <a href="structXMP__DateTime.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__PacketInfo.html">XMP_PacketInfo</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">XMP packet description. <a href="structXMP__PacketInfo.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMP__Error.html">XMP_Error</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">XMP Toolkit error, associates an error code with a descriptive error string. <a href="classXMP__Error.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__VersionInfo.html">XMP_VersionInfo</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">XMP Toolkit version information. <a href="structXMP__VersionInfo.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a44054ee28ca59bd6b5823e4e47479483"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a44054ee28ca59bd6b5823e4e47479483">XMP_MARKER_EXTENSIBILITY_BACKWARD_COMPATIBILITY</a>&#160;&#160;&#160;1</td></tr>
+<tr class="separator:a44054ee28ca59bd6b5823e4e47479483"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ade06e740748eefe529211dd891bf68f4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#ade06e740748eefe529211dd891bf68f4">ConvertXMP_BoolToBool</a>(a)&#160;&#160;&#160;(a) != <a class="el" href="XMP__Const_8h.html#adc83d1c8e3a881f2a1623f63a6cb9ff0">kXMP_Bool_False</a></td></tr>
+<tr class="separator:ade06e740748eefe529211dd891bf68f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae6037ae90db1ec7d7c988aec7a8319cb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#ae6037ae90db1ec7d7c988aec7a8319cb">ConvertBoolToXMP_Bool</a>(a)&#160;&#160;&#160;(a) ? !<a class="el" href="XMP__Const_8h.html#adc83d1c8e3a881f2a1623f63a6cb9ff0">kXMP_Bool_False</a> : <a class="el" href="XMP__Const_8h.html#adc83d1c8e3a881f2a1623f63a6cb9ff0">kXMP_Bool_False</a></td></tr>
+<tr class="separator:ae6037ae90db1ec7d7c988aec7a8319cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae12feaba743c6b1ab1a24ae13fecbffb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#ae12feaba743c6b1ab1a24ae13fecbffb">XMPDateTime_IsDateOnly</a>(dt)&#160;&#160;&#160;((dt).hasDate &amp; (! (dt).hasTime))</td></tr>
+<tr class="separator:ae12feaba743c6b1ab1a24ae13fecbffb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a10149d273250015e91931cd93b649a2e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a10149d273250015e91931cd93b649a2e">XMPDateTime_IsTimeOnly</a>(dt)&#160;&#160;&#160;((dt).hasTime &amp; (! (dt).hasDate))</td></tr>
+<tr class="separator:a10149d273250015e91931cd93b649a2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8d6dc898fe00aeaf567d7af3ec23316a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a8d6dc898fe00aeaf567d7af3ec23316a">XMPDateTime_ClearTimeZone</a>(dt)&#160;&#160;&#160;{ (dt).hasTimeZone = (dt).tzSign = (dt).tzHour = (dt).tzMinute = 0; }</td></tr>
+<tr class="separator:a8d6dc898fe00aeaf567d7af3ec23316a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a465d0a0810455207ffa0346f9c462743"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a465d0a0810455207ffa0346f9c462743">kXMP_NS_PSAlbum</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/album/1.0/&quot;</td></tr>
+<tr class="separator:a465d0a0810455207ffa0346f9c462743"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab8f5ed7baf102b78c816f2e86e142cfd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#ab8f5ed7baf102b78c816f2e86e142cfd">kXMP_NS_EXIF_Aux</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/exif/1.0/aux/&quot;</td></tr>
+<tr class="separator:ab8f5ed7baf102b78c816f2e86e142cfd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abaf8c3257026b73a8d50cf43fa488c5d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#abaf8c3257026b73a8d50cf43fa488c5d">kXMP_NS_PNG</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/png/1.0/&quot;</td></tr>
+<tr class="separator:abaf8c3257026b73a8d50cf43fa488c5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8749291bd81f9cb64535b10ef996cb73"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a8749291bd81f9cb64535b10ef996cb73">kXMP_NS_SWF</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/swf/1.0/&quot;</td></tr>
+<tr class="separator:a8749291bd81f9cb64535b10ef996cb73"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a35020e150227e9b8cea205958616f439"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a35020e150227e9b8cea205958616f439">kXMP_NS_JPEG</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/jpeg/1.0/&quot;</td></tr>
+<tr class="separator:a35020e150227e9b8cea205958616f439"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7426c6b7314b9b29b443f7f401e49be0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a7426c6b7314b9b29b443f7f401e49be0">kXMP_NS_JP2K</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/jp2k/1.0/&quot;</td></tr>
+<tr class="separator:a7426c6b7314b9b29b443f7f401e49be0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a19da1e091dee6b6b471c05f1b73d6b3a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a19da1e091dee6b6b471c05f1b73d6b3a">kXMP_NS_CameraRaw</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/camera-raw-settings/1.0/&quot;</td></tr>
+<tr class="separator:a19da1e091dee6b6b471c05f1b73d6b3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a66fc3e8331cc92dc01cf2bbe74510baa"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a66fc3e8331cc92dc01cf2bbe74510baa">kXMP_NS_DM</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/xmp/1.0/DynamicMedia/&quot;</td></tr>
+<tr class="separator:a66fc3e8331cc92dc01cf2bbe74510baa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a57ce38d4e4b01739c939d8a46e23895e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a57ce38d4e4b01739c939d8a46e23895e">kXMP_NS_Script</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/xmp/1.0/Script/&quot;</td></tr>
+<tr class="separator:a57ce38d4e4b01739c939d8a46e23895e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3ef3c4c015092f8a4b94c4f8895cd955"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a3ef3c4c015092f8a4b94c4f8895cd955">kXMP_NS_ASF</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/asf/1.0/&quot;</td></tr>
+<tr class="separator:a3ef3c4c015092f8a4b94c4f8895cd955"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae802d5ee6fe4802eb5ad692a0b8385ea"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#ae802d5ee6fe4802eb5ad692a0b8385ea">kXMP_NS_WAV</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/xmp/wav/1.0/&quot;</td></tr>
+<tr class="separator:ae802d5ee6fe4802eb5ad692a0b8385ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7837e8541712f9f7d5118df1b0905946"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a7837e8541712f9f7d5118df1b0905946">kXMP_NS_BWF</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/bwf/bext/1.0/&quot;</td></tr>
+<tr class="separator:a7837e8541712f9f7d5118df1b0905946"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1245d5cd54d23588e74b883d9fda6a93"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a1245d5cd54d23588e74b883d9fda6a93">kXMP_NS_AEScart</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/aes/cart/&quot;</td></tr>
+<tr class="separator:a1245d5cd54d23588e74b883d9fda6a93"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad1bc498d01dcc4a690e007b68a695e3a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#ad1bc498d01dcc4a690e007b68a695e3a">kXMP_NS_RIFFINFO</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/riff/info/&quot;</td></tr>
+<tr class="separator:ad1bc498d01dcc4a690e007b68a695e3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acc8062c03735e764865786f6064d06ba"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#acc8062c03735e764865786f6064d06ba">kXMP_NS_iXML</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/ixml/1.0/&quot;</td></tr>
+<tr class="separator:acc8062c03735e764865786f6064d06ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af7950d7399839f17309a9b944a09be5e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#af7950d7399839f17309a9b944a09be5e">kXMP_NS_XMP_Note</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/xmp/note/&quot;</td></tr>
+<tr class="separator:af7950d7399839f17309a9b944a09be5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9d5b4ecd6214d080645718af1db77650"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a9d5b4ecd6214d080645718af1db77650">kXMP_NS_AdobeStockPhoto</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/StockPhoto/1.0/&quot;</td></tr>
+<tr class="separator:a9d5b4ecd6214d080645718af1db77650"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad9c3d81fdbaf57f20bdf92d263d9d71a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#ad9c3d81fdbaf57f20bdf92d263d9d71a">kXMP_NS_CreatorAtom</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/creatorAtom/1.0/&quot;</td></tr>
+<tr class="separator:ad9c3d81fdbaf57f20bdf92d263d9d71a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abff75489a4300787e251f60694497ca8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#abff75489a4300787e251f60694497ca8">kXMP_NS_ExifEX</a>&#160;&#160;&#160;&quot;http://cipa.jp/exif/1.0/&quot;</td></tr>
+<tr class="separator:abff75489a4300787e251f60694497ca8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5e56ed5d1dfcbf69ddd9cdae6eea85f7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a5e56ed5d1dfcbf69ddd9cdae6eea85f7">kXMP_NS_XMP_Text</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/xap/1.0/t/&quot;</td></tr>
+<tr class="separator:a5e56ed5d1dfcbf69ddd9cdae6eea85f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac5e9bcf97c425cf61d6f466358aab1ca"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#ac5e9bcf97c425cf61d6f466358aab1ca">kXMP_NS_XMP_PagedFile</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/xap/1.0/t/pg/&quot;</td></tr>
+<tr class="separator:ac5e9bcf97c425cf61d6f466358aab1ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a285d88d6d95ce0bfed19bb41c5be485f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a285d88d6d95ce0bfed19bb41c5be485f">kXMP_NS_XMP_Graphics</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/xap/1.0/g/&quot;</td></tr>
+<tr class="separator:a285d88d6d95ce0bfed19bb41c5be485f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a49e25beee90220541ecfc7ac92fb78b5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a49e25beee90220541ecfc7ac92fb78b5">kXMP_NS_XMP_Font</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/xap/1.0/sType/Font#&quot;</td></tr>
+<tr class="separator:a49e25beee90220541ecfc7ac92fb78b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac91c21a77be4fdc3d8be26fe37b003c8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#ac91c21a77be4fdc3d8be26fe37b003c8">kXMP_NS_XMP_ManifestItem</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/xap/1.0/sType/ManifestItem#&quot;</td></tr>
+<tr class="separator:ac91c21a77be4fdc3d8be26fe37b003c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2663db91a956937f0921f67342a31646"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a2663db91a956937f0921f67342a31646">kXMP_NS_XMP_G_IMG</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/xap/1.0/g/img/&quot;</td></tr>
+<tr class="separator:a2663db91a956937f0921f67342a31646"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a10f6b8c9d551ec50ea536026b2c2b315"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a10f6b8c9d551ec50ea536026b2c2b315">kXMP_NS_DICOM</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/DICOM/&quot;</td></tr>
+<tr class="separator:a10f6b8c9d551ec50ea536026b2c2b315"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a650c052a916eefa95f0d0ff7a34eb9a0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a650c052a916eefa95f0d0ff7a34eb9a0">kXMP_NS_PLUS</a>&#160;&#160;&#160;&quot;http://ns.useplus.org/ldf/xmp/1.0/&quot;</td></tr>
+<tr class="separator:a650c052a916eefa95f0d0ff7a34eb9a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acc810bb3c0fbab74ba54fca90153e1a0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#acc810bb3c0fbab74ba54fca90153e1a0">kXMP_NS_PDFA_Schema</a>&#160;&#160;&#160;&quot;http://www.aiim.org/pdfa/ns/schema#&quot;</td></tr>
+<tr class="separator:acc810bb3c0fbab74ba54fca90153e1a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a66eb8f71efe1b64635ab41ee86673436"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a66eb8f71efe1b64635ab41ee86673436">kXMP_NS_PDFA_Property</a>&#160;&#160;&#160;&quot;http://www.aiim.org/pdfa/ns/property#&quot;</td></tr>
+<tr class="separator:a66eb8f71efe1b64635ab41ee86673436"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a02fa37c61718c9712000b834df5d4fdc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a02fa37c61718c9712000b834df5d4fdc">kXMP_NS_PDFA_Type</a>&#160;&#160;&#160;&quot;http://www.aiim.org/pdfa/ns/type#&quot;</td></tr>
+<tr class="separator:a02fa37c61718c9712000b834df5d4fdc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4f8605dd83a33b8ef13cb8b06f356b2e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a4f8605dd83a33b8ef13cb8b06f356b2e">kXMP_NS_PDFA_Field</a>&#160;&#160;&#160;&quot;http://www.aiim.org/pdfa/ns/field#&quot;</td></tr>
+<tr class="separator:a4f8605dd83a33b8ef13cb8b06f356b2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae29f21b2ae6b86fdefc50c92c3157683"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#ae29f21b2ae6b86fdefc50c92c3157683">kXMP_NS_PDFA_ID</a>&#160;&#160;&#160;&quot;http://www.aiim.org/pdfa/ns/id/&quot;</td></tr>
+<tr class="separator:ae29f21b2ae6b86fdefc50c92c3157683"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac47561b29c7d5e852e014e1391e38591"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#ac47561b29c7d5e852e014e1391e38591">kXMP_NS_PDFA_Extension</a>&#160;&#160;&#160;&quot;http://www.aiim.org/pdfa/ns/extension/&quot;</td></tr>
+<tr class="separator:ac47561b29c7d5e852e014e1391e38591"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a74c2a786c7ac349f4226c9694e3be641"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a74c2a786c7ac349f4226c9694e3be641">kXMP_NS_PDFX</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/pdfx/1.3/&quot;</td></tr>
+<tr class="separator:a74c2a786c7ac349f4226c9694e3be641"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a77d8c46d01eab6760579ffa049c80724"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a77d8c46d01eab6760579ffa049c80724">kXMP_NS_PDFX_ID</a>&#160;&#160;&#160;&quot;http://www.npes.org/pdfx/ns/id/&quot;</td></tr>
+<tr class="separator:a77d8c46d01eab6760579ffa049c80724"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a56197f91b537a0c2b5b9aadbcb404545"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a56197f91b537a0c2b5b9aadbcb404545">kXMP_SchemaNode</a>&#160;&#160;&#160;((<a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>)0x80000000UL)</td></tr>
+<tr class="separator:a56197f91b537a0c2b5b9aadbcb404545"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6a9b77b60c63781a8776f10880856bf4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a6a9b77b60c63781a8776f10880856bf4">kXMPFiles_UnknownOffset</a>&#160;&#160;&#160;((XMP_Int64)-1)</td></tr>
+<tr class="memdesc:a6a9b77b60c63781a8776f10880856bf4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constant for an unknown packet offset within a file. <a href="#a6a9b77b60c63781a8776f10880856bf4">More...</a><br /></td></tr>
+<tr class="separator:a6a9b77b60c63781a8776f10880856bf4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae0901aabcf619f17cff03f08e5ed3658"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#ae0901aabcf619f17cff03f08e5ed3658">kXMPFiles_UnknownLength</a>&#160;&#160;&#160;((XMP_Int32)-1)</td></tr>
+<tr class="memdesc:ae0901aabcf619f17cff03f08e5ed3658"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constant for an unknown packet length within a file. <a href="#ae0901aabcf619f17cff03f08e5ed3658">More...</a><br /></td></tr>
+<tr class="separator:ae0901aabcf619f17cff03f08e5ed3658"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">XML namespace constants for standard XMP schema.</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp4fa220dbd2b2cff5febc9fbf6030d852"></a> </p>
-</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a030875c9dc0861c9251a3374ca14a376"></a><!-- doxytag: member="XMP_Const.h::kXMP_NS_XMP" ref="a030875c9dc0861c9251a3374ca14a376" args="" -->
-#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a030875c9dc0861c9251a3374ca14a376">kXMP_NS_XMP</a>&nbsp;&nbsp;&nbsp;&quot;http://ns.adobe.com/xap/1.0/&quot;</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The XML namespace for the XMP "basic" schema. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae52d761e5a4fc8c8499215d2f3d82b90"></a><!-- doxytag: member="XMP_Const.h::kXMP_NS_XMP_Rights" ref="ae52d761e5a4fc8c8499215d2f3d82b90" args="" -->
-#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#ae52d761e5a4fc8c8499215d2f3d82b90">kXMP_NS_XMP_Rights</a>&nbsp;&nbsp;&nbsp;&quot;http://ns.adobe.com/xap/1.0/rights/&quot;</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The XML namespace for the XMP copyright schema. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac67379a9ffa425d0d7976a51c4f2f754"></a><!-- doxytag: member="XMP_Const.h::kXMP_NS_XMP_MM" ref="ac67379a9ffa425d0d7976a51c4f2f754" args="" -->
-#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#ac67379a9ffa425d0d7976a51c4f2f754">kXMP_NS_XMP_MM</a>&nbsp;&nbsp;&nbsp;&quot;http://ns.adobe.com/xap/1.0/mm/&quot;</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The XML namespace for the XMP digital asset management schema. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a308e156c325618acb2172e550929ebee"></a><!-- doxytag: member="XMP_Const.h::kXMP_NS_XMP_BJ" ref="a308e156c325618acb2172e550929ebee" args="" -->
-#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a308e156c325618acb2172e550929ebee">kXMP_NS_XMP_BJ</a>&nbsp;&nbsp;&nbsp;&quot;http://ns.adobe.com/xap/1.0/bj/&quot;</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The XML namespace for the job management schema. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0bcb67d0dd0922504e3da7ca5c40c82a"></a><!-- doxytag: member="XMP_Const.h::kXMP_NS_PDF" ref="a0bcb67d0dd0922504e3da7ca5c40c82a" args="" -->
-#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a0bcb67d0dd0922504e3da7ca5c40c82a">kXMP_NS_PDF</a>&nbsp;&nbsp;&nbsp;&quot;http://ns.adobe.com/pdf/1.3/&quot;</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The XML namespace for the PDF schema. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa1a6f38ebfcdb281c5bf2809859167c7"></a><!-- doxytag: member="XMP_Const.h::kXMP_NS_Photoshop" ref="aa1a6f38ebfcdb281c5bf2809859167c7" args="" -->
-#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#aa1a6f38ebfcdb281c5bf2809859167c7">kXMP_NS_Photoshop</a>&nbsp;&nbsp;&nbsp;&quot;http://ns.adobe.com/photoshop/1.0/&quot;</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The XML namespace for the Photoshop custom schema. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad12182e1df1652f56b5eec60c1fcdd8f"></a><!-- doxytag: member="XMP_Const.h::kXMP_NS_EXIF" ref="ad12182e1df1652f56b5eec60c1fcdd8f" args="" -->
-#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#ad12182e1df1652f56b5eec60c1fcdd8f">kXMP_NS_EXIF</a>&nbsp;&nbsp;&nbsp;&quot;http://ns.adobe.com/exif/1.0/&quot;</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The XML namespace for Adobe's EXIF schema. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0a2d9c5f7beb27553214a7ad1df4f27e"></a><!-- doxytag: member="XMP_Const.h::kXMP_NS_XMP_T" ref="a0a2d9c5f7beb27553214a7ad1df4f27e" args="" -->
-#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a0a2d9c5f7beb27553214a7ad1df4f27e">kXMP_NS_XMP_T</a>&nbsp;&nbsp;&nbsp;&quot;http://ns.adobe.com/xap/1.0/t/&quot;</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The XML namespace for the XMP text document schema. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a39afb495ffb24bb3082493c6811e65d0"></a><!-- doxytag: member="XMP_Const.h::kXMP_NS_XMP_T_PG" ref="a39afb495ffb24bb3082493c6811e65d0" args="" -->
-#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a39afb495ffb24bb3082493c6811e65d0">kXMP_NS_XMP_T_PG</a>&nbsp;&nbsp;&nbsp;&quot;http://ns.adobe.com/xap/1.0/t/pg/&quot;</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The XML namespace for the XMP paged document schema. <br/></td></tr>
+<tr class="memitem:a030875c9dc0861c9251a3374ca14a376"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a030875c9dc0861c9251a3374ca14a376">kXMP_NS_XMP</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/xap/1.0/&quot;</td></tr>
+<tr class="memdesc:a030875c9dc0861c9251a3374ca14a376"><td class="mdescLeft">&#160;</td><td class="mdescRight">The XML namespace for the XMP "basic" schema. <a href="#a030875c9dc0861c9251a3374ca14a376">More...</a><br /></td></tr>
+<tr class="separator:a030875c9dc0861c9251a3374ca14a376"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae52d761e5a4fc8c8499215d2f3d82b90"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#ae52d761e5a4fc8c8499215d2f3d82b90">kXMP_NS_XMP_Rights</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/xap/1.0/rights/&quot;</td></tr>
+<tr class="memdesc:ae52d761e5a4fc8c8499215d2f3d82b90"><td class="mdescLeft">&#160;</td><td class="mdescRight">The XML namespace for the XMP copyright schema. <a href="#ae52d761e5a4fc8c8499215d2f3d82b90">More...</a><br /></td></tr>
+<tr class="separator:ae52d761e5a4fc8c8499215d2f3d82b90"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac67379a9ffa425d0d7976a51c4f2f754"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#ac67379a9ffa425d0d7976a51c4f2f754">kXMP_NS_XMP_MM</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/xap/1.0/mm/&quot;</td></tr>
+<tr class="memdesc:ac67379a9ffa425d0d7976a51c4f2f754"><td class="mdescLeft">&#160;</td><td class="mdescRight">The XML namespace for the XMP digital asset management schema. <a href="#ac67379a9ffa425d0d7976a51c4f2f754">More...</a><br /></td></tr>
+<tr class="separator:ac67379a9ffa425d0d7976a51c4f2f754"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a308e156c325618acb2172e550929ebee"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a308e156c325618acb2172e550929ebee">kXMP_NS_XMP_BJ</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/xap/1.0/bj/&quot;</td></tr>
+<tr class="memdesc:a308e156c325618acb2172e550929ebee"><td class="mdescLeft">&#160;</td><td class="mdescRight">The XML namespace for the job management schema. <a href="#a308e156c325618acb2172e550929ebee">More...</a><br /></td></tr>
+<tr class="separator:a308e156c325618acb2172e550929ebee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0bcb67d0dd0922504e3da7ca5c40c82a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a0bcb67d0dd0922504e3da7ca5c40c82a">kXMP_NS_PDF</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/pdf/1.3/&quot;</td></tr>
+<tr class="memdesc:a0bcb67d0dd0922504e3da7ca5c40c82a"><td class="mdescLeft">&#160;</td><td class="mdescRight">The XML namespace for the PDF schema. <a href="#a0bcb67d0dd0922504e3da7ca5c40c82a">More...</a><br /></td></tr>
+<tr class="separator:a0bcb67d0dd0922504e3da7ca5c40c82a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa1a6f38ebfcdb281c5bf2809859167c7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#aa1a6f38ebfcdb281c5bf2809859167c7">kXMP_NS_Photoshop</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/photoshop/1.0/&quot;</td></tr>
+<tr class="memdesc:aa1a6f38ebfcdb281c5bf2809859167c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">The XML namespace for the Photoshop custom schema. <a href="#aa1a6f38ebfcdb281c5bf2809859167c7">More...</a><br /></td></tr>
+<tr class="separator:aa1a6f38ebfcdb281c5bf2809859167c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad12182e1df1652f56b5eec60c1fcdd8f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#ad12182e1df1652f56b5eec60c1fcdd8f">kXMP_NS_EXIF</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/exif/1.0/&quot;</td></tr>
+<tr class="memdesc:ad12182e1df1652f56b5eec60c1fcdd8f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The XML namespace for Adobe's EXIF schema. <a href="#ad12182e1df1652f56b5eec60c1fcdd8f">More...</a><br /></td></tr>
+<tr class="separator:ad12182e1df1652f56b5eec60c1fcdd8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a673355818b7b9224e8fec0fbc60ba00c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a673355818b7b9224e8fec0fbc60ba00c">kXMP_NS_TIFF</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/tiff/1.0/&quot;</td></tr>
+<tr class="memdesc:a673355818b7b9224e8fec0fbc60ba00c"><td class="mdescLeft">&#160;</td><td class="mdescRight">The XML namespace for Adobe's TIFF schema. <a href="#a673355818b7b9224e8fec0fbc60ba00c">More...</a><br /></td></tr>
+<tr class="separator:a673355818b7b9224e8fec0fbc60ba00c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0a2d9c5f7beb27553214a7ad1df4f27e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a0a2d9c5f7beb27553214a7ad1df4f27e">kXMP_NS_XMP_T</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/xap/1.0/t/&quot;</td></tr>
+<tr class="memdesc:a0a2d9c5f7beb27553214a7ad1df4f27e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The XML namespace for the XMP text document schema. <a href="#a0a2d9c5f7beb27553214a7ad1df4f27e">More...</a><br /></td></tr>
+<tr class="separator:a0a2d9c5f7beb27553214a7ad1df4f27e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a39afb495ffb24bb3082493c6811e65d0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a39afb495ffb24bb3082493c6811e65d0">kXMP_NS_XMP_T_PG</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/xap/1.0/t/pg/&quot;</td></tr>
+<tr class="memdesc:a39afb495ffb24bb3082493c6811e65d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">The XML namespace for the XMP paged document schema. <a href="#a39afb495ffb24bb3082493c6811e65d0">More...</a><br /></td></tr>
+<tr class="separator:a39afb495ffb24bb3082493c6811e65d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">XML namespace constants for qualifiers and structured property fields.</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpf10043a54aab77bb14e96bf8abe630b3"></a> </p>
-</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab466db52a4b85cecfa04710682c1e671"></a><!-- doxytag: member="XMP_Const.h::kXMP_NS_XMP_IdentifierQual" ref="ab466db52a4b85cecfa04710682c1e671" args="" -->
-#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#ab466db52a4b85cecfa04710682c1e671">kXMP_NS_XMP_IdentifierQual</a>&nbsp;&nbsp;&nbsp;&quot;http://ns.adobe.com/xmp/Identifier/qual/1.0/&quot;</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The XML namespace for qualifiers of the xmp:Identifier property. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9618e013619aa92ebc808b62243d2ba8"></a><!-- doxytag: member="XMP_Const.h::kXMP_NS_XMP_Dimensions" ref="a9618e013619aa92ebc808b62243d2ba8" args="" -->
-#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a9618e013619aa92ebc808b62243d2ba8">kXMP_NS_XMP_Dimensions</a>&nbsp;&nbsp;&nbsp;&quot;http://ns.adobe.com/xap/1.0/sType/Dimensions#&quot;</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The XML namespace for fields of the Dimensions type. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a935641acc7d01e782ad7a457a7ff338b"></a><!-- doxytag: member="XMP_Const.h::kXMP_NS_XMP_Image" ref="a935641acc7d01e782ad7a457a7ff338b" args="" -->
-#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a935641acc7d01e782ad7a457a7ff338b">kXMP_NS_XMP_Image</a>&nbsp;&nbsp;&nbsp;&quot;http://ns.adobe.com/xap/1.0/g/img/&quot;</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The XML namespace for fields of a graphical image. Used for the Thumbnail type. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a861613273127156050b456eee11f6b0a"></a><!-- doxytag: member="XMP_Const.h::kXMP_NS_XMP_ResourceEvent" ref="a861613273127156050b456eee11f6b0a" args="" -->
-#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a861613273127156050b456eee11f6b0a">kXMP_NS_XMP_ResourceEvent</a>&nbsp;&nbsp;&nbsp;&quot;http://ns.adobe.com/xap/1.0/sType/ResourceEvent#&quot;</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The XML namespace for fields of the ResourceEvent type. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9bf51f2653400645f7b5087e8c4e1c77"></a><!-- doxytag: member="XMP_Const.h::kXMP_NS_XMP_ResourceRef" ref="a9bf51f2653400645f7b5087e8c4e1c77" args="" -->
-#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a9bf51f2653400645f7b5087e8c4e1c77">kXMP_NS_XMP_ResourceRef</a>&nbsp;&nbsp;&nbsp;&quot;http://ns.adobe.com/xap/1.0/sType/ResourceRef#&quot;</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The XML namespace for fields of the ResourceRef type. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab4923bed71ab29c6aa88debe8816c0a2"></a><!-- doxytag: member="XMP_Const.h::kXMP_NS_XMP_ST_Version" ref="ab4923bed71ab29c6aa88debe8816c0a2" args="" -->
-#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#ab4923bed71ab29c6aa88debe8816c0a2">kXMP_NS_XMP_ST_Version</a>&nbsp;&nbsp;&nbsp;&quot;http://ns.adobe.com/xap/1.0/sType/Version#&quot;</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The XML namespace for fields of the Version type. <br/></td></tr>
+<tr class="memitem:ab466db52a4b85cecfa04710682c1e671"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#ab466db52a4b85cecfa04710682c1e671">kXMP_NS_XMP_IdentifierQual</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/xmp/Identifier/qual/1.0/&quot;</td></tr>
+<tr class="memdesc:ab466db52a4b85cecfa04710682c1e671"><td class="mdescLeft">&#160;</td><td class="mdescRight">The XML namespace for qualifiers of the xmp:Identifier property. <a href="#ab466db52a4b85cecfa04710682c1e671">More...</a><br /></td></tr>
+<tr class="separator:ab466db52a4b85cecfa04710682c1e671"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9618e013619aa92ebc808b62243d2ba8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a9618e013619aa92ebc808b62243d2ba8">kXMP_NS_XMP_Dimensions</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/xap/1.0/sType/Dimensions#&quot;</td></tr>
+<tr class="memdesc:a9618e013619aa92ebc808b62243d2ba8"><td class="mdescLeft">&#160;</td><td class="mdescRight">The XML namespace for fields of the Dimensions type. <a href="#a9618e013619aa92ebc808b62243d2ba8">More...</a><br /></td></tr>
+<tr class="separator:a9618e013619aa92ebc808b62243d2ba8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a935641acc7d01e782ad7a457a7ff338b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a935641acc7d01e782ad7a457a7ff338b">kXMP_NS_XMP_Image</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/xap/1.0/g/img/&quot;</td></tr>
+<tr class="memdesc:a935641acc7d01e782ad7a457a7ff338b"><td class="mdescLeft">&#160;</td><td class="mdescRight">The XML namespace for fields of a graphical image. Used for the Thumbnail type. <a href="#a935641acc7d01e782ad7a457a7ff338b">More...</a><br /></td></tr>
+<tr class="separator:a935641acc7d01e782ad7a457a7ff338b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a861613273127156050b456eee11f6b0a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a861613273127156050b456eee11f6b0a">kXMP_NS_XMP_ResourceEvent</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/xap/1.0/sType/ResourceEvent#&quot;</td></tr>
+<tr class="memdesc:a861613273127156050b456eee11f6b0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">The XML namespace for fields of the ResourceEvent type. <a href="#a861613273127156050b456eee11f6b0a">More...</a><br /></td></tr>
+<tr class="separator:a861613273127156050b456eee11f6b0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9bf51f2653400645f7b5087e8c4e1c77"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a9bf51f2653400645f7b5087e8c4e1c77">kXMP_NS_XMP_ResourceRef</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/xap/1.0/sType/ResourceRef#&quot;</td></tr>
+<tr class="memdesc:a9bf51f2653400645f7b5087e8c4e1c77"><td class="mdescLeft">&#160;</td><td class="mdescRight">The XML namespace for fields of the ResourceRef type. <a href="#a9bf51f2653400645f7b5087e8c4e1c77">More...</a><br /></td></tr>
+<tr class="separator:a9bf51f2653400645f7b5087e8c4e1c77"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab4923bed71ab29c6aa88debe8816c0a2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#ab4923bed71ab29c6aa88debe8816c0a2">kXMP_NS_XMP_ST_Version</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/xap/1.0/sType/Version#&quot;</td></tr>
+<tr class="memdesc:ab4923bed71ab29c6aa88debe8816c0a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">The XML namespace for fields of the Version type. <a href="#ab4923bed71ab29c6aa88debe8816c0a2">More...</a><br /></td></tr>
+<tr class="separator:ab4923bed71ab29c6aa88debe8816c0a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac7dc4d65bcbba2862e410cc8cfdff6f6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#ac7dc4d65bcbba2862e410cc8cfdff6f6">kXMP_NS_XMP_ST_Job</a>&#160;&#160;&#160;&quot;http://ns.adobe.com/xap/1.0/sType/Job#&quot;</td></tr>
+<tr class="memdesc:ac7dc4d65bcbba2862e410cc8cfdff6f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">The XML namespace for fields of the JobRef type. <a href="#ac7dc4d65bcbba2862e410cc8cfdff6f6">More...</a><br /></td></tr>
+<tr class="separator:ac7dc4d65bcbba2862e410cc8cfdff6f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">XML namespace constants from outside Adobe.</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpdebdeb4c1db10bafdc0a5281ff7fb540"></a> </p>
-</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a44453f0d0a1dd295d41722c2387b36fa"></a><!-- doxytag: member="XMP_Const.h::kXMP_NS_DC" ref="a44453f0d0a1dd295d41722c2387b36fa" args="" -->
-#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a44453f0d0a1dd295d41722c2387b36fa">kXMP_NS_DC</a>&nbsp;&nbsp;&nbsp;&quot;http://purl.org/dc/elements/1.1/&quot;</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The XML namespace for the Dublin Core schema. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab794d3d798daf75a963398347dcbb79b"></a><!-- doxytag: member="XMP_Const.h::kXMP_NS_IPTCCore" ref="ab794d3d798daf75a963398347dcbb79b" args="" -->
-#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#ab794d3d798daf75a963398347dcbb79b">kXMP_NS_IPTCCore</a>&nbsp;&nbsp;&nbsp;&quot;http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/&quot;</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The XML namespace for the IPTC Core schema. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a12ca045d4c12992ec8f6c1003523de20"></a><!-- doxytag: member="XMP_Const.h::kXMP_NS_IPTCExt" ref="a12ca045d4c12992ec8f6c1003523de20" args="" -->
-#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a12ca045d4c12992ec8f6c1003523de20">kXMP_NS_IPTCExt</a>&nbsp;&nbsp;&nbsp;&quot;http://iptc.org/std/Iptc4xmpExt/2008-02-29/&quot;</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The XML namespace for the IPTC Extension schema. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a276fac0f70893607afa3f09030ad84c7"></a><!-- doxytag: member="XMP_Const.h::kXMP_NS_RDF" ref="a276fac0f70893607afa3f09030ad84c7" args="" -->
-#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a276fac0f70893607afa3f09030ad84c7">kXMP_NS_RDF</a>&nbsp;&nbsp;&nbsp;&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The XML namespace for RDF. <br/></td></tr>
+<tr class="memitem:a44453f0d0a1dd295d41722c2387b36fa"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a44453f0d0a1dd295d41722c2387b36fa">kXMP_NS_DC</a>&#160;&#160;&#160;&quot;http://purl.org/dc/elements/1.1/&quot;</td></tr>
+<tr class="memdesc:a44453f0d0a1dd295d41722c2387b36fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">The XML namespace for the Dublin Core schema. <a href="#a44453f0d0a1dd295d41722c2387b36fa">More...</a><br /></td></tr>
+<tr class="separator:a44453f0d0a1dd295d41722c2387b36fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab794d3d798daf75a963398347dcbb79b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#ab794d3d798daf75a963398347dcbb79b">kXMP_NS_IPTCCore</a>&#160;&#160;&#160;&quot;http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/&quot;</td></tr>
+<tr class="memdesc:ab794d3d798daf75a963398347dcbb79b"><td class="mdescLeft">&#160;</td><td class="mdescRight">The XML namespace for the IPTC Core schema. <a href="#ab794d3d798daf75a963398347dcbb79b">More...</a><br /></td></tr>
+<tr class="separator:ab794d3d798daf75a963398347dcbb79b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a12ca045d4c12992ec8f6c1003523de20"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a12ca045d4c12992ec8f6c1003523de20">kXMP_NS_IPTCExt</a>&#160;&#160;&#160;&quot;http://iptc.org/std/Iptc4xmpExt/2008-02-29/&quot;</td></tr>
+<tr class="memdesc:a12ca045d4c12992ec8f6c1003523de20"><td class="mdescLeft">&#160;</td><td class="mdescRight">The XML namespace for the IPTC Extension schema. <a href="#a12ca045d4c12992ec8f6c1003523de20">More...</a><br /></td></tr>
+<tr class="separator:a12ca045d4c12992ec8f6c1003523de20"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a276fac0f70893607afa3f09030ad84c7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a276fac0f70893607afa3f09030ad84c7">kXMP_NS_RDF</a>&#160;&#160;&#160;&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;</td></tr>
+<tr class="memdesc:a276fac0f70893607afa3f09030ad84c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">The XML namespace for RDF. <a href="#a276fac0f70893607afa3f09030ad84c7">More...</a><br /></td></tr>
+<tr class="separator:a276fac0f70893607afa3f09030ad84c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a97564c70460d1f235c8a41b8ac40cfe9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a97564c70460d1f235c8a41b8ac40cfe9">kXMP_NS_XML</a>&#160;&#160;&#160;&quot;http://www.w3.org/XML/1998/namespace&quot;</td></tr>
+<tr class="memdesc:a97564c70460d1f235c8a41b8ac40cfe9"><td class="mdescLeft">&#160;</td><td class="mdescRight">The XML namespace for XML. <a href="#a97564c70460d1f235c8a41b8ac40cfe9">More...</a><br /></td></tr>
+<tr class="separator:a97564c70460d1f235c8a41b8ac40cfe9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Macros for standard option selections.</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpf56c489a61a7c3b75b1257d6b343b0e6"></a> </p>
-</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9549b9a138a896257b5a70176d125317"></a><!-- doxytag: member="XMP_Const.h::kXMP_ArrayLastItem" ref="a9549b9a138a896257b5a70176d125317" args="" -->
-#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a9549b9a138a896257b5a70176d125317">kXMP_ArrayLastItem</a>&nbsp;&nbsp;&nbsp;((<a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a>)(-1L))</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Options macro accesses last array item. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8283c9596c03b6d626d5a2b7a90e23ab"></a><!-- doxytag: member="XMP_Const.h::kXMP_UseNullTermination" ref="a8283c9596c03b6d626d5a2b7a90e23ab" args="" -->
-#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a8283c9596c03b6d626d5a2b7a90e23ab">kXMP_UseNullTermination</a>&nbsp;&nbsp;&nbsp;((<a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a>)(~0UL))</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Options macro sets string style. <br/></td></tr>
+<tr class="memitem:a9549b9a138a896257b5a70176d125317"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a9549b9a138a896257b5a70176d125317">kXMP_ArrayLastItem</a>&#160;&#160;&#160;((<a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a>)(-1L))</td></tr>
+<tr class="memdesc:a9549b9a138a896257b5a70176d125317"><td class="mdescLeft">&#160;</td><td class="mdescRight">Options macro accesses last array item. <a href="#a9549b9a138a896257b5a70176d125317">More...</a><br /></td></tr>
+<tr class="separator:a9549b9a138a896257b5a70176d125317"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8283c9596c03b6d626d5a2b7a90e23ab"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a8283c9596c03b6d626d5a2b7a90e23ab">kXMP_UseNullTermination</a>&#160;&#160;&#160;((<a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a>)(~0UL))</td></tr>
+<tr class="memdesc:a8283c9596c03b6d626d5a2b7a90e23ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Options macro sets string style. <a href="#a8283c9596c03b6d626d5a2b7a90e23ab">More...</a><br /></td></tr>
+<tr class="separator:a8283c9596c03b6d626d5a2b7a90e23ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aff1df9f3cf050f8b8d3a574db3c3326b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#aff1df9f3cf050f8b8d3a574db3c3326b">kXMP_NoOptions</a>&#160;&#160;&#160;((<a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>)0UL)</td></tr>
+<tr class="memdesc:aff1df9f3cf050f8b8d3a574db3c3326b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Options macro clears all property-type bits. <a href="#aff1df9f3cf050f8b8d3a574db3c3326b">More...</a><br /></td></tr>
+<tr class="separator:aff1df9f3cf050f8b8d3a574db3c3326b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Macros for setting and testing general option bits.</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpd60cb9ba6ac15b57e2db3e73c65c0863"></a> </p>
-</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a69c4d1b80c4dd581366e0c60209ef612">XMP_SetOption</a>(var, opt)&nbsp;&nbsp;&nbsp;var |= (opt)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Macro sets an option flag bit. <a href="#a69c4d1b80c4dd581366e0c60209ef612"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a10c3c9b1b6e266b0b4eb6abe7b03b7d8">XMP_ClearOption</a>(var, opt)&nbsp;&nbsp;&nbsp;var &amp;= ~(opt)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Macro clears an option flag bit. <a href="#a10c3c9b1b6e266b0b4eb6abe7b03b7d8"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#aa31596e850cb6b208f5920833d67b9f1">XMP_TestOption</a>(var, opt)&nbsp;&nbsp;&nbsp;(((var) &amp; (opt)) != 0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Macro reports whether an option flag bit is set. <a href="#aa31596e850cb6b208f5920833d67b9f1"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#aba3edaa921326c7916adb0b70b1bcfb4">XMP_OptionIsSet</a>(var, opt)&nbsp;&nbsp;&nbsp;(((var) &amp; (opt)) != 0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Macro reports whether an option flag bit is set. <a href="#aba3edaa921326c7916adb0b70b1bcfb4"></a><br/></td></tr>
+<tr class="memitem:a10a766c47b5ea01f285501b49d20bc62"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a10a766c47b5ea01f285501b49d20bc62">XMP_SetOption</a>(var, opt) &#160;&#160;&#160;var |= (opt)</td></tr>
+<tr class="memdesc:a10a766c47b5ea01f285501b49d20bc62"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro sets an option flag bit. <a href="#a10a766c47b5ea01f285501b49d20bc62">More...</a><br /></td></tr>
+<tr class="separator:a10a766c47b5ea01f285501b49d20bc62"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a04133ceba1ad7a582aa63c8f4a5abf69"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a04133ceba1ad7a582aa63c8f4a5abf69">XMP_ClearOption</a>(var, opt) &#160;&#160;&#160;var &amp;= ~(opt)</td></tr>
+<tr class="memdesc:a04133ceba1ad7a582aa63c8f4a5abf69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro clears an option flag bit. <a href="#a04133ceba1ad7a582aa63c8f4a5abf69">More...</a><br /></td></tr>
+<tr class="separator:a04133ceba1ad7a582aa63c8f4a5abf69"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aee6dc47c8013d4514ed363ae16ba2ad3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#aee6dc47c8013d4514ed363ae16ba2ad3">XMP_TestOption</a>(var, opt) &#160;&#160;&#160;(((var) &amp; (opt)) != 0)</td></tr>
+<tr class="memdesc:aee6dc47c8013d4514ed363ae16ba2ad3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro reports whether an option flag bit is set. <a href="#aee6dc47c8013d4514ed363ae16ba2ad3">More...</a><br /></td></tr>
+<tr class="separator:aee6dc47c8013d4514ed363ae16ba2ad3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8d8d2810a46a2b171107f4a2387e003d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a8d8d2810a46a2b171107f4a2387e003d">XMP_OptionIsSet</a>(var, opt) &#160;&#160;&#160;(((var) &amp; (opt)) != 0)</td></tr>
+<tr class="memdesc:a8d8d2810a46a2b171107f4a2387e003d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro reports whether an option flag bit is set. <a href="#a8d8d2810a46a2b171107f4a2387e003d">More...</a><br /></td></tr>
+<tr class="separator:a8d8d2810a46a2b171107f4a2387e003d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1d41f53bd1d5c88fad8322ce15e39516"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a1d41f53bd1d5c88fad8322ce15e39516">XMP_OptionIsClear</a>(var, opt)&#160;&#160;&#160;(((var) &amp; (opt)) == 0)</td></tr>
+<tr class="memdesc:a1d41f53bd1d5c88fad8322ce15e39516"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro reports whether an option flag bit is clear. <a href="#a1d41f53bd1d5c88fad8322ce15e39516">More...</a><br /></td></tr>
+<tr class="separator:a1d41f53bd1d5c88fad8322ce15e39516"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Macros for setting and testing specific option bits.</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpa98d6e70169979cc19dc98397e83a762"></a> </p>
-</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a510b75338bd488ddd8d9bd4e326806f9">XMP_PropIsSimple</a>(opt)&nbsp;&nbsp;&nbsp;(((opt) &amp; kXMP_PropCompositeMask) == 0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Macro reports the property type specified by an options flag. <a href="#a510b75338bd488ddd8d9bd4e326806f9"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#aebea8c35e09da7db613e27d0e3ce945f">XMP_PropIsStruct</a>(opt)&nbsp;&nbsp;&nbsp;(((opt) &amp; kXMP_PropValueIsStruct) != 0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Macro reports the property type specified by an options flag. <a href="#aebea8c35e09da7db613e27d0e3ce945f"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a98ae521b621cfa3611211e3922a0fce8">XMP_PropIsArray</a>(opt)&nbsp;&nbsp;&nbsp;(((opt) &amp; kXMP_PropValueIsArray) != 0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Macro reports the property type specified by an options flag. <a href="#a98ae521b621cfa3611211e3922a0fce8"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a8d763b3d36c7067cd7bccd32d4066b43">XMP_ArrayIsUnordered</a>(opt)&nbsp;&nbsp;&nbsp;(((opt) &amp; kXMP_PropArrayIsOrdered) == 0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Macro reports the property type specified by an options flag. <a href="#a8d763b3d36c7067cd7bccd32d4066b43"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a72c7077f3ff3e39804a899533867327d">XMP_ArrayIsOrdered</a>(opt)&nbsp;&nbsp;&nbsp;(((opt) &amp; kXMP_PropArrayIsOrdered) != 0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Macro reports the property type specified by an options flag. <a href="#a72c7077f3ff3e39804a899533867327d"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a86bc34c4e64dec75618c348163a88720">XMP_ArrayIsAlternate</a>(opt)&nbsp;&nbsp;&nbsp;(((opt) &amp; kXMP_PropArrayIsAlternate) != 0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Macro reports the property type specified by an options flag. <a href="#a86bc34c4e64dec75618c348163a88720"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#abbef21da7bce1491f780586c3e01cd9e">XMP_ArrayIsAltText</a>(opt)&nbsp;&nbsp;&nbsp;(((opt) &amp; kXMP_PropArrayIsAltText) != 0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Macro reports the property type specified by an options flag. <a href="#abbef21da7bce1491f780586c3e01cd9e"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a10828aa191aa666aa1166c27beead2a6">XMP_PropHasQualifiers</a>(opt)&nbsp;&nbsp;&nbsp;(((opt) &amp; kXMP_PropHasQualifiers) != 0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Macro reports the property type specified by an options flag. <a href="#a10828aa191aa666aa1166c27beead2a6"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a8d1b4da6b3cb3a67bf4f8e79352eeeaa">XMP_PropIsQualifier</a>(opt)&nbsp;&nbsp;&nbsp;(((opt) &amp; kXMP_PropIsQualifier) != 0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Macro reports the property type specified by an options flag. <a href="#a8d1b4da6b3cb3a67bf4f8e79352eeeaa"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a7dc82df90f45b0d746b67d8fdc529c83">XMP_PropHasLang</a>(opt)&nbsp;&nbsp;&nbsp;(((opt) &amp; kXMP_PropHasLang) != 0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Macro reports the property type specified by an options flag. <a href="#a7dc82df90f45b0d746b67d8fdc529c83"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a12870d8442720ce5230791abc26f9597">XMP_NodeIsSchema</a>(opt)&nbsp;&nbsp;&nbsp;(((opt) &amp; kXMP_SchemaNode) != 0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Macro reports the property type specified by an options flag. <a href="#a12870d8442720ce5230791abc26f9597"></a><br/></td></tr>
+<tr class="memitem:a43aeebde901bea1932203107c690a2dc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a43aeebde901bea1932203107c690a2dc">XMP_PropIsSimple</a>(opt) &#160;&#160;&#160;(((opt) &amp; <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a60a9f26fb66c2e65cf40d9bc44968956">kXMP_PropCompositeMask</a>) == 0)</td></tr>
+<tr class="memdesc:a43aeebde901bea1932203107c690a2dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro reports the property type specified by an options flag. <a href="#a43aeebde901bea1932203107c690a2dc">More...</a><br /></td></tr>
+<tr class="separator:a43aeebde901bea1932203107c690a2dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9ecd2dede6b25ecec9a430c151d74d83"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a9ecd2dede6b25ecec9a430c151d74d83">XMP_PropIsStruct</a>(opt) &#160;&#160;&#160;(((opt) &amp; <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e">kXMP_PropValueIsStruct</a>) != 0)</td></tr>
+<tr class="memdesc:a9ecd2dede6b25ecec9a430c151d74d83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro reports the property type specified by an options flag. <a href="#a9ecd2dede6b25ecec9a430c151d74d83">More...</a><br /></td></tr>
+<tr class="separator:a9ecd2dede6b25ecec9a430c151d74d83"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab8cf5a7c0f5a8dfc052117638fb55324"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#ab8cf5a7c0f5a8dfc052117638fb55324">XMP_PropIsArray</a>(opt) &#160;&#160;&#160;(((opt) &amp; <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a9b7706e0f0716ac7546bdc24ffedd0bc">kXMP_PropValueIsArray</a>) != 0)</td></tr>
+<tr class="memdesc:ab8cf5a7c0f5a8dfc052117638fb55324"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro reports the property type specified by an options flag. <a href="#ab8cf5a7c0f5a8dfc052117638fb55324">More...</a><br /></td></tr>
+<tr class="separator:ab8cf5a7c0f5a8dfc052117638fb55324"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a67849593ac3ffe237743d301d94f1449"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a67849593ac3ffe237743d301d94f1449">XMP_ArrayIsUnordered</a>(opt) &#160;&#160;&#160;(((opt) &amp; <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5af1cdb3b0a3e852ec55e747a1686aba04">kXMP_PropArrayIsOrdered</a>) == 0)</td></tr>
+<tr class="memdesc:a67849593ac3ffe237743d301d94f1449"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro reports the property type specified by an options flag. <a href="#a67849593ac3ffe237743d301d94f1449">More...</a><br /></td></tr>
+<tr class="separator:a67849593ac3ffe237743d301d94f1449"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaace3ec19d70712e4eb16f6d36de9cfb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#aaace3ec19d70712e4eb16f6d36de9cfb">XMP_ArrayIsOrdered</a>(opt) &#160;&#160;&#160;(((opt) &amp; <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5af1cdb3b0a3e852ec55e747a1686aba04">kXMP_PropArrayIsOrdered</a>) != 0)</td></tr>
+<tr class="memdesc:aaace3ec19d70712e4eb16f6d36de9cfb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro reports the property type specified by an options flag. <a href="#aaace3ec19d70712e4eb16f6d36de9cfb">More...</a><br /></td></tr>
+<tr class="separator:aaace3ec19d70712e4eb16f6d36de9cfb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4928f3fcb7c05bf25694b63d95aa6ce7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a4928f3fcb7c05bf25694b63d95aa6ce7">XMP_ArrayIsAlternate</a>(opt) &#160;&#160;&#160;(((opt) &amp; <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a2596b1f0ea4600270c99102c86b5f1f1">kXMP_PropArrayIsAlternate</a>) != 0)</td></tr>
+<tr class="memdesc:a4928f3fcb7c05bf25694b63d95aa6ce7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro reports the property type specified by an options flag. <a href="#a4928f3fcb7c05bf25694b63d95aa6ce7">More...</a><br /></td></tr>
+<tr class="separator:a4928f3fcb7c05bf25694b63d95aa6ce7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a57d2bb01a830b278c8e6d1ecdead52c4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a57d2bb01a830b278c8e6d1ecdead52c4">XMP_ArrayIsAltText</a>(opt) &#160;&#160;&#160;(((opt) &amp; <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aba253f67a6cf44b7438a3f96b516846d">kXMP_PropArrayIsAltText</a>) != 0)</td></tr>
+<tr class="memdesc:a57d2bb01a830b278c8e6d1ecdead52c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro reports the property type specified by an options flag. <a href="#a57d2bb01a830b278c8e6d1ecdead52c4">More...</a><br /></td></tr>
+<tr class="separator:a57d2bb01a830b278c8e6d1ecdead52c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a10828aa191aa666aa1166c27beead2a6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a10828aa191aa666aa1166c27beead2a6">XMP_PropHasQualifiers</a>(opt)&#160;&#160;&#160;(((opt) &amp; <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a8e34a33a2eed56499d4f6f62da25d159">kXMP_PropHasQualifiers</a>) != 0)</td></tr>
+<tr class="memdesc:a10828aa191aa666aa1166c27beead2a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro reports the property type specified by an options flag. <a href="#a10828aa191aa666aa1166c27beead2a6">More...</a><br /></td></tr>
+<tr class="separator:a10828aa191aa666aa1166c27beead2a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9a555a9eb2fabe97dd57e8d2e1b077f5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a9a555a9eb2fabe97dd57e8d2e1b077f5">XMP_PropIsQualifier</a>(opt) &#160;&#160;&#160;(((opt) &amp; <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a30146ed5209f5c3eb4eeb1fd8e4fb9fe">kXMP_PropIsQualifier</a>) != 0)</td></tr>
+<tr class="memdesc:a9a555a9eb2fabe97dd57e8d2e1b077f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro reports the property type specified by an options flag. <a href="#a9a555a9eb2fabe97dd57e8d2e1b077f5">More...</a><br /></td></tr>
+<tr class="separator:a9a555a9eb2fabe97dd57e8d2e1b077f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adc4bc1a5da8c0a3d1a77366e4803680f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#adc4bc1a5da8c0a3d1a77366e4803680f">XMP_PropHasLang</a>(opt) &#160;&#160;&#160;(((opt) &amp; <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a3fa5ed87edc731bfb3817f58ba70a217">kXMP_PropHasLang</a>) != 0)</td></tr>
+<tr class="memdesc:adc4bc1a5da8c0a3d1a77366e4803680f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro reports the property type specified by an options flag. <a href="#adc4bc1a5da8c0a3d1a77366e4803680f">More...</a><br /></td></tr>
+<tr class="separator:adc4bc1a5da8c0a3d1a77366e4803680f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a18d4769112002d84e2ddd1aba6ef473c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a18d4769112002d84e2ddd1aba6ef473c">XMP_NodeIsSchema</a>(opt) &#160;&#160;&#160;(((opt) &amp; <a class="el" href="XMP__Const_8h.html#a56197f91b537a0c2b5b9aadbcb404545">kXMP_SchemaNode</a>) != 0)</td></tr>
+<tr class="memdesc:a18d4769112002d84e2ddd1aba6ef473c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro reports the property type specified by an options flag. <a href="#a18d4769112002d84e2ddd1aba6ef473c">More...</a><br /></td></tr>
+<tr class="separator:a18d4769112002d84e2ddd1aba6ef473c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a69a18fc954796cdbaa8771de5a476fab"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a69a18fc954796cdbaa8771de5a476fab">XMP_PropIsAlias</a>(opt) &#160;&#160;&#160;(((opt) &amp; <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5ab975c19fb5c50f732a1a0d84dadb7c37">kXMP_PropIsAlias</a>) != 0)</td></tr>
+<tr class="memdesc:a69a18fc954796cdbaa8771de5a476fab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro reports the property type specified by an options flag. <a href="#a69a18fc954796cdbaa8771de5a476fab">More...</a><br /></td></tr>
+<tr class="separator:a69a18fc954796cdbaa8771de5a476fab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Macros to test components of the character form mask</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp7b3a67f2c00b1e5b60da8334bdecda66"></a> </p>
-</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#aa7596216164335f926cb91d600cddf99">XMP_CharFormIs16Bit</a>(f)&nbsp;&nbsp;&nbsp;( ((int)(f) &amp; kXMP_Char16BitMask) != 0 )</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Macro reports the encoding of a character. <a href="#aa7596216164335f926cb91d600cddf99"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a1e99ef08266943f52f5c649ab2836ddf">XMP_CharFormIs32Bit</a>(f)&nbsp;&nbsp;&nbsp;( ((int)(f) &amp; kXMP_Char32BitMask) != 0 )</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Macro reports the encoding of a character. <a href="#a1e99ef08266943f52f5c649ab2836ddf"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#aba2539629b8d238fc56a1901dd07ebca">XMP_CharFormIsBigEndian</a>(f)&nbsp;&nbsp;&nbsp;( ((int)(f) &amp; kXMP_CharLittleEndianMask) == 0 )</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Macro reports the byte-order of a character. <a href="#aba2539629b8d238fc56a1901dd07ebca"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a906ec1cd2fb1631c1b5ad9ccdf9c0a6b">XMP_CharFormIsLittleEndian</a>(f)&nbsp;&nbsp;&nbsp;( ((int)(f) &amp; kXMP_CharLittleEndianMask) != 0 )</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Macro reports the byte-order of a character. <a href="#a906ec1cd2fb1631c1b5ad9ccdf9c0a6b"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a85bbf023b1b799c3c20176aa289d32b0">XMP_GetCharSize</a>(f)&nbsp;&nbsp;&nbsp;( ((int)(f)&amp;6) == 0 ? 1 : (int)(f)&amp;6 )</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Macro reports the byte-size of a character. <a href="#a85bbf023b1b799c3c20176aa289d32b0"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a8f522964919b742b4138c79611997bae">XMP_CharToSerializeForm</a>(cf)&nbsp;&nbsp;&nbsp;( (<a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>)(cf) )</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Macro converts <code>XMP_Uns8</code> to <code>XMP_OptionBits</code>. <a href="#a8f522964919b742b4138c79611997bae"></a><br/></td></tr>
-<tr><td colspan="2"><h2>Typedefs</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">typedef struct __XMPMeta__ *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">typedef struct __XMPIterator__ *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a6ade57a30fb1e40d6aa9695c440fc3d2">XMPIteratorRef</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">typedef struct __XMPDocOps__ *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#ab516453dd7d906e911f8951983cde5f1">XMPDocOpsRef</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">typedef struct __XMPFiles__ *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a300d9a9189cb4ddb6970d05389f5c28e"></a><!-- doxytag: member="XMP_Const.h::XMP_FileFormat" ref="a300d9a9189cb4ddb6970d05389f5c28e" args="" -->
-typedef XMP_Uns32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Type for file format identification constants. See <code><a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da17ab6d429c1550eb3cc16d2e544b78eb" title="Public file format constant: &#39;PDF &#39;.">kXMP_PDFFile</a></code> and following. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a57250ff934e642191654ae49c3a2c6c9"></a><!-- doxytag: member="XMP_Const.h::XMP_VersionInfo" ref="a57250ff934e642191654ae49c3a2c6c9" args="" -->
-typedef struct <a class="el" href="structXMP__VersionInfo.html">XMP_VersionInfo</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a57250ff934e642191654ae49c3a2c6c9">XMP_VersionInfo</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">XMP Toolkit version information. <br/></td></tr>
+<tr class="memitem:a72d86d541447456a08e0d29b57a6ae24"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a72d86d541447456a08e0d29b57a6ae24">XMP_CharFormIs16Bit</a>(f) &#160;&#160;&#160;( ((int)(f) &amp; <a class="el" href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8ac9b8b24a75e4e325a49e3730b8e3c5ed">kXMP_Char16BitMask</a>) != 0 )</td></tr>
+<tr class="memdesc:a72d86d541447456a08e0d29b57a6ae24"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro reports the encoding of a character. <a href="#a72d86d541447456a08e0d29b57a6ae24">More...</a><br /></td></tr>
+<tr class="separator:a72d86d541447456a08e0d29b57a6ae24"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd02278cadf2132a8cc1e7188715c860"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#afd02278cadf2132a8cc1e7188715c860">XMP_CharFormIs32Bit</a>(f) &#160;&#160;&#160;( ((int)(f) &amp; <a class="el" href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8a705cebe9f5f6700f039a153d394b4f2a">kXMP_Char32BitMask</a>) != 0 )</td></tr>
+<tr class="memdesc:afd02278cadf2132a8cc1e7188715c860"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro reports the encoding of a character. <a href="#afd02278cadf2132a8cc1e7188715c860">More...</a><br /></td></tr>
+<tr class="separator:afd02278cadf2132a8cc1e7188715c860"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad799046db4440bf02e2d244372ca913c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#ad799046db4440bf02e2d244372ca913c">XMP_CharFormIsBigEndian</a>(f) &#160;&#160;&#160;( ((int)(f) &amp; <a class="el" href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8a0bcf31bfc6bd3bbd5f80ef25f21b4391">kXMP_CharLittleEndianMask</a>) == 0 )</td></tr>
+<tr class="memdesc:ad799046db4440bf02e2d244372ca913c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro reports the byte-order of a character. <a href="#ad799046db4440bf02e2d244372ca913c">More...</a><br /></td></tr>
+<tr class="separator:ad799046db4440bf02e2d244372ca913c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a906ec1cd2fb1631c1b5ad9ccdf9c0a6b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a906ec1cd2fb1631c1b5ad9ccdf9c0a6b">XMP_CharFormIsLittleEndian</a>(f)&#160;&#160;&#160;( ((int)(f) &amp; <a class="el" href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8a0bcf31bfc6bd3bbd5f80ef25f21b4391">kXMP_CharLittleEndianMask</a>) != 0 )</td></tr>
+<tr class="memdesc:a906ec1cd2fb1631c1b5ad9ccdf9c0a6b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro reports the byte-order of a character. <a href="#a906ec1cd2fb1631c1b5ad9ccdf9c0a6b">More...</a><br /></td></tr>
+<tr class="separator:a906ec1cd2fb1631c1b5ad9ccdf9c0a6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a017e63e6fcd1ede112e8945c49b339e6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a017e63e6fcd1ede112e8945c49b339e6">XMP_GetCharSize</a>(f) &#160;&#160;&#160;( ((int)(f)&amp;6) == 0 ? 1 : (int)(f)&amp;6 )</td></tr>
+<tr class="memdesc:a017e63e6fcd1ede112e8945c49b339e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro reports the byte-size of a character. <a href="#a017e63e6fcd1ede112e8945c49b339e6">More...</a><br /></td></tr>
+<tr class="separator:a017e63e6fcd1ede112e8945c49b339e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a42692697b1951300a6c82665ded8f781"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a42692697b1951300a6c82665ded8f781">XMP_CharToSerializeForm</a>(cf) &#160;&#160;&#160;( (<a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>)(cf) )</td></tr>
+<tr class="memdesc:a42692697b1951300a6c82665ded8f781"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro converts <code>XMP_Uns8</code> to <code>XMP_OptionBits</code>. <a href="#a42692697b1951300a6c82665ded8f781">More...</a><br /></td></tr>
+<tr class="separator:a42692697b1951300a6c82665ded8f781"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a93e7900e6c9fb4057dfd685b5201057d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a93e7900e6c9fb4057dfd685b5201057d">XMP_CharFromSerializeForm</a>(sf)&#160;&#160;&#160;( (XMP_Uns8)(sf) )</td></tr>
+<tr class="memdesc:a93e7900e6c9fb4057dfd685b5201057d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro converts <code>XMP_OptionBits</code> to <code>XMP_Uns8</code>. <a href="#a93e7900e6c9fb4057dfd685b5201057d">More...</a><br /></td></tr>
+<tr class="separator:a93e7900e6c9fb4057dfd685b5201057d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:a0cf68b6f47d136ed571a441a9e0d2248"><td class="memItemLeft" align="right" valign="top">typedef XMP_Uns8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a></td></tr>
+<tr class="separator:a0cf68b6f47d136ed571a441a9e0d2248"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a549d5e2cbcb58302d3df840a0205283e"><td class="memItemLeft" align="right" valign="top">typedef struct __XMPMeta__ *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a></td></tr>
+<tr class="memdesc:a549d5e2cbcb58302d3df840a0205283e"><td class="mdescLeft">&#160;</td><td class="mdescRight">An "ABI safe" pointer to the internal part of an XMP object. Use to pass an XMP object across client DLL boundaries. See <code><a class="el" href="classTXMPMeta.html#afbfebded0b85b08bd9c5ba0d7dae07e0" title="Retrieves an internal reference that can be safely passed across DLL boundaries and reconstructed...">TXMPMeta::GetInternalRef()</a></code>. <a href="#a549d5e2cbcb58302d3df840a0205283e">More...</a><br /></td></tr>
+<tr class="separator:a549d5e2cbcb58302d3df840a0205283e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6ade57a30fb1e40d6aa9695c440fc3d2"><td class="memItemLeft" align="right" valign="top">typedef struct __XMPIterator__ *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a6ade57a30fb1e40d6aa9695c440fc3d2">XMPIteratorRef</a></td></tr>
+<tr class="memdesc:a6ade57a30fb1e40d6aa9695c440fc3d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">An "ABI safe" pointer to the internal part of an XMP iteration object. Use to pass an XMP iteration object across client DLL boundaries. See <code><a class="el" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services. ">TXMPIterator</a></code>. <a href="#a6ade57a30fb1e40d6aa9695c440fc3d2">More...</a><br /></td></tr>
+<tr class="separator:a6ade57a30fb1e40d6aa9695c440fc3d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab516453dd7d906e911f8951983cde5f1"><td class="memItemLeft" align="right" valign="top">typedef struct __XMPDocOps__ *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#ab516453dd7d906e911f8951983cde5f1">XMPDocOpsRef</a></td></tr>
+<tr class="memdesc:ab516453dd7d906e911f8951983cde5f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">An "ABI safe" pointer to the internal part of an XMP document operations object. Use to pass an XMP document operations object across client DLL boundaries. See <code>TXMPDocOps</code>. <a href="#ab516453dd7d906e911f8951983cde5f1">More...</a><br /></td></tr>
+<tr class="separator:ab516453dd7d906e911f8951983cde5f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa4bca98ad67d7a62c60cb13dbbab0f25"><td class="memItemLeft" align="right" valign="top">typedef struct __XMPFiles__ *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a></td></tr>
+<tr class="memdesc:aa4bca98ad67d7a62c60cb13dbbab0f25"><td class="mdescLeft">&#160;</td><td class="mdescRight">An "ABI safe" pointer to the internal part of an XMP file-handling object. Use to pass an XMP file-handling object across client DLL boundaries. See <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file. ">TXMPFiles</a></code>. <a href="#aa4bca98ad67d7a62c60cb13dbbab0f25">More...</a><br /></td></tr>
+<tr class="separator:aa4bca98ad67d7a62c60cb13dbbab0f25"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a300d9a9189cb4ddb6970d05389f5c28e"><td class="memItemLeft" align="right" valign="top">typedef XMP_Uns32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a></td></tr>
+<tr class="memdesc:a300d9a9189cb4ddb6970d05389f5c28e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type for file format identification constants. See <code><a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da17ab6d429c1550eb3cc16d2e544b78eb" title="Public file format constant: &#39;PDF &#39;. ">kXMP_PDFFile</a></code> and following. <a href="#a300d9a9189cb4ddb6970d05389f5c28e">More...</a><br /></td></tr>
+<tr class="separator:a300d9a9189cb4ddb6970d05389f5c28e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a57250ff934e642191654ae49c3a2c6c9"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structXMP__VersionInfo.html">XMP_VersionInfo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a57250ff934e642191654ae49c3a2c6c9">XMP_VersionInfo</a></td></tr>
+<tr class="memdesc:a57250ff934e642191654ae49c3a2c6c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">XMP Toolkit version information. <a href="#a57250ff934e642191654ae49c3a2c6c9">More...</a><br /></td></tr>
+<tr class="separator:a57250ff934e642191654ae49c3a2c6c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Special purpose callback functions</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp0299d250e858d7ace730ad6438e9c001"></a> </p>
-</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">typedef XMP_Int32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a05b81829c04746826f4f85fbac76e3dd">XMP_Status</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="XMP__Const_8h.html#a05b81829c04746826f4f85fbac76e3dd">XMP_Status</a>(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a8ce3570e6e5ac14cd603e96fa9d2936f">XMP_TextOutputProc</a> )(void *refCon, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> buffer, <a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> bufferSize)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">typedef bool(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#aa2738ce2fca7f1809b12834b1b5e2d0e">XMP_AbortProc</a> )(void *arg)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">typedef bool(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#af18be2d0c8accad813e0d8962da24b4e">XMP_ProgressReportProc</a> )(void *context, float elapsedTime, float fractionDone, float secondsToGo)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abfd6246a6ce8ef90c7fc600b456f3ea9"></a><!-- doxytag: member="XMP_Const.h::XMP_ProgressReportWrapper" ref="abfd6246a6ce8ef90c7fc600b456f3ea9" args=")(XMP_ProgressReportProc proc, void *context, float elapsedTime, float fractionDone, float secondsToGo)" -->
-typedef XMP_Bool(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#abfd6246a6ce8ef90c7fc600b456f3ea9">XMP_ProgressReportWrapper</a> )(<a class="el" href="XMP__Const_8h.html#af18be2d0c8accad813e0d8962da24b4e">XMP_ProgressReportProc</a> proc, void *context, float elapsedTime, float fractionDone, float secondsToGo)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Internal: The signature of a client-side wrapper for the progress report callback. <br/></td></tr>
-<tr><td colspan="2"><h2>Enumerations</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom">{ <br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a511551ce156d5fd96c26ad464b837801">kXMP_TimeWestOfUTC</a> = -1,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a3f41be55491204982acb39c9f6c7ad13">kXMP_TimeIsUTC</a> = 0,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a68851b70cc1d2346fa21bc0b0ae6cfec">kXMP_TimeEastOfUTC</a> = +1
-<br/>
- }</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>Constant values for <code><a class="el" href="structXMP__DateTime.html#a2b26282b9f1ab9920a8f05008c776ddb">XMP_DateTime::tzSign</a></code> field. </p>
- <a href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7">More...</a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom">{ <br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aab51f87b5c48f47f5cefb9e03293dafb">kXMP_PropValueIsURI</a> = 0x00000002UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a8e34a33a2eed56499d4f6f62da25d159">kXMP_PropHasQualifiers</a> = 0x00000010UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a30146ed5209f5c3eb4eeb1fd8e4fb9fe">kXMP_PropIsQualifier</a> = 0x00000020UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a3fa5ed87edc731bfb3817f58ba70a217">kXMP_PropHasLang</a> = 0x00000040UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aeff16fdf167afc73db25b30b529bd9d5">kXMP_PropHasType</a> = 0x00000080UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e">kXMP_PropValueIsStruct</a> = 0x00000100UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a9b7706e0f0716ac7546bdc24ffedd0bc">kXMP_PropValueIsArray</a> = 0x00000200UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a0d70c23394c0676657c89de5491192c0">kXMP_PropArrayIsUnordered</a> = kXMP_PropValueIsArray,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5af1cdb3b0a3e852ec55e747a1686aba04">kXMP_PropArrayIsOrdered</a> = 0x00000400UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a2596b1f0ea4600270c99102c86b5f1f1">kXMP_PropArrayIsAlternate</a> = 0x00000800UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aba253f67a6cf44b7438a3f96b516846d">kXMP_PropArrayIsAltText</a> = 0x00001000UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5ab975c19fb5c50f732a1a0d84dadb7c37">kXMP_PropIsAlias</a> = 0x00010000UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a1f819ef281d1f52c4c12d5d02f49d3f0">kXMP_PropHasAliases</a> = 0x00020000UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a48097c6ea309f240965d77ab564a5464">kXMP_PropIsInternal</a> = 0x00040000UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a81dcd06251771a0ddee6c1e36128c65c">kXMP_PropIsStable</a> = 0x00100000UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a0d898ea7f6b3db513bb24f8a6a285877">kXMP_PropIsDerived</a> = 0x00200000UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a6b5b5f4b869994b7390edc9589745e9f">kXMP_PropArrayFormMask</a> = kXMP_PropValueIsArray | kXMP_PropArrayIsOrdered | kXMP_PropArrayIsAlternate | kXMP_PropArrayIsAltText,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a60a9f26fb66c2e65cf40d9bc44968956">kXMP_PropCompositeMask</a> = kXMP_PropValueIsStruct | kXMP_PropArrayFormMask,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5ae154b58429b257b18963ba3503e67974">kXMP_ImplReservedMask</a> = 0x70000000L
-<br/>
- }</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>Option bit flags for the <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta</a></code> property accessor functions. </p>
- <a href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5">More...</a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom">{ <br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04a873411f673fc2a6337083fd024df727f">kXMP_InsertBeforeItem</a> = 0x00004000UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04a98cedd5fa29d47abb2ac8903ac7f5a05">kXMP_InsertAfterItem</a> = 0x00008000UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04addd07b4a38b25ab3841e28a9cb169d1c">kXMP_DeleteExisting</a> = 0x20000000UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04ad1b42a8a4c479d9bfaf406b79f2e1465">kXMP_PropValueOptionsMask</a> = kXMP_PropValueIsURI,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04aef8c1934a17b0e5d8f0b20a7e89df0df">kXMP_PropArrayLocationMask</a> = kXMP_InsertBeforeItem | kXMP_InsertAfterItem
-<br/>
- }</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom">{ <br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca1e533852436acf75f594a4fb50a64400">kXMP_RequireXMPMeta</a> = 0x0001UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca79b36427b7bf0c0a1ed010a44dec2d3e">kXMP_ParseMoreBuffers</a> = 0x0002UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca7107906eab0e1fa6f9f2dc6254ad88b1">kXMP_StrictAliasing</a> = 0x0004UL
-<br/>
- }</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>Option bit flags for <code><a class="el" href="classTXMPMeta.html#a7b383f5b357fff040cdbde82f4f43f26" title="ParseFromBuffer() parses RDF from a series of input buffers into this XMP object...">TXMPMeta::ParseFromBuffer()</a></code>. </p>
- <a href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06c">More...</a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom">{ <br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadbb9e4c7ee139da0dd4126ddea794c76">kXMP_OmitPacketWrapper</a> = 0x0010UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea238c792322c5bd5f9e4db3165e01f9d6">kXMP_ReadOnlyPacket</a> = 0x0020UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea041dc6b7b8684be7112ae40f5f259ebb">kXMP_UseCompactFormat</a> = 0x0040UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea15e3fb0e64614c574ed554f2f72c0a5d">kXMP_UseCanonicalFormat</a> = 0x0080UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea0b659b3b544c7a5a076fbd3132cd7f7a">kXMP_IncludeThumbnailPad</a> = 0x0100UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadb35599da481cc22ea6342b7b4de6bc6">kXMP_ExactPacketLength</a> = 0x0200UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea79230f1d70d2625f7650db6ff5b1ea29">kXMP_OmitAllFormatting</a> = 0x0800UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea9fb498d749d939e2ba9adf555a75b856">kXMP_OmitXMPMetaElement</a> = 0x1000UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea23054ea4ab89dfd802f14cb389e18745">kXMP_IncludeRDFHash</a> = 0x2000UL
-, <br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eaeb79571cac99ee97feefb0347b1c1845">kXMP_EncodingMask</a> = 0x0007UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadc8f241694f5a758e5ee3f6db69d02ab">kXMP_EncodeUTF8</a> = 0UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea310e4cbf639e783163778566b439f01d">kXMP_EncodeUTF16Big</a> = _XMP_UTF16_Bit,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eafc6417e382c98a2d507830de62fd4830">kXMP_EncodeUTF16Little</a> = _XMP_UTF16_Bit | _XMP_LittleEndian_Bit,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea793e99d9ea83f0aadd5b4193a95ea713">kXMP_EncodeUTF32Big</a> = _XMP_UTF32_Bit,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eae0137d98ea990fa23d292489031ba09e">kXMP_EncodeUTF32Little</a> = _XMP_UTF32_Bit | _XMP_LittleEndian_Bit
-<br/>
- }</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>Option bit flags for <code><a class="el" href="classTXMPMeta.html#a2774a6f15ae22f0002201b58c46bfb49" title="SerializeToBuffer() serializes metadata in this XMP object into a string as RDF.">TXMPMeta::SerializeToBuffer()</a></code>. </p>
- <a href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9e">More...</a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom">{ <br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a93f77b837d89759af3a721712c13f044">kXMP_IterClassMask</a> = 0x00FFUL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635aa0643c076a3b3737ff88ed20f16afd2b">kXMP_IterProperties</a> = 0x0000UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a3333450505cd3712320aeac895e541b9">kXMP_IterAliases</a> = 0x0001UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635aa325d9ffba68a934f0a0a0f6ecfc2f7b">kXMP_IterNamespaces</a> = 0x0002UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635ab26e1a38d1d0343fcc5bdaab1b60e3ed">kXMP_IterJustChildren</a> = 0x0100UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a4589f99b5b4a55e785e3baf4fe1d9b19">kXMP_IterJustLeafNodes</a> = 0x0200UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635acf22e638f4144bcec8207b2ab69bb344">kXMP_IterJustLeafName</a> = 0x0400UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a1b91947105ae68c48c5d5e36aa70d101">kXMP_IterOmitQualifiers</a> = 0x1000UL
-<br/>
- }</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>Option bit flags for <code><a class="el" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services.">TXMPIterator</a></code> construction. </p>
- <a href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635">More...</a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom">{ <br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a0411cd49bb5b71852cecd93bcbf0ca2dab0b540cd3841f411471a827f833c606e">kXMP_IterSkipSubtree</a> = 0x0001UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a0411cd49bb5b71852cecd93bcbf0ca2da2537b4b8db838f85b47988b198cd2a12">kXMP_IterSkipSiblings</a> = 0x0002UL
-<br/>
- }</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>Option bit flags for <code><a class="el" href="classTXMPIterator.html#a30b4d78974b347e4fcd275f1f65a61b2" title="Skip() skips some portion of the remaining iterations.">TXMPIterator::Skip()</a></code>. </p>
- <a href="XMP__Const_8h.html#a0411cd49bb5b71852cecd93bcbf0ca2d">More...</a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="XMP__Const_8h.html#abed82baf7f470b522273a3e37c24c600ad6d41710c689f16d19ac26dc9f5cc506">kXMPUtil_AllowCommas</a> = 0x10000000UL
- }</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom">{ <br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a872d2b769e775e281984cc63e28714ea">kXMPTemplate_IncludeInternalProperties</a> = 0x0001UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57aae2e0fe43295736a15f0bb76ffe02544">kXMPTemplate_ReplaceExistingProperties</a> = 0x0002UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a81e1b6fd067fc9ad62bc803c98701bd5">kXMPTemplate_ReplaceWithDeleteEmpty</a> = 0x0004UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a145c259f83048b811c7b35bc3b339c42">kXMPTemplate_AddNewProperties</a> = 0x0008UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a9dac536fe6ee25de76d45bf6615abd46">kXMPTemplate_ClearUnnamedProperties</a> = 0x0010UL
-<br/>
- }</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>Option bit flags for <code><a class="el" href="classTXMPUtils.html#ab73bfa15116e6d702044542e0a43cce9" title="ApplyTemplate() modifies a working XMP object according to a template object.">TXMPUtils::ApplyTemplate()</a></code>. </p>
- <a href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57">More...</a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom">{ <br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a8ddfb0572b7602a52e533d92d8b1e9fb">kXMPUtil_DoAllProperties</a> = 0x0001UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388adab4dad658d2d218c5b1e7d829b12962">kXMPUtil_ReplaceOldValues</a> = 0x0002UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a97753b4c5afda9c55e807e41377d86d9">kXMPUtil_DeleteEmptyValues</a> = 0x0004UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a843589b878f53d42d59258f945ad770b">kXMPUtil_IncludeAliases</a> = 0x0800UL
-<br/>
- }</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>Option bit flags for <code><a class="el" href="classTXMPUtils.html#a40c645803530662e08d042b4b7c6190d" title="RemoveProperties() removes multiple properties from an XMP object.">TXMPUtils::RemoveProperties()</a></code> and <code>TXMPUtils::AppendProperties()</code>. </p>
- <a href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388">More...</a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563f">SeekMode</a> </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>Seek mode constants for use with XMP_IO and inside XMPFiles library code. </p>
-<br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom">{ <br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da17ab6d429c1550eb3cc16d2e544b78eb">kXMP_PDFFile</a> = 0x50444620UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da52c90935ee28a0875a49843d463cad70">kXMP_PostScriptFile</a> = 0x50532020UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad947e6da0c4d923195d93e0c53a79c4e">kXMP_EPSFile</a> = 0x45505320UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad752b2d3e1139e0745223a9385ef6487">kXMP_JPEGFile</a> = 0x4A504547UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da78b8fa38aaa2067e3e1baa0dcaa7571d">kXMP_JPEG2KFile</a> = 0x4A505820UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dadc0edf25d933c2a21b25449692c3ba08">kXMP_TIFFFile</a> = 0x54494646UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da851d2f4525d705cd2dcabb540d0ddc06">kXMP_GIFFile</a> = 0x47494620UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dac989381d37de320495e4d13f9ecc6371">kXMP_PNGFile</a> = 0x504E4720UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da564a8095f65d951f451e16eb56650597">kXMP_SWFFile</a> = 0x53574620UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dab1eeba00d1d92e313acfe68cd054daf9">kXMP_FLAFile</a> = 0x464C4120UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da455bc501088bbd8061fe3ea386a5066f">kXMP_FLVFile</a> = 0x464C5620UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daebdb172c8a75b4ead2eff2d26ed3dc37">kXMP_MOVFile</a> = 0x4D4F5620UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dae3a6333624e5c292caf14ad849a5e26e">kXMP_AVIFile</a> = 0x41564920UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad2935ea79b4f9253891e3a68a002c5bb">kXMP_CINFile</a> = 0x43494E20UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dacc1fcd4e52423c0dd2966a2e92352fb8">kXMP_WAVFile</a> = 0x57415620UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf3ee34ed2bc26dec0e2d572eeb0de89b">kXMP_MP3File</a> = 0x4D503320UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da42cb8767d9cf16eaeb7aec68a4f224e9">kXMP_SESFile</a> = 0x53455320UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da6c949ee85f42eaaed035591338be6789">kXMP_CELFile</a> = 0x43454C20UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da043afdc1db730db9ac03c505140c61c8">kXMP_MPEGFile</a> = 0x4D504547UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dab58eaebed494530072ad990ac7a9807a">kXMP_MPEG2File</a> = 0x4D503220UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da89e6282c3f0c8966d788500f5d8eaa91">kXMP_MPEG4File</a> = 0x4D503420UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da4b3477bdc53fae1511104fc54f88d134">kXMP_MXFFile</a> = 0x4D584620UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da78c62f7c10b16b1a862d93f6226a4622">kXMP_WMAVFile</a> = 0x574D4156UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf093d01e7e9cc55a7d1e204498521fc3">kXMP_AIFFFile</a> = 0x41494646UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daab032aa36aec082c6b3a8300548346f5">kXMP_REDFile</a> = 0x52454420UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dabad9584845edf66f2f8fc3c336977e34">kXMP_P2File</a> = 0x50322020UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da5f78caa0871695cc92e058e4f4b2dd57">kXMP_XDCAM_FAMFile</a> = 0x58444346UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da64fe7908df6341e13d9d8c8199cdf852">kXMP_XDCAM_SAMFile</a> = 0x58444353UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da45bf9b21d5ffed3594fbd585c47cc4fc">kXMP_XDCAM_EXFile</a> = 0x58444358UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafc5ff976e78df2d79d651de818b011f2">kXMP_AVCHDFile</a> = 0x41564844UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daa0edb070c11f87c3dad9f8f7a83b9b5e">kXMP_SonyHDVFile</a> = 0x53484456UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafa11d905db1236494e555956cb2f90ef">kXMP_CanonXFFile</a> = 0x434E5846UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da542634e6051139c44fd7b92d08c64760">kXMP_HTMLFile</a> = 0x48544D4CUL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad217b996403fa13caef3d6e978023124">kXMP_XMLFile</a> = 0x584D4C20UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da27051cd824d3ae7bb59e3af7a7908ffd">kXMP_TextFile</a> = 0x74657874UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da22b478a9d0d52d12e8e4a1181024eb1c">kXMP_PhotoshopFile</a> = 0x50534420UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da82935c41c6222ff4cca954278f18e554">kXMP_IllustratorFile</a> = 0x41492020UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da79cbf96ecc4ac3e0ebfb2d182bc75e60">kXMP_InDesignFile</a> = 0x494E4444UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da5fb9e99541bbb2d8e375d0cc9fd92a2e">kXMP_AEProjectFile</a> = 0x41455020UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dada5b138722448c4d4595fe760668c3df">kXMP_AEProjTemplateFile</a> = 0x41455420UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafd8d3d1c8c84bc6ab773f1298b3938f0">kXMP_AEFilterPresetFile</a> = 0x46465820UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dae28efb65bde55f3f8ddfd1fd8a168e2a">kXMP_EncoreProjectFile</a> = 0x4E434F52UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daeff4f68cd5162370f7bf938a868e280d">kXMP_PremiereProjectFile</a> = 0x5052504AUL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da1ad712bbd349dc899ca1e71971032b0a">kXMP_PremiereTitleFile</a> = 0x5052544CUL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da96804f7b8ce83786051c4dac4930aa96">kXMP_UCFFile</a> = 0x55434620UL,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719">kXMP_UnknownFile</a> = 0x20202020UL
-<br/>
- }</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>File format constants for use with XMPFiles. </p>
- <a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035d">More...</a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>Byte-order masks, do not use directly. </p>
-<br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom">{ <br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9eaf5b20dd9abbef29169a362b265049637">kXMP_Char8Bit</a> = 0,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea0966bca9b241646f6a730f96c5c14a2d">kXMP_Char16BitBig</a> = kXMP_Char16BitMask,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea19b97b941d6586031190025225ee0eaa">kXMP_Char16BitLittle</a> = kXMP_Char16BitMask | kXMP_CharLittleEndianMask,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea87f8231aec6dd125baf77c9f3f918fbc">kXMP_Char32BitBig</a> = kXMP_Char32BitMask,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea859e7aa88e7dfd3f55ad2b6445a4708e">kXMP_Char32BitLittle</a> = kXMP_Char32BitMask | kXMP_CharLittleEndianMask,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea6c37f0724299a9c88e2f622d3246d63b">kXMP_CharUnknown</a> = 1
-<br/>
- }</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>Constants to allow easy testing for 16/32 bit and big/little endian. </p>
- <a href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9e">More...</a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="XMP__Const_8h.html#a16af7b253440dadd46a80a4b9fddba4da767b4847575a8de28e691be660d43817">kXMP_PacketInfoVersion</a> = 3
- }</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>Version of the <a class="el" href="structXMP__PacketInfo.html" title="XMP packet description.">XMP_PacketInfo</a> type. </p>
- <a href="XMP__Const_8h.html#a16af7b253440dadd46a80a4b9fddba4d">More...</a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom">{ <br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#aba01db17f4a2bfbc3db60dc172972a25a9b9c1ef01e49193a167c40156df07b50">kXMPFiles_IgnoreLocalText</a> = 0x0002,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#aba01db17f4a2bfbc3db60dc172972a25aee2f09481347c29d6c06951b0d81e145">kXMPFiles_ServerMode</a> = kXMPFiles_IgnoreLocalText
-<br/>
- }</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>Option bit flags for <code><a class="el" href="classTXMPFiles.html#a0874bbbf41c9490abfb613bfe297327d" title="Initializes the XMPFiles library; must be called before creating an SXMPFiles object...">TXMPFiles::Initialize()</a></code>. </p>
- <a href="XMP__Const_8h.html#aba01db17f4a2bfbc3db60dc172972a25">More...</a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom">{ <br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea23a3eb2a5e95292036a93ad6666fa388">kXMPFiles_CanInjectXMP</a> = 0x00000001,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea126c9cc056f6569c424431edbcb9521c">kXMPFiles_CanExpand</a> = 0x00000002,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea8957f1ef358b4ab3a1df519903f2ae07">kXMPFiles_CanRewrite</a> = 0x00000004,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceab55e1873e67048928de3fc47550678c3">kXMPFiles_PrefersInPlace</a> = 0x00000008,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceafc2bc7cfdd28a326788d563ec0357694">kXMPFiles_CanReconcile</a> = 0x00000010,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea4a183c3ec4994cf09993e5b31dee9733">kXMPFiles_AllowsOnlyXMP</a> = 0x00000020,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceadb116eed738d1fcdfe4ab9c1635e08ea">kXMPFiles_ReturnsRawPacket</a> = 0x00000040,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceafc2c5b585e698ebf24a9379de35954b4">kXMPFiles_HandlerOwnsFile</a> = 0x00000100,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea9fe958d4ccde02516a3a267db63874cd">kXMPFiles_AllowsSafeUpdate</a> = 0x00000200,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceaee13099f78018a5e1ce033266c27e999">kXMPFiles_NeedsReadOnlyPacket</a> = 0x00000400,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcead3027b786992e2a4762a4fa37c92943c">kXMPFiles_UsesSidecarXMP</a> = 0x00000800,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceaa2a6a4b744b40055387234632b688fcd">kXMPFiles_FolderBasedFormat</a> = 0x00001000,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea17578d45ae3c09a8d08189ea544052b1">kXMPFiles_CanNotifyProgress</a> = 0x00002000,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea798c55f5144eedde76f8329a056210b2">kXMPFiles_NeedsPreloading</a> = 0x00004000
-<br/>
- }</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>Option bit flags for <code><a class="el" href="classTXMPFiles.html#acb9e16a1477ec67fa6da6d736a9bc131" title="GetFormatInfo() reports what features are supported for a specific file format.">TXMPFiles::GetFormatInfo()</a></code>. </p>
- <a href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fce">More...</a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom">{ <br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa4c61ec4ed571dbc5f1832ff6772320d2">kXMPFiles_OpenForRead</a> = 0x00000001,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa91fa388b3888bcb6a68615537b66a49b">kXMPFiles_OpenForUpdate</a> = 0x00000002,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaa58279b2b1311242e7374117f455bb96">kXMPFiles_OpenOnlyXMP</a> = 0x00000004,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaab8cbbeef0e99d246907a4375766e21a2">kXMPFiles_ForceGivenHandler</a> = 0x00000008,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa0bef4db2ecdaf82a85df9e9d417aab18">kXMPFiles_OpenStrictly</a> = 0x00000010,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaf6332435c7fc89cb0b7381e13fe43646">kXMPFiles_OpenUseSmartHandler</a> = 0x00000020,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa77b47c63e579b28cbd25083ceb58c285">kXMPFiles_OpenUsePacketScanning</a> = 0x00000040,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa77f34b1873bb2584feabe26a2c8f1182">kXMPFiles_OpenLimitedScanning</a> = 0x00000080,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa05acd568597f72b4812b432ea6cf606a">kXMPFiles_OpenRepairFile</a> = 0x00000100,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaf5f2ebd401758a14dc52c5ee403303b5">kXMPFiles_OptimizeFileLayout</a> = 0x00000200
-<br/>
- }</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>Option bit flags for <code><a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb" title="OpenFile() opens a file for metadata access.">TXMPFiles::OpenFile()</a></code>. </p>
- <a href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52caba">More...</a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="XMP__Const_8h.html#a6b7b47dd702d9e331586d485013fd1eaadbf8d744f355ef9800a4ec44325baf54">kXMPFiles_UpdateSafely</a> = 0x0001
- }</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>Option bit flags for <code><a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927" title="CloseFile() explicitly closes an opened file.">TXMPFiles::CloseFile()</a></code>. </p>
- <a href="XMP__Const_8h.html#a6b7b47dd702d9e331586d485013fd1ea">More...</a><br/></td></tr>
-<tr><td colspan="2"><h2>General scalar types and constants</h2></td></tr>
-<tr><td colspan="2"><p><a class="anchor" id="amgrpb4bdc9c90f0bce40e87dab7c308120ef"></a> </p>
-<br/><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a4c39e0131b0e3d7db66e1cfa82b67141">kXMP_TrueStr</a>&nbsp;&nbsp;&nbsp;&quot;True&quot;</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The canonical true string value for Booleans in serialized XMP. <a href="#a4c39e0131b0e3d7db66e1cfa82b67141"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a2dc55b533ed63ed7ff0c3be16a97e278">kXMP_FalseStr</a>&nbsp;&nbsp;&nbsp;&quot;False&quot;</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The canonical false string value for Booleans in serialized XMP. <a href="#a2dc55b533ed63ed7ff0c3be16a97e278"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom">{ <br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55bacf4bfe01497bd0d88c2af337e4bac39e">kXMPTS_Yes</a> = 1,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba2a88f4d4589bf413377283843f70bc90">kXMPTS_No</a> = 0,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba7a73219cd125bb21e294ba474112a584">kXMPTS_Maybe</a> = -1
-<br/>
- }</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad439e3ceeb4590d310f6125aa12c6df6"></a><!-- doxytag: member="XMP_Const.h::XMP_StringPtr" ref="ad439e3ceeb4590d310f6125aa12c6df6" args="" -->
-typedef const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The type for input string parameters. A <code>const char *</code>, a null-terminated UTF-8 string. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9f7dcc184f901c713274edfdac5bcc9a"></a><!-- doxytag: member="XMP_Const.h::XMP_StringLen" ref="a9f7dcc184f901c713274edfdac5bcc9a" args="" -->
-typedef XMP_Uns32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The type for string length parameters. A 32-bit unsigned integer, as big as will be practically needed. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a00e9d9a76c144421105a4c2742203315"></a><!-- doxytag: member="XMP_Const.h::XMP_Index" ref="a00e9d9a76c144421105a4c2742203315" args="" -->
-typedef XMP_Int32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The type for offsets and indices. A 32-bit signed integer. It is signed to allow -1 for loop termination. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeb865118433be92d88e5f49ed11487c8"></a><!-- doxytag: member="XMP_Const.h::XMP_OptionBits" ref="aeb865118433be92d88e5f49ed11487c8" args="" -->
-typedef XMP_Uns32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The type for a collection of 32 flag bits. Individual flags are defined as enum value bit masks; see <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aab51f87b5c48f47f5cefb9e03293dafb" title="The XML string form of the property value is a URI, use rdf:resource attribute. DISCOURAGED...">kXMP_PropValueIsURI</a></code> and following. A number of macros provide common set or set operations, such as <code>XMP_PropIsSimple</code>. For other tests use an expression like <code>options &amp; kXMP_&lt;theOption&gt;</code>. When passing multiple option flags use the bitwise-OR operator. '|', not the arithmatic plus, '+'. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a377e4a668de99ce6ed176cef5aaf3fcd"></a><!-- doxytag: member="XMP_Const.h::XMP_TriState" ref="a377e4a668de99ce6ed176cef5aaf3fcd" args="" -->
-typedef XMP_Int8&nbsp;</td><td class="memItemRight" valign="bottom"><b>XMP_TriState</b></td></tr>
-<tr><td colspan="2"><h2>Error notification and Exceptions</h2></td></tr>
-<tr><td colspan="2"><p><a class="anchor" id="amgrp4159f4d87a6d8a59a860a0926f6ad12b"></a> From the beginning through version 5.5, XMP Tookit errors result in throwing an <code><a class="el" href="classXMP__Error.html" title="XMP Toolkit error, associates an error code with a descriptive error string.">XMP_Error</a></code> exception. For the most part exceptions were thrown early and thus API calls aborted as soon as an error was detected. Starting in version 5.5, support has been added for notifications of errors arising in calls to <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta</a></code> and <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file.">TXMPFiles</a></code> functions.</p>
-<p>A client can register an error notification callback function for a <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta</a></code> or <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file.">TXMPFiles</a></code> object. This can be done as a global default or individually to each object. The global default applies to all objects created after it is registered. Within the object there is no difference between the global default or explicitly registered callback. The callback function returns a <code>bool</code> value indicating if recovery should be attempted (true) or an exception thrown (false). If no callback is registered, a best effort at recovery and continuation will be made with an exception thrown if recovery is not possible. More details can be found in the <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta</a></code> and <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file.">TXMPFiles</a></code> documentation.</p>
-<p>The <code><a class="el" href="classXMP__Error.html" title="XMP Toolkit error, associates an error code with a descriptive error string.">XMP_Error</a></code> class contains a numeric code and an English explanation. New numeric codes may be added at any time. There are typically many possible explanations for each numeric code. The explanations try to be precise about the specific circumstances causing the error.</p>
-<dl class="note"><dt><b>Note:</b></dt><dd>The explanation string is for debugging use only. It must not be shown to users in a final product. It is written for developers not users, and never localized. </dd></dl>
-<br/><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom">{ <br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a068fdc8c88dcce62a7b42788a572af61">kXMPErrSev_Recoverable</a> = 0,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960afb962bdcf570af9aef4e32b5f279d1a4">kXMPErrSev_OperationFatal</a> = 1,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a2bd1ff3ba036640f0c76d68a03cf94f7">kXMPErrSev_FileFatal</a> = 2,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a768126806f8c7b7c107314610125deb3">kXMPErrSev_ProcessFatal</a> = 3
-<br/>
- }</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>Severity codes for error notifications. </p>
- <a href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960">More...</a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom">{ <br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ae2aec0f3b8db282cbba40e4bcf746ba9">kXMPErr_NoError</a> = -1,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14813595824de97382fffeae7b6fe581">kXMPErr_Unknown</a> = 0,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409acd9fa1b621efafd5b218e3a785cbeda1">kXMPErr_TBD</a> = 1,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac7ac408582c194cc723a24acb8b4e4c3">kXMPErr_Unavailable</a> = 2,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a115f3d761d2cad952aab23f35cbdf3a1">kXMPErr_BadObject</a> = 3,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a52d197a8b0af3c55f16958162a4132f1">kXMPErr_BadParam</a> = 4,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a716956a038782e595ce61d3fbdd1a25a">kXMPErr_BadValue</a> = 5,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14bd6c24087d280c722c1a044eec27d6">kXMPErr_AssertFailure</a> = 6,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa856bb36a9742d8542b483e00fc6511b">kXMPErr_EnforceFailure</a> = 7,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a3de1ac8f4e4afb705d5a4654cb9579e2">kXMPErr_Unimplemented</a> = 8,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a8babbd758d2c64fd04e85fa48e0675c0">kXMPErr_InternalFailure</a> = 9,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14342c486ddf394ebc110a446becbfa7">kXMPErr_Deprecated</a> = 10,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a82941dc15c6ccde6b8fb2f9cc85c2eeb">kXMPErr_ExternalFailure</a> = 11,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4ba7b1a57629e4994a0f7a515d51195">kXMPErr_UserAbort</a> = 12,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5322df07e2a7792824d2468c4837f1cb">kXMPErr_StdException</a> = 13,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aac7558097a1f5a0f99097199f1bf8ff4">kXMPErr_UnknownException</a> = 14,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a69eb7fef422fbca62cdbc554afffd813">kXMPErr_NoMemory</a> = 15,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5227060f282a86c8ea1a944107751dd1">kXMPErr_ProgressAbort</a> = 16,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2bc66eec6ce830979089d5c336f75539">kXMPErr_BadSchema</a> = 101,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a3f1efec0aa5452f43c55c05aba616ef7">kXMPErr_BadXPath</a> = 102,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a40ca77d98bd366442bb8d438c420a444">kXMPErr_BadOptions</a> = 103,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a31adb57da79b4fb1f1f5f999ec740010">kXMPErr_BadIndex</a> = 104,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2584fc813bfcd9158b7adf28a3454bb9">kXMPErr_BadIterPosition</a> = 105,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a052b1b525fba7da8c98be5c135f434b8">kXMPErr_BadParse</a> = 106,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4f936ff6788ce17f6098b7cbda77ed9">kXMPErr_BadSerialize</a> = 107,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa0a05e07925d1f3daf5f36f6da0840f8">kXMPErr_BadFileFormat</a> = 108,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a10fa053f279fed01b075f34a70f11795">kXMPErr_NoFileHandler</a> = 109,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa9c1c20e53db12b20068d830a8990c0b">kXMPErr_TooLargeForJPEG</a> = 110,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2874a5dcddf253a17d75a147b2ed4933">kXMPErr_NoFile</a> = 111,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a577b0e80acf44125f0dc49e5885e0824">kXMPErr_FilePermission</a> = 112,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa2f19dfd8ce27b5713c79e34f2052e40">kXMPErr_DiskSpace</a> = 113,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2a17df0c0b690f5b7829bc4ca16efce2">kXMPErr_ReadError</a> = 114,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409afca1d169d7e3cb3ba84c81700c1b9b22">kXMPErr_WriteError</a> = 115,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aacc6262e9c1fd1a64e3d10cedfb7dcb1">kXMPErr_BadBlockFormat</a> = 116,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a0819111429c734ca5ef895c193846351">kXMPErr_FilePathNotAFile</a> = 117,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad9d8c98663e3ead894841807ab4548f8">kXMPErr_RejectedFileExtension</a> = 118,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac57f1cf1c24778536fd32972e87334c5">kXMPErr_BadXML</a> = 201,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5464b823e619618d9aa58433cdb45a8e">kXMPErr_BadRDF</a> = 202,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a211bb632ed1264d9e2236f35c6414821">kXMPErr_BadXMP</a> = 203,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a078c69d0d76f25187a11981a2552b179">kXMPErr_EmptyIterator</a> = 204,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4cf86fa29624c5e19111e09a97fe05f">kXMPErr_BadUnicode</a> = 205,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aecd25299aa177de7bc7f3674fcf2e22d">kXMPErr_BadTIFF</a> = 206,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad685e1f839e3bc53dfc55611a0803cee">kXMPErr_BadJPEG</a> = 207,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad98fc9a9c050e9fc19c3af9c8abb2d6d">kXMPErr_BadPSD</a> = 208,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a1606a687cb790af16dc561b2a8f2e6a3">kXMPErr_BadPSIR</a> = 209,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a23b2d7cab10b3d80549e6b60855bb15e">kXMPErr_BadIPTC</a> = 210,
-<br/>
-&nbsp;&nbsp;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad596daed4ac92f8bf7871669d03effad">kXMPErr_BadMPEG</a> = 211
-<br/>
- }</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p><a class="el" href="classXMP__Error.html" title="XMP Toolkit error, associates an error code with a descriptive error string.">XMP_Error</a> exception code constants. </p>
- <a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409">More...</a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae4a7c9347994883250dc440566eb9f52"></a><!-- doxytag: member="XMP_Const.h::XMP_ErrorSeverity" ref="ae4a7c9347994883250dc440566eb9f52" args="" -->
-typedef XMP_Uns8&nbsp;</td><td class="memItemRight" valign="bottom"><b>XMP_ErrorSeverity</b></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">typedef bool(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a6027ee7b7d17a0fec636f812c5346af7">XMPMeta_ErrorCallbackProc</a> )(void *context, XMP_ErrorSeverity severity, XMP_Int32 cause, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> message)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">typedef bool(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#aaceb0287e961c16649487db026bcfc61">XMPFiles_ErrorCallbackProc</a> )(void *context, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> filePath, XMP_ErrorSeverity severity, XMP_Int32 cause, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> message)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a900dba8ffc9d1d9b89f4e83ac601679b"></a><!-- doxytag: member="XMP_Const.h::XMPMeta_ErrorCallbackWrapper" ref="a900dba8ffc9d1d9b89f4e83ac601679b" args=")(XMPMeta_ErrorCallbackProc clientProc, void *context, XMP_ErrorSeverity severity, XMP_Int32 cause, XMP_StringPtr message)" -->
-typedef XMP_Bool(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a900dba8ffc9d1d9b89f4e83ac601679b">XMPMeta_ErrorCallbackWrapper</a> )(<a class="el" href="XMP__Const_8h.html#a6027ee7b7d17a0fec636f812c5346af7">XMPMeta_ErrorCallbackProc</a> clientProc, void *context, XMP_ErrorSeverity severity, XMP_Int32 cause, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> message)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Internal: The signatures of client-side wrappers for the error notification callbacks. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af8bbbdebf56e55915803c29441b4e35a"></a><!-- doxytag: member="XMP_Const.h::XMPFiles_ErrorCallbackWrapper" ref="af8bbbdebf56e55915803c29441b4e35a" args=")(XMPFiles_ErrorCallbackProc clientProc, void *context, XMP_StringPtr filePath, XMP_ErrorSeverity severity, XMP_Int32 cause, XMP_StringPtr message)" -->
-typedef XMP_Bool(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>XMPFiles_ErrorCallbackWrapper</b> )(<a class="el" href="XMP__Const_8h.html#aaceb0287e961c16649487db026bcfc61">XMPFiles_ErrorCallbackProc</a> clientProc, void *context, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> filePath, XMP_ErrorSeverity severity, XMP_Int32 cause, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> message)</td></tr>
+<tr class="memitem:a05b81829c04746826f4f85fbac76e3dd"><td class="memItemLeft" align="right" valign="top">typedef XMP_Int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a05b81829c04746826f4f85fbac76e3dd">XMP_Status</a></td></tr>
+<tr class="memdesc:a05b81829c04746826f4f85fbac76e3dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">A signed 32-bit integer used as a status result for the output callback routine, <code>XMP_TextOutputProc</code>. Zero means no error, all other values except -1 are private to the callback. The callback is wrapped to prevent exceptions being thrown across DLL boundaries. Any exceptions thrown out of the callback cause a return status of -1. <a href="#a05b81829c04746826f4f85fbac76e3dd">More...</a><br /></td></tr>
+<tr class="separator:a05b81829c04746826f4f85fbac76e3dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa55bae1e6be4ddcefbaf214942e5b272"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="XMP__Const_8h.html#a05b81829c04746826f4f85fbac76e3dd">XMP_Status</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#aa55bae1e6be4ddcefbaf214942e5b272">XMP_TextOutputProc</a>) (void *refCon, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> buffer, <a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> bufferSize)</td></tr>
+<tr class="memdesc:aa55bae1e6be4ddcefbaf214942e5b272"><td class="mdescLeft">&#160;</td><td class="mdescRight">The signature of a client-defined callback for text output from XMP Toolkit debugging operations. <a href="#aa55bae1e6be4ddcefbaf214942e5b272">More...</a><br /></td></tr>
+<tr class="separator:aa55bae1e6be4ddcefbaf214942e5b272"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac2434559f67332b9d23021b894da838c"><td class="memItemLeft" align="right" valign="top">typedef bool(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#ac2434559f67332b9d23021b894da838c">XMP_AbortProc</a>) (void *arg)</td></tr>
+<tr class="memdesc:ac2434559f67332b9d23021b894da838c"><td class="mdescLeft">&#160;</td><td class="mdescRight">The signature of a client-defined callback to check for a user request to abort a time-consuming operation within XMPFiles. <a href="#ac2434559f67332b9d23021b894da838c">More...</a><br /></td></tr>
+<tr class="separator:ac2434559f67332b9d23021b894da838c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a01973e700ac2ba7f3debef340ccaa663"><td class="memItemLeft" align="right" valign="top">typedef bool(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a01973e700ac2ba7f3debef340ccaa663">XMP_ProgressReportProc</a>) (void *context, float elapsedTime, float fractionDone, float secondsToGo)</td></tr>
+<tr class="memdesc:a01973e700ac2ba7f3debef340ccaa663"><td class="mdescLeft">&#160;</td><td class="mdescRight">The signature of a client-defined callback for progress report notifications. <a href="#a01973e700ac2ba7f3debef340ccaa663">More...</a><br /></td></tr>
+<tr class="separator:a01973e700ac2ba7f3debef340ccaa663"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a61eb4db5a58902c130d3b3929db624db"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a61eb4db5a58902c130d3b3929db624db">XMP_ProgressReportWrapper</a>) (<a class="el" href="XMP__Const_8h.html#a01973e700ac2ba7f3debef340ccaa663">XMP_ProgressReportProc</a> proc, void *context, float elapsedTime, float fractionDone, float secondsToGo)</td></tr>
+<tr class="memdesc:a61eb4db5a58902c130d3b3929db624db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal: The signature of a client-side wrapper for the progress report callback. <a href="#a61eb4db5a58902c130d3b3929db624db">More...</a><br /></td></tr>
+<tr class="separator:a61eb4db5a58902c130d3b3929db624db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:adf764cbdea00d65edcd07bb9953ad2b7"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a511551ce156d5fd96c26ad464b837801">kXMP_TimeWestOfUTC</a> = -1,
+<a class="el" href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a3f41be55491204982acb39c9f6c7ad13">kXMP_TimeIsUTC</a> = 0,
+<a class="el" href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a68851b70cc1d2346fa21bc0b0ae6cfec">kXMP_TimeEastOfUTC</a> = +1
+ }<tr class="memdesc:adf764cbdea00d65edcd07bb9953ad2b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constant values for <code><a class="el" href="structXMP__DateTime.html#a2b26282b9f1ab9920a8f05008c776ddb">XMP_DateTime::tzSign</a></code> field. <a href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:adf764cbdea00d65edcd07bb9953ad2b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a99fb83031ce9923c84392b4e92f956b5"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aab51f87b5c48f47f5cefb9e03293dafb">kXMP_PropValueIsURI</a> = 0x00000002UL,
+<a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a8e34a33a2eed56499d4f6f62da25d159">kXMP_PropHasQualifiers</a> = 0x00000010UL,
+<a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a30146ed5209f5c3eb4eeb1fd8e4fb9fe">kXMP_PropIsQualifier</a> = 0x00000020UL,
+<a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a3fa5ed87edc731bfb3817f58ba70a217">kXMP_PropHasLang</a> = 0x00000040UL,
+<br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aeff16fdf167afc73db25b30b529bd9d5">kXMP_PropHasType</a> = 0x00000080UL,
+<a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e">kXMP_PropValueIsStruct</a> = 0x00000100UL,
+<a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a9b7706e0f0716ac7546bdc24ffedd0bc">kXMP_PropValueIsArray</a> = 0x00000200UL,
+<a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a0d70c23394c0676657c89de5491192c0">kXMP_PropArrayIsUnordered</a> = kXMP_PropValueIsArray,
+<br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5af1cdb3b0a3e852ec55e747a1686aba04">kXMP_PropArrayIsOrdered</a> = 0x00000400UL,
+<a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a2596b1f0ea4600270c99102c86b5f1f1">kXMP_PropArrayIsAlternate</a> = 0x00000800UL,
+<a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aba253f67a6cf44b7438a3f96b516846d">kXMP_PropArrayIsAltText</a> = 0x00001000UL,
+<a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5ab975c19fb5c50f732a1a0d84dadb7c37">kXMP_PropIsAlias</a> = 0x00010000UL,
+<br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a1f819ef281d1f52c4c12d5d02f49d3f0">kXMP_PropHasAliases</a> = 0x00020000UL,
+<a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a48097c6ea309f240965d77ab564a5464">kXMP_PropIsInternal</a> = 0x00040000UL,
+<a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a81dcd06251771a0ddee6c1e36128c65c">kXMP_PropIsStable</a> = 0x00100000UL,
+<a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a0d898ea7f6b3db513bb24f8a6a285877">kXMP_PropIsDerived</a> = 0x00200000UL,
+<br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a6b5b5f4b869994b7390edc9589745e9f">kXMP_PropArrayFormMask</a> = kXMP_PropValueIsArray | kXMP_PropArrayIsOrdered | kXMP_PropArrayIsAlternate | kXMP_PropArrayIsAltText,
+<a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a60a9f26fb66c2e65cf40d9bc44968956">kXMP_PropCompositeMask</a> = kXMP_PropValueIsStruct | kXMP_PropArrayFormMask,
+<a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5ae154b58429b257b18963ba3503e67974">kXMP_ImplReservedMask</a> = 0x70000000L
+<br />
+ }<tr class="memdesc:a99fb83031ce9923c84392b4e92f956b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Option bit flags for the <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services. ">TXMPMeta</a></code> property accessor functions. <a href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:a99fb83031ce9923c84392b4e92f956b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abc6126af1d45847bc59afa0aa3216b04"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04a873411f673fc2a6337083fd024df727f">kXMP_InsertBeforeItem</a> = 0x00004000UL,
+<a class="el" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04a98cedd5fa29d47abb2ac8903ac7f5a05">kXMP_InsertAfterItem</a> = 0x00008000UL,
+<a class="el" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04addd07b4a38b25ab3841e28a9cb169d1c">kXMP_DeleteExisting</a> = 0x20000000UL,
+<a class="el" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04ad1b42a8a4c479d9bfaf406b79f2e1465">kXMP_PropValueOptionsMask</a> = kXMP_PropValueIsURI,
+<br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04aef8c1934a17b0e5d8f0b20a7e89df0df">kXMP_PropArrayLocationMask</a> = kXMP_InsertBeforeItem | kXMP_InsertAfterItem
+<br />
+ }<tr class="memdesc:abc6126af1d45847bc59afa0aa3216b04"><td class="mdescLeft">&#160;</td><td class="mdescRight">Option bit flags for the <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services. ">TXMPMeta</a></code> property setting functions. <a href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:abc6126af1d45847bc59afa0aa3216b04"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adc29c2ff13d900c2f185ee95427fb06c"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca1e533852436acf75f594a4fb50a64400">kXMP_RequireXMPMeta</a> = 0x0001UL,
+<a class="el" href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca79b36427b7bf0c0a1ed010a44dec2d3e">kXMP_ParseMoreBuffers</a> = 0x0002UL,
+<a class="el" href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca7107906eab0e1fa6f9f2dc6254ad88b1">kXMP_StrictAliasing</a> = 0x0004UL
+ }<tr class="memdesc:adc29c2ff13d900c2f185ee95427fb06c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Option bit flags for <code><a class="el" href="classTXMPMeta.html#a7b383f5b357fff040cdbde82f4f43f26" title="ParseFromBuffer() parses RDF from a series of input buffers into this XMP object. ...">TXMPMeta::ParseFromBuffer()</a></code>. <a href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06c">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:adc29c2ff13d900c2f185ee95427fb06c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a61dadd085c1777f559549e05962b2c9e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadbb9e4c7ee139da0dd4126ddea794c76">kXMP_OmitPacketWrapper</a> = 0x0010UL,
+<a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea238c792322c5bd5f9e4db3165e01f9d6">kXMP_ReadOnlyPacket</a> = 0x0020UL,
+<a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea041dc6b7b8684be7112ae40f5f259ebb">kXMP_UseCompactFormat</a> = 0x0040UL,
+<a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea15e3fb0e64614c574ed554f2f72c0a5d">kXMP_UseCanonicalFormat</a> = 0x0080UL,
+<br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea0b659b3b544c7a5a076fbd3132cd7f7a">kXMP_IncludeThumbnailPad</a> = 0x0100UL,
+<a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadb35599da481cc22ea6342b7b4de6bc6">kXMP_ExactPacketLength</a> = 0x0200UL,
+<a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea79230f1d70d2625f7650db6ff5b1ea29">kXMP_OmitAllFormatting</a> = 0x0800UL,
+<a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea9fb498d749d939e2ba9adf555a75b856">kXMP_OmitXMPMetaElement</a> = 0x1000UL,
+<br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea23054ea4ab89dfd802f14cb389e18745">kXMP_IncludeRDFHash</a> = 0x2000UL,
+<a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eaa646a732a5b11cd8354ca0c3686ef04d">_XMP_LittleEndian_Bit</a> = 0x0001UL,
+<a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea688324384883724626ddd5597eb45739">_XMP_UTF16_Bit</a> = 0x0002UL,
+<a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea540bbd27859990185eb488442579768b">_XMP_UTF32_Bit</a> = 0x0004UL,
+<br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eaeb79571cac99ee97feefb0347b1c1845">kXMP_EncodingMask</a> = 0x0007UL,
+<a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadc8f241694f5a758e5ee3f6db69d02ab">kXMP_EncodeUTF8</a> = 0UL,
+<a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea310e4cbf639e783163778566b439f01d">kXMP_EncodeUTF16Big</a> = _XMP_UTF16_Bit,
+<a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eafc6417e382c98a2d507830de62fd4830">kXMP_EncodeUTF16Little</a> = _XMP_UTF16_Bit | _XMP_LittleEndian_Bit,
+<br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea793e99d9ea83f0aadd5b4193a95ea713">kXMP_EncodeUTF32Big</a> = _XMP_UTF32_Bit,
+<a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eae0137d98ea990fa23d292489031ba09e">kXMP_EncodeUTF32Little</a> = _XMP_UTF32_Bit | _XMP_LittleEndian_Bit
+<br />
+ }<tr class="memdesc:a61dadd085c1777f559549e05962b2c9e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Option bit flags for <code><a class="el" href="classTXMPMeta.html#a2774a6f15ae22f0002201b58c46bfb49" title="SerializeToBuffer() serializes metadata in this XMP object into a string as RDF. ">TXMPMeta::SerializeToBuffer()</a></code>. <a href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9e">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:a61dadd085c1777f559549e05962b2c9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a726ca809ffd3d67ab4b8476646f26635"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a93f77b837d89759af3a721712c13f044">kXMP_IterClassMask</a> = 0x00FFUL,
+<a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635aa0643c076a3b3737ff88ed20f16afd2b">kXMP_IterProperties</a> = 0x0000UL,
+<a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a3333450505cd3712320aeac895e541b9">kXMP_IterAliases</a> = 0x0001UL,
+<a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635aa325d9ffba68a934f0a0a0f6ecfc2f7b">kXMP_IterNamespaces</a> = 0x0002UL,
+<br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635ab26e1a38d1d0343fcc5bdaab1b60e3ed">kXMP_IterJustChildren</a> = 0x0100UL,
+<a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a4589f99b5b4a55e785e3baf4fe1d9b19">kXMP_IterJustLeafNodes</a> = 0x0200UL,
+<a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635acf22e638f4144bcec8207b2ab69bb344">kXMP_IterJustLeafName</a> = 0x0400UL,
+<a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a1b91947105ae68c48c5d5e36aa70d101">kXMP_IterOmitQualifiers</a> = 0x1000UL
+<br />
+ }<tr class="memdesc:a726ca809ffd3d67ab4b8476646f26635"><td class="mdescLeft">&#160;</td><td class="mdescRight">Option bit flags for <code><a class="el" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services. ">TXMPIterator</a></code> construction. <a href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:a726ca809ffd3d67ab4b8476646f26635"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0411cd49bb5b71852cecd93bcbf0ca2d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="XMP__Const_8h.html#a0411cd49bb5b71852cecd93bcbf0ca2dab0b540cd3841f411471a827f833c606e">kXMP_IterSkipSubtree</a> = 0x0001UL,
+<a class="el" href="XMP__Const_8h.html#a0411cd49bb5b71852cecd93bcbf0ca2da2537b4b8db838f85b47988b198cd2a12">kXMP_IterSkipSiblings</a> = 0x0002UL
+ }<tr class="memdesc:a0411cd49bb5b71852cecd93bcbf0ca2d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Option bit flags for <code><a class="el" href="classTXMPIterator.html#a30b4d78974b347e4fcd275f1f65a61b2" title="Skip() skips some portion of the remaining iterations. ">TXMPIterator::Skip()</a></code>. <a href="XMP__Const_8h.html#a0411cd49bb5b71852cecd93bcbf0ca2d">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:a0411cd49bb5b71852cecd93bcbf0ca2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abed82baf7f470b522273a3e37c24c600"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="XMP__Const_8h.html#abed82baf7f470b522273a3e37c24c600ad6d41710c689f16d19ac26dc9f5cc506">kXMPUtil_AllowCommas</a> = 0x10000000UL
+ }<tr class="memdesc:abed82baf7f470b522273a3e37c24c600"><td class="mdescLeft">&#160;</td><td class="mdescRight">Option bit flags for <code><a class="el" href="classTXMPUtils.html#ad7e1aa7928252fb88a24fb5c3aef22ba" title="CatenateArrayItems() creates a single edit string from a set of array item values. ">TXMPUtils::CatenateArrayItems()</a></code> and <code><a class="el" href="classTXMPUtils.html#a66c5ddee47aa36ed906353f94ca18d2e" title="SeparateArrayItems() updates an array from a concatenated edit string of values. ">TXMPUtils::SeparateArrayItems()</a></code>. <a href="XMP__Const_8h.html#abed82baf7f470b522273a3e37c24c600">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:abed82baf7f470b522273a3e37c24c600"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab04a0655cd1e3bcac5e8f48c18df1a57"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a872d2b769e775e281984cc63e28714ea">kXMPTemplate_IncludeInternalProperties</a> = 0x0001UL,
+<a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57aae2e0fe43295736a15f0bb76ffe02544">kXMPTemplate_ReplaceExistingProperties</a> = 0x0002UL,
+<a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a81e1b6fd067fc9ad62bc803c98701bd5">kXMPTemplate_ReplaceWithDeleteEmpty</a> = 0x0004UL,
+<a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a145c259f83048b811c7b35bc3b339c42">kXMPTemplate_AddNewProperties</a> = 0x0008UL,
+<br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a9dac536fe6ee25de76d45bf6615abd46">kXMPTemplate_ClearUnnamedProperties</a> = 0x0010UL
+<br />
+ }<tr class="memdesc:ab04a0655cd1e3bcac5e8f48c18df1a57"><td class="mdescLeft">&#160;</td><td class="mdescRight">Option bit flags for <code><a class="el" href="classTXMPUtils.html#ab73bfa15116e6d702044542e0a43cce9" title="ApplyTemplate() modifies a working XMP object according to a template object. ">TXMPUtils::ApplyTemplate()</a></code>. <a href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:ab04a0655cd1e3bcac5e8f48c18df1a57"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a385c44f6fb256e5716a2302a5b940388"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a8ddfb0572b7602a52e533d92d8b1e9fb">kXMPUtil_DoAllProperties</a> = 0x0001UL,
+<a class="el" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388adab4dad658d2d218c5b1e7d829b12962">kXMPUtil_ReplaceOldValues</a> = 0x0002UL,
+<a class="el" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a97753b4c5afda9c55e807e41377d86d9">kXMPUtil_DeleteEmptyValues</a> = 0x0004UL,
+<a class="el" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a843589b878f53d42d59258f945ad770b">kXMPUtil_IncludeAliases</a> = 0x0800UL
+ }<tr class="memdesc:a385c44f6fb256e5716a2302a5b940388"><td class="mdescLeft">&#160;</td><td class="mdescRight">Option bit flags for <code><a class="el" href="classTXMPUtils.html#a40c645803530662e08d042b4b7c6190d" title="RemoveProperties() removes multiple properties from an XMP object. ">TXMPUtils::RemoveProperties()</a></code> and <code>TXMPUtils::AppendProperties()</code>. <a href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:a385c44f6fb256e5716a2302a5b940388"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a84d76d32dd4ef90e5a90cf759b7e563f"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563f">SeekMode</a> { <a class="el" href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563faf52720b8c894653e4a089a9c0331ee47">kXMP_SeekFromStart</a>,
+<a class="el" href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563fa4e179367a02390075e632aca6e115925">kXMP_SeekFromCurrent</a>,
+<a class="el" href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563faeedc991a0194b932ae4a47307843baf6">kXMP_SeekFromEnd</a>
+ }<tr class="memdesc:a84d76d32dd4ef90e5a90cf759b7e563f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Seek mode constants for use with <a class="el" href="classXMP__IO.html" title="Abstract base class for client-managed I/O with TXMPFiles. ">XMP_IO</a> and inside XMPFiles library code. <a href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563f">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:a84d76d32dd4ef90e5a90cf759b7e563f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abc5c98fcc1211af2b80116dd6e0a035d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da17ab6d429c1550eb3cc16d2e544b78eb">kXMP_PDFFile</a> = 0x50444620UL,
+<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da52c90935ee28a0875a49843d463cad70">kXMP_PostScriptFile</a> = 0x50532020UL,
+<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad947e6da0c4d923195d93e0c53a79c4e">kXMP_EPSFile</a> = 0x45505320UL,
+<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad752b2d3e1139e0745223a9385ef6487">kXMP_JPEGFile</a> = 0x4A504547UL,
+<br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da78b8fa38aaa2067e3e1baa0dcaa7571d">kXMP_JPEG2KFile</a> = 0x4A505820UL,
+<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dadc0edf25d933c2a21b25449692c3ba08">kXMP_TIFFFile</a> = 0x54494646UL,
+<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da851d2f4525d705cd2dcabb540d0ddc06">kXMP_GIFFile</a> = 0x47494620UL,
+<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dac989381d37de320495e4d13f9ecc6371">kXMP_PNGFile</a> = 0x504E4720UL,
+<br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da564a8095f65d951f451e16eb56650597">kXMP_SWFFile</a> = 0x53574620UL,
+<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dab1eeba00d1d92e313acfe68cd054daf9">kXMP_FLAFile</a> = 0x464C4120UL,
+<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da455bc501088bbd8061fe3ea386a5066f">kXMP_FLVFile</a> = 0x464C5620UL,
+<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daebdb172c8a75b4ead2eff2d26ed3dc37">kXMP_MOVFile</a> = 0x4D4F5620UL,
+<br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dae3a6333624e5c292caf14ad849a5e26e">kXMP_AVIFile</a> = 0x41564920UL,
+<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad2935ea79b4f9253891e3a68a002c5bb">kXMP_CINFile</a> = 0x43494E20UL,
+<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dacc1fcd4e52423c0dd2966a2e92352fb8">kXMP_WAVFile</a> = 0x57415620UL,
+<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf3ee34ed2bc26dec0e2d572eeb0de89b">kXMP_MP3File</a> = 0x4D503320UL,
+<br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da42cb8767d9cf16eaeb7aec68a4f224e9">kXMP_SESFile</a> = 0x53455320UL,
+<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da6c949ee85f42eaaed035591338be6789">kXMP_CELFile</a> = 0x43454C20UL,
+<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da043afdc1db730db9ac03c505140c61c8">kXMP_MPEGFile</a> = 0x4D504547UL,
+<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dab58eaebed494530072ad990ac7a9807a">kXMP_MPEG2File</a> = 0x4D503220UL,
+<br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da89e6282c3f0c8966d788500f5d8eaa91">kXMP_MPEG4File</a> = 0x4D503420UL,
+<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da4b3477bdc53fae1511104fc54f88d134">kXMP_MXFFile</a> = 0x4D584620UL,
+<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da78c62f7c10b16b1a862d93f6226a4622">kXMP_WMAVFile</a> = 0x574D4156UL,
+<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf093d01e7e9cc55a7d1e204498521fc3">kXMP_AIFFFile</a> = 0x41494646UL,
+<br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daab032aa36aec082c6b3a8300548346f5">kXMP_REDFile</a> = 0x52454420UL,
+<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dabad9584845edf66f2f8fc3c336977e34">kXMP_P2File</a> = 0x50322020UL,
+<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da5f78caa0871695cc92e058e4f4b2dd57">kXMP_XDCAM_FAMFile</a> = 0x58444346UL,
+<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da64fe7908df6341e13d9d8c8199cdf852">kXMP_XDCAM_SAMFile</a> = 0x58444353UL,
+<br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da45bf9b21d5ffed3594fbd585c47cc4fc">kXMP_XDCAM_EXFile</a> = 0x58444358UL,
+<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafc5ff976e78df2d79d651de818b011f2">kXMP_AVCHDFile</a> = 0x41564844UL,
+<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daa0edb070c11f87c3dad9f8f7a83b9b5e">kXMP_SonyHDVFile</a> = 0x53484456UL,
+<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafa11d905db1236494e555956cb2f90ef">kXMP_CanonXFFile</a> = 0x434E5846UL,
+<br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf32bab632c45ee7d960a5b74c9d61155">kXMP_AVCUltraFile</a> = 0x41564355UL,
+<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da542634e6051139c44fd7b92d08c64760">kXMP_HTMLFile</a> = 0x48544D4CUL,
+<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad217b996403fa13caef3d6e978023124">kXMP_XMLFile</a> = 0x584D4C20UL,
+<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da27051cd824d3ae7bb59e3af7a7908ffd">kXMP_TextFile</a> = 0x74657874UL,
+<br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf775c60f1da0e8c34590744a89e66c79">kXMP_SVGFile</a> = 0x53564720UL,
+<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da22b478a9d0d52d12e8e4a1181024eb1c">kXMP_PhotoshopFile</a> = 0x50534420UL,
+<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da82935c41c6222ff4cca954278f18e554">kXMP_IllustratorFile</a> = 0x41492020UL,
+<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da79cbf96ecc4ac3e0ebfb2d182bc75e60">kXMP_InDesignFile</a> = 0x494E4444UL,
+<br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da5fb9e99541bbb2d8e375d0cc9fd92a2e">kXMP_AEProjectFile</a> = 0x41455020UL,
+<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dada5b138722448c4d4595fe760668c3df">kXMP_AEProjTemplateFile</a> = 0x41455420UL,
+<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafd8d3d1c8c84bc6ab773f1298b3938f0">kXMP_AEFilterPresetFile</a> = 0x46465820UL,
+<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dae28efb65bde55f3f8ddfd1fd8a168e2a">kXMP_EncoreProjectFile</a> = 0x4E434F52UL,
+<br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daeff4f68cd5162370f7bf938a868e280d">kXMP_PremiereProjectFile</a> = 0x5052504AUL,
+<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da1ad712bbd349dc899ca1e71971032b0a">kXMP_PremiereTitleFile</a> = 0x5052544CUL,
+<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da96804f7b8ce83786051c4dac4930aa96">kXMP_UCFFile</a> = 0x55434620UL,
+<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719">kXMP_UnknownFile</a> = 0x20202020UL
+<br />
+ }<tr class="memdesc:abc5c98fcc1211af2b80116dd6e0a035d"><td class="mdescLeft">&#160;</td><td class="mdescRight">File format constants for use with XMPFiles. <a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035d">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:abc5c98fcc1211af2b80116dd6e0a035d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac36f475ca5b446f4fde4c9b90bec77c8"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8a0bcf31bfc6bd3bbd5f80ef25f21b4391">kXMP_CharLittleEndianMask</a> = 1,
+<a class="el" href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8ac9b8b24a75e4e325a49e3730b8e3c5ed">kXMP_Char16BitMask</a> = 2,
+<a class="el" href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8a705cebe9f5f6700f039a153d394b4f2a">kXMP_Char32BitMask</a> = 4
+ }<tr class="memdesc:ac36f475ca5b446f4fde4c9b90bec77c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Byte-order masks, do not use directly. <a href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:ac36f475ca5b446f4fde4c9b90bec77c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a05589fbab0657f08285ebdfe93f5ec9e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9eaf5b20dd9abbef29169a362b265049637">kXMP_Char8Bit</a> = 0,
+<a class="el" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea0966bca9b241646f6a730f96c5c14a2d">kXMP_Char16BitBig</a> = kXMP_Char16BitMask,
+<a class="el" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea19b97b941d6586031190025225ee0eaa">kXMP_Char16BitLittle</a> = kXMP_Char16BitMask | kXMP_CharLittleEndianMask,
+<a class="el" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea87f8231aec6dd125baf77c9f3f918fbc">kXMP_Char32BitBig</a> = kXMP_Char32BitMask,
+<br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea859e7aa88e7dfd3f55ad2b6445a4708e">kXMP_Char32BitLittle</a> = kXMP_Char32BitMask | kXMP_CharLittleEndianMask,
+<a class="el" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea6c37f0724299a9c88e2f622d3246d63b">kXMP_CharUnknown</a> = 1
+<br />
+ }<tr class="memdesc:a05589fbab0657f08285ebdfe93f5ec9e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constants to allow easy testing for 16/32 bit and big/little endian. <a href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9e">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:a05589fbab0657f08285ebdfe93f5ec9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a16af7b253440dadd46a80a4b9fddba4d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="XMP__Const_8h.html#a16af7b253440dadd46a80a4b9fddba4da767b4847575a8de28e691be660d43817">kXMP_PacketInfoVersion</a> = 3
+ }<tr class="memdesc:a16af7b253440dadd46a80a4b9fddba4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version of the <a class="el" href="structXMP__PacketInfo.html" title="XMP packet description. ">XMP_PacketInfo</a> type. <a href="XMP__Const_8h.html#a16af7b253440dadd46a80a4b9fddba4d">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:a16af7b253440dadd46a80a4b9fddba4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aba01db17f4a2bfbc3db60dc172972a25"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="XMP__Const_8h.html#aba01db17f4a2bfbc3db60dc172972a25a9b9c1ef01e49193a167c40156df07b50">kXMPFiles_IgnoreLocalText</a> = 0x0002,
+<a class="el" href="XMP__Const_8h.html#aba01db17f4a2bfbc3db60dc172972a25aee2f09481347c29d6c06951b0d81e145">kXMPFiles_ServerMode</a> = kXMPFiles_IgnoreLocalText
+ }<tr class="memdesc:aba01db17f4a2bfbc3db60dc172972a25"><td class="mdescLeft">&#160;</td><td class="mdescRight">Option bit flags for <code><a class="el" href="classTXMPFiles.html#a0874bbbf41c9490abfb613bfe297327d" title="Initializes the XMPFiles library; must be called before creating an SXMPFiles object. ">TXMPFiles::Initialize()</a></code>. <a href="XMP__Const_8h.html#aba01db17f4a2bfbc3db60dc172972a25">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:aba01db17f4a2bfbc3db60dc172972a25"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaf105ae5beaca1dee30ae54530691fce"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea23a3eb2a5e95292036a93ad6666fa388">kXMPFiles_CanInjectXMP</a> = 0x00000001,
+<a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea126c9cc056f6569c424431edbcb9521c">kXMPFiles_CanExpand</a> = 0x00000002,
+<a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea8957f1ef358b4ab3a1df519903f2ae07">kXMPFiles_CanRewrite</a> = 0x00000004,
+<a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceab55e1873e67048928de3fc47550678c3">kXMPFiles_PrefersInPlace</a> = 0x00000008,
+<br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceafc2bc7cfdd28a326788d563ec0357694">kXMPFiles_CanReconcile</a> = 0x00000010,
+<a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea4a183c3ec4994cf09993e5b31dee9733">kXMPFiles_AllowsOnlyXMP</a> = 0x00000020,
+<a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceadb116eed738d1fcdfe4ab9c1635e08ea">kXMPFiles_ReturnsRawPacket</a> = 0x00000040,
+<a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceafc2c5b585e698ebf24a9379de35954b4">kXMPFiles_HandlerOwnsFile</a> = 0x00000100,
+<br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea9fe958d4ccde02516a3a267db63874cd">kXMPFiles_AllowsSafeUpdate</a> = 0x00000200,
+<a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceaee13099f78018a5e1ce033266c27e999">kXMPFiles_NeedsReadOnlyPacket</a> = 0x00000400,
+<a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcead3027b786992e2a4762a4fa37c92943c">kXMPFiles_UsesSidecarXMP</a> = 0x00000800,
+<a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceaa2a6a4b744b40055387234632b688fcd">kXMPFiles_FolderBasedFormat</a> = 0x00001000,
+<br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea17578d45ae3c09a8d08189ea544052b1">kXMPFiles_CanNotifyProgress</a> = 0x00002000,
+<a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea798c55f5144eedde76f8329a056210b2">kXMPFiles_NeedsPreloading</a> = 0x00004000
+<br />
+ }<tr class="memdesc:aaf105ae5beaca1dee30ae54530691fce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Option bit flags for <code><a class="el" href="classTXMPFiles.html#acb9e16a1477ec67fa6da6d736a9bc131" title="GetFormatInfo() reports what features are supported for a specific file format. ">TXMPFiles::GetFormatInfo()</a></code>. <a href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fce">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:aaf105ae5beaca1dee30ae54530691fce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a80155586fa275b28773c9b203f52caba"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa4c61ec4ed571dbc5f1832ff6772320d2">kXMPFiles_OpenForRead</a> = 0x00000001,
+<a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa91fa388b3888bcb6a68615537b66a49b">kXMPFiles_OpenForUpdate</a> = 0x00000002,
+<a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaa58279b2b1311242e7374117f455bb96">kXMPFiles_OpenOnlyXMP</a> = 0x00000004,
+<a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaab8cbbeef0e99d246907a4375766e21a2">kXMPFiles_ForceGivenHandler</a> = 0x00000008,
+<br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa0bef4db2ecdaf82a85df9e9d417aab18">kXMPFiles_OpenStrictly</a> = 0x00000010,
+<a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaf6332435c7fc89cb0b7381e13fe43646">kXMPFiles_OpenUseSmartHandler</a> = 0x00000020,
+<a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa77b47c63e579b28cbd25083ceb58c285">kXMPFiles_OpenUsePacketScanning</a> = 0x00000040,
+<a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa77f34b1873bb2584feabe26a2c8f1182">kXMPFiles_OpenLimitedScanning</a> = 0x00000080,
+<br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa05acd568597f72b4812b432ea6cf606a">kXMPFiles_OpenRepairFile</a> = 0x00000100,
+<a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaf5f2ebd401758a14dc52c5ee403303b5">kXMPFiles_OptimizeFileLayout</a> = 0x00000200
+<br />
+ }<tr class="memdesc:a80155586fa275b28773c9b203f52caba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Option bit flags for <code><a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb" title="OpenFile() opens a file for metadata access. ">TXMPFiles::OpenFile()</a></code>. <a href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52caba">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:a80155586fa275b28773c9b203f52caba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6b7b47dd702d9e331586d485013fd1ea"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="XMP__Const_8h.html#a6b7b47dd702d9e331586d485013fd1eaadbf8d744f355ef9800a4ec44325baf54">kXMPFiles_UpdateSafely</a> = 0x0001
+ }<tr class="memdesc:a6b7b47dd702d9e331586d485013fd1ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Option bit flags for <code><a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927" title="CloseFile() explicitly closes an opened file. ">TXMPFiles::CloseFile()</a></code>. <a href="XMP__Const_8h.html#a6b7b47dd702d9e331586d485013fd1ea">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:a6b7b47dd702d9e331586d485013fd1ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:adc83d1c8e3a881f2a1623f63a6cb9ff0"><td class="memItemLeft" align="right" valign="top">const XMP_Uns8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#adc83d1c8e3a881f2a1623f63a6cb9ff0">kXMP_Bool_False</a> = 0</td></tr>
+<tr class="separator:adc83d1c8e3a881f2a1623f63a6cb9ff0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4abfa333cf45f8849b93c6a630537de2"><td class="memItemLeft" align="right" valign="top">static const XMP_Uns8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a4abfa333cf45f8849b93c6a630537de2">Min_XMP_Uns8</a> = ( (XMP_Uns8) 0x00 )</td></tr>
+<tr class="separator:a4abfa333cf45f8849b93c6a630537de2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa803470bc9b20fc47b0108559e4bccb4"><td class="memItemLeft" align="right" valign="top">static const XMP_Uns8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#aa803470bc9b20fc47b0108559e4bccb4">Max_XMP_Uns8</a> = ( (XMP_Uns8) 0xFF )</td></tr>
+<tr class="separator:aa803470bc9b20fc47b0108559e4bccb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae5d5ff926903623a451ada7cb840d815"><td class="memItemLeft" align="right" valign="top">static const XMP_Uns16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#ae5d5ff926903623a451ada7cb840d815">Min_XMP_Uns16</a> = ( (XMP_Uns16) 0x00 )</td></tr>
+<tr class="separator:ae5d5ff926903623a451ada7cb840d815"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a950af5f297a8aba136e4fb0bb69b3167"><td class="memItemLeft" align="right" valign="top">static const XMP_Uns16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a950af5f297a8aba136e4fb0bb69b3167">Max_XMP_Uns16</a> = ( (XMP_Uns16) 0xFFFF )</td></tr>
+<tr class="separator:a950af5f297a8aba136e4fb0bb69b3167"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae8936caf3fa038bd64705caf6ab2329f"><td class="memItemLeft" align="right" valign="top">static const XMP_Uns32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#ae8936caf3fa038bd64705caf6ab2329f">Min_XMP_Uns32</a> = ( (XMP_Uns32) 0x00 )</td></tr>
+<tr class="separator:ae8936caf3fa038bd64705caf6ab2329f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adc36ebc09374b4400ebc68df37a5abad"><td class="memItemLeft" align="right" valign="top">static const XMP_Uns32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#adc36ebc09374b4400ebc68df37a5abad">Max_XMP_Uns32</a> = ( (XMP_Uns32) 0xFFFFFFFF )</td></tr>
+<tr class="separator:adc36ebc09374b4400ebc68df37a5abad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae3052e3b7b6f4c6163331ead175a7e28"><td class="memItemLeft" align="right" valign="top">static const XMP_Uns64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#ae3052e3b7b6f4c6163331ead175a7e28">Min_XMP_Uns64</a> = ( (XMP_Uns64) 0x00 )</td></tr>
+<tr class="separator:ae3052e3b7b6f4c6163331ead175a7e28"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa6ce5fadc73345c8db588922dc731c89"><td class="memItemLeft" align="right" valign="top">static const XMP_Uns64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#aa6ce5fadc73345c8db588922dc731c89">Max_XMP_Uns64</a> = ( (XMP_Uns64) 0xFFFFFFFFFFFFFFFFLL )</td></tr>
+<tr class="separator:aa6ce5fadc73345c8db588922dc731c89"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aad7fed121559de43b53067c0bcb9baae"><td class="memItemLeft" align="right" valign="top">static const XMP_Int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#aad7fed121559de43b53067c0bcb9baae">Min_XMP_Int8</a> = ( (XMP_Int8) 0x80 )</td></tr>
+<tr class="separator:aad7fed121559de43b53067c0bcb9baae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a914a8ec6b55c89c7ed098e4d3b878989"><td class="memItemLeft" align="right" valign="top">static const XMP_Int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a914a8ec6b55c89c7ed098e4d3b878989">Max_XMP_Int8</a> = ( (XMP_Int8) 0x7F )</td></tr>
+<tr class="separator:a914a8ec6b55c89c7ed098e4d3b878989"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abd313c6844b00bcfdbc43b0405fa8364"><td class="memItemLeft" align="right" valign="top">static const XMP_Int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#abd313c6844b00bcfdbc43b0405fa8364">Min_XMP_Int16</a> = ( (XMP_Int16) 0x8000 )</td></tr>
+<tr class="separator:abd313c6844b00bcfdbc43b0405fa8364"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7ed33c3b64b4f8a3950f4814487e30e4"><td class="memItemLeft" align="right" valign="top">static const XMP_Int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a7ed33c3b64b4f8a3950f4814487e30e4">Max_XMP_Int16</a> = ( (XMP_Int16) 0x7FFF )</td></tr>
+<tr class="separator:a7ed33c3b64b4f8a3950f4814487e30e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a778d64a8002543649fcd4e27b332aa38"><td class="memItemLeft" align="right" valign="top">static const XMP_Int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a778d64a8002543649fcd4e27b332aa38">Min_XMP_Int32</a> = ( (XMP_Int32) 0x80000000 )</td></tr>
+<tr class="separator:a778d64a8002543649fcd4e27b332aa38"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab2a4c6f608993eed8b8e96b875afbaf3"><td class="memItemLeft" align="right" valign="top">static const XMP_Int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#ab2a4c6f608993eed8b8e96b875afbaf3">Max_XMP_Int32</a> = ( (XMP_Int32) 0x7FFFFFFF )</td></tr>
+<tr class="separator:ab2a4c6f608993eed8b8e96b875afbaf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a422fdf9dc276d3edacde0826d43dfea5"><td class="memItemLeft" align="right" valign="top">static const XMP_Int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a422fdf9dc276d3edacde0826d43dfea5">Min_XMP_Int64</a> = ( (XMP_Int64) 0x8000000000000000LL )</td></tr>
+<tr class="separator:a422fdf9dc276d3edacde0826d43dfea5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5783bb97f7a4837bf1938332d65804d8"><td class="memItemLeft" align="right" valign="top">static const XMP_Int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a5783bb97f7a4837bf1938332d65804d8">Max_XMP_Int64</a> = ( (XMP_Int64) 0x7FFFFFFFFFFFFFFFLL )</td></tr>
+<tr class="separator:a5783bb97f7a4837bf1938332d65804d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
+General scalar types and constants</h2></td></tr>
+<tr class="memitem:a4c39e0131b0e3d7db66e1cfa82b67141"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a4c39e0131b0e3d7db66e1cfa82b67141">kXMP_TrueStr</a>&#160;&#160;&#160;&quot;True&quot;</td></tr>
+<tr class="memdesc:a4c39e0131b0e3d7db66e1cfa82b67141"><td class="mdescLeft">&#160;</td><td class="mdescRight">The canonical true string value for Booleans in serialized XMP. <a href="#a4c39e0131b0e3d7db66e1cfa82b67141">More...</a><br /></td></tr>
+<tr class="separator:a4c39e0131b0e3d7db66e1cfa82b67141"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2dc55b533ed63ed7ff0c3be16a97e278"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a2dc55b533ed63ed7ff0c3be16a97e278">kXMP_FalseStr</a>&#160;&#160;&#160;&quot;False&quot;</td></tr>
+<tr class="memdesc:a2dc55b533ed63ed7ff0c3be16a97e278"><td class="mdescLeft">&#160;</td><td class="mdescRight">The canonical false string value for Booleans in serialized XMP. <a href="#a2dc55b533ed63ed7ff0c3be16a97e278">More...</a><br /></td></tr>
+<tr class="separator:a2dc55b533ed63ed7ff0c3be16a97e278"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a06fc87d81c62e9abb8790b6e5713c55b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55bacf4bfe01497bd0d88c2af337e4bac39e">kXMPTS_Yes</a> = 1,
+<a class="el" href="XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba2a88f4d4589bf413377283843f70bc90">kXMPTS_No</a> = 0,
+<a class="el" href="XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba7a73219cd125bb21e294ba474112a584">kXMPTS_Maybe</a> = -1
+ }<tr class="memdesc:a06fc87d81c62e9abb8790b6e5713c55b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type for yes/no/maybe answers. The values are picked to allow Boolean-like usage. The yes values are true (non-zero), the no value is false (zero). <a href="XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55b">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:a06fc87d81c62e9abb8790b6e5713c55b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad439e3ceeb4590d310f6125aa12c6df6"><td class="memItemLeft" align="right" valign="top">typedef const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a></td></tr>
+<tr class="memdesc:ad439e3ceeb4590d310f6125aa12c6df6"><td class="mdescLeft">&#160;</td><td class="mdescRight">The type for input string parameters. A <code>const char *</code>, a null-terminated UTF-8 string. <a href="#ad439e3ceeb4590d310f6125aa12c6df6">More...</a><br /></td></tr>
+<tr class="separator:ad439e3ceeb4590d310f6125aa12c6df6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9f7dcc184f901c713274edfdac5bcc9a"><td class="memItemLeft" align="right" valign="top">typedef XMP_Uns32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a></td></tr>
+<tr class="memdesc:a9f7dcc184f901c713274edfdac5bcc9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">The type for string length parameters. A 32-bit unsigned integer, as big as will be practically needed. <a href="#a9f7dcc184f901c713274edfdac5bcc9a">More...</a><br /></td></tr>
+<tr class="separator:a9f7dcc184f901c713274edfdac5bcc9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00e9d9a76c144421105a4c2742203315"><td class="memItemLeft" align="right" valign="top">typedef XMP_Int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a></td></tr>
+<tr class="memdesc:a00e9d9a76c144421105a4c2742203315"><td class="mdescLeft">&#160;</td><td class="mdescRight">The type for offsets and indices. A 32-bit signed integer. It is signed to allow -1 for loop termination. <a href="#a00e9d9a76c144421105a4c2742203315">More...</a><br /></td></tr>
+<tr class="separator:a00e9d9a76c144421105a4c2742203315"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeb865118433be92d88e5f49ed11487c8"><td class="memItemLeft" align="right" valign="top">typedef XMP_Uns32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a></td></tr>
+<tr class="memdesc:aeb865118433be92d88e5f49ed11487c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">The type for a collection of 32 flag bits. <a href="#aeb865118433be92d88e5f49ed11487c8">More...</a><br /></td></tr>
+<tr class="separator:aeb865118433be92d88e5f49ed11487c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a377e4a668de99ce6ed176cef5aaf3fcd"><td class="memItemLeft" align="right" valign="top">typedef XMP_Int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a377e4a668de99ce6ed176cef5aaf3fcd">XMP_TriState</a></td></tr>
+<tr class="separator:a377e4a668de99ce6ed176cef5aaf3fcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
+Error notification and Exceptions</h2></td></tr>
+<tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrp4159f4d87a6d8a59a860a0926f6ad12b"></a>From the beginning through version 5.5, XMP Tookit errors result in throwing an <code><a class="el" href="classXMP__Error.html" title="XMP Toolkit error, associates an error code with a descriptive error string. ">XMP_Error</a></code> exception. For the most part exceptions were thrown early and thus API calls aborted as soon as an error was detected. Starting in version 5.5, support has been added for notifications of errors arising in calls to <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services. ">TXMPMeta</a></code> and <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file. ">TXMPFiles</a></code> functions.</p>
+<p>A client can register an error notification callback function for a <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services. ">TXMPMeta</a></code> or <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file. ">TXMPFiles</a></code> object. This can be done as a global default or individually to each object. The global default applies to all objects created after it is registered. Within the object there is no difference between the global default or explicitly registered callback. The callback function returns a <code>bool</code> value indicating if recovery should be attempted (true) or an exception thrown (false). If no callback is registered, a best effort at recovery and continuation will be made with an exception thrown if recovery is not possible. More details can be found in the <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services. ">TXMPMeta</a></code> and <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file. ">TXMPFiles</a></code> documentation.</p>
+<p>The <code><a class="el" href="classXMP__Error.html" title="XMP Toolkit error, associates an error code with a descriptive error string. ">XMP_Error</a></code> class contains a numeric code and an English explanation. New numeric codes may be added at any time. There are typically many possible explanations for each numeric code. The explanations try to be precise about the specific circumstances causing the error.</p>
+<dl class="section note"><dt>Note</dt><dd>The explanation string is for debugging use only. It must not be shown to users in a final product. It is written for developers not users, and never localized. </dd></dl>
+</td></tr>
+<tr class="memitem:af9bdc3014f3d54c426b6d2df10de4960"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a068fdc8c88dcce62a7b42788a572af61">kXMPErrSev_Recoverable</a> = 0,
+<a class="el" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960afb962bdcf570af9aef4e32b5f279d1a4">kXMPErrSev_OperationFatal</a> = 1,
+<a class="el" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a2bd1ff3ba036640f0c76d68a03cf94f7">kXMPErrSev_FileFatal</a> = 2,
+<a class="el" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a768126806f8c7b7c107314610125deb3">kXMPErrSev_ProcessFatal</a> = 3
+ }<tr class="memdesc:af9bdc3014f3d54c426b6d2df10de4960"><td class="mdescLeft">&#160;</td><td class="mdescRight">Severity codes for error notifications. <a href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:af9bdc3014f3d54c426b6d2df10de4960"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adb49720dc49f7d4e4cf9adbf2948e409"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ae2aec0f3b8db282cbba40e4bcf746ba9">kXMPErr_NoError</a> = -1,
+<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14813595824de97382fffeae7b6fe581">kXMPErr_Unknown</a> = 0,
+<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409acd9fa1b621efafd5b218e3a785cbeda1">kXMPErr_TBD</a> = 1,
+<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac7ac408582c194cc723a24acb8b4e4c3">kXMPErr_Unavailable</a> = 2,
+<br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a115f3d761d2cad952aab23f35cbdf3a1">kXMPErr_BadObject</a> = 3,
+<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a52d197a8b0af3c55f16958162a4132f1">kXMPErr_BadParam</a> = 4,
+<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a716956a038782e595ce61d3fbdd1a25a">kXMPErr_BadValue</a> = 5,
+<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14bd6c24087d280c722c1a044eec27d6">kXMPErr_AssertFailure</a> = 6,
+<br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa856bb36a9742d8542b483e00fc6511b">kXMPErr_EnforceFailure</a> = 7,
+<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a3de1ac8f4e4afb705d5a4654cb9579e2">kXMPErr_Unimplemented</a> = 8,
+<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a8babbd758d2c64fd04e85fa48e0675c0">kXMPErr_InternalFailure</a> = 9,
+<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14342c486ddf394ebc110a446becbfa7">kXMPErr_Deprecated</a> = 10,
+<br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a82941dc15c6ccde6b8fb2f9cc85c2eeb">kXMPErr_ExternalFailure</a> = 11,
+<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4ba7b1a57629e4994a0f7a515d51195">kXMPErr_UserAbort</a> = 12,
+<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5322df07e2a7792824d2468c4837f1cb">kXMPErr_StdException</a> = 13,
+<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aac7558097a1f5a0f99097199f1bf8ff4">kXMPErr_UnknownException</a> = 14,
+<br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a69eb7fef422fbca62cdbc554afffd813">kXMPErr_NoMemory</a> = 15,
+<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5227060f282a86c8ea1a944107751dd1">kXMPErr_ProgressAbort</a> = 16,
+<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2bc66eec6ce830979089d5c336f75539">kXMPErr_BadSchema</a> = 101,
+<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a3f1efec0aa5452f43c55c05aba616ef7">kXMPErr_BadXPath</a> = 102,
+<br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a40ca77d98bd366442bb8d438c420a444">kXMPErr_BadOptions</a> = 103,
+<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a31adb57da79b4fb1f1f5f999ec740010">kXMPErr_BadIndex</a> = 104,
+<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2584fc813bfcd9158b7adf28a3454bb9">kXMPErr_BadIterPosition</a> = 105,
+<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a052b1b525fba7da8c98be5c135f434b8">kXMPErr_BadParse</a> = 106,
+<br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4f936ff6788ce17f6098b7cbda77ed9">kXMPErr_BadSerialize</a> = 107,
+<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa0a05e07925d1f3daf5f36f6da0840f8">kXMPErr_BadFileFormat</a> = 108,
+<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a10fa053f279fed01b075f34a70f11795">kXMPErr_NoFileHandler</a> = 109,
+<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa9c1c20e53db12b20068d830a8990c0b">kXMPErr_TooLargeForJPEG</a> = 110,
+<br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2874a5dcddf253a17d75a147b2ed4933">kXMPErr_NoFile</a> = 111,
+<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a577b0e80acf44125f0dc49e5885e0824">kXMPErr_FilePermission</a> = 112,
+<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa2f19dfd8ce27b5713c79e34f2052e40">kXMPErr_DiskSpace</a> = 113,
+<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2a17df0c0b690f5b7829bc4ca16efce2">kXMPErr_ReadError</a> = 114,
+<br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409afca1d169d7e3cb3ba84c81700c1b9b22">kXMPErr_WriteError</a> = 115,
+<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aacc6262e9c1fd1a64e3d10cedfb7dcb1">kXMPErr_BadBlockFormat</a> = 116,
+<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a0819111429c734ca5ef895c193846351">kXMPErr_FilePathNotAFile</a> = 117,
+<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad9d8c98663e3ead894841807ab4548f8">kXMPErr_RejectedFileExtension</a> = 118,
+<br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac57f1cf1c24778536fd32972e87334c5">kXMPErr_BadXML</a> = 201,
+<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5464b823e619618d9aa58433cdb45a8e">kXMPErr_BadRDF</a> = 202,
+<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a211bb632ed1264d9e2236f35c6414821">kXMPErr_BadXMP</a> = 203,
+<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a078c69d0d76f25187a11981a2552b179">kXMPErr_EmptyIterator</a> = 204,
+<br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4cf86fa29624c5e19111e09a97fe05f">kXMPErr_BadUnicode</a> = 205,
+<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aecd25299aa177de7bc7f3674fcf2e22d">kXMPErr_BadTIFF</a> = 206,
+<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad685e1f839e3bc53dfc55611a0803cee">kXMPErr_BadJPEG</a> = 207,
+<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad98fc9a9c050e9fc19c3af9c8abb2d6d">kXMPErr_BadPSD</a> = 208,
+<br />
+&#160;&#160;<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a1606a687cb790af16dc561b2a8f2e6a3">kXMPErr_BadPSIR</a> = 209,
+<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a23b2d7cab10b3d80549e6b60855bb15e">kXMPErr_BadIPTC</a> = 210,
+<a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad596daed4ac92f8bf7871669d03effad">kXMPErr_BadMPEG</a> = 211
+<br />
+ }<tr class="memdesc:adb49720dc49f7d4e4cf9adbf2948e409"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classXMP__Error.html" title="XMP Toolkit error, associates an error code with a descriptive error string. ">XMP_Error</a> exception code constants. <a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:adb49720dc49f7d4e4cf9adbf2948e409"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae4a7c9347994883250dc440566eb9f52"><td class="memItemLeft" align="right" valign="top">typedef XMP_Uns8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#ae4a7c9347994883250dc440566eb9f52">XMP_ErrorSeverity</a></td></tr>
+<tr class="separator:ae4a7c9347994883250dc440566eb9f52"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abb3c238ce96e9198ebe4260200bfb67b"><td class="memItemLeft" align="right" valign="top">typedef bool(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#abb3c238ce96e9198ebe4260200bfb67b">XMPMeta_ErrorCallbackProc</a>) (void *context, <a class="el" href="XMP__Const_8h.html#ae4a7c9347994883250dc440566eb9f52">XMP_ErrorSeverity</a> severity, XMP_Int32 cause, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> message)</td></tr>
+<tr class="memdesc:abb3c238ce96e9198ebe4260200bfb67b"><td class="mdescLeft">&#160;</td><td class="mdescRight">The signature of a client-defined callback for <a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services. ">TXMPMeta</a> error notifications. <a href="#abb3c238ce96e9198ebe4260200bfb67b">More...</a><br /></td></tr>
+<tr class="separator:abb3c238ce96e9198ebe4260200bfb67b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7bed3dd93335821e5afa0ac2b07a9640"><td class="memItemLeft" align="right" valign="top">typedef bool(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a7bed3dd93335821e5afa0ac2b07a9640">XMPFiles_ErrorCallbackProc</a>) (void *context, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> filePath, <a class="el" href="XMP__Const_8h.html#ae4a7c9347994883250dc440566eb9f52">XMP_ErrorSeverity</a> severity, XMP_Int32 cause, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> message)</td></tr>
+<tr class="memdesc:a7bed3dd93335821e5afa0ac2b07a9640"><td class="mdescLeft">&#160;</td><td class="mdescRight">The signature of a client-defined callback for <a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file. ">TXMPFiles</a> error notifications. <a href="#a7bed3dd93335821e5afa0ac2b07a9640">More...</a><br /></td></tr>
+<tr class="separator:a7bed3dd93335821e5afa0ac2b07a9640"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a32cbbc2b93eb9028d441ecb4223eb2a4"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a32cbbc2b93eb9028d441ecb4223eb2a4">XMPMeta_ErrorCallbackWrapper</a>) (<a class="el" href="XMP__Const_8h.html#abb3c238ce96e9198ebe4260200bfb67b">XMPMeta_ErrorCallbackProc</a> clientProc, void *context, <a class="el" href="XMP__Const_8h.html#ae4a7c9347994883250dc440566eb9f52">XMP_ErrorSeverity</a> severity, XMP_Int32 cause, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> message)</td></tr>
+<tr class="memdesc:a32cbbc2b93eb9028d441ecb4223eb2a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal: The signatures of client-side wrappers for the error notification callbacks. <a href="#a32cbbc2b93eb9028d441ecb4223eb2a4">More...</a><br /></td></tr>
+<tr class="separator:a32cbbc2b93eb9028d441ecb4223eb2a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a24670f4db8bda6e113612fa0c81ffe6b"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html#a24670f4db8bda6e113612fa0c81ffe6b">XMPFiles_ErrorCallbackWrapper</a>) (<a class="el" href="XMP__Const_8h.html#a7bed3dd93335821e5afa0ac2b07a9640">XMPFiles_ErrorCallbackProc</a> clientProc, void *context, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> filePath, <a class="el" href="XMP__Const_8h.html#ae4a7c9347994883250dc440566eb9f52">XMP_ErrorSeverity</a> severity, XMP_Int32 cause, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> message)</td></tr>
+<tr class="separator:a24670f4db8bda6e113612fa0c81ffe6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
-<hr/><a name="_details"></a><h2>Detailed Description</h2>
-<p>Common C/C++ types and constants for the XMP toolkit. </p>
-<hr/><h2>Define Documentation</h2>
-<a class="anchor" id="a2dc55b533ed63ed7ff0c3be16a97e278"></a><!-- doxytag: member="XMP_Const.h::kXMP_FalseStr" ref="a2dc55b533ed63ed7ff0c3be16a97e278" args="" -->
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Common C/C++ types and constants for the XMP toolkit. </p>
+
+<p>Definition in file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+</div><h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="ae6037ae90db1ec7d7c988aec7a8319cb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">#define kXMP_FalseStr&nbsp;&nbsp;&nbsp;&quot;False&quot;</td>
+ <td class="memname">#define ConvertBoolToXMP_Bool</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">a</td><td>)</td>
+ <td>&#160;&#160;&#160;(a) ? !<a class="el" href="XMP__Const_8h.html#adc83d1c8e3a881f2a1623f63a6cb9ff0">kXMP_Bool_False</a> : <a class="el" href="XMP__Const_8h.html#adc83d1c8e3a881f2a1623f63a6cb9ff0">kXMP_Bool_False</a></td>
</tr>
</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00107">107</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+<p>Referenced by <a class="el" href="WXMPMeta_8hpp_source.html#l00020">WrapErrorNotify()</a>, <a class="el" href="WXMPFiles_8hpp_source.html#l00053">WrapFilesErrorNotify()</a>, and <a class="el" href="WXMPFiles_8hpp_source.html#l00039">WrapProgressReport()</a>.</p>
+
</div>
-<div class="memdoc">
+</div>
+<a class="anchor" id="ade06e740748eefe529211dd891bf68f4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define ConvertXMP_BoolToBool</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">a</td><td>)</td>
+ <td>&#160;&#160;&#160;(a) != <a class="el" href="XMP__Const_8h.html#adc83d1c8e3a881f2a1623f63a6cb9ff0">kXMP_Bool_False</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00106">106</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9549b9a138a896257b5a70176d125317"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_ArrayLastItem&#160;&#160;&#160;((<a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a>)(-1L))</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Options macro accesses last array item. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00462">462</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2dc55b533ed63ed7ff0c3be16a97e278"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_FalseStr&#160;&#160;&#160;&quot;False&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
<p>The canonical false string value for Booleans in serialized XMP. </p>
<p>Code that converts from string to bool should be case insensitive, and also allow "0". </p>
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00185">185</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aff1df9f3cf050f8b8d3a574db3c3326b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NoOptions&#160;&#160;&#160;((<a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>)0UL)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Options macro clears all property-type bits. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00464">464</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9d5b4ecd6214d080645718af1db77650"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_AdobeStockPhoto&#160;&#160;&#160;&quot;http://ns.adobe.com/StockPhoto/1.0/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00353">353</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1245d5cd54d23588e74b883d9fda6a93"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_AEScart&#160;&#160;&#160;&quot;http://ns.adobe.com/aes/cart/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00348">348</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3ef3c4c015092f8a4b94c4f8895cd955"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_ASF&#160;&#160;&#160;&quot;http://ns.adobe.com/asf/1.0/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00345">345</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7837e8541712f9f7d5118df1b0905946"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_BWF&#160;&#160;&#160;&quot;http://ns.adobe.com/bwf/bext/1.0/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00347">347</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a19da1e091dee6b6b471c05f1b73d6b3a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_CameraRaw&#160;&#160;&#160;&quot;http://ns.adobe.com/camera-raw-settings/1.0/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00342">342</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad9c3d81fdbaf57f20bdf92d263d9d71a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_CreatorAtom&#160;&#160;&#160;&quot;http://ns.adobe.com/creatorAtom/1.0/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00354">354</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a44453f0d0a1dd295d41722c2387b36fa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_DC&#160;&#160;&#160;&quot;http://purl.org/dc/elements/1.1/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The XML namespace for the Dublin Core schema. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00422">422</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a10f6b8c9d551ec50ea536026b2c2b315"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_DICOM&#160;&#160;&#160;&quot;http://ns.adobe.com/DICOM/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00427">427</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a66fc3e8331cc92dc01cf2bbe74510baa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_DM&#160;&#160;&#160;&quot;http://ns.adobe.com/xmp/1.0/DynamicMedia/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00343">343</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad12182e1df1652f56b5eec60c1fcdd8f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_EXIF&#160;&#160;&#160;&quot;http://ns.adobe.com/exif/1.0/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The XML namespace for Adobe's EXIF schema. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00335">335</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab8f5ed7baf102b78c816f2e86e142cfd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_EXIF_Aux&#160;&#160;&#160;&quot;http://ns.adobe.com/exif/1.0/aux/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00336">336</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abff75489a4300787e251f60694497ca8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_ExifEX&#160;&#160;&#160;&quot;http://cipa.jp/exif/1.0/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00356">356</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab794d3d798daf75a963398347dcbb79b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_IPTCCore&#160;&#160;&#160;&quot;http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The XML namespace for the IPTC Core schema. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00424">424</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a12ca045d4c12992ec8f6c1003523de20"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_IPTCExt&#160;&#160;&#160;&quot;http://iptc.org/std/Iptc4xmpExt/2008-02-29/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The XML namespace for the IPTC Extension schema. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00425">425</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="acc8062c03735e764865786f6064d06ba"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_iXML&#160;&#160;&#160;&quot;http://ns.adobe.com/ixml/1.0/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00350">350</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7426c6b7314b9b29b443f7f401e49be0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_JP2K&#160;&#160;&#160;&quot;http://ns.adobe.com/jp2k/1.0/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00341">341</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a35020e150227e9b8cea205958616f439"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_JPEG&#160;&#160;&#160;&quot;http://ns.adobe.com/jpeg/1.0/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00340">340</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0bcb67d0dd0922504e3da7ca5c40c82a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_PDF&#160;&#160;&#160;&quot;http://ns.adobe.com/pdf/1.3/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The XML namespace for the PDF schema. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00332">332</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac47561b29c7d5e852e014e1391e38591"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_PDFA_Extension&#160;&#160;&#160;&quot;http://www.aiim.org/pdfa/ns/extension/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00436">436</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4f8605dd83a33b8ef13cb8b06f356b2e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_PDFA_Field&#160;&#160;&#160;&quot;http://www.aiim.org/pdfa/ns/field#&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00434">434</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae29f21b2ae6b86fdefc50c92c3157683"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_PDFA_ID&#160;&#160;&#160;&quot;http://www.aiim.org/pdfa/ns/id/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00435">435</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a66eb8f71efe1b64635ab41ee86673436"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_PDFA_Property&#160;&#160;&#160;&quot;http://www.aiim.org/pdfa/ns/property#&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00432">432</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="acc810bb3c0fbab74ba54fca90153e1a0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_PDFA_Schema&#160;&#160;&#160;&quot;http://www.aiim.org/pdfa/ns/schema#&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00431">431</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a02fa37c61718c9712000b834df5d4fdc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_PDFA_Type&#160;&#160;&#160;&quot;http://www.aiim.org/pdfa/ns/type#&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00433">433</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a74c2a786c7ac349f4226c9694e3be641"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_PDFX&#160;&#160;&#160;&quot;http://ns.adobe.com/pdfx/1.3/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00438">438</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a77d8c46d01eab6760579ffa049c80724"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_PDFX_ID&#160;&#160;&#160;&quot;http://www.npes.org/pdfx/ns/id/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00439">439</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa1a6f38ebfcdb281c5bf2809859167c7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_Photoshop&#160;&#160;&#160;&quot;http://ns.adobe.com/photoshop/1.0/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The XML namespace for the Photoshop custom schema. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00333">333</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a650c052a916eefa95f0d0ff7a34eb9a0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_PLUS&#160;&#160;&#160;&quot;http://ns.useplus.org/ldf/xmp/1.0/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00429">429</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abaf8c3257026b73a8d50cf43fa488c5d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_PNG&#160;&#160;&#160;&quot;http://ns.adobe.com/png/1.0/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00338">338</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a465d0a0810455207ffa0346f9c462743"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_PSAlbum&#160;&#160;&#160;&quot;http://ns.adobe.com/album/1.0/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00334">334</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a276fac0f70893607afa3f09030ad84c7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_RDF&#160;&#160;&#160;&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The XML namespace for RDF. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00441">441</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad1bc498d01dcc4a690e007b68a695e3a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_RIFFINFO&#160;&#160;&#160;&quot;http://ns.adobe.com/riff/info/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00349">349</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a57ce38d4e4b01739c939d8a46e23895e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_Script&#160;&#160;&#160;&quot;http://ns.adobe.com/xmp/1.0/Script/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00344">344</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8749291bd81f9cb64535b10ef996cb73"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_SWF&#160;&#160;&#160;&quot;http://ns.adobe.com/swf/1.0/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00339">339</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a673355818b7b9224e8fec0fbc60ba00c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_TIFF&#160;&#160;&#160;&quot;http://ns.adobe.com/tiff/1.0/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The XML namespace for Adobe's TIFF schema. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00337">337</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae802d5ee6fe4802eb5ad692a0b8385ea"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_WAV&#160;&#160;&#160;&quot;http://ns.adobe.com/xmp/wav/1.0/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00346">346</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a97564c70460d1f235c8a41b8ac40cfe9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_XML&#160;&#160;&#160;&quot;http://www.w3.org/XML/1998/namespace&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The XML namespace for XML. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00442">442</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a030875c9dc0861c9251a3374ca14a376"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_XMP&#160;&#160;&#160;&quot;http://ns.adobe.com/xap/1.0/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The XML namespace for the XMP "basic" schema. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00326">326</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a308e156c325618acb2172e550929ebee"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_XMP_BJ&#160;&#160;&#160;&quot;http://ns.adobe.com/xap/1.0/bj/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The XML namespace for the job management schema. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00330">330</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9618e013619aa92ebc808b62243d2ba8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_XMP_Dimensions&#160;&#160;&#160;&quot;http://ns.adobe.com/xap/1.0/sType/Dimensions#&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The XML namespace for fields of the Dimensions type. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00385">385</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a49e25beee90220541ecfc7ac92fb78b5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_XMP_Font&#160;&#160;&#160;&quot;http://ns.adobe.com/xap/1.0/sType/Font#&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00390">390</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2663db91a956937f0921f67342a31646"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_XMP_G_IMG&#160;&#160;&#160;&quot;http://ns.adobe.com/xap/1.0/g/img/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00400">400</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a285d88d6d95ce0bfed19bb41c5be485f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_XMP_Graphics&#160;&#160;&#160;&quot;http://ns.adobe.com/xap/1.0/g/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00388">388</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab466db52a4b85cecfa04710682c1e671"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_XMP_IdentifierQual&#160;&#160;&#160;&quot;http://ns.adobe.com/xmp/Identifier/qual/1.0/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The XML namespace for qualifiers of the xmp:Identifier property. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00384">384</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a935641acc7d01e782ad7a457a7ff338b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_XMP_Image&#160;&#160;&#160;&quot;http://ns.adobe.com/xap/1.0/g/img/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The XML namespace for fields of a graphical image. Used for the Thumbnail type. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00389">389</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac91c21a77be4fdc3d8be26fe37b003c8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_XMP_ManifestItem&#160;&#160;&#160;&quot;http://ns.adobe.com/xap/1.0/sType/ManifestItem#&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00395">395</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac67379a9ffa425d0d7976a51c4f2f754"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_XMP_MM&#160;&#160;&#160;&quot;http://ns.adobe.com/xap/1.0/mm/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The XML namespace for the XMP digital asset management schema. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00329">329</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af7950d7399839f17309a9b944a09be5e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_XMP_Note&#160;&#160;&#160;&quot;http://ns.adobe.com/xmp/note/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00351">351</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac5e9bcf97c425cf61d6f466358aab1ca"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_XMP_PagedFile&#160;&#160;&#160;&quot;http://ns.adobe.com/xap/1.0/t/pg/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00387">387</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a861613273127156050b456eee11f6b0a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_XMP_ResourceEvent&#160;&#160;&#160;&quot;http://ns.adobe.com/xap/1.0/sType/ResourceEvent#&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The XML namespace for fields of the ResourceEvent type. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00391">391</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9bf51f2653400645f7b5087e8c4e1c77"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_XMP_ResourceRef&#160;&#160;&#160;&quot;http://ns.adobe.com/xap/1.0/sType/ResourceRef#&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The XML namespace for fields of the ResourceRef type. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00392">392</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae52d761e5a4fc8c8499215d2f3d82b90"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_XMP_Rights&#160;&#160;&#160;&quot;http://ns.adobe.com/xap/1.0/rights/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The XML namespace for the XMP copyright schema. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00328">328</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac7dc4d65bcbba2862e410cc8cfdff6f6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_XMP_ST_Job&#160;&#160;&#160;&quot;http://ns.adobe.com/xap/1.0/sType/Job#&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The XML namespace for fields of the JobRef type. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00394">394</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab4923bed71ab29c6aa88debe8816c0a2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_XMP_ST_Version&#160;&#160;&#160;&quot;http://ns.adobe.com/xap/1.0/sType/Version#&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The XML namespace for fields of the Version type. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00393">393</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
</div>
</div>
-<a class="anchor" id="a4c39e0131b0e3d7db66e1cfa82b67141"></a><!-- doxytag: member="XMP_Const.h::kXMP_TrueStr" ref="a4c39e0131b0e3d7db66e1cfa82b67141" args="" -->
+<a class="anchor" id="a0a2d9c5f7beb27553214a7ad1df4f27e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">#define kXMP_TrueStr&nbsp;&nbsp;&nbsp;&quot;True&quot;</td>
+ <td class="memname">#define kXMP_NS_XMP_T&#160;&#160;&#160;&quot;http://ns.adobe.com/xap/1.0/t/&quot;</td>
</tr>
</table>
+</div><div class="memdoc">
+
+<p>The XML namespace for the XMP text document schema. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00398">398</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
</div>
-<div class="memdoc">
+<a class="anchor" id="a39afb495ffb24bb3082493c6811e65d0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_XMP_T_PG&#160;&#160;&#160;&quot;http://ns.adobe.com/xap/1.0/t/pg/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The XML namespace for the XMP paged document schema. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00399">399</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5e56ed5d1dfcbf69ddd9cdae6eea85f7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_NS_XMP_Text&#160;&#160;&#160;&quot;http://ns.adobe.com/xap/1.0/t/&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00386">386</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a56197f91b537a0c2b5b9aadbcb404545"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_SchemaNode&#160;&#160;&#160;((<a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>)0x80000000UL)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00667">667</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4c39e0131b0e3d7db66e1cfa82b67141"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_TrueStr&#160;&#160;&#160;&quot;True&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
<p>The canonical true string value for Booleans in serialized XMP. </p>
<p>Code that converts from string to bool should be case insensitive, and also allow "1". </p>
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00184">184</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8283c9596c03b6d626d5a2b7a90e23ab"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMP_UseNullTermination&#160;&#160;&#160;((<a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a>)(~0UL))</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Options macro sets string style. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00463">463</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae0901aabcf619f17cff03f08e5ed3658"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMPFiles_UnknownLength&#160;&#160;&#160;((XMP_Int32)-1)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Constant for an unknown packet length within a file. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01065">1065</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
</div>
</div>
-<a class="anchor" id="a86bc34c4e64dec75618c348163a88720"></a><!-- doxytag: member="XMP_Const.h::XMP_ArrayIsAlternate" ref="a86bc34c4e64dec75618c348163a88720" args="(opt)" -->
+<a class="anchor" id="a6a9b77b60c63781a8776f10880856bf4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define kXMPFiles_UnknownOffset&#160;&#160;&#160;((XMP_Int64)-1)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Constant for an unknown packet offset within a file. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01061">1061</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4928f3fcb7c05bf25694b63d95aa6ce7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define XMP_ArrayIsAlternate</td>
<td>(</td>
- <td class="paramtype">opt&nbsp;</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td>&nbsp;&nbsp;&nbsp;(((opt) &amp; kXMP_PropArrayIsAlternate) != 0)</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">opt</td><td>)</td>
+ <td>&#160;&#160;&#160;(((opt) &amp; <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a2596b1f0ea4600270c99102c86b5f1f1">kXMP_PropArrayIsAlternate</a>) != 0)</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>Macro reports the property type specified by an options flag. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>opt</em>&nbsp;</td><td>The options flag to check. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">opt</td><td>The options flag to check. </td></tr>
</table>
</dd>
</dl>
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00564">564</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
</div>
</div>
-<a class="anchor" id="abbef21da7bce1491f780586c3e01cd9e"></a><!-- doxytag: member="XMP_Const.h::XMP_ArrayIsAltText" ref="abbef21da7bce1491f780586c3e01cd9e" args="(opt)" -->
+<a class="anchor" id="a57d2bb01a830b278c8e6d1ecdead52c4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define XMP_ArrayIsAltText</td>
<td>(</td>
- <td class="paramtype">opt&nbsp;</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td>&nbsp;&nbsp;&nbsp;(((opt) &amp; kXMP_PropArrayIsAltText) != 0)</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">opt</td><td>)</td>
+ <td>&#160;&#160;&#160;(((opt) &amp; <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aba253f67a6cf44b7438a3f96b516846d">kXMP_PropArrayIsAltText</a>) != 0)</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>Macro reports the property type specified by an options flag. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>opt</em>&nbsp;</td><td>The options flag to check. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">opt</td><td>The options flag to check. </td></tr>
</table>
</dd>
</dl>
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00565">565</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
</div>
</div>
-<a class="anchor" id="a72c7077f3ff3e39804a899533867327d"></a><!-- doxytag: member="XMP_Const.h::XMP_ArrayIsOrdered" ref="a72c7077f3ff3e39804a899533867327d" args="(opt)" -->
+<a class="anchor" id="aaace3ec19d70712e4eb16f6d36de9cfb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define XMP_ArrayIsOrdered</td>
<td>(</td>
- <td class="paramtype">opt&nbsp;</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td>&nbsp;&nbsp;&nbsp;(((opt) &amp; kXMP_PropArrayIsOrdered) != 0)</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">opt</td><td>)</td>
+ <td>&#160;&#160;&#160;(((opt) &amp; <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5af1cdb3b0a3e852ec55e747a1686aba04">kXMP_PropArrayIsOrdered</a>) != 0)</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>Macro reports the property type specified by an options flag. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>opt</em>&nbsp;</td><td>The options flag to check. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">opt</td><td>The options flag to check. </td></tr>
</table>
</dd>
</dl>
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00563">563</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
</div>
</div>
-<a class="anchor" id="a8d763b3d36c7067cd7bccd32d4066b43"></a><!-- doxytag: member="XMP_Const.h::XMP_ArrayIsUnordered" ref="a8d763b3d36c7067cd7bccd32d4066b43" args="(opt)" -->
+<a class="anchor" id="a67849593ac3ffe237743d301d94f1449"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define XMP_ArrayIsUnordered</td>
<td>(</td>
- <td class="paramtype">opt&nbsp;</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td>&nbsp;&nbsp;&nbsp;(((opt) &amp; kXMP_PropArrayIsOrdered) == 0)</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">opt</td><td>)</td>
+ <td>&#160;&#160;&#160;(((opt) &amp; <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5af1cdb3b0a3e852ec55e747a1686aba04">kXMP_PropArrayIsOrdered</a>) == 0)</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>Macro reports the property type specified by an options flag. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>opt</em>&nbsp;</td><td>The options flag to check. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">opt</td><td>The options flag to check. </td></tr>
</table>
</dd>
</dl>
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00562">562</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
</div>
</div>
-<a class="anchor" id="aa7596216164335f926cb91d600cddf99"></a><!-- doxytag: member="XMP_Const.h::XMP_CharFormIs16Bit" ref="aa7596216164335f926cb91d600cddf99" args="(f)" -->
+<a class="anchor" id="a72d86d541447456a08e0d29b57a6ae24"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define XMP_CharFormIs16Bit</td>
<td>(</td>
- <td class="paramtype">f&nbsp;</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td>&nbsp;&nbsp;&nbsp;( ((int)(f) &amp; kXMP_Char16BitMask) != 0 )</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">f</td><td>)</td>
+ <td>&#160;&#160;&#160;( ((int)(f) &amp; <a class="el" href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8ac9b8b24a75e4e325a49e3730b8e3c5ed">kXMP_Char16BitMask</a>) != 0 )</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>Macro reports the encoding of a character. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>f</em>&nbsp;</td><td>The character to check. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">f</td><td>The character to check. </td></tr>
</table>
</dd>
</dl>
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01051">1051</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
</div>
</div>
-<a class="anchor" id="a1e99ef08266943f52f5c649ab2836ddf"></a><!-- doxytag: member="XMP_Const.h::XMP_CharFormIs32Bit" ref="a1e99ef08266943f52f5c649ab2836ddf" args="(f)" -->
+<a class="anchor" id="afd02278cadf2132a8cc1e7188715c860"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define XMP_CharFormIs32Bit</td>
<td>(</td>
- <td class="paramtype">f&nbsp;</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td>&nbsp;&nbsp;&nbsp;( ((int)(f) &amp; kXMP_Char32BitMask) != 0 )</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">f</td><td>)</td>
+ <td>&#160;&#160;&#160;( ((int)(f) &amp; <a class="el" href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8a705cebe9f5f6700f039a153d394b4f2a">kXMP_Char32BitMask</a>) != 0 )</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>Macro reports the encoding of a character. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>f</em>&nbsp;</td><td>The character to check. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">f</td><td>The character to check. </td></tr>
</table>
</dd>
</dl>
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01052">1052</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
</div>
</div>
-<a class="anchor" id="aba2539629b8d238fc56a1901dd07ebca"></a><!-- doxytag: member="XMP_Const.h::XMP_CharFormIsBigEndian" ref="aba2539629b8d238fc56a1901dd07ebca" args="(f)" -->
+<a class="anchor" id="ad799046db4440bf02e2d244372ca913c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define XMP_CharFormIsBigEndian</td>
<td>(</td>
- <td class="paramtype">f&nbsp;</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td>&nbsp;&nbsp;&nbsp;( ((int)(f) &amp; kXMP_CharLittleEndianMask) == 0 )</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">f</td><td>)</td>
+ <td>&#160;&#160;&#160;( ((int)(f) &amp; <a class="el" href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8a0bcf31bfc6bd3bbd5f80ef25f21b4391">kXMP_CharLittleEndianMask</a>) == 0 )</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>Macro reports the byte-order of a character. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>f</em>&nbsp;</td><td>The character to check. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">f</td><td>The character to check. </td></tr>
</table>
</dd>
</dl>
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01053">1053</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
</div>
</div>
-<a class="anchor" id="a906ec1cd2fb1631c1b5ad9ccdf9c0a6b"></a><!-- doxytag: member="XMP_Const.h::XMP_CharFormIsLittleEndian" ref="a906ec1cd2fb1631c1b5ad9ccdf9c0a6b" args="(f)" -->
+<a class="anchor" id="a906ec1cd2fb1631c1b5ad9ccdf9c0a6b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define XMP_CharFormIsLittleEndian</td>
<td>(</td>
- <td class="paramtype">f&nbsp;</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td>&nbsp;&nbsp;&nbsp;( ((int)(f) &amp; kXMP_CharLittleEndianMask) != 0 )</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">f</td><td>)</td>
+ <td>&#160;&#160;&#160;( ((int)(f) &amp; <a class="el" href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8a0bcf31bfc6bd3bbd5f80ef25f21b4391">kXMP_CharLittleEndianMask</a>) != 0 )</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>Macro reports the byte-order of a character. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>f</em>&nbsp;</td><td>The character to check. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">f</td><td>The character to check. </td></tr>
</table>
</dd>
</dl>
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01054">1054</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
</div>
</div>
-<a class="anchor" id="a93e7900e6c9fb4057dfd685b5201057d"></a><!-- doxytag: member="XMP_Const.h::XMP_CharFromSerializeForm" ref="a93e7900e6c9fb4057dfd685b5201057d" args="(sf)" -->
+<a class="anchor" id="a93e7900e6c9fb4057dfd685b5201057d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define XMP_CharFromSerializeForm</td>
<td>(</td>
- <td class="paramtype">sf&nbsp;</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td>&nbsp;&nbsp;&nbsp;( (XMP_Uns8)(sf) )</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">sf</td><td>)</td>
+ <td>&#160;&#160;&#160;( (XMP_Uns8)(sf) )</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>Macro converts <code>XMP_OptionBits</code> to <code>XMP_Uns8</code>. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>sf</em>&nbsp;</td><td>The character to convert. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">sf</td><td>The character to convert. </td></tr>
</table>
</dd>
</dl>
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01057">1057</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
</div>
</div>
-<a class="anchor" id="a8f522964919b742b4138c79611997bae"></a><!-- doxytag: member="XMP_Const.h::XMP_CharToSerializeForm" ref="a8f522964919b742b4138c79611997bae" args="(cf)" -->
+<a class="anchor" id="a42692697b1951300a6c82665ded8f781"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define XMP_CharToSerializeForm</td>
<td>(</td>
- <td class="paramtype">cf&nbsp;</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td>&nbsp;&nbsp;&nbsp;( (<a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>)(cf) )</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">cf</td><td>)</td>
+ <td>&#160;&#160;&#160;( (<a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>)(cf) )</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>Macro converts <code>XMP_Uns8</code> to <code>XMP_OptionBits</code>. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>cf</em>&nbsp;</td><td>The character to convert. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">cf</td><td>The character to convert. </td></tr>
</table>
</dd>
</dl>
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01056">1056</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
</div>
</div>
-<a class="anchor" id="a10c3c9b1b6e266b0b4eb6abe7b03b7d8"></a><!-- doxytag: member="XMP_Const.h::XMP_ClearOption" ref="a10c3c9b1b6e266b0b4eb6abe7b03b7d8" args="(var, opt)" -->
+<a class="anchor" id="a04133ceba1ad7a582aa63c8f4a5abf69"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define XMP_ClearOption</td>
<td>(</td>
- <td class="paramtype">var, </td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">var, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">opt&nbsp;</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td>&nbsp;&nbsp;&nbsp;var &amp;= ~(opt)</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">opt&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;var &amp;= ~(opt)</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>Macro clears an option flag bit. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>var</em>&nbsp;</td><td>A variable storing an options flag. </td></tr>
- <tr><td valign="top"></td><td valign="top"><em>opt</em>&nbsp;</td><td>The bit-flag constant to clear. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">var</td><td>A variable storing an options flag. </td></tr>
+ <tr><td class="paramname">opt</td><td>The bit-flag constant to clear. </td></tr>
</table>
</dd>
</dl>
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00500">500</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
</div>
</div>
-<a class="anchor" id="a85bbf023b1b799c3c20176aa289d32b0"></a><!-- doxytag: member="XMP_Const.h::XMP_GetCharSize" ref="a85bbf023b1b799c3c20176aa289d32b0" args="(f)" -->
+<a class="anchor" id="a017e63e6fcd1ede112e8945c49b339e6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define XMP_GetCharSize</td>
<td>(</td>
- <td class="paramtype">f&nbsp;</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td>&nbsp;&nbsp;&nbsp;( ((int)(f)&amp;6) == 0 ? 1 : (int)(f)&amp;6 )</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">f</td><td>)</td>
+ <td>&#160;&#160;&#160;( ((int)(f)&amp;6) == 0 ? 1 : (int)(f)&amp;6 )</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>Macro reports the byte-size of a character. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>f</em>&nbsp;</td><td>The character to check. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">f</td><td>The character to check. </td></tr>
</table>
</dd>
</dl>
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01055">1055</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a44054ee28ca59bd6b5823e4e47479483"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define XMP_MARKER_EXTENSIBILITY_BACKWARD_COMPATIBILITY&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00024">24</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
</div>
</div>
-<a class="anchor" id="a12870d8442720ce5230791abc26f9597"></a><!-- doxytag: member="XMP_Const.h::XMP_NodeIsSchema" ref="a12870d8442720ce5230791abc26f9597" args="(opt)" -->
+<a class="anchor" id="a18d4769112002d84e2ddd1aba6ef473c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define XMP_NodeIsSchema</td>
<td>(</td>
- <td class="paramtype">opt&nbsp;</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td>&nbsp;&nbsp;&nbsp;(((opt) &amp; kXMP_SchemaNode) != 0)</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">opt</td><td>)</td>
+ <td>&#160;&#160;&#160;(((opt) &amp; <a class="el" href="XMP__Const_8h.html#a56197f91b537a0c2b5b9aadbcb404545">kXMP_SchemaNode</a>) != 0)</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>Macro reports the property type specified by an options flag. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>opt</em>&nbsp;</td><td>The options flag to check. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">opt</td><td>The options flag to check. </td></tr>
</table>
</dd>
</dl>
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00571">571</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
</div>
</div>
-<a class="anchor" id="a1d41f53bd1d5c88fad8322ce15e39516"></a><!-- doxytag: member="XMP_Const.h::XMP_OptionIsClear" ref="a1d41f53bd1d5c88fad8322ce15e39516" args="(var, opt)" -->
+<a class="anchor" id="a1d41f53bd1d5c88fad8322ce15e39516"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define XMP_OptionIsClear</td>
<td>(</td>
- <td class="paramtype">var, </td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">var, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">opt&nbsp;</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td>&nbsp;&nbsp;&nbsp;(((var) &amp; (opt)) == 0)</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">opt&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;(((var) &amp; (opt)) == 0)</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>Macro reports whether an option flag bit is clear. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>var</em>&nbsp;</td><td>A variable storing an options flag. </td></tr>
- <tr><td valign="top"></td><td valign="top"><em>opt</em>&nbsp;</td><td>The bit-flag constant to test. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">var</td><td>A variable storing an options flag. </td></tr>
+ <tr><td class="paramname">opt</td><td>The bit-flag constant to test. </td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>True if the bit is clear. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>True if the bit is clear. </dd></dl>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00503">503</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
</div>
</div>
-<a class="anchor" id="aba3edaa921326c7916adb0b70b1bcfb4"></a><!-- doxytag: member="XMP_Const.h::XMP_OptionIsSet" ref="aba3edaa921326c7916adb0b70b1bcfb4" args="(var, opt)" -->
+<a class="anchor" id="a8d8d2810a46a2b171107f4a2387e003d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define XMP_OptionIsSet</td>
<td>(</td>
- <td class="paramtype">var, </td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">var, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">opt&nbsp;</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td>&nbsp;&nbsp;&nbsp;(((var) &amp; (opt)) != 0)</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">opt&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;(((var) &amp; (opt)) != 0)</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>Macro reports whether an option flag bit is set. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>var</em>&nbsp;</td><td>A variable storing an options flag. </td></tr>
- <tr><td valign="top"></td><td valign="top"><em>opt</em>&nbsp;</td><td>The bit-flag constant to test. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">var</td><td>A variable storing an options flag. </td></tr>
+ <tr><td class="paramname">opt</td><td>The bit-flag constant to test. </td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>True if the bit is set. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>True if the bit is set. </dd></dl>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00502">502</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
</div>
</div>
-<a class="anchor" id="a7dc82df90f45b0d746b67d8fdc529c83"></a><!-- doxytag: member="XMP_Const.h::XMP_PropHasLang" ref="a7dc82df90f45b0d746b67d8fdc529c83" args="(opt)" -->
+<a class="anchor" id="adc4bc1a5da8c0a3d1a77366e4803680f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define XMP_PropHasLang</td>
<td>(</td>
- <td class="paramtype">opt&nbsp;</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td>&nbsp;&nbsp;&nbsp;(((opt) &amp; kXMP_PropHasLang) != 0)</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">opt</td><td>)</td>
+ <td>&#160;&#160;&#160;(((opt) &amp; <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a3fa5ed87edc731bfb3817f58ba70a217">kXMP_PropHasLang</a>) != 0)</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>Macro reports the property type specified by an options flag. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>opt</em>&nbsp;</td><td>The options flag to check. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">opt</td><td>The options flag to check. </td></tr>
</table>
</dd>
</dl>
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00569">569</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
</div>
</div>
-<a class="anchor" id="a10828aa191aa666aa1166c27beead2a6"></a><!-- doxytag: member="XMP_Const.h::XMP_PropHasQualifiers" ref="a10828aa191aa666aa1166c27beead2a6" args="(opt)" -->
+<a class="anchor" id="a10828aa191aa666aa1166c27beead2a6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define XMP_PropHasQualifiers</td>
<td>(</td>
- <td class="paramtype">opt&nbsp;</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td>&nbsp;&nbsp;&nbsp;(((opt) &amp; kXMP_PropHasQualifiers) != 0)</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">opt</td><td>)</td>
+ <td>&#160;&#160;&#160;(((opt) &amp; <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a8e34a33a2eed56499d4f6f62da25d159">kXMP_PropHasQualifiers</a>) != 0)</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>Macro reports the property type specified by an options flag. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>opt</em>&nbsp;</td><td>The options flag to check. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">opt</td><td>The options flag to check. </td></tr>
</table>
</dd>
</dl>
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00567">567</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
</div>
</div>
-<a class="anchor" id="a193b1414fa5312da2aa1d833b85612d0"></a><!-- doxytag: member="XMP_Const.h::XMP_PropIsAlias" ref="a193b1414fa5312da2aa1d833b85612d0" args="(opt)" -->
+<a class="anchor" id="a69a18fc954796cdbaa8771de5a476fab"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define XMP_PropIsAlias</td>
<td>(</td>
- <td class="paramtype">opt&nbsp;</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td>&nbsp;&nbsp;&nbsp;(((opt) &amp; kXMP_PropIsAlias) != 0)</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">opt</td><td>)</td>
+ <td>&#160;&#160;&#160;(((opt) &amp; <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5ab975c19fb5c50f732a1a0d84dadb7c37">kXMP_PropIsAlias</a>) != 0)</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>Macro reports the property type specified by an options flag. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>opt</em>&nbsp;</td><td>The options flag to check. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">opt</td><td>The options flag to check. </td></tr>
</table>
</dd>
</dl>
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00572">572</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
</div>
</div>
-<a class="anchor" id="a98ae521b621cfa3611211e3922a0fce8"></a><!-- doxytag: member="XMP_Const.h::XMP_PropIsArray" ref="a98ae521b621cfa3611211e3922a0fce8" args="(opt)" -->
+<a class="anchor" id="ab8cf5a7c0f5a8dfc052117638fb55324"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define XMP_PropIsArray</td>
<td>(</td>
- <td class="paramtype">opt&nbsp;</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td>&nbsp;&nbsp;&nbsp;(((opt) &amp; kXMP_PropValueIsArray) != 0)</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">opt</td><td>)</td>
+ <td>&#160;&#160;&#160;(((opt) &amp; <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a9b7706e0f0716ac7546bdc24ffedd0bc">kXMP_PropValueIsArray</a>) != 0)</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>Macro reports the property type specified by an options flag. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>opt</em>&nbsp;</td><td>The options flag to check. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">opt</td><td>The options flag to check. </td></tr>
</table>
</dd>
</dl>
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00560">560</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
</div>
</div>
-<a class="anchor" id="a8d1b4da6b3cb3a67bf4f8e79352eeeaa"></a><!-- doxytag: member="XMP_Const.h::XMP_PropIsQualifier" ref="a8d1b4da6b3cb3a67bf4f8e79352eeeaa" args="(opt)" -->
+<a class="anchor" id="a9a555a9eb2fabe97dd57e8d2e1b077f5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define XMP_PropIsQualifier</td>
<td>(</td>
- <td class="paramtype">opt&nbsp;</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td>&nbsp;&nbsp;&nbsp;(((opt) &amp; kXMP_PropIsQualifier) != 0)</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">opt</td><td>)</td>
+ <td>&#160;&#160;&#160;(((opt) &amp; <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a30146ed5209f5c3eb4eeb1fd8e4fb9fe">kXMP_PropIsQualifier</a>) != 0)</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>Macro reports the property type specified by an options flag. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>opt</em>&nbsp;</td><td>The options flag to check. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">opt</td><td>The options flag to check. </td></tr>
</table>
</dd>
</dl>
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00568">568</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
</div>
</div>
-<a class="anchor" id="a510b75338bd488ddd8d9bd4e326806f9"></a><!-- doxytag: member="XMP_Const.h::XMP_PropIsSimple" ref="a510b75338bd488ddd8d9bd4e326806f9" args="(opt)" -->
+<a class="anchor" id="a43aeebde901bea1932203107c690a2dc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define XMP_PropIsSimple</td>
<td>(</td>
- <td class="paramtype">opt&nbsp;</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td>&nbsp;&nbsp;&nbsp;(((opt) &amp; kXMP_PropCompositeMask) == 0)</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">opt</td><td>)</td>
+ <td>&#160;&#160;&#160;(((opt) &amp; <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a60a9f26fb66c2e65cf40d9bc44968956">kXMP_PropCompositeMask</a>) == 0)</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>Macro reports the property type specified by an options flag. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>opt</em>&nbsp;</td><td>The options flag to check. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">opt</td><td>The options flag to check. </td></tr>
</table>
</dd>
</dl>
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00558">558</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
</div>
</div>
-<a class="anchor" id="aebea8c35e09da7db613e27d0e3ce945f"></a><!-- doxytag: member="XMP_Const.h::XMP_PropIsStruct" ref="aebea8c35e09da7db613e27d0e3ce945f" args="(opt)" -->
+<a class="anchor" id="a9ecd2dede6b25ecec9a430c151d74d83"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define XMP_PropIsStruct</td>
<td>(</td>
- <td class="paramtype">opt&nbsp;</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td>&nbsp;&nbsp;&nbsp;(((opt) &amp; kXMP_PropValueIsStruct) != 0)</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">opt</td><td>)</td>
+ <td>&#160;&#160;&#160;(((opt) &amp; <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e">kXMP_PropValueIsStruct</a>) != 0)</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>Macro reports the property type specified by an options flag. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>opt</em>&nbsp;</td><td>The options flag to check. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">opt</td><td>The options flag to check. </td></tr>
</table>
</dd>
</dl>
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00559">559</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
</div>
</div>
-<a class="anchor" id="a69c4d1b80c4dd581366e0c60209ef612"></a><!-- doxytag: member="XMP_Const.h::XMP_SetOption" ref="a69c4d1b80c4dd581366e0c60209ef612" args="(var, opt)" -->
+<a class="anchor" id="a10a766c47b5ea01f285501b49d20bc62"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define XMP_SetOption</td>
<td>(</td>
- <td class="paramtype">var, </td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">var, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">opt&nbsp;</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td>&nbsp;&nbsp;&nbsp;var |= (opt)</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">opt&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;var |= (opt)</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>Macro sets an option flag bit. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>var</em>&nbsp;</td><td>A variable storing an options flag. </td></tr>
- <tr><td valign="top"></td><td valign="top"><em>opt</em>&nbsp;</td><td>The bit-flag constant to set. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">var</td><td>A variable storing an options flag. </td></tr>
+ <tr><td class="paramname">opt</td><td>The bit-flag constant to set. </td></tr>
</table>
</dd>
</dl>
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00499">499</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
</div>
</div>
-<a class="anchor" id="aa31596e850cb6b208f5920833d67b9f1"></a><!-- doxytag: member="XMP_Const.h::XMP_TestOption" ref="aa31596e850cb6b208f5920833d67b9f1" args="(var, opt)" -->
+<a class="anchor" id="aee6dc47c8013d4514ed363ae16ba2ad3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define XMP_TestOption</td>
<td>(</td>
- <td class="paramtype">var, </td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">var, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">opt&nbsp;</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td>&nbsp;&nbsp;&nbsp;(((var) &amp; (opt)) != 0)</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">opt&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;(((var) &amp; (opt)) != 0)</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>Macro reports whether an option flag bit is set. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>var</em>&nbsp;</td><td>A variable storing an options flag. </td></tr>
- <tr><td valign="top"></td><td valign="top"><em>opt</em>&nbsp;</td><td>The bit-flag constant to test. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">var</td><td>A variable storing an options flag. </td></tr>
+ <tr><td class="paramname">opt</td><td>The bit-flag constant to test. </td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>True if the bit is set. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>True if the bit is set. </dd></dl>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00501">501</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
</div>
</div>
-<hr/><h2>Typedef Documentation</h2>
-<a class="anchor" id="aa2738ce2fca7f1809b12834b1b5e2d0e"></a><!-- doxytag: member="XMP_Const.h::XMP_AbortProc" ref="aa2738ce2fca7f1809b12834b1b5e2d0e" args=")(void *arg)" -->
+<a class="anchor" id="a8d6dc898fe00aeaf567d7af3ec23316a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef bool(* <a class="el" href="XMP__Const_8h.html#aa2738ce2fca7f1809b12834b1b5e2d0e">XMP_AbortProc</a>)(void *arg)</td>
+ <td class="memname">#define XMPDateTime_ClearTimeZone</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">dt</td><td>)</td>
+ <td>&#160;&#160;&#160;{ (dt).hasTimeZone = (dt).tzSign = (dt).tzHour = (dt).tzMinute = 0; }</td>
</tr>
</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00285">285</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae12feaba743c6b1ab1a24ae13fecbffb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define XMPDateTime_IsDateOnly</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">dt</td><td>)</td>
+ <td>&#160;&#160;&#160;((dt).hasDate &amp; (! (dt).hasTime))</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00282">282</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a10149d273250015e91931cd93b649a2e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define XMPDateTime_IsTimeOnly</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">dt</td><td>)</td>
+ <td>&#160;&#160;&#160;((dt).hasTime &amp; (! (dt).hasDate))</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00283">283</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
</div>
-<div class="memdoc">
-<p>The signature of a client-defined callback to check for a user request to abort a time-consuming operation within XMPFiles.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>arg</em>&nbsp;</td><td>A pointer to caller-defined data passed from the registration call.</td></tr>
+</div>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="ac2434559f67332b9d23021b894da838c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef bool(* XMP_AbortProc) (void *arg)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The signature of a client-defined callback to check for a user request to abort a time-consuming operation within XMPFiles. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">arg</td><td>A pointer to caller-defined data passed from the registration call.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>True to abort the current operation, which results in an exception being thrown.</dd></dl>
-<dl class="see"><dt><b>See also:</b></dt><dd><code><a class="el" href="classTXMPFiles.html#a7b86c130fdbd54b5ac158ec3fee93777" title="SetAbortProc() registers a callback function used to check for a user-signaled abort...">TXMPFiles::SetAbortProc()</a></code> </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>True to abort the current operation, which results in an exception being thrown.</dd></dl>
+<dl class="section see"><dt>See also</dt><dd><code><a class="el" href="classTXMPFiles.html#a7b86c130fdbd54b5ac158ec3fee93777" title="SetAbortProc() registers a callback function used to check for a user-signaled abort. ">TXMPFiles::SetAbortProc()</a></code> </dd></dl>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01507">1507</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0cf68b6f47d136ed571a441a9e0d2248"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef XMP_Uns8 <a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00102">102</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae4a7c9347994883250dc440566eb9f52"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef XMP_Uns8 <a class="el" href="XMP__Const_8h.html#ae4a7c9347994883250dc440566eb9f52">XMP_ErrorSeverity</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01226">1226</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a300d9a9189cb4ddb6970d05389f5c28e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef XMP_Uns32 <a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Type for file format identification constants. See <code><a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da17ab6d429c1550eb3cc16d2e544b78eb" title="Public file format constant: &#39;PDF &#39;. ">kXMP_PDFFile</a></code> and following. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00991">991</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
</div>
</div>
-<a class="anchor" id="af18be2d0c8accad813e0d8962da24b4e"></a><!-- doxytag: member="XMP_Const.h::XMP_ProgressReportProc" ref="af18be2d0c8accad813e0d8962da24b4e" args=")(void *context, float elapsedTime, float fractionDone, float secondsToGo)" -->
+<a class="anchor" id="a00e9d9a76c144421105a4c2742203315"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef bool(* <a class="el" href="XMP__Const_8h.html#af18be2d0c8accad813e0d8962da24b4e">XMP_ProgressReportProc</a>)(void *context, float elapsedTime, float fractionDone, float secondsToGo)</td>
+ <td class="memname"><a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a></td>
</tr>
</table>
+</div><div class="memdoc">
+
+<p>The type for offsets and indices. A 32-bit signed integer. It is signed to allow -1 for loop termination. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00171">171</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aeb865118433be92d88e5f49ed11487c8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The type for a collection of 32 flag bits. </p>
+<p>Individual flags are defined as enum value bit masks; see <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aab51f87b5c48f47f5cefb9e03293dafb" title="The XML string form of the property value is a URI, use rdf:resource attribute. DISCOURAGED. ">kXMP_PropValueIsURI</a></code> and following. A number of macros provide common set or set operations, such as <code>XMP_PropIsSimple</code>. For other tests use an expression like <code>options &amp; kXMP_&lt;theOption&gt;</code>. When passing multiple option flags use the bitwise-OR operator. '|', not the arithmatic plus, '+'. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00172">172</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
</div>
-<div class="memdoc">
-<p>The signature of a client-defined callback for progress report notifications.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A pointer used to carry client-private context.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>elapsedTime</em>&nbsp;</td><td>The time in seconds since the progress reporting started.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>fractionDone</em>&nbsp;</td><td>A float value estimating the amount of work already done, in the range of 0.0 to 1.0. A value of 0.0 is given if the amount is not known, this happens if there is no estimate total for the total work. The units of work are not defined, but should usually be related to the number of bytes of I/O. This will go backwards if total work estimate changes.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>secondsToGo</em>&nbsp;</td><td>A float value estimating the number of seconds left to complete the file operation. A value of 0.0 is given if the amount is not known, this happens if the amount of total work is unknown. This can go backwards according to throughput or if work estimate changes.</td></tr>
+<a class="anchor" id="a01973e700ac2ba7f3debef340ccaa663"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef bool(* XMP_ProgressReportProc) (void *context, float elapsedTime, float fractionDone, float secondsToGo)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The signature of a client-defined callback for progress report notifications. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">context</td><td>A pointer used to carry client-private context.</td></tr>
+ <tr><td class="paramname">elapsedTime</td><td>The time in seconds since the progress reporting started.</td></tr>
+ <tr><td class="paramname">fractionDone</td><td>A float value estimating the amount of work already done, in the range of 0.0 to 1.0. A value of 0.0 is given if the amount is not known, this happens if there is no estimate total for the total work. The units of work are not defined, but should usually be related to the number of bytes of I/O. This will go backwards if total work estimate changes.</td></tr>
+ <tr><td class="paramname">secondsToGo</td><td>A float value estimating the number of seconds left to complete the file operation. A value of 0.0 is given if the amount is not known, this happens if the amount of total work is unknown. This can go backwards according to throughput or if work estimate changes.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>True if the file operation should continue, false if it should be aborted with an exception being thrown from the XMPFiles library back to the original caller.</dd></dl>
-<dl class="see"><dt><b>See also:</b></dt><dd><code><a class="el" href="classTXMPFiles.html#a83335ee20bb3ea543c8c86a5757a7753" title="SetDefaultProgressCallback() sets a global default for progress tracking. This is...">TXMPFiles::SetDefaultProgressCallback()</a></code> and <code><a class="el" href="classTXMPFiles.html#aa283e2a1c16918c86148446859ed1a2d" title="SetProgressCallback() sets the progress notification callback for the associated...">TXMPFiles::SetProgressCallback()</a></code> </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>True if the file operation should continue, false if it should be aborted with an exception being thrown from the XMPFiles library back to the original caller.</dd></dl>
+<dl class="section see"><dt>See also</dt><dd><code><a class="el" href="classTXMPFiles.html#a83335ee20bb3ea543c8c86a5757a7753" title="SetDefaultProgressCallback() sets a global default for progress tracking. This is used as a default f...">TXMPFiles::SetDefaultProgressCallback()</a></code> and <code><a class="el" href="classTXMPFiles.html#aa283e2a1c16918c86148446859ed1a2d" title="SetProgressCallback() sets the progress notification callback for the associated XMPFiles (library) o...">TXMPFiles::SetProgressCallback()</a></code> </dd></dl>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01530">1530</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
</div>
</div>
-<a class="anchor" id="a05b81829c04746826f4f85fbac76e3dd"></a><!-- doxytag: member="XMP_Const.h::XMP_Status" ref="a05b81829c04746826f4f85fbac76e3dd" args="" -->
+<a class="anchor" id="a61eb4db5a58902c130d3b3929db624db"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef XMP_Int32 <a class="el" href="XMP__Const_8h.html#a05b81829c04746826f4f85fbac76e3dd">XMP_Status</a></td>
+ <td class="memname">typedef <a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a>(* XMP_ProgressReportWrapper) (<a class="el" href="XMP__Const_8h.html#a01973e700ac2ba7f3debef340ccaa663">XMP_ProgressReportProc</a> proc, void *context, float elapsedTime, float fractionDone, float secondsToGo)</td>
</tr>
</table>
+</div><div class="memdoc">
+
+<p>Internal: The signature of a client-side wrapper for the progress report callback. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01535">1535</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
</div>
-<div class="memdoc">
+</div>
+<a class="anchor" id="a05b81829c04746826f4f85fbac76e3dd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef XMP_Int32 <a class="el" href="XMP__Const_8h.html#a05b81829c04746826f4f85fbac76e3dd">XMP_Status</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
<p>A signed 32-bit integer used as a status result for the output callback routine, <code>XMP_TextOutputProc</code>. Zero means no error, all other values except -1 are private to the callback. The callback is wrapped to prevent exceptions being thrown across DLL boundaries. Any exceptions thrown out of the callback cause a return status of -1. </p>
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01474">1474</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
</div>
</div>
-<a class="anchor" id="a8ce3570e6e5ac14cd603e96fa9d2936f"></a><!-- doxytag: member="XMP_Const.h::XMP_TextOutputProc" ref="a8ce3570e6e5ac14cd603e96fa9d2936f" args=")(void *refCon, XMP_StringPtr buffer, XMP_StringLen bufferSize)" -->
+<a class="anchor" id="a9f7dcc184f901c713274edfdac5bcc9a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef <a class="el" href="XMP__Const_8h.html#a05b81829c04746826f4f85fbac76e3dd">XMP_Status</a>(* <a class="el" href="XMP__Const_8h.html#a8ce3570e6e5ac14cd603e96fa9d2936f">XMP_TextOutputProc</a>)(void *refCon, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> buffer, <a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> bufferSize)</td>
+ <td class="memname"><a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a></td>
</tr>
</table>
+</div><div class="memdoc">
+
+<p>The type for string length parameters. A 32-bit unsigned integer, as big as will be practically needed. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00170">170</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad439e3ceeb4590d310f6125aa12c6df6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The type for input string parameters. A <code>const char *</code>, a null-terminated UTF-8 string. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00169">169</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
</div>
-<div class="memdoc">
-<p>The signature of a client-defined callback for text output from XMP Toolkit debugging operations. The callback is invoked one or more times for each line of output. The end of a line is signaled by a '\n' character at the end of the buffer. Formatting newlines are never present in the middle of a buffer, but values of properties might contain any UTF-8 characters.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>refCon</em>&nbsp;</td><td>A pointer to client-defined data passed to the TextOutputProc.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>buffer</em>&nbsp;</td><td>A string containing one line of output.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>bufferSize</em>&nbsp;</td><td>The number of characters in the output buffer.</td></tr>
+<a class="anchor" id="aa55bae1e6be4ddcefbaf214942e5b272"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="XMP__Const_8h.html#a05b81829c04746826f4f85fbac76e3dd">XMP_Status</a>(* XMP_TextOutputProc) (void *refCon, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> buffer, <a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> bufferSize)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The signature of a client-defined callback for text output from XMP Toolkit debugging operations. </p>
+<p>The callback is invoked one or more times for each line of output. The end of a line is signaled by a '\n' character at the end of the buffer. Formatting newlines are never present in the middle of a buffer, but values of properties might contain any UTF-8 characters.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">refCon</td><td>A pointer to client-defined data passed to the TextOutputProc.</td></tr>
+ <tr><td class="paramname">buffer</td><td>A string containing one line of output.</td></tr>
+ <tr><td class="paramname">bufferSize</td><td>The number of characters in the output buffer.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>A success/fail status value. Any failure result aborts the output.</dd></dl>
-<dl class="see"><dt><b>See also:</b></dt><dd><code><a class="el" href="classTXMPMeta.html#a466fa349c9765f39ca6b1450908e769f" title="DumpObject() outputs the content of an XMP object to a callback handler for debugging...">TXMPMeta::DumpObject()</a></code> </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>A success/fail status value. Any failure result aborts the output.</dd></dl>
+<dl class="section see"><dt>See also</dt><dd><code><a class="el" href="classTXMPMeta.html#a466fa349c9765f39ca6b1450908e769f" title="DumpObject() outputs the content of an XMP object to a callback handler for debugging. ">TXMPMeta::DumpObject()</a></code> </dd></dl>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01493">1493</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
</div>
</div>
-<a class="anchor" id="ab516453dd7d906e911f8951983cde5f1"></a><!-- doxytag: member="XMP_Const.h::XMPDocOpsRef" ref="ab516453dd7d906e911f8951983cde5f1" args="" -->
+<a class="anchor" id="a377e4a668de99ce6ed176cef5aaf3fcd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef struct __XMPDocOps__* <a class="el" href="XMP__Const_8h.html#ab516453dd7d906e911f8951983cde5f1">XMPDocOpsRef</a></td>
+ <td class="memname">typedef XMP_Int8 <a class="el" href="XMP__Const_8h.html#a377e4a668de99ce6ed176cef5aaf3fcd">XMP_TriState</a></td>
</tr>
</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00197">197</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
</div>
-<div class="memdoc">
-<p>An "ABI safe" pointer to the internal part of an XMP document operations object. Use to pass an XMP document operations object across client DLL boundaries. See <code>TXMPDocOps</code>. </p>
+</div>
+<a class="anchor" id="a57250ff934e642191654ae49c3a2c6c9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef struct <a class="el" href="structXMP__VersionInfo.html">XMP_VersionInfo</a> <a class="el" href="structXMP__VersionInfo.html">XMP_VersionInfo</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>XMP Toolkit version information. </p>
</div>
</div>
-<a class="anchor" id="aaceb0287e961c16649487db026bcfc61"></a><!-- doxytag: member="XMP_Const.h::XMPFiles_ErrorCallbackProc" ref="aaceb0287e961c16649487db026bcfc61" args=")(void *context, XMP_StringPtr filePath, XMP_ErrorSeverity severity, XMP_Int32 cause, XMP_StringPtr message)" -->
+<a class="anchor" id="ab516453dd7d906e911f8951983cde5f1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef bool(* <a class="el" href="XMP__Const_8h.html#aaceb0287e961c16649487db026bcfc61">XMPFiles_ErrorCallbackProc</a>)(void *context, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> filePath, XMP_ErrorSeverity severity, XMP_Int32 cause, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> message)</td>
+ <td class="memname">typedef struct __XMPDocOps__* <a class="el" href="XMP__Const_8h.html#ab516453dd7d906e911f8951983cde5f1">XMPDocOpsRef</a></td>
</tr>
</table>
+</div><div class="memdoc">
+
+<p>An "ABI safe" pointer to the internal part of an XMP document operations object. Use to pass an XMP document operations object across client DLL boundaries. See <code>TXMPDocOps</code>. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00138">138</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
</div>
-<div class="memdoc">
-<p>The signature of a client-defined callback for <a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file.">TXMPFiles</a> error notifications.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A pointer used to carry client-private context.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>filePath</em>&nbsp;</td><td>The path for the file involved in the error.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>severity</em>&nbsp;</td><td>The severity of the error, see the <code>XMP_ErrorSeverity</code> values.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>cause</em>&nbsp;</td><td>A numeric code for the cause of the error, from the <a class="el" href="classXMP__Error.html" title="XMP Toolkit error, associates an error code with a descriptive error string.">XMP_Error</a> exception codes. Codes used with <a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file.">TXMPFiles</a> error notifications: </p>
-<ul>
+</div>
+<a class="anchor" id="a7bed3dd93335821e5afa0ac2b07a9640"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef bool(* XMPFiles_ErrorCallbackProc) (void *context, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> filePath, <a class="el" href="XMP__Const_8h.html#ae4a7c9347994883250dc440566eb9f52">XMP_ErrorSeverity</a> severity, XMP_Int32 cause, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> message)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The signature of a client-defined callback for <a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file. ">TXMPFiles</a> error notifications. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">context</td><td>A pointer used to carry client-private context.</td></tr>
+ <tr><td class="paramname">filePath</td><td>The path for the file involved in the error.</td></tr>
+ <tr><td class="paramname">severity</td><td>The severity of the error, see the <code>XMP_ErrorSeverity</code> values.</td></tr>
+ <tr><td class="paramname">cause</td><td>A numeric code for the cause of the error, from the <a class="el" href="classXMP__Error.html" title="XMP Toolkit error, associates an error code with a descriptive error string. ">XMP_Error</a> exception codes. Codes used with <a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file. ">TXMPFiles</a> error notifications: <ul>
<li><code>kXMPErr_NoFile</code> - A file does not exist </li>
<li><code>kXMPErr_FilePermission</code> - A file exists but cannot be opened </li>
<li><code>kXMPErr_FilePathNotAFile</code> - A path exists which is not a file </li>
@@ -1592,30 +2833,48 @@ typedef XMP_Bool(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>XMPFile
<li><code>kXMPErr_NoMemory</code> - A heap allocation failure</li>
</ul>
</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>message</em>&nbsp;</td><td>An explanation of the error, for debugging use only. This should not be displayed to users in a final product.</td></tr>
+ <tr><td class="paramname">message</td><td>An explanation of the error, for debugging use only. This should not be displayed to users in a final product.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>True if the operation should continue with a best effort attempt at recovery, false if it should be aborted with an exception thrown from the library back to the original caller. Recovery is possible only if the severity is kXMPErrSev_Recoverable, an exception will be thrown on return from the callback in all other cases.</dd></dl>
-<dl class="see"><dt><b>See also:</b></dt><dd><code><a class="el" href="classTXMPFiles.html#accc6c1cef9f124f6c5ed360251aa5aa7" title="SetDefaultErrorCallback() registers a global default error notification callback...">TXMPFiles::SetDefaultErrorCallback()</a></code> and <code><a class="el" href="classTXMPFiles.html#a43a98633a0090fb4ade76edf24302ab1" title="SetErrorCallback() registers an error notification callback.">TXMPFiles::SetErrorCallback()</a></code> </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>True if the operation should continue with a best effort attempt at recovery, false if it should be aborted with an exception thrown from the library back to the original caller. Recovery is possible only if the severity is kXMPErrSev_Recoverable, an exception will be thrown on return from the callback in all other cases.</dd></dl>
+<dl class="section see"><dt>See also</dt><dd><code><a class="el" href="classTXMPFiles.html#accc6c1cef9f124f6c5ed360251aa5aa7" title="SetDefaultErrorCallback() registers a global default error notification callback. ...">TXMPFiles::SetDefaultErrorCallback()</a></code> and <code><a class="el" href="classTXMPFiles.html#a43a98633a0090fb4ade76edf24302ab1" title="SetErrorCallback() registers an error notification callback. ">TXMPFiles::SetErrorCallback()</a></code> </dd></dl>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01301">1301</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
</div>
</div>
-<a class="anchor" id="aa4bca98ad67d7a62c60cb13dbbab0f25"></a><!-- doxytag: member="XMP_Const.h::XMPFilesRef" ref="aa4bca98ad67d7a62c60cb13dbbab0f25" args="" -->
+<a class="anchor" id="a24670f4db8bda6e113612fa0c81ffe6b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef struct __XMPFiles__* <a class="el" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a></td>
+ <td class="memname">typedef <a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a>(* XMPFiles_ErrorCallbackWrapper) (<a class="el" href="XMP__Const_8h.html#a7bed3dd93335821e5afa0ac2b07a9640">XMPFiles_ErrorCallbackProc</a> clientProc, void *context, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> filePath, <a class="el" href="XMP__Const_8h.html#ae4a7c9347994883250dc440566eb9f52">XMP_ErrorSeverity</a> severity, XMP_Int32 cause, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> message)</td>
</tr>
</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01309">1309</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
</div>
-<div class="memdoc">
-<p>An "ABI safe" pointer to the internal part of an XMP file-handling object. Use to pass an XMP file-handling object across client DLL boundaries. See <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file.">TXMPFiles</a></code>. </p>
+<a class="anchor" id="aa4bca98ad67d7a62c60cb13dbbab0f25"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef struct __XMPFiles__* <a class="el" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>An "ABI safe" pointer to the internal part of an XMP file-handling object. Use to pass an XMP file-handling object across client DLL boundaries. See <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file. ">TXMPFiles</a></code>. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00142">142</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
</div>
</div>
-<a class="anchor" id="a6ade57a30fb1e40d6aa9695c440fc3d2"></a><!-- doxytag: member="XMP_Const.h::XMPIteratorRef" ref="a6ade57a30fb1e40d6aa9695c440fc3d2" args="" -->
+<a class="anchor" id="a6ade57a30fb1e40d6aa9695c440fc3d2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -1623,29 +2882,30 @@ typedef XMP_Bool(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>XMPFile
<td class="memname">typedef struct __XMPIterator__* <a class="el" href="XMP__Const_8h.html#a6ade57a30fb1e40d6aa9695c440fc3d2">XMPIteratorRef</a></td>
</tr>
</table>
-</div>
-<div class="memdoc">
-<p>An "ABI safe" pointer to the internal part of an XMP iteration object. Use to pass an XMP iteration object across client DLL boundaries. See <code><a class="el" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services.">TXMPIterator</a></code>. </p>
+</div><div class="memdoc">
+
+<p>An "ABI safe" pointer to the internal part of an XMP iteration object. Use to pass an XMP iteration object across client DLL boundaries. See <code><a class="el" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services. ">TXMPIterator</a></code>. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00134">134</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
</div>
</div>
-<a class="anchor" id="a6027ee7b7d17a0fec636f812c5346af7"></a><!-- doxytag: member="XMP_Const.h::XMPMeta_ErrorCallbackProc" ref="a6027ee7b7d17a0fec636f812c5346af7" args=")(void *context, XMP_ErrorSeverity severity, XMP_Int32 cause, XMP_StringPtr message)" -->
+<a class="anchor" id="abb3c238ce96e9198ebe4260200bfb67b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef bool(* <a class="el" href="XMP__Const_8h.html#a6027ee7b7d17a0fec636f812c5346af7">XMPMeta_ErrorCallbackProc</a>)(void *context, XMP_ErrorSeverity severity, XMP_Int32 cause, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> message)</td>
+ <td class="memname">typedef bool(* XMPMeta_ErrorCallbackProc) (void *context, <a class="el" href="XMP__Const_8h.html#ae4a7c9347994883250dc440566eb9f52">XMP_ErrorSeverity</a> severity, XMP_Int32 cause, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> message)</td>
</tr>
</table>
-</div>
-<div class="memdoc">
-<p>The signature of a client-defined callback for <a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta</a> error notifications.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A pointer used to carry client-private context.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>severity</em>&nbsp;</td><td>The severity of the error, see the <code>XMP_ErrorSeverity</code> values.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>cause</em>&nbsp;</td><td>A numeric code for the cause of the error, from the <a class="el" href="classXMP__Error.html" title="XMP Toolkit error, associates an error code with a descriptive error string.">XMP_Error</a> exception codes. Codes used with <a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta</a> error notifications: </p>
-<ul>
+</div><div class="memdoc">
+
+<p>The signature of a client-defined callback for <a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services. ">TXMPMeta</a> error notifications. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">context</td><td>A pointer used to carry client-private context.</td></tr>
+ <tr><td class="paramname">severity</td><td>The severity of the error, see the <code>XMP_ErrorSeverity</code> values.</td></tr>
+ <tr><td class="paramname">cause</td><td>A numeric code for the cause of the error, from the <a class="el" href="classXMP__Error.html" title="XMP Toolkit error, associates an error code with a descriptive error string. ">XMP_Error</a> exception codes. Codes used with <a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services. ">TXMPMeta</a> error notifications: <ul>
<li><code>kXMPErr_BadXML</code> - An XML syntax error found during parsing. </li>
<li><code>kXMPErr_BadRDF</code> - A syntax or semantic parsing error in the XMP subset of RDF. </li>
<li><code>kXMPErr_BadXMP</code> - A semantic XMP data model error. </li>
@@ -1653,31 +2913,51 @@ typedef XMP_Bool(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>XMPFile
<li><code>kXMPErr_NoMemory</code> - A heap allocation failure.</li>
</ul>
</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>message</em>&nbsp;</td><td>An explanation of the error, for debugging use only. This should not be displayed to users in a final product.</td></tr>
+ <tr><td class="paramname">message</td><td>An explanation of the error, for debugging use only. This should not be displayed to users in a final product.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>True if the operation should continue with a best effort attempt at recovery, false if it should be aborted with an exception thrown from the library back to the original caller. Recovery is possible only if the severity is kXMPErrSev_Recoverable, an exception will be thrown on return from the callback in all other cases.</dd></dl>
-<dl class="see"><dt><b>See also:</b></dt><dd><code><a class="el" href="classTXMPMeta.html#a1e90e0c8cd8c5670267bb693cf3660fe" title="SetDefaultErrorCallback() registers a global default error notification callback...">TXMPMeta::SetDefaultErrorCallback()</a></code> and <code><a class="el" href="classTXMPMeta.html#aee41442af4f049c1d6698fc27ce854d0" title="SetErrorCallback() registers an error notification callback.">TXMPMeta::SetErrorCallback()</a></code> </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>True if the operation should continue with a best effort attempt at recovery, false if it should be aborted with an exception thrown from the library back to the original caller. Recovery is possible only if the severity is kXMPErrSev_Recoverable, an exception will be thrown on return from the callback in all other cases.</dd></dl>
+<dl class="section see"><dt>See also</dt><dd><code><a class="el" href="classTXMPMeta.html#a1e90e0c8cd8c5670267bb693cf3660fe" title="SetDefaultErrorCallback() registers a global default error notification callback. ...">TXMPMeta::SetDefaultErrorCallback()</a></code> and <code><a class="el" href="classTXMPMeta.html#aee41442af4f049c1d6698fc27ce854d0" title="SetErrorCallback() registers an error notification callback. ">TXMPMeta::SetErrorCallback()</a></code> </dd></dl>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01265">1265</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
</div>
</div>
-<a class="anchor" id="a549d5e2cbcb58302d3df840a0205283e"></a><!-- doxytag: member="XMP_Const.h::XMPMetaRef" ref="a549d5e2cbcb58302d3df840a0205283e" args="" -->
+<a class="anchor" id="a32cbbc2b93eb9028d441ecb4223eb2a4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef struct __XMPMeta__* <a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a></td>
+ <td class="memname">typedef <a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a>(* XMPMeta_ErrorCallbackWrapper) (<a class="el" href="XMP__Const_8h.html#abb3c238ce96e9198ebe4260200bfb67b">XMPMeta_ErrorCallbackProc</a> clientProc, void *context, <a class="el" href="XMP__Const_8h.html#ae4a7c9347994883250dc440566eb9f52">XMP_ErrorSeverity</a> severity, XMP_Int32 cause, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> message)</td>
</tr>
</table>
+</div><div class="memdoc">
+
+<p>Internal: The signatures of client-side wrappers for the error notification callbacks. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01306">1306</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
</div>
-<div class="memdoc">
-<p>An "ABI safe" pointer to the internal part of an XMP object. Use to pass an XMP object across client DLL boundaries. See <code><a class="el" href="classTXMPMeta.html#afbfebded0b85b08bd9c5ba0d7dae07e0" title="Retrieves an internal reference that can be safely passed across DLL boundaries and...">TXMPMeta::GetInternalRef()</a></code>. </p>
+<a class="anchor" id="a549d5e2cbcb58302d3df840a0205283e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef struct __XMPMeta__* <a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>An "ABI safe" pointer to the internal part of an XMP object. Use to pass an XMP object across client DLL boundaries. See <code><a class="el" href="classTXMPMeta.html#afbfebded0b85b08bd9c5ba0d7dae07e0" title="Retrieves an internal reference that can be safely passed across DLL boundaries and reconstructed...">TXMPMeta::GetInternalRef()</a></code>. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00130">130</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
</div>
</div>
-<hr/><h2>Enumeration Type Documentation</h2>
-<a class="anchor" id="a06fc87d81c62e9abb8790b6e5713c55b"></a><!-- doxytag: member="XMP_Const.h::@0" ref="a06fc87d81c62e9abb8790b6e5713c55b" args="" -->
+<h2 class="groupheader">Enumeration Type Documentation</h2>
+<a class="anchor" id="a06fc87d81c62e9abb8790b6e5713c55b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -1685,26 +2965,29 @@ typedef XMP_Bool(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>XMPFile
<td class="memname">anonymous enum</td>
</tr>
</table>
-</div>
-<div class="memdoc">
-<p>Type for yes/no/maybe answers. The values are picked to allow Boolean-like usage. The yes and values are true (non-zero), the no value is false (zero). </p>
-<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
-<tr><td valign="top"><em><a class="anchor" id="a06fc87d81c62e9abb8790b6e5713c55bacf4bfe01497bd0d88c2af337e4bac39e"></a><!-- doxytag: member="kXMPTS_Yes" ref="a06fc87d81c62e9abb8790b6e5713c55bacf4bfe01497bd0d88c2af337e4bac39e" args="" -->kXMPTS_Yes</em>&nbsp;</td><td>
+</div><div class="memdoc">
+
+<p>Type for yes/no/maybe answers. The values are picked to allow Boolean-like usage. The yes values are true (non-zero), the no value is false (zero). </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a06fc87d81c62e9abb8790b6e5713c55bacf4bfe01497bd0d88c2af337e4bac39e"></a>kXMPTS_Yes&#160;</td><td class="fielddoc">
<p>The part or parts have definitely changed. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a06fc87d81c62e9abb8790b6e5713c55ba2a88f4d4589bf413377283843f70bc90"></a><!-- doxytag: member="kXMPTS_No" ref="a06fc87d81c62e9abb8790b6e5713c55ba2a88f4d4589bf413377283843f70bc90" args="" -->kXMPTS_No</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a06fc87d81c62e9abb8790b6e5713c55ba2a88f4d4589bf413377283843f70bc90"></a>kXMPTS_No&#160;</td><td class="fielddoc">
<p>The part or parts have definitely not changed. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a06fc87d81c62e9abb8790b6e5713c55ba7a73219cd125bb21e294ba474112a584"></a><!-- doxytag: member="kXMPTS_Maybe" ref="a06fc87d81c62e9abb8790b6e5713c55ba7a73219cd125bb21e294ba474112a584" args="" -->kXMPTS_Maybe</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a06fc87d81c62e9abb8790b6e5713c55ba7a73219cd125bb21e294ba474112a584"></a>kXMPTS_Maybe&#160;</td><td class="fielddoc">
<p>The part or parts might, or might not, have changed. </p>
</td></tr>
</table>
-</dd>
-</dl>
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00189">189</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; {</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <a class="code" href="XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55bacf4bfe01497bd0d88c2af337e4bac39e">kXMPTS_Yes</a> = 1,</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <a class="code" href="XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba2a88f4d4589bf413377283843f70bc90">kXMPTS_No</a> = 0,</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <a class="code" href="XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba7a73219cd125bb21e294ba474112a584">kXMPTS_Maybe</a> = -1</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;};</div><div class="ttc" id="XMP__Const_8h_html_a06fc87d81c62e9abb8790b6e5713c55bacf4bfe01497bd0d88c2af337e4bac39e"><div class="ttname"><a href="XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55bacf4bfe01497bd0d88c2af337e4bac39e">kXMPTS_Yes</a></div><div class="ttdoc">The part or parts have definitely changed. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00191">XMP_Const.h:191</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a06fc87d81c62e9abb8790b6e5713c55ba7a73219cd125bb21e294ba474112a584"><div class="ttname"><a href="XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba7a73219cd125bb21e294ba474112a584">kXMPTS_Maybe</a></div><div class="ttdoc">The part or parts might, or might not, have changed. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00195">XMP_Const.h:195</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a06fc87d81c62e9abb8790b6e5713c55ba2a88f4d4589bf413377283843f70bc90"><div class="ttname"><a href="XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba2a88f4d4589bf413377283843f70bc90">kXMPTS_No</a></div><div class="ttdoc">The part or parts have definitely not changed. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00193">XMP_Const.h:193</a></div></div>
+</div><!-- fragment -->
</div>
</div>
-<a class="anchor" id="adf764cbdea00d65edcd07bb9953ad2b7"></a><!-- doxytag: member="XMP_Const.h::@1" ref="adf764cbdea00d65edcd07bb9953ad2b7" args="" -->
+<a class="anchor" id="adf764cbdea00d65edcd07bb9953ad2b7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -1712,27 +2995,29 @@ typedef XMP_Bool(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>XMPFile
<td class="memname">anonymous enum</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>Constant values for <code><a class="el" href="structXMP__DateTime.html#a2b26282b9f1ab9920a8f05008c776ddb">XMP_DateTime::tzSign</a></code> field. </p>
-<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
-<tr><td valign="top"><em><a class="anchor" id="adf764cbdea00d65edcd07bb9953ad2b7a511551ce156d5fd96c26ad464b837801"></a><!-- doxytag: member="kXMP_TimeWestOfUTC" ref="adf764cbdea00d65edcd07bb9953ad2b7a511551ce156d5fd96c26ad464b837801" args="" -->kXMP_TimeWestOfUTC</em>&nbsp;</td><td>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="adf764cbdea00d65edcd07bb9953ad2b7a511551ce156d5fd96c26ad464b837801"></a>kXMP_TimeWestOfUTC&#160;</td><td class="fielddoc">
<p>Time zone is west of UTC. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adf764cbdea00d65edcd07bb9953ad2b7a3f41be55491204982acb39c9f6c7ad13"></a><!-- doxytag: member="kXMP_TimeIsUTC" ref="adf764cbdea00d65edcd07bb9953ad2b7a3f41be55491204982acb39c9f6c7ad13" args="" -->kXMP_TimeIsUTC</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adf764cbdea00d65edcd07bb9953ad2b7a3f41be55491204982acb39c9f6c7ad13"></a>kXMP_TimeIsUTC&#160;</td><td class="fielddoc">
<p>UTC time. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adf764cbdea00d65edcd07bb9953ad2b7a68851b70cc1d2346fa21bc0b0ae6cfec"></a><!-- doxytag: member="kXMP_TimeEastOfUTC" ref="adf764cbdea00d65edcd07bb9953ad2b7a68851b70cc1d2346fa21bc0b0ae6cfec" args="" -->kXMP_TimeEastOfUTC</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adf764cbdea00d65edcd07bb9953ad2b7a68851b70cc1d2346fa21bc0b0ae6cfec"></a>kXMP_TimeEastOfUTC&#160;</td><td class="fielddoc">
<p>Time zone is east of UTC. </p>
</td></tr>
</table>
-</dd>
-</dl>
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00273">273</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; {</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <a class="code" href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a511551ce156d5fd96c26ad464b837801">kXMP_TimeWestOfUTC</a> = -1,</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <a class="code" href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a3f41be55491204982acb39c9f6c7ad13">kXMP_TimeIsUTC</a> = 0,</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <a class="code" href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a68851b70cc1d2346fa21bc0b0ae6cfec">kXMP_TimeEastOfUTC</a> = +1</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;};</div><div class="ttc" id="XMP__Const_8h_html_adf764cbdea00d65edcd07bb9953ad2b7a68851b70cc1d2346fa21bc0b0ae6cfec"><div class="ttname"><a href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a68851b70cc1d2346fa21bc0b0ae6cfec">kXMP_TimeEastOfUTC</a></div><div class="ttdoc">Time zone is east of UTC. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00279">XMP_Const.h:279</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adf764cbdea00d65edcd07bb9953ad2b7a511551ce156d5fd96c26ad464b837801"><div class="ttname"><a href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a511551ce156d5fd96c26ad464b837801">kXMP_TimeWestOfUTC</a></div><div class="ttdoc">Time zone is west of UTC. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00275">XMP_Const.h:275</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adf764cbdea00d65edcd07bb9953ad2b7a3f41be55491204982acb39c9f6c7ad13"><div class="ttname"><a href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a3f41be55491204982acb39c9f6c7ad13">kXMP_TimeIsUTC</a></div><div class="ttdoc">UTC time. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00277">XMP_Const.h:277</a></div></div>
+</div><!-- fragment -->
</div>
</div>
-<a class="anchor" id="a385c44f6fb256e5716a2302a5b940388"></a><!-- doxytag: member="XMP_Const.h::@10" ref="a385c44f6fb256e5716a2302a5b940388" args="" -->
+<a class="anchor" id="a385c44f6fb256e5716a2302a5b940388"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -1740,30 +3025,33 @@ typedef XMP_Bool(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>XMPFile
<td class="memname">anonymous enum</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p>Option bit flags for <code><a class="el" href="classTXMPUtils.html#a40c645803530662e08d042b4b7c6190d" title="RemoveProperties() removes multiple properties from an XMP object.">TXMPUtils::RemoveProperties()</a></code> and <code>TXMPUtils::AppendProperties()</code>. </p>
-<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
-<tr><td valign="top"><em><a class="anchor" id="a385c44f6fb256e5716a2302a5b940388a8ddfb0572b7602a52e533d92d8b1e9fb"></a><!-- doxytag: member="kXMPUtil_DoAllProperties" ref="a385c44f6fb256e5716a2302a5b940388a8ddfb0572b7602a52e533d92d8b1e9fb" args="" -->kXMPUtil_DoAllProperties</em>&nbsp;</td><td>
+<p>Option bit flags for <code><a class="el" href="classTXMPUtils.html#a40c645803530662e08d042b4b7c6190d" title="RemoveProperties() removes multiple properties from an XMP object. ">TXMPUtils::RemoveProperties()</a></code> and <code>TXMPUtils::AppendProperties()</code>. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a385c44f6fb256e5716a2302a5b940388a8ddfb0572b7602a52e533d92d8b1e9fb"></a>kXMPUtil_DoAllProperties&#160;</td><td class="fielddoc">
<p>Do all properties, default is just external properties. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a385c44f6fb256e5716a2302a5b940388adab4dad658d2d218c5b1e7d829b12962"></a><!-- doxytag: member="kXMPUtil_ReplaceOldValues" ref="a385c44f6fb256e5716a2302a5b940388adab4dad658d2d218c5b1e7d829b12962" args="" -->kXMPUtil_ReplaceOldValues</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a385c44f6fb256e5716a2302a5b940388adab4dad658d2d218c5b1e7d829b12962"></a>kXMPUtil_ReplaceOldValues&#160;</td><td class="fielddoc">
<p>Replace existing values, default is to leave them. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a385c44f6fb256e5716a2302a5b940388a97753b4c5afda9c55e807e41377d86d9"></a><!-- doxytag: member="kXMPUtil_DeleteEmptyValues" ref="a385c44f6fb256e5716a2302a5b940388a97753b4c5afda9c55e807e41377d86d9" args="" -->kXMPUtil_DeleteEmptyValues</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a385c44f6fb256e5716a2302a5b940388a97753b4c5afda9c55e807e41377d86d9"></a>kXMPUtil_DeleteEmptyValues&#160;</td><td class="fielddoc">
<p>Delete properties if the new value is empty. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a385c44f6fb256e5716a2302a5b940388a843589b878f53d42d59258f945ad770b"></a><!-- doxytag: member="kXMPUtil_IncludeAliases" ref="a385c44f6fb256e5716a2302a5b940388a843589b878f53d42d59258f945ad770b" args="" -->kXMPUtil_IncludeAliases</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a385c44f6fb256e5716a2302a5b940388a843589b878f53d42d59258f945ad770b"></a>kXMPUtil_IncludeAliases&#160;</td><td class="fielddoc">
<p>Include aliases, default is just actual properties. </p>
</td></tr>
</table>
-</dd>
-</dl>
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00846">846</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; {</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160;</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; <a class="code" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a8ddfb0572b7602a52e533d92d8b1e9fb">kXMPUtil_DoAllProperties</a> = 0x0001UL,</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160;</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; <a class="code" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388adab4dad658d2d218c5b1e7d829b12962">kXMPUtil_ReplaceOldValues</a> = 0x0002UL,</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160;</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; <a class="code" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a97753b4c5afda9c55e807e41377d86d9">kXMPUtil_DeleteEmptyValues</a> = 0x0004UL,</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160;</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; <a class="code" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a843589b878f53d42d59258f945ad770b">kXMPUtil_IncludeAliases</a> = 0x0800UL</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160;</div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160;};</div><div class="ttc" id="XMP__Const_8h_html_a385c44f6fb256e5716a2302a5b940388a8ddfb0572b7602a52e533d92d8b1e9fb"><div class="ttname"><a href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a8ddfb0572b7602a52e533d92d8b1e9fb">kXMPUtil_DoAllProperties</a></div><div class="ttdoc">Do all properties, default is just external properties. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00849">XMP_Const.h:849</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a385c44f6fb256e5716a2302a5b940388a843589b878f53d42d59258f945ad770b"><div class="ttname"><a href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a843589b878f53d42d59258f945ad770b">kXMPUtil_IncludeAliases</a></div><div class="ttdoc">Include aliases, default is just actual properties. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00858">XMP_Const.h:858</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a385c44f6fb256e5716a2302a5b940388a97753b4c5afda9c55e807e41377d86d9"><div class="ttname"><a href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a97753b4c5afda9c55e807e41377d86d9">kXMPUtil_DeleteEmptyValues</a></div><div class="ttdoc">Delete properties if the new value is empty. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00855">XMP_Const.h:855</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a385c44f6fb256e5716a2302a5b940388adab4dad658d2d218c5b1e7d829b12962"><div class="ttname"><a href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388adab4dad658d2d218c5b1e7d829b12962">kXMPUtil_ReplaceOldValues</a></div><div class="ttdoc">Replace existing values, default is to leave them. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00852">XMP_Const.h:852</a></div></div>
+</div><!-- fragment -->
</div>
</div>
-<a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035d"></a><!-- doxytag: member="XMP_Const.h::@11" ref="abc5c98fcc1211af2b80116dd6e0a035d" args="" -->
+<a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -1771,156 +3059,236 @@ typedef XMP_Bool(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>XMPFile
<td class="memname">anonymous enum</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>File format constants for use with XMPFiles. </p>
-<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da17ab6d429c1550eb3cc16d2e544b78eb"></a><!-- doxytag: member="kXMP_PDFFile" ref="abc5c98fcc1211af2b80116dd6e0a035da17ab6d429c1550eb3cc16d2e544b78eb" args="" -->kXMP_PDFFile</em>&nbsp;</td><td>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da17ab6d429c1550eb3cc16d2e544b78eb"></a>kXMP_PDFFile&#160;</td><td class="fielddoc">
<p>Public file format constant: 'PDF '. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da52c90935ee28a0875a49843d463cad70"></a><!-- doxytag: member="kXMP_PostScriptFile" ref="abc5c98fcc1211af2b80116dd6e0a035da52c90935ee28a0875a49843d463cad70" args="" -->kXMP_PostScriptFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da52c90935ee28a0875a49843d463cad70"></a>kXMP_PostScriptFile&#160;</td><td class="fielddoc">
<p>Public file format constant: 'PS ', general PostScript following DSC conventions. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035dad947e6da0c4d923195d93e0c53a79c4e"></a><!-- doxytag: member="kXMP_EPSFile" ref="abc5c98fcc1211af2b80116dd6e0a035dad947e6da0c4d923195d93e0c53a79c4e" args="" -->kXMP_EPSFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035dad947e6da0c4d923195d93e0c53a79c4e"></a>kXMP_EPSFile&#160;</td><td class="fielddoc">
<p>Public file format constant: 'EPS ', encapsulated PostScript. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035dad752b2d3e1139e0745223a9385ef6487"></a><!-- doxytag: member="kXMP_JPEGFile" ref="abc5c98fcc1211af2b80116dd6e0a035dad752b2d3e1139e0745223a9385ef6487" args="" -->kXMP_JPEGFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035dad752b2d3e1139e0745223a9385ef6487"></a>kXMP_JPEGFile&#160;</td><td class="fielddoc">
<p>Public file format constant: 'JPEG'. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da78b8fa38aaa2067e3e1baa0dcaa7571d"></a><!-- doxytag: member="kXMP_JPEG2KFile" ref="abc5c98fcc1211af2b80116dd6e0a035da78b8fa38aaa2067e3e1baa0dcaa7571d" args="" -->kXMP_JPEG2KFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da78b8fa38aaa2067e3e1baa0dcaa7571d"></a>kXMP_JPEG2KFile&#160;</td><td class="fielddoc">
<p>Public file format constant: 'JPX ', JPEG 2000, ISO 15444-1. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035dadc0edf25d933c2a21b25449692c3ba08"></a><!-- doxytag: member="kXMP_TIFFFile" ref="abc5c98fcc1211af2b80116dd6e0a035dadc0edf25d933c2a21b25449692c3ba08" args="" -->kXMP_TIFFFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035dadc0edf25d933c2a21b25449692c3ba08"></a>kXMP_TIFFFile&#160;</td><td class="fielddoc">
<p>Public file format constant: 'TIFF'. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da851d2f4525d705cd2dcabb540d0ddc06"></a><!-- doxytag: member="kXMP_GIFFile" ref="abc5c98fcc1211af2b80116dd6e0a035da851d2f4525d705cd2dcabb540d0ddc06" args="" -->kXMP_GIFFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da851d2f4525d705cd2dcabb540d0ddc06"></a>kXMP_GIFFile&#160;</td><td class="fielddoc">
<p>Public file format constant: 'GIF '. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035dac989381d37de320495e4d13f9ecc6371"></a><!-- doxytag: member="kXMP_PNGFile" ref="abc5c98fcc1211af2b80116dd6e0a035dac989381d37de320495e4d13f9ecc6371" args="" -->kXMP_PNGFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035dac989381d37de320495e4d13f9ecc6371"></a>kXMP_PNGFile&#160;</td><td class="fielddoc">
<p>Public file format constant: 'PNG '. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da564a8095f65d951f451e16eb56650597"></a><!-- doxytag: member="kXMP_SWFFile" ref="abc5c98fcc1211af2b80116dd6e0a035da564a8095f65d951f451e16eb56650597" args="" -->kXMP_SWFFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da564a8095f65d951f451e16eb56650597"></a>kXMP_SWFFile&#160;</td><td class="fielddoc">
<p>Public file format constant: 'SWF '. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035dab1eeba00d1d92e313acfe68cd054daf9"></a><!-- doxytag: member="kXMP_FLAFile" ref="abc5c98fcc1211af2b80116dd6e0a035dab1eeba00d1d92e313acfe68cd054daf9" args="" -->kXMP_FLAFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035dab1eeba00d1d92e313acfe68cd054daf9"></a>kXMP_FLAFile&#160;</td><td class="fielddoc">
<p>Public file format constant: 'FLA '. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da455bc501088bbd8061fe3ea386a5066f"></a><!-- doxytag: member="kXMP_FLVFile" ref="abc5c98fcc1211af2b80116dd6e0a035da455bc501088bbd8061fe3ea386a5066f" args="" -->kXMP_FLVFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da455bc501088bbd8061fe3ea386a5066f"></a>kXMP_FLVFile&#160;</td><td class="fielddoc">
<p>Public file format constant: 'FLV '. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035daebdb172c8a75b4ead2eff2d26ed3dc37"></a><!-- doxytag: member="kXMP_MOVFile" ref="abc5c98fcc1211af2b80116dd6e0a035daebdb172c8a75b4ead2eff2d26ed3dc37" args="" -->kXMP_MOVFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035daebdb172c8a75b4ead2eff2d26ed3dc37"></a>kXMP_MOVFile&#160;</td><td class="fielddoc">
<p>Public file format constant: 'MOV ', Quicktime. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035dae3a6333624e5c292caf14ad849a5e26e"></a><!-- doxytag: member="kXMP_AVIFile" ref="abc5c98fcc1211af2b80116dd6e0a035dae3a6333624e5c292caf14ad849a5e26e" args="" -->kXMP_AVIFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035dae3a6333624e5c292caf14ad849a5e26e"></a>kXMP_AVIFile&#160;</td><td class="fielddoc">
<p>Public file format constant: 'AVI '. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035dad2935ea79b4f9253891e3a68a002c5bb"></a><!-- doxytag: member="kXMP_CINFile" ref="abc5c98fcc1211af2b80116dd6e0a035dad2935ea79b4f9253891e3a68a002c5bb" args="" -->kXMP_CINFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035dad2935ea79b4f9253891e3a68a002c5bb"></a>kXMP_CINFile&#160;</td><td class="fielddoc">
<p>Public file format constant: 'CIN ', Cineon. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035dacc1fcd4e52423c0dd2966a2e92352fb8"></a><!-- doxytag: member="kXMP_WAVFile" ref="abc5c98fcc1211af2b80116dd6e0a035dacc1fcd4e52423c0dd2966a2e92352fb8" args="" -->kXMP_WAVFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035dacc1fcd4e52423c0dd2966a2e92352fb8"></a>kXMP_WAVFile&#160;</td><td class="fielddoc">
<p>Public file format constant: 'WAV '. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035daf3ee34ed2bc26dec0e2d572eeb0de89b"></a><!-- doxytag: member="kXMP_MP3File" ref="abc5c98fcc1211af2b80116dd6e0a035daf3ee34ed2bc26dec0e2d572eeb0de89b" args="" -->kXMP_MP3File</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035daf3ee34ed2bc26dec0e2d572eeb0de89b"></a>kXMP_MP3File&#160;</td><td class="fielddoc">
<p>Public file format constant: 'MP3 '. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da42cb8767d9cf16eaeb7aec68a4f224e9"></a><!-- doxytag: member="kXMP_SESFile" ref="abc5c98fcc1211af2b80116dd6e0a035da42cb8767d9cf16eaeb7aec68a4f224e9" args="" -->kXMP_SESFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da42cb8767d9cf16eaeb7aec68a4f224e9"></a>kXMP_SESFile&#160;</td><td class="fielddoc">
<p>Public file format constant: 'SES ', Audition session. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da6c949ee85f42eaaed035591338be6789"></a><!-- doxytag: member="kXMP_CELFile" ref="abc5c98fcc1211af2b80116dd6e0a035da6c949ee85f42eaaed035591338be6789" args="" -->kXMP_CELFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da6c949ee85f42eaaed035591338be6789"></a>kXMP_CELFile&#160;</td><td class="fielddoc">
<p>Public file format constant: 'CEL ', Audition loop. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da043afdc1db730db9ac03c505140c61c8"></a><!-- doxytag: member="kXMP_MPEGFile" ref="abc5c98fcc1211af2b80116dd6e0a035da043afdc1db730db9ac03c505140c61c8" args="" -->kXMP_MPEGFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da043afdc1db730db9ac03c505140c61c8"></a>kXMP_MPEGFile&#160;</td><td class="fielddoc">
<p>Public file format constant: 'MPEG'. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035dab58eaebed494530072ad990ac7a9807a"></a><!-- doxytag: member="kXMP_MPEG2File" ref="abc5c98fcc1211af2b80116dd6e0a035dab58eaebed494530072ad990ac7a9807a" args="" -->kXMP_MPEG2File</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035dab58eaebed494530072ad990ac7a9807a"></a>kXMP_MPEG2File&#160;</td><td class="fielddoc">
<p>Public file format constant: 'MP2 '. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da89e6282c3f0c8966d788500f5d8eaa91"></a><!-- doxytag: member="kXMP_MPEG4File" ref="abc5c98fcc1211af2b80116dd6e0a035da89e6282c3f0c8966d788500f5d8eaa91" args="" -->kXMP_MPEG4File</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da89e6282c3f0c8966d788500f5d8eaa91"></a>kXMP_MPEG4File&#160;</td><td class="fielddoc">
<p>Public file format constant: 'MP4 ', ISO 14494-12 and -14. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da4b3477bdc53fae1511104fc54f88d134"></a><!-- doxytag: member="kXMP_MXFFile" ref="abc5c98fcc1211af2b80116dd6e0a035da4b3477bdc53fae1511104fc54f88d134" args="" -->kXMP_MXFFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da4b3477bdc53fae1511104fc54f88d134"></a>kXMP_MXFFile&#160;</td><td class="fielddoc">
<p>Public file format constant: 'MXF '. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da78c62f7c10b16b1a862d93f6226a4622"></a><!-- doxytag: member="kXMP_WMAVFile" ref="abc5c98fcc1211af2b80116dd6e0a035da78c62f7c10b16b1a862d93f6226a4622" args="" -->kXMP_WMAVFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da78c62f7c10b16b1a862d93f6226a4622"></a>kXMP_WMAVFile&#160;</td><td class="fielddoc">
<p>Public file format constant: 'WMAV', Windows Media Audio and Video. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035daf093d01e7e9cc55a7d1e204498521fc3"></a><!-- doxytag: member="kXMP_AIFFFile" ref="abc5c98fcc1211af2b80116dd6e0a035daf093d01e7e9cc55a7d1e204498521fc3" args="" -->kXMP_AIFFFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035daf093d01e7e9cc55a7d1e204498521fc3"></a>kXMP_AIFFFile&#160;</td><td class="fielddoc">
<p>Public file format constant: 'AIFF'. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035daab032aa36aec082c6b3a8300548346f5"></a><!-- doxytag: member="kXMP_REDFile" ref="abc5c98fcc1211af2b80116dd6e0a035daab032aa36aec082c6b3a8300548346f5" args="" -->kXMP_REDFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035daab032aa36aec082c6b3a8300548346f5"></a>kXMP_REDFile&#160;</td><td class="fielddoc">
<p>Public file format constant: 'RED ', RED file format. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035dabad9584845edf66f2f8fc3c336977e34"></a><!-- doxytag: member="kXMP_P2File" ref="abc5c98fcc1211af2b80116dd6e0a035dabad9584845edf66f2f8fc3c336977e34" args="" -->kXMP_P2File</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035dabad9584845edf66f2f8fc3c336977e34"></a>kXMP_P2File&#160;</td><td class="fielddoc">
<p>Public file format constant: 'P2 ', a collection not really a single file. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da5f78caa0871695cc92e058e4f4b2dd57"></a><!-- doxytag: member="kXMP_XDCAM_FAMFile" ref="abc5c98fcc1211af2b80116dd6e0a035da5f78caa0871695cc92e058e4f4b2dd57" args="" -->kXMP_XDCAM_FAMFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da5f78caa0871695cc92e058e4f4b2dd57"></a>kXMP_XDCAM_FAMFile&#160;</td><td class="fielddoc">
<p>Public file format constant: 'XDCF', a collection not really a single file. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da64fe7908df6341e13d9d8c8199cdf852"></a><!-- doxytag: member="kXMP_XDCAM_SAMFile" ref="abc5c98fcc1211af2b80116dd6e0a035da64fe7908df6341e13d9d8c8199cdf852" args="" -->kXMP_XDCAM_SAMFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da64fe7908df6341e13d9d8c8199cdf852"></a>kXMP_XDCAM_SAMFile&#160;</td><td class="fielddoc">
<p>Public file format constant: 'XDCS', a collection not really a single file. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da45bf9b21d5ffed3594fbd585c47cc4fc"></a><!-- doxytag: member="kXMP_XDCAM_EXFile" ref="abc5c98fcc1211af2b80116dd6e0a035da45bf9b21d5ffed3594fbd585c47cc4fc" args="" -->kXMP_XDCAM_EXFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da45bf9b21d5ffed3594fbd585c47cc4fc"></a>kXMP_XDCAM_EXFile&#160;</td><td class="fielddoc">
<p>Public file format constant: 'XDCX', a collection not really a single file. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035dafc5ff976e78df2d79d651de818b011f2"></a><!-- doxytag: member="kXMP_AVCHDFile" ref="abc5c98fcc1211af2b80116dd6e0a035dafc5ff976e78df2d79d651de818b011f2" args="" -->kXMP_AVCHDFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035dafc5ff976e78df2d79d651de818b011f2"></a>kXMP_AVCHDFile&#160;</td><td class="fielddoc">
<p>Public file format constant: 'AVHD', a collection not really a single file. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035daa0edb070c11f87c3dad9f8f7a83b9b5e"></a><!-- doxytag: member="kXMP_SonyHDVFile" ref="abc5c98fcc1211af2b80116dd6e0a035daa0edb070c11f87c3dad9f8f7a83b9b5e" args="" -->kXMP_SonyHDVFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035daa0edb070c11f87c3dad9f8f7a83b9b5e"></a>kXMP_SonyHDVFile&#160;</td><td class="fielddoc">
<p>Public file format constant: 'SHDV', a collection not really a single file. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035dafa11d905db1236494e555956cb2f90ef"></a><!-- doxytag: member="kXMP_CanonXFFile" ref="abc5c98fcc1211af2b80116dd6e0a035dafa11d905db1236494e555956cb2f90ef" args="" -->kXMP_CanonXFFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035dafa11d905db1236494e555956cb2f90ef"></a>kXMP_CanonXFFile&#160;</td><td class="fielddoc">
<p>Public file format constant: 'CNXF', a collection not really a single file. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da542634e6051139c44fd7b92d08c64760"></a><!-- doxytag: member="kXMP_HTMLFile" ref="abc5c98fcc1211af2b80116dd6e0a035da542634e6051139c44fd7b92d08c64760" args="" -->kXMP_HTMLFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035daf32bab632c45ee7d960a5b74c9d61155"></a>kXMP_AVCUltraFile&#160;</td><td class="fielddoc">
+<p>Public file format constant: 'AVCU', a collection not really a single file. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da542634e6051139c44fd7b92d08c64760"></a>kXMP_HTMLFile&#160;</td><td class="fielddoc">
<p>Public file format constant: 'HTML'. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035dad217b996403fa13caef3d6e978023124"></a><!-- doxytag: member="kXMP_XMLFile" ref="abc5c98fcc1211af2b80116dd6e0a035dad217b996403fa13caef3d6e978023124" args="" -->kXMP_XMLFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035dad217b996403fa13caef3d6e978023124"></a>kXMP_XMLFile&#160;</td><td class="fielddoc">
<p>Public file format constant: 'XML '. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da27051cd824d3ae7bb59e3af7a7908ffd"></a><!-- doxytag: member="kXMP_TextFile" ref="abc5c98fcc1211af2b80116dd6e0a035da27051cd824d3ae7bb59e3af7a7908ffd" args="" -->kXMP_TextFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da27051cd824d3ae7bb59e3af7a7908ffd"></a>kXMP_TextFile&#160;</td><td class="fielddoc">
<p>Public file format constant: 'text'. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da22b478a9d0d52d12e8e4a1181024eb1c"></a><!-- doxytag: member="kXMP_PhotoshopFile" ref="abc5c98fcc1211af2b80116dd6e0a035da22b478a9d0d52d12e8e4a1181024eb1c" args="" -->kXMP_PhotoshopFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035daf775c60f1da0e8c34590744a89e66c79"></a>kXMP_SVGFile&#160;</td><td class="fielddoc">
+<p>Public file format constant: 'SVG '. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da22b478a9d0d52d12e8e4a1181024eb1c"></a>kXMP_PhotoshopFile&#160;</td><td class="fielddoc">
<p>Adobe application file format constant: 'PSD '. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da82935c41c6222ff4cca954278f18e554"></a><!-- doxytag: member="kXMP_IllustratorFile" ref="abc5c98fcc1211af2b80116dd6e0a035da82935c41c6222ff4cca954278f18e554" args="" -->kXMP_IllustratorFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da82935c41c6222ff4cca954278f18e554"></a>kXMP_IllustratorFile&#160;</td><td class="fielddoc">
<p>Adobe application file format constant: 'AI '. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da79cbf96ecc4ac3e0ebfb2d182bc75e60"></a><!-- doxytag: member="kXMP_InDesignFile" ref="abc5c98fcc1211af2b80116dd6e0a035da79cbf96ecc4ac3e0ebfb2d182bc75e60" args="" -->kXMP_InDesignFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da79cbf96ecc4ac3e0ebfb2d182bc75e60"></a>kXMP_InDesignFile&#160;</td><td class="fielddoc">
<p>Adobe application file format constant: 'INDD'. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da5fb9e99541bbb2d8e375d0cc9fd92a2e"></a><!-- doxytag: member="kXMP_AEProjectFile" ref="abc5c98fcc1211af2b80116dd6e0a035da5fb9e99541bbb2d8e375d0cc9fd92a2e" args="" -->kXMP_AEProjectFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da5fb9e99541bbb2d8e375d0cc9fd92a2e"></a>kXMP_AEProjectFile&#160;</td><td class="fielddoc">
<p>Adobe application file format constant: 'AEP '. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035dada5b138722448c4d4595fe760668c3df"></a><!-- doxytag: member="kXMP_AEProjTemplateFile" ref="abc5c98fcc1211af2b80116dd6e0a035dada5b138722448c4d4595fe760668c3df" args="" -->kXMP_AEProjTemplateFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035dada5b138722448c4d4595fe760668c3df"></a>kXMP_AEProjTemplateFile&#160;</td><td class="fielddoc">
<p>Adobe application file format constant: 'AET ', After Effects Project Template. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035dafd8d3d1c8c84bc6ab773f1298b3938f0"></a><!-- doxytag: member="kXMP_AEFilterPresetFile" ref="abc5c98fcc1211af2b80116dd6e0a035dafd8d3d1c8c84bc6ab773f1298b3938f0" args="" -->kXMP_AEFilterPresetFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035dafd8d3d1c8c84bc6ab773f1298b3938f0"></a>kXMP_AEFilterPresetFile&#160;</td><td class="fielddoc">
<p>Adobe application file format constant: 'FFX '. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035dae28efb65bde55f3f8ddfd1fd8a168e2a"></a><!-- doxytag: member="kXMP_EncoreProjectFile" ref="abc5c98fcc1211af2b80116dd6e0a035dae28efb65bde55f3f8ddfd1fd8a168e2a" args="" -->kXMP_EncoreProjectFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035dae28efb65bde55f3f8ddfd1fd8a168e2a"></a>kXMP_EncoreProjectFile&#160;</td><td class="fielddoc">
<p>Adobe application file format constant: 'NCOR'. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035daeff4f68cd5162370f7bf938a868e280d"></a><!-- doxytag: member="kXMP_PremiereProjectFile" ref="abc5c98fcc1211af2b80116dd6e0a035daeff4f68cd5162370f7bf938a868e280d" args="" -->kXMP_PremiereProjectFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035daeff4f68cd5162370f7bf938a868e280d"></a>kXMP_PremiereProjectFile&#160;</td><td class="fielddoc">
<p>Adobe application file format constant: 'PRPJ'. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da1ad712bbd349dc899ca1e71971032b0a"></a><!-- doxytag: member="kXMP_PremiereTitleFile" ref="abc5c98fcc1211af2b80116dd6e0a035da1ad712bbd349dc899ca1e71971032b0a" args="" -->kXMP_PremiereTitleFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da1ad712bbd349dc899ca1e71971032b0a"></a>kXMP_PremiereTitleFile&#160;</td><td class="fielddoc">
<p>Adobe application file format constant: 'PRTL'. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da96804f7b8ce83786051c4dac4930aa96"></a><!-- doxytag: member="kXMP_UCFFile" ref="abc5c98fcc1211af2b80116dd6e0a035da96804f7b8ce83786051c4dac4930aa96" args="" -->kXMP_UCFFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da96804f7b8ce83786051c4dac4930aa96"></a>kXMP_UCFFile&#160;</td><td class="fielddoc">
<p>Adobe application file format constant: 'UCF ', Universal Container Format. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719"></a><!-- doxytag: member="kXMP_UnknownFile" ref="abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719" args="" -->kXMP_UnknownFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719"></a>kXMP_UnknownFile&#160;</td><td class="fielddoc">
<p>Unknown file format constant: ' '. </p>
</td></tr>
</table>
-</dd>
-</dl>
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00870">870</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; {</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160;</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; <span class="comment">// ! Hex used to avoid gcc warnings. Leave the constants so the text reads big endian. There</span></div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; <span class="comment">// ! seems to be no decent way on UNIX to determine the target endianness at compile time.</span></div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; <span class="comment">// ! Forcing it on the client isn&#39;t acceptable.</span></div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160;</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; <span class="comment">// --------------------</span></div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; <span class="comment">// Public file formats.</span></div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160;</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da17ab6d429c1550eb3cc16d2e544b78eb">kXMP_PDFFile</a> = 0x50444620UL,</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da52c90935ee28a0875a49843d463cad70">kXMP_PostScriptFile</a> = 0x50532020UL,</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad947e6da0c4d923195d93e0c53a79c4e">kXMP_EPSFile</a> = 0x45505320UL,</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160;</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad752b2d3e1139e0745223a9385ef6487">kXMP_JPEGFile</a> = 0x4A504547UL,</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da78b8fa38aaa2067e3e1baa0dcaa7571d">kXMP_JPEG2KFile</a> = 0x4A505820UL,</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dadc0edf25d933c2a21b25449692c3ba08">kXMP_TIFFFile</a> = 0x54494646UL,</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da851d2f4525d705cd2dcabb540d0ddc06">kXMP_GIFFile</a> = 0x47494620UL,</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dac989381d37de320495e4d13f9ecc6371">kXMP_PNGFile</a> = 0x504E4720UL,</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160;</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da564a8095f65d951f451e16eb56650597">kXMP_SWFFile</a> = 0x53574620UL,</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dab1eeba00d1d92e313acfe68cd054daf9">kXMP_FLAFile</a> = 0x464C4120UL,</div><div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da455bc501088bbd8061fe3ea386a5066f">kXMP_FLVFile</a> = 0x464C5620UL,</div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160;</div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daebdb172c8a75b4ead2eff2d26ed3dc37">kXMP_MOVFile</a> = 0x4D4F5620UL,</div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dae3a6333624e5c292caf14ad849a5e26e">kXMP_AVIFile</a> = 0x41564920UL,</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad2935ea79b4f9253891e3a68a002c5bb">kXMP_CINFile</a> = 0x43494E20UL,</div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dacc1fcd4e52423c0dd2966a2e92352fb8">kXMP_WAVFile</a> = 0x57415620UL,</div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf3ee34ed2bc26dec0e2d572eeb0de89b">kXMP_MP3File</a> = 0x4D503320UL,</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da42cb8767d9cf16eaeb7aec68a4f224e9">kXMP_SESFile</a> = 0x53455320UL,</div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da6c949ee85f42eaaed035591338be6789">kXMP_CELFile</a> = 0x43454C20UL,</div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da043afdc1db730db9ac03c505140c61c8">kXMP_MPEGFile</a> = 0x4D504547UL,</div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dab58eaebed494530072ad990ac7a9807a">kXMP_MPEG2File</a> = 0x4D503220UL,</div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da89e6282c3f0c8966d788500f5d8eaa91">kXMP_MPEG4File</a> = 0x4D503420UL,</div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da4b3477bdc53fae1511104fc54f88d134">kXMP_MXFFile</a> = 0x4D584620UL,</div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da78c62f7c10b16b1a862d93f6226a4622">kXMP_WMAVFile</a> = 0x574D4156UL,</div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf093d01e7e9cc55a7d1e204498521fc3">kXMP_AIFFFile</a> = 0x41494646UL,</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daab032aa36aec082c6b3a8300548346f5">kXMP_REDFile</a> = 0x52454420UL,</div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dabad9584845edf66f2f8fc3c336977e34">kXMP_P2File</a> = 0x50322020UL,</div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da5f78caa0871695cc92e058e4f4b2dd57">kXMP_XDCAM_FAMFile</a> = 0x58444346UL,</div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da64fe7908df6341e13d9d8c8199cdf852">kXMP_XDCAM_SAMFile</a> = 0x58444353UL,</div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da45bf9b21d5ffed3594fbd585c47cc4fc">kXMP_XDCAM_EXFile</a> = 0x58444358UL,</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafc5ff976e78df2d79d651de818b011f2">kXMP_AVCHDFile</a> = 0x41564844UL,</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daa0edb070c11f87c3dad9f8f7a83b9b5e">kXMP_SonyHDVFile</a> = 0x53484456UL,</div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafa11d905db1236494e555956cb2f90ef">kXMP_CanonXFFile</a> = 0x434E5846UL,</div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf32bab632c45ee7d960a5b74c9d61155">kXMP_AVCUltraFile</a> = 0x41564355UL,</div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160;</div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da542634e6051139c44fd7b92d08c64760">kXMP_HTMLFile</a> = 0x48544D4CUL,</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad217b996403fa13caef3d6e978023124">kXMP_XMLFile</a> = 0x584D4C20UL,</div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da27051cd824d3ae7bb59e3af7a7908ffd">kXMP_TextFile</a> = 0x74657874UL,</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf775c60f1da0e8c34590744a89e66c79">kXMP_SVGFile</a> = 0x53564720UL,</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160;</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; <span class="comment">// -------------------------------</span></div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; <span class="comment">// Adobe application file formats.</span></div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160;</div><div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da22b478a9d0d52d12e8e4a1181024eb1c">kXMP_PhotoshopFile</a> = 0x50534420UL,</div><div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da82935c41c6222ff4cca954278f18e554">kXMP_IllustratorFile</a> = 0x41492020UL,</div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da79cbf96ecc4ac3e0ebfb2d182bc75e60">kXMP_InDesignFile</a> = 0x494E4444UL,</div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da5fb9e99541bbb2d8e375d0cc9fd92a2e">kXMP_AEProjectFile</a> = 0x41455020UL,</div><div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dada5b138722448c4d4595fe760668c3df">kXMP_AEProjTemplateFile</a> = 0x41455420UL,</div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafd8d3d1c8c84bc6ab773f1298b3938f0">kXMP_AEFilterPresetFile</a> = 0x46465820UL,</div><div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dae28efb65bde55f3f8ddfd1fd8a168e2a">kXMP_EncoreProjectFile</a> = 0x4E434F52UL,</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daeff4f68cd5162370f7bf938a868e280d">kXMP_PremiereProjectFile</a> = 0x5052504AUL,</div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da1ad712bbd349dc899ca1e71971032b0a">kXMP_PremiereTitleFile</a> = 0x5052544CUL,</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da96804f7b8ce83786051c4dac4930aa96">kXMP_UCFFile</a> = 0x55434620UL,</div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160;</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160; <span class="comment">// -------</span></div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; <span class="comment">// Others.</span></div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160;</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719">kXMP_UnknownFile</a> = 0x20202020UL</div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160;</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160;};</div><div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035dac989381d37de320495e4d13f9ecc6371"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dac989381d37de320495e4d13f9ecc6371">kXMP_PNGFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;PNG &amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00895">XMP_Const.h:895</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035daeff4f68cd5162370f7bf938a868e280d"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daeff4f68cd5162370f7bf938a868e280d">kXMP_PremiereProjectFile</a></div><div class="ttdoc">Adobe application file format constant: &amp;#39;PRPJ&amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00976">XMP_Const.h:976</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da64fe7908df6341e13d9d8c8199cdf852"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da64fe7908df6341e13d9d8c8199cdf852">kXMP_XDCAM_SAMFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;XDCS&amp;#39;, a collection not really a single file. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00937">XMP_Const.h:937</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035dafa11d905db1236494e555956cb2f90ef"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafa11d905db1236494e555956cb2f90ef">kXMP_CanonXFFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;CNXF&amp;#39;, a collection not really a single file. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00945">XMP_Const.h:945</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da82935c41c6222ff4cca954278f18e554"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da82935c41c6222ff4cca954278f18e554">kXMP_IllustratorFile</a></div><div class="ttdoc">Adobe application file format constant: &amp;#39;AI &amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00964">XMP_Const.h:964</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da79cbf96ecc4ac3e0ebfb2d182bc75e60"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da79cbf96ecc4ac3e0ebfb2d182bc75e60">kXMP_InDesignFile</a></div><div class="ttdoc">Adobe application file format constant: &amp;#39;INDD&amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00966">XMP_Const.h:966</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035daebdb172c8a75b4ead2eff2d26ed3dc37"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daebdb172c8a75b4ead2eff2d26ed3dc37">kXMP_MOVFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;MOV &amp;#39;, Quicktime. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00905">XMP_Const.h:905</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035dadc0edf25d933c2a21b25449692c3ba08"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dadc0edf25d933c2a21b25449692c3ba08">kXMP_TIFFFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;TIFF&amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00891">XMP_Const.h:891</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035dada5b138722448c4d4595fe760668c3df"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dada5b138722448c4d4595fe760668c3df">kXMP_AEProjTemplateFile</a></div><div class="ttdoc">Adobe application file format constant: &amp;#39;AET &amp;#39;, After Effects Project Template. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00970">XMP_Const.h:970</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da851d2f4525d705cd2dcabb540d0ddc06"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da851d2f4525d705cd2dcabb540d0ddc06">kXMP_GIFFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;GIF &amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00893">XMP_Const.h:893</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da4b3477bdc53fae1511104fc54f88d134"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da4b3477bdc53fae1511104fc54f88d134">kXMP_MXFFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;MXF &amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00925">XMP_Const.h:925</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da1ad712bbd349dc899ca1e71971032b0a"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da1ad712bbd349dc899ca1e71971032b0a">kXMP_PremiereTitleFile</a></div><div class="ttdoc">Adobe application file format constant: &amp;#39;PRTL&amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00978">XMP_Const.h:978</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035dab58eaebed494530072ad990ac7a9807a"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dab58eaebed494530072ad990ac7a9807a">kXMP_MPEG2File</a></div><div class="ttdoc">Public file format constant: &amp;#39;MP2 &amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00921">XMP_Const.h:921</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da542634e6051139c44fd7b92d08c64760"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da542634e6051139c44fd7b92d08c64760">kXMP_HTMLFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;HTML&amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00950">XMP_Const.h:950</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da043afdc1db730db9ac03c505140c61c8"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da043afdc1db730db9ac03c505140c61c8">kXMP_MPEGFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;MPEG&amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00919">XMP_Const.h:919</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da455bc501088bbd8061fe3ea386a5066f"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da455bc501088bbd8061fe3ea386a5066f">kXMP_FLVFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;FLV &amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00902">XMP_Const.h:902</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da52c90935ee28a0875a49843d463cad70"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da52c90935ee28a0875a49843d463cad70">kXMP_PostScriptFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;PS &amp;#39;, general PostScript following DSC conventions. ...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00882">XMP_Const.h:882</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da45bf9b21d5ffed3594fbd585c47cc4fc"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da45bf9b21d5ffed3594fbd585c47cc4fc">kXMP_XDCAM_EXFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;XDCX&amp;#39;, a collection not really a single file. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00939">XMP_Const.h:939</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035daf3ee34ed2bc26dec0e2d572eeb0de89b"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf3ee34ed2bc26dec0e2d572eeb0de89b">kXMP_MP3File</a></div><div class="ttdoc">Public file format constant: &amp;#39;MP3 &amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00913">XMP_Const.h:913</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da5fb9e99541bbb2d8e375d0cc9fd92a2e"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da5fb9e99541bbb2d8e375d0cc9fd92a2e">kXMP_AEProjectFile</a></div><div class="ttdoc">Adobe application file format constant: &amp;#39;AEP &amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00968">XMP_Const.h:968</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035dae3a6333624e5c292caf14ad849a5e26e"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dae3a6333624e5c292caf14ad849a5e26e">kXMP_AVIFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;AVI &amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00907">XMP_Const.h:907</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035dad947e6da0c4d923195d93e0c53a79c4e"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad947e6da0c4d923195d93e0c53a79c4e">kXMP_EPSFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;EPS &amp;#39;, encapsulated PostScript. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00884">XMP_Const.h:884</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035dab1eeba00d1d92e313acfe68cd054daf9"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dab1eeba00d1d92e313acfe68cd054daf9">kXMP_FLAFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;FLA &amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00900">XMP_Const.h:900</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035daa0edb070c11f87c3dad9f8f7a83b9b5e"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daa0edb070c11f87c3dad9f8f7a83b9b5e">kXMP_SonyHDVFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;SHDV&amp;#39;, a collection not really a single file. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00943">XMP_Const.h:943</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da78c62f7c10b16b1a862d93f6226a4622"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da78c62f7c10b16b1a862d93f6226a4622">kXMP_WMAVFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;WMAV&amp;#39;, Windows Media Audio and Video. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00927">XMP_Const.h:927</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da5f78caa0871695cc92e058e4f4b2dd57"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da5f78caa0871695cc92e058e4f4b2dd57">kXMP_XDCAM_FAMFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;XDCF&amp;#39;, a collection not really a single file. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00935">XMP_Const.h:935</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035daab032aa36aec082c6b3a8300548346f5"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daab032aa36aec082c6b3a8300548346f5">kXMP_REDFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;RED &amp;#39;, RED file format. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00931">XMP_Const.h:931</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da17ab6d429c1550eb3cc16d2e544b78eb"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da17ab6d429c1550eb3cc16d2e544b78eb">kXMP_PDFFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;PDF &amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00880">XMP_Const.h:880</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035dacc1fcd4e52423c0dd2966a2e92352fb8"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dacc1fcd4e52423c0dd2966a2e92352fb8">kXMP_WAVFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;WAV &amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00911">XMP_Const.h:911</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035daf093d01e7e9cc55a7d1e204498521fc3"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf093d01e7e9cc55a7d1e204498521fc3">kXMP_AIFFFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;AIFF&amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00929">XMP_Const.h:929</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719">kXMP_UnknownFile</a></div><div class="ttdoc">Unknown file format constant: &amp;#39; &amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00986">XMP_Const.h:986</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035dad752b2d3e1139e0745223a9385ef6487"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad752b2d3e1139e0745223a9385ef6487">kXMP_JPEGFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;JPEG&amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00887">XMP_Const.h:887</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da96804f7b8ce83786051c4dac4930aa96"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da96804f7b8ce83786051c4dac4930aa96">kXMP_UCFFile</a></div><div class="ttdoc">Adobe application file format constant: &amp;#39;UCF &amp;#39;, Universal Container Format. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00980">XMP_Const.h:980</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da6c949ee85f42eaaed035591338be6789"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da6c949ee85f42eaaed035591338be6789">kXMP_CELFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;CEL &amp;#39;, Audition loop. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00917">XMP_Const.h:917</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035dad217b996403fa13caef3d6e978023124"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad217b996403fa13caef3d6e978023124">kXMP_XMLFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;XML &amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00952">XMP_Const.h:952</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035dabad9584845edf66f2f8fc3c336977e34"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dabad9584845edf66f2f8fc3c336977e34">kXMP_P2File</a></div><div class="ttdoc">Public file format constant: &amp;#39;P2 &amp;#39;, a collection not really a single file. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00933">XMP_Const.h:933</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035dae28efb65bde55f3f8ddfd1fd8a168e2a"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dae28efb65bde55f3f8ddfd1fd8a168e2a">kXMP_EncoreProjectFile</a></div><div class="ttdoc">Adobe application file format constant: &amp;#39;NCOR&amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00974">XMP_Const.h:974</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da27051cd824d3ae7bb59e3af7a7908ffd"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da27051cd824d3ae7bb59e3af7a7908ffd">kXMP_TextFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;text&amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00954">XMP_Const.h:954</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da78b8fa38aaa2067e3e1baa0dcaa7571d"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da78b8fa38aaa2067e3e1baa0dcaa7571d">kXMP_JPEG2KFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;JPX &amp;#39;, JPEG 2000, ISO 15444-1. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00889">XMP_Const.h:889</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035dafc5ff976e78df2d79d651de818b011f2"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafc5ff976e78df2d79d651de818b011f2">kXMP_AVCHDFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;AVHD&amp;#39;, a collection not really a single file. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00941">XMP_Const.h:941</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da89e6282c3f0c8966d788500f5d8eaa91"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da89e6282c3f0c8966d788500f5d8eaa91">kXMP_MPEG4File</a></div><div class="ttdoc">Public file format constant: &amp;#39;MP4 &amp;#39;, ISO 14494-12 and -14. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00923">XMP_Const.h:923</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da22b478a9d0d52d12e8e4a1181024eb1c"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da22b478a9d0d52d12e8e4a1181024eb1c">kXMP_PhotoshopFile</a></div><div class="ttdoc">Adobe application file format constant: &amp;#39;PSD &amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00962">XMP_Const.h:962</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035dafd8d3d1c8c84bc6ab773f1298b3938f0"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafd8d3d1c8c84bc6ab773f1298b3938f0">kXMP_AEFilterPresetFile</a></div><div class="ttdoc">Adobe application file format constant: &amp;#39;FFX &amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00972">XMP_Const.h:972</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035daf32bab632c45ee7d960a5b74c9d61155"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf32bab632c45ee7d960a5b74c9d61155">kXMP_AVCUltraFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;AVCU&amp;#39;, a collection not really a single file. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00947">XMP_Const.h:947</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da42cb8767d9cf16eaeb7aec68a4f224e9"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da42cb8767d9cf16eaeb7aec68a4f224e9">kXMP_SESFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;SES &amp;#39;, Audition session. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00915">XMP_Const.h:915</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035dad2935ea79b4f9253891e3a68a002c5bb"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad2935ea79b4f9253891e3a68a002c5bb">kXMP_CINFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;CIN &amp;#39;, Cineon. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00909">XMP_Const.h:909</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da564a8095f65d951f451e16eb56650597"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da564a8095f65d951f451e16eb56650597">kXMP_SWFFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;SWF &amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00898">XMP_Const.h:898</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035daf775c60f1da0e8c34590744a89e66c79"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf775c60f1da0e8c34590744a89e66c79">kXMP_SVGFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;SVG &amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00956">XMP_Const.h:956</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="ac36f475ca5b446f4fde4c9b90bec77c8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">anonymous enum</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Byte-order masks, do not use directly. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="ac36f475ca5b446f4fde4c9b90bec77c8a0bcf31bfc6bd3bbd5f80ef25f21b4391"></a>kXMP_CharLittleEndianMask&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="ac36f475ca5b446f4fde4c9b90bec77c8ac9b8b24a75e4e325a49e3730b8e3c5ed"></a>kXMP_Char16BitMask&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="ac36f475ca5b446f4fde4c9b90bec77c8a705cebe9f5f6700f039a153d394b4f2a"></a>kXMP_Char32BitMask&#160;</td><td class="fielddoc">
+</td></tr>
+</table>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00996">996</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160; {</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160; <a class="code" href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8a0bcf31bfc6bd3bbd5f80ef25f21b4391">kXMP_CharLittleEndianMask</a> = 1,</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160; <a class="code" href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8ac9b8b24a75e4e325a49e3730b8e3c5ed">kXMP_Char16BitMask</a> = 2,</div><div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160; <a class="code" href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8a705cebe9f5f6700f039a153d394b4f2a">kXMP_Char32BitMask</a> = 4</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;};</div><div class="ttc" id="XMP__Const_8h_html_ac36f475ca5b446f4fde4c9b90bec77c8a705cebe9f5f6700f039a153d394b4f2a"><div class="ttname"><a href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8a705cebe9f5f6700f039a153d394b4f2a">kXMP_Char32BitMask</a></div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00999">XMP_Const.h:999</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_ac36f475ca5b446f4fde4c9b90bec77c8a0bcf31bfc6bd3bbd5f80ef25f21b4391"><div class="ttname"><a href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8a0bcf31bfc6bd3bbd5f80ef25f21b4391">kXMP_CharLittleEndianMask</a></div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00997">XMP_Const.h:997</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_ac36f475ca5b446f4fde4c9b90bec77c8ac9b8b24a75e4e325a49e3730b8e3c5ed"><div class="ttname"><a href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8ac9b8b24a75e4e325a49e3730b8e3c5ed">kXMP_Char16BitMask</a></div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00998">XMP_Const.h:998</a></div></div>
+</div><!-- fragment -->
</div>
</div>
-<a class="anchor" id="a05589fbab0657f08285ebdfe93f5ec9e"></a><!-- doxytag: member="XMP_Const.h::@13" ref="a05589fbab0657f08285ebdfe93f5ec9e" args="" -->
+<a class="anchor" id="a05589fbab0657f08285ebdfe93f5ec9e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -1928,36 +3296,44 @@ typedef XMP_Bool(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>XMPFile
<td class="memname">anonymous enum</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>Constants to allow easy testing for 16/32 bit and big/little endian. </p>
-<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
-<tr><td valign="top"><em><a class="anchor" id="a05589fbab0657f08285ebdfe93f5ec9eaf5b20dd9abbef29169a362b265049637"></a><!-- doxytag: member="kXMP_Char8Bit" ref="a05589fbab0657f08285ebdfe93f5ec9eaf5b20dd9abbef29169a362b265049637" args="" -->kXMP_Char8Bit</em>&nbsp;</td><td>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a05589fbab0657f08285ebdfe93f5ec9eaf5b20dd9abbef29169a362b265049637"></a>kXMP_Char8Bit&#160;</td><td class="fielddoc">
<p>8-bit </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a05589fbab0657f08285ebdfe93f5ec9ea0966bca9b241646f6a730f96c5c14a2d"></a><!-- doxytag: member="kXMP_Char16BitBig" ref="a05589fbab0657f08285ebdfe93f5ec9ea0966bca9b241646f6a730f96c5c14a2d" args="" -->kXMP_Char16BitBig</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a05589fbab0657f08285ebdfe93f5ec9ea0966bca9b241646f6a730f96c5c14a2d"></a>kXMP_Char16BitBig&#160;</td><td class="fielddoc">
<p>16-bit big-endian </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a05589fbab0657f08285ebdfe93f5ec9ea19b97b941d6586031190025225ee0eaa"></a><!-- doxytag: member="kXMP_Char16BitLittle" ref="a05589fbab0657f08285ebdfe93f5ec9ea19b97b941d6586031190025225ee0eaa" args="" -->kXMP_Char16BitLittle</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a05589fbab0657f08285ebdfe93f5ec9ea19b97b941d6586031190025225ee0eaa"></a>kXMP_Char16BitLittle&#160;</td><td class="fielddoc">
<p>16-bit little-endian </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a05589fbab0657f08285ebdfe93f5ec9ea87f8231aec6dd125baf77c9f3f918fbc"></a><!-- doxytag: member="kXMP_Char32BitBig" ref="a05589fbab0657f08285ebdfe93f5ec9ea87f8231aec6dd125baf77c9f3f918fbc" args="" -->kXMP_Char32BitBig</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a05589fbab0657f08285ebdfe93f5ec9ea87f8231aec6dd125baf77c9f3f918fbc"></a>kXMP_Char32BitBig&#160;</td><td class="fielddoc">
<p>32-bit big-endian </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a05589fbab0657f08285ebdfe93f5ec9ea859e7aa88e7dfd3f55ad2b6445a4708e"></a><!-- doxytag: member="kXMP_Char32BitLittle" ref="a05589fbab0657f08285ebdfe93f5ec9ea859e7aa88e7dfd3f55ad2b6445a4708e" args="" -->kXMP_Char32BitLittle</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a05589fbab0657f08285ebdfe93f5ec9ea859e7aa88e7dfd3f55ad2b6445a4708e"></a>kXMP_Char32BitLittle&#160;</td><td class="fielddoc">
<p>32-bit little-endian </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a05589fbab0657f08285ebdfe93f5ec9ea6c37f0724299a9c88e2f622d3246d63b"></a><!-- doxytag: member="kXMP_CharUnknown" ref="a05589fbab0657f08285ebdfe93f5ec9ea6c37f0724299a9c88e2f622d3246d63b" args="" -->kXMP_CharUnknown</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a05589fbab0657f08285ebdfe93f5ec9ea6c37f0724299a9c88e2f622d3246d63b"></a>kXMP_CharUnknown&#160;</td><td class="fielddoc">
<p>Variable or not-yet-known cases. </p>
</td></tr>
</table>
-</dd>
-</dl>
-</div>
-</div>
-<a class="anchor" id="a16af7b253440dadd46a80a4b9fddba4d"></a><!-- doxytag: member="XMP_Const.h::@14" ref="a16af7b253440dadd46a80a4b9fddba4d" args="" -->
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01003">1003</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160; {</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160; <a class="code" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9eaf5b20dd9abbef29169a362b265049637">kXMP_Char8Bit</a> = 0,</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160; <a class="code" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea0966bca9b241646f6a730f96c5c14a2d">kXMP_Char16BitBig</a> = <a class="code" href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8ac9b8b24a75e4e325a49e3730b8e3c5ed">kXMP_Char16BitMask</a>,</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160; <a class="code" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea19b97b941d6586031190025225ee0eaa">kXMP_Char16BitLittle</a> = <a class="code" href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8ac9b8b24a75e4e325a49e3730b8e3c5ed">kXMP_Char16BitMask</a> | <a class="code" href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8a0bcf31bfc6bd3bbd5f80ef25f21b4391">kXMP_CharLittleEndianMask</a>,</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160; <a class="code" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea87f8231aec6dd125baf77c9f3f918fbc">kXMP_Char32BitBig</a> = <a class="code" href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8a705cebe9f5f6700f039a153d394b4f2a">kXMP_Char32BitMask</a>,</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160; <a class="code" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea859e7aa88e7dfd3f55ad2b6445a4708e">kXMP_Char32BitLittle</a> = <a class="code" href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8a705cebe9f5f6700f039a153d394b4f2a">kXMP_Char32BitMask</a> | <a class="code" href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8a0bcf31bfc6bd3bbd5f80ef25f21b4391">kXMP_CharLittleEndianMask</a>,</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160; <a class="code" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea6c37f0724299a9c88e2f622d3246d63b">kXMP_CharUnknown</a> = 1</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;};</div><div class="ttc" id="XMP__Const_8h_html_a05589fbab0657f08285ebdfe93f5ec9ea6c37f0724299a9c88e2f622d3246d63b"><div class="ttname"><a href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea6c37f0724299a9c88e2f622d3246d63b">kXMP_CharUnknown</a></div><div class="ttdoc">Variable or not-yet-known cases. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01015">XMP_Const.h:1015</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_ac36f475ca5b446f4fde4c9b90bec77c8a705cebe9f5f6700f039a153d394b4f2a"><div class="ttname"><a href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8a705cebe9f5f6700f039a153d394b4f2a">kXMP_Char32BitMask</a></div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00999">XMP_Const.h:999</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a05589fbab0657f08285ebdfe93f5ec9ea19b97b941d6586031190025225ee0eaa"><div class="ttname"><a href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea19b97b941d6586031190025225ee0eaa">kXMP_Char16BitLittle</a></div><div class="ttdoc">16-bit little-endian </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01009">XMP_Const.h:1009</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a05589fbab0657f08285ebdfe93f5ec9eaf5b20dd9abbef29169a362b265049637"><div class="ttname"><a href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9eaf5b20dd9abbef29169a362b265049637">kXMP_Char8Bit</a></div><div class="ttdoc">8-bit </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01005">XMP_Const.h:1005</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a05589fbab0657f08285ebdfe93f5ec9ea859e7aa88e7dfd3f55ad2b6445a4708e"><div class="ttname"><a href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea859e7aa88e7dfd3f55ad2b6445a4708e">kXMP_Char32BitLittle</a></div><div class="ttdoc">32-bit little-endian </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01013">XMP_Const.h:1013</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_ac36f475ca5b446f4fde4c9b90bec77c8a0bcf31bfc6bd3bbd5f80ef25f21b4391"><div class="ttname"><a href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8a0bcf31bfc6bd3bbd5f80ef25f21b4391">kXMP_CharLittleEndianMask</a></div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00997">XMP_Const.h:997</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_ac36f475ca5b446f4fde4c9b90bec77c8ac9b8b24a75e4e325a49e3730b8e3c5ed"><div class="ttname"><a href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8ac9b8b24a75e4e325a49e3730b8e3c5ed">kXMP_Char16BitMask</a></div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00998">XMP_Const.h:998</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a05589fbab0657f08285ebdfe93f5ec9ea87f8231aec6dd125baf77c9f3f918fbc"><div class="ttname"><a href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea87f8231aec6dd125baf77c9f3f918fbc">kXMP_Char32BitBig</a></div><div class="ttdoc">32-bit big-endian </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01011">XMP_Const.h:1011</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a05589fbab0657f08285ebdfe93f5ec9ea0966bca9b241646f6a730f96c5c14a2d"><div class="ttname"><a href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea0966bca9b241646f6a730f96c5c14a2d">kXMP_Char16BitBig</a></div><div class="ttdoc">16-bit big-endian </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01007">XMP_Const.h:1007</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a16af7b253440dadd46a80a4b9fddba4d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -1965,21 +3341,21 @@ typedef XMP_Bool(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>XMPFile
<td class="memname">anonymous enum</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p>Version of the <a class="el" href="structXMP__PacketInfo.html" title="XMP packet description.">XMP_PacketInfo</a> type. </p>
-<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
-<tr><td valign="top"><em><a class="anchor" id="a16af7b253440dadd46a80a4b9fddba4da767b4847575a8de28e691be660d43817"></a><!-- doxytag: member="kXMP_PacketInfoVersion" ref="a16af7b253440dadd46a80a4b9fddba4da767b4847575a8de28e691be660d43817" args="" -->kXMP_PacketInfoVersion</em>&nbsp;</td><td>
-<p>Version of the <a class="el" href="structXMP__PacketInfo.html" title="XMP packet description.">XMP_PacketInfo</a> type. </p>
+<p>Version of the <a class="el" href="structXMP__PacketInfo.html" title="XMP packet description. ">XMP_PacketInfo</a> type. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a16af7b253440dadd46a80a4b9fddba4da767b4847575a8de28e691be660d43817"></a>kXMP_PacketInfoVersion&#160;</td><td class="fielddoc">
+<p>Version of the <a class="el" href="structXMP__PacketInfo.html" title="XMP packet description. ">XMP_PacketInfo</a> type. </p>
</td></tr>
</table>
-</dd>
-</dl>
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01094">1094</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160; {</div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160; <a class="code" href="XMP__Const_8h.html#a16af7b253440dadd46a80a4b9fddba4da767b4847575a8de28e691be660d43817">kXMP_PacketInfoVersion</a> = 3</div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;};</div><div class="ttc" id="XMP__Const_8h_html_a16af7b253440dadd46a80a4b9fddba4da767b4847575a8de28e691be660d43817"><div class="ttname"><a href="XMP__Const_8h.html#a16af7b253440dadd46a80a4b9fddba4da767b4847575a8de28e691be660d43817">kXMP_PacketInfoVersion</a></div><div class="ttdoc">Version of the XMP_PacketInfo type. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01096">XMP_Const.h:1096</a></div></div>
+</div><!-- fragment -->
</div>
</div>
-<a class="anchor" id="aba01db17f4a2bfbc3db60dc172972a25"></a><!-- doxytag: member="XMP_Const.h::@15" ref="aba01db17f4a2bfbc3db60dc172972a25" args="" -->
+<a class="anchor" id="aba01db17f4a2bfbc3db60dc172972a25"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -1987,24 +3363,25 @@ typedef XMP_Bool(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>XMPFile
<td class="memname">anonymous enum</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p>Option bit flags for <code><a class="el" href="classTXMPFiles.html#a0874bbbf41c9490abfb613bfe297327d" title="Initializes the XMPFiles library; must be called before creating an SXMPFiles object...">TXMPFiles::Initialize()</a></code>. </p>
-<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
-<tr><td valign="top"><em><a class="anchor" id="aba01db17f4a2bfbc3db60dc172972a25a9b9c1ef01e49193a167c40156df07b50"></a><!-- doxytag: member="kXMPFiles_IgnoreLocalText" ref="aba01db17f4a2bfbc3db60dc172972a25a9b9c1ef01e49193a167c40156df07b50" args="" -->kXMPFiles_IgnoreLocalText</em>&nbsp;</td><td>
+<p>Option bit flags for <code><a class="el" href="classTXMPFiles.html#a0874bbbf41c9490abfb613bfe297327d" title="Initializes the XMPFiles library; must be called before creating an SXMPFiles object. ">TXMPFiles::Initialize()</a></code>. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="aba01db17f4a2bfbc3db60dc172972a25a9b9c1ef01e49193a167c40156df07b50"></a>kXMPFiles_IgnoreLocalText&#160;</td><td class="fielddoc">
<p>Ignore non-XMP text that uses an undefined "local" encoding. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="aba01db17f4a2bfbc3db60dc172972a25aee2f09481347c29d6c06951b0d81e145"></a><!-- doxytag: member="kXMPFiles_ServerMode" ref="aba01db17f4a2bfbc3db60dc172972a25aee2f09481347c29d6c06951b0d81e145" args="" -->kXMPFiles_ServerMode</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="aba01db17f4a2bfbc3db60dc172972a25aee2f09481347c29d6c06951b0d81e145"></a>kXMPFiles_ServerMode&#160;</td><td class="fielddoc">
<p>Combination of flags necessary for server products using XMPFiles. </p>
</td></tr>
</table>
-</dd>
-</dl>
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01102">1102</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160; {</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160; <a class="code" href="XMP__Const_8h.html#aba01db17f4a2bfbc3db60dc172972a25a9b9c1ef01e49193a167c40156df07b50">kXMPFiles_IgnoreLocalText</a> = 0x0002,</div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160; <a class="code" href="XMP__Const_8h.html#aba01db17f4a2bfbc3db60dc172972a25aee2f09481347c29d6c06951b0d81e145">kXMPFiles_ServerMode</a> = <a class="code" href="XMP__Const_8h.html#aba01db17f4a2bfbc3db60dc172972a25a9b9c1ef01e49193a167c40156df07b50">kXMPFiles_IgnoreLocalText</a></div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;};</div><div class="ttc" id="XMP__Const_8h_html_aba01db17f4a2bfbc3db60dc172972a25aee2f09481347c29d6c06951b0d81e145"><div class="ttname"><a href="XMP__Const_8h.html#aba01db17f4a2bfbc3db60dc172972a25aee2f09481347c29d6c06951b0d81e145">kXMPFiles_ServerMode</a></div><div class="ttdoc">Combination of flags necessary for server products using XMPFiles. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01106">XMP_Const.h:1106</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_aba01db17f4a2bfbc3db60dc172972a25a9b9c1ef01e49193a167c40156df07b50"><div class="ttname"><a href="XMP__Const_8h.html#aba01db17f4a2bfbc3db60dc172972a25a9b9c1ef01e49193a167c40156df07b50">kXMPFiles_IgnoreLocalText</a></div><div class="ttdoc">Ignore non-XMP text that uses an undefined &quot;local&quot; encoding. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01104">XMP_Const.h:1104</a></div></div>
+</div><!-- fragment -->
</div>
</div>
-<a class="anchor" id="aaf105ae5beaca1dee30ae54530691fce"></a><!-- doxytag: member="XMP_Const.h::@16" ref="aaf105ae5beaca1dee30ae54530691fce" args="" -->
+<a class="anchor" id="aaf105ae5beaca1dee30ae54530691fce"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -2012,60 +3389,73 @@ typedef XMP_Bool(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>XMPFile
<td class="memname">anonymous enum</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p>Option bit flags for <code><a class="el" href="classTXMPFiles.html#acb9e16a1477ec67fa6da6d736a9bc131" title="GetFormatInfo() reports what features are supported for a specific file format.">TXMPFiles::GetFormatInfo()</a></code>. </p>
-<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
-<tr><td valign="top"><em><a class="anchor" id="aaf105ae5beaca1dee30ae54530691fcea23a3eb2a5e95292036a93ad6666fa388"></a><!-- doxytag: member="kXMPFiles_CanInjectXMP" ref="aaf105ae5beaca1dee30ae54530691fcea23a3eb2a5e95292036a93ad6666fa388" args="" -->kXMPFiles_CanInjectXMP</em>&nbsp;</td><td>
+<p>Option bit flags for <code><a class="el" href="classTXMPFiles.html#acb9e16a1477ec67fa6da6d736a9bc131" title="GetFormatInfo() reports what features are supported for a specific file format. ">TXMPFiles::GetFormatInfo()</a></code>. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="aaf105ae5beaca1dee30ae54530691fcea23a3eb2a5e95292036a93ad6666fa388"></a>kXMPFiles_CanInjectXMP&#160;</td><td class="fielddoc">
<p>Can inject first-time XMP into an existing file. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="aaf105ae5beaca1dee30ae54530691fcea126c9cc056f6569c424431edbcb9521c"></a><!-- doxytag: member="kXMPFiles_CanExpand" ref="aaf105ae5beaca1dee30ae54530691fcea126c9cc056f6569c424431edbcb9521c" args="" -->kXMPFiles_CanExpand</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="aaf105ae5beaca1dee30ae54530691fcea126c9cc056f6569c424431edbcb9521c"></a>kXMPFiles_CanExpand&#160;</td><td class="fielddoc">
<p>Can expand XMP or other metadata in an existing file. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="aaf105ae5beaca1dee30ae54530691fcea8957f1ef358b4ab3a1df519903f2ae07"></a><!-- doxytag: member="kXMPFiles_CanRewrite" ref="aaf105ae5beaca1dee30ae54530691fcea8957f1ef358b4ab3a1df519903f2ae07" args="" -->kXMPFiles_CanRewrite</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="aaf105ae5beaca1dee30ae54530691fcea8957f1ef358b4ab3a1df519903f2ae07"></a>kXMPFiles_CanRewrite&#160;</td><td class="fielddoc">
<p>Can copy one file to another, writing new metadata. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="aaf105ae5beaca1dee30ae54530691fceab55e1873e67048928de3fc47550678c3"></a><!-- doxytag: member="kXMPFiles_PrefersInPlace" ref="aaf105ae5beaca1dee30ae54530691fceab55e1873e67048928de3fc47550678c3" args="" -->kXMPFiles_PrefersInPlace</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="aaf105ae5beaca1dee30ae54530691fceab55e1873e67048928de3fc47550678c3"></a>kXMPFiles_PrefersInPlace&#160;</td><td class="fielddoc">
<p>Can expand, but prefers in-place update. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="aaf105ae5beaca1dee30ae54530691fceafc2bc7cfdd28a326788d563ec0357694"></a><!-- doxytag: member="kXMPFiles_CanReconcile" ref="aaf105ae5beaca1dee30ae54530691fceafc2bc7cfdd28a326788d563ec0357694" args="" -->kXMPFiles_CanReconcile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="aaf105ae5beaca1dee30ae54530691fceafc2bc7cfdd28a326788d563ec0357694"></a>kXMPFiles_CanReconcile&#160;</td><td class="fielddoc">
<p>Supports reconciliation between XMP and other forms. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="aaf105ae5beaca1dee30ae54530691fcea4a183c3ec4994cf09993e5b31dee9733"></a><!-- doxytag: member="kXMPFiles_AllowsOnlyXMP" ref="aaf105ae5beaca1dee30ae54530691fcea4a183c3ec4994cf09993e5b31dee9733" args="" -->kXMPFiles_AllowsOnlyXMP</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="aaf105ae5beaca1dee30ae54530691fcea4a183c3ec4994cf09993e5b31dee9733"></a>kXMPFiles_AllowsOnlyXMP&#160;</td><td class="fielddoc">
<p>Allows access to just the XMP, ignoring other forms. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="aaf105ae5beaca1dee30ae54530691fceadb116eed738d1fcdfe4ab9c1635e08ea"></a><!-- doxytag: member="kXMPFiles_ReturnsRawPacket" ref="aaf105ae5beaca1dee30ae54530691fceadb116eed738d1fcdfe4ab9c1635e08ea" args="" -->kXMPFiles_ReturnsRawPacket</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="aaf105ae5beaca1dee30ae54530691fceadb116eed738d1fcdfe4ab9c1635e08ea"></a>kXMPFiles_ReturnsRawPacket&#160;</td><td class="fielddoc">
<p>File handler returns raw XMP packet information. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="aaf105ae5beaca1dee30ae54530691fceafc2c5b585e698ebf24a9379de35954b4"></a><!-- doxytag: member="kXMPFiles_HandlerOwnsFile" ref="aaf105ae5beaca1dee30ae54530691fceafc2c5b585e698ebf24a9379de35954b4" args="" -->kXMPFiles_HandlerOwnsFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="aaf105ae5beaca1dee30ae54530691fceafc2c5b585e698ebf24a9379de35954b4"></a>kXMPFiles_HandlerOwnsFile&#160;</td><td class="fielddoc">
<p>The file handler does the file open and close. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="aaf105ae5beaca1dee30ae54530691fcea9fe958d4ccde02516a3a267db63874cd"></a><!-- doxytag: member="kXMPFiles_AllowsSafeUpdate" ref="aaf105ae5beaca1dee30ae54530691fcea9fe958d4ccde02516a3a267db63874cd" args="" -->kXMPFiles_AllowsSafeUpdate</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="aaf105ae5beaca1dee30ae54530691fcea9fe958d4ccde02516a3a267db63874cd"></a>kXMPFiles_AllowsSafeUpdate&#160;</td><td class="fielddoc">
<p>The file handler allows crash-safe file updates. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="aaf105ae5beaca1dee30ae54530691fceaee13099f78018a5e1ce033266c27e999"></a><!-- doxytag: member="kXMPFiles_NeedsReadOnlyPacket" ref="aaf105ae5beaca1dee30ae54530691fceaee13099f78018a5e1ce033266c27e999" args="" -->kXMPFiles_NeedsReadOnlyPacket</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="aaf105ae5beaca1dee30ae54530691fceaee13099f78018a5e1ce033266c27e999"></a>kXMPFiles_NeedsReadOnlyPacket&#160;</td><td class="fielddoc">
<p>The file format needs the XMP packet to be read-only. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="aaf105ae5beaca1dee30ae54530691fcead3027b786992e2a4762a4fa37c92943c"></a><!-- doxytag: member="kXMPFiles_UsesSidecarXMP" ref="aaf105ae5beaca1dee30ae54530691fcead3027b786992e2a4762a4fa37c92943c" args="" -->kXMPFiles_UsesSidecarXMP</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="aaf105ae5beaca1dee30ae54530691fcead3027b786992e2a4762a4fa37c92943c"></a>kXMPFiles_UsesSidecarXMP&#160;</td><td class="fielddoc">
<p>The file handler uses a "sidecar" file for the XMP. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="aaf105ae5beaca1dee30ae54530691fceaa2a6a4b744b40055387234632b688fcd"></a><!-- doxytag: member="kXMPFiles_FolderBasedFormat" ref="aaf105ae5beaca1dee30ae54530691fceaa2a6a4b744b40055387234632b688fcd" args="" -->kXMPFiles_FolderBasedFormat</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="aaf105ae5beaca1dee30ae54530691fceaa2a6a4b744b40055387234632b688fcd"></a>kXMPFiles_FolderBasedFormat&#160;</td><td class="fielddoc">
<p>The format is folder oriented, for example the P2 video format. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="aaf105ae5beaca1dee30ae54530691fcea17578d45ae3c09a8d08189ea544052b1"></a><!-- doxytag: member="kXMPFiles_CanNotifyProgress" ref="aaf105ae5beaca1dee30ae54530691fcea17578d45ae3c09a8d08189ea544052b1" args="" -->kXMPFiles_CanNotifyProgress</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="aaf105ae5beaca1dee30ae54530691fcea17578d45ae3c09a8d08189ea544052b1"></a>kXMPFiles_CanNotifyProgress&#160;</td><td class="fielddoc">
<p>The file Handler is capable of notifying progress notifications. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="aaf105ae5beaca1dee30ae54530691fcea798c55f5144eedde76f8329a056210b2"></a><!-- doxytag: member="kXMPFiles_NeedsPreloading" ref="aaf105ae5beaca1dee30ae54530691fcea798c55f5144eedde76f8329a056210b2" args="" -->kXMPFiles_NeedsPreloading</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="aaf105ae5beaca1dee30ae54530691fcea798c55f5144eedde76f8329a056210b2"></a>kXMPFiles_NeedsPreloading&#160;</td><td class="fielddoc">
<p>The plugin handler is not capable for delay loading. </p>
</td></tr>
</table>
-</dd>
-</dl>
-</div>
-</div>
-<a class="anchor" id="a80155586fa275b28773c9b203f52caba"></a><!-- doxytag: member="XMP_Const.h::@17" ref="a80155586fa275b28773c9b203f52caba" args="" -->
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01110">1110</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160; {</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160; <a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea23a3eb2a5e95292036a93ad6666fa388">kXMPFiles_CanInjectXMP</a> = 0x00000001,</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;</div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160; <a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea126c9cc056f6569c424431edbcb9521c">kXMPFiles_CanExpand</a> = 0x00000002,</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;</div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160; <a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea8957f1ef358b4ab3a1df519903f2ae07">kXMPFiles_CanRewrite</a> = 0x00000004,</div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;</div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160; <a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceab55e1873e67048928de3fc47550678c3">kXMPFiles_PrefersInPlace</a> = 0x00000008,</div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;</div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160; <a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceafc2bc7cfdd28a326788d563ec0357694">kXMPFiles_CanReconcile</a> = 0x00000010,</div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;</div><div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160; <a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea4a183c3ec4994cf09993e5b31dee9733">kXMPFiles_AllowsOnlyXMP</a> = 0x00000020,</div><div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160;</div><div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160; <a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceadb116eed738d1fcdfe4ab9c1635e08ea">kXMPFiles_ReturnsRawPacket</a> = 0x00000040,</div><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;</div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160; <a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceafc2c5b585e698ebf24a9379de35954b4">kXMPFiles_HandlerOwnsFile</a> = 0x00000100,</div><div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160;</div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160; <a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea9fe958d4ccde02516a3a267db63874cd">kXMPFiles_AllowsSafeUpdate</a> = 0x00000200,</div><div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160;</div><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160; <a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceaee13099f78018a5e1ce033266c27e999">kXMPFiles_NeedsReadOnlyPacket</a> = 0x00000400,</div><div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160;</div><div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160; <a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcead3027b786992e2a4762a4fa37c92943c">kXMPFiles_UsesSidecarXMP</a> = 0x00000800,</div><div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160;</div><div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160; <a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceaa2a6a4b744b40055387234632b688fcd">kXMPFiles_FolderBasedFormat</a> = 0x00001000,</div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;</div><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160; <a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea17578d45ae3c09a8d08189ea544052b1">kXMPFiles_CanNotifyProgress</a> = 0x00002000,</div><div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160;</div><div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160; <a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea798c55f5144eedde76f8329a056210b2">kXMPFiles_NeedsPreloading</a> = 0x00004000,</div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;</div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;};</div><div class="ttc" id="XMP__Const_8h_html_aaf105ae5beaca1dee30ae54530691fceab55e1873e67048928de3fc47550678c3"><div class="ttname"><a href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceab55e1873e67048928de3fc47550678c3">kXMPFiles_PrefersInPlace</a></div><div class="ttdoc">Can expand, but prefers in-place update. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01122">XMP_Const.h:1122</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_aaf105ae5beaca1dee30ae54530691fcea126c9cc056f6569c424431edbcb9521c"><div class="ttname"><a href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea126c9cc056f6569c424431edbcb9521c">kXMPFiles_CanExpand</a></div><div class="ttdoc">Can expand XMP or other metadata in an existing file. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01116">XMP_Const.h:1116</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_aaf105ae5beaca1dee30ae54530691fcea17578d45ae3c09a8d08189ea544052b1"><div class="ttname"><a href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea17578d45ae3c09a8d08189ea544052b1">kXMPFiles_CanNotifyProgress</a></div><div class="ttdoc">The file Handler is capable of notifying progress notifications. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01149">XMP_Const.h:1149</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_aaf105ae5beaca1dee30ae54530691fcead3027b786992e2a4762a4fa37c92943c"><div class="ttname"><a href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcead3027b786992e2a4762a4fa37c92943c">kXMPFiles_UsesSidecarXMP</a></div><div class="ttdoc">The file handler uses a &quot;sidecar&quot; file for the XMP. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01143">XMP_Const.h:1143</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_aaf105ae5beaca1dee30ae54530691fcea8957f1ef358b4ab3a1df519903f2ae07"><div class="ttname"><a href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea8957f1ef358b4ab3a1df519903f2ae07">kXMPFiles_CanRewrite</a></div><div class="ttdoc">Can copy one file to another, writing new metadata. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01119">XMP_Const.h:1119</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_aaf105ae5beaca1dee30ae54530691fceafc2bc7cfdd28a326788d563ec0357694"><div class="ttname"><a href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceafc2bc7cfdd28a326788d563ec0357694">kXMPFiles_CanReconcile</a></div><div class="ttdoc">Supports reconciliation between XMP and other forms. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01125">XMP_Const.h:1125</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_aaf105ae5beaca1dee30ae54530691fcea23a3eb2a5e95292036a93ad6666fa388"><div class="ttname"><a href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea23a3eb2a5e95292036a93ad6666fa388">kXMPFiles_CanInjectXMP</a></div><div class="ttdoc">Can inject first-time XMP into an existing file. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01113">XMP_Const.h:1113</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_aaf105ae5beaca1dee30ae54530691fcea9fe958d4ccde02516a3a267db63874cd"><div class="ttname"><a href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea9fe958d4ccde02516a3a267db63874cd">kXMPFiles_AllowsSafeUpdate</a></div><div class="ttdoc">The file handler allows crash-safe file updates. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01137">XMP_Const.h:1137</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_aaf105ae5beaca1dee30ae54530691fcea4a183c3ec4994cf09993e5b31dee9733"><div class="ttname"><a href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea4a183c3ec4994cf09993e5b31dee9733">kXMPFiles_AllowsOnlyXMP</a></div><div class="ttdoc">Allows access to just the XMP, ignoring other forms. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01128">XMP_Const.h:1128</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_aaf105ae5beaca1dee30ae54530691fceafc2c5b585e698ebf24a9379de35954b4"><div class="ttname"><a href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceafc2c5b585e698ebf24a9379de35954b4">kXMPFiles_HandlerOwnsFile</a></div><div class="ttdoc">The file handler does the file open and close. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01134">XMP_Const.h:1134</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_aaf105ae5beaca1dee30ae54530691fceaee13099f78018a5e1ce033266c27e999"><div class="ttname"><a href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceaee13099f78018a5e1ce033266c27e999">kXMPFiles_NeedsReadOnlyPacket</a></div><div class="ttdoc">The file format needs the XMP packet to be read-only. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01140">XMP_Const.h:1140</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_aaf105ae5beaca1dee30ae54530691fceadb116eed738d1fcdfe4ab9c1635e08ea"><div class="ttname"><a href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceadb116eed738d1fcdfe4ab9c1635e08ea">kXMPFiles_ReturnsRawPacket</a></div><div class="ttdoc">File handler returns raw XMP packet information. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01131">XMP_Const.h:1131</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_aaf105ae5beaca1dee30ae54530691fcea798c55f5144eedde76f8329a056210b2"><div class="ttname"><a href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea798c55f5144eedde76f8329a056210b2">kXMPFiles_NeedsPreloading</a></div><div class="ttdoc">The plugin handler is not capable for delay loading. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01152">XMP_Const.h:1152</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_aaf105ae5beaca1dee30ae54530691fceaa2a6a4b744b40055387234632b688fcd"><div class="ttname"><a href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceaa2a6a4b744b40055387234632b688fcd">kXMPFiles_FolderBasedFormat</a></div><div class="ttdoc">The format is folder oriented, for example the P2 video format. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01146">XMP_Const.h:1146</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a80155586fa275b28773c9b203f52caba"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -2073,48 +3463,57 @@ typedef XMP_Bool(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>XMPFile
<td class="memname">anonymous enum</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p>Option bit flags for <code><a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb" title="OpenFile() opens a file for metadata access.">TXMPFiles::OpenFile()</a></code>. </p>
-<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
-<tr><td valign="top"><em><a class="anchor" id="a80155586fa275b28773c9b203f52cabaa4c61ec4ed571dbc5f1832ff6772320d2"></a><!-- doxytag: member="kXMPFiles_OpenForRead" ref="a80155586fa275b28773c9b203f52cabaa4c61ec4ed571dbc5f1832ff6772320d2" args="" -->kXMPFiles_OpenForRead</em>&nbsp;</td><td>
+<p>Option bit flags for <code><a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb" title="OpenFile() opens a file for metadata access. ">TXMPFiles::OpenFile()</a></code>. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a80155586fa275b28773c9b203f52cabaa4c61ec4ed571dbc5f1832ff6772320d2"></a>kXMPFiles_OpenForRead&#160;</td><td class="fielddoc">
<p>Open for read-only access. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a80155586fa275b28773c9b203f52cabaa91fa388b3888bcb6a68615537b66a49b"></a><!-- doxytag: member="kXMPFiles_OpenForUpdate" ref="a80155586fa275b28773c9b203f52cabaa91fa388b3888bcb6a68615537b66a49b" args="" -->kXMPFiles_OpenForUpdate</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a80155586fa275b28773c9b203f52cabaa91fa388b3888bcb6a68615537b66a49b"></a>kXMPFiles_OpenForUpdate&#160;</td><td class="fielddoc">
<p>Open for reading and writing. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a80155586fa275b28773c9b203f52cabaaa58279b2b1311242e7374117f455bb96"></a><!-- doxytag: member="kXMPFiles_OpenOnlyXMP" ref="a80155586fa275b28773c9b203f52cabaaa58279b2b1311242e7374117f455bb96" args="" -->kXMPFiles_OpenOnlyXMP</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a80155586fa275b28773c9b203f52cabaaa58279b2b1311242e7374117f455bb96"></a>kXMPFiles_OpenOnlyXMP&#160;</td><td class="fielddoc">
<p>Only the XMP is wanted, allows space/time optimizations. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a80155586fa275b28773c9b203f52cabaab8cbbeef0e99d246907a4375766e21a2"></a><!-- doxytag: member="kXMPFiles_ForceGivenHandler" ref="a80155586fa275b28773c9b203f52cabaab8cbbeef0e99d246907a4375766e21a2" args="" -->kXMPFiles_ForceGivenHandler</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a80155586fa275b28773c9b203f52cabaab8cbbeef0e99d246907a4375766e21a2"></a>kXMPFiles_ForceGivenHandler&#160;</td><td class="fielddoc">
<p>Force use of the given handler (format), do not even verify the format. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a80155586fa275b28773c9b203f52cabaa0bef4db2ecdaf82a85df9e9d417aab18"></a><!-- doxytag: member="kXMPFiles_OpenStrictly" ref="a80155586fa275b28773c9b203f52cabaa0bef4db2ecdaf82a85df9e9d417aab18" args="" -->kXMPFiles_OpenStrictly</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a80155586fa275b28773c9b203f52cabaa0bef4db2ecdaf82a85df9e9d417aab18"></a>kXMPFiles_OpenStrictly&#160;</td><td class="fielddoc">
<p>Be strict about only attempting to use the designated file handler, no fallback to other handlers. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a80155586fa275b28773c9b203f52cabaaf6332435c7fc89cb0b7381e13fe43646"></a><!-- doxytag: member="kXMPFiles_OpenUseSmartHandler" ref="a80155586fa275b28773c9b203f52cabaaf6332435c7fc89cb0b7381e13fe43646" args="" -->kXMPFiles_OpenUseSmartHandler</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a80155586fa275b28773c9b203f52cabaaf6332435c7fc89cb0b7381e13fe43646"></a>kXMPFiles_OpenUseSmartHandler&#160;</td><td class="fielddoc">
<p>Require the use of a smart handler. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a80155586fa275b28773c9b203f52cabaa77b47c63e579b28cbd25083ceb58c285"></a><!-- doxytag: member="kXMPFiles_OpenUsePacketScanning" ref="a80155586fa275b28773c9b203f52cabaa77b47c63e579b28cbd25083ceb58c285" args="" -->kXMPFiles_OpenUsePacketScanning</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a80155586fa275b28773c9b203f52cabaa77b47c63e579b28cbd25083ceb58c285"></a>kXMPFiles_OpenUsePacketScanning&#160;</td><td class="fielddoc">
<p>Force packet scanning, do not use a smart handler. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a80155586fa275b28773c9b203f52cabaa77f34b1873bb2584feabe26a2c8f1182"></a><!-- doxytag: member="kXMPFiles_OpenLimitedScanning" ref="a80155586fa275b28773c9b203f52cabaa77f34b1873bb2584feabe26a2c8f1182" args="" -->kXMPFiles_OpenLimitedScanning</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a80155586fa275b28773c9b203f52cabaa77f34b1873bb2584feabe26a2c8f1182"></a>kXMPFiles_OpenLimitedScanning&#160;</td><td class="fielddoc">
<p>Only packet scan files "known" to need scanning. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a80155586fa275b28773c9b203f52cabaa05acd568597f72b4812b432ea6cf606a"></a><!-- doxytag: member="kXMPFiles_OpenRepairFile" ref="a80155586fa275b28773c9b203f52cabaa05acd568597f72b4812b432ea6cf606a" args="" -->kXMPFiles_OpenRepairFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a80155586fa275b28773c9b203f52cabaa05acd568597f72b4812b432ea6cf606a"></a>kXMPFiles_OpenRepairFile&#160;</td><td class="fielddoc">
<p>Attempt to repair a file opened for update, default is to not open (throw an exception). </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a80155586fa275b28773c9b203f52cabaaf5f2ebd401758a14dc52c5ee403303b5"></a><!-- doxytag: member="kXMPFiles_OptimizeFileLayout" ref="a80155586fa275b28773c9b203f52cabaaf5f2ebd401758a14dc52c5ee403303b5" args="" -->kXMPFiles_OptimizeFileLayout</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a80155586fa275b28773c9b203f52cabaaf5f2ebd401758a14dc52c5ee403303b5"></a>kXMPFiles_OptimizeFileLayout&#160;</td><td class="fielddoc">
<p>When updating a file, spend the effort necessary to optimize file layout. </p>
</td></tr>
</table>
-</dd>
-</dl>
-</div>
-</div>
-<a class="anchor" id="a6b7b47dd702d9e331586d485013fd1ea"></a><!-- doxytag: member="XMP_Const.h::@18" ref="a6b7b47dd702d9e331586d485013fd1ea" args="" -->
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01157">1157</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160; {</div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;</div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160; <a class="code" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa4c61ec4ed571dbc5f1832ff6772320d2">kXMPFiles_OpenForRead</a> = 0x00000001,</div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;</div><div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160; <a class="code" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa91fa388b3888bcb6a68615537b66a49b">kXMPFiles_OpenForUpdate</a> = 0x00000002,</div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;</div><div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160; <a class="code" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaa58279b2b1311242e7374117f455bb96">kXMPFiles_OpenOnlyXMP</a> = 0x00000004,</div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;</div><div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160; <a class="code" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaab8cbbeef0e99d246907a4375766e21a2">kXMPFiles_ForceGivenHandler</a> = 0x00000008,</div><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160; </div><div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160; <a class="code" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa0bef4db2ecdaf82a85df9e9d417aab18">kXMPFiles_OpenStrictly</a> = 0x00000010,</div><div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;</div><div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160; <a class="code" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaf6332435c7fc89cb0b7381e13fe43646">kXMPFiles_OpenUseSmartHandler</a> = 0x00000020,</div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;</div><div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160; <a class="code" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa77b47c63e579b28cbd25083ceb58c285">kXMPFiles_OpenUsePacketScanning</a> = 0x00000040,</div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;</div><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160; <a class="code" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa77f34b1873bb2584feabe26a2c8f1182">kXMPFiles_OpenLimitedScanning</a> = 0x00000080,</div><div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;</div><div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160; <a class="code" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa05acd568597f72b4812b432ea6cf606a">kXMPFiles_OpenRepairFile</a> = 0x00000100,</div><div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;</div><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160; <a class="code" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaf5f2ebd401758a14dc52c5ee403303b5">kXMPFiles_OptimizeFileLayout</a> = 0x00000200</div><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;</div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;};</div><div class="ttc" id="XMP__Const_8h_html_a80155586fa275b28773c9b203f52cabaa0bef4db2ecdaf82a85df9e9d417aab18"><div class="ttname"><a href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa0bef4db2ecdaf82a85df9e9d417aab18">kXMPFiles_OpenStrictly</a></div><div class="ttdoc">Be strict about only attempting to use the designated file handler, no fallback to other handlers...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01172">XMP_Const.h:1172</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a80155586fa275b28773c9b203f52cabaa77f34b1873bb2584feabe26a2c8f1182"><div class="ttname"><a href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa77f34b1873bb2584feabe26a2c8f1182">kXMPFiles_OpenLimitedScanning</a></div><div class="ttdoc">Only packet scan files &quot;known&quot; to need scanning. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01181">XMP_Const.h:1181</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a80155586fa275b28773c9b203f52cabaaa58279b2b1311242e7374117f455bb96"><div class="ttname"><a href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaa58279b2b1311242e7374117f455bb96">kXMPFiles_OpenOnlyXMP</a></div><div class="ttdoc">Only the XMP is wanted, allows space/time optimizations. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01166">XMP_Const.h:1166</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a80155586fa275b28773c9b203f52cabaa4c61ec4ed571dbc5f1832ff6772320d2"><div class="ttname"><a href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa4c61ec4ed571dbc5f1832ff6772320d2">kXMPFiles_OpenForRead</a></div><div class="ttdoc">Open for read-only access. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01160">XMP_Const.h:1160</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a80155586fa275b28773c9b203f52cabaaf5f2ebd401758a14dc52c5ee403303b5"><div class="ttname"><a href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaf5f2ebd401758a14dc52c5ee403303b5">kXMPFiles_OptimizeFileLayout</a></div><div class="ttdoc">When updating a file, spend the effort necessary to optimize file layout. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01187">XMP_Const.h:1187</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a80155586fa275b28773c9b203f52cabaa77b47c63e579b28cbd25083ceb58c285"><div class="ttname"><a href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa77b47c63e579b28cbd25083ceb58c285">kXMPFiles_OpenUsePacketScanning</a></div><div class="ttdoc">Force packet scanning, do not use a smart handler. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01178">XMP_Const.h:1178</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a80155586fa275b28773c9b203f52cabaab8cbbeef0e99d246907a4375766e21a2"><div class="ttname"><a href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaab8cbbeef0e99d246907a4375766e21a2">kXMPFiles_ForceGivenHandler</a></div><div class="ttdoc">Force use of the given handler (format), do not even verify the format. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01169">XMP_Const.h:1169</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a80155586fa275b28773c9b203f52cabaa05acd568597f72b4812b432ea6cf606a"><div class="ttname"><a href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa05acd568597f72b4812b432ea6cf606a">kXMPFiles_OpenRepairFile</a></div><div class="ttdoc">Attempt to repair a file opened for update, default is to not open (throw an exception). </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01184">XMP_Const.h:1184</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a80155586fa275b28773c9b203f52cabaa91fa388b3888bcb6a68615537b66a49b"><div class="ttname"><a href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa91fa388b3888bcb6a68615537b66a49b">kXMPFiles_OpenForUpdate</a></div><div class="ttdoc">Open for reading and writing. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01163">XMP_Const.h:1163</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a80155586fa275b28773c9b203f52cabaaf6332435c7fc89cb0b7381e13fe43646"><div class="ttname"><a href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaf6332435c7fc89cb0b7381e13fe43646">kXMPFiles_OpenUseSmartHandler</a></div><div class="ttdoc">Require the use of a smart handler. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01175">XMP_Const.h:1175</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a6b7b47dd702d9e331586d485013fd1ea"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -2122,21 +3521,21 @@ typedef XMP_Bool(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>XMPFile
<td class="memname">anonymous enum</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p>Option bit flags for <code><a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927" title="CloseFile() explicitly closes an opened file.">TXMPFiles::CloseFile()</a></code>. </p>
-<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
-<tr><td valign="top"><em><a class="anchor" id="a6b7b47dd702d9e331586d485013fd1eaadbf8d744f355ef9800a4ec44325baf54"></a><!-- doxytag: member="kXMPFiles_UpdateSafely" ref="a6b7b47dd702d9e331586d485013fd1eaadbf8d744f355ef9800a4ec44325baf54" args="" -->kXMPFiles_UpdateSafely</em>&nbsp;</td><td>
+<p>Option bit flags for <code><a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927" title="CloseFile() explicitly closes an opened file. ">TXMPFiles::CloseFile()</a></code>. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a6b7b47dd702d9e331586d485013fd1eaadbf8d744f355ef9800a4ec44325baf54"></a>kXMPFiles_UpdateSafely&#160;</td><td class="fielddoc">
<p>Write into a temporary file and swap for crash safety. </p>
</td></tr>
</table>
-</dd>
-</dl>
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01192">1192</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160; {</div><div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160; <a class="code" href="XMP__Const_8h.html#a6b7b47dd702d9e331586d485013fd1eaadbf8d744f355ef9800a4ec44325baf54">kXMPFiles_UpdateSafely</a> = 0x0001</div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;};</div><div class="ttc" id="XMP__Const_8h_html_a6b7b47dd702d9e331586d485013fd1eaadbf8d744f355ef9800a4ec44325baf54"><div class="ttname"><a href="XMP__Const_8h.html#a6b7b47dd702d9e331586d485013fd1eaadbf8d744f355ef9800a4ec44325baf54">kXMPFiles_UpdateSafely</a></div><div class="ttdoc">Write into a temporary file and swap for crash safety. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01194">XMP_Const.h:1194</a></div></div>
+</div><!-- fragment -->
</div>
</div>
-<a class="anchor" id="af9bdc3014f3d54c426b6d2df10de4960"></a><!-- doxytag: member="XMP_Const.h::@19" ref="af9bdc3014f3d54c426b6d2df10de4960" args="" -->
+<a class="anchor" id="af9bdc3014f3d54c426b6d2df10de4960"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -2144,30 +3543,33 @@ typedef XMP_Bool(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>XMPFile
<td class="memname">anonymous enum</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>Severity codes for error notifications. </p>
-<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
-<tr><td valign="top"><em><a class="anchor" id="af9bdc3014f3d54c426b6d2df10de4960a068fdc8c88dcce62a7b42788a572af61"></a><!-- doxytag: member="kXMPErrSev_Recoverable" ref="af9bdc3014f3d54c426b6d2df10de4960a068fdc8c88dcce62a7b42788a572af61" args="" -->kXMPErrSev_Recoverable</em>&nbsp;</td><td>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="af9bdc3014f3d54c426b6d2df10de4960a068fdc8c88dcce62a7b42788a572af61"></a>kXMPErrSev_Recoverable&#160;</td><td class="fielddoc">
<p>Partial recovery and continuation is possible. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="af9bdc3014f3d54c426b6d2df10de4960afb962bdcf570af9aef4e32b5f279d1a4"></a><!-- doxytag: member="kXMPErrSev_OperationFatal" ref="af9bdc3014f3d54c426b6d2df10de4960afb962bdcf570af9aef4e32b5f279d1a4" args="" -->kXMPErrSev_OperationFatal</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="af9bdc3014f3d54c426b6d2df10de4960afb962bdcf570af9aef4e32b5f279d1a4"></a>kXMPErrSev_OperationFatal&#160;</td><td class="fielddoc">
<p>Recovery is not possible, an exception will be thrown aborting the API call. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="af9bdc3014f3d54c426b6d2df10de4960a2bd1ff3ba036640f0c76d68a03cf94f7"></a><!-- doxytag: member="kXMPErrSev_FileFatal" ref="af9bdc3014f3d54c426b6d2df10de4960a2bd1ff3ba036640f0c76d68a03cf94f7" args="" -->kXMPErrSev_FileFatal</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="af9bdc3014f3d54c426b6d2df10de4960a2bd1ff3ba036640f0c76d68a03cf94f7"></a>kXMPErrSev_FileFatal&#160;</td><td class="fielddoc">
<p>Recovery is not possible, an exception will be thrown, the file is corrupt and possibly unusable. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="af9bdc3014f3d54c426b6d2df10de4960a768126806f8c7b7c107314610125deb3"></a><!-- doxytag: member="kXMPErrSev_ProcessFatal" ref="af9bdc3014f3d54c426b6d2df10de4960a768126806f8c7b7c107314610125deb3" args="" -->kXMPErrSev_ProcessFatal</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="af9bdc3014f3d54c426b6d2df10de4960a768126806f8c7b7c107314610125deb3"></a>kXMPErrSev_ProcessFatal&#160;</td><td class="fielddoc">
<p>Recovery is not possible, an exception will be thrown, the entire process should be aborted. </p>
</td></tr>
</table>
-</dd>
-</dl>
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01229">1229</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160; {</div><div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160; <a class="code" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a068fdc8c88dcce62a7b42788a572af61">kXMPErrSev_Recoverable</a> = 0,</div><div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160; <a class="code" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960afb962bdcf570af9aef4e32b5f279d1a4">kXMPErrSev_OperationFatal</a> = 1,</div><div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160; <a class="code" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a2bd1ff3ba036640f0c76d68a03cf94f7">kXMPErrSev_FileFatal</a> = 2,</div><div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160; <a class="code" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a768126806f8c7b7c107314610125deb3">kXMPErrSev_ProcessFatal</a> = 3</div><div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160;};</div><div class="ttc" id="XMP__Const_8h_html_af9bdc3014f3d54c426b6d2df10de4960afb962bdcf570af9aef4e32b5f279d1a4"><div class="ttname"><a href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960afb962bdcf570af9aef4e32b5f279d1a4">kXMPErrSev_OperationFatal</a></div><div class="ttdoc">Recovery is not possible, an exception will be thrown aborting the API call. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01233">XMP_Const.h:1233</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_af9bdc3014f3d54c426b6d2df10de4960a2bd1ff3ba036640f0c76d68a03cf94f7"><div class="ttname"><a href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a2bd1ff3ba036640f0c76d68a03cf94f7">kXMPErrSev_FileFatal</a></div><div class="ttdoc">Recovery is not possible, an exception will be thrown, the file is corrupt and possibly unusable...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01235">XMP_Const.h:1235</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_af9bdc3014f3d54c426b6d2df10de4960a068fdc8c88dcce62a7b42788a572af61"><div class="ttname"><a href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a068fdc8c88dcce62a7b42788a572af61">kXMPErrSev_Recoverable</a></div><div class="ttdoc">Partial recovery and continuation is possible. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01231">XMP_Const.h:1231</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_af9bdc3014f3d54c426b6d2df10de4960a768126806f8c7b7c107314610125deb3"><div class="ttname"><a href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a768126806f8c7b7c107314610125deb3">kXMPErrSev_ProcessFatal</a></div><div class="ttdoc">Recovery is not possible, an exception will be thrown, the entire process should be aborted...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01237">XMP_Const.h:1237</a></div></div>
+</div><!-- fragment -->
</div>
</div>
-<a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5"></a><!-- doxytag: member="XMP_Const.h::@2" ref="a99fb83031ce9923c84392b4e92f956b5" args="" -->
+<a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -2175,75 +3577,93 @@ typedef XMP_Bool(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>XMPFile
<td class="memname">anonymous enum</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p>Option bit flags for the <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta</a></code> property accessor functions. </p>
-<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
-<tr><td valign="top"><em><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5aab51f87b5c48f47f5cefb9e03293dafb"></a><!-- doxytag: member="kXMP_PropValueIsURI" ref="a99fb83031ce9923c84392b4e92f956b5aab51f87b5c48f47f5cefb9e03293dafb" args="" -->kXMP_PropValueIsURI</em>&nbsp;</td><td>
+<p>Option bit flags for the <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services. ">TXMPMeta</a></code> property accessor functions. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5aab51f87b5c48f47f5cefb9e03293dafb"></a>kXMP_PropValueIsURI&#160;</td><td class="fielddoc">
<p>The XML string form of the property value is a URI, use rdf:resource attribute. DISCOURAGED. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5a8e34a33a2eed56499d4f6f62da25d159"></a><!-- doxytag: member="kXMP_PropHasQualifiers" ref="a99fb83031ce9923c84392b4e92f956b5a8e34a33a2eed56499d4f6f62da25d159" args="" -->kXMP_PropHasQualifiers</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5a8e34a33a2eed56499d4f6f62da25d159"></a>kXMP_PropHasQualifiers&#160;</td><td class="fielddoc">
<p>The property has qualifiers, includes <code>rdf:type</code> and <code>xml:lang</code>. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5a30146ed5209f5c3eb4eeb1fd8e4fb9fe"></a><!-- doxytag: member="kXMP_PropIsQualifier" ref="a99fb83031ce9923c84392b4e92f956b5a30146ed5209f5c3eb4eeb1fd8e4fb9fe" args="" -->kXMP_PropIsQualifier</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5a30146ed5209f5c3eb4eeb1fd8e4fb9fe"></a>kXMP_PropIsQualifier&#160;</td><td class="fielddoc">
<p>This is a qualifier for some other property, includes <code>rdf:type</code> and <code>xml:lang</code>. Qualifiers can have arbitrary structure, and can themselves have qualifiers. If the qualifier itself has a structured value, this flag is only set for the top node of the qualifier's subtree. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5a3fa5ed87edc731bfb3817f58ba70a217"></a><!-- doxytag: member="kXMP_PropHasLang" ref="a99fb83031ce9923c84392b4e92f956b5a3fa5ed87edc731bfb3817f58ba70a217" args="" -->kXMP_PropHasLang</em>&nbsp;</td><td>
-<p>Implies <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a8e34a33a2eed56499d4f6f62da25d159" title="The property has qualifiers, includes rdf:type and xml:lang.">kXMP_PropHasQualifiers</a></code>, property has <code>xml:lang</code>. </p>
+<tr><td class="fieldname"><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5a3fa5ed87edc731bfb3817f58ba70a217"></a>kXMP_PropHasLang&#160;</td><td class="fielddoc">
+<p>Implies <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a8e34a33a2eed56499d4f6f62da25d159" title="The property has qualifiers, includes rdf:type and xml:lang. ">kXMP_PropHasQualifiers</a></code>, property has <code>xml:lang</code>. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5aeff16fdf167afc73db25b30b529bd9d5"></a><!-- doxytag: member="kXMP_PropHasType" ref="a99fb83031ce9923c84392b4e92f956b5aeff16fdf167afc73db25b30b529bd9d5" args="" -->kXMP_PropHasType</em>&nbsp;</td><td>
-<p>Implies <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a8e34a33a2eed56499d4f6f62da25d159" title="The property has qualifiers, includes rdf:type and xml:lang.">kXMP_PropHasQualifiers</a></code>, property has <code>rdf:type</code>. </p>
+<tr><td class="fieldname"><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5aeff16fdf167afc73db25b30b529bd9d5"></a>kXMP_PropHasType&#160;</td><td class="fielddoc">
+<p>Implies <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a8e34a33a2eed56499d4f6f62da25d159" title="The property has qualifiers, includes rdf:type and xml:lang. ">kXMP_PropHasQualifiers</a></code>, property has <code>rdf:type</code>. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e"></a><!-- doxytag: member="kXMP_PropValueIsStruct" ref="a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e" args="" -->kXMP_PropValueIsStruct</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e"></a>kXMP_PropValueIsStruct&#160;</td><td class="fielddoc">
<p>The value is a structure with nested fields. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5a9b7706e0f0716ac7546bdc24ffedd0bc"></a><!-- doxytag: member="kXMP_PropValueIsArray" ref="a99fb83031ce9923c84392b4e92f956b5a9b7706e0f0716ac7546bdc24ffedd0bc" args="" -->kXMP_PropValueIsArray</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5a9b7706e0f0716ac7546bdc24ffedd0bc"></a>kXMP_PropValueIsArray&#160;</td><td class="fielddoc">
<p>The value is an array (RDF alt/bag/seq). The "ArrayIs..." flags identify specific types of array; default is a general unordered array, serialized using an <code>rdf:Bag</code> container. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5a0d70c23394c0676657c89de5491192c0"></a><!-- doxytag: member="kXMP_PropArrayIsUnordered" ref="a99fb83031ce9923c84392b4e92f956b5a0d70c23394c0676657c89de5491192c0" args="" -->kXMP_PropArrayIsUnordered</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5a0d70c23394c0676657c89de5491192c0"></a>kXMP_PropArrayIsUnordered&#160;</td><td class="fielddoc">
<p>The item order does not matter. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5af1cdb3b0a3e852ec55e747a1686aba04"></a><!-- doxytag: member="kXMP_PropArrayIsOrdered" ref="a99fb83031ce9923c84392b4e92f956b5af1cdb3b0a3e852ec55e747a1686aba04" args="" -->kXMP_PropArrayIsOrdered</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5af1cdb3b0a3e852ec55e747a1686aba04"></a>kXMP_PropArrayIsOrdered&#160;</td><td class="fielddoc">
<p>Implies <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a9b7706e0f0716ac7546bdc24ffedd0bc">kXMP_PropValueIsArray</a></code>, item order matters. It is serialized using an <code>rdf:Seq</code> container. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5a2596b1f0ea4600270c99102c86b5f1f1"></a><!-- doxytag: member="kXMP_PropArrayIsAlternate" ref="a99fb83031ce9923c84392b4e92f956b5a2596b1f0ea4600270c99102c86b5f1f1" args="" -->kXMP_PropArrayIsAlternate</em>&nbsp;</td><td>
-<p>Implies <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5af1cdb3b0a3e852ec55e747a1686aba04" title="Implies kXMP_PropValueIsArray, item order matters. It is serialized using an rdf:Seq...">kXMP_PropArrayIsOrdered</a></code>, items are alternates. It is serialized using an <code>rdf:Alt</code> container. </p>
+<tr><td class="fieldname"><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5a2596b1f0ea4600270c99102c86b5f1f1"></a>kXMP_PropArrayIsAlternate&#160;</td><td class="fielddoc">
+<p>Implies <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5af1cdb3b0a3e852ec55e747a1686aba04" title="Implies kXMP_PropValueIsArray, item order matters. It is serialized using an rdf:Seq container...">kXMP_PropArrayIsOrdered</a></code>, items are alternates. It is serialized using an <code>rdf:Alt</code> container. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5aba253f67a6cf44b7438a3f96b516846d"></a><!-- doxytag: member="kXMP_PropArrayIsAltText" ref="a99fb83031ce9923c84392b4e92f956b5aba253f67a6cf44b7438a3f96b516846d" args="" -->kXMP_PropArrayIsAltText</em>&nbsp;</td><td>
-<p>Implies <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a2596b1f0ea4600270c99102c86b5f1f1" title="Implies kXMP_PropArrayIsOrdered, items are alternates. It is serialized using an...">kXMP_PropArrayIsAlternate</a></code>, items are localized text. Each array element is a simple property with an <code>xml:lang</code> attribute. </p>
+<tr><td class="fieldname"><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5aba253f67a6cf44b7438a3f96b516846d"></a>kXMP_PropArrayIsAltText&#160;</td><td class="fielddoc">
+<p>Implies <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a2596b1f0ea4600270c99102c86b5f1f1" title="Implies kXMP_PropArrayIsOrdered, items are alternates. It is serialized using an rdf:Alt container...">kXMP_PropArrayIsAlternate</a></code>, items are localized text. Each array element is a simple property with an <code>xml:lang</code> attribute. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5ab975c19fb5c50f732a1a0d84dadb7c37"></a><!-- doxytag: member="kXMP_PropIsAlias" ref="a99fb83031ce9923c84392b4e92f956b5ab975c19fb5c50f732a1a0d84dadb7c37" args="" -->kXMP_PropIsAlias</em>&nbsp;</td><td>
-<p>This property is an alias name for another property. This is only returned by <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">TXMPMeta::GetProperty()</a></code> and then only if the property name is simple, not an path expression. </p>
+<tr><td class="fieldname"><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5ab975c19fb5c50f732a1a0d84dadb7c37"></a>kXMP_PropIsAlias&#160;</td><td class="fielddoc">
+<p>This property is an alias name for another property. This is only returned by <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">TXMPMeta::GetProperty()</a></code> and then only if the property name is simple, not an path expression. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5a1f819ef281d1f52c4c12d5d02f49d3f0"></a><!-- doxytag: member="kXMP_PropHasAliases" ref="a99fb83031ce9923c84392b4e92f956b5a1f819ef281d1f52c4c12d5d02f49d3f0" args="" -->kXMP_PropHasAliases</em>&nbsp;</td><td>
-<p>This property is the base value (actual) for a set of aliases.This is only returned by <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">TXMPMeta::GetProperty()</a></code> and then only if the property name is simple, not an path expression. </p>
+<tr><td class="fieldname"><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5a1f819ef281d1f52c4c12d5d02f49d3f0"></a>kXMP_PropHasAliases&#160;</td><td class="fielddoc">
+<p>This property is the base value (actual) for a set of aliases.This is only returned by <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">TXMPMeta::GetProperty()</a></code> and then only if the property name is simple, not an path expression. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5a48097c6ea309f240965d77ab564a5464"></a><!-- doxytag: member="kXMP_PropIsInternal" ref="a99fb83031ce9923c84392b4e92f956b5a48097c6ea309f240965d77ab564a5464" args="" -->kXMP_PropIsInternal</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5a48097c6ea309f240965d77ab564a5464"></a>kXMP_PropIsInternal&#160;</td><td class="fielddoc">
<p>The value of this property is "owned" by the application, and should not generally be editable in a UI. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5a81dcd06251771a0ddee6c1e36128c65c"></a><!-- doxytag: member="kXMP_PropIsStable" ref="a99fb83031ce9923c84392b4e92f956b5a81dcd06251771a0ddee6c1e36128c65c" args="" -->kXMP_PropIsStable</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5a81dcd06251771a0ddee6c1e36128c65c"></a>kXMP_PropIsStable&#160;</td><td class="fielddoc">
<p>The value of this property is not derived from the document content. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5a0d898ea7f6b3db513bb24f8a6a285877"></a><!-- doxytag: member="kXMP_PropIsDerived" ref="a99fb83031ce9923c84392b4e92f956b5a0d898ea7f6b3db513bb24f8a6a285877" args="" -->kXMP_PropIsDerived</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5a0d898ea7f6b3db513bb24f8a6a285877"></a>kXMP_PropIsDerived&#160;</td><td class="fielddoc">
<p>The value of this property is derived from the document content. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5a6b5b5f4b869994b7390edc9589745e9f"></a><!-- doxytag: member="kXMP_PropArrayFormMask" ref="a99fb83031ce9923c84392b4e92f956b5a6b5b5f4b869994b7390edc9589745e9f" args="" -->kXMP_PropArrayFormMask</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5a6b5b5f4b869994b7390edc9589745e9f"></a>kXMP_PropArrayFormMask&#160;</td><td class="fielddoc">
<p>Property type bit-flag mask for all array types. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5a60a9f26fb66c2e65cf40d9bc44968956"></a><!-- doxytag: member="kXMP_PropCompositeMask" ref="a99fb83031ce9923c84392b4e92f956b5a60a9f26fb66c2e65cf40d9bc44968956" args="" -->kXMP_PropCompositeMask</em>&nbsp;</td><td>
-<p>Property type bit-flag mask for composite types (array and struct). </p>
+<tr><td class="fieldname"><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5a60a9f26fb66c2e65cf40d9bc44968956"></a>kXMP_PropCompositeMask&#160;</td><td class="fielddoc">
+<p>Property type bit-flag mask for composite types (array and struct) </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5ae154b58429b257b18963ba3503e67974"></a><!-- doxytag: member="kXMP_ImplReservedMask" ref="a99fb83031ce9923c84392b4e92f956b5ae154b58429b257b18963ba3503e67974" args="" -->kXMP_ImplReservedMask</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5ae154b58429b257b18963ba3503e67974"></a>kXMP_ImplReservedMask&#160;</td><td class="fielddoc">
<p>Mask for bits that are reserved for transient use by the implementation. </p>
</td></tr>
</table>
-</dd>
-</dl>
-</div>
-</div>
-<a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409"></a><!-- doxytag: member="XMP_Const.h::@20" ref="adb49720dc49f7d4e4cf9adbf2948e409" args="" -->
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00577">577</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; {</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aab51f87b5c48f47f5cefb9e03293dafb">kXMP_PropValueIsURI</a> = 0x00000002UL,</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160;</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <span class="comment">// ------------------------------------------------------</span></div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="comment">// Options relating to qualifiers attached to a property.</span></div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a8e34a33a2eed56499d4f6f62da25d159">kXMP_PropHasQualifiers</a> = 0x00000010UL,</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a30146ed5209f5c3eb4eeb1fd8e4fb9fe">kXMP_PropIsQualifier</a> = 0x00000020UL,</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a3fa5ed87edc731bfb3817f58ba70a217">kXMP_PropHasLang</a> = 0x00000040UL,</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aeff16fdf167afc73db25b30b529bd9d5">kXMP_PropHasType</a> = 0x00000080UL,</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; <span class="comment">// --------------------------------------------</span></div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; <span class="comment">// Options relating to the data structure form.</span></div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e">kXMP_PropValueIsStruct</a> = 0x00000100UL,</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160;</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a9b7706e0f0716ac7546bdc24ffedd0bc">kXMP_PropValueIsArray</a> = 0x00000200UL,</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160;</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a0d70c23394c0676657c89de5491192c0">kXMP_PropArrayIsUnordered</a> = <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a9b7706e0f0716ac7546bdc24ffedd0bc">kXMP_PropValueIsArray</a>,</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5af1cdb3b0a3e852ec55e747a1686aba04">kXMP_PropArrayIsOrdered</a> = 0x00000400UL,</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a2596b1f0ea4600270c99102c86b5f1f1">kXMP_PropArrayIsAlternate</a> = 0x00000800UL,</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <span class="comment">// ------------------------------------</span></div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; <span class="comment">// Additional struct and array options.</span></div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160;</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aba253f67a6cf44b7438a3f96b516846d">kXMP_PropArrayIsAltText</a> = 0x00001000UL,</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160;</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; <span class="comment">// kXMP_InsertBeforeItem = 0x00004000UL, ! Used by SetXyz functions.</span></div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; <span class="comment">// kXMP_InsertAfterItem = 0x00008000UL, ! Used by SetXyz functions.</span></div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; <span class="comment">// ----------------------------</span></div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; <span class="comment">// Other miscellaneous options.</span></div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160;</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5ab975c19fb5c50f732a1a0d84dadb7c37">kXMP_PropIsAlias</a> = 0x00010000UL,</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160;</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a1f819ef281d1f52c4c12d5d02f49d3f0">kXMP_PropHasAliases</a> = 0x00020000UL,</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160;</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a48097c6ea309f240965d77ab564a5464">kXMP_PropIsInternal</a> = 0x00040000UL,</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a81dcd06251771a0ddee6c1e36128c65c">kXMP_PropIsStable</a> = 0x00100000UL,</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160;</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a0d898ea7f6b3db513bb24f8a6a285877">kXMP_PropIsDerived</a> = 0x00200000UL,</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; <span class="comment">// kXMPUtil_AllowCommas = 0x10000000UL, ! Used by TXMPUtils::CatenateArrayItems and ::SeparateArrayItems.</span></div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; <span class="comment">// kXMP_DeleteExisting = 0x20000000UL, ! Used by TXMPMeta::SetXyz functions to delete any pre-existing property.</span></div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; <span class="comment">// kXMP_SchemaNode = 0x80000000UL, ! Returned by iterators - #define to avoid warnings</span></div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160;</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; <span class="comment">// ------------------------------</span></div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; <span class="comment">// Masks that are multiple flags.</span></div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160;</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a6b5b5f4b869994b7390edc9589745e9f">kXMP_PropArrayFormMask</a> = kXMP_PropValueIsArray | kXMP_PropArrayIsOrdered | kXMP_PropArrayIsAlternate | <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aba253f67a6cf44b7438a3f96b516846d">kXMP_PropArrayIsAltText</a>,</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a60a9f26fb66c2e65cf40d9bc44968956">kXMP_PropCompositeMask</a> = kXMP_PropValueIsStruct | <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a6b5b5f4b869994b7390edc9589745e9f">kXMP_PropArrayFormMask</a>,</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160;</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5ae154b58429b257b18963ba3503e67974">kXMP_ImplReservedMask</a> = 0x70000000L</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160;</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160;};</div><div class="ttc" id="XMP__Const_8h_html_a99fb83031ce9923c84392b4e92f956b5a2596b1f0ea4600270c99102c86b5f1f1"><div class="ttname"><a href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a2596b1f0ea4600270c99102c86b5f1f1">kXMP_PropArrayIsAlternate</a></div><div class="ttdoc">Implies kXMP_PropArrayIsOrdered, items are alternates. It is serialized using an rdf:Alt container...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00617">XMP_Const.h:617</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a99fb83031ce9923c84392b4e92f956b5a81dcd06251771a0ddee6c1e36128c65c"><div class="ttname"><a href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a81dcd06251771a0ddee6c1e36128c65c">kXMP_PropIsStable</a></div><div class="ttdoc">The value of this property is not derived from the document content. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00644">XMP_Const.h:644</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a99fb83031ce9923c84392b4e92f956b5a0d898ea7f6b3db513bb24f8a6a285877"><div class="ttname"><a href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a0d898ea7f6b3db513bb24f8a6a285877">kXMP_PropIsDerived</a></div><div class="ttdoc">The value of this property is derived from the document content. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00647">XMP_Const.h:647</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a99fb83031ce9923c84392b4e92f956b5a48097c6ea309f240965d77ab564a5464"><div class="ttname"><a href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a48097c6ea309f240965d77ab564a5464">kXMP_PropIsInternal</a></div><div class="ttdoc">The value of this property is &quot;owned&quot; by the application, and should not generally be editable in a U...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00641">XMP_Const.h:641</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a99fb83031ce9923c84392b4e92f956b5a1f819ef281d1f52c4c12d5d02f49d3f0"><div class="ttname"><a href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a1f819ef281d1f52c4c12d5d02f49d3f0">kXMP_PropHasAliases</a></div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00638">XMP_Const.h:638</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e"><div class="ttname"><a href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e">kXMP_PropValueIsStruct</a></div><div class="ttdoc">The value is a structure with nested fields. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00604">XMP_Const.h:604</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a99fb83031ce9923c84392b4e92f956b5a30146ed5209f5c3eb4eeb1fd8e4fb9fe"><div class="ttname"><a href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a30146ed5209f5c3eb4eeb1fd8e4fb9fe">kXMP_PropIsQualifier</a></div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00592">XMP_Const.h:592</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a99fb83031ce9923c84392b4e92f956b5a8e34a33a2eed56499d4f6f62da25d159"><div class="ttname"><a href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a8e34a33a2eed56499d4f6f62da25d159">kXMP_PropHasQualifiers</a></div><div class="ttdoc">The property has qualifiers, includes rdf:type and xml:lang. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00586">XMP_Const.h:586</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a99fb83031ce9923c84392b4e92f956b5a60a9f26fb66c2e65cf40d9bc44968956"><div class="ttname"><a href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a60a9f26fb66c2e65cf40d9bc44968956">kXMP_PropCompositeMask</a></div><div class="ttdoc">Property type bit-flag mask for composite types (array and struct) </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00660">XMP_Const.h:660</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a99fb83031ce9923c84392b4e92f956b5ae154b58429b257b18963ba3503e67974"><div class="ttname"><a href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5ae154b58429b257b18963ba3503e67974">kXMP_ImplReservedMask</a></div><div class="ttdoc">Mask for bits that are reserved for transient use by the implementation. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00663">XMP_Const.h:663</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a99fb83031ce9923c84392b4e92f956b5aab51f87b5c48f47f5cefb9e03293dafb"><div class="ttname"><a href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aab51f87b5c48f47f5cefb9e03293dafb">kXMP_PropValueIsURI</a></div><div class="ttdoc">The XML string form of the property value is a URI, use rdf:resource attribute. DISCOURAGED. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00580">XMP_Const.h:580</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a99fb83031ce9923c84392b4e92f956b5a0d70c23394c0676657c89de5491192c0"><div class="ttname"><a href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a0d70c23394c0676657c89de5491192c0">kXMP_PropArrayIsUnordered</a></div><div class="ttdoc">The item order does not matter. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00611">XMP_Const.h:611</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a99fb83031ce9923c84392b4e92f956b5a9b7706e0f0716ac7546bdc24ffedd0bc"><div class="ttname"><a href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a9b7706e0f0716ac7546bdc24ffedd0bc">kXMP_PropValueIsArray</a></div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00608">XMP_Const.h:608</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a99fb83031ce9923c84392b4e92f956b5aeff16fdf167afc73db25b30b529bd9d5"><div class="ttname"><a href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aeff16fdf167afc73db25b30b529bd9d5">kXMP_PropHasType</a></div><div class="ttdoc">Implies kXMP_PropHasQualifiers, property has rdf:type. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00598">XMP_Const.h:598</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a99fb83031ce9923c84392b4e92f956b5a3fa5ed87edc731bfb3817f58ba70a217"><div class="ttname"><a href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a3fa5ed87edc731bfb3817f58ba70a217">kXMP_PropHasLang</a></div><div class="ttdoc">Implies kXMP_PropHasQualifiers, property has xml:lang. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00595">XMP_Const.h:595</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a99fb83031ce9923c84392b4e92f956b5a6b5b5f4b869994b7390edc9589745e9f"><div class="ttname"><a href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a6b5b5f4b869994b7390edc9589745e9f">kXMP_PropArrayFormMask</a></div><div class="ttdoc">Property type bit-flag mask for all array types. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00657">XMP_Const.h:657</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a99fb83031ce9923c84392b4e92f956b5aba253f67a6cf44b7438a3f96b516846d"><div class="ttname"><a href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aba253f67a6cf44b7438a3f96b516846d">kXMP_PropArrayIsAltText</a></div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00624">XMP_Const.h:624</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a99fb83031ce9923c84392b4e92f956b5af1cdb3b0a3e852ec55e747a1686aba04"><div class="ttname"><a href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5af1cdb3b0a3e852ec55e747a1686aba04">kXMP_PropArrayIsOrdered</a></div><div class="ttdoc">Implies kXMP_PropValueIsArray, item order matters. It is serialized using an rdf:Seq container...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00614">XMP_Const.h:614</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a99fb83031ce9923c84392b4e92f956b5ab975c19fb5c50f732a1a0d84dadb7c37"><div class="ttname"><a href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5ab975c19fb5c50f732a1a0d84dadb7c37">kXMP_PropIsAlias</a></div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00634">XMP_Const.h:634</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -2251,160 +3671,206 @@ typedef XMP_Bool(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>XMPFile
<td class="memname">anonymous enum</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><a class="el" href="classXMP__Error.html" title="XMP Toolkit error, associates an error code with a descriptive error string.">XMP_Error</a> exception code constants. </p>
-<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409ae2aec0f3b8db282cbba40e4bcf746ba9"></a><!-- doxytag: member="kXMPErr_NoError" ref="adb49720dc49f7d4e4cf9adbf2948e409ae2aec0f3b8db282cbba40e4bcf746ba9" args="" -->kXMPErr_NoError</em>&nbsp;</td><td>
+<p><a class="el" href="classXMP__Error.html" title="XMP Toolkit error, associates an error code with a descriptive error string. ">XMP_Error</a> exception code constants. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409ae2aec0f3b8db282cbba40e4bcf746ba9"></a>kXMPErr_NoError&#160;</td><td class="fielddoc">
<p>Generic error codes. </p>
<p>No error </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a14813595824de97382fffeae7b6fe581"></a><!-- doxytag: member="kXMPErr_Unknown" ref="adb49720dc49f7d4e4cf9adbf2948e409a14813595824de97382fffeae7b6fe581" args="" -->kXMPErr_Unknown</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a14813595824de97382fffeae7b6fe581"></a>kXMPErr_Unknown&#160;</td><td class="fielddoc">
<p>Generic unknown error. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409acd9fa1b621efafd5b218e3a785cbeda1"></a><!-- doxytag: member="kXMPErr_TBD" ref="adb49720dc49f7d4e4cf9adbf2948e409acd9fa1b621efafd5b218e3a785cbeda1" args="" -->kXMPErr_TBD</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409acd9fa1b621efafd5b218e3a785cbeda1"></a>kXMPErr_TBD&#160;</td><td class="fielddoc">
<p>Generic undefined error. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409ac7ac408582c194cc723a24acb8b4e4c3"></a><!-- doxytag: member="kXMPErr_Unavailable" ref="adb49720dc49f7d4e4cf9adbf2948e409ac7ac408582c194cc723a24acb8b4e4c3" args="" -->kXMPErr_Unavailable</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409ac7ac408582c194cc723a24acb8b4e4c3"></a>kXMPErr_Unavailable&#160;</td><td class="fielddoc">
<p>Generic unavailable error. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a115f3d761d2cad952aab23f35cbdf3a1"></a><!-- doxytag: member="kXMPErr_BadObject" ref="adb49720dc49f7d4e4cf9adbf2948e409a115f3d761d2cad952aab23f35cbdf3a1" args="" -->kXMPErr_BadObject</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a115f3d761d2cad952aab23f35cbdf3a1"></a>kXMPErr_BadObject&#160;</td><td class="fielddoc">
<p>Generic bad object error. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a52d197a8b0af3c55f16958162a4132f1"></a><!-- doxytag: member="kXMPErr_BadParam" ref="adb49720dc49f7d4e4cf9adbf2948e409a52d197a8b0af3c55f16958162a4132f1" args="" -->kXMPErr_BadParam</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a52d197a8b0af3c55f16958162a4132f1"></a>kXMPErr_BadParam&#160;</td><td class="fielddoc">
<p>Generic bad parameter error. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a716956a038782e595ce61d3fbdd1a25a"></a><!-- doxytag: member="kXMPErr_BadValue" ref="adb49720dc49f7d4e4cf9adbf2948e409a716956a038782e595ce61d3fbdd1a25a" args="" -->kXMPErr_BadValue</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a716956a038782e595ce61d3fbdd1a25a"></a>kXMPErr_BadValue&#160;</td><td class="fielddoc">
<p>Generic bad value error. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a14bd6c24087d280c722c1a044eec27d6"></a><!-- doxytag: member="kXMPErr_AssertFailure" ref="adb49720dc49f7d4e4cf9adbf2948e409a14bd6c24087d280c722c1a044eec27d6" args="" -->kXMPErr_AssertFailure</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a14bd6c24087d280c722c1a044eec27d6"></a>kXMPErr_AssertFailure&#160;</td><td class="fielddoc">
<p>Generic assertion failure. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409aa856bb36a9742d8542b483e00fc6511b"></a><!-- doxytag: member="kXMPErr_EnforceFailure" ref="adb49720dc49f7d4e4cf9adbf2948e409aa856bb36a9742d8542b483e00fc6511b" args="" -->kXMPErr_EnforceFailure</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409aa856bb36a9742d8542b483e00fc6511b"></a>kXMPErr_EnforceFailure&#160;</td><td class="fielddoc">
<p>Generic enforcement failure. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a3de1ac8f4e4afb705d5a4654cb9579e2"></a><!-- doxytag: member="kXMPErr_Unimplemented" ref="adb49720dc49f7d4e4cf9adbf2948e409a3de1ac8f4e4afb705d5a4654cb9579e2" args="" -->kXMPErr_Unimplemented</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a3de1ac8f4e4afb705d5a4654cb9579e2"></a>kXMPErr_Unimplemented&#160;</td><td class="fielddoc">
<p>Generic unimplemented error. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a8babbd758d2c64fd04e85fa48e0675c0"></a><!-- doxytag: member="kXMPErr_InternalFailure" ref="adb49720dc49f7d4e4cf9adbf2948e409a8babbd758d2c64fd04e85fa48e0675c0" args="" -->kXMPErr_InternalFailure</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a8babbd758d2c64fd04e85fa48e0675c0"></a>kXMPErr_InternalFailure&#160;</td><td class="fielddoc">
<p>Generic internal failure. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a14342c486ddf394ebc110a446becbfa7"></a><!-- doxytag: member="kXMPErr_Deprecated" ref="adb49720dc49f7d4e4cf9adbf2948e409a14342c486ddf394ebc110a446becbfa7" args="" -->kXMPErr_Deprecated</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a14342c486ddf394ebc110a446becbfa7"></a>kXMPErr_Deprecated&#160;</td><td class="fielddoc">
<p>Generic deprecated error. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a82941dc15c6ccde6b8fb2f9cc85c2eeb"></a><!-- doxytag: member="kXMPErr_ExternalFailure" ref="adb49720dc49f7d4e4cf9adbf2948e409a82941dc15c6ccde6b8fb2f9cc85c2eeb" args="" -->kXMPErr_ExternalFailure</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a82941dc15c6ccde6b8fb2f9cc85c2eeb"></a>kXMPErr_ExternalFailure&#160;</td><td class="fielddoc">
<p>Generic external failure. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409ac4ba7b1a57629e4994a0f7a515d51195"></a><!-- doxytag: member="kXMPErr_UserAbort" ref="adb49720dc49f7d4e4cf9adbf2948e409ac4ba7b1a57629e4994a0f7a515d51195" args="" -->kXMPErr_UserAbort</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409ac4ba7b1a57629e4994a0f7a515d51195"></a>kXMPErr_UserAbort&#160;</td><td class="fielddoc">
<p>Generic user abort error. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a5322df07e2a7792824d2468c4837f1cb"></a><!-- doxytag: member="kXMPErr_StdException" ref="adb49720dc49f7d4e4cf9adbf2948e409a5322df07e2a7792824d2468c4837f1cb" args="" -->kXMPErr_StdException</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a5322df07e2a7792824d2468c4837f1cb"></a>kXMPErr_StdException&#160;</td><td class="fielddoc">
<p>Generic standard exception. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409aac7558097a1f5a0f99097199f1bf8ff4"></a><!-- doxytag: member="kXMPErr_UnknownException" ref="adb49720dc49f7d4e4cf9adbf2948e409aac7558097a1f5a0f99097199f1bf8ff4" args="" -->kXMPErr_UnknownException</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409aac7558097a1f5a0f99097199f1bf8ff4"></a>kXMPErr_UnknownException&#160;</td><td class="fielddoc">
<p>Generic unknown exception. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a69eb7fef422fbca62cdbc554afffd813"></a><!-- doxytag: member="kXMPErr_NoMemory" ref="adb49720dc49f7d4e4cf9adbf2948e409a69eb7fef422fbca62cdbc554afffd813" args="" -->kXMPErr_NoMemory</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a69eb7fef422fbca62cdbc554afffd813"></a>kXMPErr_NoMemory&#160;</td><td class="fielddoc">
<p>Generic out-of-memory error. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a5227060f282a86c8ea1a944107751dd1"></a><!-- doxytag: member="kXMPErr_ProgressAbort" ref="adb49720dc49f7d4e4cf9adbf2948e409a5227060f282a86c8ea1a944107751dd1" args="" -->kXMPErr_ProgressAbort</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a5227060f282a86c8ea1a944107751dd1"></a>kXMPErr_ProgressAbort&#160;</td><td class="fielddoc">
<p>Progress reporting callback requested abort. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a2bc66eec6ce830979089d5c336f75539"></a><!-- doxytag: member="kXMPErr_BadSchema" ref="adb49720dc49f7d4e4cf9adbf2948e409a2bc66eec6ce830979089d5c336f75539" args="" -->kXMPErr_BadSchema</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a2bc66eec6ce830979089d5c336f75539"></a>kXMPErr_BadSchema&#160;</td><td class="fielddoc">
<p>Bad schema parameter. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a3f1efec0aa5452f43c55c05aba616ef7"></a><!-- doxytag: member="kXMPErr_BadXPath" ref="adb49720dc49f7d4e4cf9adbf2948e409a3f1efec0aa5452f43c55c05aba616ef7" args="" -->kXMPErr_BadXPath</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a3f1efec0aa5452f43c55c05aba616ef7"></a>kXMPErr_BadXPath&#160;</td><td class="fielddoc">
<p>Bad XPath parameter. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a40ca77d98bd366442bb8d438c420a444"></a><!-- doxytag: member="kXMPErr_BadOptions" ref="adb49720dc49f7d4e4cf9adbf2948e409a40ca77d98bd366442bb8d438c420a444" args="" -->kXMPErr_BadOptions</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a40ca77d98bd366442bb8d438c420a444"></a>kXMPErr_BadOptions&#160;</td><td class="fielddoc">
<p>Bad options parameter. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a31adb57da79b4fb1f1f5f999ec740010"></a><!-- doxytag: member="kXMPErr_BadIndex" ref="adb49720dc49f7d4e4cf9adbf2948e409a31adb57da79b4fb1f1f5f999ec740010" args="" -->kXMPErr_BadIndex</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a31adb57da79b4fb1f1f5f999ec740010"></a>kXMPErr_BadIndex&#160;</td><td class="fielddoc">
<p>Bad index parameter. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a2584fc813bfcd9158b7adf28a3454bb9"></a><!-- doxytag: member="kXMPErr_BadIterPosition" ref="adb49720dc49f7d4e4cf9adbf2948e409a2584fc813bfcd9158b7adf28a3454bb9" args="" -->kXMPErr_BadIterPosition</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a2584fc813bfcd9158b7adf28a3454bb9"></a>kXMPErr_BadIterPosition&#160;</td><td class="fielddoc">
<p>Bad iteration position. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a052b1b525fba7da8c98be5c135f434b8"></a><!-- doxytag: member="kXMPErr_BadParse" ref="adb49720dc49f7d4e4cf9adbf2948e409a052b1b525fba7da8c98be5c135f434b8" args="" -->kXMPErr_BadParse</em>&nbsp;</td><td>
-<p>XML parsing error (deprecated). </p>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a052b1b525fba7da8c98be5c135f434b8"></a>kXMPErr_BadParse&#160;</td><td class="fielddoc">
+<p>XML parsing error (deprecated) </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409ac4f936ff6788ce17f6098b7cbda77ed9"></a><!-- doxytag: member="kXMPErr_BadSerialize" ref="adb49720dc49f7d4e4cf9adbf2948e409ac4f936ff6788ce17f6098b7cbda77ed9" args="" -->kXMPErr_BadSerialize</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409ac4f936ff6788ce17f6098b7cbda77ed9"></a>kXMPErr_BadSerialize&#160;</td><td class="fielddoc">
<p>Serialization error. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409aa0a05e07925d1f3daf5f36f6da0840f8"></a><!-- doxytag: member="kXMPErr_BadFileFormat" ref="adb49720dc49f7d4e4cf9adbf2948e409aa0a05e07925d1f3daf5f36f6da0840f8" args="" -->kXMPErr_BadFileFormat</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409aa0a05e07925d1f3daf5f36f6da0840f8"></a>kXMPErr_BadFileFormat&#160;</td><td class="fielddoc">
<p>File format error. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a10fa053f279fed01b075f34a70f11795"></a><!-- doxytag: member="kXMPErr_NoFileHandler" ref="adb49720dc49f7d4e4cf9adbf2948e409a10fa053f279fed01b075f34a70f11795" args="" -->kXMPErr_NoFileHandler</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a10fa053f279fed01b075f34a70f11795"></a>kXMPErr_NoFileHandler&#160;</td><td class="fielddoc">
<p>No file handler found for format. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409aa9c1c20e53db12b20068d830a8990c0b"></a><!-- doxytag: member="kXMPErr_TooLargeForJPEG" ref="adb49720dc49f7d4e4cf9adbf2948e409aa9c1c20e53db12b20068d830a8990c0b" args="" -->kXMPErr_TooLargeForJPEG</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409aa9c1c20e53db12b20068d830a8990c0b"></a>kXMPErr_TooLargeForJPEG&#160;</td><td class="fielddoc">
<p>Data too large for JPEG file format. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a2874a5dcddf253a17d75a147b2ed4933"></a><!-- doxytag: member="kXMPErr_NoFile" ref="adb49720dc49f7d4e4cf9adbf2948e409a2874a5dcddf253a17d75a147b2ed4933" args="" -->kXMPErr_NoFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a2874a5dcddf253a17d75a147b2ed4933"></a>kXMPErr_NoFile&#160;</td><td class="fielddoc">
<p>A file does not exist. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a577b0e80acf44125f0dc49e5885e0824"></a><!-- doxytag: member="kXMPErr_FilePermission" ref="adb49720dc49f7d4e4cf9adbf2948e409a577b0e80acf44125f0dc49e5885e0824" args="" -->kXMPErr_FilePermission</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a577b0e80acf44125f0dc49e5885e0824"></a>kXMPErr_FilePermission&#160;</td><td class="fielddoc">
<p>A file exists but cannot be opened. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409aa2f19dfd8ce27b5713c79e34f2052e40"></a><!-- doxytag: member="kXMPErr_DiskSpace" ref="adb49720dc49f7d4e4cf9adbf2948e409aa2f19dfd8ce27b5713c79e34f2052e40" args="" -->kXMPErr_DiskSpace</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409aa2f19dfd8ce27b5713c79e34f2052e40"></a>kXMPErr_DiskSpace&#160;</td><td class="fielddoc">
<p>A file write failed due to lack of disk space. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a2a17df0c0b690f5b7829bc4ca16efce2"></a><!-- doxytag: member="kXMPErr_ReadError" ref="adb49720dc49f7d4e4cf9adbf2948e409a2a17df0c0b690f5b7829bc4ca16efce2" args="" -->kXMPErr_ReadError</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a2a17df0c0b690f5b7829bc4ca16efce2"></a>kXMPErr_ReadError&#160;</td><td class="fielddoc">
<p>A file read failed. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409afca1d169d7e3cb3ba84c81700c1b9b22"></a><!-- doxytag: member="kXMPErr_WriteError" ref="adb49720dc49f7d4e4cf9adbf2948e409afca1d169d7e3cb3ba84c81700c1b9b22" args="" -->kXMPErr_WriteError</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409afca1d169d7e3cb3ba84c81700c1b9b22"></a>kXMPErr_WriteError&#160;</td><td class="fielddoc">
<p>A file write failed for a reason other than lack of disk space. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409aacc6262e9c1fd1a64e3d10cedfb7dcb1"></a><!-- doxytag: member="kXMPErr_BadBlockFormat" ref="adb49720dc49f7d4e4cf9adbf2948e409aacc6262e9c1fd1a64e3d10cedfb7dcb1" args="" -->kXMPErr_BadBlockFormat</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409aacc6262e9c1fd1a64e3d10cedfb7dcb1"></a>kXMPErr_BadBlockFormat&#160;</td><td class="fielddoc">
<p>A block of a file is ill-formed, e.g. invalid IPTC-IIM in a photo. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a0819111429c734ca5ef895c193846351"></a><!-- doxytag: member="kXMPErr_FilePathNotAFile" ref="adb49720dc49f7d4e4cf9adbf2948e409a0819111429c734ca5ef895c193846351" args="" -->kXMPErr_FilePathNotAFile</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a0819111429c734ca5ef895c193846351"></a>kXMPErr_FilePathNotAFile&#160;</td><td class="fielddoc">
<p>File Path is not a file. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409ad9d8c98663e3ead894841807ab4548f8"></a><!-- doxytag: member="kXMPErr_RejectedFileExtension" ref="adb49720dc49f7d4e4cf9adbf2948e409ad9d8c98663e3ead894841807ab4548f8" args="" -->kXMPErr_RejectedFileExtension</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409ad9d8c98663e3ead894841807ab4548f8"></a>kXMPErr_RejectedFileExtension&#160;</td><td class="fielddoc">
<p>Rejected File extension. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409ac57f1cf1c24778536fd32972e87334c5"></a><!-- doxytag: member="kXMPErr_BadXML" ref="adb49720dc49f7d4e4cf9adbf2948e409ac57f1cf1c24778536fd32972e87334c5" args="" -->kXMPErr_BadXML</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409ac57f1cf1c24778536fd32972e87334c5"></a>kXMPErr_BadXML&#160;</td><td class="fielddoc">
<p>XML format error. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a5464b823e619618d9aa58433cdb45a8e"></a><!-- doxytag: member="kXMPErr_BadRDF" ref="adb49720dc49f7d4e4cf9adbf2948e409a5464b823e619618d9aa58433cdb45a8e" args="" -->kXMPErr_BadRDF</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a5464b823e619618d9aa58433cdb45a8e"></a>kXMPErr_BadRDF&#160;</td><td class="fielddoc">
<p>RDF format error. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a211bb632ed1264d9e2236f35c6414821"></a><!-- doxytag: member="kXMPErr_BadXMP" ref="adb49720dc49f7d4e4cf9adbf2948e409a211bb632ed1264d9e2236f35c6414821" args="" -->kXMPErr_BadXMP</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a211bb632ed1264d9e2236f35c6414821"></a>kXMPErr_BadXMP&#160;</td><td class="fielddoc">
<p>XMP format error. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a078c69d0d76f25187a11981a2552b179"></a><!-- doxytag: member="kXMPErr_EmptyIterator" ref="adb49720dc49f7d4e4cf9adbf2948e409a078c69d0d76f25187a11981a2552b179" args="" -->kXMPErr_EmptyIterator</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a078c69d0d76f25187a11981a2552b179"></a>kXMPErr_EmptyIterator&#160;</td><td class="fielddoc">
<p>Empty iterator. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409ac4cf86fa29624c5e19111e09a97fe05f"></a><!-- doxytag: member="kXMPErr_BadUnicode" ref="adb49720dc49f7d4e4cf9adbf2948e409ac4cf86fa29624c5e19111e09a97fe05f" args="" -->kXMPErr_BadUnicode</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409ac4cf86fa29624c5e19111e09a97fe05f"></a>kXMPErr_BadUnicode&#160;</td><td class="fielddoc">
<p>Unicode error. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409aecd25299aa177de7bc7f3674fcf2e22d"></a><!-- doxytag: member="kXMPErr_BadTIFF" ref="adb49720dc49f7d4e4cf9adbf2948e409aecd25299aa177de7bc7f3674fcf2e22d" args="" -->kXMPErr_BadTIFF</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409aecd25299aa177de7bc7f3674fcf2e22d"></a>kXMPErr_BadTIFF&#160;</td><td class="fielddoc">
<p>TIFF format error. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409ad685e1f839e3bc53dfc55611a0803cee"></a><!-- doxytag: member="kXMPErr_BadJPEG" ref="adb49720dc49f7d4e4cf9adbf2948e409ad685e1f839e3bc53dfc55611a0803cee" args="" -->kXMPErr_BadJPEG</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409ad685e1f839e3bc53dfc55611a0803cee"></a>kXMPErr_BadJPEG&#160;</td><td class="fielddoc">
<p>JPEG format error. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409ad98fc9a9c050e9fc19c3af9c8abb2d6d"></a><!-- doxytag: member="kXMPErr_BadPSD" ref="adb49720dc49f7d4e4cf9adbf2948e409ad98fc9a9c050e9fc19c3af9c8abb2d6d" args="" -->kXMPErr_BadPSD</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409ad98fc9a9c050e9fc19c3af9c8abb2d6d"></a>kXMPErr_BadPSD&#160;</td><td class="fielddoc">
<p>PSD format error. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a1606a687cb790af16dc561b2a8f2e6a3"></a><!-- doxytag: member="kXMPErr_BadPSIR" ref="adb49720dc49f7d4e4cf9adbf2948e409a1606a687cb790af16dc561b2a8f2e6a3" args="" -->kXMPErr_BadPSIR</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a1606a687cb790af16dc561b2a8f2e6a3"></a>kXMPErr_BadPSIR&#160;</td><td class="fielddoc">
<p>PSIR format error. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a23b2d7cab10b3d80549e6b60855bb15e"></a><!-- doxytag: member="kXMPErr_BadIPTC" ref="adb49720dc49f7d4e4cf9adbf2948e409a23b2d7cab10b3d80549e6b60855bb15e" args="" -->kXMPErr_BadIPTC</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409a23b2d7cab10b3d80549e6b60855bb15e"></a>kXMPErr_BadIPTC&#160;</td><td class="fielddoc">
<p>IPTC format error. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409ad596daed4ac92f8bf7871669d03effad"></a><!-- doxytag: member="kXMPErr_BadMPEG" ref="adb49720dc49f7d4e4cf9adbf2948e409ad596daed4ac92f8bf7871669d03effad" args="" -->kXMPErr_BadMPEG</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adb49720dc49f7d4e4cf9adbf2948e409ad596daed4ac92f8bf7871669d03effad"></a>kXMPErr_BadMPEG&#160;</td><td class="fielddoc">
<p>MPEG format error. </p>
</td></tr>
</table>
-</dd>
-</dl>
-</div>
-</div>
-<a class="anchor" id="abc6126af1d45847bc59afa0aa3216b04"></a><!-- doxytag: member="XMP_Const.h::@3" ref="abc6126af1d45847bc59afa0aa3216b04" args="" -->
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01348">1348</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160; {</div><div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160;</div><div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160; <span class="comment">// --------------------</span></div><div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ae2aec0f3b8db282cbba40e4bcf746ba9">kXMPErr_NoError</a> = -1,</div><div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160;</div><div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14813595824de97382fffeae7b6fe581">kXMPErr_Unknown</a> = 0,</div><div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409acd9fa1b621efafd5b218e3a785cbeda1">kXMPErr_TBD</a> = 1,</div><div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac7ac408582c194cc723a24acb8b4e4c3">kXMPErr_Unavailable</a> = 2,</div><div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a115f3d761d2cad952aab23f35cbdf3a1">kXMPErr_BadObject</a> = 3,</div><div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a52d197a8b0af3c55f16958162a4132f1">kXMPErr_BadParam</a> = 4,</div><div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a716956a038782e595ce61d3fbdd1a25a">kXMPErr_BadValue</a> = 5,</div><div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14bd6c24087d280c722c1a044eec27d6">kXMPErr_AssertFailure</a> = 6,</div><div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa856bb36a9742d8542b483e00fc6511b">kXMPErr_EnforceFailure</a> = 7,</div><div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a3de1ac8f4e4afb705d5a4654cb9579e2">kXMPErr_Unimplemented</a> = 8,</div><div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a8babbd758d2c64fd04e85fa48e0675c0">kXMPErr_InternalFailure</a> = 9,</div><div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14342c486ddf394ebc110a446becbfa7">kXMPErr_Deprecated</a> = 10,</div><div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a82941dc15c6ccde6b8fb2f9cc85c2eeb">kXMPErr_ExternalFailure</a> = 11,</div><div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4ba7b1a57629e4994a0f7a515d51195">kXMPErr_UserAbort</a> = 12,</div><div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5322df07e2a7792824d2468c4837f1cb">kXMPErr_StdException</a> = 13,</div><div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aac7558097a1f5a0f99097199f1bf8ff4">kXMPErr_UnknownException</a> = 14,</div><div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a69eb7fef422fbca62cdbc554afffd813">kXMPErr_NoMemory</a> = 15,</div><div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5227060f282a86c8ea1a944107751dd1">kXMPErr_ProgressAbort</a> = 16,</div><div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160;</div><div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160; <span class="comment">// ------------------------------------</span></div><div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160; <span class="comment">// More specific parameter error codes.</span></div><div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160;</div><div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2bc66eec6ce830979089d5c336f75539">kXMPErr_BadSchema</a> = 101,</div><div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a3f1efec0aa5452f43c55c05aba616ef7">kXMPErr_BadXPath</a> = 102,</div><div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a40ca77d98bd366442bb8d438c420a444">kXMPErr_BadOptions</a> = 103,</div><div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a31adb57da79b4fb1f1f5f999ec740010">kXMPErr_BadIndex</a> = 104,</div><div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2584fc813bfcd9158b7adf28a3454bb9">kXMPErr_BadIterPosition</a> = 105,</div><div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a052b1b525fba7da8c98be5c135f434b8">kXMPErr_BadParse</a> = 106,</div><div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4f936ff6788ce17f6098b7cbda77ed9">kXMPErr_BadSerialize</a> = 107,</div><div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa0a05e07925d1f3daf5f36f6da0840f8">kXMPErr_BadFileFormat</a> = 108,</div><div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a10fa053f279fed01b075f34a70f11795">kXMPErr_NoFileHandler</a> = 109,</div><div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa9c1c20e53db12b20068d830a8990c0b">kXMPErr_TooLargeForJPEG</a> = 110,</div><div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2874a5dcddf253a17d75a147b2ed4933">kXMPErr_NoFile</a> = 111,</div><div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a577b0e80acf44125f0dc49e5885e0824">kXMPErr_FilePermission</a> = 112,</div><div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa2f19dfd8ce27b5713c79e34f2052e40">kXMPErr_DiskSpace</a> = 113,</div><div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2a17df0c0b690f5b7829bc4ca16efce2">kXMPErr_ReadError</a> = 114,</div><div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409afca1d169d7e3cb3ba84c81700c1b9b22">kXMPErr_WriteError</a> = 115,</div><div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aacc6262e9c1fd1a64e3d10cedfb7dcb1">kXMPErr_BadBlockFormat</a> = 116,</div><div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a0819111429c734ca5ef895c193846351">kXMPErr_FilePathNotAFile</a> = 117,</div><div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad9d8c98663e3ead894841807ab4548f8">kXMPErr_RejectedFileExtension</a> = 118,</div><div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160;</div><div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160; <span class="comment">// -----------------------------------------------</span></div><div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160; <span class="comment">// File format and internal structure error codes.</span></div><div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160;</div><div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac57f1cf1c24778536fd32972e87334c5">kXMPErr_BadXML</a> = 201,</div><div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5464b823e619618d9aa58433cdb45a8e">kXMPErr_BadRDF</a> = 202,</div><div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a211bb632ed1264d9e2236f35c6414821">kXMPErr_BadXMP</a> = 203,</div><div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a078c69d0d76f25187a11981a2552b179">kXMPErr_EmptyIterator</a> = 204,</div><div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4cf86fa29624c5e19111e09a97fe05f">kXMPErr_BadUnicode</a> = 205,</div><div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aecd25299aa177de7bc7f3674fcf2e22d">kXMPErr_BadTIFF</a> = 206,</div><div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad685e1f839e3bc53dfc55611a0803cee">kXMPErr_BadJPEG</a> = 207,</div><div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad98fc9a9c050e9fc19c3af9c8abb2d6d">kXMPErr_BadPSD</a> = 208,</div><div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a1606a687cb790af16dc561b2a8f2e6a3">kXMPErr_BadPSIR</a> = 209,</div><div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a23b2d7cab10b3d80549e6b60855bb15e">kXMPErr_BadIPTC</a> = 210,</div><div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad596daed4ac92f8bf7871669d03effad">kXMPErr_BadMPEG</a> = 211</div><div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>&#160;</div><div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>&#160;};</div><div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409aecd25299aa177de7bc7f3674fcf2e22d"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aecd25299aa177de7bc7f3674fcf2e22d">kXMPErr_BadTIFF</a></div><div class="ttdoc">TIFF format error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01445">XMP_Const.h:1445</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a211bb632ed1264d9e2236f35c6414821"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a211bb632ed1264d9e2236f35c6414821">kXMPErr_BadXMP</a></div><div class="ttdoc">XMP format error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01439">XMP_Const.h:1439</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409ac4ba7b1a57629e4994a0f7a515d51195"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4ba7b1a57629e4994a0f7a515d51195">kXMPErr_UserAbort</a></div><div class="ttdoc">Generic user abort error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01381">XMP_Const.h:1381</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a052b1b525fba7da8c98be5c135f434b8"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a052b1b525fba7da8c98be5c135f434b8">kXMPErr_BadParse</a></div><div class="ttdoc">XML parsing error (deprecated) </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01405">XMP_Const.h:1405</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409ad98fc9a9c050e9fc19c3af9c8abb2d6d"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad98fc9a9c050e9fc19c3af9c8abb2d6d">kXMPErr_BadPSD</a></div><div class="ttdoc">PSD format error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01449">XMP_Const.h:1449</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a31adb57da79b4fb1f1f5f999ec740010"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a31adb57da79b4fb1f1f5f999ec740010">kXMPErr_BadIndex</a></div><div class="ttdoc">Bad index parameter. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01401">XMP_Const.h:1401</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a078c69d0d76f25187a11981a2552b179"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a078c69d0d76f25187a11981a2552b179">kXMPErr_EmptyIterator</a></div><div class="ttdoc">Empty iterator. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01441">XMP_Const.h:1441</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409aa0a05e07925d1f3daf5f36f6da0840f8"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa0a05e07925d1f3daf5f36f6da0840f8">kXMPErr_BadFileFormat</a></div><div class="ttdoc">File format error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01409">XMP_Const.h:1409</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a14bd6c24087d280c722c1a044eec27d6"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14bd6c24087d280c722c1a044eec27d6">kXMPErr_AssertFailure</a></div><div class="ttdoc">Generic assertion failure. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01369">XMP_Const.h:1369</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a2584fc813bfcd9158b7adf28a3454bb9"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2584fc813bfcd9158b7adf28a3454bb9">kXMPErr_BadIterPosition</a></div><div class="ttdoc">Bad iteration position. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01403">XMP_Const.h:1403</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a3de1ac8f4e4afb705d5a4654cb9579e2"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a3de1ac8f4e4afb705d5a4654cb9579e2">kXMPErr_Unimplemented</a></div><div class="ttdoc">Generic unimplemented error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01373">XMP_Const.h:1373</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409acd9fa1b621efafd5b218e3a785cbeda1"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409acd9fa1b621efafd5b218e3a785cbeda1">kXMPErr_TBD</a></div><div class="ttdoc">Generic undefined error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01359">XMP_Const.h:1359</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409ad9d8c98663e3ead894841807ab4548f8"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad9d8c98663e3ead894841807ab4548f8">kXMPErr_RejectedFileExtension</a></div><div class="ttdoc">Rejected File extension. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01429">XMP_Const.h:1429</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a2874a5dcddf253a17d75a147b2ed4933"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2874a5dcddf253a17d75a147b2ed4933">kXMPErr_NoFile</a></div><div class="ttdoc">A file does not exist. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01415">XMP_Const.h:1415</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a1606a687cb790af16dc561b2a8f2e6a3"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a1606a687cb790af16dc561b2a8f2e6a3">kXMPErr_BadPSIR</a></div><div class="ttdoc">PSIR format error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01451">XMP_Const.h:1451</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a8babbd758d2c64fd04e85fa48e0675c0"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a8babbd758d2c64fd04e85fa48e0675c0">kXMPErr_InternalFailure</a></div><div class="ttdoc">Generic internal failure. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01375">XMP_Const.h:1375</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a14342c486ddf394ebc110a446becbfa7"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14342c486ddf394ebc110a446becbfa7">kXMPErr_Deprecated</a></div><div class="ttdoc">Generic deprecated error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01377">XMP_Const.h:1377</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409ac4cf86fa29624c5e19111e09a97fe05f"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4cf86fa29624c5e19111e09a97fe05f">kXMPErr_BadUnicode</a></div><div class="ttdoc">Unicode error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01443">XMP_Const.h:1443</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409ad685e1f839e3bc53dfc55611a0803cee"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad685e1f839e3bc53dfc55611a0803cee">kXMPErr_BadJPEG</a></div><div class="ttdoc">JPEG format error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01447">XMP_Const.h:1447</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a577b0e80acf44125f0dc49e5885e0824"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a577b0e80acf44125f0dc49e5885e0824">kXMPErr_FilePermission</a></div><div class="ttdoc">A file exists but cannot be opened. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01417">XMP_Const.h:1417</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a82941dc15c6ccde6b8fb2f9cc85c2eeb"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a82941dc15c6ccde6b8fb2f9cc85c2eeb">kXMPErr_ExternalFailure</a></div><div class="ttdoc">Generic external failure. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01379">XMP_Const.h:1379</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a69eb7fef422fbca62cdbc554afffd813"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a69eb7fef422fbca62cdbc554afffd813">kXMPErr_NoMemory</a></div><div class="ttdoc">Generic out-of-memory error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01387">XMP_Const.h:1387</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409ad596daed4ac92f8bf7871669d03effad"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad596daed4ac92f8bf7871669d03effad">kXMPErr_BadMPEG</a></div><div class="ttdoc">MPEG format error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01455">XMP_Const.h:1455</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409ac4f936ff6788ce17f6098b7cbda77ed9"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4f936ff6788ce17f6098b7cbda77ed9">kXMPErr_BadSerialize</a></div><div class="ttdoc">Serialization error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01407">XMP_Const.h:1407</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409ac7ac408582c194cc723a24acb8b4e4c3"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac7ac408582c194cc723a24acb8b4e4c3">kXMPErr_Unavailable</a></div><div class="ttdoc">Generic unavailable error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01361">XMP_Const.h:1361</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409aacc6262e9c1fd1a64e3d10cedfb7dcb1"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aacc6262e9c1fd1a64e3d10cedfb7dcb1">kXMPErr_BadBlockFormat</a></div><div class="ttdoc">A block of a file is ill-formed, e.g. invalid IPTC-IIM in a photo. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01425">XMP_Const.h:1425</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a10fa053f279fed01b075f34a70f11795"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a10fa053f279fed01b075f34a70f11795">kXMPErr_NoFileHandler</a></div><div class="ttdoc">No file handler found for format. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01411">XMP_Const.h:1411</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a716956a038782e595ce61d3fbdd1a25a"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a716956a038782e595ce61d3fbdd1a25a">kXMPErr_BadValue</a></div><div class="ttdoc">Generic bad value error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01367">XMP_Const.h:1367</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a0819111429c734ca5ef895c193846351"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a0819111429c734ca5ef895c193846351">kXMPErr_FilePathNotAFile</a></div><div class="ttdoc">File Path is not a file. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01427">XMP_Const.h:1427</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a40ca77d98bd366442bb8d438c420a444"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a40ca77d98bd366442bb8d438c420a444">kXMPErr_BadOptions</a></div><div class="ttdoc">Bad options parameter. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01399">XMP_Const.h:1399</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a2bc66eec6ce830979089d5c336f75539"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2bc66eec6ce830979089d5c336f75539">kXMPErr_BadSchema</a></div><div class="ttdoc">Bad schema parameter. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01395">XMP_Const.h:1395</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a5464b823e619618d9aa58433cdb45a8e"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5464b823e619618d9aa58433cdb45a8e">kXMPErr_BadRDF</a></div><div class="ttdoc">RDF format error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01437">XMP_Const.h:1437</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409afca1d169d7e3cb3ba84c81700c1b9b22"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409afca1d169d7e3cb3ba84c81700c1b9b22">kXMPErr_WriteError</a></div><div class="ttdoc">A file write failed for a reason other than lack of disk space. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01423">XMP_Const.h:1423</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a52d197a8b0af3c55f16958162a4132f1"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a52d197a8b0af3c55f16958162a4132f1">kXMPErr_BadParam</a></div><div class="ttdoc">Generic bad parameter error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01365">XMP_Const.h:1365</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409aac7558097a1f5a0f99097199f1bf8ff4"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aac7558097a1f5a0f99097199f1bf8ff4">kXMPErr_UnknownException</a></div><div class="ttdoc">Generic unknown exception. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01385">XMP_Const.h:1385</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409aa9c1c20e53db12b20068d830a8990c0b"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa9c1c20e53db12b20068d830a8990c0b">kXMPErr_TooLargeForJPEG</a></div><div class="ttdoc">Data too large for JPEG file format. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01413">XMP_Const.h:1413</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409aa856bb36a9742d8542b483e00fc6511b"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa856bb36a9742d8542b483e00fc6511b">kXMPErr_EnforceFailure</a></div><div class="ttdoc">Generic enforcement failure. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01371">XMP_Const.h:1371</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a14813595824de97382fffeae7b6fe581"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14813595824de97382fffeae7b6fe581">kXMPErr_Unknown</a></div><div class="ttdoc">Generic unknown error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01357">XMP_Const.h:1357</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409ae2aec0f3b8db282cbba40e4bcf746ba9"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ae2aec0f3b8db282cbba40e4bcf746ba9">kXMPErr_NoError</a></div><div class="ttdoc">Generic error codes. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01354">XMP_Const.h:1354</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a5227060f282a86c8ea1a944107751dd1"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5227060f282a86c8ea1a944107751dd1">kXMPErr_ProgressAbort</a></div><div class="ttdoc">Progress reporting callback requested abort. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01389">XMP_Const.h:1389</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409aa2f19dfd8ce27b5713c79e34f2052e40"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa2f19dfd8ce27b5713c79e34f2052e40">kXMPErr_DiskSpace</a></div><div class="ttdoc">A file write failed due to lack of disk space. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01419">XMP_Const.h:1419</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a23b2d7cab10b3d80549e6b60855bb15e"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a23b2d7cab10b3d80549e6b60855bb15e">kXMPErr_BadIPTC</a></div><div class="ttdoc">IPTC format error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01453">XMP_Const.h:1453</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a3f1efec0aa5452f43c55c05aba616ef7"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a3f1efec0aa5452f43c55c05aba616ef7">kXMPErr_BadXPath</a></div><div class="ttdoc">Bad XPath parameter. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01397">XMP_Const.h:1397</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409ac57f1cf1c24778536fd32972e87334c5"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac57f1cf1c24778536fd32972e87334c5">kXMPErr_BadXML</a></div><div class="ttdoc">XML format error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01435">XMP_Const.h:1435</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a115f3d761d2cad952aab23f35cbdf3a1"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a115f3d761d2cad952aab23f35cbdf3a1">kXMPErr_BadObject</a></div><div class="ttdoc">Generic bad object error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01363">XMP_Const.h:1363</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a2a17df0c0b690f5b7829bc4ca16efce2"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2a17df0c0b690f5b7829bc4ca16efce2">kXMPErr_ReadError</a></div><div class="ttdoc">A file read failed. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01421">XMP_Const.h:1421</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a5322df07e2a7792824d2468c4837f1cb"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5322df07e2a7792824d2468c4837f1cb">kXMPErr_StdException</a></div><div class="ttdoc">Generic standard exception. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01383">XMP_Const.h:1383</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="abc6126af1d45847bc59afa0aa3216b04"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -2412,40 +3878,46 @@ typedef XMP_Bool(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>XMPFile
<td class="memname">anonymous enum</td>
</tr>
</table>
-</div>
-<div class="memdoc">
-<p>Option bit flags for the <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta</a></code> property setting functions. These option bits are shared with the accessor functions: </p>
-<ul>
-<li><code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aab51f87b5c48f47f5cefb9e03293dafb" title="The XML string form of the property value is a URI, use rdf:resource attribute. DISCOURAGED...">kXMP_PropValueIsURI</a></code> </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e" title="The value is a structure with nested fields.">kXMP_PropValueIsStruct</a></code> </li>
+</div><div class="memdoc">
+
+<p>Option bit flags for the <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services. ">TXMPMeta</a></code> property setting functions. </p>
+<p>These option bits are shared with the accessor functions: </p><ul>
+<li><code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aab51f87b5c48f47f5cefb9e03293dafb" title="The XML string form of the property value is a URI, use rdf:resource attribute. DISCOURAGED. ">kXMP_PropValueIsURI</a></code> </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e" title="The value is a structure with nested fields. ">kXMP_PropValueIsStruct</a></code> </li>
<li><code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a9b7706e0f0716ac7546bdc24ffedd0bc">kXMP_PropValueIsArray</a></code> </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5af1cdb3b0a3e852ec55e747a1686aba04" title="Implies kXMP_PropValueIsArray, item order matters. It is serialized using an rdf:Seq...">kXMP_PropArrayIsOrdered</a></code> </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a2596b1f0ea4600270c99102c86b5f1f1" title="Implies kXMP_PropArrayIsOrdered, items are alternates. It is serialized using an...">kXMP_PropArrayIsAlternate</a></code> </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5af1cdb3b0a3e852ec55e747a1686aba04" title="Implies kXMP_PropValueIsArray, item order matters. It is serialized using an rdf:Seq container...">kXMP_PropArrayIsOrdered</a></code> </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a2596b1f0ea4600270c99102c86b5f1f1" title="Implies kXMP_PropArrayIsOrdered, items are alternates. It is serialized using an rdf:Alt container...">kXMP_PropArrayIsAlternate</a></code> </li>
<li><code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aba253f67a6cf44b7438a3f96b516846d">kXMP_PropArrayIsAltText</a></code> </li>
</ul>
-<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
-<tr><td valign="top"><em><a class="anchor" id="abc6126af1d45847bc59afa0aa3216b04a873411f673fc2a6337083fd024df727f"></a><!-- doxytag: member="kXMP_InsertBeforeItem" ref="abc6126af1d45847bc59afa0aa3216b04a873411f673fc2a6337083fd024df727f" args="" -->kXMP_InsertBeforeItem</em>&nbsp;</td><td>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="abc6126af1d45847bc59afa0aa3216b04a873411f673fc2a6337083fd024df727f"></a>kXMP_InsertBeforeItem&#160;</td><td class="fielddoc">
<p>Option for array item location: Insert a new item before the given index. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc6126af1d45847bc59afa0aa3216b04a98cedd5fa29d47abb2ac8903ac7f5a05"></a><!-- doxytag: member="kXMP_InsertAfterItem" ref="abc6126af1d45847bc59afa0aa3216b04a98cedd5fa29d47abb2ac8903ac7f5a05" args="" -->kXMP_InsertAfterItem</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc6126af1d45847bc59afa0aa3216b04a98cedd5fa29d47abb2ac8903ac7f5a05"></a>kXMP_InsertAfterItem&#160;</td><td class="fielddoc">
<p>Option for array item location: Insert a new item after the given index. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc6126af1d45847bc59afa0aa3216b04addd07b4a38b25ab3841e28a9cb169d1c"></a><!-- doxytag: member="kXMP_DeleteExisting" ref="abc6126af1d45847bc59afa0aa3216b04addd07b4a38b25ab3841e28a9cb169d1c" args="" -->kXMP_DeleteExisting</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc6126af1d45847bc59afa0aa3216b04addd07b4a38b25ab3841e28a9cb169d1c"></a>kXMP_DeleteExisting&#160;</td><td class="fielddoc">
<p>Delete any pre-existing property. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc6126af1d45847bc59afa0aa3216b04ad1b42a8a4c479d9bfaf406b79f2e1465"></a><!-- doxytag: member="kXMP_PropValueOptionsMask" ref="abc6126af1d45847bc59afa0aa3216b04ad1b42a8a4c479d9bfaf406b79f2e1465" args="" -->kXMP_PropValueOptionsMask</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc6126af1d45847bc59afa0aa3216b04ad1b42a8a4c479d9bfaf406b79f2e1465"></a>kXMP_PropValueOptionsMask&#160;</td><td class="fielddoc">
<p>Bit-flag mask for property-value option bits. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="abc6126af1d45847bc59afa0aa3216b04aef8c1934a17b0e5d8f0b20a7e89df0df"></a><!-- doxytag: member="kXMP_PropArrayLocationMask" ref="abc6126af1d45847bc59afa0aa3216b04aef8c1934a17b0e5d8f0b20a7e89df0df" args="" -->kXMP_PropArrayLocationMask</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="abc6126af1d45847bc59afa0aa3216b04aef8c1934a17b0e5d8f0b20a7e89df0df"></a>kXMP_PropArrayLocationMask&#160;</td><td class="fielddoc">
<p>Bit-flag mask for array-item location bits. </p>
</td></tr>
</table>
-</dd>
-</dl>
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00677">677</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; {</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160;</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; <a class="code" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04a873411f673fc2a6337083fd024df727f">kXMP_InsertBeforeItem</a> = 0x00004000UL,</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160;</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; <a class="code" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04a98cedd5fa29d47abb2ac8903ac7f5a05">kXMP_InsertAfterItem</a> = 0x00008000UL,</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160;</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; <a class="code" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04addd07b4a38b25ab3841e28a9cb169d1c">kXMP_DeleteExisting</a> = 0x20000000UL,</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160;</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; <a class="code" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04ad1b42a8a4c479d9bfaf406b79f2e1465">kXMP_PropValueOptionsMask</a> = <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aab51f87b5c48f47f5cefb9e03293dafb">kXMP_PropValueIsURI</a>,</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160;</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; <a class="code" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04aef8c1934a17b0e5d8f0b20a7e89df0df">kXMP_PropArrayLocationMask</a> = <a class="code" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04a873411f673fc2a6337083fd024df727f">kXMP_InsertBeforeItem</a> | kXMP_InsertAfterItem</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160;</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160;};</div><div class="ttc" id="XMP__Const_8h_html_abc6126af1d45847bc59afa0aa3216b04a98cedd5fa29d47abb2ac8903ac7f5a05"><div class="ttname"><a href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04a98cedd5fa29d47abb2ac8903ac7f5a05">kXMP_InsertAfterItem</a></div><div class="ttdoc">Option for array item location: Insert a new item after the given index. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00683">XMP_Const.h:683</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc6126af1d45847bc59afa0aa3216b04ad1b42a8a4c479d9bfaf406b79f2e1465"><div class="ttname"><a href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04ad1b42a8a4c479d9bfaf406b79f2e1465">kXMP_PropValueOptionsMask</a></div><div class="ttdoc">Bit-flag mask for property-value option bits. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00689">XMP_Const.h:689</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a99fb83031ce9923c84392b4e92f956b5aab51f87b5c48f47f5cefb9e03293dafb"><div class="ttname"><a href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aab51f87b5c48f47f5cefb9e03293dafb">kXMP_PropValueIsURI</a></div><div class="ttdoc">The XML string form of the property value is a URI, use rdf:resource attribute. DISCOURAGED. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00580">XMP_Const.h:580</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc6126af1d45847bc59afa0aa3216b04addd07b4a38b25ab3841e28a9cb169d1c"><div class="ttname"><a href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04addd07b4a38b25ab3841e28a9cb169d1c">kXMP_DeleteExisting</a></div><div class="ttdoc">Delete any pre-existing property. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00686">XMP_Const.h:686</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc6126af1d45847bc59afa0aa3216b04aef8c1934a17b0e5d8f0b20a7e89df0df"><div class="ttname"><a href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04aef8c1934a17b0e5d8f0b20a7e89df0df">kXMP_PropArrayLocationMask</a></div><div class="ttdoc">Bit-flag mask for array-item location bits. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00692">XMP_Const.h:692</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc6126af1d45847bc59afa0aa3216b04a873411f673fc2a6337083fd024df727f"><div class="ttname"><a href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04a873411f673fc2a6337083fd024df727f">kXMP_InsertBeforeItem</a></div><div class="ttdoc">Option for array item location: Insert a new item before the given index. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00680">XMP_Const.h:680</a></div></div>
+</div><!-- fragment -->
</div>
</div>
-<a class="anchor" id="adc29c2ff13d900c2f185ee95427fb06c"></a><!-- doxytag: member="XMP_Const.h::@4" ref="adc29c2ff13d900c2f185ee95427fb06c" args="" -->
+<a class="anchor" id="adc29c2ff13d900c2f185ee95427fb06c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -2453,27 +3925,29 @@ typedef XMP_Bool(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>XMPFile
<td class="memname">anonymous enum</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p>Option bit flags for <code><a class="el" href="classTXMPMeta.html#a7b383f5b357fff040cdbde82f4f43f26" title="ParseFromBuffer() parses RDF from a series of input buffers into this XMP object...">TXMPMeta::ParseFromBuffer()</a></code>. </p>
-<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
-<tr><td valign="top"><em><a class="anchor" id="adc29c2ff13d900c2f185ee95427fb06ca1e533852436acf75f594a4fb50a64400"></a><!-- doxytag: member="kXMP_RequireXMPMeta" ref="adc29c2ff13d900c2f185ee95427fb06ca1e533852436acf75f594a4fb50a64400" args="" -->kXMP_RequireXMPMeta</em>&nbsp;</td><td>
+<p>Option bit flags for <code><a class="el" href="classTXMPMeta.html#a7b383f5b357fff040cdbde82f4f43f26" title="ParseFromBuffer() parses RDF from a series of input buffers into this XMP object. ...">TXMPMeta::ParseFromBuffer()</a></code>. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="adc29c2ff13d900c2f185ee95427fb06ca1e533852436acf75f594a4fb50a64400"></a>kXMP_RequireXMPMeta&#160;</td><td class="fielddoc">
<p>Require a surrounding <code>x:xmpmeta</code> element. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adc29c2ff13d900c2f185ee95427fb06ca79b36427b7bf0c0a1ed010a44dec2d3e"></a><!-- doxytag: member="kXMP_ParseMoreBuffers" ref="adc29c2ff13d900c2f185ee95427fb06ca79b36427b7bf0c0a1ed010a44dec2d3e" args="" -->kXMP_ParseMoreBuffers</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adc29c2ff13d900c2f185ee95427fb06ca79b36427b7bf0c0a1ed010a44dec2d3e"></a>kXMP_ParseMoreBuffers&#160;</td><td class="fielddoc">
<p>This is the not last input buffer for this parse stream. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="adc29c2ff13d900c2f185ee95427fb06ca7107906eab0e1fa6f9f2dc6254ad88b1"></a><!-- doxytag: member="kXMP_StrictAliasing" ref="adc29c2ff13d900c2f185ee95427fb06ca7107906eab0e1fa6f9f2dc6254ad88b1" args="" -->kXMP_StrictAliasing</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="adc29c2ff13d900c2f185ee95427fb06ca7107906eab0e1fa6f9f2dc6254ad88b1"></a>kXMP_StrictAliasing&#160;</td><td class="fielddoc">
<p>Do not reconcile alias differences, throw an exception. </p>
</td></tr>
</table>
-</dd>
-</dl>
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00699">699</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; {</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160;</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; <a class="code" href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca1e533852436acf75f594a4fb50a64400">kXMP_RequireXMPMeta</a> = 0x0001UL,</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160;</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; <a class="code" href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca79b36427b7bf0c0a1ed010a44dec2d3e">kXMP_ParseMoreBuffers</a> = 0x0002UL,</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160;</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; <a class="code" href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca7107906eab0e1fa6f9f2dc6254ad88b1">kXMP_StrictAliasing</a> = 0x0004UL</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160;</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160;};</div><div class="ttc" id="XMP__Const_8h_html_adc29c2ff13d900c2f185ee95427fb06ca79b36427b7bf0c0a1ed010a44dec2d3e"><div class="ttname"><a href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca79b36427b7bf0c0a1ed010a44dec2d3e">kXMP_ParseMoreBuffers</a></div><div class="ttdoc">This is the not last input buffer for this parse stream. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00705">XMP_Const.h:705</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adc29c2ff13d900c2f185ee95427fb06ca7107906eab0e1fa6f9f2dc6254ad88b1"><div class="ttname"><a href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca7107906eab0e1fa6f9f2dc6254ad88b1">kXMP_StrictAliasing</a></div><div class="ttdoc">Do not reconcile alias differences, throw an exception. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00708">XMP_Const.h:708</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adc29c2ff13d900c2f185ee95427fb06ca1e533852436acf75f594a4fb50a64400"><div class="ttname"><a href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca1e533852436acf75f594a4fb50a64400">kXMP_RequireXMPMeta</a></div><div class="ttdoc">Require a surrounding x:xmpmeta element. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00702">XMP_Const.h:702</a></div></div>
+</div><!-- fragment -->
</div>
</div>
-<a class="anchor" id="a61dadd085c1777f559549e05962b2c9e"></a><!-- doxytag: member="XMP_Const.h::@5" ref="a61dadd085c1777f559549e05962b2c9e" args="" -->
+<a class="anchor" id="a61dadd085c1777f559549e05962b2c9e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -2481,63 +3955,86 @@ typedef XMP_Bool(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>XMPFile
<td class="memname">anonymous enum</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p>Option bit flags for <code><a class="el" href="classTXMPMeta.html#a2774a6f15ae22f0002201b58c46bfb49" title="SerializeToBuffer() serializes metadata in this XMP object into a string as RDF.">TXMPMeta::SerializeToBuffer()</a></code>. </p>
-<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
-<tr><td valign="top"><em><a class="anchor" id="a61dadd085c1777f559549e05962b2c9eadbb9e4c7ee139da0dd4126ddea794c76"></a><!-- doxytag: member="kXMP_OmitPacketWrapper" ref="a61dadd085c1777f559549e05962b2c9eadbb9e4c7ee139da0dd4126ddea794c76" args="" -->kXMP_OmitPacketWrapper</em>&nbsp;</td><td>
+<p>Option bit flags for <code><a class="el" href="classTXMPMeta.html#a2774a6f15ae22f0002201b58c46bfb49" title="SerializeToBuffer() serializes metadata in this XMP object into a string as RDF. ">TXMPMeta::SerializeToBuffer()</a></code>. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a61dadd085c1777f559549e05962b2c9eadbb9e4c7ee139da0dd4126ddea794c76"></a>kXMP_OmitPacketWrapper&#160;</td><td class="fielddoc">
<p>Omit the XML packet wrapper. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a61dadd085c1777f559549e05962b2c9ea238c792322c5bd5f9e4db3165e01f9d6"></a><!-- doxytag: member="kXMP_ReadOnlyPacket" ref="a61dadd085c1777f559549e05962b2c9ea238c792322c5bd5f9e4db3165e01f9d6" args="" -->kXMP_ReadOnlyPacket</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a61dadd085c1777f559549e05962b2c9ea238c792322c5bd5f9e4db3165e01f9d6"></a>kXMP_ReadOnlyPacket&#160;</td><td class="fielddoc">
<p>Default is a writeable packet. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a61dadd085c1777f559549e05962b2c9ea041dc6b7b8684be7112ae40f5f259ebb"></a><!-- doxytag: member="kXMP_UseCompactFormat" ref="a61dadd085c1777f559549e05962b2c9ea041dc6b7b8684be7112ae40f5f259ebb" args="" -->kXMP_UseCompactFormat</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a61dadd085c1777f559549e05962b2c9ea041dc6b7b8684be7112ae40f5f259ebb"></a>kXMP_UseCompactFormat&#160;</td><td class="fielddoc">
<p>Use a compact form of RDF. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a61dadd085c1777f559549e05962b2c9ea15e3fb0e64614c574ed554f2f72c0a5d"></a><!-- doxytag: member="kXMP_UseCanonicalFormat" ref="a61dadd085c1777f559549e05962b2c9ea15e3fb0e64614c574ed554f2f72c0a5d" args="" -->kXMP_UseCanonicalFormat</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a61dadd085c1777f559549e05962b2c9ea15e3fb0e64614c574ed554f2f72c0a5d"></a>kXMP_UseCanonicalFormat&#160;</td><td class="fielddoc">
<p>Use a canonical form of RDF. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a61dadd085c1777f559549e05962b2c9ea0b659b3b544c7a5a076fbd3132cd7f7a"></a><!-- doxytag: member="kXMP_IncludeThumbnailPad" ref="a61dadd085c1777f559549e05962b2c9ea0b659b3b544c7a5a076fbd3132cd7f7a" args="" -->kXMP_IncludeThumbnailPad</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a61dadd085c1777f559549e05962b2c9ea0b659b3b544c7a5a076fbd3132cd7f7a"></a>kXMP_IncludeThumbnailPad&#160;</td><td class="fielddoc">
<p>Include a padding allowance for a thumbnail image. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a61dadd085c1777f559549e05962b2c9eadb35599da481cc22ea6342b7b4de6bc6"></a><!-- doxytag: member="kXMP_ExactPacketLength" ref="a61dadd085c1777f559549e05962b2c9eadb35599da481cc22ea6342b7b4de6bc6" args="" -->kXMP_ExactPacketLength</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a61dadd085c1777f559549e05962b2c9eadb35599da481cc22ea6342b7b4de6bc6"></a>kXMP_ExactPacketLength&#160;</td><td class="fielddoc">
<p>The padding parameter is the overall packet length. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a61dadd085c1777f559549e05962b2c9ea79230f1d70d2625f7650db6ff5b1ea29"></a><!-- doxytag: member="kXMP_OmitAllFormatting" ref="a61dadd085c1777f559549e05962b2c9ea79230f1d70d2625f7650db6ff5b1ea29" args="" -->kXMP_OmitAllFormatting</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a61dadd085c1777f559549e05962b2c9ea79230f1d70d2625f7650db6ff5b1ea29"></a>kXMP_OmitAllFormatting&#160;</td><td class="fielddoc">
<p>Omit all formatting whitespace. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a61dadd085c1777f559549e05962b2c9ea9fb498d749d939e2ba9adf555a75b856"></a><!-- doxytag: member="kXMP_OmitXMPMetaElement" ref="a61dadd085c1777f559549e05962b2c9ea9fb498d749d939e2ba9adf555a75b856" args="" -->kXMP_OmitXMPMetaElement</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a61dadd085c1777f559549e05962b2c9ea9fb498d749d939e2ba9adf555a75b856"></a>kXMP_OmitXMPMetaElement&#160;</td><td class="fielddoc">
<p>Omit the x:xmpmeta element surrounding the rdf:RDF element. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a61dadd085c1777f559549e05962b2c9ea23054ea4ab89dfd802f14cb389e18745"></a><!-- doxytag: member="kXMP_IncludeRDFHash" ref="a61dadd085c1777f559549e05962b2c9ea23054ea4ab89dfd802f14cb389e18745" args="" -->kXMP_IncludeRDFHash</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a61dadd085c1777f559549e05962b2c9ea23054ea4ab89dfd802f14cb389e18745"></a>kXMP_IncludeRDFHash&#160;</td><td class="fielddoc">
<p>Include a rdf Hash and Merged flag in x:xmpmeta element. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a61dadd085c1777f559549e05962b2c9eaeb79571cac99ee97feefb0347b1c1845"></a><!-- doxytag: member="kXMP_EncodingMask" ref="a61dadd085c1777f559549e05962b2c9eaeb79571cac99ee97feefb0347b1c1845" args="" -->kXMP_EncodingMask</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a61dadd085c1777f559549e05962b2c9eaa646a732a5b11cd8354ca0c3686ef04d"></a>_XMP_LittleEndian_Bit&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a61dadd085c1777f559549e05962b2c9ea688324384883724626ddd5597eb45739"></a>_XMP_UTF16_Bit&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a61dadd085c1777f559549e05962b2c9ea540bbd27859990185eb488442579768b"></a>_XMP_UTF32_Bit&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a61dadd085c1777f559549e05962b2c9eaeb79571cac99ee97feefb0347b1c1845"></a>kXMP_EncodingMask&#160;</td><td class="fielddoc">
<p>Bit-flag mask for encoding-type bits. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a61dadd085c1777f559549e05962b2c9eadc8f241694f5a758e5ee3f6db69d02ab"></a><!-- doxytag: member="kXMP_EncodeUTF8" ref="a61dadd085c1777f559549e05962b2c9eadc8f241694f5a758e5ee3f6db69d02ab" args="" -->kXMP_EncodeUTF8</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a61dadd085c1777f559549e05962b2c9eadc8f241694f5a758e5ee3f6db69d02ab"></a>kXMP_EncodeUTF8&#160;</td><td class="fielddoc">
<p>Use UTF8 encoding. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a61dadd085c1777f559549e05962b2c9ea310e4cbf639e783163778566b439f01d"></a><!-- doxytag: member="kXMP_EncodeUTF16Big" ref="a61dadd085c1777f559549e05962b2c9ea310e4cbf639e783163778566b439f01d" args="" -->kXMP_EncodeUTF16Big</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a61dadd085c1777f559549e05962b2c9ea310e4cbf639e783163778566b439f01d"></a>kXMP_EncodeUTF16Big&#160;</td><td class="fielddoc">
<p>Use UTF16 big-endian encoding. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a61dadd085c1777f559549e05962b2c9eafc6417e382c98a2d507830de62fd4830"></a><!-- doxytag: member="kXMP_EncodeUTF16Little" ref="a61dadd085c1777f559549e05962b2c9eafc6417e382c98a2d507830de62fd4830" args="" -->kXMP_EncodeUTF16Little</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a61dadd085c1777f559549e05962b2c9eafc6417e382c98a2d507830de62fd4830"></a>kXMP_EncodeUTF16Little&#160;</td><td class="fielddoc">
<p>Use UTF16 little-endian encoding. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a61dadd085c1777f559549e05962b2c9ea793e99d9ea83f0aadd5b4193a95ea713"></a><!-- doxytag: member="kXMP_EncodeUTF32Big" ref="a61dadd085c1777f559549e05962b2c9ea793e99d9ea83f0aadd5b4193a95ea713" args="" -->kXMP_EncodeUTF32Big</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a61dadd085c1777f559549e05962b2c9ea793e99d9ea83f0aadd5b4193a95ea713"></a>kXMP_EncodeUTF32Big&#160;</td><td class="fielddoc">
<p>Use UTF32 big-endian encoding. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a61dadd085c1777f559549e05962b2c9eae0137d98ea990fa23d292489031ba09e"></a><!-- doxytag: member="kXMP_EncodeUTF32Little" ref="a61dadd085c1777f559549e05962b2c9eae0137d98ea990fa23d292489031ba09e" args="" -->kXMP_EncodeUTF32Little</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a61dadd085c1777f559549e05962b2c9eae0137d98ea990fa23d292489031ba09e"></a>kXMP_EncodeUTF32Little&#160;</td><td class="fielddoc">
<p>Use UTF13 little-endian encoding. </p>
</td></tr>
</table>
-</dd>
-</dl>
-</div>
-</div>
-<a class="anchor" id="a726ca809ffd3d67ab4b8476646f26635"></a><!-- doxytag: member="XMP_Const.h::@6" ref="a726ca809ffd3d67ab4b8476646f26635" args="" -->
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00713">713</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; {</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160;</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; <span class="comment">// *** Option to remove empty struct/array, or leaf with empty value?</span></div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160;</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadbb9e4c7ee139da0dd4126ddea794c76">kXMP_OmitPacketWrapper</a> = 0x0010UL,</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160;</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea238c792322c5bd5f9e4db3165e01f9d6">kXMP_ReadOnlyPacket</a> = 0x0020UL,</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160;</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea041dc6b7b8684be7112ae40f5f259ebb">kXMP_UseCompactFormat</a> = 0x0040UL,</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160;</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea15e3fb0e64614c574ed554f2f72c0a5d">kXMP_UseCanonicalFormat</a> = 0x0080UL,</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160;</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea0b659b3b544c7a5a076fbd3132cd7f7a">kXMP_IncludeThumbnailPad</a> = 0x0100UL,</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160;</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadb35599da481cc22ea6342b7b4de6bc6">kXMP_ExactPacketLength</a> = 0x0200UL,</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160;</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea79230f1d70d2625f7650db6ff5b1ea29">kXMP_OmitAllFormatting</a> = 0x0800UL,</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160;</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea9fb498d749d939e2ba9adf555a75b856">kXMP_OmitXMPMetaElement</a> = 0x1000UL, </div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; </div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea23054ea4ab89dfd802f14cb389e18745">kXMP_IncludeRDFHash</a> = 0x2000UL,</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160;</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eaa646a732a5b11cd8354ca0c3686ef04d">_XMP_LittleEndian_Bit</a> = 0x0001UL, <span class="comment">// ! Don&#39;t use directly, see the combined values below!</span></div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea688324384883724626ddd5597eb45739">_XMP_UTF16_Bit</a> = 0x0002UL,</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea540bbd27859990185eb488442579768b">_XMP_UTF32_Bit</a> = 0x0004UL,</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160;</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eaeb79571cac99ee97feefb0347b1c1845">kXMP_EncodingMask</a> = 0x0007UL,</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160;</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadc8f241694f5a758e5ee3f6db69d02ab">kXMP_EncodeUTF8</a> = 0UL,</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160;</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea310e4cbf639e783163778566b439f01d">kXMP_EncodeUTF16Big</a> = <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea688324384883724626ddd5597eb45739">_XMP_UTF16_Bit</a>,</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160;</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eafc6417e382c98a2d507830de62fd4830">kXMP_EncodeUTF16Little</a> = _XMP_UTF16_Bit | <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eaa646a732a5b11cd8354ca0c3686ef04d">_XMP_LittleEndian_Bit</a>,</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160;</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea793e99d9ea83f0aadd5b4193a95ea713">kXMP_EncodeUTF32Big</a> = <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea540bbd27859990185eb488442579768b">_XMP_UTF32_Bit</a>,</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160;</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eae0137d98ea990fa23d292489031ba09e">kXMP_EncodeUTF32Little</a> = _XMP_UTF32_Bit | _XMP_LittleEndian_Bit</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160;</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160;};</div><div class="ttc" id="XMP__Const_8h_html_a61dadd085c1777f559549e05962b2c9eae0137d98ea990fa23d292489031ba09e"><div class="ttname"><a href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eae0137d98ea990fa23d292489031ba09e">kXMP_EncodeUTF32Little</a></div><div class="ttdoc">Use UTF13 little-endian encoding. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00764">XMP_Const.h:764</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a61dadd085c1777f559549e05962b2c9eaeb79571cac99ee97feefb0347b1c1845"><div class="ttname"><a href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eaeb79571cac99ee97feefb0347b1c1845">kXMP_EncodingMask</a></div><div class="ttdoc">Bit-flag mask for encoding-type bits. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00749">XMP_Const.h:749</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a61dadd085c1777f559549e05962b2c9ea79230f1d70d2625f7650db6ff5b1ea29"><div class="ttname"><a href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea79230f1d70d2625f7650db6ff5b1ea29">kXMP_OmitAllFormatting</a></div><div class="ttdoc">Omit all formatting whitespace. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00736">XMP_Const.h:736</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a61dadd085c1777f559549e05962b2c9ea0b659b3b544c7a5a076fbd3132cd7f7a"><div class="ttname"><a href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea0b659b3b544c7a5a076fbd3132cd7f7a">kXMP_IncludeThumbnailPad</a></div><div class="ttdoc">Include a padding allowance for a thumbnail image. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00730">XMP_Const.h:730</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a61dadd085c1777f559549e05962b2c9ea041dc6b7b8684be7112ae40f5f259ebb"><div class="ttname"><a href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea041dc6b7b8684be7112ae40f5f259ebb">kXMP_UseCompactFormat</a></div><div class="ttdoc">Use a compact form of RDF. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00724">XMP_Const.h:724</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a61dadd085c1777f559549e05962b2c9ea793e99d9ea83f0aadd5b4193a95ea713"><div class="ttname"><a href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea793e99d9ea83f0aadd5b4193a95ea713">kXMP_EncodeUTF32Big</a></div><div class="ttdoc">Use UTF32 big-endian encoding. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00761">XMP_Const.h:761</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a61dadd085c1777f559549e05962b2c9eadc8f241694f5a758e5ee3f6db69d02ab"><div class="ttname"><a href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadc8f241694f5a758e5ee3f6db69d02ab">kXMP_EncodeUTF8</a></div><div class="ttdoc">Use UTF8 encoding. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00752">XMP_Const.h:752</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a61dadd085c1777f559549e05962b2c9ea310e4cbf639e783163778566b439f01d"><div class="ttname"><a href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea310e4cbf639e783163778566b439f01d">kXMP_EncodeUTF16Big</a></div><div class="ttdoc">Use UTF16 big-endian encoding. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00755">XMP_Const.h:755</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a61dadd085c1777f559549e05962b2c9eadb35599da481cc22ea6342b7b4de6bc6"><div class="ttname"><a href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadb35599da481cc22ea6342b7b4de6bc6">kXMP_ExactPacketLength</a></div><div class="ttdoc">The padding parameter is the overall packet length. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00733">XMP_Const.h:733</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a61dadd085c1777f559549e05962b2c9ea23054ea4ab89dfd802f14cb389e18745"><div class="ttname"><a href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea23054ea4ab89dfd802f14cb389e18745">kXMP_IncludeRDFHash</a></div><div class="ttdoc">Include a rdf Hash and Merged flag in x:xmpmeta element. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00742">XMP_Const.h:742</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a61dadd085c1777f559549e05962b2c9ea540bbd27859990185eb488442579768b"><div class="ttname"><a href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea540bbd27859990185eb488442579768b">_XMP_UTF32_Bit</a></div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00746">XMP_Const.h:746</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a61dadd085c1777f559549e05962b2c9ea688324384883724626ddd5597eb45739"><div class="ttname"><a href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea688324384883724626ddd5597eb45739">_XMP_UTF16_Bit</a></div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00745">XMP_Const.h:745</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a61dadd085c1777f559549e05962b2c9eaa646a732a5b11cd8354ca0c3686ef04d"><div class="ttname"><a href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eaa646a732a5b11cd8354ca0c3686ef04d">_XMP_LittleEndian_Bit</a></div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00744">XMP_Const.h:744</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a61dadd085c1777f559549e05962b2c9ea238c792322c5bd5f9e4db3165e01f9d6"><div class="ttname"><a href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea238c792322c5bd5f9e4db3165e01f9d6">kXMP_ReadOnlyPacket</a></div><div class="ttdoc">Default is a writeable packet. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00721">XMP_Const.h:721</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a61dadd085c1777f559549e05962b2c9ea15e3fb0e64614c574ed554f2f72c0a5d"><div class="ttname"><a href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea15e3fb0e64614c574ed554f2f72c0a5d">kXMP_UseCanonicalFormat</a></div><div class="ttdoc">Use a canonical form of RDF. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00727">XMP_Const.h:727</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a61dadd085c1777f559549e05962b2c9ea9fb498d749d939e2ba9adf555a75b856"><div class="ttname"><a href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea9fb498d749d939e2ba9adf555a75b856">kXMP_OmitXMPMetaElement</a></div><div class="ttdoc">Omit the x:xmpmeta element surrounding the rdf:RDF element. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00739">XMP_Const.h:739</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a61dadd085c1777f559549e05962b2c9eadbb9e4c7ee139da0dd4126ddea794c76"><div class="ttname"><a href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadbb9e4c7ee139da0dd4126ddea794c76">kXMP_OmitPacketWrapper</a></div><div class="ttdoc">Omit the XML packet wrapper. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00718">XMP_Const.h:718</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a61dadd085c1777f559549e05962b2c9eafc6417e382c98a2d507830de62fd4830"><div class="ttname"><a href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eafc6417e382c98a2d507830de62fd4830">kXMP_EncodeUTF16Little</a></div><div class="ttdoc">Use UTF16 little-endian encoding. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00758">XMP_Const.h:758</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a726ca809ffd3d67ab4b8476646f26635"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -2545,42 +4042,49 @@ typedef XMP_Bool(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>XMPFile
<td class="memname">anonymous enum</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p>Option bit flags for <code><a class="el" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services.">TXMPIterator</a></code> construction. </p>
-<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
-<tr><td valign="top"><em><a class="anchor" id="a726ca809ffd3d67ab4b8476646f26635a93f77b837d89759af3a721712c13f044"></a><!-- doxytag: member="kXMP_IterClassMask" ref="a726ca809ffd3d67ab4b8476646f26635a93f77b837d89759af3a721712c13f044" args="" -->kXMP_IterClassMask</em>&nbsp;</td><td>
+<p>Option bit flags for <code><a class="el" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services. ">TXMPIterator</a></code> construction. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a726ca809ffd3d67ab4b8476646f26635a93f77b837d89759af3a721712c13f044"></a>kXMP_IterClassMask&#160;</td><td class="fielddoc">
<p>The low 8 bits are an enum of what data structure to iterate. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a726ca809ffd3d67ab4b8476646f26635aa0643c076a3b3737ff88ed20f16afd2b"></a><!-- doxytag: member="kXMP_IterProperties" ref="a726ca809ffd3d67ab4b8476646f26635aa0643c076a3b3737ff88ed20f16afd2b" args="" -->kXMP_IterProperties</em>&nbsp;</td><td>
-<p>Iterate the property tree of a <a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta</a> object. </p>
+<tr><td class="fieldname"><a class="anchor" id="a726ca809ffd3d67ab4b8476646f26635aa0643c076a3b3737ff88ed20f16afd2b"></a>kXMP_IterProperties&#160;</td><td class="fielddoc">
+<p>Iterate the property tree of a <a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services. ">TXMPMeta</a> object. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a726ca809ffd3d67ab4b8476646f26635a3333450505cd3712320aeac895e541b9"></a><!-- doxytag: member="kXMP_IterAliases" ref="a726ca809ffd3d67ab4b8476646f26635a3333450505cd3712320aeac895e541b9" args="" -->kXMP_IterAliases</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a726ca809ffd3d67ab4b8476646f26635a3333450505cd3712320aeac895e541b9"></a>kXMP_IterAliases&#160;</td><td class="fielddoc">
<p>Iterate the global alias table. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a726ca809ffd3d67ab4b8476646f26635aa325d9ffba68a934f0a0a0f6ecfc2f7b"></a><!-- doxytag: member="kXMP_IterNamespaces" ref="a726ca809ffd3d67ab4b8476646f26635aa325d9ffba68a934f0a0a0f6ecfc2f7b" args="" -->kXMP_IterNamespaces</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a726ca809ffd3d67ab4b8476646f26635aa325d9ffba68a934f0a0a0f6ecfc2f7b"></a>kXMP_IterNamespaces&#160;</td><td class="fielddoc">
<p>Iterate the global namespace table. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a726ca809ffd3d67ab4b8476646f26635ab26e1a38d1d0343fcc5bdaab1b60e3ed"></a><!-- doxytag: member="kXMP_IterJustChildren" ref="a726ca809ffd3d67ab4b8476646f26635ab26e1a38d1d0343fcc5bdaab1b60e3ed" args="" -->kXMP_IterJustChildren</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a726ca809ffd3d67ab4b8476646f26635ab26e1a38d1d0343fcc5bdaab1b60e3ed"></a>kXMP_IterJustChildren&#160;</td><td class="fielddoc">
<p>Just do the immediate children of the root, default is subtree. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a726ca809ffd3d67ab4b8476646f26635a4589f99b5b4a55e785e3baf4fe1d9b19"></a><!-- doxytag: member="kXMP_IterJustLeafNodes" ref="a726ca809ffd3d67ab4b8476646f26635a4589f99b5b4a55e785e3baf4fe1d9b19" args="" -->kXMP_IterJustLeafNodes</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a726ca809ffd3d67ab4b8476646f26635a4589f99b5b4a55e785e3baf4fe1d9b19"></a>kXMP_IterJustLeafNodes&#160;</td><td class="fielddoc">
<p>Just do the leaf nodes, default is all nodes in the subtree. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a726ca809ffd3d67ab4b8476646f26635acf22e638f4144bcec8207b2ab69bb344"></a><!-- doxytag: member="kXMP_IterJustLeafName" ref="a726ca809ffd3d67ab4b8476646f26635acf22e638f4144bcec8207b2ab69bb344" args="" -->kXMP_IterJustLeafName</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a726ca809ffd3d67ab4b8476646f26635acf22e638f4144bcec8207b2ab69bb344"></a>kXMP_IterJustLeafName&#160;</td><td class="fielddoc">
<p>Return just the leaf part of the path, default is the full path. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a726ca809ffd3d67ab4b8476646f26635a1b91947105ae68c48c5d5e36aa70d101"></a><!-- doxytag: member="kXMP_IterOmitQualifiers" ref="a726ca809ffd3d67ab4b8476646f26635a1b91947105ae68c48c5d5e36aa70d101" args="" -->kXMP_IterOmitQualifiers</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a726ca809ffd3d67ab4b8476646f26635a1b91947105ae68c48c5d5e36aa70d101"></a>kXMP_IterOmitQualifiers&#160;</td><td class="fielddoc">
<p>Omit all qualifiers. </p>
</td></tr>
</table>
-</dd>
-</dl>
-</div>
-</div>
-<a class="anchor" id="a0411cd49bb5b71852cecd93bcbf0ca2d"></a><!-- doxytag: member="XMP_Const.h::@7" ref="a0411cd49bb5b71852cecd93bcbf0ca2d" args="" -->
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00771">771</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; {</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160;</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; <a class="code" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a93f77b837d89759af3a721712c13f044">kXMP_IterClassMask</a> = 0x00FFUL,</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160;</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; <a class="code" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635aa0643c076a3b3737ff88ed20f16afd2b">kXMP_IterProperties</a> = 0x0000UL,</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160;</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; <a class="code" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a3333450505cd3712320aeac895e541b9">kXMP_IterAliases</a> = 0x0001UL,</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160;</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; <a class="code" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635aa325d9ffba68a934f0a0a0f6ecfc2f7b">kXMP_IterNamespaces</a> = 0x0002UL,</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160;</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; <a class="code" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635ab26e1a38d1d0343fcc5bdaab1b60e3ed">kXMP_IterJustChildren</a> = 0x0100UL,</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160;</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; <a class="code" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a4589f99b5b4a55e785e3baf4fe1d9b19">kXMP_IterJustLeafNodes</a> = 0x0200UL,</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160;</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; <a class="code" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635acf22e638f4144bcec8207b2ab69bb344">kXMP_IterJustLeafName</a> = 0x0400UL,</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160;</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; <a class="code" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a1b91947105ae68c48c5d5e36aa70d101">kXMP_IterOmitQualifiers</a> = 0x1000UL</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160;</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160;};</div><div class="ttc" id="XMP__Const_8h_html_a726ca809ffd3d67ab4b8476646f26635aa0643c076a3b3737ff88ed20f16afd2b"><div class="ttname"><a href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635aa0643c076a3b3737ff88ed20f16afd2b">kXMP_IterProperties</a></div><div class="ttdoc">Iterate the property tree of a TXMPMeta object. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00777">XMP_Const.h:777</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a726ca809ffd3d67ab4b8476646f26635ab26e1a38d1d0343fcc5bdaab1b60e3ed"><div class="ttname"><a href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635ab26e1a38d1d0343fcc5bdaab1b60e3ed">kXMP_IterJustChildren</a></div><div class="ttdoc">Just do the immediate children of the root, default is subtree. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00786">XMP_Const.h:786</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a726ca809ffd3d67ab4b8476646f26635a4589f99b5b4a55e785e3baf4fe1d9b19"><div class="ttname"><a href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a4589f99b5b4a55e785e3baf4fe1d9b19">kXMP_IterJustLeafNodes</a></div><div class="ttdoc">Just do the leaf nodes, default is all nodes in the subtree. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00789">XMP_Const.h:789</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a726ca809ffd3d67ab4b8476646f26635a93f77b837d89759af3a721712c13f044"><div class="ttname"><a href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a93f77b837d89759af3a721712c13f044">kXMP_IterClassMask</a></div><div class="ttdoc">The low 8 bits are an enum of what data structure to iterate. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00774">XMP_Const.h:774</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a726ca809ffd3d67ab4b8476646f26635aa325d9ffba68a934f0a0a0f6ecfc2f7b"><div class="ttname"><a href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635aa325d9ffba68a934f0a0a0f6ecfc2f7b">kXMP_IterNamespaces</a></div><div class="ttdoc">Iterate the global namespace table. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00783">XMP_Const.h:783</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a726ca809ffd3d67ab4b8476646f26635a3333450505cd3712320aeac895e541b9"><div class="ttname"><a href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a3333450505cd3712320aeac895e541b9">kXMP_IterAliases</a></div><div class="ttdoc">Iterate the global alias table. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00780">XMP_Const.h:780</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a726ca809ffd3d67ab4b8476646f26635a1b91947105ae68c48c5d5e36aa70d101"><div class="ttname"><a href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a1b91947105ae68c48c5d5e36aa70d101">kXMP_IterOmitQualifiers</a></div><div class="ttdoc">Omit all qualifiers. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00795">XMP_Const.h:795</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a726ca809ffd3d67ab4b8476646f26635acf22e638f4144bcec8207b2ab69bb344"><div class="ttname"><a href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635acf22e638f4144bcec8207b2ab69bb344">kXMP_IterJustLeafName</a></div><div class="ttdoc">Return just the leaf part of the path, default is the full path. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00792">XMP_Const.h:792</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a0411cd49bb5b71852cecd93bcbf0ca2d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -2588,24 +4092,25 @@ typedef XMP_Bool(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>XMPFile
<td class="memname">anonymous enum</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p>Option bit flags for <code><a class="el" href="classTXMPIterator.html#a30b4d78974b347e4fcd275f1f65a61b2" title="Skip() skips some portion of the remaining iterations.">TXMPIterator::Skip()</a></code>. </p>
-<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
-<tr><td valign="top"><em><a class="anchor" id="a0411cd49bb5b71852cecd93bcbf0ca2dab0b540cd3841f411471a827f833c606e"></a><!-- doxytag: member="kXMP_IterSkipSubtree" ref="a0411cd49bb5b71852cecd93bcbf0ca2dab0b540cd3841f411471a827f833c606e" args="" -->kXMP_IterSkipSubtree</em>&nbsp;</td><td>
+<p>Option bit flags for <code><a class="el" href="classTXMPIterator.html#a30b4d78974b347e4fcd275f1f65a61b2" title="Skip() skips some portion of the remaining iterations. ">TXMPIterator::Skip()</a></code>. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a0411cd49bb5b71852cecd93bcbf0ca2dab0b540cd3841f411471a827f833c606e"></a>kXMP_IterSkipSubtree&#160;</td><td class="fielddoc">
<p>Skip the subtree below the current node. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="a0411cd49bb5b71852cecd93bcbf0ca2da2537b4b8db838f85b47988b198cd2a12"></a><!-- doxytag: member="kXMP_IterSkipSiblings" ref="a0411cd49bb5b71852cecd93bcbf0ca2da2537b4b8db838f85b47988b198cd2a12" args="" -->kXMP_IterSkipSiblings</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="a0411cd49bb5b71852cecd93bcbf0ca2da2537b4b8db838f85b47988b198cd2a12"></a>kXMP_IterSkipSiblings&#160;</td><td class="fielddoc">
<p>Skip the subtree below and remaining siblings of the current node. </p>
</td></tr>
</table>
-</dd>
-</dl>
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00800">800</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; {</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160;</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; <a class="code" href="XMP__Const_8h.html#a0411cd49bb5b71852cecd93bcbf0ca2dab0b540cd3841f411471a827f833c606e">kXMP_IterSkipSubtree</a> = 0x0001UL,</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160;</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; <a class="code" href="XMP__Const_8h.html#a0411cd49bb5b71852cecd93bcbf0ca2da2537b4b8db838f85b47988b198cd2a12">kXMP_IterSkipSiblings</a> = 0x0002UL</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160;</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160;};</div><div class="ttc" id="XMP__Const_8h_html_a0411cd49bb5b71852cecd93bcbf0ca2dab0b540cd3841f411471a827f833c606e"><div class="ttname"><a href="XMP__Const_8h.html#a0411cd49bb5b71852cecd93bcbf0ca2dab0b540cd3841f411471a827f833c606e">kXMP_IterSkipSubtree</a></div><div class="ttdoc">Skip the subtree below the current node. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00803">XMP_Const.h:803</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a0411cd49bb5b71852cecd93bcbf0ca2da2537b4b8db838f85b47988b198cd2a12"><div class="ttname"><a href="XMP__Const_8h.html#a0411cd49bb5b71852cecd93bcbf0ca2da2537b4b8db838f85b47988b198cd2a12">kXMP_IterSkipSiblings</a></div><div class="ttdoc">Skip the subtree below and remaining siblings of the current node. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00806">XMP_Const.h:806</a></div></div>
+</div><!-- fragment -->
</div>
</div>
-<a class="anchor" id="abed82baf7f470b522273a3e37c24c600"></a><!-- doxytag: member="XMP_Const.h::@8" ref="abed82baf7f470b522273a3e37c24c600" args="" -->
+<a class="anchor" id="abed82baf7f470b522273a3e37c24c600"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -2613,26 +4118,27 @@ typedef XMP_Bool(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>XMPFile
<td class="memname">anonymous enum</td>
</tr>
</table>
-</div>
-<div class="memdoc">
-<p>Option bit flags for <code><a class="el" href="classTXMPUtils.html#ad7e1aa7928252fb88a24fb5c3aef22ba" title="CatenateArrayItems() creates a single edit string from a set of array item values...">TXMPUtils::CatenateArrayItems()</a></code> and <code><a class="el" href="classTXMPUtils.html#a66c5ddee47aa36ed906353f94ca18d2e" title="SeparateArrayItems() updates an array from a concatenated edit string of values.">TXMPUtils::SeparateArrayItems()</a></code>. These option bits are shared with the accessor functions: </p>
-<ul>
+</div><div class="memdoc">
+
+<p>Option bit flags for <code><a class="el" href="classTXMPUtils.html#ad7e1aa7928252fb88a24fb5c3aef22ba" title="CatenateArrayItems() creates a single edit string from a set of array item values. ">TXMPUtils::CatenateArrayItems()</a></code> and <code><a class="el" href="classTXMPUtils.html#a66c5ddee47aa36ed906353f94ca18d2e" title="SeparateArrayItems() updates an array from a concatenated edit string of values. ">TXMPUtils::SeparateArrayItems()</a></code>. </p>
+<p>These option bits are shared with the accessor functions: </p><ul>
<li><code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a9b7706e0f0716ac7546bdc24ffedd0bc">kXMP_PropValueIsArray</a></code>, </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5af1cdb3b0a3e852ec55e747a1686aba04" title="Implies kXMP_PropValueIsArray, item order matters. It is serialized using an rdf:Seq...">kXMP_PropArrayIsOrdered</a></code>, </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a2596b1f0ea4600270c99102c86b5f1f1" title="Implies kXMP_PropArrayIsOrdered, items are alternates. It is serialized using an...">kXMP_PropArrayIsAlternate</a></code>, </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5af1cdb3b0a3e852ec55e747a1686aba04" title="Implies kXMP_PropValueIsArray, item order matters. It is serialized using an rdf:Seq container...">kXMP_PropArrayIsOrdered</a></code>, </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a2596b1f0ea4600270c99102c86b5f1f1" title="Implies kXMP_PropArrayIsOrdered, items are alternates. It is serialized using an rdf:Alt container...">kXMP_PropArrayIsAlternate</a></code>, </li>
<li><code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aba253f67a6cf44b7438a3f96b516846d">kXMP_PropArrayIsAltText</a></code> </li>
</ul>
-<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
-<tr><td valign="top"><em><a class="anchor" id="abed82baf7f470b522273a3e37c24c600ad6d41710c689f16d19ac26dc9f5cc506"></a><!-- doxytag: member="kXMPUtil_AllowCommas" ref="abed82baf7f470b522273a3e37c24c600ad6d41710c689f16d19ac26dc9f5cc506" args="" -->kXMPUtil_AllowCommas</em>&nbsp;</td><td>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="abed82baf7f470b522273a3e37c24c600ad6d41710c689f16d19ac26dc9f5cc506"></a>kXMPUtil_AllowCommas&#160;</td><td class="fielddoc">
<p>Allow commas in item values, default is separator. </p>
</td></tr>
</table>
-</dd>
-</dl>
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00818">818</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; {</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160;</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; <a class="code" href="XMP__Const_8h.html#abed82baf7f470b522273a3e37c24c600ad6d41710c689f16d19ac26dc9f5cc506">kXMPUtil_AllowCommas</a> = 0x10000000UL</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160;</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160;};</div><div class="ttc" id="XMP__Const_8h_html_abed82baf7f470b522273a3e37c24c600ad6d41710c689f16d19ac26dc9f5cc506"><div class="ttname"><a href="XMP__Const_8h.html#abed82baf7f470b522273a3e37c24c600ad6d41710c689f16d19ac26dc9f5cc506">kXMPUtil_AllowCommas</a></div><div class="ttdoc">Allow commas in item values, default is separator. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00821">XMP_Const.h:821</a></div></div>
+</div><!-- fragment -->
</div>
</div>
-<a class="anchor" id="ab04a0655cd1e3bcac5e8f48c18df1a57"></a><!-- doxytag: member="XMP_Const.h::@9" ref="ab04a0655cd1e3bcac5e8f48c18df1a57" args="" -->
+<a class="anchor" id="ab04a0655cd1e3bcac5e8f48c18df1a57"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -2640,34 +4146,433 @@ typedef XMP_Bool(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>XMPFile
<td class="memname">anonymous enum</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p>Option bit flags for <code><a class="el" href="classTXMPUtils.html#ab73bfa15116e6d702044542e0a43cce9" title="ApplyTemplate() modifies a working XMP object according to a template object.">TXMPUtils::ApplyTemplate()</a></code>. </p>
-<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
-<tr><td valign="top"><em><a class="anchor" id="ab04a0655cd1e3bcac5e8f48c18df1a57a872d2b769e775e281984cc63e28714ea"></a><!-- doxytag: member="kXMPTemplate_IncludeInternalProperties" ref="ab04a0655cd1e3bcac5e8f48c18df1a57a872d2b769e775e281984cc63e28714ea" args="" -->kXMPTemplate_IncludeInternalProperties</em>&nbsp;</td><td>
+<p>Option bit flags for <code><a class="el" href="classTXMPUtils.html#ab73bfa15116e6d702044542e0a43cce9" title="ApplyTemplate() modifies a working XMP object according to a template object. ">TXMPUtils::ApplyTemplate()</a></code>. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="ab04a0655cd1e3bcac5e8f48c18df1a57a872d2b769e775e281984cc63e28714ea"></a>kXMPTemplate_IncludeInternalProperties&#160;</td><td class="fielddoc">
<p>Do all properties, default is just external properties. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="ab04a0655cd1e3bcac5e8f48c18df1a57aae2e0fe43295736a15f0bb76ffe02544"></a><!-- doxytag: member="kXMPTemplate_ReplaceExistingProperties" ref="ab04a0655cd1e3bcac5e8f48c18df1a57aae2e0fe43295736a15f0bb76ffe02544" args="" -->kXMPTemplate_ReplaceExistingProperties</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="ab04a0655cd1e3bcac5e8f48c18df1a57aae2e0fe43295736a15f0bb76ffe02544"></a>kXMPTemplate_ReplaceExistingProperties&#160;</td><td class="fielddoc">
<p>Perform a Replace operation, add new properties and modify existing ones. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="ab04a0655cd1e3bcac5e8f48c18df1a57a81e1b6fd067fc9ad62bc803c98701bd5"></a><!-- doxytag: member="kXMPTemplate_ReplaceWithDeleteEmpty" ref="ab04a0655cd1e3bcac5e8f48c18df1a57a81e1b6fd067fc9ad62bc803c98701bd5" args="" -->kXMPTemplate_ReplaceWithDeleteEmpty</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="ab04a0655cd1e3bcac5e8f48c18df1a57a81e1b6fd067fc9ad62bc803c98701bd5"></a>kXMPTemplate_ReplaceWithDeleteEmpty&#160;</td><td class="fielddoc">
<p>Similar to Replace, also delete if the template has an empty value. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="ab04a0655cd1e3bcac5e8f48c18df1a57a145c259f83048b811c7b35bc3b339c42"></a><!-- doxytag: member="kXMPTemplate_AddNewProperties" ref="ab04a0655cd1e3bcac5e8f48c18df1a57a145c259f83048b811c7b35bc3b339c42" args="" -->kXMPTemplate_AddNewProperties</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="ab04a0655cd1e3bcac5e8f48c18df1a57a145c259f83048b811c7b35bc3b339c42"></a>kXMPTemplate_AddNewProperties&#160;</td><td class="fielddoc">
<p>Perform an Add operation, add properties if they don't already exist. </p>
</td></tr>
-<tr><td valign="top"><em><a class="anchor" id="ab04a0655cd1e3bcac5e8f48c18df1a57a9dac536fe6ee25de76d45bf6615abd46"></a><!-- doxytag: member="kXMPTemplate_ClearUnnamedProperties" ref="ab04a0655cd1e3bcac5e8f48c18df1a57a9dac536fe6ee25de76d45bf6615abd46" args="" -->kXMPTemplate_ClearUnnamedProperties</em>&nbsp;</td><td>
+<tr><td class="fieldname"><a class="anchor" id="ab04a0655cd1e3bcac5e8f48c18df1a57a9dac536fe6ee25de76d45bf6615abd46"></a>kXMPTemplate_ClearUnnamedProperties&#160;</td><td class="fielddoc">
<p>Perform a Clear operation, keep named properties and delete everything else. </p>
</td></tr>
</table>
-</dd>
-</dl>
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00826">826</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; {</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160;</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; <a class="code" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a872d2b769e775e281984cc63e28714ea">kXMPTemplate_IncludeInternalProperties</a> = 0x0001UL,</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160;</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; <a class="code" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57aae2e0fe43295736a15f0bb76ffe02544">kXMPTemplate_ReplaceExistingProperties</a> = 0x0002UL,</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160;</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; <a class="code" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a81e1b6fd067fc9ad62bc803c98701bd5">kXMPTemplate_ReplaceWithDeleteEmpty</a> = 0x0004UL,</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160;</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; <a class="code" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a145c259f83048b811c7b35bc3b339c42">kXMPTemplate_AddNewProperties</a> = 0x0008UL,</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160;</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; <a class="code" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a9dac536fe6ee25de76d45bf6615abd46">kXMPTemplate_ClearUnnamedProperties</a> = 0x0010UL</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160;</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160;};</div><div class="ttc" id="XMP__Const_8h_html_ab04a0655cd1e3bcac5e8f48c18df1a57a9dac536fe6ee25de76d45bf6615abd46"><div class="ttname"><a href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a9dac536fe6ee25de76d45bf6615abd46">kXMPTemplate_ClearUnnamedProperties</a></div><div class="ttdoc">Perform a Clear operation, keep named properties and delete everything else. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00841">XMP_Const.h:841</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_ab04a0655cd1e3bcac5e8f48c18df1a57aae2e0fe43295736a15f0bb76ffe02544"><div class="ttname"><a href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57aae2e0fe43295736a15f0bb76ffe02544">kXMPTemplate_ReplaceExistingProperties</a></div><div class="ttdoc">Perform a Replace operation, add new properties and modify existing ones. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00832">XMP_Const.h:832</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_ab04a0655cd1e3bcac5e8f48c18df1a57a872d2b769e775e281984cc63e28714ea"><div class="ttname"><a href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a872d2b769e775e281984cc63e28714ea">kXMPTemplate_IncludeInternalProperties</a></div><div class="ttdoc">Do all properties, default is just external properties. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00829">XMP_Const.h:829</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_ab04a0655cd1e3bcac5e8f48c18df1a57a145c259f83048b811c7b35bc3b339c42"><div class="ttname"><a href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a145c259f83048b811c7b35bc3b339c42">kXMPTemplate_AddNewProperties</a></div><div class="ttdoc">Perform an Add operation, add properties if they don&amp;#39;t already exist. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00838">XMP_Const.h:838</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_ab04a0655cd1e3bcac5e8f48c18df1a57a81e1b6fd067fc9ad62bc803c98701bd5"><div class="ttname"><a href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a81e1b6fd067fc9ad62bc803c98701bd5">kXMPTemplate_ReplaceWithDeleteEmpty</a></div><div class="ttdoc">Similar to Replace, also delete if the template has an empty value. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00835">XMP_Const.h:835</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a84d76d32dd4ef90e5a90cf759b7e563f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563f">SeekMode</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Seek mode constants for use with <a class="el" href="classXMP__IO.html" title="Abstract base class for client-managed I/O with TXMPFiles. ">XMP_IO</a> and inside XMPFiles library code. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a84d76d32dd4ef90e5a90cf759b7e563faf52720b8c894653e4a089a9c0331ee47"></a>kXMP_SeekFromStart&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a84d76d32dd4ef90e5a90cf759b7e563fa4e179367a02390075e632aca6e115925"></a>kXMP_SeekFromCurrent&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a84d76d32dd4ef90e5a90cf759b7e563faeedc991a0194b932ae4a47307843baf6"></a>kXMP_SeekFromEnd&#160;</td><td class="fielddoc">
+</td></tr>
+</table>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00867">867</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160;{ <a class="code" href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563faf52720b8c894653e4a089a9c0331ee47">kXMP_SeekFromStart</a>, <a class="code" href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563fa4e179367a02390075e632aca6e115925">kXMP_SeekFromCurrent</a>, <a class="code" href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563faeedc991a0194b932ae4a47307843baf6">kXMP_SeekFromEnd</a> };</div><div class="ttc" id="XMP__Const_8h_html_a84d76d32dd4ef90e5a90cf759b7e563fa4e179367a02390075e632aca6e115925"><div class="ttname"><a href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563fa4e179367a02390075e632aca6e115925">kXMP_SeekFromCurrent</a></div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00867">XMP_Const.h:867</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a84d76d32dd4ef90e5a90cf759b7e563faf52720b8c894653e4a089a9c0331ee47"><div class="ttname"><a href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563faf52720b8c894653e4a089a9c0331ee47">kXMP_SeekFromStart</a></div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00867">XMP_Const.h:867</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a84d76d32dd4ef90e5a90cf759b7e563faeedc991a0194b932ae4a47307843baf6"><div class="ttname"><a href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563faeedc991a0194b932ae4a47307843baf6">kXMP_SeekFromEnd</a></div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00867">XMP_Const.h:867</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Variable Documentation</h2>
+<a class="anchor" id="adc83d1c8e3a881f2a1623f63a6cb9ff0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const XMP_Uns8 kXMP_Bool_False = 0</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00104">104</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7ed33c3b64b4f8a3950f4814487e30e4"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">const XMP_Int16 Max_XMP_Int16 = ( (XMP_Int16) 0x7FFF )</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00121">121</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab2a4c6f608993eed8b8e96b875afbaf3"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">const XMP_Int32 Max_XMP_Int32 = ( (XMP_Int32) 0x7FFFFFFF )</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00123">123</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
</div>
+<a class="anchor" id="a5783bb97f7a4837bf1938332d65804d8"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">const XMP_Int64 Max_XMP_Int64 = ( (XMP_Int64) 0x7FFFFFFFFFFFFFFFLL )</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00125">125</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a914a8ec6b55c89c7ed098e4d3b878989"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">const XMP_Int8 Max_XMP_Int8 = ( (XMP_Int8) 0x7F )</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00119">119</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a950af5f297a8aba136e4fb0bb69b3167"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">const XMP_Uns16 Max_XMP_Uns16 = ( (XMP_Uns16) 0xFFFF )</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00112">112</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="adc36ebc09374b4400ebc68df37a5abad"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">const XMP_Uns32 Max_XMP_Uns32 = ( (XMP_Uns32) 0xFFFFFFFF )</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00114">114</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa6ce5fadc73345c8db588922dc731c89"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">const XMP_Uns64 Max_XMP_Uns64 = ( (XMP_Uns64) 0xFFFFFFFFFFFFFFFFLL )</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00116">116</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa803470bc9b20fc47b0108559e4bccb4"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">const XMP_Uns8 Max_XMP_Uns8 = ( (XMP_Uns8) 0xFF )</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00110">110</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abd313c6844b00bcfdbc43b0405fa8364"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">const XMP_Int16 Min_XMP_Int16 = ( (XMP_Int16) 0x8000 )</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00120">120</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a778d64a8002543649fcd4e27b332aa38"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">const XMP_Int32 Min_XMP_Int32 = ( (XMP_Int32) 0x80000000 )</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00122">122</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a422fdf9dc276d3edacde0826d43dfea5"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">const XMP_Int64 Min_XMP_Int64 = ( (XMP_Int64) 0x8000000000000000LL )</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00124">124</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aad7fed121559de43b53067c0bcb9baae"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">const XMP_Int8 Min_XMP_Int8 = ( (XMP_Int8) 0x80 )</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00118">118</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae5d5ff926903623a451ada7cb840d815"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">const XMP_Uns16 Min_XMP_Uns16 = ( (XMP_Uns16) 0x00 )</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00111">111</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae8936caf3fa038bd64705caf6ab2329f"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">const XMP_Uns32 Min_XMP_Uns32 = ( (XMP_Uns32) 0x00 )</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00113">113</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae3052e3b7b6f4c6163331ead175a7e28"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">const XMP_Uns64 Min_XMP_Uns64 = ( (XMP_Uns64) 0x00 )</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00115">115</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4abfa333cf45f8849b93c6a630537de2"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">const XMP_Uns8 Min_XMP_Uns8 = ( (XMP_Uns8) 0x00 )</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00109">109</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
</div>
</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
</body>
</html>
diff --git a/docs/API/XMP__Const_8h.js b/docs/API/XMP__Const_8h.js
new file mode 100755
index 0000000..90f4e56
--- /dev/null
+++ b/docs/API/XMP__Const_8h.js
@@ -0,0 +1,353 @@
+var XMP__Const_8h =
+[
+ [ "XMP_DateTime", "structXMP__DateTime.html", "structXMP__DateTime" ],
+ [ "XMP_PacketInfo", "structXMP__PacketInfo.html", "structXMP__PacketInfo" ],
+ [ "XMP_Error", "classXMP__Error.html", "classXMP__Error" ],
+ [ "XMP_VersionInfo", "structXMP__VersionInfo.html", "structXMP__VersionInfo" ],
+ [ "ConvertBoolToXMP_Bool", "XMP__Const_8h.html#ae6037ae90db1ec7d7c988aec7a8319cb", null ],
+ [ "ConvertXMP_BoolToBool", "XMP__Const_8h.html#ade06e740748eefe529211dd891bf68f4", null ],
+ [ "kXMP_ArrayLastItem", "XMP__Const_8h.html#a9549b9a138a896257b5a70176d125317", null ],
+ [ "kXMP_FalseStr", "XMP__Const_8h.html#a2dc55b533ed63ed7ff0c3be16a97e278", null ],
+ [ "kXMP_NoOptions", "XMP__Const_8h.html#aff1df9f3cf050f8b8d3a574db3c3326b", null ],
+ [ "kXMP_NS_AdobeStockPhoto", "XMP__Const_8h.html#a9d5b4ecd6214d080645718af1db77650", null ],
+ [ "kXMP_NS_AEScart", "XMP__Const_8h.html#a1245d5cd54d23588e74b883d9fda6a93", null ],
+ [ "kXMP_NS_ASF", "XMP__Const_8h.html#a3ef3c4c015092f8a4b94c4f8895cd955", null ],
+ [ "kXMP_NS_BWF", "XMP__Const_8h.html#a7837e8541712f9f7d5118df1b0905946", null ],
+ [ "kXMP_NS_CameraRaw", "XMP__Const_8h.html#a19da1e091dee6b6b471c05f1b73d6b3a", null ],
+ [ "kXMP_NS_CreatorAtom", "XMP__Const_8h.html#ad9c3d81fdbaf57f20bdf92d263d9d71a", null ],
+ [ "kXMP_NS_DC", "XMP__Const_8h.html#a44453f0d0a1dd295d41722c2387b36fa", null ],
+ [ "kXMP_NS_DICOM", "XMP__Const_8h.html#a10f6b8c9d551ec50ea536026b2c2b315", null ],
+ [ "kXMP_NS_DM", "XMP__Const_8h.html#a66fc3e8331cc92dc01cf2bbe74510baa", null ],
+ [ "kXMP_NS_EXIF", "XMP__Const_8h.html#ad12182e1df1652f56b5eec60c1fcdd8f", null ],
+ [ "kXMP_NS_EXIF_Aux", "XMP__Const_8h.html#ab8f5ed7baf102b78c816f2e86e142cfd", null ],
+ [ "kXMP_NS_ExifEX", "XMP__Const_8h.html#abff75489a4300787e251f60694497ca8", null ],
+ [ "kXMP_NS_IPTCCore", "XMP__Const_8h.html#ab794d3d798daf75a963398347dcbb79b", null ],
+ [ "kXMP_NS_IPTCExt", "XMP__Const_8h.html#a12ca045d4c12992ec8f6c1003523de20", null ],
+ [ "kXMP_NS_iXML", "XMP__Const_8h.html#acc8062c03735e764865786f6064d06ba", null ],
+ [ "kXMP_NS_JP2K", "XMP__Const_8h.html#a7426c6b7314b9b29b443f7f401e49be0", null ],
+ [ "kXMP_NS_JPEG", "XMP__Const_8h.html#a35020e150227e9b8cea205958616f439", null ],
+ [ "kXMP_NS_PDF", "XMP__Const_8h.html#a0bcb67d0dd0922504e3da7ca5c40c82a", null ],
+ [ "kXMP_NS_PDFA_Extension", "XMP__Const_8h.html#ac47561b29c7d5e852e014e1391e38591", null ],
+ [ "kXMP_NS_PDFA_Field", "XMP__Const_8h.html#a4f8605dd83a33b8ef13cb8b06f356b2e", null ],
+ [ "kXMP_NS_PDFA_ID", "XMP__Const_8h.html#ae29f21b2ae6b86fdefc50c92c3157683", null ],
+ [ "kXMP_NS_PDFA_Property", "XMP__Const_8h.html#a66eb8f71efe1b64635ab41ee86673436", null ],
+ [ "kXMP_NS_PDFA_Schema", "XMP__Const_8h.html#acc810bb3c0fbab74ba54fca90153e1a0", null ],
+ [ "kXMP_NS_PDFA_Type", "XMP__Const_8h.html#a02fa37c61718c9712000b834df5d4fdc", null ],
+ [ "kXMP_NS_PDFX", "XMP__Const_8h.html#a74c2a786c7ac349f4226c9694e3be641", null ],
+ [ "kXMP_NS_PDFX_ID", "XMP__Const_8h.html#a77d8c46d01eab6760579ffa049c80724", null ],
+ [ "kXMP_NS_Photoshop", "XMP__Const_8h.html#aa1a6f38ebfcdb281c5bf2809859167c7", null ],
+ [ "kXMP_NS_PLUS", "XMP__Const_8h.html#a650c052a916eefa95f0d0ff7a34eb9a0", null ],
+ [ "kXMP_NS_PNG", "XMP__Const_8h.html#abaf8c3257026b73a8d50cf43fa488c5d", null ],
+ [ "kXMP_NS_PSAlbum", "XMP__Const_8h.html#a465d0a0810455207ffa0346f9c462743", null ],
+ [ "kXMP_NS_RDF", "XMP__Const_8h.html#a276fac0f70893607afa3f09030ad84c7", null ],
+ [ "kXMP_NS_RIFFINFO", "XMP__Const_8h.html#ad1bc498d01dcc4a690e007b68a695e3a", null ],
+ [ "kXMP_NS_Script", "XMP__Const_8h.html#a57ce38d4e4b01739c939d8a46e23895e", null ],
+ [ "kXMP_NS_SWF", "XMP__Const_8h.html#a8749291bd81f9cb64535b10ef996cb73", null ],
+ [ "kXMP_NS_TIFF", "XMP__Const_8h.html#a673355818b7b9224e8fec0fbc60ba00c", null ],
+ [ "kXMP_NS_WAV", "XMP__Const_8h.html#ae802d5ee6fe4802eb5ad692a0b8385ea", null ],
+ [ "kXMP_NS_XML", "XMP__Const_8h.html#a97564c70460d1f235c8a41b8ac40cfe9", null ],
+ [ "kXMP_NS_XMP", "XMP__Const_8h.html#a030875c9dc0861c9251a3374ca14a376", null ],
+ [ "kXMP_NS_XMP_BJ", "XMP__Const_8h.html#a308e156c325618acb2172e550929ebee", null ],
+ [ "kXMP_NS_XMP_Dimensions", "XMP__Const_8h.html#a9618e013619aa92ebc808b62243d2ba8", null ],
+ [ "kXMP_NS_XMP_Font", "XMP__Const_8h.html#a49e25beee90220541ecfc7ac92fb78b5", null ],
+ [ "kXMP_NS_XMP_G_IMG", "XMP__Const_8h.html#a2663db91a956937f0921f67342a31646", null ],
+ [ "kXMP_NS_XMP_Graphics", "XMP__Const_8h.html#a285d88d6d95ce0bfed19bb41c5be485f", null ],
+ [ "kXMP_NS_XMP_IdentifierQual", "XMP__Const_8h.html#ab466db52a4b85cecfa04710682c1e671", null ],
+ [ "kXMP_NS_XMP_Image", "XMP__Const_8h.html#a935641acc7d01e782ad7a457a7ff338b", null ],
+ [ "kXMP_NS_XMP_ManifestItem", "XMP__Const_8h.html#ac91c21a77be4fdc3d8be26fe37b003c8", null ],
+ [ "kXMP_NS_XMP_MM", "XMP__Const_8h.html#ac67379a9ffa425d0d7976a51c4f2f754", null ],
+ [ "kXMP_NS_XMP_Note", "XMP__Const_8h.html#af7950d7399839f17309a9b944a09be5e", null ],
+ [ "kXMP_NS_XMP_PagedFile", "XMP__Const_8h.html#ac5e9bcf97c425cf61d6f466358aab1ca", null ],
+ [ "kXMP_NS_XMP_ResourceEvent", "XMP__Const_8h.html#a861613273127156050b456eee11f6b0a", null ],
+ [ "kXMP_NS_XMP_ResourceRef", "XMP__Const_8h.html#a9bf51f2653400645f7b5087e8c4e1c77", null ],
+ [ "kXMP_NS_XMP_Rights", "XMP__Const_8h.html#ae52d761e5a4fc8c8499215d2f3d82b90", null ],
+ [ "kXMP_NS_XMP_ST_Job", "XMP__Const_8h.html#ac7dc4d65bcbba2862e410cc8cfdff6f6", null ],
+ [ "kXMP_NS_XMP_ST_Version", "XMP__Const_8h.html#ab4923bed71ab29c6aa88debe8816c0a2", null ],
+ [ "kXMP_NS_XMP_T", "XMP__Const_8h.html#a0a2d9c5f7beb27553214a7ad1df4f27e", null ],
+ [ "kXMP_NS_XMP_T_PG", "XMP__Const_8h.html#a39afb495ffb24bb3082493c6811e65d0", null ],
+ [ "kXMP_NS_XMP_Text", "XMP__Const_8h.html#a5e56ed5d1dfcbf69ddd9cdae6eea85f7", null ],
+ [ "kXMP_SchemaNode", "XMP__Const_8h.html#a56197f91b537a0c2b5b9aadbcb404545", null ],
+ [ "kXMP_TrueStr", "XMP__Const_8h.html#a4c39e0131b0e3d7db66e1cfa82b67141", null ],
+ [ "kXMP_UseNullTermination", "XMP__Const_8h.html#a8283c9596c03b6d626d5a2b7a90e23ab", null ],
+ [ "kXMPFiles_UnknownLength", "XMP__Const_8h.html#ae0901aabcf619f17cff03f08e5ed3658", null ],
+ [ "kXMPFiles_UnknownOffset", "XMP__Const_8h.html#a6a9b77b60c63781a8776f10880856bf4", null ],
+ [ "XMP_ArrayIsAlternate", "XMP__Const_8h.html#a4928f3fcb7c05bf25694b63d95aa6ce7", null ],
+ [ "XMP_ArrayIsAltText", "XMP__Const_8h.html#a57d2bb01a830b278c8e6d1ecdead52c4", null ],
+ [ "XMP_ArrayIsOrdered", "XMP__Const_8h.html#aaace3ec19d70712e4eb16f6d36de9cfb", null ],
+ [ "XMP_ArrayIsUnordered", "XMP__Const_8h.html#a67849593ac3ffe237743d301d94f1449", null ],
+ [ "XMP_CharFormIs16Bit", "XMP__Const_8h.html#a72d86d541447456a08e0d29b57a6ae24", null ],
+ [ "XMP_CharFormIs32Bit", "XMP__Const_8h.html#afd02278cadf2132a8cc1e7188715c860", null ],
+ [ "XMP_CharFormIsBigEndian", "XMP__Const_8h.html#ad799046db4440bf02e2d244372ca913c", null ],
+ [ "XMP_CharFormIsLittleEndian", "XMP__Const_8h.html#a906ec1cd2fb1631c1b5ad9ccdf9c0a6b", null ],
+ [ "XMP_CharFromSerializeForm", "XMP__Const_8h.html#a93e7900e6c9fb4057dfd685b5201057d", null ],
+ [ "XMP_CharToSerializeForm", "XMP__Const_8h.html#a42692697b1951300a6c82665ded8f781", null ],
+ [ "XMP_ClearOption", "XMP__Const_8h.html#a04133ceba1ad7a582aa63c8f4a5abf69", null ],
+ [ "XMP_GetCharSize", "XMP__Const_8h.html#a017e63e6fcd1ede112e8945c49b339e6", null ],
+ [ "XMP_MARKER_EXTENSIBILITY_BACKWARD_COMPATIBILITY", "XMP__Const_8h.html#a44054ee28ca59bd6b5823e4e47479483", null ],
+ [ "XMP_NodeIsSchema", "XMP__Const_8h.html#a18d4769112002d84e2ddd1aba6ef473c", null ],
+ [ "XMP_OptionIsClear", "XMP__Const_8h.html#a1d41f53bd1d5c88fad8322ce15e39516", null ],
+ [ "XMP_OptionIsSet", "XMP__Const_8h.html#a8d8d2810a46a2b171107f4a2387e003d", null ],
+ [ "XMP_PropHasLang", "XMP__Const_8h.html#adc4bc1a5da8c0a3d1a77366e4803680f", null ],
+ [ "XMP_PropHasQualifiers", "XMP__Const_8h.html#a10828aa191aa666aa1166c27beead2a6", null ],
+ [ "XMP_PropIsAlias", "XMP__Const_8h.html#a69a18fc954796cdbaa8771de5a476fab", null ],
+ [ "XMP_PropIsArray", "XMP__Const_8h.html#ab8cf5a7c0f5a8dfc052117638fb55324", null ],
+ [ "XMP_PropIsQualifier", "XMP__Const_8h.html#a9a555a9eb2fabe97dd57e8d2e1b077f5", null ],
+ [ "XMP_PropIsSimple", "XMP__Const_8h.html#a43aeebde901bea1932203107c690a2dc", null ],
+ [ "XMP_PropIsStruct", "XMP__Const_8h.html#a9ecd2dede6b25ecec9a430c151d74d83", null ],
+ [ "XMP_SetOption", "XMP__Const_8h.html#a10a766c47b5ea01f285501b49d20bc62", null ],
+ [ "XMP_TestOption", "XMP__Const_8h.html#aee6dc47c8013d4514ed363ae16ba2ad3", null ],
+ [ "XMPDateTime_ClearTimeZone", "XMP__Const_8h.html#a8d6dc898fe00aeaf567d7af3ec23316a", null ],
+ [ "XMPDateTime_IsDateOnly", "XMP__Const_8h.html#ae12feaba743c6b1ab1a24ae13fecbffb", null ],
+ [ "XMPDateTime_IsTimeOnly", "XMP__Const_8h.html#a10149d273250015e91931cd93b649a2e", null ],
+ [ "XMP_AbortProc", "XMP__Const_8h.html#ac2434559f67332b9d23021b894da838c", null ],
+ [ "XMP_Bool", "XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248", null ],
+ [ "XMP_ErrorSeverity", "XMP__Const_8h.html#ae4a7c9347994883250dc440566eb9f52", null ],
+ [ "XMP_FileFormat", "XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e", null ],
+ [ "XMP_Index", "XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315", null ],
+ [ "XMP_OptionBits", "XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8", null ],
+ [ "XMP_ProgressReportProc", "XMP__Const_8h.html#a01973e700ac2ba7f3debef340ccaa663", null ],
+ [ "XMP_ProgressReportWrapper", "XMP__Const_8h.html#a61eb4db5a58902c130d3b3929db624db", null ],
+ [ "XMP_Status", "XMP__Const_8h.html#a05b81829c04746826f4f85fbac76e3dd", null ],
+ [ "XMP_StringLen", "XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a", null ],
+ [ "XMP_StringPtr", "XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6", null ],
+ [ "XMP_TextOutputProc", "XMP__Const_8h.html#aa55bae1e6be4ddcefbaf214942e5b272", null ],
+ [ "XMP_TriState", "XMP__Const_8h.html#a377e4a668de99ce6ed176cef5aaf3fcd", null ],
+ [ "XMP_VersionInfo", "XMP__Const_8h.html#a57250ff934e642191654ae49c3a2c6c9", null ],
+ [ "XMPDocOpsRef", "XMP__Const_8h.html#ab516453dd7d906e911f8951983cde5f1", null ],
+ [ "XMPFiles_ErrorCallbackProc", "XMP__Const_8h.html#a7bed3dd93335821e5afa0ac2b07a9640", null ],
+ [ "XMPFiles_ErrorCallbackWrapper", "XMP__Const_8h.html#a24670f4db8bda6e113612fa0c81ffe6b", null ],
+ [ "XMPFilesRef", "XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25", null ],
+ [ "XMPIteratorRef", "XMP__Const_8h.html#a6ade57a30fb1e40d6aa9695c440fc3d2", null ],
+ [ "XMPMeta_ErrorCallbackProc", "XMP__Const_8h.html#abb3c238ce96e9198ebe4260200bfb67b", null ],
+ [ "XMPMeta_ErrorCallbackWrapper", "XMP__Const_8h.html#a32cbbc2b93eb9028d441ecb4223eb2a4", null ],
+ [ "XMPMetaRef", "XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e", null ],
+ [ "kXMPTS_Yes", "XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55bacf4bfe01497bd0d88c2af337e4bac39e", null ],
+ [ "kXMPTS_No", "XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba2a88f4d4589bf413377283843f70bc90", null ],
+ [ "kXMPTS_Maybe", "XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba7a73219cd125bb21e294ba474112a584", null ],
+ [ "kXMP_TimeWestOfUTC", "XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a511551ce156d5fd96c26ad464b837801", null ],
+ [ "kXMP_TimeIsUTC", "XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a3f41be55491204982acb39c9f6c7ad13", null ],
+ [ "kXMP_TimeEastOfUTC", "XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a68851b70cc1d2346fa21bc0b0ae6cfec", null ],
+ [ "kXMPUtil_DoAllProperties", "XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a8ddfb0572b7602a52e533d92d8b1e9fb", null ],
+ [ "kXMPUtil_ReplaceOldValues", "XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388adab4dad658d2d218c5b1e7d829b12962", null ],
+ [ "kXMPUtil_DeleteEmptyValues", "XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a97753b4c5afda9c55e807e41377d86d9", null ],
+ [ "kXMPUtil_IncludeAliases", "XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a843589b878f53d42d59258f945ad770b", null ],
+ [ "kXMP_PDFFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da17ab6d429c1550eb3cc16d2e544b78eb", null ],
+ [ "kXMP_PostScriptFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da52c90935ee28a0875a49843d463cad70", null ],
+ [ "kXMP_EPSFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad947e6da0c4d923195d93e0c53a79c4e", null ],
+ [ "kXMP_JPEGFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad752b2d3e1139e0745223a9385ef6487", null ],
+ [ "kXMP_JPEG2KFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da78b8fa38aaa2067e3e1baa0dcaa7571d", null ],
+ [ "kXMP_TIFFFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dadc0edf25d933c2a21b25449692c3ba08", null ],
+ [ "kXMP_GIFFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da851d2f4525d705cd2dcabb540d0ddc06", null ],
+ [ "kXMP_PNGFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dac989381d37de320495e4d13f9ecc6371", null ],
+ [ "kXMP_SWFFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da564a8095f65d951f451e16eb56650597", null ],
+ [ "kXMP_FLAFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dab1eeba00d1d92e313acfe68cd054daf9", null ],
+ [ "kXMP_FLVFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da455bc501088bbd8061fe3ea386a5066f", null ],
+ [ "kXMP_MOVFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daebdb172c8a75b4ead2eff2d26ed3dc37", null ],
+ [ "kXMP_AVIFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dae3a6333624e5c292caf14ad849a5e26e", null ],
+ [ "kXMP_CINFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad2935ea79b4f9253891e3a68a002c5bb", null ],
+ [ "kXMP_WAVFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dacc1fcd4e52423c0dd2966a2e92352fb8", null ],
+ [ "kXMP_MP3File", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf3ee34ed2bc26dec0e2d572eeb0de89b", null ],
+ [ "kXMP_SESFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da42cb8767d9cf16eaeb7aec68a4f224e9", null ],
+ [ "kXMP_CELFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da6c949ee85f42eaaed035591338be6789", null ],
+ [ "kXMP_MPEGFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da043afdc1db730db9ac03c505140c61c8", null ],
+ [ "kXMP_MPEG2File", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dab58eaebed494530072ad990ac7a9807a", null ],
+ [ "kXMP_MPEG4File", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da89e6282c3f0c8966d788500f5d8eaa91", null ],
+ [ "kXMP_MXFFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da4b3477bdc53fae1511104fc54f88d134", null ],
+ [ "kXMP_WMAVFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da78c62f7c10b16b1a862d93f6226a4622", null ],
+ [ "kXMP_AIFFFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf093d01e7e9cc55a7d1e204498521fc3", null ],
+ [ "kXMP_REDFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daab032aa36aec082c6b3a8300548346f5", null ],
+ [ "kXMP_P2File", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dabad9584845edf66f2f8fc3c336977e34", null ],
+ [ "kXMP_XDCAM_FAMFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da5f78caa0871695cc92e058e4f4b2dd57", null ],
+ [ "kXMP_XDCAM_SAMFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da64fe7908df6341e13d9d8c8199cdf852", null ],
+ [ "kXMP_XDCAM_EXFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da45bf9b21d5ffed3594fbd585c47cc4fc", null ],
+ [ "kXMP_AVCHDFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafc5ff976e78df2d79d651de818b011f2", null ],
+ [ "kXMP_SonyHDVFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daa0edb070c11f87c3dad9f8f7a83b9b5e", null ],
+ [ "kXMP_CanonXFFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafa11d905db1236494e555956cb2f90ef", null ],
+ [ "kXMP_AVCUltraFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf32bab632c45ee7d960a5b74c9d61155", null ],
+ [ "kXMP_HTMLFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da542634e6051139c44fd7b92d08c64760", null ],
+ [ "kXMP_XMLFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad217b996403fa13caef3d6e978023124", null ],
+ [ "kXMP_TextFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da27051cd824d3ae7bb59e3af7a7908ffd", null ],
+ [ "kXMP_SVGFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf775c60f1da0e8c34590744a89e66c79", null ],
+ [ "kXMP_PhotoshopFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da22b478a9d0d52d12e8e4a1181024eb1c", null ],
+ [ "kXMP_IllustratorFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da82935c41c6222ff4cca954278f18e554", null ],
+ [ "kXMP_InDesignFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da79cbf96ecc4ac3e0ebfb2d182bc75e60", null ],
+ [ "kXMP_AEProjectFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da5fb9e99541bbb2d8e375d0cc9fd92a2e", null ],
+ [ "kXMP_AEProjTemplateFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dada5b138722448c4d4595fe760668c3df", null ],
+ [ "kXMP_AEFilterPresetFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafd8d3d1c8c84bc6ab773f1298b3938f0", null ],
+ [ "kXMP_EncoreProjectFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dae28efb65bde55f3f8ddfd1fd8a168e2a", null ],
+ [ "kXMP_PremiereProjectFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daeff4f68cd5162370f7bf938a868e280d", null ],
+ [ "kXMP_PremiereTitleFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da1ad712bbd349dc899ca1e71971032b0a", null ],
+ [ "kXMP_UCFFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da96804f7b8ce83786051c4dac4930aa96", null ],
+ [ "kXMP_UnknownFile", "XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719", null ],
+ [ "kXMP_CharLittleEndianMask", "XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8a0bcf31bfc6bd3bbd5f80ef25f21b4391", null ],
+ [ "kXMP_Char16BitMask", "XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8ac9b8b24a75e4e325a49e3730b8e3c5ed", null ],
+ [ "kXMP_Char32BitMask", "XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8a705cebe9f5f6700f039a153d394b4f2a", null ],
+ [ "kXMP_Char8Bit", "XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9eaf5b20dd9abbef29169a362b265049637", null ],
+ [ "kXMP_Char16BitBig", "XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea0966bca9b241646f6a730f96c5c14a2d", null ],
+ [ "kXMP_Char16BitLittle", "XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea19b97b941d6586031190025225ee0eaa", null ],
+ [ "kXMP_Char32BitBig", "XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea87f8231aec6dd125baf77c9f3f918fbc", null ],
+ [ "kXMP_Char32BitLittle", "XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea859e7aa88e7dfd3f55ad2b6445a4708e", null ],
+ [ "kXMP_CharUnknown", "XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea6c37f0724299a9c88e2f622d3246d63b", null ],
+ [ "kXMP_PacketInfoVersion", "XMP__Const_8h.html#a16af7b253440dadd46a80a4b9fddba4da767b4847575a8de28e691be660d43817", null ],
+ [ "kXMPFiles_IgnoreLocalText", "XMP__Const_8h.html#aba01db17f4a2bfbc3db60dc172972a25a9b9c1ef01e49193a167c40156df07b50", null ],
+ [ "kXMPFiles_ServerMode", "XMP__Const_8h.html#aba01db17f4a2bfbc3db60dc172972a25aee2f09481347c29d6c06951b0d81e145", null ],
+ [ "kXMPFiles_CanInjectXMP", "XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea23a3eb2a5e95292036a93ad6666fa388", null ],
+ [ "kXMPFiles_CanExpand", "XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea126c9cc056f6569c424431edbcb9521c", null ],
+ [ "kXMPFiles_CanRewrite", "XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea8957f1ef358b4ab3a1df519903f2ae07", null ],
+ [ "kXMPFiles_PrefersInPlace", "XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceab55e1873e67048928de3fc47550678c3", null ],
+ [ "kXMPFiles_CanReconcile", "XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceafc2bc7cfdd28a326788d563ec0357694", null ],
+ [ "kXMPFiles_AllowsOnlyXMP", "XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea4a183c3ec4994cf09993e5b31dee9733", null ],
+ [ "kXMPFiles_ReturnsRawPacket", "XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceadb116eed738d1fcdfe4ab9c1635e08ea", null ],
+ [ "kXMPFiles_HandlerOwnsFile", "XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceafc2c5b585e698ebf24a9379de35954b4", null ],
+ [ "kXMPFiles_AllowsSafeUpdate", "XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea9fe958d4ccde02516a3a267db63874cd", null ],
+ [ "kXMPFiles_NeedsReadOnlyPacket", "XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceaee13099f78018a5e1ce033266c27e999", null ],
+ [ "kXMPFiles_UsesSidecarXMP", "XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcead3027b786992e2a4762a4fa37c92943c", null ],
+ [ "kXMPFiles_FolderBasedFormat", "XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceaa2a6a4b744b40055387234632b688fcd", null ],
+ [ "kXMPFiles_CanNotifyProgress", "XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea17578d45ae3c09a8d08189ea544052b1", null ],
+ [ "kXMPFiles_NeedsPreloading", "XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea798c55f5144eedde76f8329a056210b2", null ],
+ [ "kXMPFiles_OpenForRead", "XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa4c61ec4ed571dbc5f1832ff6772320d2", null ],
+ [ "kXMPFiles_OpenForUpdate", "XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa91fa388b3888bcb6a68615537b66a49b", null ],
+ [ "kXMPFiles_OpenOnlyXMP", "XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaa58279b2b1311242e7374117f455bb96", null ],
+ [ "kXMPFiles_ForceGivenHandler", "XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaab8cbbeef0e99d246907a4375766e21a2", null ],
+ [ "kXMPFiles_OpenStrictly", "XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa0bef4db2ecdaf82a85df9e9d417aab18", null ],
+ [ "kXMPFiles_OpenUseSmartHandler", "XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaf6332435c7fc89cb0b7381e13fe43646", null ],
+ [ "kXMPFiles_OpenUsePacketScanning", "XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa77b47c63e579b28cbd25083ceb58c285", null ],
+ [ "kXMPFiles_OpenLimitedScanning", "XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa77f34b1873bb2584feabe26a2c8f1182", null ],
+ [ "kXMPFiles_OpenRepairFile", "XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa05acd568597f72b4812b432ea6cf606a", null ],
+ [ "kXMPFiles_OptimizeFileLayout", "XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaf5f2ebd401758a14dc52c5ee403303b5", null ],
+ [ "kXMPFiles_UpdateSafely", "XMP__Const_8h.html#a6b7b47dd702d9e331586d485013fd1eaadbf8d744f355ef9800a4ec44325baf54", null ],
+ [ "kXMPErrSev_Recoverable", "XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a068fdc8c88dcce62a7b42788a572af61", null ],
+ [ "kXMPErrSev_OperationFatal", "XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960afb962bdcf570af9aef4e32b5f279d1a4", null ],
+ [ "kXMPErrSev_FileFatal", "XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a2bd1ff3ba036640f0c76d68a03cf94f7", null ],
+ [ "kXMPErrSev_ProcessFatal", "XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a768126806f8c7b7c107314610125deb3", null ],
+ [ "kXMP_PropValueIsURI", "XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aab51f87b5c48f47f5cefb9e03293dafb", null ],
+ [ "kXMP_PropHasQualifiers", "XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a8e34a33a2eed56499d4f6f62da25d159", null ],
+ [ "kXMP_PropIsQualifier", "XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a30146ed5209f5c3eb4eeb1fd8e4fb9fe", null ],
+ [ "kXMP_PropHasLang", "XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a3fa5ed87edc731bfb3817f58ba70a217", null ],
+ [ "kXMP_PropHasType", "XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aeff16fdf167afc73db25b30b529bd9d5", null ],
+ [ "kXMP_PropValueIsStruct", "XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e", null ],
+ [ "kXMP_PropValueIsArray", "XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a9b7706e0f0716ac7546bdc24ffedd0bc", null ],
+ [ "kXMP_PropArrayIsUnordered", "XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a0d70c23394c0676657c89de5491192c0", null ],
+ [ "kXMP_PropArrayIsOrdered", "XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5af1cdb3b0a3e852ec55e747a1686aba04", null ],
+ [ "kXMP_PropArrayIsAlternate", "XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a2596b1f0ea4600270c99102c86b5f1f1", null ],
+ [ "kXMP_PropArrayIsAltText", "XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aba253f67a6cf44b7438a3f96b516846d", null ],
+ [ "kXMP_PropIsAlias", "XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5ab975c19fb5c50f732a1a0d84dadb7c37", null ],
+ [ "kXMP_PropHasAliases", "XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a1f819ef281d1f52c4c12d5d02f49d3f0", null ],
+ [ "kXMP_PropIsInternal", "XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a48097c6ea309f240965d77ab564a5464", null ],
+ [ "kXMP_PropIsStable", "XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a81dcd06251771a0ddee6c1e36128c65c", null ],
+ [ "kXMP_PropIsDerived", "XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a0d898ea7f6b3db513bb24f8a6a285877", null ],
+ [ "kXMP_PropArrayFormMask", "XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a6b5b5f4b869994b7390edc9589745e9f", null ],
+ [ "kXMP_PropCompositeMask", "XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a60a9f26fb66c2e65cf40d9bc44968956", null ],
+ [ "kXMP_ImplReservedMask", "XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5ae154b58429b257b18963ba3503e67974", null ],
+ [ "kXMPErr_NoError", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ae2aec0f3b8db282cbba40e4bcf746ba9", null ],
+ [ "kXMPErr_Unknown", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14813595824de97382fffeae7b6fe581", null ],
+ [ "kXMPErr_TBD", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409acd9fa1b621efafd5b218e3a785cbeda1", null ],
+ [ "kXMPErr_Unavailable", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac7ac408582c194cc723a24acb8b4e4c3", null ],
+ [ "kXMPErr_BadObject", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a115f3d761d2cad952aab23f35cbdf3a1", null ],
+ [ "kXMPErr_BadParam", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a52d197a8b0af3c55f16958162a4132f1", null ],
+ [ "kXMPErr_BadValue", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a716956a038782e595ce61d3fbdd1a25a", null ],
+ [ "kXMPErr_AssertFailure", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14bd6c24087d280c722c1a044eec27d6", null ],
+ [ "kXMPErr_EnforceFailure", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa856bb36a9742d8542b483e00fc6511b", null ],
+ [ "kXMPErr_Unimplemented", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a3de1ac8f4e4afb705d5a4654cb9579e2", null ],
+ [ "kXMPErr_InternalFailure", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a8babbd758d2c64fd04e85fa48e0675c0", null ],
+ [ "kXMPErr_Deprecated", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14342c486ddf394ebc110a446becbfa7", null ],
+ [ "kXMPErr_ExternalFailure", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a82941dc15c6ccde6b8fb2f9cc85c2eeb", null ],
+ [ "kXMPErr_UserAbort", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4ba7b1a57629e4994a0f7a515d51195", null ],
+ [ "kXMPErr_StdException", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5322df07e2a7792824d2468c4837f1cb", null ],
+ [ "kXMPErr_UnknownException", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aac7558097a1f5a0f99097199f1bf8ff4", null ],
+ [ "kXMPErr_NoMemory", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a69eb7fef422fbca62cdbc554afffd813", null ],
+ [ "kXMPErr_ProgressAbort", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5227060f282a86c8ea1a944107751dd1", null ],
+ [ "kXMPErr_BadSchema", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2bc66eec6ce830979089d5c336f75539", null ],
+ [ "kXMPErr_BadXPath", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a3f1efec0aa5452f43c55c05aba616ef7", null ],
+ [ "kXMPErr_BadOptions", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a40ca77d98bd366442bb8d438c420a444", null ],
+ [ "kXMPErr_BadIndex", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a31adb57da79b4fb1f1f5f999ec740010", null ],
+ [ "kXMPErr_BadIterPosition", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2584fc813bfcd9158b7adf28a3454bb9", null ],
+ [ "kXMPErr_BadParse", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a052b1b525fba7da8c98be5c135f434b8", null ],
+ [ "kXMPErr_BadSerialize", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4f936ff6788ce17f6098b7cbda77ed9", null ],
+ [ "kXMPErr_BadFileFormat", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa0a05e07925d1f3daf5f36f6da0840f8", null ],
+ [ "kXMPErr_NoFileHandler", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a10fa053f279fed01b075f34a70f11795", null ],
+ [ "kXMPErr_TooLargeForJPEG", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa9c1c20e53db12b20068d830a8990c0b", null ],
+ [ "kXMPErr_NoFile", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2874a5dcddf253a17d75a147b2ed4933", null ],
+ [ "kXMPErr_FilePermission", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a577b0e80acf44125f0dc49e5885e0824", null ],
+ [ "kXMPErr_DiskSpace", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa2f19dfd8ce27b5713c79e34f2052e40", null ],
+ [ "kXMPErr_ReadError", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2a17df0c0b690f5b7829bc4ca16efce2", null ],
+ [ "kXMPErr_WriteError", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409afca1d169d7e3cb3ba84c81700c1b9b22", null ],
+ [ "kXMPErr_BadBlockFormat", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aacc6262e9c1fd1a64e3d10cedfb7dcb1", null ],
+ [ "kXMPErr_FilePathNotAFile", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a0819111429c734ca5ef895c193846351", null ],
+ [ "kXMPErr_RejectedFileExtension", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad9d8c98663e3ead894841807ab4548f8", null ],
+ [ "kXMPErr_BadXML", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac57f1cf1c24778536fd32972e87334c5", null ],
+ [ "kXMPErr_BadRDF", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5464b823e619618d9aa58433cdb45a8e", null ],
+ [ "kXMPErr_BadXMP", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a211bb632ed1264d9e2236f35c6414821", null ],
+ [ "kXMPErr_EmptyIterator", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a078c69d0d76f25187a11981a2552b179", null ],
+ [ "kXMPErr_BadUnicode", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4cf86fa29624c5e19111e09a97fe05f", null ],
+ [ "kXMPErr_BadTIFF", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aecd25299aa177de7bc7f3674fcf2e22d", null ],
+ [ "kXMPErr_BadJPEG", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad685e1f839e3bc53dfc55611a0803cee", null ],
+ [ "kXMPErr_BadPSD", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad98fc9a9c050e9fc19c3af9c8abb2d6d", null ],
+ [ "kXMPErr_BadPSIR", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a1606a687cb790af16dc561b2a8f2e6a3", null ],
+ [ "kXMPErr_BadIPTC", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a23b2d7cab10b3d80549e6b60855bb15e", null ],
+ [ "kXMPErr_BadMPEG", "XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad596daed4ac92f8bf7871669d03effad", null ],
+ [ "kXMP_InsertBeforeItem", "XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04a873411f673fc2a6337083fd024df727f", null ],
+ [ "kXMP_InsertAfterItem", "XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04a98cedd5fa29d47abb2ac8903ac7f5a05", null ],
+ [ "kXMP_DeleteExisting", "XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04addd07b4a38b25ab3841e28a9cb169d1c", null ],
+ [ "kXMP_PropValueOptionsMask", "XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04ad1b42a8a4c479d9bfaf406b79f2e1465", null ],
+ [ "kXMP_PropArrayLocationMask", "XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04aef8c1934a17b0e5d8f0b20a7e89df0df", null ],
+ [ "kXMP_RequireXMPMeta", "XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca1e533852436acf75f594a4fb50a64400", null ],
+ [ "kXMP_ParseMoreBuffers", "XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca79b36427b7bf0c0a1ed010a44dec2d3e", null ],
+ [ "kXMP_StrictAliasing", "XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca7107906eab0e1fa6f9f2dc6254ad88b1", null ],
+ [ "kXMP_OmitPacketWrapper", "XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadbb9e4c7ee139da0dd4126ddea794c76", null ],
+ [ "kXMP_ReadOnlyPacket", "XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea238c792322c5bd5f9e4db3165e01f9d6", null ],
+ [ "kXMP_UseCompactFormat", "XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea041dc6b7b8684be7112ae40f5f259ebb", null ],
+ [ "kXMP_UseCanonicalFormat", "XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea15e3fb0e64614c574ed554f2f72c0a5d", null ],
+ [ "kXMP_IncludeThumbnailPad", "XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea0b659b3b544c7a5a076fbd3132cd7f7a", null ],
+ [ "kXMP_ExactPacketLength", "XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadb35599da481cc22ea6342b7b4de6bc6", null ],
+ [ "kXMP_OmitAllFormatting", "XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea79230f1d70d2625f7650db6ff5b1ea29", null ],
+ [ "kXMP_OmitXMPMetaElement", "XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea9fb498d749d939e2ba9adf555a75b856", null ],
+ [ "kXMP_IncludeRDFHash", "XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea23054ea4ab89dfd802f14cb389e18745", null ],
+ [ "_XMP_LittleEndian_Bit", "XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eaa646a732a5b11cd8354ca0c3686ef04d", null ],
+ [ "_XMP_UTF16_Bit", "XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea688324384883724626ddd5597eb45739", null ],
+ [ "_XMP_UTF32_Bit", "XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea540bbd27859990185eb488442579768b", null ],
+ [ "kXMP_EncodingMask", "XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eaeb79571cac99ee97feefb0347b1c1845", null ],
+ [ "kXMP_EncodeUTF8", "XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadc8f241694f5a758e5ee3f6db69d02ab", null ],
+ [ "kXMP_EncodeUTF16Big", "XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea310e4cbf639e783163778566b439f01d", null ],
+ [ "kXMP_EncodeUTF16Little", "XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eafc6417e382c98a2d507830de62fd4830", null ],
+ [ "kXMP_EncodeUTF32Big", "XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea793e99d9ea83f0aadd5b4193a95ea713", null ],
+ [ "kXMP_EncodeUTF32Little", "XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eae0137d98ea990fa23d292489031ba09e", null ],
+ [ "kXMP_IterClassMask", "XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a93f77b837d89759af3a721712c13f044", null ],
+ [ "kXMP_IterProperties", "XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635aa0643c076a3b3737ff88ed20f16afd2b", null ],
+ [ "kXMP_IterAliases", "XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a3333450505cd3712320aeac895e541b9", null ],
+ [ "kXMP_IterNamespaces", "XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635aa325d9ffba68a934f0a0a0f6ecfc2f7b", null ],
+ [ "kXMP_IterJustChildren", "XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635ab26e1a38d1d0343fcc5bdaab1b60e3ed", null ],
+ [ "kXMP_IterJustLeafNodes", "XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a4589f99b5b4a55e785e3baf4fe1d9b19", null ],
+ [ "kXMP_IterJustLeafName", "XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635acf22e638f4144bcec8207b2ab69bb344", null ],
+ [ "kXMP_IterOmitQualifiers", "XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a1b91947105ae68c48c5d5e36aa70d101", null ],
+ [ "kXMP_IterSkipSubtree", "XMP__Const_8h.html#a0411cd49bb5b71852cecd93bcbf0ca2dab0b540cd3841f411471a827f833c606e", null ],
+ [ "kXMP_IterSkipSiblings", "XMP__Const_8h.html#a0411cd49bb5b71852cecd93bcbf0ca2da2537b4b8db838f85b47988b198cd2a12", null ],
+ [ "kXMPUtil_AllowCommas", "XMP__Const_8h.html#abed82baf7f470b522273a3e37c24c600ad6d41710c689f16d19ac26dc9f5cc506", null ],
+ [ "kXMPTemplate_IncludeInternalProperties", "XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a872d2b769e775e281984cc63e28714ea", null ],
+ [ "kXMPTemplate_ReplaceExistingProperties", "XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57aae2e0fe43295736a15f0bb76ffe02544", null ],
+ [ "kXMPTemplate_ReplaceWithDeleteEmpty", "XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a81e1b6fd067fc9ad62bc803c98701bd5", null ],
+ [ "kXMPTemplate_AddNewProperties", "XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a145c259f83048b811c7b35bc3b339c42", null ],
+ [ "kXMPTemplate_ClearUnnamedProperties", "XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a9dac536fe6ee25de76d45bf6615abd46", null ],
+ [ "SeekMode", "XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563f", [
+ [ "kXMP_SeekFromStart", "XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563faf52720b8c894653e4a089a9c0331ee47", null ],
+ [ "kXMP_SeekFromCurrent", "XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563fa4e179367a02390075e632aca6e115925", null ],
+ [ "kXMP_SeekFromEnd", "XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563faeedc991a0194b932ae4a47307843baf6", null ]
+ ] ],
+ [ "kXMP_Bool_False", "XMP__Const_8h.html#adc83d1c8e3a881f2a1623f63a6cb9ff0", null ],
+ [ "Max_XMP_Int16", "XMP__Const_8h.html#a7ed33c3b64b4f8a3950f4814487e30e4", null ],
+ [ "Max_XMP_Int32", "XMP__Const_8h.html#ab2a4c6f608993eed8b8e96b875afbaf3", null ],
+ [ "Max_XMP_Int64", "XMP__Const_8h.html#a5783bb97f7a4837bf1938332d65804d8", null ],
+ [ "Max_XMP_Int8", "XMP__Const_8h.html#a914a8ec6b55c89c7ed098e4d3b878989", null ],
+ [ "Max_XMP_Uns16", "XMP__Const_8h.html#a950af5f297a8aba136e4fb0bb69b3167", null ],
+ [ "Max_XMP_Uns32", "XMP__Const_8h.html#adc36ebc09374b4400ebc68df37a5abad", null ],
+ [ "Max_XMP_Uns64", "XMP__Const_8h.html#aa6ce5fadc73345c8db588922dc731c89", null ],
+ [ "Max_XMP_Uns8", "XMP__Const_8h.html#aa803470bc9b20fc47b0108559e4bccb4", null ],
+ [ "Min_XMP_Int16", "XMP__Const_8h.html#abd313c6844b00bcfdbc43b0405fa8364", null ],
+ [ "Min_XMP_Int32", "XMP__Const_8h.html#a778d64a8002543649fcd4e27b332aa38", null ],
+ [ "Min_XMP_Int64", "XMP__Const_8h.html#a422fdf9dc276d3edacde0826d43dfea5", null ],
+ [ "Min_XMP_Int8", "XMP__Const_8h.html#aad7fed121559de43b53067c0bcb9baae", null ],
+ [ "Min_XMP_Uns16", "XMP__Const_8h.html#ae5d5ff926903623a451ada7cb840d815", null ],
+ [ "Min_XMP_Uns32", "XMP__Const_8h.html#ae8936caf3fa038bd64705caf6ab2329f", null ],
+ [ "Min_XMP_Uns64", "XMP__Const_8h.html#ae3052e3b7b6f4c6163331ead175a7e28", null ],
+ [ "Min_XMP_Uns8", "XMP__Const_8h.html#a4abfa333cf45f8849b93c6a630537de2", null ]
+]; \ No newline at end of file
diff --git a/docs/API/XMP__Const_8h__incl.png b/docs/API/XMP__Const_8h__incl.png
deleted file mode 100644
index 966d95c..0000000
--- a/docs/API/XMP__Const_8h__incl.png
+++ /dev/null
Binary files differ
diff --git a/docs/API/XMP__Const_8h_source.html b/docs/API/XMP__Const_8h_source.html
index b0ce7ef..76154d1 100644..100755
--- a/docs/API/XMP__Const_8h_source.html
+++ b/docs/API/XMP__Const_8h_source.html
@@ -1,944 +1,340 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: XMP_Const.h Source File</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMP_Const.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
- <li><a href="files.html"><span>File&nbsp;List</span></a></li>
- <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-<h1>XMP_Const.h</h1><a href="XMP__Const_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef __XMP_Const_h__</span>
-<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define __XMP_Const_h__ 1</span>
-<a name="l00003"></a>00003 <span class="preprocessor"></span>
-<a name="l00004"></a>00004 <span class="comment">// =================================================================================================</span>
-<a name="l00005"></a>00005 <span class="comment">// Copyright 2002 Adobe Systems Incorporated</span>
-<a name="l00006"></a>00006 <span class="comment">// All Rights Reserved.</span>
-<a name="l00007"></a>00007 <span class="comment">//</span>
-<a name="l00008"></a>00008 <span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span>
-<a name="l00009"></a>00009 <span class="comment">// of the Adobe license agreement accompanying it.</span>
-<a name="l00010"></a>00010 <span class="comment">// =================================================================================================</span>
-<a name="l00011"></a>00011
-<a name="l00012"></a>00012 <span class="preprocessor">#include &quot;XMP_Environment.h&quot;</span>
-<a name="l00013"></a>00013
-<a name="l00014"></a>00014 <span class="preprocessor"> #include &lt;stddef.h&gt;</span>
-<a name="l00015"></a>00015
-<a name="l00016"></a>00016 <span class="preprocessor">#if XMP_MacBuild | XMP_iOSBuild // ! No stdint.h on Windows and some UNIXes.</span>
-<a name="l00017"></a>00017 <span class="preprocessor"></span><span class="preprocessor"> #include &lt;stdint.h&gt;</span>
-<a name="l00018"></a>00018 <span class="preprocessor">#endif</span>
-<a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor">#if XMP_UNIXBuild // hopefully an inttypes.h on all UNIXes...</span>
-<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor"> #include &lt;inttypes.h&gt;</span>
-<a name="l00021"></a>00021 <span class="preprocessor">#endif</span>
-<a name="l00022"></a>00022 <span class="preprocessor"></span>
-<a name="l00023"></a>00023
-<a name="l00024"></a>00024 <span class="preprocessor">#if __cplusplus</span>
-<a name="l00025"></a>00025 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {
-<a name="l00026"></a>00026 <span class="preprocessor">#endif</span>
-<a name="l00027"></a>00027 <span class="preprocessor"></span>
-<a name="l00028"></a>00028 <span class="comment">// =================================================================================================</span>
-<a name="l00031"></a>00031 <span class="comment"></span><span class="comment">// =================================================================================================</span>
-<a name="l00032"></a>00032
-<a name="l00033"></a>00033 <span class="comment">// =================================================================================================</span>
-<a name="l00034"></a>00034 <span class="comment">// Basic types and constants</span>
-<a name="l00035"></a>00035 <span class="comment">// =========================</span>
-<a name="l00036"></a>00036
-<a name="l00037"></a>00037 <span class="comment">// The XMP_... types are used on the off chance that the ..._t types present a problem. In that</span>
-<a name="l00038"></a>00038 <span class="comment">// case only the declarations of the XMP_... types needs to change, not all of the uses. These</span>
-<a name="l00039"></a>00039 <span class="comment">// types are used where fixed sizes are required in order to have a known ABI for a DLL build.</span>
-<a name="l00040"></a>00040
-<a name="l00041"></a>00041 <span class="preprocessor">#if XMP_MacBuild | XMP_iOSBuild</span>
-<a name="l00042"></a>00042 <span class="preprocessor"></span>
-<a name="l00043"></a>00043 <span class="keyword">typedef</span> int8_t XMP_Int8;
-<a name="l00044"></a>00044 <span class="keyword">typedef</span> int16_t XMP_Int16;
-<a name="l00045"></a>00045 <span class="keyword">typedef</span> int32_t XMP_Int32;
-<a name="l00046"></a>00046 <span class="keyword">typedef</span> int64_t XMP_Int64;
-<a name="l00047"></a>00047
-<a name="l00048"></a>00048 <span class="keyword">typedef</span> uint8_t XMP_Uns8;
-<a name="l00049"></a>00049 <span class="keyword">typedef</span> uint16_t XMP_Uns16;
-<a name="l00050"></a>00050 <span class="keyword">typedef</span> uint32_t XMP_Uns32;
-<a name="l00051"></a>00051 <span class="keyword">typedef</span> uint64_t XMP_Uns64;
-<a name="l00052"></a>00052
-<a name="l00053"></a>00053 <span class="preprocessor">#elif XMP_WinBuild</span>
-<a name="l00054"></a>00054 <span class="preprocessor"></span>
-<a name="l00055"></a>00055 <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">char</span> XMP_Int8;
-<a name="l00056"></a>00056 <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">short</span> XMP_Int16;
-<a name="l00057"></a>00057 <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">long</span> XMP_Int32;
-<a name="l00058"></a>00058 <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> XMP_Int64;
-<a name="l00059"></a>00059
-<a name="l00060"></a>00060 <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> XMP_Uns8;
-<a name="l00061"></a>00061 <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> XMP_Uns16;
-<a name="l00062"></a>00062 <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> XMP_Uns32;
-<a name="l00063"></a>00063 <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> XMP_Uns64;
-<a name="l00064"></a>00064
-<a name="l00065"></a>00065 <span class="preprocessor">#elif XMP_UNIXBuild</span>
-<a name="l00066"></a>00066 <span class="preprocessor"></span>
-<a name="l00067"></a>00067 <span class="preprocessor"> #if ! XMP_64</span>
-<a name="l00068"></a>00068 <span class="preprocessor"></span>
-<a name="l00069"></a>00069 <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">char</span> XMP_Int8;
-<a name="l00070"></a>00070 <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">short</span> XMP_Int16;
-<a name="l00071"></a>00071 <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">long</span> XMP_Int32;
-<a name="l00072"></a>00072 <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> XMP_Int64;
-<a name="l00073"></a>00073
-<a name="l00074"></a>00074 <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> XMP_Uns8;
-<a name="l00075"></a>00075 <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> XMP_Uns16;
-<a name="l00076"></a>00076 <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> XMP_Uns32;
-<a name="l00077"></a>00077 <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> XMP_Uns64;
-<a name="l00078"></a>00078
-<a name="l00079"></a>00079 <span class="preprocessor"> #else</span>
-<a name="l00080"></a>00080 <span class="preprocessor"></span>
-<a name="l00081"></a>00081 <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">char</span> XMP_Int8;
-<a name="l00082"></a>00082 <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">short</span> XMP_Int16;
-<a name="l00083"></a>00083 <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">int</span> XMP_Int32;
-<a name="l00084"></a>00084 <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> XMP_Int64;
-<a name="l00085"></a>00085
-<a name="l00086"></a>00086 <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> XMP_Uns8;
-<a name="l00087"></a>00087 <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> XMP_Uns16;
-<a name="l00088"></a>00088 <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> XMP_Uns32;
-<a name="l00089"></a>00089 <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> XMP_Uns64;
-<a name="l00090"></a>00090
-<a name="l00091"></a>00091 <span class="preprocessor"> #endif</span>
-<a name="l00092"></a>00092 <span class="preprocessor"></span>
-<a name="l00093"></a>00093 <span class="preprocessor">#else</span>
-<a name="l00094"></a>00094 <span class="preprocessor"></span>
-<a name="l00095"></a>00095 <span class="preprocessor"> #error &quot;XMP environment error - must define one of XMP_MacBuild, XMP_WinBuild, XMP_UNIXBuild or XMP_iOSBuild&quot;</span>
-<a name="l00096"></a>00096 <span class="preprocessor"></span>
-<a name="l00097"></a>00097 <span class="preprocessor">#endif</span>
-<a name="l00098"></a>00098 <span class="preprocessor"></span>
-<a name="l00099"></a>00099 <span class="keyword">typedef</span> XMP_Uns8 XMP_Bool;
-<a name="l00100"></a>00100
-<a name="l00101"></a>00101 <span class="keyword">const</span> XMP_Uns8 kXMP_Bool_False = 0;
-<a name="l00102"></a>00102
-<a name="l00103"></a>00103 <span class="preprocessor">#define ConvertXMP_BoolToBool(a) (a) != kXMP_Bool_False</span>
-<a name="l00104"></a>00104 <span class="preprocessor"></span><span class="preprocessor">#define ConvertBoolToXMP_Bool(a) (a) ? !kXMP_Bool_False : kXMP_Bool_False</span>
-<a name="l00105"></a>00105 <span class="preprocessor"></span>
-<a name="l00106"></a>00106 <span class="keyword">static</span> <span class="keyword">const</span> XMP_Uns8 Min_XMP_Uns8 = ( (XMP_Uns8) 0x00 );
-<a name="l00107"></a>00107 <span class="keyword">static</span> <span class="keyword">const</span> XMP_Uns8 Max_XMP_Uns8 = ( (XMP_Uns8) 0xFF );
-<a name="l00108"></a>00108 <span class="keyword">static</span> <span class="keyword">const</span> XMP_Uns16 Min_XMP_Uns16 = ( (XMP_Uns16) 0x00 );
-<a name="l00109"></a>00109 <span class="keyword">static</span> <span class="keyword">const</span> XMP_Uns16 Max_XMP_Uns16 = ( (XMP_Uns16) 0xFFFF );
-<a name="l00110"></a>00110 <span class="keyword">static</span> <span class="keyword">const</span> XMP_Uns32 Min_XMP_Uns32 = ( (XMP_Uns32) 0x00 );
-<a name="l00111"></a>00111 <span class="keyword">static</span> <span class="keyword">const</span> XMP_Uns32 Max_XMP_Uns32 = ( (XMP_Uns32) 0xFFFFFFFF );
-<a name="l00112"></a>00112 <span class="keyword">static</span> <span class="keyword">const</span> XMP_Uns64 Min_XMP_Uns64 = ( (XMP_Uns64) 0x00 );
-<a name="l00113"></a>00113 <span class="keyword">static</span> <span class="keyword">const</span> XMP_Uns64 Max_XMP_Uns64 = ( (XMP_Uns64) 0xFFFFFFFFFFFFFFFFLL );
-<a name="l00114"></a>00114
-<a name="l00115"></a>00115 <span class="keyword">static</span> <span class="keyword">const</span> XMP_Int8 Min_XMP_Int8 = ( (XMP_Int8) 0x80 );
-<a name="l00116"></a>00116 <span class="keyword">static</span> <span class="keyword">const</span> XMP_Int8 Max_XMP_Int8 = ( (XMP_Int8) 0x7F );
-<a name="l00117"></a>00117 <span class="keyword">static</span> <span class="keyword">const</span> XMP_Int16 Min_XMP_Int16 = ( (XMP_Int16) 0x8000 );
-<a name="l00118"></a>00118 <span class="keyword">static</span> <span class="keyword">const</span> XMP_Int16 Max_XMP_Int16 = ( (XMP_Int16) 0x7FFF );
-<a name="l00119"></a>00119 <span class="keyword">static</span> <span class="keyword">const</span> XMP_Int32 Min_XMP_Int32 = ( (XMP_Int32) 0x80000000 );
-<a name="l00120"></a>00120 <span class="keyword">static</span> <span class="keyword">const</span> XMP_Int32 Max_XMP_Int32 = ( (XMP_Int32) 0x7FFFFFFF );
-<a name="l00121"></a>00121 <span class="keyword">static</span> <span class="keyword">const</span> XMP_Int64 Min_XMP_Int64 = ( (XMP_Int64) 0x8000000000000000LL );
-<a name="l00122"></a>00122 <span class="keyword">static</span> <span class="keyword">const</span> XMP_Int64 Max_XMP_Int64 = ( (XMP_Int64) 0x7FFFFFFFFFFFFFFFLL );
-<a name="l00123"></a>00123
-<a name="l00124"></a>00124
-<a name="l00127"></a><a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">00127</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>__XMPMeta__ * <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>;
-<a name="l00128"></a>00128
-<a name="l00131"></a><a class="code" href="XMP__Const_8h.html#a6ade57a30fb1e40d6aa9695c440fc3d2">00131</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>__XMPIterator__ * <a class="code" href="XMP__Const_8h.html#a6ade57a30fb1e40d6aa9695c440fc3d2">XMPIteratorRef</a>;
-<a name="l00132"></a>00132
-<a name="l00135"></a><a class="code" href="XMP__Const_8h.html#ab516453dd7d906e911f8951983cde5f1">00135</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>__XMPDocOps__ * <a class="code" href="XMP__Const_8h.html#ab516453dd7d906e911f8951983cde5f1">XMPDocOpsRef</a>;
-<a name="l00136"></a>00136
-<a name="l00139"></a><a class="code" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">00139</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>__XMPFiles__ * <a class="code" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a>;
-<a name="l00140"></a>00140
-<a name="l00141"></a>00141 <span class="comment">// =================================================================================================</span>
-<a name="l00142"></a>00142
-<a name="l00145"></a>00145
-<a name="l00149"></a>00149
-<a name="l00153"></a>00153
-<a name="l00157"></a>00157
-<a name="l00164"></a>00164
-<a name="l00165"></a><a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">00165</a> <span class="keyword">typedef</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a>; <span class="comment">// Points to a null terminated UTF-8 string.</span>
-<a name="l00166"></a><a class="code" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">00166</a> <span class="keyword">typedef</span> XMP_Uns32 <a class="code" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a" title="The type for string length parameters. A 32-bit unsigned integer, as big as will...">XMP_StringLen</a>;
-<a name="l00167"></a><a class="code" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">00167</a> <span class="keyword">typedef</span> XMP_Int32 <a class="code" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315" title="The type for offsets and indices. A 32-bit signed integer. It is signed to allow...">XMP_Index</a>; <span class="comment">// Signed, sometimes -1 is handy.</span>
-<a name="l00168"></a><a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">00168</a> <span class="keyword">typedef</span> XMP_Uns32 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a>; <span class="comment">// Used as 32 individual bits.</span>
-<a name="l00169"></a>00169
-<a name="l00174"></a>00174
-<a name="l00179"></a>00179
-<a name="l00180"></a><a class="code" href="XMP__Const_8h.html#a4c39e0131b0e3d7db66e1cfa82b67141">00180</a> <span class="preprocessor">#define kXMP_TrueStr &quot;True&quot; // Serialized XMP spellings, not for the type bool.</span>
-<a name="l00181"></a><a class="code" href="XMP__Const_8h.html#a2dc55b533ed63ed7ff0c3be16a97e278">00181</a> <span class="preprocessor"></span><span class="preprocessor">#define kXMP_FalseStr &quot;False&quot;</span>
-<a name="l00182"></a>00182 <span class="preprocessor"></span>
-<a name="l00185"></a>00185 <span class="keyword">enum</span> {
-<a name="l00187"></a><a class="code" href="XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55bacf4bfe01497bd0d88c2af337e4bac39e">00187</a> <a class="code" href="XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55bacf4bfe01497bd0d88c2af337e4bac39e" title="The part or parts have definitely changed.">kXMPTS_Yes</a> = 1,
-<a name="l00189"></a><a class="code" href="XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba2a88f4d4589bf413377283843f70bc90">00189</a> <a class="code" href="XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba2a88f4d4589bf413377283843f70bc90" title="The part or parts have definitely not changed.">kXMPTS_No</a> = 0,
-<a name="l00191"></a><a class="code" href="XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba7a73219cd125bb21e294ba474112a584">00191</a> <a class="code" href="XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba7a73219cd125bb21e294ba474112a584" title="The part or parts might, or might not, have changed.">kXMPTS_Maybe</a> = -1
-<a name="l00192"></a>00192 };
-<a name="l00193"></a>00193 <span class="keyword">typedef</span> XMP_Int8 XMP_TriState;
-<a name="l00194"></a>00194
-<a name="l00196"></a>00196
-<a name="l00197"></a>00197 <span class="comment">// =================================================================================================</span>
-<a name="l00198"></a>00198
-<a name="l00218"></a>00218
-<a name="l00219"></a><a class="code" href="structXMP__DateTime.html">00219</a> <span class="keyword">struct </span><a class="code" href="structXMP__DateTime.html" title="The expanded type for a date and time.">XMP_DateTime</a> {
-<a name="l00220"></a>00220
-<a name="l00222"></a><a class="code" href="structXMP__DateTime.html#a2db713deacfd5a5cb2deea660ca2ccad">00222</a> XMP_Int32 <a class="code" href="structXMP__DateTime.html#a2db713deacfd5a5cb2deea660ca2ccad" title="The year, can be negative.">year</a>;
-<a name="l00223"></a>00223
-<a name="l00225"></a><a class="code" href="structXMP__DateTime.html#ab4b71c1a54879d7da1b4135e23d5446f">00225</a> XMP_Int32 <a class="code" href="structXMP__DateTime.html#ab4b71c1a54879d7da1b4135e23d5446f" title="The month in the range 1..12.">month</a>;
-<a name="l00226"></a>00226
-<a name="l00228"></a><a class="code" href="structXMP__DateTime.html#a58496718277eea9dc5e3e19d80a69094">00228</a> XMP_Int32 <a class="code" href="structXMP__DateTime.html#a58496718277eea9dc5e3e19d80a69094" title="The day of the month in the range 1..31.">day</a>;
-<a name="l00229"></a>00229
-<a name="l00231"></a><a class="code" href="structXMP__DateTime.html#abc79cdca8cfa5df6583279e3f3e70e9f">00231</a> XMP_Int32 <a class="code" href="structXMP__DateTime.html#abc79cdca8cfa5df6583279e3f3e70e9f" title="The hour in the range 0..23.">hour</a>;
-<a name="l00232"></a>00232
-<a name="l00234"></a><a class="code" href="structXMP__DateTime.html#ae84965f3296a9c106d1f6c88aa6a7bdf">00234</a> XMP_Int32 <a class="code" href="structXMP__DateTime.html#ae84965f3296a9c106d1f6c88aa6a7bdf" title="The minute in the range 0..59.">minute</a>;
-<a name="l00235"></a>00235
-<a name="l00237"></a><a class="code" href="structXMP__DateTime.html#a675313c70a7e05b7ca50d21300b7d81b">00237</a> XMP_Int32 <a class="code" href="structXMP__DateTime.html#a675313c70a7e05b7ca50d21300b7d81b" title="The second in the range 0..59.">second</a>;
-<a name="l00238"></a>00238
-<a name="l00240"></a><a class="code" href="structXMP__DateTime.html#a62e0f39edef2a82749feed46b16572e8">00240</a> XMP_Bool <a class="code" href="structXMP__DateTime.html#a62e0f39edef2a82749feed46b16572e8" title="Is the date portion meaningful?">hasDate</a>;
-<a name="l00241"></a>00241
-<a name="l00243"></a><a class="code" href="structXMP__DateTime.html#a2c7f3d493a78f6b3fc7978992308d268">00243</a> XMP_Bool <a class="code" href="structXMP__DateTime.html#a2c7f3d493a78f6b3fc7978992308d268" title="Is the time portion meaningful?">hasTime</a>;
-<a name="l00244"></a>00244
-<a name="l00246"></a><a class="code" href="structXMP__DateTime.html#a1dd34cdab96f55c120b3289db32bdd1e">00246</a> XMP_Bool <a class="code" href="structXMP__DateTime.html#a1dd34cdab96f55c120b3289db32bdd1e" title="Is the time zone meaningful?">hasTimeZone</a>;
-<a name="l00247"></a>00247
-<a name="l00250"></a><a class="code" href="structXMP__DateTime.html#a2b26282b9f1ab9920a8f05008c776ddb">00250</a> XMP_Int8 <a class="code" href="structXMP__DateTime.html#a2b26282b9f1ab9920a8f05008c776ddb">tzSign</a>;
-<a name="l00251"></a>00251
-<a name="l00253"></a><a class="code" href="structXMP__DateTime.html#a6045133feeef41ac1f78c4664ab13db4">00253</a> XMP_Int32 <a class="code" href="structXMP__DateTime.html#a6045133feeef41ac1f78c4664ab13db4" title="The time zone hour in the range 0..23.">tzHour</a>;
-<a name="l00254"></a>00254
-<a name="l00256"></a><a class="code" href="structXMP__DateTime.html#a45baa70f30a3dc9f88819886cfb91aa1">00256</a> XMP_Int32 <a class="code" href="structXMP__DateTime.html#a45baa70f30a3dc9f88819886cfb91aa1" title="The time zone minute in the range 0..59.">tzMinute</a>;
-<a name="l00257"></a>00257
-<a name="l00259"></a><a class="code" href="structXMP__DateTime.html#a190c2a19f01e90997ec2973aec37712c">00259</a> XMP_Int32 <a class="code" href="structXMP__DateTime.html#a190c2a19f01e90997ec2973aec37712c" title="Nanoseconds within a second, often left as zero.">nanoSecond</a>;
-<a name="l00260"></a>00260
-<a name="l00261"></a>00261 <span class="preprocessor"> #if __cplusplus</span>
-<a name="l00262"></a>00262 <span class="preprocessor"></span> <a class="code" href="structXMP__DateTime.html" title="The expanded type for a date and time.">XMP_DateTime</a>() : <a class="code" href="structXMP__DateTime.html#a2db713deacfd5a5cb2deea660ca2ccad" title="The year, can be negative.">year</a>(0), <a class="code" href="structXMP__DateTime.html#ab4b71c1a54879d7da1b4135e23d5446f" title="The month in the range 1..12.">month</a>(0), <a class="code" href="structXMP__DateTime.html#a58496718277eea9dc5e3e19d80a69094" title="The day of the month in the range 1..31.">day</a>(0), <a class="code" href="structXMP__DateTime.html#abc79cdca8cfa5df6583279e3f3e70e9f" title="The hour in the range 0..23.">hour</a>(0), <a class="code" href="structXMP__DateTime.html#ae84965f3296a9c106d1f6c88aa6a7bdf" title="The minute in the range 0..59.">minute</a>(0), <a class="code" href="structXMP__DateTime.html#a675313c70a7e05b7ca50d21300b7d81b" title="The second in the range 0..59.">second</a>(0),
-<a name="l00263"></a>00263 <a class="code" href="structXMP__DateTime.html#a62e0f39edef2a82749feed46b16572e8" title="Is the date portion meaningful?">hasDate</a>(false),<a class="code" href="structXMP__DateTime.html#a2c7f3d493a78f6b3fc7978992308d268" title="Is the time portion meaningful?">hasTime</a>(false), <a class="code" href="structXMP__DateTime.html#a1dd34cdab96f55c120b3289db32bdd1e" title="Is the time zone meaningful?">hasTimeZone</a>(false), <a class="code" href="structXMP__DateTime.html#a2b26282b9f1ab9920a8f05008c776ddb">tzSign</a>(0), <a class="code" href="structXMP__DateTime.html#a6045133feeef41ac1f78c4664ab13db4" title="The time zone hour in the range 0..23.">tzHour</a>(0), <a class="code" href="structXMP__DateTime.html#a45baa70f30a3dc9f88819886cfb91aa1" title="The time zone minute in the range 0..59.">tzMinute</a>(0), <a class="code" href="structXMP__DateTime.html#a190c2a19f01e90997ec2973aec37712c" title="Nanoseconds within a second, often left as zero.">nanoSecond</a>(0){};
-<a name="l00264"></a>00264 <span class="preprocessor"> #endif</span>
-<a name="l00265"></a>00265 <span class="preprocessor"></span>
-<a name="l00266"></a>00266 };
-<a name="l00267"></a>00267
-<a name="l00269"></a>00269 <span class="keyword">enum</span> {
-<a name="l00271"></a><a class="code" href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a511551ce156d5fd96c26ad464b837801">00271</a> <a class="code" href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a511551ce156d5fd96c26ad464b837801" title="Time zone is west of UTC.">kXMP_TimeWestOfUTC</a> = -1,
-<a name="l00273"></a><a class="code" href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a3f41be55491204982acb39c9f6c7ad13">00273</a> <a class="code" href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a3f41be55491204982acb39c9f6c7ad13" title="UTC time.">kXMP_TimeIsUTC</a> = 0,
-<a name="l00275"></a><a class="code" href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a68851b70cc1d2346fa21bc0b0ae6cfec">00275</a> <a class="code" href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a68851b70cc1d2346fa21bc0b0ae6cfec" title="Time zone is east of UTC.">kXMP_TimeEastOfUTC</a> = +1
-<a name="l00276"></a>00276 };
-<a name="l00277"></a>00277
-<a name="l00278"></a>00278 <span class="preprocessor">#define XMPDateTime_IsDateOnly(dt) ((dt).hasDate &amp; (! (dt).hasTime))</span>
-<a name="l00279"></a>00279 <span class="preprocessor"></span><span class="preprocessor">#define XMPDateTime_IsTimeOnly(dt) ((dt).hasTime &amp; (! (dt).hasDate))</span>
-<a name="l00280"></a>00280 <span class="preprocessor"></span>
-<a name="l00281"></a>00281 <span class="preprocessor">#define XMPDateTime_ClearTimeZone(dt) { (dt).hasTimeZone = (dt).tzSign = (dt).tzHour = (dt).tzMinute = 0; }</span>
-<a name="l00282"></a>00282 <span class="preprocessor"></span>
-<a name="l00283"></a>00283 <span class="comment">// =================================================================================================</span>
-<a name="l00284"></a>00284 <span class="comment">// Standard namespace URI constants</span>
-<a name="l00285"></a>00285 <span class="comment">// ================================</span>
-<a name="l00286"></a>00286
-<a name="l00321"></a>00321
-<a name="l00322"></a><a class="code" href="XMP__Const_8h.html#a030875c9dc0861c9251a3374ca14a376">00322</a> <span class="preprocessor">#define kXMP_NS_XMP &quot;http://ns.adobe.com/xap/1.0/&quot;</span>
-<a name="l00323"></a>00323 <span class="preprocessor"></span>
-<a name="l00324"></a><a class="code" href="XMP__Const_8h.html#ae52d761e5a4fc8c8499215d2f3d82b90">00324</a> <span class="preprocessor">#define kXMP_NS_XMP_Rights &quot;http://ns.adobe.com/xap/1.0/rights/&quot;</span>
-<a name="l00325"></a><a class="code" href="XMP__Const_8h.html#ac67379a9ffa425d0d7976a51c4f2f754">00325</a> <span class="preprocessor"></span><span class="preprocessor">#define kXMP_NS_XMP_MM &quot;http://ns.adobe.com/xap/1.0/mm/&quot;</span>
-<a name="l00326"></a><a class="code" href="XMP__Const_8h.html#a308e156c325618acb2172e550929ebee">00326</a> <span class="preprocessor"></span><span class="preprocessor">#define kXMP_NS_XMP_BJ &quot;http://ns.adobe.com/xap/1.0/bj/&quot;</span>
-<a name="l00327"></a>00327 <span class="preprocessor"></span>
-<a name="l00328"></a><a class="code" href="XMP__Const_8h.html#a0bcb67d0dd0922504e3da7ca5c40c82a">00328</a> <span class="preprocessor">#define kXMP_NS_PDF &quot;http://ns.adobe.com/pdf/1.3/&quot;</span>
-<a name="l00329"></a><a class="code" href="XMP__Const_8h.html#aa1a6f38ebfcdb281c5bf2809859167c7">00329</a> <span class="preprocessor"></span><span class="preprocessor">#define kXMP_NS_Photoshop &quot;http://ns.adobe.com/photoshop/1.0/&quot;</span>
-<a name="l00330"></a>00330 <span class="preprocessor"></span><span class="preprocessor">#define kXMP_NS_PSAlbum &quot;http://ns.adobe.com/album/1.0/&quot;</span>
-<a name="l00331"></a><a class="code" href="XMP__Const_8h.html#ad12182e1df1652f56b5eec60c1fcdd8f">00331</a> <span class="preprocessor"></span><span class="preprocessor">#define kXMP_NS_EXIF &quot;http://ns.adobe.com/exif/1.0/&quot;</span>
-<a name="l00332"></a>00332 <span class="preprocessor"></span><span class="preprocessor">#define kXMP_NS_EXIF_Aux &quot;http://ns.adobe.com/exif/1.0/aux/&quot;</span>
-<a name="l00333"></a><a class="code" href="XMP__Const_8h.html#a673355818b7b9224e8fec0fbc60ba00c">00333</a> <span class="preprocessor"></span><span class="preprocessor">#define kXMP_NS_TIFF &quot;http://ns.adobe.com/tiff/1.0/&quot;</span>
-<a name="l00334"></a>00334 <span class="preprocessor"></span><span class="preprocessor">#define kXMP_NS_PNG &quot;http://ns.adobe.com/png/1.0/&quot;</span>
-<a name="l00335"></a>00335 <span class="preprocessor"></span><span class="preprocessor">#define kXMP_NS_SWF &quot;http://ns.adobe.com/swf/1.0/&quot;</span>
-<a name="l00336"></a>00336 <span class="preprocessor"></span><span class="preprocessor">#define kXMP_NS_JPEG &quot;http://ns.adobe.com/jpeg/1.0/&quot;</span>
-<a name="l00337"></a>00337 <span class="preprocessor"></span><span class="preprocessor">#define kXMP_NS_JP2K &quot;http://ns.adobe.com/jp2k/1.0/&quot;</span>
-<a name="l00338"></a>00338 <span class="preprocessor"></span><span class="preprocessor">#define kXMP_NS_CameraRaw &quot;http://ns.adobe.com/camera-raw-settings/1.0/&quot;</span>
-<a name="l00339"></a>00339 <span class="preprocessor"></span><span class="preprocessor">#define kXMP_NS_DM &quot;http://ns.adobe.com/xmp/1.0/DynamicMedia/&quot;</span>
-<a name="l00340"></a>00340 <span class="preprocessor"></span><span class="preprocessor">#define kXMP_NS_Script &quot;http://ns.adobe.com/xmp/1.0/Script/&quot;</span>
-<a name="l00341"></a>00341 <span class="preprocessor"></span><span class="preprocessor">#define kXMP_NS_ASF &quot;http://ns.adobe.com/asf/1.0/&quot;</span>
-<a name="l00342"></a>00342 <span class="preprocessor"></span><span class="preprocessor">#define kXMP_NS_WAV &quot;http://ns.adobe.com/xmp/wav/1.0/&quot;</span>
-<a name="l00343"></a>00343 <span class="preprocessor"></span><span class="preprocessor">#define kXMP_NS_BWF &quot;http://ns.adobe.com/bwf/bext/1.0/&quot;</span>
-<a name="l00344"></a>00344 <span class="preprocessor"></span><span class="preprocessor">#define kXMP_NS_AEScart &quot;http://ns.adobe.com/aes/cart/&quot;</span>
-<a name="l00345"></a>00345 <span class="preprocessor"></span><span class="preprocessor">#define kXMP_NS_RIFFINFO &quot;http://ns.adobe.com/riff/info/&quot;</span>
-<a name="l00346"></a>00346 <span class="preprocessor"></span>
-<a name="l00347"></a>00347 <span class="preprocessor">#define kXMP_NS_XMP_Note &quot;http://ns.adobe.com/xmp/note/&quot;</span>
-<a name="l00348"></a>00348 <span class="preprocessor"></span>
-<a name="l00349"></a>00349 <span class="preprocessor">#define kXMP_NS_AdobeStockPhoto &quot;http://ns.adobe.com/StockPhoto/1.0/&quot;</span>
-<a name="l00350"></a>00350 <span class="preprocessor"></span><span class="preprocessor">#define kXMP_NS_CreatorAtom &quot;http://ns.adobe.com/creatorAtom/1.0/&quot;</span>
-<a name="l00351"></a>00351 <span class="preprocessor"></span>
-<a name="l00352"></a>00352 <span class="preprocessor">#define kXMP_NS_ExifEX &quot;http://cipa.jp/exif/1.0/&quot;</span>
-<a name="l00353"></a>00353 <span class="preprocessor"></span>
-<a name="l00379"></a>00379
-<a name="l00380"></a><a class="code" href="XMP__Const_8h.html#ab466db52a4b85cecfa04710682c1e671">00380</a> <span class="preprocessor">#define kXMP_NS_XMP_IdentifierQual &quot;http://ns.adobe.com/xmp/Identifier/qual/1.0/&quot;</span>
-<a name="l00381"></a><a class="code" href="XMP__Const_8h.html#a9618e013619aa92ebc808b62243d2ba8">00381</a> <span class="preprocessor"></span><span class="preprocessor">#define kXMP_NS_XMP_Dimensions &quot;http://ns.adobe.com/xap/1.0/sType/Dimensions#&quot;</span>
-<a name="l00382"></a>00382 <span class="preprocessor"></span><span class="preprocessor">#define kXMP_NS_XMP_Text &quot;http://ns.adobe.com/xap/1.0/t/&quot;</span>
-<a name="l00383"></a>00383 <span class="preprocessor"></span><span class="preprocessor">#define kXMP_NS_XMP_PagedFile &quot;http://ns.adobe.com/xap/1.0/t/pg/&quot;</span>
-<a name="l00384"></a>00384 <span class="preprocessor"></span><span class="preprocessor">#define kXMP_NS_XMP_Graphics &quot;http://ns.adobe.com/xap/1.0/g/&quot;</span>
-<a name="l00385"></a><a class="code" href="XMP__Const_8h.html#a935641acc7d01e782ad7a457a7ff338b">00385</a> <span class="preprocessor"></span><span class="preprocessor">#define kXMP_NS_XMP_Image &quot;http://ns.adobe.com/xap/1.0/g/img/&quot;</span>
-<a name="l00386"></a>00386 <span class="preprocessor"></span><span class="preprocessor">#define kXMP_NS_XMP_Font &quot;http://ns.adobe.com/xap/1.0/sType/Font#&quot;</span>
-<a name="l00387"></a><a class="code" href="XMP__Const_8h.html#a861613273127156050b456eee11f6b0a">00387</a> <span class="preprocessor"></span><span class="preprocessor">#define kXMP_NS_XMP_ResourceEvent &quot;http://ns.adobe.com/xap/1.0/sType/ResourceEvent#&quot;</span>
-<a name="l00388"></a><a class="code" href="XMP__Const_8h.html#a9bf51f2653400645f7b5087e8c4e1c77">00388</a> <span class="preprocessor"></span><span class="preprocessor">#define kXMP_NS_XMP_ResourceRef &quot;http://ns.adobe.com/xap/1.0/sType/ResourceRef#&quot;</span>
-<a name="l00389"></a><a class="code" href="XMP__Const_8h.html#ab4923bed71ab29c6aa88debe8816c0a2">00389</a> <span class="preprocessor"></span><span class="preprocessor">#define kXMP_NS_XMP_ST_Version &quot;http://ns.adobe.com/xap/1.0/sType/Version#&quot;</span>
-<a name="l00390"></a><a class="code" href="XMP__Const_8h.html#ac7dc4d65bcbba2862e410cc8cfdff6f6">00390</a> <span class="preprocessor"></span><span class="preprocessor">#define kXMP_NS_XMP_ST_Job &quot;http://ns.adobe.com/xap/1.0/sType/Job#&quot;</span>
-<a name="l00391"></a>00391 <span class="preprocessor"></span><span class="preprocessor">#define kXMP_NS_XMP_ManifestItem &quot;http://ns.adobe.com/xap/1.0/sType/ManifestItem#&quot;</span>
-<a name="l00392"></a>00392 <span class="preprocessor"></span>
-<a name="l00393"></a>00393 <span class="comment">// Deprecated XML namespace constants</span>
-<a name="l00394"></a><a class="code" href="XMP__Const_8h.html#a0a2d9c5f7beb27553214a7ad1df4f27e">00394</a> <span class="preprocessor">#define kXMP_NS_XMP_T &quot;http://ns.adobe.com/xap/1.0/t/&quot;</span>
-<a name="l00395"></a><a class="code" href="XMP__Const_8h.html#a39afb495ffb24bb3082493c6811e65d0">00395</a> <span class="preprocessor"></span><span class="preprocessor">#define kXMP_NS_XMP_T_PG &quot;http://ns.adobe.com/xap/1.0/t/pg/&quot;</span>
-<a name="l00396"></a>00396 <span class="preprocessor"></span><span class="preprocessor">#define kXMP_NS_XMP_G_IMG &quot;http://ns.adobe.com/xap/1.0/g/img/&quot;</span>
-<a name="l00397"></a>00397 <span class="preprocessor"></span>
-<a name="l00417"></a>00417
-<a name="l00418"></a><a class="code" href="XMP__Const_8h.html#a44453f0d0a1dd295d41722c2387b36fa">00418</a> <span class="preprocessor">#define kXMP_NS_DC &quot;http://purl.org/dc/elements/1.1/&quot;</span>
-<a name="l00419"></a>00419 <span class="preprocessor"></span>
-<a name="l00420"></a><a class="code" href="XMP__Const_8h.html#ab794d3d798daf75a963398347dcbb79b">00420</a> <span class="preprocessor">#define kXMP_NS_IPTCCore &quot;http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/&quot;</span>
-<a name="l00421"></a><a class="code" href="XMP__Const_8h.html#a12ca045d4c12992ec8f6c1003523de20">00421</a> <span class="preprocessor"></span><span class="preprocessor">#define kXMP_NS_IPTCExt &quot;http://iptc.org/std/Iptc4xmpExt/2008-02-29/&quot;</span>
-<a name="l00422"></a>00422 <span class="preprocessor"></span>
-<a name="l00423"></a>00423 <span class="preprocessor">#define kXMP_NS_DICOM &quot;http://ns.adobe.com/DICOM/&quot;</span>
-<a name="l00424"></a>00424 <span class="preprocessor"></span>
-<a name="l00425"></a>00425 <span class="preprocessor">#define kXMP_NS_PLUS &quot;http://ns.useplus.org/ldf/xmp/1.0/&quot;</span>
-<a name="l00426"></a>00426 <span class="preprocessor"></span>
-<a name="l00427"></a>00427 <span class="preprocessor">#define kXMP_NS_PDFA_Schema &quot;http://www.aiim.org/pdfa/ns/schema#&quot;</span>
-<a name="l00428"></a>00428 <span class="preprocessor"></span><span class="preprocessor">#define kXMP_NS_PDFA_Property &quot;http://www.aiim.org/pdfa/ns/property#&quot;</span>
-<a name="l00429"></a>00429 <span class="preprocessor"></span><span class="preprocessor">#define kXMP_NS_PDFA_Type &quot;http://www.aiim.org/pdfa/ns/type#&quot;</span>
-<a name="l00430"></a>00430 <span class="preprocessor"></span><span class="preprocessor">#define kXMP_NS_PDFA_Field &quot;http://www.aiim.org/pdfa/ns/field#&quot;</span>
-<a name="l00431"></a>00431 <span class="preprocessor"></span><span class="preprocessor">#define kXMP_NS_PDFA_ID &quot;http://www.aiim.org/pdfa/ns/id/&quot;</span>
-<a name="l00432"></a>00432 <span class="preprocessor"></span><span class="preprocessor">#define kXMP_NS_PDFA_Extension &quot;http://www.aiim.org/pdfa/ns/extension/&quot;</span>
-<a name="l00433"></a>00433 <span class="preprocessor"></span>
-<a name="l00434"></a>00434 <span class="preprocessor">#define kXMP_NS_PDFX &quot;http://ns.adobe.com/pdfx/1.3/&quot;</span>
-<a name="l00435"></a>00435 <span class="preprocessor"></span><span class="preprocessor">#define kXMP_NS_PDFX_ID &quot;http://www.npes.org/pdfx/ns/id/&quot;</span>
-<a name="l00436"></a>00436 <span class="preprocessor"></span>
-<a name="l00437"></a><a class="code" href="XMP__Const_8h.html#a276fac0f70893607afa3f09030ad84c7">00437</a> <span class="preprocessor">#define kXMP_NS_RDF &quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;</span>
-<a name="l00438"></a><a class="code" href="XMP__Const_8h.html#a97564c70460d1f235c8a41b8ac40cfe9">00438</a> <span class="preprocessor"></span><span class="preprocessor">#define kXMP_NS_XML &quot;http://www.w3.org/XML/1998/namespace&quot;</span>
-<a name="l00439"></a>00439 <span class="preprocessor"></span>
-<a name="l00440"></a>00440 <span class="comment">// =================================================================================================</span>
-<a name="l00441"></a>00441 <span class="comment">// Enums and macros used for option bits</span>
-<a name="l00442"></a>00442 <span class="comment">// =====================================</span>
-<a name="l00443"></a>00443
-<a name="l00457"></a>00457
-<a name="l00458"></a><a class="code" href="XMP__Const_8h.html#a9549b9a138a896257b5a70176d125317">00458</a> <span class="preprocessor">#define kXMP_ArrayLastItem ((XMP_Index)(-1L))</span>
-<a name="l00459"></a><a class="code" href="XMP__Const_8h.html#a8283c9596c03b6d626d5a2b7a90e23ab">00459</a> <span class="preprocessor"></span><span class="preprocessor">#define kXMP_UseNullTermination ((XMP_StringLen)(~0UL))</span>
-<a name="l00460"></a><a class="code" href="XMP__Const_8h.html#aff1df9f3cf050f8b8d3a574db3c3326b">00460</a> <span class="preprocessor"></span><span class="preprocessor">#define kXMP_NoOptions ((XMP_OptionBits)0UL)</span>
-<a name="l00461"></a>00461 <span class="preprocessor"></span>
-<a name="l00494"></a>00494
-<a name="l00495"></a><a class="code" href="XMP__Const_8h.html#a69c4d1b80c4dd581366e0c60209ef612">00495</a> <span class="preprocessor">#define XMP_SetOption(var,opt) var |= (opt)</span>
-<a name="l00496"></a><a class="code" href="XMP__Const_8h.html#a10c3c9b1b6e266b0b4eb6abe7b03b7d8">00496</a> <span class="preprocessor"></span><span class="preprocessor">#define XMP_ClearOption(var,opt) var &amp;= ~(opt)</span>
-<a name="l00497"></a><a class="code" href="XMP__Const_8h.html#aa31596e850cb6b208f5920833d67b9f1">00497</a> <span class="preprocessor"></span><span class="preprocessor">#define XMP_TestOption(var,opt) (((var) &amp; (opt)) != 0)</span>
-<a name="l00498"></a><a class="code" href="XMP__Const_8h.html#aba3edaa921326c7916adb0b70b1bcfb4">00498</a> <span class="preprocessor"></span><span class="preprocessor">#define XMP_OptionIsSet(var,opt) (((var) &amp; (opt)) != 0)</span>
-<a name="l00499"></a><a class="code" href="XMP__Const_8h.html#a1d41f53bd1d5c88fad8322ce15e39516">00499</a> <span class="preprocessor"></span><span class="preprocessor">#define XMP_OptionIsClear(var,opt) (((var) &amp; (opt)) == 0)</span>
-<a name="l00500"></a>00500 <span class="preprocessor"></span>
-<a name="l00553"></a>00553
-<a name="l00554"></a><a class="code" href="XMP__Const_8h.html#a510b75338bd488ddd8d9bd4e326806f9">00554</a> <span class="preprocessor">#define XMP_PropIsSimple(opt) (((opt) &amp; kXMP_PropCompositeMask) == 0)</span>
-<a name="l00555"></a><a class="code" href="XMP__Const_8h.html#aebea8c35e09da7db613e27d0e3ce945f">00555</a> <span class="preprocessor"></span><span class="preprocessor">#define XMP_PropIsStruct(opt) (((opt) &amp; kXMP_PropValueIsStruct) != 0)</span>
-<a name="l00556"></a><a class="code" href="XMP__Const_8h.html#a98ae521b621cfa3611211e3922a0fce8">00556</a> <span class="preprocessor"></span><span class="preprocessor">#define XMP_PropIsArray(opt) (((opt) &amp; kXMP_PropValueIsArray) != 0)</span>
-<a name="l00557"></a>00557 <span class="preprocessor"></span>
-<a name="l00558"></a><a class="code" href="XMP__Const_8h.html#a8d763b3d36c7067cd7bccd32d4066b43">00558</a> <span class="preprocessor">#define XMP_ArrayIsUnordered(opt) (((opt) &amp; kXMP_PropArrayIsOrdered) == 0)</span>
-<a name="l00559"></a><a class="code" href="XMP__Const_8h.html#a72c7077f3ff3e39804a899533867327d">00559</a> <span class="preprocessor"></span><span class="preprocessor">#define XMP_ArrayIsOrdered(opt) (((opt) &amp; kXMP_PropArrayIsOrdered) != 0)</span>
-<a name="l00560"></a><a class="code" href="XMP__Const_8h.html#a86bc34c4e64dec75618c348163a88720">00560</a> <span class="preprocessor"></span><span class="preprocessor">#define XMP_ArrayIsAlternate(opt) (((opt) &amp; kXMP_PropArrayIsAlternate) != 0)</span>
-<a name="l00561"></a><a class="code" href="XMP__Const_8h.html#abbef21da7bce1491f780586c3e01cd9e">00561</a> <span class="preprocessor"></span><span class="preprocessor">#define XMP_ArrayIsAltText(opt) (((opt) &amp; kXMP_PropArrayIsAltText) != 0)</span>
-<a name="l00562"></a>00562 <span class="preprocessor"></span>
-<a name="l00563"></a><a class="code" href="XMP__Const_8h.html#a10828aa191aa666aa1166c27beead2a6">00563</a> <span class="preprocessor">#define XMP_PropHasQualifiers(opt) (((opt) &amp; kXMP_PropHasQualifiers) != 0)</span>
-<a name="l00564"></a><a class="code" href="XMP__Const_8h.html#a8d1b4da6b3cb3a67bf4f8e79352eeeaa">00564</a> <span class="preprocessor"></span><span class="preprocessor">#define XMP_PropIsQualifier(opt) (((opt) &amp; kXMP_PropIsQualifier) != 0)</span>
-<a name="l00565"></a><a class="code" href="XMP__Const_8h.html#a7dc82df90f45b0d746b67d8fdc529c83">00565</a> <span class="preprocessor"></span><span class="preprocessor">#define XMP_PropHasLang(opt) (((opt) &amp; kXMP_PropHasLang) != 0)</span>
-<a name="l00566"></a>00566 <span class="preprocessor"></span>
-<a name="l00567"></a><a class="code" href="XMP__Const_8h.html#a12870d8442720ce5230791abc26f9597">00567</a> <span class="preprocessor">#define XMP_NodeIsSchema(opt) (((opt) &amp; kXMP_SchemaNode) != 0)</span>
-<a name="l00568"></a><a class="code" href="XMP__Const_8h.html#a193b1414fa5312da2aa1d833b85612d0">00568</a> <span class="preprocessor"></span><span class="preprocessor">#define XMP_PropIsAlias(opt) (((opt) &amp; kXMP_PropIsAlias) != 0)</span>
-<a name="l00569"></a>00569 <span class="preprocessor"></span>
-<a name="l00570"></a>00570 <span class="comment">// -------------------------------------------------------------------------------------------------</span>
-<a name="l00571"></a>00571
-<a name="l00573"></a>00573 <span class="keyword">enum</span> {
-<a name="l00574"></a>00574
-<a name="l00576"></a><a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aab51f87b5c48f47f5cefb9e03293dafb">00576</a> <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aab51f87b5c48f47f5cefb9e03293dafb" title="The XML string form of the property value is a URI, use rdf:resource attribute. DISCOURAGED...">kXMP_PropValueIsURI</a> = 0x00000002UL,
-<a name="l00577"></a>00577
-<a name="l00578"></a>00578 <span class="comment">// ------------------------------------------------------</span>
-<a name="l00579"></a>00579 <span class="comment">// Options relating to qualifiers attached to a property.</span>
-<a name="l00580"></a>00580
-<a name="l00582"></a><a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a8e34a33a2eed56499d4f6f62da25d159">00582</a> <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a8e34a33a2eed56499d4f6f62da25d159" title="The property has qualifiers, includes rdf:type and xml:lang.">kXMP_PropHasQualifiers</a> = 0x00000010UL,
-<a name="l00583"></a>00583
-<a name="l00588"></a><a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a30146ed5209f5c3eb4eeb1fd8e4fb9fe">00588</a> <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a30146ed5209f5c3eb4eeb1fd8e4fb9fe">kXMP_PropIsQualifier</a> = 0x00000020UL,
-<a name="l00589"></a>00589
-<a name="l00591"></a><a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a3fa5ed87edc731bfb3817f58ba70a217">00591</a> <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a3fa5ed87edc731bfb3817f58ba70a217" title="Implies kXMP_PropHasQualifiers, property has xml:lang.">kXMP_PropHasLang</a> = 0x00000040UL,
-<a name="l00592"></a>00592
-<a name="l00594"></a><a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aeff16fdf167afc73db25b30b529bd9d5">00594</a> <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aeff16fdf167afc73db25b30b529bd9d5" title="Implies kXMP_PropHasQualifiers, property has rdf:type.">kXMP_PropHasType</a> = 0x00000080UL,
-<a name="l00595"></a>00595
-<a name="l00596"></a>00596 <span class="comment">// --------------------------------------------</span>
-<a name="l00597"></a>00597 <span class="comment">// Options relating to the data structure form.</span>
-<a name="l00598"></a>00598
-<a name="l00600"></a><a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e">00600</a> <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e" title="The value is a structure with nested fields.">kXMP_PropValueIsStruct</a> = 0x00000100UL,
-<a name="l00601"></a>00601
-<a name="l00604"></a><a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a9b7706e0f0716ac7546bdc24ffedd0bc">00604</a> <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a9b7706e0f0716ac7546bdc24ffedd0bc">kXMP_PropValueIsArray</a> = 0x00000200UL,
-<a name="l00605"></a>00605
-<a name="l00607"></a><a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a0d70c23394c0676657c89de5491192c0">00607</a> <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a0d70c23394c0676657c89de5491192c0" title="The item order does not matter.">kXMP_PropArrayIsUnordered</a> = <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a9b7706e0f0716ac7546bdc24ffedd0bc">kXMP_PropValueIsArray</a>,
-<a name="l00608"></a>00608
-<a name="l00610"></a><a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5af1cdb3b0a3e852ec55e747a1686aba04">00610</a> <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5af1cdb3b0a3e852ec55e747a1686aba04" title="Implies kXMP_PropValueIsArray, item order matters. It is serialized using an rdf:Seq...">kXMP_PropArrayIsOrdered</a> = 0x00000400UL,
-<a name="l00611"></a>00611
-<a name="l00613"></a><a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a2596b1f0ea4600270c99102c86b5f1f1">00613</a> <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a2596b1f0ea4600270c99102c86b5f1f1" title="Implies kXMP_PropArrayIsOrdered, items are alternates. It is serialized using an...">kXMP_PropArrayIsAlternate</a> = 0x00000800UL,
-<a name="l00614"></a>00614
-<a name="l00615"></a>00615 <span class="comment">// ------------------------------------</span>
-<a name="l00616"></a>00616 <span class="comment">// Additional struct and array options.</span>
-<a name="l00617"></a>00617
-<a name="l00620"></a><a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aba253f67a6cf44b7438a3f96b516846d">00620</a> <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aba253f67a6cf44b7438a3f96b516846d">kXMP_PropArrayIsAltText</a> = 0x00001000UL,
-<a name="l00621"></a>00621
-<a name="l00622"></a>00622 <span class="comment">// kXMP_InsertBeforeItem = 0x00004000UL, ! Used by SetXyz functions.</span>
-<a name="l00623"></a>00623 <span class="comment">// kXMP_InsertAfterItem = 0x00008000UL, ! Used by SetXyz functions.</span>
-<a name="l00624"></a>00624
-<a name="l00625"></a>00625 <span class="comment">// ----------------------------</span>
-<a name="l00626"></a>00626 <span class="comment">// Other miscellaneous options.</span>
-<a name="l00627"></a>00627
-<a name="l00630"></a><a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5ab975c19fb5c50f732a1a0d84dadb7c37">00630</a> <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5ab975c19fb5c50f732a1a0d84dadb7c37">kXMP_PropIsAlias</a> = 0x00010000UL,
-<a name="l00631"></a>00631
-<a name="l00634"></a><a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a1f819ef281d1f52c4c12d5d02f49d3f0">00634</a> <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a1f819ef281d1f52c4c12d5d02f49d3f0">kXMP_PropHasAliases</a> = 0x00020000UL,
-<a name="l00635"></a>00635
-<a name="l00637"></a><a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a48097c6ea309f240965d77ab564a5464">00637</a> <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a48097c6ea309f240965d77ab564a5464" title="The value of this property is &amp;quot;owned&amp;quot; by the application, and should not...">kXMP_PropIsInternal</a> = 0x00040000UL,
-<a name="l00638"></a>00638
-<a name="l00640"></a><a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a81dcd06251771a0ddee6c1e36128c65c">00640</a> <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a81dcd06251771a0ddee6c1e36128c65c" title="The value of this property is not derived from the document content.">kXMP_PropIsStable</a> = 0x00100000UL,
-<a name="l00641"></a>00641
-<a name="l00643"></a><a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a0d898ea7f6b3db513bb24f8a6a285877">00643</a> <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a0d898ea7f6b3db513bb24f8a6a285877" title="The value of this property is derived from the document content.">kXMP_PropIsDerived</a> = 0x00200000UL,
-<a name="l00644"></a>00644
-<a name="l00645"></a>00645 <span class="comment">// kXMPUtil_AllowCommas = 0x10000000UL, ! Used by TXMPUtils::CatenateArrayItems and ::SeparateArrayItems.</span>
-<a name="l00646"></a>00646 <span class="comment">// kXMP_DeleteExisting = 0x20000000UL, ! Used by TXMPMeta::SetXyz functions to delete any pre-existing property.</span>
-<a name="l00647"></a>00647 <span class="comment">// kXMP_SchemaNode = 0x80000000UL, ! Returned by iterators - #define to avoid warnings</span>
-<a name="l00648"></a>00648
-<a name="l00649"></a>00649 <span class="comment">// ------------------------------</span>
-<a name="l00650"></a>00650 <span class="comment">// Masks that are multiple flags.</span>
-<a name="l00651"></a>00651
-<a name="l00653"></a><a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a6b5b5f4b869994b7390edc9589745e9f">00653</a> <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a6b5b5f4b869994b7390edc9589745e9f" title="Property type bit-flag mask for all array types.">kXMP_PropArrayFormMask</a> = <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a9b7706e0f0716ac7546bdc24ffedd0bc">kXMP_PropValueIsArray</a> | <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5af1cdb3b0a3e852ec55e747a1686aba04" title="Implies kXMP_PropValueIsArray, item order matters. It is serialized using an rdf:Seq...">kXMP_PropArrayIsOrdered</a> | <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a2596b1f0ea4600270c99102c86b5f1f1" title="Implies kXMP_PropArrayIsOrdered, items are alternates. It is serialized using an...">kXMP_PropArrayIsAlternate</a> | <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aba253f67a6cf44b7438a3f96b516846d">kXMP_PropArrayIsAltText</a>,
-<a name="l00654"></a>00654
-<a name="l00656"></a><a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a60a9f26fb66c2e65cf40d9bc44968956">00656</a> <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a60a9f26fb66c2e65cf40d9bc44968956" title="Property type bit-flag mask for composite types (array and struct).">kXMP_PropCompositeMask</a> = <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e" title="The value is a structure with nested fields.">kXMP_PropValueIsStruct</a> | <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a6b5b5f4b869994b7390edc9589745e9f" title="Property type bit-flag mask for all array types.">kXMP_PropArrayFormMask</a>,
-<a name="l00657"></a>00657
-<a name="l00659"></a><a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5ae154b58429b257b18963ba3503e67974">00659</a> <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5ae154b58429b257b18963ba3503e67974" title="Mask for bits that are reserved for transient use by the implementation.">kXMP_ImplReservedMask</a> = 0x70000000L
-<a name="l00660"></a>00660
-<a name="l00661"></a>00661 };
-<a name="l00662"></a>00662
-<a name="l00663"></a>00663 <span class="preprocessor">#define kXMP_SchemaNode ((XMP_OptionBits)0x80000000UL)</span>
-<a name="l00664"></a>00664 <span class="preprocessor"></span>
-<a name="l00673"></a>00673 <span class="keyword">enum</span> {
-<a name="l00674"></a>00674
-<a name="l00676"></a><a class="code" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04a873411f673fc2a6337083fd024df727f">00676</a> <a class="code" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04a873411f673fc2a6337083fd024df727f" title="Option for array item location: Insert a new item before the given index.">kXMP_InsertBeforeItem</a> = 0x00004000UL,
-<a name="l00677"></a>00677
-<a name="l00679"></a><a class="code" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04a98cedd5fa29d47abb2ac8903ac7f5a05">00679</a> <a class="code" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04a98cedd5fa29d47abb2ac8903ac7f5a05" title="Option for array item location: Insert a new item after the given index.">kXMP_InsertAfterItem</a> = 0x00008000UL,
-<a name="l00680"></a>00680
-<a name="l00682"></a><a class="code" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04addd07b4a38b25ab3841e28a9cb169d1c">00682</a> <a class="code" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04addd07b4a38b25ab3841e28a9cb169d1c" title="Delete any pre-existing property.">kXMP_DeleteExisting</a> = 0x20000000UL,
-<a name="l00683"></a>00683
-<a name="l00685"></a><a class="code" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04ad1b42a8a4c479d9bfaf406b79f2e1465">00685</a> <a class="code" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04ad1b42a8a4c479d9bfaf406b79f2e1465" title="Bit-flag mask for property-value option bits.">kXMP_PropValueOptionsMask</a> = <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aab51f87b5c48f47f5cefb9e03293dafb" title="The XML string form of the property value is a URI, use rdf:resource attribute. DISCOURAGED...">kXMP_PropValueIsURI</a>,
-<a name="l00686"></a>00686
-<a name="l00688"></a><a class="code" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04aef8c1934a17b0e5d8f0b20a7e89df0df">00688</a> <a class="code" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04aef8c1934a17b0e5d8f0b20a7e89df0df" title="Bit-flag mask for array-item location bits.">kXMP_PropArrayLocationMask</a> = <a class="code" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04a873411f673fc2a6337083fd024df727f" title="Option for array item location: Insert a new item before the given index.">kXMP_InsertBeforeItem</a> | <a class="code" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04a98cedd5fa29d47abb2ac8903ac7f5a05" title="Option for array item location: Insert a new item after the given index.">kXMP_InsertAfterItem</a>
-<a name="l00689"></a>00689
-<a name="l00690"></a>00690 };
-<a name="l00691"></a>00691
-<a name="l00692"></a>00692 <span class="comment">// -------------------------------------------------------------------------------------------------</span>
-<a name="l00693"></a>00693
-<a name="l00695"></a>00695 <span class="keyword">enum</span> {
-<a name="l00696"></a>00696
-<a name="l00698"></a><a class="code" href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca1e533852436acf75f594a4fb50a64400">00698</a> <a class="code" href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca1e533852436acf75f594a4fb50a64400" title="Require a surrounding x:xmpmeta element.">kXMP_RequireXMPMeta</a> = 0x0001UL,
-<a name="l00699"></a>00699
-<a name="l00701"></a><a class="code" href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca79b36427b7bf0c0a1ed010a44dec2d3e">00701</a> <a class="code" href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca79b36427b7bf0c0a1ed010a44dec2d3e" title="This is the not last input buffer for this parse stream.">kXMP_ParseMoreBuffers</a> = 0x0002UL,
-<a name="l00702"></a>00702
-<a name="l00704"></a><a class="code" href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca7107906eab0e1fa6f9f2dc6254ad88b1">00704</a> <a class="code" href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca7107906eab0e1fa6f9f2dc6254ad88b1" title="Do not reconcile alias differences, throw an exception.">kXMP_StrictAliasing</a> = 0x0004UL
-<a name="l00705"></a>00705
-<a name="l00706"></a>00706 };
-<a name="l00707"></a>00707
-<a name="l00709"></a>00709 <span class="keyword">enum</span> {
-<a name="l00710"></a>00710
-<a name="l00711"></a>00711 <span class="comment">// *** Option to remove empty struct/array, or leaf with empty value?</span>
-<a name="l00712"></a>00712
-<a name="l00714"></a><a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadbb9e4c7ee139da0dd4126ddea794c76">00714</a> <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadbb9e4c7ee139da0dd4126ddea794c76" title="Omit the XML packet wrapper.">kXMP_OmitPacketWrapper</a> = 0x0010UL,
-<a name="l00715"></a>00715
-<a name="l00717"></a><a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea238c792322c5bd5f9e4db3165e01f9d6">00717</a> <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea238c792322c5bd5f9e4db3165e01f9d6" title="Default is a writeable packet.">kXMP_ReadOnlyPacket</a> = 0x0020UL,
-<a name="l00718"></a>00718
-<a name="l00720"></a><a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea041dc6b7b8684be7112ae40f5f259ebb">00720</a> <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea041dc6b7b8684be7112ae40f5f259ebb" title="Use a compact form of RDF.">kXMP_UseCompactFormat</a> = 0x0040UL,
-<a name="l00721"></a>00721
-<a name="l00723"></a><a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea15e3fb0e64614c574ed554f2f72c0a5d">00723</a> <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea15e3fb0e64614c574ed554f2f72c0a5d" title="Use a canonical form of RDF.">kXMP_UseCanonicalFormat</a> = 0x0080UL,
-<a name="l00724"></a>00724
-<a name="l00726"></a><a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea0b659b3b544c7a5a076fbd3132cd7f7a">00726</a> <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea0b659b3b544c7a5a076fbd3132cd7f7a" title="Include a padding allowance for a thumbnail image.">kXMP_IncludeThumbnailPad</a> = 0x0100UL,
-<a name="l00727"></a>00727
-<a name="l00729"></a><a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadb35599da481cc22ea6342b7b4de6bc6">00729</a> <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadb35599da481cc22ea6342b7b4de6bc6" title="The padding parameter is the overall packet length.">kXMP_ExactPacketLength</a> = 0x0200UL,
-<a name="l00730"></a>00730
-<a name="l00732"></a><a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea79230f1d70d2625f7650db6ff5b1ea29">00732</a> <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea79230f1d70d2625f7650db6ff5b1ea29" title="Omit all formatting whitespace.">kXMP_OmitAllFormatting</a> = 0x0800UL,
-<a name="l00733"></a>00733
-<a name="l00735"></a><a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea9fb498d749d939e2ba9adf555a75b856">00735</a> <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea9fb498d749d939e2ba9adf555a75b856" title="Omit the x:xmpmeta element surrounding the rdf:RDF element.">kXMP_OmitXMPMetaElement</a> = 0x1000UL,
-<a name="l00736"></a>00736
-<a name="l00738"></a><a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea23054ea4ab89dfd802f14cb389e18745">00738</a> <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea23054ea4ab89dfd802f14cb389e18745" title="Include a rdf Hash and Merged flag in x:xmpmeta element.">kXMP_IncludeRDFHash</a> = 0x2000UL,
-<a name="l00739"></a>00739
-<a name="l00740"></a>00740 _XMP_LittleEndian_Bit = 0x0001UL, <span class="comment">// ! Don&#39;t use directly, see the combined values below!</span>
-<a name="l00741"></a>00741 _XMP_UTF16_Bit = 0x0002UL,
-<a name="l00742"></a>00742 _XMP_UTF32_Bit = 0x0004UL,
-<a name="l00743"></a>00743
-<a name="l00745"></a><a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eaeb79571cac99ee97feefb0347b1c1845">00745</a> <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eaeb79571cac99ee97feefb0347b1c1845" title="Bit-flag mask for encoding-type bits.">kXMP_EncodingMask</a> = 0x0007UL,
-<a name="l00746"></a>00746
-<a name="l00748"></a><a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadc8f241694f5a758e5ee3f6db69d02ab">00748</a> <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadc8f241694f5a758e5ee3f6db69d02ab" title="Use UTF8 encoding.">kXMP_EncodeUTF8</a> = 0UL,
-<a name="l00749"></a>00749
-<a name="l00751"></a><a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea310e4cbf639e783163778566b439f01d">00751</a> <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea310e4cbf639e783163778566b439f01d" title="Use UTF16 big-endian encoding.">kXMP_EncodeUTF16Big</a> = _XMP_UTF16_Bit,
-<a name="l00752"></a>00752
-<a name="l00754"></a><a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eafc6417e382c98a2d507830de62fd4830">00754</a> <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eafc6417e382c98a2d507830de62fd4830" title="Use UTF16 little-endian encoding.">kXMP_EncodeUTF16Little</a> = _XMP_UTF16_Bit | _XMP_LittleEndian_Bit,
-<a name="l00755"></a>00755
-<a name="l00757"></a><a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea793e99d9ea83f0aadd5b4193a95ea713">00757</a> <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea793e99d9ea83f0aadd5b4193a95ea713" title="Use UTF32 big-endian encoding.">kXMP_EncodeUTF32Big</a> = _XMP_UTF32_Bit,
-<a name="l00758"></a>00758
-<a name="l00760"></a><a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eae0137d98ea990fa23d292489031ba09e">00760</a> <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eae0137d98ea990fa23d292489031ba09e" title="Use UTF13 little-endian encoding.">kXMP_EncodeUTF32Little</a> = _XMP_UTF32_Bit | _XMP_LittleEndian_Bit
-<a name="l00761"></a>00761
-<a name="l00762"></a>00762 };
-<a name="l00763"></a>00763
-<a name="l00764"></a>00764 <span class="comment">// -------------------------------------------------------------------------------------------------</span>
-<a name="l00765"></a>00765
-<a name="l00767"></a>00767 <span class="keyword">enum</span> {
-<a name="l00768"></a>00768
-<a name="l00770"></a><a class="code" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a93f77b837d89759af3a721712c13f044">00770</a> <a class="code" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a93f77b837d89759af3a721712c13f044" title="The low 8 bits are an enum of what data structure to iterate.">kXMP_IterClassMask</a> = 0x00FFUL,
-<a name="l00771"></a>00771
-<a name="l00773"></a><a class="code" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635aa0643c076a3b3737ff88ed20f16afd2b">00773</a> <a class="code" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635aa0643c076a3b3737ff88ed20f16afd2b" title="Iterate the property tree of a TXMPMeta object.">kXMP_IterProperties</a> = 0x0000UL,
-<a name="l00774"></a>00774
-<a name="l00776"></a><a class="code" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a3333450505cd3712320aeac895e541b9">00776</a> <a class="code" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a3333450505cd3712320aeac895e541b9" title="Iterate the global alias table.">kXMP_IterAliases</a> = 0x0001UL,
-<a name="l00777"></a>00777
-<a name="l00779"></a><a class="code" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635aa325d9ffba68a934f0a0a0f6ecfc2f7b">00779</a> <a class="code" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635aa325d9ffba68a934f0a0a0f6ecfc2f7b" title="Iterate the global namespace table.">kXMP_IterNamespaces</a> = 0x0002UL,
-<a name="l00780"></a>00780
-<a name="l00782"></a><a class="code" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635ab26e1a38d1d0343fcc5bdaab1b60e3ed">00782</a> <a class="code" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635ab26e1a38d1d0343fcc5bdaab1b60e3ed" title="Just do the immediate children of the root, default is subtree.">kXMP_IterJustChildren</a> = 0x0100UL,
-<a name="l00783"></a>00783
-<a name="l00785"></a><a class="code" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a4589f99b5b4a55e785e3baf4fe1d9b19">00785</a> <a class="code" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a4589f99b5b4a55e785e3baf4fe1d9b19" title="Just do the leaf nodes, default is all nodes in the subtree.">kXMP_IterJustLeafNodes</a> = 0x0200UL,
-<a name="l00786"></a>00786
-<a name="l00788"></a><a class="code" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635acf22e638f4144bcec8207b2ab69bb344">00788</a> <a class="code" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635acf22e638f4144bcec8207b2ab69bb344" title="Return just the leaf part of the path, default is the full path.">kXMP_IterJustLeafName</a> = 0x0400UL,
-<a name="l00789"></a>00789
-<a name="l00791"></a><a class="code" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a1b91947105ae68c48c5d5e36aa70d101">00791</a> <a class="code" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a1b91947105ae68c48c5d5e36aa70d101" title="Omit all qualifiers.">kXMP_IterOmitQualifiers</a> = 0x1000UL
-<a name="l00792"></a>00792
-<a name="l00793"></a>00793 };
-<a name="l00794"></a>00794
-<a name="l00796"></a>00796 <span class="keyword">enum</span> {
-<a name="l00797"></a>00797
-<a name="l00799"></a><a class="code" href="XMP__Const_8h.html#a0411cd49bb5b71852cecd93bcbf0ca2dab0b540cd3841f411471a827f833c606e">00799</a> <a class="code" href="XMP__Const_8h.html#a0411cd49bb5b71852cecd93bcbf0ca2dab0b540cd3841f411471a827f833c606e" title="Skip the subtree below the current node.">kXMP_IterSkipSubtree</a> = 0x0001UL,
-<a name="l00800"></a>00800
-<a name="l00802"></a><a class="code" href="XMP__Const_8h.html#a0411cd49bb5b71852cecd93bcbf0ca2da2537b4b8db838f85b47988b198cd2a12">00802</a> <a class="code" href="XMP__Const_8h.html#a0411cd49bb5b71852cecd93bcbf0ca2da2537b4b8db838f85b47988b198cd2a12" title="Skip the subtree below and remaining siblings of the current node.">kXMP_IterSkipSiblings</a> = 0x0002UL
-<a name="l00803"></a>00803
-<a name="l00804"></a>00804 };
-<a name="l00805"></a>00805
-<a name="l00806"></a>00806 <span class="comment">// -------------------------------------------------------------------------------------------------</span>
-<a name="l00807"></a>00807
-<a name="l00814"></a>00814 <span class="keyword">enum</span> {
-<a name="l00815"></a>00815
-<a name="l00817"></a><a class="code" href="XMP__Const_8h.html#abed82baf7f470b522273a3e37c24c600ad6d41710c689f16d19ac26dc9f5cc506">00817</a> <a class="code" href="XMP__Const_8h.html#abed82baf7f470b522273a3e37c24c600ad6d41710c689f16d19ac26dc9f5cc506" title="Allow commas in item values, default is separator.">kXMPUtil_AllowCommas</a> = 0x10000000UL
-<a name="l00818"></a>00818
-<a name="l00819"></a>00819 };
-<a name="l00820"></a>00820
-<a name="l00822"></a>00822 <span class="keyword">enum</span> {
-<a name="l00823"></a>00823
-<a name="l00825"></a><a class="code" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a872d2b769e775e281984cc63e28714ea">00825</a> <a class="code" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a872d2b769e775e281984cc63e28714ea" title="Do all properties, default is just external properties.">kXMPTemplate_IncludeInternalProperties</a> = 0x0001UL,
-<a name="l00826"></a>00826
-<a name="l00828"></a><a class="code" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57aae2e0fe43295736a15f0bb76ffe02544">00828</a> <a class="code" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57aae2e0fe43295736a15f0bb76ffe02544" title="Perform a Replace operation, add new properties and modify existing ones.">kXMPTemplate_ReplaceExistingProperties</a> = 0x0002UL,
-<a name="l00829"></a>00829
-<a name="l00831"></a><a class="code" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a81e1b6fd067fc9ad62bc803c98701bd5">00831</a> <a class="code" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a81e1b6fd067fc9ad62bc803c98701bd5" title="Similar to Replace, also delete if the template has an empty value.">kXMPTemplate_ReplaceWithDeleteEmpty</a> = 0x0004UL,
-<a name="l00832"></a>00832
-<a name="l00834"></a><a class="code" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a145c259f83048b811c7b35bc3b339c42">00834</a> <a class="code" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a145c259f83048b811c7b35bc3b339c42" title="Perform an Add operation, add properties if they don&amp;#39;t already exist.">kXMPTemplate_AddNewProperties</a> = 0x0008UL,
-<a name="l00835"></a>00835
-<a name="l00837"></a><a class="code" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a9dac536fe6ee25de76d45bf6615abd46">00837</a> <a class="code" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a9dac536fe6ee25de76d45bf6615abd46" title="Perform a Clear operation, keep named properties and delete everything else.">kXMPTemplate_ClearUnnamedProperties</a> = 0x0010UL
-<a name="l00838"></a>00838
-<a name="l00839"></a>00839 };
-<a name="l00840"></a>00840
-<a name="l00842"></a>00842 <span class="keyword">enum</span> {
-<a name="l00843"></a>00843
-<a name="l00845"></a><a class="code" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a8ddfb0572b7602a52e533d92d8b1e9fb">00845</a> <a class="code" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a8ddfb0572b7602a52e533d92d8b1e9fb" title="Do all properties, default is just external properties.">kXMPUtil_DoAllProperties</a> = 0x0001UL,
-<a name="l00846"></a>00846
-<a name="l00848"></a><a class="code" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388adab4dad658d2d218c5b1e7d829b12962">00848</a> <a class="code" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388adab4dad658d2d218c5b1e7d829b12962" title="Replace existing values, default is to leave them.">kXMPUtil_ReplaceOldValues</a> = 0x0002UL,
-<a name="l00849"></a>00849
-<a name="l00851"></a><a class="code" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a97753b4c5afda9c55e807e41377d86d9">00851</a> <a class="code" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a97753b4c5afda9c55e807e41377d86d9" title="Delete properties if the new value is empty.">kXMPUtil_DeleteEmptyValues</a> = 0x0004UL,
-<a name="l00852"></a>00852
-<a name="l00854"></a><a class="code" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a843589b878f53d42d59258f945ad770b">00854</a> <a class="code" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a843589b878f53d42d59258f945ad770b" title="Include aliases, default is just actual properties.">kXMPUtil_IncludeAliases</a> = 0x0800UL
-<a name="l00855"></a>00855
-<a name="l00856"></a>00856 };
-<a name="l00857"></a>00857
-<a name="l00858"></a>00858 <span class="comment">// =================================================================================================</span>
-<a name="l00859"></a>00859 <span class="comment">// Types and Constants for XMPFiles</span>
-<a name="l00860"></a>00860 <span class="comment">// ================================</span>
-<a name="l00861"></a>00861
-<a name="l00863"></a><a class="code" href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563f">00863</a> <span class="keyword">enum</span> <a class="code" href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563f" title="Seek mode constants for use with XMP_IO and inside XMPFiles library code.">SeekMode</a> { kXMP_SeekFromStart, kXMP_SeekFromCurrent, kXMP_SeekFromEnd };
-<a name="l00864"></a>00864
-<a name="l00866"></a>00866 <span class="keyword">enum</span> {
-<a name="l00867"></a>00867
-<a name="l00868"></a>00868 <span class="comment">// ! Hex used to avoid gcc warnings. Leave the constants so the text reads big endian. There</span>
-<a name="l00869"></a>00869 <span class="comment">// ! seems to be no decent way on UNIX to determine the target endianness at compile time.</span>
-<a name="l00870"></a>00870 <span class="comment">// ! Forcing it on the client isn&#39;t acceptable.</span>
-<a name="l00871"></a>00871
-<a name="l00872"></a>00872 <span class="comment">// --------------------</span>
-<a name="l00873"></a>00873 <span class="comment">// Public file formats.</span>
-<a name="l00874"></a>00874
-<a name="l00876"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da17ab6d429c1550eb3cc16d2e544b78eb">00876</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da17ab6d429c1550eb3cc16d2e544b78eb" title="Public file format constant: &amp;#39;PDF &amp;#39;.">kXMP_PDFFile</a> = 0x50444620UL,
-<a name="l00878"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da52c90935ee28a0875a49843d463cad70">00878</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da52c90935ee28a0875a49843d463cad70" title="Public file format constant: &amp;#39;PS &amp;#39;, general PostScript following DSC conventions...">kXMP_PostScriptFile</a> = 0x50532020UL,
-<a name="l00880"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad947e6da0c4d923195d93e0c53a79c4e">00880</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad947e6da0c4d923195d93e0c53a79c4e" title="Public file format constant: &amp;#39;EPS &amp;#39;, encapsulated PostScript.">kXMP_EPSFile</a> = 0x45505320UL,
-<a name="l00881"></a>00881
-<a name="l00883"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad752b2d3e1139e0745223a9385ef6487">00883</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad752b2d3e1139e0745223a9385ef6487" title="Public file format constant: &amp;#39;JPEG&amp;#39;.">kXMP_JPEGFile</a> = 0x4A504547UL,
-<a name="l00885"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da78b8fa38aaa2067e3e1baa0dcaa7571d">00885</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da78b8fa38aaa2067e3e1baa0dcaa7571d" title="Public file format constant: &amp;#39;JPX &amp;#39;, JPEG 2000, ISO 15444-1.">kXMP_JPEG2KFile</a> = 0x4A505820UL,
-<a name="l00887"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dadc0edf25d933c2a21b25449692c3ba08">00887</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dadc0edf25d933c2a21b25449692c3ba08" title="Public file format constant: &amp;#39;TIFF&amp;#39;.">kXMP_TIFFFile</a> = 0x54494646UL,
-<a name="l00889"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da851d2f4525d705cd2dcabb540d0ddc06">00889</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da851d2f4525d705cd2dcabb540d0ddc06" title="Public file format constant: &amp;#39;GIF &amp;#39;.">kXMP_GIFFile</a> = 0x47494620UL,
-<a name="l00891"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dac989381d37de320495e4d13f9ecc6371">00891</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dac989381d37de320495e4d13f9ecc6371" title="Public file format constant: &amp;#39;PNG &amp;#39;.">kXMP_PNGFile</a> = 0x504E4720UL,
-<a name="l00892"></a>00892
-<a name="l00894"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da564a8095f65d951f451e16eb56650597">00894</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da564a8095f65d951f451e16eb56650597" title="Public file format constant: &amp;#39;SWF &amp;#39;.">kXMP_SWFFile</a> = 0x53574620UL,
-<a name="l00896"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dab1eeba00d1d92e313acfe68cd054daf9">00896</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dab1eeba00d1d92e313acfe68cd054daf9" title="Public file format constant: &amp;#39;FLA &amp;#39;.">kXMP_FLAFile</a> = 0x464C4120UL,
-<a name="l00898"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da455bc501088bbd8061fe3ea386a5066f">00898</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da455bc501088bbd8061fe3ea386a5066f" title="Public file format constant: &amp;#39;FLV &amp;#39;.">kXMP_FLVFile</a> = 0x464C5620UL,
-<a name="l00899"></a>00899
-<a name="l00901"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daebdb172c8a75b4ead2eff2d26ed3dc37">00901</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daebdb172c8a75b4ead2eff2d26ed3dc37" title="Public file format constant: &amp;#39;MOV &amp;#39;, Quicktime.">kXMP_MOVFile</a> = 0x4D4F5620UL,
-<a name="l00903"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dae3a6333624e5c292caf14ad849a5e26e">00903</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dae3a6333624e5c292caf14ad849a5e26e" title="Public file format constant: &amp;#39;AVI &amp;#39;.">kXMP_AVIFile</a> = 0x41564920UL,
-<a name="l00905"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad2935ea79b4f9253891e3a68a002c5bb">00905</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad2935ea79b4f9253891e3a68a002c5bb" title="Public file format constant: &amp;#39;CIN &amp;#39;, Cineon.">kXMP_CINFile</a> = 0x43494E20UL,
-<a name="l00907"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dacc1fcd4e52423c0dd2966a2e92352fb8">00907</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dacc1fcd4e52423c0dd2966a2e92352fb8" title="Public file format constant: &amp;#39;WAV &amp;#39;.">kXMP_WAVFile</a> = 0x57415620UL,
-<a name="l00909"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf3ee34ed2bc26dec0e2d572eeb0de89b">00909</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf3ee34ed2bc26dec0e2d572eeb0de89b" title="Public file format constant: &amp;#39;MP3 &amp;#39;.">kXMP_MP3File</a> = 0x4D503320UL,
-<a name="l00911"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da42cb8767d9cf16eaeb7aec68a4f224e9">00911</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da42cb8767d9cf16eaeb7aec68a4f224e9" title="Public file format constant: &amp;#39;SES &amp;#39;, Audition session.">kXMP_SESFile</a> = 0x53455320UL,
-<a name="l00913"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da6c949ee85f42eaaed035591338be6789">00913</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da6c949ee85f42eaaed035591338be6789" title="Public file format constant: &amp;#39;CEL &amp;#39;, Audition loop.">kXMP_CELFile</a> = 0x43454C20UL,
-<a name="l00915"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da043afdc1db730db9ac03c505140c61c8">00915</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da043afdc1db730db9ac03c505140c61c8" title="Public file format constant: &amp;#39;MPEG&amp;#39;.">kXMP_MPEGFile</a> = 0x4D504547UL,
-<a name="l00917"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dab58eaebed494530072ad990ac7a9807a">00917</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dab58eaebed494530072ad990ac7a9807a" title="Public file format constant: &amp;#39;MP2 &amp;#39;.">kXMP_MPEG2File</a> = 0x4D503220UL,
-<a name="l00919"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da89e6282c3f0c8966d788500f5d8eaa91">00919</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da89e6282c3f0c8966d788500f5d8eaa91" title="Public file format constant: &amp;#39;MP4 &amp;#39;, ISO 14494-12 and -14.">kXMP_MPEG4File</a> = 0x4D503420UL,
-<a name="l00921"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da4b3477bdc53fae1511104fc54f88d134">00921</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da4b3477bdc53fae1511104fc54f88d134" title="Public file format constant: &amp;#39;MXF &amp;#39;.">kXMP_MXFFile</a> = 0x4D584620UL,
-<a name="l00923"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da78c62f7c10b16b1a862d93f6226a4622">00923</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da78c62f7c10b16b1a862d93f6226a4622" title="Public file format constant: &amp;#39;WMAV&amp;#39;, Windows Media Audio and Video.">kXMP_WMAVFile</a> = 0x574D4156UL,
-<a name="l00925"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf093d01e7e9cc55a7d1e204498521fc3">00925</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf093d01e7e9cc55a7d1e204498521fc3" title="Public file format constant: &amp;#39;AIFF&amp;#39;.">kXMP_AIFFFile</a> = 0x41494646UL,
-<a name="l00927"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daab032aa36aec082c6b3a8300548346f5">00927</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daab032aa36aec082c6b3a8300548346f5" title="Public file format constant: &amp;#39;RED &amp;#39;, RED file format.">kXMP_REDFile</a> = 0x52454420UL,
-<a name="l00929"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dabad9584845edf66f2f8fc3c336977e34">00929</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dabad9584845edf66f2f8fc3c336977e34" title="Public file format constant: &amp;#39;P2 &amp;#39;, a collection not really a single file...">kXMP_P2File</a> = 0x50322020UL,
-<a name="l00931"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da5f78caa0871695cc92e058e4f4b2dd57">00931</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da5f78caa0871695cc92e058e4f4b2dd57" title="Public file format constant: &amp;#39;XDCF&amp;#39;, a collection not really a single file...">kXMP_XDCAM_FAMFile</a> = 0x58444346UL,
-<a name="l00933"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da64fe7908df6341e13d9d8c8199cdf852">00933</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da64fe7908df6341e13d9d8c8199cdf852" title="Public file format constant: &amp;#39;XDCS&amp;#39;, a collection not really a single file...">kXMP_XDCAM_SAMFile</a> = 0x58444353UL,
-<a name="l00935"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da45bf9b21d5ffed3594fbd585c47cc4fc">00935</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da45bf9b21d5ffed3594fbd585c47cc4fc" title="Public file format constant: &amp;#39;XDCX&amp;#39;, a collection not really a single file...">kXMP_XDCAM_EXFile</a> = 0x58444358UL,
-<a name="l00937"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafc5ff976e78df2d79d651de818b011f2">00937</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafc5ff976e78df2d79d651de818b011f2" title="Public file format constant: &amp;#39;AVHD&amp;#39;, a collection not really a single file...">kXMP_AVCHDFile</a> = 0x41564844UL,
-<a name="l00939"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daa0edb070c11f87c3dad9f8f7a83b9b5e">00939</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daa0edb070c11f87c3dad9f8f7a83b9b5e" title="Public file format constant: &amp;#39;SHDV&amp;#39;, a collection not really a single file...">kXMP_SonyHDVFile</a> = 0x53484456UL,
-<a name="l00941"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafa11d905db1236494e555956cb2f90ef">00941</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafa11d905db1236494e555956cb2f90ef" title="Public file format constant: &amp;#39;CNXF&amp;#39;, a collection not really a single file...">kXMP_CanonXFFile</a> = 0x434E5846UL,
-<a name="l00942"></a>00942
-<a name="l00944"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da542634e6051139c44fd7b92d08c64760">00944</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da542634e6051139c44fd7b92d08c64760" title="Public file format constant: &amp;#39;HTML&amp;#39;.">kXMP_HTMLFile</a> = 0x48544D4CUL,
-<a name="l00946"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad217b996403fa13caef3d6e978023124">00946</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad217b996403fa13caef3d6e978023124" title="Public file format constant: &amp;#39;XML &amp;#39;.">kXMP_XMLFile</a> = 0x584D4C20UL,
-<a name="l00948"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da27051cd824d3ae7bb59e3af7a7908ffd">00948</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da27051cd824d3ae7bb59e3af7a7908ffd" title="Public file format constant: &amp;#39;text&amp;#39;.">kXMP_TextFile</a> = 0x74657874UL,
-<a name="l00949"></a>00949
-<a name="l00950"></a>00950 <span class="comment">// -------------------------------</span>
-<a name="l00951"></a>00951 <span class="comment">// Adobe application file formats.</span>
-<a name="l00952"></a>00952
-<a name="l00954"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da22b478a9d0d52d12e8e4a1181024eb1c">00954</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da22b478a9d0d52d12e8e4a1181024eb1c" title="Adobe application file format constant: &amp;#39;PSD &amp;#39;.">kXMP_PhotoshopFile</a> = 0x50534420UL,
-<a name="l00956"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da82935c41c6222ff4cca954278f18e554">00956</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da82935c41c6222ff4cca954278f18e554" title="Adobe application file format constant: &amp;#39;AI &amp;#39;.">kXMP_IllustratorFile</a> = 0x41492020UL,
-<a name="l00958"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da79cbf96ecc4ac3e0ebfb2d182bc75e60">00958</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da79cbf96ecc4ac3e0ebfb2d182bc75e60" title="Adobe application file format constant: &amp;#39;INDD&amp;#39;.">kXMP_InDesignFile</a> = 0x494E4444UL,
-<a name="l00960"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da5fb9e99541bbb2d8e375d0cc9fd92a2e">00960</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da5fb9e99541bbb2d8e375d0cc9fd92a2e" title="Adobe application file format constant: &amp;#39;AEP &amp;#39;.">kXMP_AEProjectFile</a> = 0x41455020UL,
-<a name="l00962"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dada5b138722448c4d4595fe760668c3df">00962</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dada5b138722448c4d4595fe760668c3df" title="Adobe application file format constant: &amp;#39;AET &amp;#39;, After Effects Project Template...">kXMP_AEProjTemplateFile</a> = 0x41455420UL,
-<a name="l00964"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafd8d3d1c8c84bc6ab773f1298b3938f0">00964</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafd8d3d1c8c84bc6ab773f1298b3938f0" title="Adobe application file format constant: &amp;#39;FFX &amp;#39;.">kXMP_AEFilterPresetFile</a> = 0x46465820UL,
-<a name="l00966"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dae28efb65bde55f3f8ddfd1fd8a168e2a">00966</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dae28efb65bde55f3f8ddfd1fd8a168e2a" title="Adobe application file format constant: &amp;#39;NCOR&amp;#39;.">kXMP_EncoreProjectFile</a> = 0x4E434F52UL,
-<a name="l00968"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daeff4f68cd5162370f7bf938a868e280d">00968</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daeff4f68cd5162370f7bf938a868e280d" title="Adobe application file format constant: &amp;#39;PRPJ&amp;#39;.">kXMP_PremiereProjectFile</a> = 0x5052504AUL,
-<a name="l00970"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da1ad712bbd349dc899ca1e71971032b0a">00970</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da1ad712bbd349dc899ca1e71971032b0a" title="Adobe application file format constant: &amp;#39;PRTL&amp;#39;.">kXMP_PremiereTitleFile</a> = 0x5052544CUL,
-<a name="l00972"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da96804f7b8ce83786051c4dac4930aa96">00972</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da96804f7b8ce83786051c4dac4930aa96" title="Adobe application file format constant: &amp;#39;UCF &amp;#39;, Universal Container Format...">kXMP_UCFFile</a> = 0x55434620UL,
-<a name="l00973"></a>00973
-<a name="l00974"></a>00974 <span class="comment">// -------</span>
-<a name="l00975"></a>00975 <span class="comment">// Others.</span>
-<a name="l00976"></a>00976
-<a name="l00978"></a><a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719">00978</a> <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719" title="Unknown file format constant: &amp;#39; &amp;#39;.">kXMP_UnknownFile</a> = 0x20202020UL
-<a name="l00979"></a>00979
-<a name="l00980"></a>00980 };
-<a name="l00981"></a>00981
-<a name="l00983"></a><a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">00983</a> <span class="keyword">typedef</span> XMP_Uns32 <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e" title="Type for file format identification constants. See kXMP_PDFFile and following.">XMP_FileFormat</a>;
-<a name="l00984"></a>00984
-<a name="l00985"></a>00985 <span class="comment">// -------------------------------------------------------------------------------------------------</span>
-<a name="l00986"></a>00986
-<a name="l00988"></a>00988 <span class="keyword">enum</span> {
-<a name="l00989"></a>00989 kXMP_CharLittleEndianMask = 1,
-<a name="l00990"></a>00990 kXMP_Char16BitMask = 2,
-<a name="l00991"></a>00991 kXMP_Char32BitMask = 4
-<a name="l00992"></a>00992 };
-<a name="l00993"></a>00993
-<a name="l00995"></a>00995 <span class="keyword">enum</span> {
-<a name="l00997"></a><a class="code" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9eaf5b20dd9abbef29169a362b265049637">00997</a> <a class="code" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9eaf5b20dd9abbef29169a362b265049637" title="8-bit">kXMP_Char8Bit</a> = 0,
-<a name="l00999"></a><a class="code" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea0966bca9b241646f6a730f96c5c14a2d">00999</a> <a class="code" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea0966bca9b241646f6a730f96c5c14a2d" title="16-bit big-endian">kXMP_Char16BitBig</a> = kXMP_Char16BitMask,
-<a name="l01001"></a><a class="code" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea19b97b941d6586031190025225ee0eaa">01001</a> <a class="code" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea19b97b941d6586031190025225ee0eaa" title="16-bit little-endian">kXMP_Char16BitLittle</a> = kXMP_Char16BitMask | kXMP_CharLittleEndianMask,
-<a name="l01003"></a><a class="code" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea87f8231aec6dd125baf77c9f3f918fbc">01003</a> <a class="code" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea87f8231aec6dd125baf77c9f3f918fbc" title="32-bit big-endian">kXMP_Char32BitBig</a> = kXMP_Char32BitMask,
-<a name="l01005"></a><a class="code" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea859e7aa88e7dfd3f55ad2b6445a4708e">01005</a> <a class="code" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea859e7aa88e7dfd3f55ad2b6445a4708e" title="32-bit little-endian">kXMP_Char32BitLittle</a> = kXMP_Char32BitMask | kXMP_CharLittleEndianMask,
-<a name="l01007"></a><a class="code" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea6c37f0724299a9c88e2f622d3246d63b">01007</a> <a class="code" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea6c37f0724299a9c88e2f622d3246d63b" title="Variable or not-yet-known cases.">kXMP_CharUnknown</a> = 1
-<a name="l01008"></a>01008 };
-<a name="l01009"></a>01009
-<a name="l01042"></a>01042
-<a name="l01043"></a><a class="code" href="XMP__Const_8h.html#aa7596216164335f926cb91d600cddf99">01043</a> <span class="preprocessor">#define XMP_CharFormIs16Bit(f) ( ((int)(f) &amp; kXMP_Char16BitMask) != 0 )</span>
-<a name="l01044"></a><a class="code" href="XMP__Const_8h.html#a1e99ef08266943f52f5c649ab2836ddf">01044</a> <span class="preprocessor"></span><span class="preprocessor">#define XMP_CharFormIs32Bit(f) ( ((int)(f) &amp; kXMP_Char32BitMask) != 0 )</span>
-<a name="l01045"></a><a class="code" href="XMP__Const_8h.html#aba2539629b8d238fc56a1901dd07ebca">01045</a> <span class="preprocessor"></span><span class="preprocessor">#define XMP_CharFormIsBigEndian(f) ( ((int)(f) &amp; kXMP_CharLittleEndianMask) == 0 )</span>
-<a name="l01046"></a><a class="code" href="XMP__Const_8h.html#a906ec1cd2fb1631c1b5ad9ccdf9c0a6b">01046</a> <span class="preprocessor"></span><span class="preprocessor">#define XMP_CharFormIsLittleEndian(f) ( ((int)(f) &amp; kXMP_CharLittleEndianMask) != 0 )</span>
-<a name="l01047"></a><a class="code" href="XMP__Const_8h.html#a85bbf023b1b799c3c20176aa289d32b0">01047</a> <span class="preprocessor"></span><span class="preprocessor">#define XMP_GetCharSize(f) ( ((int)(f)&amp;6) == 0 ? 1 : (int)(f)&amp;6 )</span>
-<a name="l01048"></a><a class="code" href="XMP__Const_8h.html#a8f522964919b742b4138c79611997bae">01048</a> <span class="preprocessor"></span><span class="preprocessor">#define XMP_CharToSerializeForm(cf) ( (XMP_OptionBits)(cf) )</span>
-<a name="l01049"></a><a class="code" href="XMP__Const_8h.html#a93e7900e6c9fb4057dfd685b5201057d">01049</a> <span class="preprocessor"></span><span class="preprocessor">#define XMP_CharFromSerializeForm(sf) ( (XMP_Uns8)(sf) )</span>
-<a name="l01050"></a>01050 <span class="preprocessor"></span>
-<a name="l01053"></a><a class="code" href="XMP__Const_8h.html#a6a9b77b60c63781a8776f10880856bf4">01053</a> <span class="preprocessor">#define kXMPFiles_UnknownOffset ((XMP_Int64)-1)</span>
-<a name="l01054"></a>01054 <span class="preprocessor"></span>
-<a name="l01057"></a><a class="code" href="XMP__Const_8h.html#ae0901aabcf619f17cff03f08e5ed3658">01057</a> <span class="preprocessor">#define kXMPFiles_UnknownLength ((XMP_Int32)-1)</span>
-<a name="l01058"></a>01058 <span class="preprocessor"></span>
-<a name="l01060"></a><a class="code" href="structXMP__PacketInfo.html">01060</a> <span class="keyword">struct </span><a class="code" href="structXMP__PacketInfo.html" title="XMP packet description.">XMP_PacketInfo</a> {
-<a name="l01061"></a>01061
-<a name="l01063"></a><a class="code" href="structXMP__PacketInfo.html#a20f65fcfd0f3658ab93ff441a9d61d2c">01063</a> XMP_Int64 <a class="code" href="structXMP__PacketInfo.html#a20f65fcfd0f3658ab93ff441a9d61d2c" title="Packet offset in the file in bytes, -1 if unknown.">offset</a>;
-<a name="l01065"></a><a class="code" href="structXMP__PacketInfo.html#af526c582b66e24553f2d4b11eb714a44">01065</a> XMP_Int32 <a class="code" href="structXMP__PacketInfo.html#af526c582b66e24553f2d4b11eb714a44" title="Packet length in the file in bytes, -1 if unknown.">length</a>;
-<a name="l01067"></a><a class="code" href="structXMP__PacketInfo.html#af4f99e6a5b36b05fdf4a519421875256">01067</a> XMP_Int32 <a class="code" href="structXMP__PacketInfo.html#af4f99e6a5b36b05fdf4a519421875256" title="Packet padding size in bytes, zero if unknown.">padSize</a>; <span class="comment">// Zero if unknown.</span>
-<a name="l01068"></a>01068
-<a name="l01070"></a><a class="code" href="structXMP__PacketInfo.html#a039ce6665fe8e08d922a46f266799f75">01070</a> XMP_Uns8 <a class="code" href="structXMP__PacketInfo.html#a039ce6665fe8e08d922a46f266799f75" title="Character format using the values kXMP_Char8Bit, kXMP_Char16BitBig, etc.">charForm</a>;
-<a name="l01072"></a><a class="code" href="structXMP__PacketInfo.html#a66845c1d5f3f9f36a1543a7322bd7bd1">01072</a> XMP_Bool <a class="code" href="structXMP__PacketInfo.html#a66845c1d5f3f9f36a1543a7322bd7bd1" title="True if there is a packet wrapper and the trailer says writeable by dumb packet scanners...">writeable</a>;
-<a name="l01074"></a><a class="code" href="structXMP__PacketInfo.html#a6725d8ab8b4eedddaac950d2b1b00a7f">01074</a> XMP_Bool <a class="code" href="structXMP__PacketInfo.html#a6725d8ab8b4eedddaac950d2b1b00a7f" title="True if there is a packet wrapper, the &amp;quot;&amp;lt;?xpacket...&amp;gt;&amp;quot; XML processing...">hasWrapper</a>;
-<a name="l01075"></a>01075
-<a name="l01077"></a><a class="code" href="structXMP__PacketInfo.html#a83ec12161a36451fef05d88cc754104e">01077</a> XMP_Uns8 <a class="code" href="structXMP__PacketInfo.html#a83ec12161a36451fef05d88cc754104e" title="Padding to make the struct&amp;#39;s size be a multiple 4.">pad</a>;
-<a name="l01078"></a>01078
-<a name="l01080"></a><a class="code" href="structXMP__PacketInfo.html#a2ae03a1b3d03fa9ebc829105037155a8">01080</a> <a class="code" href="structXMP__PacketInfo.html#a2ae03a1b3d03fa9ebc829105037155a8" title="Default constructor.">XMP_PacketInfo</a>() : <a class="code" href="structXMP__PacketInfo.html#a20f65fcfd0f3658ab93ff441a9d61d2c" title="Packet offset in the file in bytes, -1 if unknown.">offset</a>(<a class="code" href="XMP__Const_8h.html#a6a9b77b60c63781a8776f10880856bf4" title="Constant for an unknown packet offset within a file.">kXMPFiles_UnknownOffset</a>), <a class="code" href="structXMP__PacketInfo.html#af526c582b66e24553f2d4b11eb714a44" title="Packet length in the file in bytes, -1 if unknown.">length</a>(<a class="code" href="XMP__Const_8h.html#ae0901aabcf619f17cff03f08e5ed3658" title="Constant for an unknown packet length within a file.">kXMPFiles_UnknownLength</a>),
-<a name="l01081"></a>01081 <a class="code" href="structXMP__PacketInfo.html#af4f99e6a5b36b05fdf4a519421875256" title="Packet padding size in bytes, zero if unknown.">padSize</a>(0), <a class="code" href="structXMP__PacketInfo.html#a039ce6665fe8e08d922a46f266799f75" title="Character format using the values kXMP_Char8Bit, kXMP_Char16BitBig, etc.">charForm</a>(0), <a class="code" href="structXMP__PacketInfo.html#a66845c1d5f3f9f36a1543a7322bd7bd1" title="True if there is a packet wrapper and the trailer says writeable by dumb packet scanners...">writeable</a>(0), <a class="code" href="structXMP__PacketInfo.html#a6725d8ab8b4eedddaac950d2b1b00a7f" title="True if there is a packet wrapper, the &amp;quot;&amp;lt;?xpacket...&amp;gt;&amp;quot; XML processing...">hasWrapper</a>(0), <a class="code" href="structXMP__PacketInfo.html#a83ec12161a36451fef05d88cc754104e" title="Padding to make the struct&amp;#39;s size be a multiple 4.">pad</a>(0) {};
-<a name="l01082"></a>01082
-<a name="l01083"></a>01083 };
-<a name="l01084"></a>01084
-<a name="l01086"></a>01086 <span class="keyword">enum</span> {
-<a name="l01088"></a><a class="code" href="XMP__Const_8h.html#a16af7b253440dadd46a80a4b9fddba4da767b4847575a8de28e691be660d43817">01088</a> <a class="code" href="XMP__Const_8h.html#a16af7b253440dadd46a80a4b9fddba4da767b4847575a8de28e691be660d43817" title="Version of the XMP_PacketInfo type.">kXMP_PacketInfoVersion</a> = 3
-<a name="l01089"></a>01089 };
-<a name="l01090"></a>01090
-<a name="l01091"></a>01091 <span class="comment">// -------------------------------------------------------------------------------------------------</span>
-<a name="l01092"></a>01092
-<a name="l01094"></a>01094 <span class="keyword">enum</span> {
-<a name="l01096"></a><a class="code" href="XMP__Const_8h.html#aba01db17f4a2bfbc3db60dc172972a25a9b9c1ef01e49193a167c40156df07b50">01096</a> <a class="code" href="XMP__Const_8h.html#aba01db17f4a2bfbc3db60dc172972a25a9b9c1ef01e49193a167c40156df07b50" title="Ignore non-XMP text that uses an undefined &amp;quot;local&amp;quot; encoding.">kXMPFiles_IgnoreLocalText</a> = 0x0002,
-<a name="l01098"></a><a class="code" href="XMP__Const_8h.html#aba01db17f4a2bfbc3db60dc172972a25aee2f09481347c29d6c06951b0d81e145">01098</a> <a class="code" href="XMP__Const_8h.html#aba01db17f4a2bfbc3db60dc172972a25aee2f09481347c29d6c06951b0d81e145" title="Combination of flags necessary for server products using XMPFiles.">kXMPFiles_ServerMode</a> = <a class="code" href="XMP__Const_8h.html#aba01db17f4a2bfbc3db60dc172972a25a9b9c1ef01e49193a167c40156df07b50" title="Ignore non-XMP text that uses an undefined &amp;quot;local&amp;quot; encoding.">kXMPFiles_IgnoreLocalText</a>
-<a name="l01099"></a>01099 };
-<a name="l01100"></a>01100
-<a name="l01102"></a>01102 <span class="keyword">enum</span> {
-<a name="l01103"></a>01103
-<a name="l01105"></a><a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea23a3eb2a5e95292036a93ad6666fa388">01105</a> <a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea23a3eb2a5e95292036a93ad6666fa388" title="Can inject first-time XMP into an existing file.">kXMPFiles_CanInjectXMP</a> = 0x00000001,
-<a name="l01106"></a>01106
-<a name="l01108"></a><a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea126c9cc056f6569c424431edbcb9521c">01108</a> <a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea126c9cc056f6569c424431edbcb9521c" title="Can expand XMP or other metadata in an existing file.">kXMPFiles_CanExpand</a> = 0x00000002,
-<a name="l01109"></a>01109
-<a name="l01111"></a><a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea8957f1ef358b4ab3a1df519903f2ae07">01111</a> <a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea8957f1ef358b4ab3a1df519903f2ae07" title="Can copy one file to another, writing new metadata.">kXMPFiles_CanRewrite</a> = 0x00000004,
-<a name="l01112"></a>01112
-<a name="l01114"></a><a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceab55e1873e67048928de3fc47550678c3">01114</a> <a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceab55e1873e67048928de3fc47550678c3" title="Can expand, but prefers in-place update.">kXMPFiles_PrefersInPlace</a> = 0x00000008,
-<a name="l01115"></a>01115
-<a name="l01117"></a><a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceafc2bc7cfdd28a326788d563ec0357694">01117</a> <a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceafc2bc7cfdd28a326788d563ec0357694" title="Supports reconciliation between XMP and other forms.">kXMPFiles_CanReconcile</a> = 0x00000010,
-<a name="l01118"></a>01118
-<a name="l01120"></a><a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea4a183c3ec4994cf09993e5b31dee9733">01120</a> <a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea4a183c3ec4994cf09993e5b31dee9733" title="Allows access to just the XMP, ignoring other forms.">kXMPFiles_AllowsOnlyXMP</a> = 0x00000020,
-<a name="l01121"></a>01121
-<a name="l01123"></a><a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceadb116eed738d1fcdfe4ab9c1635e08ea">01123</a> <a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceadb116eed738d1fcdfe4ab9c1635e08ea" title="File handler returns raw XMP packet information.">kXMPFiles_ReturnsRawPacket</a> = 0x00000040,
-<a name="l01124"></a>01124
-<a name="l01126"></a><a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceafc2c5b585e698ebf24a9379de35954b4">01126</a> <a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceafc2c5b585e698ebf24a9379de35954b4" title="The file handler does the file open and close.">kXMPFiles_HandlerOwnsFile</a> = 0x00000100,
-<a name="l01127"></a>01127
-<a name="l01129"></a><a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea9fe958d4ccde02516a3a267db63874cd">01129</a> <a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea9fe958d4ccde02516a3a267db63874cd" title="The file handler allows crash-safe file updates.">kXMPFiles_AllowsSafeUpdate</a> = 0x00000200,
-<a name="l01130"></a>01130
-<a name="l01132"></a><a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceaee13099f78018a5e1ce033266c27e999">01132</a> <a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceaee13099f78018a5e1ce033266c27e999" title="The file format needs the XMP packet to be read-only.">kXMPFiles_NeedsReadOnlyPacket</a> = 0x00000400,
-<a name="l01133"></a>01133
-<a name="l01135"></a><a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcead3027b786992e2a4762a4fa37c92943c">01135</a> <a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcead3027b786992e2a4762a4fa37c92943c" title="The file handler uses a &amp;quot;sidecar&amp;quot; file for the XMP.">kXMPFiles_UsesSidecarXMP</a> = 0x00000800,
-<a name="l01136"></a>01136
-<a name="l01138"></a><a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceaa2a6a4b744b40055387234632b688fcd">01138</a> <a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceaa2a6a4b744b40055387234632b688fcd" title="The format is folder oriented, for example the P2 video format.">kXMPFiles_FolderBasedFormat</a> = 0x00001000,
-<a name="l01139"></a>01139
-<a name="l01141"></a><a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea17578d45ae3c09a8d08189ea544052b1">01141</a> <a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea17578d45ae3c09a8d08189ea544052b1" title="The file Handler is capable of notifying progress notifications.">kXMPFiles_CanNotifyProgress</a> = 0x00002000,
-<a name="l01142"></a>01142
-<a name="l01144"></a><a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea798c55f5144eedde76f8329a056210b2">01144</a> <a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea798c55f5144eedde76f8329a056210b2" title="The plugin handler is not capable for delay loading.">kXMPFiles_NeedsPreloading</a> = 0x00004000
-<a name="l01145"></a>01145
-<a name="l01146"></a>01146 };
-<a name="l01147"></a>01147
-<a name="l01149"></a>01149 <span class="keyword">enum</span> {
-<a name="l01150"></a>01150
-<a name="l01152"></a><a class="code" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa4c61ec4ed571dbc5f1832ff6772320d2">01152</a> <a class="code" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa4c61ec4ed571dbc5f1832ff6772320d2" title="Open for read-only access.">kXMPFiles_OpenForRead</a> = 0x00000001,
-<a name="l01153"></a>01153
-<a name="l01155"></a><a class="code" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa91fa388b3888bcb6a68615537b66a49b">01155</a> <a class="code" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa91fa388b3888bcb6a68615537b66a49b" title="Open for reading and writing.">kXMPFiles_OpenForUpdate</a> = 0x00000002,
-<a name="l01156"></a>01156
-<a name="l01158"></a><a class="code" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaa58279b2b1311242e7374117f455bb96">01158</a> <a class="code" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaa58279b2b1311242e7374117f455bb96" title="Only the XMP is wanted, allows space/time optimizations.">kXMPFiles_OpenOnlyXMP</a> = 0x00000004,
-<a name="l01159"></a>01159
-<a name="l01161"></a><a class="code" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaab8cbbeef0e99d246907a4375766e21a2">01161</a> <a class="code" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaab8cbbeef0e99d246907a4375766e21a2" title="Force use of the given handler (format), do not even verify the format.">kXMPFiles_ForceGivenHandler</a> = 0x00000008,
-<a name="l01162"></a>01162
-<a name="l01164"></a><a class="code" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa0bef4db2ecdaf82a85df9e9d417aab18">01164</a> <a class="code" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa0bef4db2ecdaf82a85df9e9d417aab18" title="Be strict about only attempting to use the designated file handler, no fallback to...">kXMPFiles_OpenStrictly</a> = 0x00000010,
-<a name="l01165"></a>01165
-<a name="l01167"></a><a class="code" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaf6332435c7fc89cb0b7381e13fe43646">01167</a> <a class="code" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaf6332435c7fc89cb0b7381e13fe43646" title="Require the use of a smart handler.">kXMPFiles_OpenUseSmartHandler</a> = 0x00000020,
-<a name="l01168"></a>01168
-<a name="l01170"></a><a class="code" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa77b47c63e579b28cbd25083ceb58c285">01170</a> <a class="code" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa77b47c63e579b28cbd25083ceb58c285" title="Force packet scanning, do not use a smart handler.">kXMPFiles_OpenUsePacketScanning</a> = 0x00000040,
-<a name="l01171"></a>01171
-<a name="l01173"></a><a class="code" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa77f34b1873bb2584feabe26a2c8f1182">01173</a> <a class="code" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa77f34b1873bb2584feabe26a2c8f1182" title="Only packet scan files &amp;quot;known&amp;quot; to need scanning.">kXMPFiles_OpenLimitedScanning</a> = 0x00000080,
-<a name="l01174"></a>01174
-<a name="l01176"></a><a class="code" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa05acd568597f72b4812b432ea6cf606a">01176</a> <a class="code" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa05acd568597f72b4812b432ea6cf606a" title="Attempt to repair a file opened for update, default is to not open (throw an exception)...">kXMPFiles_OpenRepairFile</a> = 0x00000100,
-<a name="l01177"></a>01177
-<a name="l01179"></a><a class="code" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaf5f2ebd401758a14dc52c5ee403303b5">01179</a> <a class="code" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaf5f2ebd401758a14dc52c5ee403303b5" title="When updating a file, spend the effort necessary to optimize file layout.">kXMPFiles_OptimizeFileLayout</a> = 0x00000200
-<a name="l01180"></a>01180
-<a name="l01181"></a>01181 };
-<a name="l01182"></a>01182
-<a name="l01184"></a>01184 <span class="keyword">enum</span> {
-<a name="l01186"></a><a class="code" href="XMP__Const_8h.html#a6b7b47dd702d9e331586d485013fd1eaadbf8d744f355ef9800a4ec44325baf54">01186</a> <a class="code" href="XMP__Const_8h.html#a6b7b47dd702d9e331586d485013fd1eaadbf8d744f355ef9800a4ec44325baf54" title="Write into a temporary file and swap for crash safety.">kXMPFiles_UpdateSafely</a> = 0x0001
-<a name="l01187"></a>01187 };
-<a name="l01188"></a>01188
-<a name="l01189"></a>01189 <span class="comment">// =================================================================================================</span>
-<a name="l01190"></a>01190 <span class="comment">// Error notification and Exceptions</span>
-<a name="l01191"></a>01191 <span class="comment">// =================================</span>
-<a name="l01192"></a>01192
-<a name="l01216"></a>01216
-<a name="l01217"></a>01217 <span class="keyword">typedef</span> XMP_Uns8 XMP_ErrorSeverity;
-<a name="l01218"></a>01218
-<a name="l01220"></a>01220 <span class="keyword">enum</span> {
-<a name="l01222"></a><a class="code" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a068fdc8c88dcce62a7b42788a572af61">01222</a> <a class="code" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a068fdc8c88dcce62a7b42788a572af61" title="Partial recovery and continuation is possible.">kXMPErrSev_Recoverable</a> = 0,
-<a name="l01224"></a><a class="code" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960afb962bdcf570af9aef4e32b5f279d1a4">01224</a> <a class="code" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960afb962bdcf570af9aef4e32b5f279d1a4" title="Recovery is not possible, an exception will be thrown aborting the API call.">kXMPErrSev_OperationFatal</a> = 1,
-<a name="l01226"></a><a class="code" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a2bd1ff3ba036640f0c76d68a03cf94f7">01226</a> <a class="code" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a2bd1ff3ba036640f0c76d68a03cf94f7" title="Recovery is not possible, an exception will be thrown, the file is corrupt and possibly...">kXMPErrSev_FileFatal</a> = 2,
-<a name="l01228"></a><a class="code" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a768126806f8c7b7c107314610125deb3">01228</a> <a class="code" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a768126806f8c7b7c107314610125deb3" title="Recovery is not possible, an exception will be thrown, the entire process should...">kXMPErrSev_ProcessFatal</a> = 3
-<a name="l01229"></a>01229 };
-<a name="l01230"></a>01230
-<a name="l01231"></a>01231 <span class="comment">// -------------------------------------------------------------------------------------------------</span>
-<a name="l01255"></a>01255 <span class="comment"></span>
-<a name="l01256"></a><a class="code" href="XMP__Const_8h.html#a6027ee7b7d17a0fec636f812c5346af7">01256</a> <span class="keyword">typedef</span> bool (* <a class="code" href="XMP__Const_8h.html#a6027ee7b7d17a0fec636f812c5346af7">XMPMeta_ErrorCallbackProc</a>) ( <span class="keywordtype">void</span>* context, XMP_ErrorSeverity severity, XMP_Int32 cause, XMP_StringPtr message );
-<a name="l01257"></a>01257
-<a name="l01258"></a>01258 <span class="comment">// -------------------------------------------------------------------------------------------------</span>
-<a name="l01291"></a>01291 <span class="comment"></span>
-<a name="l01292"></a><a class="code" href="XMP__Const_8h.html#aaceb0287e961c16649487db026bcfc61">01292</a> <span class="keyword">typedef</span> bool (* <a class="code" href="XMP__Const_8h.html#aaceb0287e961c16649487db026bcfc61">XMPFiles_ErrorCallbackProc</a>) ( <span class="keywordtype">void</span>* context, XMP_StringPtr filePath, XMP_ErrorSeverity severity, XMP_Int32 cause, XMP_StringPtr message );
-<a name="l01293"></a>01293
-<a name="l01294"></a>01294 <span class="comment">// -------------------------------------------------------------------------------------------------</span>
-<a name="l01296"></a>01296 <span class="comment"></span>
-<a name="l01297"></a><a class="code" href="XMP__Const_8h.html#a900dba8ffc9d1d9b89f4e83ac601679b">01297</a> <span class="keyword">typedef</span> XMP_Bool (* <a class="code" href="XMP__Const_8h.html#a900dba8ffc9d1d9b89f4e83ac601679b" title="Internal: The signatures of client-side wrappers for the error notification callbacks...">XMPMeta_ErrorCallbackWrapper</a>) ( <a class="code" href="XMP__Const_8h.html#a6027ee7b7d17a0fec636f812c5346af7">XMPMeta_ErrorCallbackProc</a> clientProc, <span class="keywordtype">void</span>* context,
-<a name="l01298"></a>01298 XMP_ErrorSeverity severity, XMP_Int32 cause, XMP_StringPtr message );
-<a name="l01299"></a>01299
-<a name="l01300"></a>01300 <span class="keyword">typedef</span> XMP_Bool (* XMPFiles_ErrorCallbackWrapper) ( <a class="code" href="XMP__Const_8h.html#aaceb0287e961c16649487db026bcfc61">XMPFiles_ErrorCallbackProc</a> clientProc, <span class="keywordtype">void</span>* context,
-<a name="l01301"></a>01301 XMP_StringPtr filePath, XMP_ErrorSeverity severity,
-<a name="l01302"></a>01302 XMP_Int32 cause, XMP_StringPtr message );
-<a name="l01303"></a>01303
-<a name="l01305"></a><a class="code" href="classXMP__Error.html">01305</a> <span class="keyword">class </span><a class="code" href="classXMP__Error.html" title="XMP Toolkit error, associates an error code with a descriptive error string.">XMP_Error</a> {
-<a name="l01306"></a>01306 <span class="keyword">public</span>:
-<a name="l01307"></a>01307
-<a name="l01314"></a><a class="code" href="classXMP__Error.html#aa8b3b859899759d679b00237254e30aa">01314</a> <a class="code" href="classXMP__Error.html#aa8b3b859899759d679b00237254e30aa" title="Constructor for an XMP_Error.">XMP_Error</a> ( XMP_Int32 _id, XMP_StringPtr _errMsg ) : <a class="code" href="classXMP__Error.html#aad714bd7c428e10eff07a8ab6a4f3125" title="Exception code. See constants kXMPErr_Unknown and following.">id</a>(_id), <a class="code" href="classXMP__Error.html#a31fd80098e50026985e05abd16f3e045">errMsg</a>(_errMsg), <a class="code" href="classXMP__Error.html#a2b884dfb0b39689d1cf95105eadc4571" title="Variable to store whether this particular error is notified to user or not.">notified</a>(false) {};
-<a name="l01315"></a>01315
-<a name="l01317"></a><a class="code" href="classXMP__Error.html#a56aaa6fc6644ccfc9470ae1af8f3a8cd">01317</a> <span class="keyword">inline</span> XMP_Int32 <a class="code" href="classXMP__Error.html#a56aaa6fc6644ccfc9470ae1af8f3a8cd" title="Retrieves the numeric code from an XMP_Error.">GetID</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classXMP__Error.html#aad714bd7c428e10eff07a8ab6a4f3125" title="Exception code. See constants kXMPErr_Unknown and following.">id</a>; };
-<a name="l01318"></a>01318
-<a name="l01320"></a><a class="code" href="classXMP__Error.html#a9a3560c67612dec9a6ca37c34eb2c153">01320</a> <span class="keyword">inline</span> XMP_StringPtr <a class="code" href="classXMP__Error.html#a9a3560c67612dec9a6ca37c34eb2c153" title="Retrieves the descriptive string from an XMP_Error.">GetErrMsg</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classXMP__Error.html#a31fd80098e50026985e05abd16f3e045">errMsg</a>; };
-<a name="l01321"></a>01321
-<a name="l01323"></a><a class="code" href="classXMP__Error.html#a5a0651a9615a6a60e467a96ddb43a6bb">01323</a> <span class="keyword">inline</span> XMP_Bool <a class="code" href="classXMP__Error.html#a5a0651a9615a6a60e467a96ddb43a6bb" title="Retrieves the information whether particular error is notified or not.">IsNotified</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classXMP__Error.html#a2b884dfb0b39689d1cf95105eadc4571" title="Variable to store whether this particular error is notified to user or not.">notified</a>; }
-<a name="l01324"></a>01324
-<a name="l01326"></a><a class="code" href="classXMP__Error.html#a9c368db94ca63ad7b9b118051d1f8897">01326</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classXMP__Error.html#a9c368db94ca63ad7b9b118051d1f8897" title="Sets the notification status for an error.">SetNotified</a>() { <a class="code" href="classXMP__Error.html#a2b884dfb0b39689d1cf95105eadc4571" title="Variable to store whether this particular error is notified to user or not.">notified</a> = <span class="keyword">true</span>; };
-<a name="l01327"></a>01327
-<a name="l01328"></a>01328 <span class="keyword">private</span>:
-<a name="l01330"></a>01330 XMP_Int32 <a class="code" href="classXMP__Error.html#aad714bd7c428e10eff07a8ab6a4f3125" title="Exception code. See constants kXMPErr_Unknown and following.">id</a>;
-<a name="l01333"></a><a class="code" href="classXMP__Error.html#a31fd80098e50026985e05abd16f3e045">01333</a> XMP_StringPtr <a class="code" href="classXMP__Error.html#a31fd80098e50026985e05abd16f3e045">errMsg</a>;
-<a name="l01335"></a><a class="code" href="classXMP__Error.html#a2b884dfb0b39689d1cf95105eadc4571">01335</a> XMP_Bool <a class="code" href="classXMP__Error.html#a2b884dfb0b39689d1cf95105eadc4571" title="Variable to store whether this particular error is notified to user or not.">notified</a>;
-<a name="l01336"></a>01336 };
-<a name="l01337"></a>01337
-<a name="l01339"></a>01339 <span class="keyword">enum</span> {
-<a name="l01340"></a>01340
-<a name="l01341"></a>01341 <span class="comment">// --------------------</span>
-<a name="l01343"></a>01343 <span class="comment"></span>
-<a name="l01345"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ae2aec0f3b8db282cbba40e4bcf746ba9">01345</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ae2aec0f3b8db282cbba40e4bcf746ba9" title="Generic error codes.">kXMPErr_NoError</a> = -1,
-<a name="l01346"></a>01346
-<a name="l01348"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14813595824de97382fffeae7b6fe581">01348</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14813595824de97382fffeae7b6fe581" title="Generic unknown error.">kXMPErr_Unknown</a> = 0,
-<a name="l01350"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409acd9fa1b621efafd5b218e3a785cbeda1">01350</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409acd9fa1b621efafd5b218e3a785cbeda1" title="Generic undefined error.">kXMPErr_TBD</a> = 1,
-<a name="l01352"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac7ac408582c194cc723a24acb8b4e4c3">01352</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac7ac408582c194cc723a24acb8b4e4c3" title="Generic unavailable error.">kXMPErr_Unavailable</a> = 2,
-<a name="l01354"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a115f3d761d2cad952aab23f35cbdf3a1">01354</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a115f3d761d2cad952aab23f35cbdf3a1" title="Generic bad object error.">kXMPErr_BadObject</a> = 3,
-<a name="l01356"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a52d197a8b0af3c55f16958162a4132f1">01356</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a52d197a8b0af3c55f16958162a4132f1" title="Generic bad parameter error.">kXMPErr_BadParam</a> = 4,
-<a name="l01358"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a716956a038782e595ce61d3fbdd1a25a">01358</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a716956a038782e595ce61d3fbdd1a25a" title="Generic bad value error.">kXMPErr_BadValue</a> = 5,
-<a name="l01360"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14bd6c24087d280c722c1a044eec27d6">01360</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14bd6c24087d280c722c1a044eec27d6" title="Generic assertion failure.">kXMPErr_AssertFailure</a> = 6,
-<a name="l01362"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa856bb36a9742d8542b483e00fc6511b">01362</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa856bb36a9742d8542b483e00fc6511b" title="Generic enforcement failure.">kXMPErr_EnforceFailure</a> = 7,
-<a name="l01364"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a3de1ac8f4e4afb705d5a4654cb9579e2">01364</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a3de1ac8f4e4afb705d5a4654cb9579e2" title="Generic unimplemented error.">kXMPErr_Unimplemented</a> = 8,
-<a name="l01366"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a8babbd758d2c64fd04e85fa48e0675c0">01366</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a8babbd758d2c64fd04e85fa48e0675c0" title="Generic internal failure.">kXMPErr_InternalFailure</a> = 9,
-<a name="l01368"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14342c486ddf394ebc110a446becbfa7">01368</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14342c486ddf394ebc110a446becbfa7" title="Generic deprecated error.">kXMPErr_Deprecated</a> = 10,
-<a name="l01370"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a82941dc15c6ccde6b8fb2f9cc85c2eeb">01370</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a82941dc15c6ccde6b8fb2f9cc85c2eeb" title="Generic external failure.">kXMPErr_ExternalFailure</a> = 11,
-<a name="l01372"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4ba7b1a57629e4994a0f7a515d51195">01372</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4ba7b1a57629e4994a0f7a515d51195" title="Generic user abort error.">kXMPErr_UserAbort</a> = 12,
-<a name="l01374"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5322df07e2a7792824d2468c4837f1cb">01374</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5322df07e2a7792824d2468c4837f1cb" title="Generic standard exception.">kXMPErr_StdException</a> = 13,
-<a name="l01376"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aac7558097a1f5a0f99097199f1bf8ff4">01376</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aac7558097a1f5a0f99097199f1bf8ff4" title="Generic unknown exception.">kXMPErr_UnknownException</a> = 14,
-<a name="l01378"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a69eb7fef422fbca62cdbc554afffd813">01378</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a69eb7fef422fbca62cdbc554afffd813" title="Generic out-of-memory error.">kXMPErr_NoMemory</a> = 15,
-<a name="l01380"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5227060f282a86c8ea1a944107751dd1">01380</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5227060f282a86c8ea1a944107751dd1" title="Progress reporting callback requested abort.">kXMPErr_ProgressAbort</a> = 16,
-<a name="l01381"></a>01381
-<a name="l01382"></a>01382 <span class="comment">// ------------------------------------</span>
-<a name="l01383"></a>01383 <span class="comment">// More specific parameter error codes.</span>
-<a name="l01384"></a>01384
-<a name="l01386"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2bc66eec6ce830979089d5c336f75539">01386</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2bc66eec6ce830979089d5c336f75539" title="Bad schema parameter.">kXMPErr_BadSchema</a> = 101,
-<a name="l01388"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a3f1efec0aa5452f43c55c05aba616ef7">01388</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a3f1efec0aa5452f43c55c05aba616ef7" title="Bad XPath parameter.">kXMPErr_BadXPath</a> = 102,
-<a name="l01390"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a40ca77d98bd366442bb8d438c420a444">01390</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a40ca77d98bd366442bb8d438c420a444" title="Bad options parameter.">kXMPErr_BadOptions</a> = 103,
-<a name="l01392"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a31adb57da79b4fb1f1f5f999ec740010">01392</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a31adb57da79b4fb1f1f5f999ec740010" title="Bad index parameter.">kXMPErr_BadIndex</a> = 104,
-<a name="l01394"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2584fc813bfcd9158b7adf28a3454bb9">01394</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2584fc813bfcd9158b7adf28a3454bb9" title="Bad iteration position.">kXMPErr_BadIterPosition</a> = 105,
-<a name="l01396"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a052b1b525fba7da8c98be5c135f434b8">01396</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a052b1b525fba7da8c98be5c135f434b8" title="XML parsing error (deprecated).">kXMPErr_BadParse</a> = 106,
-<a name="l01398"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4f936ff6788ce17f6098b7cbda77ed9">01398</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4f936ff6788ce17f6098b7cbda77ed9" title="Serialization error.">kXMPErr_BadSerialize</a> = 107,
-<a name="l01400"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa0a05e07925d1f3daf5f36f6da0840f8">01400</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa0a05e07925d1f3daf5f36f6da0840f8" title="File format error.">kXMPErr_BadFileFormat</a> = 108,
-<a name="l01402"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a10fa053f279fed01b075f34a70f11795">01402</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a10fa053f279fed01b075f34a70f11795" title="No file handler found for format.">kXMPErr_NoFileHandler</a> = 109,
-<a name="l01404"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa9c1c20e53db12b20068d830a8990c0b">01404</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa9c1c20e53db12b20068d830a8990c0b" title="Data too large for JPEG file format.">kXMPErr_TooLargeForJPEG</a> = 110,
-<a name="l01406"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2874a5dcddf253a17d75a147b2ed4933">01406</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2874a5dcddf253a17d75a147b2ed4933" title="A file does not exist.">kXMPErr_NoFile</a> = 111,
-<a name="l01408"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a577b0e80acf44125f0dc49e5885e0824">01408</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a577b0e80acf44125f0dc49e5885e0824" title="A file exists but cannot be opened.">kXMPErr_FilePermission</a> = 112,
-<a name="l01410"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa2f19dfd8ce27b5713c79e34f2052e40">01410</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa2f19dfd8ce27b5713c79e34f2052e40" title="A file write failed due to lack of disk space.">kXMPErr_DiskSpace</a> = 113,
-<a name="l01412"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2a17df0c0b690f5b7829bc4ca16efce2">01412</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2a17df0c0b690f5b7829bc4ca16efce2" title="A file read failed.">kXMPErr_ReadError</a> = 114,
-<a name="l01414"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409afca1d169d7e3cb3ba84c81700c1b9b22">01414</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409afca1d169d7e3cb3ba84c81700c1b9b22" title="A file write failed for a reason other than lack of disk space.">kXMPErr_WriteError</a> = 115,
-<a name="l01416"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aacc6262e9c1fd1a64e3d10cedfb7dcb1">01416</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aacc6262e9c1fd1a64e3d10cedfb7dcb1" title="A block of a file is ill-formed, e.g. invalid IPTC-IIM in a photo.">kXMPErr_BadBlockFormat</a> = 116,
-<a name="l01418"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a0819111429c734ca5ef895c193846351">01418</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a0819111429c734ca5ef895c193846351" title="File Path is not a file.">kXMPErr_FilePathNotAFile</a> = 117,
-<a name="l01420"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad9d8c98663e3ead894841807ab4548f8">01420</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad9d8c98663e3ead894841807ab4548f8" title="Rejected File extension.">kXMPErr_RejectedFileExtension</a> = 118,
-<a name="l01421"></a>01421
-<a name="l01422"></a>01422 <span class="comment">// -----------------------------------------------</span>
-<a name="l01423"></a>01423 <span class="comment">// File format and internal structure error codes.</span>
-<a name="l01424"></a>01424
-<a name="l01426"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac57f1cf1c24778536fd32972e87334c5">01426</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac57f1cf1c24778536fd32972e87334c5" title="XML format error.">kXMPErr_BadXML</a> = 201,
-<a name="l01428"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5464b823e619618d9aa58433cdb45a8e">01428</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5464b823e619618d9aa58433cdb45a8e" title="RDF format error.">kXMPErr_BadRDF</a> = 202,
-<a name="l01430"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a211bb632ed1264d9e2236f35c6414821">01430</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a211bb632ed1264d9e2236f35c6414821" title="XMP format error.">kXMPErr_BadXMP</a> = 203,
-<a name="l01432"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a078c69d0d76f25187a11981a2552b179">01432</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a078c69d0d76f25187a11981a2552b179" title="Empty iterator.">kXMPErr_EmptyIterator</a> = 204,
-<a name="l01434"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4cf86fa29624c5e19111e09a97fe05f">01434</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4cf86fa29624c5e19111e09a97fe05f" title="Unicode error.">kXMPErr_BadUnicode</a> = 205,
-<a name="l01436"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aecd25299aa177de7bc7f3674fcf2e22d">01436</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aecd25299aa177de7bc7f3674fcf2e22d" title="TIFF format error.">kXMPErr_BadTIFF</a> = 206,
-<a name="l01438"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad685e1f839e3bc53dfc55611a0803cee">01438</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad685e1f839e3bc53dfc55611a0803cee" title="JPEG format error.">kXMPErr_BadJPEG</a> = 207,
-<a name="l01440"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad98fc9a9c050e9fc19c3af9c8abb2d6d">01440</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad98fc9a9c050e9fc19c3af9c8abb2d6d" title="PSD format error.">kXMPErr_BadPSD</a> = 208,
-<a name="l01442"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a1606a687cb790af16dc561b2a8f2e6a3">01442</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a1606a687cb790af16dc561b2a8f2e6a3" title="PSIR format error.">kXMPErr_BadPSIR</a> = 209,
-<a name="l01444"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a23b2d7cab10b3d80549e6b60855bb15e">01444</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a23b2d7cab10b3d80549e6b60855bb15e" title="IPTC format error.">kXMPErr_BadIPTC</a> = 210,
-<a name="l01446"></a><a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad596daed4ac92f8bf7871669d03effad">01446</a> <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad596daed4ac92f8bf7871669d03effad" title="MPEG format error.">kXMPErr_BadMPEG</a> = 211
-<a name="l01447"></a>01447
-<a name="l01448"></a>01448 };
-<a name="l01449"></a>01449
-<a name="l01451"></a>01451
-<a name="l01452"></a>01452 <span class="comment">// =================================================================================================</span>
-<a name="l01453"></a>01453 <span class="comment">// Client callbacks</span>
-<a name="l01454"></a>01454 <span class="comment">// ================</span>
-<a name="l01455"></a>01455
-<a name="l01456"></a>01456 <span class="comment">// -------------------------------------------------------------------------------------------------</span>
-<a name="l01459"></a>01459 <span class="comment"></span>
-<a name="l01464"></a>01464
-<a name="l01465"></a><a class="code" href="XMP__Const_8h.html#a05b81829c04746826f4f85fbac76e3dd">01465</a> <span class="keyword">typedef</span> XMP_Int32 <a class="code" href="XMP__Const_8h.html#a05b81829c04746826f4f85fbac76e3dd">XMP_Status</a>;
-<a name="l01466"></a>01466
-<a name="l01467"></a>01467 <span class="comment">// -------------------------------------------------------------------------------------------------</span>
-<a name="l01482"></a>01482 <span class="comment"></span>
-<a name="l01483"></a><a class="code" href="XMP__Const_8h.html#a8ce3570e6e5ac14cd603e96fa9d2936f">01483</a> <span class="keyword">typedef</span> <a class="code" href="XMP__Const_8h.html#a05b81829c04746826f4f85fbac76e3dd">XMP_Status</a> (* <a class="code" href="XMP__Const_8h.html#a8ce3570e6e5ac14cd603e96fa9d2936f">XMP_TextOutputProc</a>) ( <span class="keywordtype">void</span> * refCon,
-<a name="l01484"></a>01484 XMP_StringPtr buffer,
-<a name="l01485"></a>01485 XMP_StringLen bufferSize );
-<a name="l01486"></a>01486
-<a name="l01487"></a>01487 <span class="comment">// -------------------------------------------------------------------------------------------------</span>
-<a name="l01496"></a>01496 <span class="comment"></span>
-<a name="l01497"></a><a class="code" href="XMP__Const_8h.html#aa2738ce2fca7f1809b12834b1b5e2d0e">01497</a> <span class="keyword">typedef</span> bool (* <a class="code" href="XMP__Const_8h.html#aa2738ce2fca7f1809b12834b1b5e2d0e">XMP_AbortProc</a>) ( <span class="keywordtype">void</span> * arg );
-<a name="l01498"></a>01498
-<a name="l01499"></a>01499 <span class="comment">// -------------------------------------------------------------------------------------------------</span>
-<a name="l01519"></a>01519 <span class="comment"></span>
-<a name="l01520"></a><a class="code" href="XMP__Const_8h.html#af18be2d0c8accad813e0d8962da24b4e">01520</a> <span class="keyword">typedef</span> bool (* <a class="code" href="XMP__Const_8h.html#af18be2d0c8accad813e0d8962da24b4e">XMP_ProgressReportProc</a>) ( <span class="keywordtype">void</span> * context, <span class="keywordtype">float</span> elapsedTime, <span class="keywordtype">float</span> fractionDone, <span class="keywordtype">float</span> secondsToGo );
-<a name="l01521"></a>01521
-<a name="l01522"></a>01522 <span class="comment">// -------------------------------------------------------------------------------------------------</span>
-<a name="l01524"></a>01524 <span class="comment"></span>
-<a name="l01525"></a><a class="code" href="XMP__Const_8h.html#abfd6246a6ce8ef90c7fc600b456f3ea9">01525</a> <span class="keyword">typedef</span> XMP_Bool (* <a class="code" href="XMP__Const_8h.html#abfd6246a6ce8ef90c7fc600b456f3ea9" title="Internal: The signature of a client-side wrapper for the progress report callback...">XMP_ProgressReportWrapper</a>) ( <a class="code" href="XMP__Const_8h.html#af18be2d0c8accad813e0d8962da24b4e">XMP_ProgressReportProc</a> proc, <span class="keywordtype">void</span> * context,
-<a name="l01526"></a>01526 <span class="keywordtype">float</span> elapsedTime, <span class="keywordtype">float</span> fractionDone, <span class="keywordtype">float</span> secondsToGo );
-<a name="l01527"></a>01527
-<a name="l01529"></a>01529
-<a name="l01530"></a>01530 <span class="comment">// =================================================================================================</span>
-<a name="l01531"></a>01531 <span class="comment">// Stuff with no better place to be</span>
-<a name="l01532"></a>01532 <span class="comment">// ================================</span>
-<a name="l01533"></a>01533
-<a name="l01535"></a><a class="code" href="structXMP__VersionInfo.html">01535</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structXMP__VersionInfo.html" title="XMP Toolkit version information.">XMP_VersionInfo</a> {
-<a name="l01537"></a><a class="code" href="structXMP__VersionInfo.html#a7edfa1613a58a248fd15267008bd8afb">01537</a> XMP_Uns8 <a class="code" href="structXMP__VersionInfo.html#a7edfa1613a58a248fd15267008bd8afb" title="The primary release number, the &amp;quot;1&amp;quot; in version &amp;quot;1.2.3&amp;quot;.">major</a>;
-<a name="l01539"></a><a class="code" href="structXMP__VersionInfo.html#af5b56598e15febd742b431dadae7c317">01539</a> XMP_Uns8 <a class="code" href="structXMP__VersionInfo.html#af5b56598e15febd742b431dadae7c317" title="The secondary release number, the &amp;quot;2&amp;quot; in version &amp;quot;1.2.3&amp;quot;.">minor</a>;
-<a name="l01541"></a><a class="code" href="structXMP__VersionInfo.html#a4b448a8253e26a37d2df35e04ac25d28">01541</a> XMP_Uns8 <a class="code" href="structXMP__VersionInfo.html#a4b448a8253e26a37d2df35e04ac25d28" title="The tertiary release number, the &amp;quot;3&amp;quot; in version &amp;quot;1.2.3&amp;quot;.">micro</a>;
-<a name="l01543"></a><a class="code" href="structXMP__VersionInfo.html#af1643d86f32f5a5a275dc9c5ba843018">01543</a> XMP_Bool <a class="code" href="structXMP__VersionInfo.html#af1643d86f32f5a5a275dc9c5ba843018" title="A 0/1 boolean value, true if this is a debug build.">isDebug</a>;
-<a name="l01545"></a><a class="code" href="structXMP__VersionInfo.html#a0e20a6bf10da4c17bdfc8027f1586ffc">01545</a> XMP_Uns32 <a class="code" href="structXMP__VersionInfo.html#a0e20a6bf10da4c17bdfc8027f1586ffc" title="A rolling build number, monotonically increasing in a release.">build</a>;
-<a name="l01547"></a><a class="code" href="structXMP__VersionInfo.html#ad018f35b382046ca77b1252bafa93f74">01547</a> XMP_Uns32 <a class="code" href="structXMP__VersionInfo.html#ad018f35b382046ca77b1252bafa93f74" title="Individual feature implementation flags.">flags</a>;
-<a name="l01549"></a><a class="code" href="structXMP__VersionInfo.html#a19654242b92bffd7517e92882850e834">01549</a> XMP_StringPtr <a class="code" href="structXMP__VersionInfo.html#a19654242b92bffd7517e92882850e834" title="A comprehensive version information string.">message</a>;
-<a name="l01550"></a>01550 } <a class="code" href="structXMP__VersionInfo.html" title="XMP Toolkit version information.">XMP_VersionInfo</a>;
-<a name="l01551"></a>01551
-<a name="l01552"></a>01552 <span class="comment">// =================================================================================================</span>
-<a name="l01553"></a>01553
-<a name="l01554"></a>01554 <span class="preprocessor">#if __cplusplus</span>
-<a name="l01555"></a>01555 <span class="preprocessor"></span>} <span class="comment">// extern &quot;C&quot;</span>
-<a name="l01556"></a>01556 <span class="preprocessor">#endif</span>
-<a name="l01557"></a>01557 <span class="preprocessor"></span>
-<a name="l01558"></a>01558 <span class="preprocessor">#include &lt;vector&gt;</span>
-<a name="l01559"></a>01559
-<a name="l01560"></a>01560 <span class="preprocessor">#endif // __XMP_Const_h__</span>
-</pre></div></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('XMP__Const_8h_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">XMP_Const.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="XMP__Const_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __XMP_Const_h__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __XMP_Const_h__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright 2002 Adobe Systems Incorporated</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// All Rights Reserved.</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="XMP__Environment_8h.html">XMP_Environment.h</a>&quot;</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor"> #include &lt;stddef.h&gt;</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#if XMP_MacBuild | XMP_iOSBuild // ! No stdint.h on Windows and some UNIXes.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor"> #include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#if XMP_UNIXBuild // hopefully an inttypes.h on all UNIXes...</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"> #include &lt;inttypes.h&gt;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#ifndef XMP_MARKER_EXTENSIBILITY_BACKWARD_COMPATIBILITY</span></div><div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a44054ee28ca59bd6b5823e4e47479483"> 24</a></span>&#160;<span class="preprocessor"> #define XMP_MARKER_EXTENSIBILITY_BACKWARD_COMPATIBILITY 1</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#if __cplusplus</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment"></span><span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment">// Basic types and constants</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">// =========================</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment">// The XMP_... types are used on the off chance that the ..._t types present a problem. In that</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment">// case only the declarations of the XMP_... types needs to change, not all of the uses. These</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment">// types are used where fixed sizes are required in order to have a known ABI for a DLL build.</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#if XMP_MacBuild | XMP_iOSBuild</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">typedef</span> int8_t XMP_Int8;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">typedef</span> int16_t XMP_Int16;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">typedef</span> int32_t XMP_Int32;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">typedef</span> int64_t XMP_Int64;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">typedef</span> uint8_t XMP_Uns8;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">typedef</span> uint16_t XMP_Uns16;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">typedef</span> uint32_t XMP_Uns32;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">typedef</span> uint64_t XMP_Uns64;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#elif XMP_WinBuild</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">char</span> XMP_Int8;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">short</span> XMP_Int16;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">long</span> XMP_Int32;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> XMP_Int64;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> XMP_Uns8;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> XMP_Uns16;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> XMP_Uns32;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> XMP_Uns64;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor">#elif XMP_UNIXBuild</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor"> #if ! XMP_64</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">char</span> XMP_Int8;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">short</span> XMP_Int16;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">long</span> XMP_Int32;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> XMP_Int64;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> XMP_Uns8;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> XMP_Uns16;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> XMP_Uns32;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> XMP_Uns64;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor"> #else</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">char</span> XMP_Int8;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">short</span> XMP_Int16;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">int</span> XMP_Int32;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> XMP_Int64;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> XMP_Uns8;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> XMP_Uns16;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> XMP_Uns32;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> XMP_Uns64;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor"> #error &quot;XMP environment error - must define one of XMP_MacBuild, XMP_WinBuild, XMP_UNIXBuild or XMP_iOSBuild&quot;</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248"> 102</a></span>&#160;<span class="keyword">typedef</span> XMP_Uns8 <a class="code" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adc83d1c8e3a881f2a1623f63a6cb9ff0"> 104</a></span>&#160;<span class="keyword">const</span> XMP_Uns8 <a class="code" href="XMP__Const_8h.html#adc83d1c8e3a881f2a1623f63a6cb9ff0">kXMP_Bool_False</a> = 0;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#ade06e740748eefe529211dd891bf68f4"> 106</a></span>&#160;<span class="preprocessor">#define ConvertXMP_BoolToBool(a) (a) != kXMP_Bool_False</span></div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#ae6037ae90db1ec7d7c988aec7a8319cb"> 107</a></span>&#160;<span class="preprocessor">#define ConvertBoolToXMP_Bool(a) (a) ? !kXMP_Bool_False : kXMP_Bool_False</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a4abfa333cf45f8849b93c6a630537de2"> 109</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> XMP_Uns8 <a class="code" href="XMP__Const_8h.html#a4abfa333cf45f8849b93c6a630537de2">Min_XMP_Uns8</a> = ( (XMP_Uns8) 0x00 );</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#aa803470bc9b20fc47b0108559e4bccb4"> 110</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> XMP_Uns8 <a class="code" href="XMP__Const_8h.html#aa803470bc9b20fc47b0108559e4bccb4">Max_XMP_Uns8</a> = ( (XMP_Uns8) 0xFF );</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#ae5d5ff926903623a451ada7cb840d815"> 111</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> XMP_Uns16 <a class="code" href="XMP__Const_8h.html#ae5d5ff926903623a451ada7cb840d815">Min_XMP_Uns16</a> = ( (XMP_Uns16) 0x00 );</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a950af5f297a8aba136e4fb0bb69b3167"> 112</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> XMP_Uns16 <a class="code" href="XMP__Const_8h.html#a950af5f297a8aba136e4fb0bb69b3167">Max_XMP_Uns16</a> = ( (XMP_Uns16) 0xFFFF );</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#ae8936caf3fa038bd64705caf6ab2329f"> 113</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> XMP_Uns32 <a class="code" href="XMP__Const_8h.html#ae8936caf3fa038bd64705caf6ab2329f">Min_XMP_Uns32</a> = ( (XMP_Uns32) 0x00 );</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adc36ebc09374b4400ebc68df37a5abad"> 114</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> XMP_Uns32 <a class="code" href="XMP__Const_8h.html#adc36ebc09374b4400ebc68df37a5abad">Max_XMP_Uns32</a> = ( (XMP_Uns32) 0xFFFFFFFF );</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#ae3052e3b7b6f4c6163331ead175a7e28"> 115</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> XMP_Uns64 <a class="code" href="XMP__Const_8h.html#ae3052e3b7b6f4c6163331ead175a7e28">Min_XMP_Uns64</a> = ( (XMP_Uns64) 0x00 );</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#aa6ce5fadc73345c8db588922dc731c89"> 116</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> XMP_Uns64 <a class="code" href="XMP__Const_8h.html#aa6ce5fadc73345c8db588922dc731c89">Max_XMP_Uns64</a> = ( (XMP_Uns64) 0xFFFFFFFFFFFFFFFFLL );</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#aad7fed121559de43b53067c0bcb9baae"> 118</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> XMP_Int8 <a class="code" href="XMP__Const_8h.html#aad7fed121559de43b53067c0bcb9baae">Min_XMP_Int8</a> = ( (XMP_Int8) 0x80 );</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a914a8ec6b55c89c7ed098e4d3b878989"> 119</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> XMP_Int8 <a class="code" href="XMP__Const_8h.html#a914a8ec6b55c89c7ed098e4d3b878989">Max_XMP_Int8</a> = ( (XMP_Int8) 0x7F );</div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abd313c6844b00bcfdbc43b0405fa8364"> 120</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> XMP_Int16 <a class="code" href="XMP__Const_8h.html#abd313c6844b00bcfdbc43b0405fa8364">Min_XMP_Int16</a> = ( (XMP_Int16) 0x8000 );</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a7ed33c3b64b4f8a3950f4814487e30e4"> 121</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> XMP_Int16 <a class="code" href="XMP__Const_8h.html#a7ed33c3b64b4f8a3950f4814487e30e4">Max_XMP_Int16</a> = ( (XMP_Int16) 0x7FFF );</div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a778d64a8002543649fcd4e27b332aa38"> 122</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> XMP_Int32 <a class="code" href="XMP__Const_8h.html#a778d64a8002543649fcd4e27b332aa38">Min_XMP_Int32</a> = ( (XMP_Int32) 0x80000000 );</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#ab2a4c6f608993eed8b8e96b875afbaf3"> 123</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> XMP_Int32 <a class="code" href="XMP__Const_8h.html#ab2a4c6f608993eed8b8e96b875afbaf3">Max_XMP_Int32</a> = ( (XMP_Int32) 0x7FFFFFFF );</div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a422fdf9dc276d3edacde0826d43dfea5"> 124</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> XMP_Int64 <a class="code" href="XMP__Const_8h.html#a422fdf9dc276d3edacde0826d43dfea5">Min_XMP_Int64</a> = ( (XMP_Int64) 0x8000000000000000LL );</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a5783bb97f7a4837bf1938332d65804d8"> 125</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> XMP_Int64 <a class="code" href="XMP__Const_8h.html#a5783bb97f7a4837bf1938332d65804d8">Max_XMP_Int64</a> = ( (XMP_Int64) 0x7FFFFFFFFFFFFFFFLL );</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e"> 130</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>__XMPMeta__ * <a class="code" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a6ade57a30fb1e40d6aa9695c440fc3d2"> 134</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>__XMPIterator__ * <a class="code" href="XMP__Const_8h.html#a6ade57a30fb1e40d6aa9695c440fc3d2">XMPIteratorRef</a>;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#ab516453dd7d906e911f8951983cde5f1"> 138</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>__XMPDocOps__ * <a class="code" href="XMP__Const_8h.html#ab516453dd7d906e911f8951983cde5f1">XMPDocOpsRef</a>;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25"> 142</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>__XMPFiles__ * <a class="code" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a>;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6"> 169</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>; <span class="comment">// Points to a null terminated UTF-8 string.</span></div><div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a"> 170</a></span>&#160;<span class="keyword">typedef</span> XMP_Uns32 <a class="code" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a>;</div><div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315"> 171</a></span>&#160;<span class="keyword">typedef</span> XMP_Int32 <a class="code" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a>; <span class="comment">// Signed, sometimes -1 is handy.</span></div><div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8"> 172</a></span>&#160;<span class="keyword">typedef</span> XMP_Uns32 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>; <span class="comment">// Used as 32 individual bits.</span></div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a4c39e0131b0e3d7db66e1cfa82b67141"> 184</a></span>&#160;<span class="preprocessor">#define kXMP_TrueStr &quot;True&quot; // Serialized XMP spellings, not for the type bool.</span></div><div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a2dc55b533ed63ed7ff0c3be16a97e278"> 185</a></span>&#160;<span class="preprocessor">#define kXMP_FalseStr &quot;False&quot;</span></div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="keyword">enum</span> {</div><div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55bacf4bfe01497bd0d88c2af337e4bac39e"> 191</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55bacf4bfe01497bd0d88c2af337e4bac39e">kXMPTS_Yes</a> = 1,</div><div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba2a88f4d4589bf413377283843f70bc90"> 193</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba2a88f4d4589bf413377283843f70bc90">kXMPTS_No</a> = 0,</div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba7a73219cd125bb21e294ba474112a584"> 195</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba7a73219cd125bb21e294ba474112a584">kXMPTS_Maybe</a> = -1</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;};</div><div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a377e4a668de99ce6ed176cef5aaf3fcd"> 197</a></span>&#160;<span class="keyword">typedef</span> XMP_Int8 <a class="code" href="XMP__Const_8h.html#a377e4a668de99ce6ed176cef5aaf3fcd">XMP_TriState</a>;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno"><a class="line" href="structXMP__DateTime.html"> 223</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structXMP__DateTime.html">XMP_DateTime</a> {</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="structXMP__DateTime.html#a2db713deacfd5a5cb2deea660ca2ccad"> 226</a></span>&#160; XMP_Int32 <a class="code" href="structXMP__DateTime.html#a2db713deacfd5a5cb2deea660ca2ccad">year</a>;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="structXMP__DateTime.html#ab4b71c1a54879d7da1b4135e23d5446f"> 229</a></span>&#160; XMP_Int32 <a class="code" href="structXMP__DateTime.html#ab4b71c1a54879d7da1b4135e23d5446f">month</a>;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="structXMP__DateTime.html#a58496718277eea9dc5e3e19d80a69094"> 232</a></span>&#160; XMP_Int32 <a class="code" href="structXMP__DateTime.html#a58496718277eea9dc5e3e19d80a69094">day</a>;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="structXMP__DateTime.html#abc79cdca8cfa5df6583279e3f3e70e9f"> 235</a></span>&#160; XMP_Int32 <a class="code" href="structXMP__DateTime.html#abc79cdca8cfa5df6583279e3f3e70e9f">hour</a>;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;</div><div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="structXMP__DateTime.html#ae84965f3296a9c106d1f6c88aa6a7bdf"> 238</a></span>&#160; XMP_Int32 <a class="code" href="structXMP__DateTime.html#ae84965f3296a9c106d1f6c88aa6a7bdf">minute</a>;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="structXMP__DateTime.html#a675313c70a7e05b7ca50d21300b7d81b"> 241</a></span>&#160; XMP_Int32 <a class="code" href="structXMP__DateTime.html#a675313c70a7e05b7ca50d21300b7d81b">second</a>;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="structXMP__DateTime.html#a62e0f39edef2a82749feed46b16572e8"> 244</a></span>&#160; XMP_Bool <a class="code" href="structXMP__DateTime.html#a62e0f39edef2a82749feed46b16572e8">hasDate</a>;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="structXMP__DateTime.html#a2c7f3d493a78f6b3fc7978992308d268"> 247</a></span>&#160; XMP_Bool <a class="code" href="structXMP__DateTime.html#a2c7f3d493a78f6b3fc7978992308d268">hasTime</a>;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="structXMP__DateTime.html#a1dd34cdab96f55c120b3289db32bdd1e"> 250</a></span>&#160; XMP_Bool <a class="code" href="structXMP__DateTime.html#a1dd34cdab96f55c120b3289db32bdd1e">hasTimeZone</a>;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div><div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="structXMP__DateTime.html#a2b26282b9f1ab9920a8f05008c776ddb"> 254</a></span>&#160; XMP_Int8 <a class="code" href="structXMP__DateTime.html#a2b26282b9f1ab9920a8f05008c776ddb">tzSign</a>;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00257"></a><span class="lineno"><a class="line" href="structXMP__DateTime.html#a6045133feeef41ac1f78c4664ab13db4"> 257</a></span>&#160; XMP_Int32 <a class="code" href="structXMP__DateTime.html#a6045133feeef41ac1f78c4664ab13db4">tzHour</a>;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno"><a class="line" href="structXMP__DateTime.html#a45baa70f30a3dc9f88819886cfb91aa1"> 260</a></span>&#160; XMP_Int32 <a class="code" href="structXMP__DateTime.html#a45baa70f30a3dc9f88819886cfb91aa1">tzMinute</a>;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div><div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="structXMP__DateTime.html#a190c2a19f01e90997ec2973aec37712c"> 263</a></span>&#160; XMP_Int32 <a class="code" href="structXMP__DateTime.html#a190c2a19f01e90997ec2973aec37712c">nanoSecond</a>;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="preprocessor"> #if __cplusplus</span></div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <a class="code" href="structXMP__DateTime.html">XMP_DateTime</a>() : year(0), month(0), day(0), hour(0), minute(0), second(0),</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; hasDate(false),hasTime(false), hasTimeZone(false), tzSign(0), tzHour(0), tzMinute(0), nanoSecond(0){};</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;};</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="keyword">enum</span> {</div><div class="line"><a name="l00275"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a511551ce156d5fd96c26ad464b837801"> 275</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a511551ce156d5fd96c26ad464b837801">kXMP_TimeWestOfUTC</a> = -1,</div><div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a3f41be55491204982acb39c9f6c7ad13"> 277</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a3f41be55491204982acb39c9f6c7ad13">kXMP_TimeIsUTC</a> = 0,</div><div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a68851b70cc1d2346fa21bc0b0ae6cfec"> 279</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a68851b70cc1d2346fa21bc0b0ae6cfec">kXMP_TimeEastOfUTC</a> = +1</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;};</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div><div class="line"><a name="l00282"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#ae12feaba743c6b1ab1a24ae13fecbffb"> 282</a></span>&#160;<span class="preprocessor">#define XMPDateTime_IsDateOnly(dt) ((dt).hasDate &amp; (! (dt).hasTime))</span></div><div class="line"><a name="l00283"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a10149d273250015e91931cd93b649a2e"> 283</a></span>&#160;<span class="preprocessor">#define XMPDateTime_IsTimeOnly(dt) ((dt).hasTime &amp; (! (dt).hasDate))</span></div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a8d6dc898fe00aeaf567d7af3ec23316a"> 285</a></span>&#160;<span class="preprocessor">#define XMPDateTime_ClearTimeZone(dt) { (dt).hasTimeZone = (dt).tzSign = (dt).tzHour = (dt).tzMinute = 0; }</span></div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="comment">// Standard namespace URI constants</span></div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="comment">// ================================</span></div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;</div><div class="line"><a name="l00326"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a030875c9dc0861c9251a3374ca14a376"> 326</a></span>&#160;<span class="preprocessor">#define kXMP_NS_XMP &quot;http://ns.adobe.com/xap/1.0/&quot;</span></div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;</div><div class="line"><a name="l00328"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#ae52d761e5a4fc8c8499215d2f3d82b90"> 328</a></span>&#160;<span class="preprocessor">#define kXMP_NS_XMP_Rights &quot;http://ns.adobe.com/xap/1.0/rights/&quot;</span></div><div class="line"><a name="l00329"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#ac67379a9ffa425d0d7976a51c4f2f754"> 329</a></span>&#160;<span class="preprocessor">#define kXMP_NS_XMP_MM &quot;http://ns.adobe.com/xap/1.0/mm/&quot;</span></div><div class="line"><a name="l00330"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a308e156c325618acb2172e550929ebee"> 330</a></span>&#160;<span class="preprocessor">#define kXMP_NS_XMP_BJ &quot;http://ns.adobe.com/xap/1.0/bj/&quot;</span></div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;</div><div class="line"><a name="l00332"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a0bcb67d0dd0922504e3da7ca5c40c82a"> 332</a></span>&#160;<span class="preprocessor">#define kXMP_NS_PDF &quot;http://ns.adobe.com/pdf/1.3/&quot;</span></div><div class="line"><a name="l00333"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#aa1a6f38ebfcdb281c5bf2809859167c7"> 333</a></span>&#160;<span class="preprocessor">#define kXMP_NS_Photoshop &quot;http://ns.adobe.com/photoshop/1.0/&quot;</span></div><div class="line"><a name="l00334"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a465d0a0810455207ffa0346f9c462743"> 334</a></span>&#160;<span class="preprocessor">#define kXMP_NS_PSAlbum &quot;http://ns.adobe.com/album/1.0/&quot;</span></div><div class="line"><a name="l00335"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#ad12182e1df1652f56b5eec60c1fcdd8f"> 335</a></span>&#160;<span class="preprocessor">#define kXMP_NS_EXIF &quot;http://ns.adobe.com/exif/1.0/&quot;</span></div><div class="line"><a name="l00336"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#ab8f5ed7baf102b78c816f2e86e142cfd"> 336</a></span>&#160;<span class="preprocessor">#define kXMP_NS_EXIF_Aux &quot;http://ns.adobe.com/exif/1.0/aux/&quot;</span></div><div class="line"><a name="l00337"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a673355818b7b9224e8fec0fbc60ba00c"> 337</a></span>&#160;<span class="preprocessor">#define kXMP_NS_TIFF &quot;http://ns.adobe.com/tiff/1.0/&quot;</span></div><div class="line"><a name="l00338"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abaf8c3257026b73a8d50cf43fa488c5d"> 338</a></span>&#160;<span class="preprocessor">#define kXMP_NS_PNG &quot;http://ns.adobe.com/png/1.0/&quot;</span></div><div class="line"><a name="l00339"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a8749291bd81f9cb64535b10ef996cb73"> 339</a></span>&#160;<span class="preprocessor">#define kXMP_NS_SWF &quot;http://ns.adobe.com/swf/1.0/&quot;</span></div><div class="line"><a name="l00340"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a35020e150227e9b8cea205958616f439"> 340</a></span>&#160;<span class="preprocessor">#define kXMP_NS_JPEG &quot;http://ns.adobe.com/jpeg/1.0/&quot;</span></div><div class="line"><a name="l00341"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a7426c6b7314b9b29b443f7f401e49be0"> 341</a></span>&#160;<span class="preprocessor">#define kXMP_NS_JP2K &quot;http://ns.adobe.com/jp2k/1.0/&quot;</span></div><div class="line"><a name="l00342"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a19da1e091dee6b6b471c05f1b73d6b3a"> 342</a></span>&#160;<span class="preprocessor">#define kXMP_NS_CameraRaw &quot;http://ns.adobe.com/camera-raw-settings/1.0/&quot;</span></div><div class="line"><a name="l00343"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a66fc3e8331cc92dc01cf2bbe74510baa"> 343</a></span>&#160;<span class="preprocessor">#define kXMP_NS_DM &quot;http://ns.adobe.com/xmp/1.0/DynamicMedia/&quot;</span></div><div class="line"><a name="l00344"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a57ce38d4e4b01739c939d8a46e23895e"> 344</a></span>&#160;<span class="preprocessor">#define kXMP_NS_Script &quot;http://ns.adobe.com/xmp/1.0/Script/&quot;</span></div><div class="line"><a name="l00345"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a3ef3c4c015092f8a4b94c4f8895cd955"> 345</a></span>&#160;<span class="preprocessor">#define kXMP_NS_ASF &quot;http://ns.adobe.com/asf/1.0/&quot;</span></div><div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#ae802d5ee6fe4802eb5ad692a0b8385ea"> 346</a></span>&#160;<span class="preprocessor">#define kXMP_NS_WAV &quot;http://ns.adobe.com/xmp/wav/1.0/&quot;</span></div><div class="line"><a name="l00347"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a7837e8541712f9f7d5118df1b0905946"> 347</a></span>&#160;<span class="preprocessor">#define kXMP_NS_BWF &quot;http://ns.adobe.com/bwf/bext/1.0/&quot;</span></div><div class="line"><a name="l00348"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a1245d5cd54d23588e74b883d9fda6a93"> 348</a></span>&#160;<span class="preprocessor">#define kXMP_NS_AEScart &quot;http://ns.adobe.com/aes/cart/&quot;</span></div><div class="line"><a name="l00349"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#ad1bc498d01dcc4a690e007b68a695e3a"> 349</a></span>&#160;<span class="preprocessor">#define kXMP_NS_RIFFINFO &quot;http://ns.adobe.com/riff/info/&quot;</span></div><div class="line"><a name="l00350"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#acc8062c03735e764865786f6064d06ba"> 350</a></span>&#160;<span class="preprocessor">#define kXMP_NS_iXML &quot;http://ns.adobe.com/ixml/1.0/&quot;</span></div><div class="line"><a name="l00351"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#af7950d7399839f17309a9b944a09be5e"> 351</a></span>&#160;<span class="preprocessor">#define kXMP_NS_XMP_Note &quot;http://ns.adobe.com/xmp/note/&quot;</span></div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;</div><div class="line"><a name="l00353"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a9d5b4ecd6214d080645718af1db77650"> 353</a></span>&#160;<span class="preprocessor">#define kXMP_NS_AdobeStockPhoto &quot;http://ns.adobe.com/StockPhoto/1.0/&quot;</span></div><div class="line"><a name="l00354"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#ad9c3d81fdbaf57f20bdf92d263d9d71a"> 354</a></span>&#160;<span class="preprocessor">#define kXMP_NS_CreatorAtom &quot;http://ns.adobe.com/creatorAtom/1.0/&quot;</span></div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;</div><div class="line"><a name="l00356"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abff75489a4300787e251f60694497ca8"> 356</a></span>&#160;<span class="preprocessor">#define kXMP_NS_ExifEX &quot;http://cipa.jp/exif/1.0/&quot;</span></div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;</div><div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#ab466db52a4b85cecfa04710682c1e671"> 384</a></span>&#160;<span class="preprocessor">#define kXMP_NS_XMP_IdentifierQual &quot;http://ns.adobe.com/xmp/Identifier/qual/1.0/&quot;</span></div><div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a9618e013619aa92ebc808b62243d2ba8"> 385</a></span>&#160;<span class="preprocessor">#define kXMP_NS_XMP_Dimensions &quot;http://ns.adobe.com/xap/1.0/sType/Dimensions#&quot;</span></div><div class="line"><a name="l00386"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a5e56ed5d1dfcbf69ddd9cdae6eea85f7"> 386</a></span>&#160;<span class="preprocessor">#define kXMP_NS_XMP_Text &quot;http://ns.adobe.com/xap/1.0/t/&quot;</span></div><div class="line"><a name="l00387"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#ac5e9bcf97c425cf61d6f466358aab1ca"> 387</a></span>&#160;<span class="preprocessor">#define kXMP_NS_XMP_PagedFile &quot;http://ns.adobe.com/xap/1.0/t/pg/&quot;</span></div><div class="line"><a name="l00388"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a285d88d6d95ce0bfed19bb41c5be485f"> 388</a></span>&#160;<span class="preprocessor">#define kXMP_NS_XMP_Graphics &quot;http://ns.adobe.com/xap/1.0/g/&quot;</span></div><div class="line"><a name="l00389"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a935641acc7d01e782ad7a457a7ff338b"> 389</a></span>&#160;<span class="preprocessor">#define kXMP_NS_XMP_Image &quot;http://ns.adobe.com/xap/1.0/g/img/&quot;</span></div><div class="line"><a name="l00390"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a49e25beee90220541ecfc7ac92fb78b5"> 390</a></span>&#160;<span class="preprocessor">#define kXMP_NS_XMP_Font &quot;http://ns.adobe.com/xap/1.0/sType/Font#&quot;</span></div><div class="line"><a name="l00391"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a861613273127156050b456eee11f6b0a"> 391</a></span>&#160;<span class="preprocessor">#define kXMP_NS_XMP_ResourceEvent &quot;http://ns.adobe.com/xap/1.0/sType/ResourceEvent#&quot;</span></div><div class="line"><a name="l00392"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a9bf51f2653400645f7b5087e8c4e1c77"> 392</a></span>&#160;<span class="preprocessor">#define kXMP_NS_XMP_ResourceRef &quot;http://ns.adobe.com/xap/1.0/sType/ResourceRef#&quot;</span></div><div class="line"><a name="l00393"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#ab4923bed71ab29c6aa88debe8816c0a2"> 393</a></span>&#160;<span class="preprocessor">#define kXMP_NS_XMP_ST_Version &quot;http://ns.adobe.com/xap/1.0/sType/Version#&quot;</span></div><div class="line"><a name="l00394"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#ac7dc4d65bcbba2862e410cc8cfdff6f6"> 394</a></span>&#160;<span class="preprocessor">#define kXMP_NS_XMP_ST_Job &quot;http://ns.adobe.com/xap/1.0/sType/Job#&quot;</span></div><div class="line"><a name="l00395"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#ac91c21a77be4fdc3d8be26fe37b003c8"> 395</a></span>&#160;<span class="preprocessor">#define kXMP_NS_XMP_ManifestItem &quot;http://ns.adobe.com/xap/1.0/sType/ManifestItem#&quot;</span></div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;<span class="comment">// Deprecated XML namespace constants</span></div><div class="line"><a name="l00398"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a0a2d9c5f7beb27553214a7ad1df4f27e"> 398</a></span>&#160;<span class="preprocessor">#define kXMP_NS_XMP_T &quot;http://ns.adobe.com/xap/1.0/t/&quot;</span></div><div class="line"><a name="l00399"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a39afb495ffb24bb3082493c6811e65d0"> 399</a></span>&#160;<span class="preprocessor">#define kXMP_NS_XMP_T_PG &quot;http://ns.adobe.com/xap/1.0/t/pg/&quot;</span></div><div class="line"><a name="l00400"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a2663db91a956937f0921f67342a31646"> 400</a></span>&#160;<span class="preprocessor">#define kXMP_NS_XMP_G_IMG &quot;http://ns.adobe.com/xap/1.0/g/img/&quot;</span></div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;</div><div class="line"><a name="l00422"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a44453f0d0a1dd295d41722c2387b36fa"> 422</a></span>&#160;<span class="preprocessor">#define kXMP_NS_DC &quot;http://purl.org/dc/elements/1.1/&quot;</span></div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;</div><div class="line"><a name="l00424"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#ab794d3d798daf75a963398347dcbb79b"> 424</a></span>&#160;<span class="preprocessor">#define kXMP_NS_IPTCCore &quot;http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/&quot;</span></div><div class="line"><a name="l00425"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a12ca045d4c12992ec8f6c1003523de20"> 425</a></span>&#160;<span class="preprocessor">#define kXMP_NS_IPTCExt &quot;http://iptc.org/std/Iptc4xmpExt/2008-02-29/&quot;</span></div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;</div><div class="line"><a name="l00427"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a10f6b8c9d551ec50ea536026b2c2b315"> 427</a></span>&#160;<span class="preprocessor">#define kXMP_NS_DICOM &quot;http://ns.adobe.com/DICOM/&quot;</span></div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;</div><div class="line"><a name="l00429"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a650c052a916eefa95f0d0ff7a34eb9a0"> 429</a></span>&#160;<span class="preprocessor">#define kXMP_NS_PLUS &quot;http://ns.useplus.org/ldf/xmp/1.0/&quot;</span></div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;</div><div class="line"><a name="l00431"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#acc810bb3c0fbab74ba54fca90153e1a0"> 431</a></span>&#160;<span class="preprocessor">#define kXMP_NS_PDFA_Schema &quot;http://www.aiim.org/pdfa/ns/schema#&quot;</span></div><div class="line"><a name="l00432"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a66eb8f71efe1b64635ab41ee86673436"> 432</a></span>&#160;<span class="preprocessor">#define kXMP_NS_PDFA_Property &quot;http://www.aiim.org/pdfa/ns/property#&quot;</span></div><div class="line"><a name="l00433"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a02fa37c61718c9712000b834df5d4fdc"> 433</a></span>&#160;<span class="preprocessor">#define kXMP_NS_PDFA_Type &quot;http://www.aiim.org/pdfa/ns/type#&quot;</span></div><div class="line"><a name="l00434"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a4f8605dd83a33b8ef13cb8b06f356b2e"> 434</a></span>&#160;<span class="preprocessor">#define kXMP_NS_PDFA_Field &quot;http://www.aiim.org/pdfa/ns/field#&quot;</span></div><div class="line"><a name="l00435"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#ae29f21b2ae6b86fdefc50c92c3157683"> 435</a></span>&#160;<span class="preprocessor">#define kXMP_NS_PDFA_ID &quot;http://www.aiim.org/pdfa/ns/id/&quot;</span></div><div class="line"><a name="l00436"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#ac47561b29c7d5e852e014e1391e38591"> 436</a></span>&#160;<span class="preprocessor">#define kXMP_NS_PDFA_Extension &quot;http://www.aiim.org/pdfa/ns/extension/&quot;</span></div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;</div><div class="line"><a name="l00438"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a74c2a786c7ac349f4226c9694e3be641"> 438</a></span>&#160;<span class="preprocessor">#define kXMP_NS_PDFX &quot;http://ns.adobe.com/pdfx/1.3/&quot;</span></div><div class="line"><a name="l00439"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a77d8c46d01eab6760579ffa049c80724"> 439</a></span>&#160;<span class="preprocessor">#define kXMP_NS_PDFX_ID &quot;http://www.npes.org/pdfx/ns/id/&quot;</span></div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;</div><div class="line"><a name="l00441"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a276fac0f70893607afa3f09030ad84c7"> 441</a></span>&#160;<span class="preprocessor">#define kXMP_NS_RDF &quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;</span></div><div class="line"><a name="l00442"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a97564c70460d1f235c8a41b8ac40cfe9"> 442</a></span>&#160;<span class="preprocessor">#define kXMP_NS_XML &quot;http://www.w3.org/XML/1998/namespace&quot;</span></div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;<span class="comment">// Enums and macros used for option bits</span></div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;<span class="comment">// =====================================</span></div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;</div><div class="line"><a name="l00462"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a9549b9a138a896257b5a70176d125317"> 462</a></span>&#160;<span class="preprocessor">#define kXMP_ArrayLastItem ((XMP_Index)(-1L))</span></div><div class="line"><a name="l00463"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a8283c9596c03b6d626d5a2b7a90e23ab"> 463</a></span>&#160;<span class="preprocessor">#define kXMP_UseNullTermination ((XMP_StringLen)(~0UL))</span></div><div class="line"><a name="l00464"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#aff1df9f3cf050f8b8d3a574db3c3326b"> 464</a></span>&#160;<span class="preprocessor">#define kXMP_NoOptions ((XMP_OptionBits)0UL)</span></div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;</div><div class="line"><a name="l00499"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a10a766c47b5ea01f285501b49d20bc62"> 499</a></span>&#160;<span class="preprocessor">#define XMP_SetOption(var,opt) var |= (opt)</span></div><div class="line"><a name="l00500"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a04133ceba1ad7a582aa63c8f4a5abf69"> 500</a></span>&#160;<span class="preprocessor">#define XMP_ClearOption(var,opt) var &amp;= ~(opt)</span></div><div class="line"><a name="l00501"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#aee6dc47c8013d4514ed363ae16ba2ad3"> 501</a></span>&#160;<span class="preprocessor">#define XMP_TestOption(var,opt) (((var) &amp; (opt)) != 0)</span></div><div class="line"><a name="l00502"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a8d8d2810a46a2b171107f4a2387e003d"> 502</a></span>&#160;<span class="preprocessor">#define XMP_OptionIsSet(var,opt) (((var) &amp; (opt)) != 0)</span></div><div class="line"><a name="l00503"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a1d41f53bd1d5c88fad8322ce15e39516"> 503</a></span>&#160;<span class="preprocessor">#define XMP_OptionIsClear(var,opt) (((var) &amp; (opt)) == 0)</span></div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;</div><div class="line"><a name="l00558"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a43aeebde901bea1932203107c690a2dc"> 558</a></span>&#160;<span class="preprocessor">#define XMP_PropIsSimple(opt) (((opt) &amp; kXMP_PropCompositeMask) == 0)</span></div><div class="line"><a name="l00559"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a9ecd2dede6b25ecec9a430c151d74d83"> 559</a></span>&#160;<span class="preprocessor">#define XMP_PropIsStruct(opt) (((opt) &amp; kXMP_PropValueIsStruct) != 0)</span></div><div class="line"><a name="l00560"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#ab8cf5a7c0f5a8dfc052117638fb55324"> 560</a></span>&#160;<span class="preprocessor">#define XMP_PropIsArray(opt) (((opt) &amp; kXMP_PropValueIsArray) != 0)</span></div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;</div><div class="line"><a name="l00562"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a67849593ac3ffe237743d301d94f1449"> 562</a></span>&#160;<span class="preprocessor">#define XMP_ArrayIsUnordered(opt) (((opt) &amp; kXMP_PropArrayIsOrdered) == 0)</span></div><div class="line"><a name="l00563"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#aaace3ec19d70712e4eb16f6d36de9cfb"> 563</a></span>&#160;<span class="preprocessor">#define XMP_ArrayIsOrdered(opt) (((opt) &amp; kXMP_PropArrayIsOrdered) != 0)</span></div><div class="line"><a name="l00564"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a4928f3fcb7c05bf25694b63d95aa6ce7"> 564</a></span>&#160;<span class="preprocessor">#define XMP_ArrayIsAlternate(opt) (((opt) &amp; kXMP_PropArrayIsAlternate) != 0)</span></div><div class="line"><a name="l00565"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a57d2bb01a830b278c8e6d1ecdead52c4"> 565</a></span>&#160;<span class="preprocessor">#define XMP_ArrayIsAltText(opt) (((opt) &amp; kXMP_PropArrayIsAltText) != 0)</span></div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;</div><div class="line"><a name="l00567"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a10828aa191aa666aa1166c27beead2a6"> 567</a></span>&#160;<span class="preprocessor">#define XMP_PropHasQualifiers(opt) (((opt) &amp; kXMP_PropHasQualifiers) != 0)</span></div><div class="line"><a name="l00568"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a9a555a9eb2fabe97dd57e8d2e1b077f5"> 568</a></span>&#160;<span class="preprocessor">#define XMP_PropIsQualifier(opt) (((opt) &amp; kXMP_PropIsQualifier) != 0)</span></div><div class="line"><a name="l00569"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adc4bc1a5da8c0a3d1a77366e4803680f"> 569</a></span>&#160;<span class="preprocessor">#define XMP_PropHasLang(opt) (((opt) &amp; kXMP_PropHasLang) != 0)</span></div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;</div><div class="line"><a name="l00571"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a18d4769112002d84e2ddd1aba6ef473c"> 571</a></span>&#160;<span class="preprocessor">#define XMP_NodeIsSchema(opt) (((opt) &amp; kXMP_SchemaNode) != 0)</span></div><div class="line"><a name="l00572"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a69a18fc954796cdbaa8771de5a476fab"> 572</a></span>&#160;<span class="preprocessor">#define XMP_PropIsAlias(opt) (((opt) &amp; kXMP_PropIsAlias) != 0)</span></div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;<span class="comment">// -------------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;<span class="keyword">enum</span> {</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;</div><div class="line"><a name="l00580"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aab51f87b5c48f47f5cefb9e03293dafb"> 580</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aab51f87b5c48f47f5cefb9e03293dafb">kXMP_PropValueIsURI</a> = 0x00000002UL,</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160;</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <span class="comment">// ------------------------------------------------------</span></div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="comment">// Options relating to qualifiers attached to a property.</span></div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;</div><div class="line"><a name="l00586"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a8e34a33a2eed56499d4f6f62da25d159"> 586</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a8e34a33a2eed56499d4f6f62da25d159">kXMP_PropHasQualifiers</a> = 0x00000010UL,</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;</div><div class="line"><a name="l00592"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a30146ed5209f5c3eb4eeb1fd8e4fb9fe"> 592</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a30146ed5209f5c3eb4eeb1fd8e4fb9fe">kXMP_PropIsQualifier</a> = 0x00000020UL,</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;</div><div class="line"><a name="l00595"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a3fa5ed87edc731bfb3817f58ba70a217"> 595</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a3fa5ed87edc731bfb3817f58ba70a217">kXMP_PropHasLang</a> = 0x00000040UL,</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;</div><div class="line"><a name="l00598"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aeff16fdf167afc73db25b30b529bd9d5"> 598</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aeff16fdf167afc73db25b30b529bd9d5">kXMP_PropHasType</a> = 0x00000080UL,</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; <span class="comment">// --------------------------------------------</span></div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; <span class="comment">// Options relating to the data structure form.</span></div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;</div><div class="line"><a name="l00604"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e"> 604</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e">kXMP_PropValueIsStruct</a> = 0x00000100UL,</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160;</div><div class="line"><a name="l00608"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a9b7706e0f0716ac7546bdc24ffedd0bc"> 608</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a9b7706e0f0716ac7546bdc24ffedd0bc">kXMP_PropValueIsArray</a> = 0x00000200UL,</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160;</div><div class="line"><a name="l00611"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a0d70c23394c0676657c89de5491192c0"> 611</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a0d70c23394c0676657c89de5491192c0">kXMP_PropArrayIsUnordered</a> = <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a9b7706e0f0716ac7546bdc24ffedd0bc">kXMP_PropValueIsArray</a>,</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;</div><div class="line"><a name="l00614"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5af1cdb3b0a3e852ec55e747a1686aba04"> 614</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5af1cdb3b0a3e852ec55e747a1686aba04">kXMP_PropArrayIsOrdered</a> = 0x00000400UL,</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;</div><div class="line"><a name="l00617"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a2596b1f0ea4600270c99102c86b5f1f1"> 617</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a2596b1f0ea4600270c99102c86b5f1f1">kXMP_PropArrayIsAlternate</a> = 0x00000800UL,</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <span class="comment">// ------------------------------------</span></div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; <span class="comment">// Additional struct and array options.</span></div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160;</div><div class="line"><a name="l00624"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aba253f67a6cf44b7438a3f96b516846d"> 624</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aba253f67a6cf44b7438a3f96b516846d">kXMP_PropArrayIsAltText</a> = 0x00001000UL,</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160;</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; <span class="comment">// kXMP_InsertBeforeItem = 0x00004000UL, ! Used by SetXyz functions.</span></div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; <span class="comment">// kXMP_InsertAfterItem = 0x00008000UL, ! Used by SetXyz functions.</span></div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; <span class="comment">// ----------------------------</span></div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; <span class="comment">// Other miscellaneous options.</span></div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160;</div><div class="line"><a name="l00634"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5ab975c19fb5c50f732a1a0d84dadb7c37"> 634</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5ab975c19fb5c50f732a1a0d84dadb7c37">kXMP_PropIsAlias</a> = 0x00010000UL,</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160;</div><div class="line"><a name="l00638"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a1f819ef281d1f52c4c12d5d02f49d3f0"> 638</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a1f819ef281d1f52c4c12d5d02f49d3f0">kXMP_PropHasAliases</a> = 0x00020000UL,</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160;</div><div class="line"><a name="l00641"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a48097c6ea309f240965d77ab564a5464"> 641</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a48097c6ea309f240965d77ab564a5464">kXMP_PropIsInternal</a> = 0x00040000UL,</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;</div><div class="line"><a name="l00644"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a81dcd06251771a0ddee6c1e36128c65c"> 644</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a81dcd06251771a0ddee6c1e36128c65c">kXMP_PropIsStable</a> = 0x00100000UL,</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160;</div><div class="line"><a name="l00647"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a0d898ea7f6b3db513bb24f8a6a285877"> 647</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a0d898ea7f6b3db513bb24f8a6a285877">kXMP_PropIsDerived</a> = 0x00200000UL,</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; <span class="comment">// kXMPUtil_AllowCommas = 0x10000000UL, ! Used by TXMPUtils::CatenateArrayItems and ::SeparateArrayItems.</span></div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; <span class="comment">// kXMP_DeleteExisting = 0x20000000UL, ! Used by TXMPMeta::SetXyz functions to delete any pre-existing property.</span></div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; <span class="comment">// kXMP_SchemaNode = 0x80000000UL, ! Returned by iterators - #define to avoid warnings</span></div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160;</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; <span class="comment">// ------------------------------</span></div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; <span class="comment">// Masks that are multiple flags.</span></div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160;</div><div class="line"><a name="l00657"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a6b5b5f4b869994b7390edc9589745e9f"> 657</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a6b5b5f4b869994b7390edc9589745e9f">kXMP_PropArrayFormMask</a> = <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a9b7706e0f0716ac7546bdc24ffedd0bc">kXMP_PropValueIsArray</a> | <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5af1cdb3b0a3e852ec55e747a1686aba04">kXMP_PropArrayIsOrdered</a> | <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a2596b1f0ea4600270c99102c86b5f1f1">kXMP_PropArrayIsAlternate</a> | <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aba253f67a6cf44b7438a3f96b516846d">kXMP_PropArrayIsAltText</a>,</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;</div><div class="line"><a name="l00660"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a60a9f26fb66c2e65cf40d9bc44968956"> 660</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a60a9f26fb66c2e65cf40d9bc44968956">kXMP_PropCompositeMask</a> = <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e">kXMP_PropValueIsStruct</a> | <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a6b5b5f4b869994b7390edc9589745e9f">kXMP_PropArrayFormMask</a>,</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160;</div><div class="line"><a name="l00663"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5ae154b58429b257b18963ba3503e67974"> 663</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5ae154b58429b257b18963ba3503e67974">kXMP_ImplReservedMask</a> = 0x70000000L</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160;</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160;};</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160;</div><div class="line"><a name="l00667"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a56197f91b537a0c2b5b9aadbcb404545"> 667</a></span>&#160;<span class="preprocessor">#define kXMP_SchemaNode ((XMP_OptionBits)0x80000000UL)</span></div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160;</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160;<span class="keyword">enum</span> {</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160;</div><div class="line"><a name="l00680"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04a873411f673fc2a6337083fd024df727f"> 680</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04a873411f673fc2a6337083fd024df727f">kXMP_InsertBeforeItem</a> = 0x00004000UL,</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160;</div><div class="line"><a name="l00683"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04a98cedd5fa29d47abb2ac8903ac7f5a05"> 683</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04a98cedd5fa29d47abb2ac8903ac7f5a05">kXMP_InsertAfterItem</a> = 0x00008000UL,</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160;</div><div class="line"><a name="l00686"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04addd07b4a38b25ab3841e28a9cb169d1c"> 686</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04addd07b4a38b25ab3841e28a9cb169d1c">kXMP_DeleteExisting</a> = 0x20000000UL,</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160;</div><div class="line"><a name="l00689"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04ad1b42a8a4c479d9bfaf406b79f2e1465"> 689</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04ad1b42a8a4c479d9bfaf406b79f2e1465">kXMP_PropValueOptionsMask</a> = <a class="code" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aab51f87b5c48f47f5cefb9e03293dafb">kXMP_PropValueIsURI</a>,</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160;</div><div class="line"><a name="l00692"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04aef8c1934a17b0e5d8f0b20a7e89df0df"> 692</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04aef8c1934a17b0e5d8f0b20a7e89df0df">kXMP_PropArrayLocationMask</a> = <a class="code" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04a873411f673fc2a6337083fd024df727f">kXMP_InsertBeforeItem</a> | <a class="code" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04a98cedd5fa29d47abb2ac8903ac7f5a05">kXMP_InsertAfterItem</a></div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160;</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160;};</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160;</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160;<span class="comment">// -------------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160;</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160;<span class="keyword">enum</span> {</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160;</div><div class="line"><a name="l00702"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca1e533852436acf75f594a4fb50a64400"> 702</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca1e533852436acf75f594a4fb50a64400">kXMP_RequireXMPMeta</a> = 0x0001UL,</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160;</div><div class="line"><a name="l00705"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca79b36427b7bf0c0a1ed010a44dec2d3e"> 705</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca79b36427b7bf0c0a1ed010a44dec2d3e">kXMP_ParseMoreBuffers</a> = 0x0002UL,</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160;</div><div class="line"><a name="l00708"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca7107906eab0e1fa6f9f2dc6254ad88b1"> 708</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca7107906eab0e1fa6f9f2dc6254ad88b1">kXMP_StrictAliasing</a> = 0x0004UL</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160;</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160;};</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160;</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160;<span class="keyword">enum</span> {</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160;</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; <span class="comment">// *** Option to remove empty struct/array, or leaf with empty value?</span></div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160;</div><div class="line"><a name="l00718"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadbb9e4c7ee139da0dd4126ddea794c76"> 718</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadbb9e4c7ee139da0dd4126ddea794c76">kXMP_OmitPacketWrapper</a> = 0x0010UL,</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160;</div><div class="line"><a name="l00721"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea238c792322c5bd5f9e4db3165e01f9d6"> 721</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea238c792322c5bd5f9e4db3165e01f9d6">kXMP_ReadOnlyPacket</a> = 0x0020UL,</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160;</div><div class="line"><a name="l00724"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea041dc6b7b8684be7112ae40f5f259ebb"> 724</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea041dc6b7b8684be7112ae40f5f259ebb">kXMP_UseCompactFormat</a> = 0x0040UL,</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160;</div><div class="line"><a name="l00727"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea15e3fb0e64614c574ed554f2f72c0a5d"> 727</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea15e3fb0e64614c574ed554f2f72c0a5d">kXMP_UseCanonicalFormat</a> = 0x0080UL,</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160;</div><div class="line"><a name="l00730"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea0b659b3b544c7a5a076fbd3132cd7f7a"> 730</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea0b659b3b544c7a5a076fbd3132cd7f7a">kXMP_IncludeThumbnailPad</a> = 0x0100UL,</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160;</div><div class="line"><a name="l00733"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadb35599da481cc22ea6342b7b4de6bc6"> 733</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadb35599da481cc22ea6342b7b4de6bc6">kXMP_ExactPacketLength</a> = 0x0200UL,</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160;</div><div class="line"><a name="l00736"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea79230f1d70d2625f7650db6ff5b1ea29"> 736</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea79230f1d70d2625f7650db6ff5b1ea29">kXMP_OmitAllFormatting</a> = 0x0800UL,</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160;</div><div class="line"><a name="l00739"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea9fb498d749d939e2ba9adf555a75b856"> 739</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea9fb498d749d939e2ba9adf555a75b856">kXMP_OmitXMPMetaElement</a> = 0x1000UL, </div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; </div><div class="line"><a name="l00742"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea23054ea4ab89dfd802f14cb389e18745"> 742</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea23054ea4ab89dfd802f14cb389e18745">kXMP_IncludeRDFHash</a> = 0x2000UL,</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160;</div><div class="line"><a name="l00744"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eaa646a732a5b11cd8354ca0c3686ef04d"> 744</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eaa646a732a5b11cd8354ca0c3686ef04d">_XMP_LittleEndian_Bit</a> = 0x0001UL, <span class="comment">// ! Don&#39;t use directly, see the combined values below!</span></div><div class="line"><a name="l00745"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea688324384883724626ddd5597eb45739"> 745</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea688324384883724626ddd5597eb45739">_XMP_UTF16_Bit</a> = 0x0002UL,</div><div class="line"><a name="l00746"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea540bbd27859990185eb488442579768b"> 746</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea540bbd27859990185eb488442579768b">_XMP_UTF32_Bit</a> = 0x0004UL,</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160;</div><div class="line"><a name="l00749"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eaeb79571cac99ee97feefb0347b1c1845"> 749</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eaeb79571cac99ee97feefb0347b1c1845">kXMP_EncodingMask</a> = 0x0007UL,</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160;</div><div class="line"><a name="l00752"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadc8f241694f5a758e5ee3f6db69d02ab"> 752</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadc8f241694f5a758e5ee3f6db69d02ab">kXMP_EncodeUTF8</a> = 0UL,</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160;</div><div class="line"><a name="l00755"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea310e4cbf639e783163778566b439f01d"> 755</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea310e4cbf639e783163778566b439f01d">kXMP_EncodeUTF16Big</a> = <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea688324384883724626ddd5597eb45739">_XMP_UTF16_Bit</a>,</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160;</div><div class="line"><a name="l00758"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eafc6417e382c98a2d507830de62fd4830"> 758</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eafc6417e382c98a2d507830de62fd4830">kXMP_EncodeUTF16Little</a> = <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea688324384883724626ddd5597eb45739">_XMP_UTF16_Bit</a> | <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eaa646a732a5b11cd8354ca0c3686ef04d">_XMP_LittleEndian_Bit</a>,</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160;</div><div class="line"><a name="l00761"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea793e99d9ea83f0aadd5b4193a95ea713"> 761</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea793e99d9ea83f0aadd5b4193a95ea713">kXMP_EncodeUTF32Big</a> = <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea540bbd27859990185eb488442579768b">_XMP_UTF32_Bit</a>,</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160;</div><div class="line"><a name="l00764"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eae0137d98ea990fa23d292489031ba09e"> 764</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eae0137d98ea990fa23d292489031ba09e">kXMP_EncodeUTF32Little</a> = <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea540bbd27859990185eb488442579768b">_XMP_UTF32_Bit</a> | <a class="code" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eaa646a732a5b11cd8354ca0c3686ef04d">_XMP_LittleEndian_Bit</a></div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160;</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160;};</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160;</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160;<span class="comment">// -------------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160;</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160;<span class="keyword">enum</span> {</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160;</div><div class="line"><a name="l00774"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a93f77b837d89759af3a721712c13f044"> 774</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a93f77b837d89759af3a721712c13f044">kXMP_IterClassMask</a> = 0x00FFUL,</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160;</div><div class="line"><a name="l00777"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635aa0643c076a3b3737ff88ed20f16afd2b"> 777</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635aa0643c076a3b3737ff88ed20f16afd2b">kXMP_IterProperties</a> = 0x0000UL,</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160;</div><div class="line"><a name="l00780"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a3333450505cd3712320aeac895e541b9"> 780</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a3333450505cd3712320aeac895e541b9">kXMP_IterAliases</a> = 0x0001UL,</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160;</div><div class="line"><a name="l00783"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635aa325d9ffba68a934f0a0a0f6ecfc2f7b"> 783</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635aa325d9ffba68a934f0a0a0f6ecfc2f7b">kXMP_IterNamespaces</a> = 0x0002UL,</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160;</div><div class="line"><a name="l00786"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635ab26e1a38d1d0343fcc5bdaab1b60e3ed"> 786</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635ab26e1a38d1d0343fcc5bdaab1b60e3ed">kXMP_IterJustChildren</a> = 0x0100UL,</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160;</div><div class="line"><a name="l00789"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a4589f99b5b4a55e785e3baf4fe1d9b19"> 789</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a4589f99b5b4a55e785e3baf4fe1d9b19">kXMP_IterJustLeafNodes</a> = 0x0200UL,</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160;</div><div class="line"><a name="l00792"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635acf22e638f4144bcec8207b2ab69bb344"> 792</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635acf22e638f4144bcec8207b2ab69bb344">kXMP_IterJustLeafName</a> = 0x0400UL,</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160;</div><div class="line"><a name="l00795"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a1b91947105ae68c48c5d5e36aa70d101"> 795</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a1b91947105ae68c48c5d5e36aa70d101">kXMP_IterOmitQualifiers</a> = 0x1000UL</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160;</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160;};</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160;</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160;<span class="keyword">enum</span> {</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160;</div><div class="line"><a name="l00803"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a0411cd49bb5b71852cecd93bcbf0ca2dab0b540cd3841f411471a827f833c606e"> 803</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a0411cd49bb5b71852cecd93bcbf0ca2dab0b540cd3841f411471a827f833c606e">kXMP_IterSkipSubtree</a> = 0x0001UL,</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160;</div><div class="line"><a name="l00806"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a0411cd49bb5b71852cecd93bcbf0ca2da2537b4b8db838f85b47988b198cd2a12"> 806</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a0411cd49bb5b71852cecd93bcbf0ca2da2537b4b8db838f85b47988b198cd2a12">kXMP_IterSkipSiblings</a> = 0x0002UL</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160;</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160;};</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160;</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160;<span class="comment">// -------------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160;</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160;<span class="keyword">enum</span> {</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160;</div><div class="line"><a name="l00821"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abed82baf7f470b522273a3e37c24c600ad6d41710c689f16d19ac26dc9f5cc506"> 821</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abed82baf7f470b522273a3e37c24c600ad6d41710c689f16d19ac26dc9f5cc506">kXMPUtil_AllowCommas</a> = 0x10000000UL</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160;</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160;};</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160;</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160;<span class="keyword">enum</span> {</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160;</div><div class="line"><a name="l00829"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a872d2b769e775e281984cc63e28714ea"> 829</a></span>&#160; <a class="code" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a872d2b769e775e281984cc63e28714ea">kXMPTemplate_IncludeInternalProperties</a> = 0x0001UL,</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160;</div><div class="line"><a name="l00832"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57aae2e0fe43295736a15f0bb76ffe02544"> 832</a></span>&#160; <a class="code" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57aae2e0fe43295736a15f0bb76ffe02544">kXMPTemplate_ReplaceExistingProperties</a> = 0x0002UL,</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160;</div><div class="line"><a name="l00835"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a81e1b6fd067fc9ad62bc803c98701bd5"> 835</a></span>&#160; <a class="code" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a81e1b6fd067fc9ad62bc803c98701bd5">kXMPTemplate_ReplaceWithDeleteEmpty</a> = 0x0004UL,</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160;</div><div class="line"><a name="l00838"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a145c259f83048b811c7b35bc3b339c42"> 838</a></span>&#160; <a class="code" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a145c259f83048b811c7b35bc3b339c42">kXMPTemplate_AddNewProperties</a> = 0x0008UL,</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160;</div><div class="line"><a name="l00841"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a9dac536fe6ee25de76d45bf6615abd46"> 841</a></span>&#160; <a class="code" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a9dac536fe6ee25de76d45bf6615abd46">kXMPTemplate_ClearUnnamedProperties</a> = 0x0010UL</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160;</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160;};</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160;</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160;<span class="keyword">enum</span> {</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160;</div><div class="line"><a name="l00849"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a8ddfb0572b7602a52e533d92d8b1e9fb"> 849</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a8ddfb0572b7602a52e533d92d8b1e9fb">kXMPUtil_DoAllProperties</a> = 0x0001UL,</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160;</div><div class="line"><a name="l00852"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388adab4dad658d2d218c5b1e7d829b12962"> 852</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388adab4dad658d2d218c5b1e7d829b12962">kXMPUtil_ReplaceOldValues</a> = 0x0002UL,</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160;</div><div class="line"><a name="l00855"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a97753b4c5afda9c55e807e41377d86d9"> 855</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a97753b4c5afda9c55e807e41377d86d9">kXMPUtil_DeleteEmptyValues</a> = 0x0004UL,</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160;</div><div class="line"><a name="l00858"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a843589b878f53d42d59258f945ad770b"> 858</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a843589b878f53d42d59258f945ad770b">kXMPUtil_IncludeAliases</a> = 0x0800UL</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160;</div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160;};</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160;</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160;<span class="comment">// Types and Constants for XMPFiles</span></div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160;<span class="comment">// ================================</span></div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160;</div><div class="line"><a name="l00867"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563f"> 867</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563f">SeekMode</a> { <a class="code" href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563faf52720b8c894653e4a089a9c0331ee47">kXMP_SeekFromStart</a>, <a class="code" href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563fa4e179367a02390075e632aca6e115925">kXMP_SeekFromCurrent</a>, <a class="code" href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563faeedc991a0194b932ae4a47307843baf6">kXMP_SeekFromEnd</a> };</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160;</div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160;<span class="keyword">enum</span> {</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160;</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; <span class="comment">// ! Hex used to avoid gcc warnings. Leave the constants so the text reads big endian. There</span></div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; <span class="comment">// ! seems to be no decent way on UNIX to determine the target endianness at compile time.</span></div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; <span class="comment">// ! Forcing it on the client isn&#39;t acceptable.</span></div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160;</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; <span class="comment">// --------------------</span></div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; <span class="comment">// Public file formats.</span></div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160;</div><div class="line"><a name="l00880"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da17ab6d429c1550eb3cc16d2e544b78eb"> 880</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da17ab6d429c1550eb3cc16d2e544b78eb">kXMP_PDFFile</a> = 0x50444620UL,</div><div class="line"><a name="l00882"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da52c90935ee28a0875a49843d463cad70"> 882</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da52c90935ee28a0875a49843d463cad70">kXMP_PostScriptFile</a> = 0x50532020UL,</div><div class="line"><a name="l00884"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad947e6da0c4d923195d93e0c53a79c4e"> 884</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad947e6da0c4d923195d93e0c53a79c4e">kXMP_EPSFile</a> = 0x45505320UL,</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160;</div><div class="line"><a name="l00887"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad752b2d3e1139e0745223a9385ef6487"> 887</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad752b2d3e1139e0745223a9385ef6487">kXMP_JPEGFile</a> = 0x4A504547UL,</div><div class="line"><a name="l00889"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da78b8fa38aaa2067e3e1baa0dcaa7571d"> 889</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da78b8fa38aaa2067e3e1baa0dcaa7571d">kXMP_JPEG2KFile</a> = 0x4A505820UL,</div><div class="line"><a name="l00891"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dadc0edf25d933c2a21b25449692c3ba08"> 891</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dadc0edf25d933c2a21b25449692c3ba08">kXMP_TIFFFile</a> = 0x54494646UL,</div><div class="line"><a name="l00893"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da851d2f4525d705cd2dcabb540d0ddc06"> 893</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da851d2f4525d705cd2dcabb540d0ddc06">kXMP_GIFFile</a> = 0x47494620UL,</div><div class="line"><a name="l00895"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dac989381d37de320495e4d13f9ecc6371"> 895</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dac989381d37de320495e4d13f9ecc6371">kXMP_PNGFile</a> = 0x504E4720UL,</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160;</div><div class="line"><a name="l00898"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da564a8095f65d951f451e16eb56650597"> 898</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da564a8095f65d951f451e16eb56650597">kXMP_SWFFile</a> = 0x53574620UL,</div><div class="line"><a name="l00900"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dab1eeba00d1d92e313acfe68cd054daf9"> 900</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dab1eeba00d1d92e313acfe68cd054daf9">kXMP_FLAFile</a> = 0x464C4120UL,</div><div class="line"><a name="l00902"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da455bc501088bbd8061fe3ea386a5066f"> 902</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da455bc501088bbd8061fe3ea386a5066f">kXMP_FLVFile</a> = 0x464C5620UL,</div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160;</div><div class="line"><a name="l00905"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daebdb172c8a75b4ead2eff2d26ed3dc37"> 905</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daebdb172c8a75b4ead2eff2d26ed3dc37">kXMP_MOVFile</a> = 0x4D4F5620UL,</div><div class="line"><a name="l00907"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dae3a6333624e5c292caf14ad849a5e26e"> 907</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dae3a6333624e5c292caf14ad849a5e26e">kXMP_AVIFile</a> = 0x41564920UL,</div><div class="line"><a name="l00909"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad2935ea79b4f9253891e3a68a002c5bb"> 909</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad2935ea79b4f9253891e3a68a002c5bb">kXMP_CINFile</a> = 0x43494E20UL,</div><div class="line"><a name="l00911"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dacc1fcd4e52423c0dd2966a2e92352fb8"> 911</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dacc1fcd4e52423c0dd2966a2e92352fb8">kXMP_WAVFile</a> = 0x57415620UL,</div><div class="line"><a name="l00913"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf3ee34ed2bc26dec0e2d572eeb0de89b"> 913</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf3ee34ed2bc26dec0e2d572eeb0de89b">kXMP_MP3File</a> = 0x4D503320UL,</div><div class="line"><a name="l00915"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da42cb8767d9cf16eaeb7aec68a4f224e9"> 915</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da42cb8767d9cf16eaeb7aec68a4f224e9">kXMP_SESFile</a> = 0x53455320UL,</div><div class="line"><a name="l00917"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da6c949ee85f42eaaed035591338be6789"> 917</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da6c949ee85f42eaaed035591338be6789">kXMP_CELFile</a> = 0x43454C20UL,</div><div class="line"><a name="l00919"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da043afdc1db730db9ac03c505140c61c8"> 919</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da043afdc1db730db9ac03c505140c61c8">kXMP_MPEGFile</a> = 0x4D504547UL,</div><div class="line"><a name="l00921"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dab58eaebed494530072ad990ac7a9807a"> 921</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dab58eaebed494530072ad990ac7a9807a">kXMP_MPEG2File</a> = 0x4D503220UL,</div><div class="line"><a name="l00923"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da89e6282c3f0c8966d788500f5d8eaa91"> 923</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da89e6282c3f0c8966d788500f5d8eaa91">kXMP_MPEG4File</a> = 0x4D503420UL,</div><div class="line"><a name="l00925"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da4b3477bdc53fae1511104fc54f88d134"> 925</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da4b3477bdc53fae1511104fc54f88d134">kXMP_MXFFile</a> = 0x4D584620UL,</div><div class="line"><a name="l00927"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da78c62f7c10b16b1a862d93f6226a4622"> 927</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da78c62f7c10b16b1a862d93f6226a4622">kXMP_WMAVFile</a> = 0x574D4156UL,</div><div class="line"><a name="l00929"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf093d01e7e9cc55a7d1e204498521fc3"> 929</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf093d01e7e9cc55a7d1e204498521fc3">kXMP_AIFFFile</a> = 0x41494646UL,</div><div class="line"><a name="l00931"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daab032aa36aec082c6b3a8300548346f5"> 931</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daab032aa36aec082c6b3a8300548346f5">kXMP_REDFile</a> = 0x52454420UL,</div><div class="line"><a name="l00933"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dabad9584845edf66f2f8fc3c336977e34"> 933</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dabad9584845edf66f2f8fc3c336977e34">kXMP_P2File</a> = 0x50322020UL,</div><div class="line"><a name="l00935"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da5f78caa0871695cc92e058e4f4b2dd57"> 935</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da5f78caa0871695cc92e058e4f4b2dd57">kXMP_XDCAM_FAMFile</a> = 0x58444346UL,</div><div class="line"><a name="l00937"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da64fe7908df6341e13d9d8c8199cdf852"> 937</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da64fe7908df6341e13d9d8c8199cdf852">kXMP_XDCAM_SAMFile</a> = 0x58444353UL,</div><div class="line"><a name="l00939"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da45bf9b21d5ffed3594fbd585c47cc4fc"> 939</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da45bf9b21d5ffed3594fbd585c47cc4fc">kXMP_XDCAM_EXFile</a> = 0x58444358UL,</div><div class="line"><a name="l00941"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafc5ff976e78df2d79d651de818b011f2"> 941</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafc5ff976e78df2d79d651de818b011f2">kXMP_AVCHDFile</a> = 0x41564844UL,</div><div class="line"><a name="l00943"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daa0edb070c11f87c3dad9f8f7a83b9b5e"> 943</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daa0edb070c11f87c3dad9f8f7a83b9b5e">kXMP_SonyHDVFile</a> = 0x53484456UL,</div><div class="line"><a name="l00945"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafa11d905db1236494e555956cb2f90ef"> 945</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafa11d905db1236494e555956cb2f90ef">kXMP_CanonXFFile</a> = 0x434E5846UL,</div><div class="line"><a name="l00947"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf32bab632c45ee7d960a5b74c9d61155"> 947</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf32bab632c45ee7d960a5b74c9d61155">kXMP_AVCUltraFile</a> = 0x41564355UL,</div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160;</div><div class="line"><a name="l00950"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da542634e6051139c44fd7b92d08c64760"> 950</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da542634e6051139c44fd7b92d08c64760">kXMP_HTMLFile</a> = 0x48544D4CUL,</div><div class="line"><a name="l00952"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad217b996403fa13caef3d6e978023124"> 952</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad217b996403fa13caef3d6e978023124">kXMP_XMLFile</a> = 0x584D4C20UL,</div><div class="line"><a name="l00954"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da27051cd824d3ae7bb59e3af7a7908ffd"> 954</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da27051cd824d3ae7bb59e3af7a7908ffd">kXMP_TextFile</a> = 0x74657874UL,</div><div class="line"><a name="l00956"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf775c60f1da0e8c34590744a89e66c79"> 956</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf775c60f1da0e8c34590744a89e66c79">kXMP_SVGFile</a> = 0x53564720UL,</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160;</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; <span class="comment">// -------------------------------</span></div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; <span class="comment">// Adobe application file formats.</span></div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160;</div><div class="line"><a name="l00962"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da22b478a9d0d52d12e8e4a1181024eb1c"> 962</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da22b478a9d0d52d12e8e4a1181024eb1c">kXMP_PhotoshopFile</a> = 0x50534420UL,</div><div class="line"><a name="l00964"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da82935c41c6222ff4cca954278f18e554"> 964</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da82935c41c6222ff4cca954278f18e554">kXMP_IllustratorFile</a> = 0x41492020UL,</div><div class="line"><a name="l00966"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da79cbf96ecc4ac3e0ebfb2d182bc75e60"> 966</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da79cbf96ecc4ac3e0ebfb2d182bc75e60">kXMP_InDesignFile</a> = 0x494E4444UL,</div><div class="line"><a name="l00968"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da5fb9e99541bbb2d8e375d0cc9fd92a2e"> 968</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da5fb9e99541bbb2d8e375d0cc9fd92a2e">kXMP_AEProjectFile</a> = 0x41455020UL,</div><div class="line"><a name="l00970"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dada5b138722448c4d4595fe760668c3df"> 970</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dada5b138722448c4d4595fe760668c3df">kXMP_AEProjTemplateFile</a> = 0x41455420UL,</div><div class="line"><a name="l00972"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafd8d3d1c8c84bc6ab773f1298b3938f0"> 972</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafd8d3d1c8c84bc6ab773f1298b3938f0">kXMP_AEFilterPresetFile</a> = 0x46465820UL,</div><div class="line"><a name="l00974"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dae28efb65bde55f3f8ddfd1fd8a168e2a"> 974</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dae28efb65bde55f3f8ddfd1fd8a168e2a">kXMP_EncoreProjectFile</a> = 0x4E434F52UL,</div><div class="line"><a name="l00976"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daeff4f68cd5162370f7bf938a868e280d"> 976</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daeff4f68cd5162370f7bf938a868e280d">kXMP_PremiereProjectFile</a> = 0x5052504AUL,</div><div class="line"><a name="l00978"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da1ad712bbd349dc899ca1e71971032b0a"> 978</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da1ad712bbd349dc899ca1e71971032b0a">kXMP_PremiereTitleFile</a> = 0x5052544CUL,</div><div class="line"><a name="l00980"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da96804f7b8ce83786051c4dac4930aa96"> 980</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da96804f7b8ce83786051c4dac4930aa96">kXMP_UCFFile</a> = 0x55434620UL,</div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160;</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160; <span class="comment">// -------</span></div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; <span class="comment">// Others.</span></div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160;</div><div class="line"><a name="l00986"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719"> 986</a></span>&#160; <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719">kXMP_UnknownFile</a> = 0x20202020UL</div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160;</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160;};</div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160;</div><div class="line"><a name="l00991"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e"> 991</a></span>&#160;<span class="keyword">typedef</span> XMP_Uns32 <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a>;</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160;</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160;<span class="comment">// -------------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160;</div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160;<span class="keyword">enum</span> {</div><div class="line"><a name="l00997"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8a0bcf31bfc6bd3bbd5f80ef25f21b4391"> 997</a></span>&#160; <a class="code" href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8a0bcf31bfc6bd3bbd5f80ef25f21b4391">kXMP_CharLittleEndianMask</a> = 1,</div><div class="line"><a name="l00998"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8ac9b8b24a75e4e325a49e3730b8e3c5ed"> 998</a></span>&#160; <a class="code" href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8ac9b8b24a75e4e325a49e3730b8e3c5ed">kXMP_Char16BitMask</a> = 2,</div><div class="line"><a name="l00999"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8a705cebe9f5f6700f039a153d394b4f2a"> 999</a></span>&#160; <a class="code" href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8a705cebe9f5f6700f039a153d394b4f2a">kXMP_Char32BitMask</a> = 4</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;};</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;<span class="keyword">enum</span> {</div><div class="line"><a name="l01005"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9eaf5b20dd9abbef29169a362b265049637"> 1005</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9eaf5b20dd9abbef29169a362b265049637">kXMP_Char8Bit</a> = 0,</div><div class="line"><a name="l01007"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea0966bca9b241646f6a730f96c5c14a2d"> 1007</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea0966bca9b241646f6a730f96c5c14a2d">kXMP_Char16BitBig</a> = <a class="code" href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8ac9b8b24a75e4e325a49e3730b8e3c5ed">kXMP_Char16BitMask</a>,</div><div class="line"><a name="l01009"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea19b97b941d6586031190025225ee0eaa"> 1009</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea19b97b941d6586031190025225ee0eaa">kXMP_Char16BitLittle</a> = <a class="code" href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8ac9b8b24a75e4e325a49e3730b8e3c5ed">kXMP_Char16BitMask</a> | <a class="code" href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8a0bcf31bfc6bd3bbd5f80ef25f21b4391">kXMP_CharLittleEndianMask</a>,</div><div class="line"><a name="l01011"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea87f8231aec6dd125baf77c9f3f918fbc"> 1011</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea87f8231aec6dd125baf77c9f3f918fbc">kXMP_Char32BitBig</a> = <a class="code" href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8a705cebe9f5f6700f039a153d394b4f2a">kXMP_Char32BitMask</a>,</div><div class="line"><a name="l01013"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea859e7aa88e7dfd3f55ad2b6445a4708e"> 1013</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea859e7aa88e7dfd3f55ad2b6445a4708e">kXMP_Char32BitLittle</a> = <a class="code" href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8a705cebe9f5f6700f039a153d394b4f2a">kXMP_Char32BitMask</a> | <a class="code" href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8a0bcf31bfc6bd3bbd5f80ef25f21b4391">kXMP_CharLittleEndianMask</a>,</div><div class="line"><a name="l01015"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea6c37f0724299a9c88e2f622d3246d63b"> 1015</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea6c37f0724299a9c88e2f622d3246d63b">kXMP_CharUnknown</a> = 1</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;};</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;</div><div class="line"><a name="l01051"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a72d86d541447456a08e0d29b57a6ae24"> 1051</a></span>&#160;<span class="preprocessor">#define XMP_CharFormIs16Bit(f) ( ((int)(f) &amp; kXMP_Char16BitMask) != 0 )</span></div><div class="line"><a name="l01052"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#afd02278cadf2132a8cc1e7188715c860"> 1052</a></span>&#160;<span class="preprocessor">#define XMP_CharFormIs32Bit(f) ( ((int)(f) &amp; kXMP_Char32BitMask) != 0 )</span></div><div class="line"><a name="l01053"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#ad799046db4440bf02e2d244372ca913c"> 1053</a></span>&#160;<span class="preprocessor">#define XMP_CharFormIsBigEndian(f) ( ((int)(f) &amp; kXMP_CharLittleEndianMask) == 0 )</span></div><div class="line"><a name="l01054"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a906ec1cd2fb1631c1b5ad9ccdf9c0a6b"> 1054</a></span>&#160;<span class="preprocessor">#define XMP_CharFormIsLittleEndian(f) ( ((int)(f) &amp; kXMP_CharLittleEndianMask) != 0 )</span></div><div class="line"><a name="l01055"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a017e63e6fcd1ede112e8945c49b339e6"> 1055</a></span>&#160;<span class="preprocessor">#define XMP_GetCharSize(f) ( ((int)(f)&amp;6) == 0 ? 1 : (int)(f)&amp;6 )</span></div><div class="line"><a name="l01056"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a42692697b1951300a6c82665ded8f781"> 1056</a></span>&#160;<span class="preprocessor">#define XMP_CharToSerializeForm(cf) ( (XMP_OptionBits)(cf) )</span></div><div class="line"><a name="l01057"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a93e7900e6c9fb4057dfd685b5201057d"> 1057</a></span>&#160;<span class="preprocessor">#define XMP_CharFromSerializeForm(sf) ( (XMP_Uns8)(sf) )</span></div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;</div><div class="line"><a name="l01061"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a6a9b77b60c63781a8776f10880856bf4"> 1061</a></span>&#160;<span class="preprocessor">#define kXMPFiles_UnknownOffset ((XMP_Int64)-1)</span></div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;</div><div class="line"><a name="l01065"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#ae0901aabcf619f17cff03f08e5ed3658"> 1065</a></span>&#160;<span class="preprocessor">#define kXMPFiles_UnknownLength ((XMP_Int32)-1)</span></div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;</div><div class="line"><a name="l01068"></a><span class="lineno"><a class="line" href="structXMP__PacketInfo.html"> 1068</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structXMP__PacketInfo.html">XMP_PacketInfo</a> {</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;</div><div class="line"><a name="l01071"></a><span class="lineno"><a class="line" href="structXMP__PacketInfo.html#a20f65fcfd0f3658ab93ff441a9d61d2c"> 1071</a></span>&#160; XMP_Int64 <a class="code" href="structXMP__PacketInfo.html#a20f65fcfd0f3658ab93ff441a9d61d2c">offset</a>;</div><div class="line"><a name="l01073"></a><span class="lineno"><a class="line" href="structXMP__PacketInfo.html#af526c582b66e24553f2d4b11eb714a44"> 1073</a></span>&#160; XMP_Int32 <a class="code" href="structXMP__PacketInfo.html#af526c582b66e24553f2d4b11eb714a44">length</a>;</div><div class="line"><a name="l01075"></a><span class="lineno"><a class="line" href="structXMP__PacketInfo.html#af4f99e6a5b36b05fdf4a519421875256"> 1075</a></span>&#160; XMP_Int32 <a class="code" href="structXMP__PacketInfo.html#af4f99e6a5b36b05fdf4a519421875256">padSize</a>; <span class="comment">// Zero if unknown.</span></div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;</div><div class="line"><a name="l01078"></a><span class="lineno"><a class="line" href="structXMP__PacketInfo.html#a039ce6665fe8e08d922a46f266799f75"> 1078</a></span>&#160; XMP_Uns8 <a class="code" href="structXMP__PacketInfo.html#a039ce6665fe8e08d922a46f266799f75">charForm</a>;</div><div class="line"><a name="l01080"></a><span class="lineno"><a class="line" href="structXMP__PacketInfo.html#a66845c1d5f3f9f36a1543a7322bd7bd1"> 1080</a></span>&#160; XMP_Bool <a class="code" href="structXMP__PacketInfo.html#a66845c1d5f3f9f36a1543a7322bd7bd1">writeable</a>;</div><div class="line"><a name="l01082"></a><span class="lineno"><a class="line" href="structXMP__PacketInfo.html#a6725d8ab8b4eedddaac950d2b1b00a7f"> 1082</a></span>&#160; XMP_Bool <a class="code" href="structXMP__PacketInfo.html#a6725d8ab8b4eedddaac950d2b1b00a7f">hasWrapper</a>;</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;</div><div class="line"><a name="l01085"></a><span class="lineno"><a class="line" href="structXMP__PacketInfo.html#a83ec12161a36451fef05d88cc754104e"> 1085</a></span>&#160; XMP_Uns8 <a class="code" href="structXMP__PacketInfo.html#a83ec12161a36451fef05d88cc754104e">pad</a>;</div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;</div><div class="line"><a name="l01088"></a><span class="lineno"><a class="line" href="structXMP__PacketInfo.html#a2ae03a1b3d03fa9ebc829105037155a8"> 1088</a></span>&#160; <a class="code" href="structXMP__PacketInfo.html#a2ae03a1b3d03fa9ebc829105037155a8">XMP_PacketInfo</a>() : offset(<a class="code" href="XMP__Const_8h.html#a6a9b77b60c63781a8776f10880856bf4">kXMPFiles_UnknownOffset</a>), length(<a class="code" href="XMP__Const_8h.html#ae0901aabcf619f17cff03f08e5ed3658">kXMPFiles_UnknownLength</a>),</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160; padSize(0), charForm(0), writeable(0), hasWrapper(0), pad(0) {};</div><div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;</div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;};</div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;<span class="keyword">enum</span> {</div><div class="line"><a name="l01096"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a16af7b253440dadd46a80a4b9fddba4da767b4847575a8de28e691be660d43817"> 1096</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a16af7b253440dadd46a80a4b9fddba4da767b4847575a8de28e691be660d43817">kXMP_PacketInfoVersion</a> = 3</div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;};</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;<span class="comment">// -------------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160;</div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;<span class="keyword">enum</span> {</div><div class="line"><a name="l01104"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#aba01db17f4a2bfbc3db60dc172972a25a9b9c1ef01e49193a167c40156df07b50"> 1104</a></span>&#160; <a class="code" href="XMP__Const_8h.html#aba01db17f4a2bfbc3db60dc172972a25a9b9c1ef01e49193a167c40156df07b50">kXMPFiles_IgnoreLocalText</a> = 0x0002,</div><div class="line"><a name="l01106"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#aba01db17f4a2bfbc3db60dc172972a25aee2f09481347c29d6c06951b0d81e145"> 1106</a></span>&#160; <a class="code" href="XMP__Const_8h.html#aba01db17f4a2bfbc3db60dc172972a25aee2f09481347c29d6c06951b0d81e145">kXMPFiles_ServerMode</a> = <a class="code" href="XMP__Const_8h.html#aba01db17f4a2bfbc3db60dc172972a25a9b9c1ef01e49193a167c40156df07b50">kXMPFiles_IgnoreLocalText</a></div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;};</div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;<span class="keyword">enum</span> {</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;</div><div class="line"><a name="l01113"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea23a3eb2a5e95292036a93ad6666fa388"> 1113</a></span>&#160; <a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea23a3eb2a5e95292036a93ad6666fa388">kXMPFiles_CanInjectXMP</a> = 0x00000001,</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;</div><div class="line"><a name="l01116"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea126c9cc056f6569c424431edbcb9521c"> 1116</a></span>&#160; <a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea126c9cc056f6569c424431edbcb9521c">kXMPFiles_CanExpand</a> = 0x00000002,</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;</div><div class="line"><a name="l01119"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea8957f1ef358b4ab3a1df519903f2ae07"> 1119</a></span>&#160; <a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea8957f1ef358b4ab3a1df519903f2ae07">kXMPFiles_CanRewrite</a> = 0x00000004,</div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;</div><div class="line"><a name="l01122"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceab55e1873e67048928de3fc47550678c3"> 1122</a></span>&#160; <a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceab55e1873e67048928de3fc47550678c3">kXMPFiles_PrefersInPlace</a> = 0x00000008,</div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;</div><div class="line"><a name="l01125"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceafc2bc7cfdd28a326788d563ec0357694"> 1125</a></span>&#160; <a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceafc2bc7cfdd28a326788d563ec0357694">kXMPFiles_CanReconcile</a> = 0x00000010,</div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;</div><div class="line"><a name="l01128"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea4a183c3ec4994cf09993e5b31dee9733"> 1128</a></span>&#160; <a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea4a183c3ec4994cf09993e5b31dee9733">kXMPFiles_AllowsOnlyXMP</a> = 0x00000020,</div><div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160;</div><div class="line"><a name="l01131"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceadb116eed738d1fcdfe4ab9c1635e08ea"> 1131</a></span>&#160; <a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceadb116eed738d1fcdfe4ab9c1635e08ea">kXMPFiles_ReturnsRawPacket</a> = 0x00000040,</div><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;</div><div class="line"><a name="l01134"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceafc2c5b585e698ebf24a9379de35954b4"> 1134</a></span>&#160; <a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceafc2c5b585e698ebf24a9379de35954b4">kXMPFiles_HandlerOwnsFile</a> = 0x00000100,</div><div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160;</div><div class="line"><a name="l01137"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea9fe958d4ccde02516a3a267db63874cd"> 1137</a></span>&#160; <a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea9fe958d4ccde02516a3a267db63874cd">kXMPFiles_AllowsSafeUpdate</a> = 0x00000200,</div><div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160;</div><div class="line"><a name="l01140"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceaee13099f78018a5e1ce033266c27e999"> 1140</a></span>&#160; <a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceaee13099f78018a5e1ce033266c27e999">kXMPFiles_NeedsReadOnlyPacket</a> = 0x00000400,</div><div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160;</div><div class="line"><a name="l01143"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcead3027b786992e2a4762a4fa37c92943c"> 1143</a></span>&#160; <a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcead3027b786992e2a4762a4fa37c92943c">kXMPFiles_UsesSidecarXMP</a> = 0x00000800,</div><div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160;</div><div class="line"><a name="l01146"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceaa2a6a4b744b40055387234632b688fcd"> 1146</a></span>&#160; <a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceaa2a6a4b744b40055387234632b688fcd">kXMPFiles_FolderBasedFormat</a> = 0x00001000,</div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;</div><div class="line"><a name="l01149"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea17578d45ae3c09a8d08189ea544052b1"> 1149</a></span>&#160; <a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea17578d45ae3c09a8d08189ea544052b1">kXMPFiles_CanNotifyProgress</a> = 0x00002000,</div><div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160;</div><div class="line"><a name="l01152"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea798c55f5144eedde76f8329a056210b2"> 1152</a></span>&#160; <a class="code" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea798c55f5144eedde76f8329a056210b2">kXMPFiles_NeedsPreloading</a> = 0x00004000,</div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;</div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;};</div><div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;</div><div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160;<span class="keyword">enum</span> {</div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;</div><div class="line"><a name="l01160"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa4c61ec4ed571dbc5f1832ff6772320d2"> 1160</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa4c61ec4ed571dbc5f1832ff6772320d2">kXMPFiles_OpenForRead</a> = 0x00000001,</div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;</div><div class="line"><a name="l01163"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa91fa388b3888bcb6a68615537b66a49b"> 1163</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa91fa388b3888bcb6a68615537b66a49b">kXMPFiles_OpenForUpdate</a> = 0x00000002,</div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;</div><div class="line"><a name="l01166"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaa58279b2b1311242e7374117f455bb96"> 1166</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaa58279b2b1311242e7374117f455bb96">kXMPFiles_OpenOnlyXMP</a> = 0x00000004,</div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;</div><div class="line"><a name="l01169"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaab8cbbeef0e99d246907a4375766e21a2"> 1169</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaab8cbbeef0e99d246907a4375766e21a2">kXMPFiles_ForceGivenHandler</a> = 0x00000008,</div><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160; </div><div class="line"><a name="l01172"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa0bef4db2ecdaf82a85df9e9d417aab18"> 1172</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa0bef4db2ecdaf82a85df9e9d417aab18">kXMPFiles_OpenStrictly</a> = 0x00000010,</div><div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;</div><div class="line"><a name="l01175"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaf6332435c7fc89cb0b7381e13fe43646"> 1175</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaf6332435c7fc89cb0b7381e13fe43646">kXMPFiles_OpenUseSmartHandler</a> = 0x00000020,</div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;</div><div class="line"><a name="l01178"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa77b47c63e579b28cbd25083ceb58c285"> 1178</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa77b47c63e579b28cbd25083ceb58c285">kXMPFiles_OpenUsePacketScanning</a> = 0x00000040,</div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;</div><div class="line"><a name="l01181"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa77f34b1873bb2584feabe26a2c8f1182"> 1181</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa77f34b1873bb2584feabe26a2c8f1182">kXMPFiles_OpenLimitedScanning</a> = 0x00000080,</div><div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;</div><div class="line"><a name="l01184"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa05acd568597f72b4812b432ea6cf606a"> 1184</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa05acd568597f72b4812b432ea6cf606a">kXMPFiles_OpenRepairFile</a> = 0x00000100,</div><div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;</div><div class="line"><a name="l01187"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaf5f2ebd401758a14dc52c5ee403303b5"> 1187</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaf5f2ebd401758a14dc52c5ee403303b5">kXMPFiles_OptimizeFileLayout</a> = 0x00000200</div><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;</div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;};</div><div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160;</div><div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160;<span class="keyword">enum</span> {</div><div class="line"><a name="l01194"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a6b7b47dd702d9e331586d485013fd1eaadbf8d744f355ef9800a4ec44325baf54"> 1194</a></span>&#160; <a class="code" href="XMP__Const_8h.html#a6b7b47dd702d9e331586d485013fd1eaadbf8d744f355ef9800a4ec44325baf54">kXMPFiles_UpdateSafely</a> = 0x0001</div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;};</div><div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160;</div><div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160;</div><div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160;<span class="comment">// Error notification and Exceptions</span></div><div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160;<span class="comment">// =================================</span></div><div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160;</div><div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160;</div><div class="line"><a name="l01226"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#ae4a7c9347994883250dc440566eb9f52"> 1226</a></span>&#160;<span class="keyword">typedef</span> XMP_Uns8 <a class="code" href="XMP__Const_8h.html#ae4a7c9347994883250dc440566eb9f52">XMP_ErrorSeverity</a>;</div><div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160;</div><div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160;<span class="keyword">enum</span> {</div><div class="line"><a name="l01231"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a068fdc8c88dcce62a7b42788a572af61"> 1231</a></span>&#160; <a class="code" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a068fdc8c88dcce62a7b42788a572af61">kXMPErrSev_Recoverable</a> = 0,</div><div class="line"><a name="l01233"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960afb962bdcf570af9aef4e32b5f279d1a4"> 1233</a></span>&#160; <a class="code" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960afb962bdcf570af9aef4e32b5f279d1a4">kXMPErrSev_OperationFatal</a> = 1,</div><div class="line"><a name="l01235"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a2bd1ff3ba036640f0c76d68a03cf94f7"> 1235</a></span>&#160; <a class="code" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a2bd1ff3ba036640f0c76d68a03cf94f7">kXMPErrSev_FileFatal</a> = 2,</div><div class="line"><a name="l01237"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a768126806f8c7b7c107314610125deb3"> 1237</a></span>&#160; <a class="code" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a768126806f8c7b7c107314610125deb3">kXMPErrSev_ProcessFatal</a> = 3</div><div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160;};</div><div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160;</div><div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160;<span class="comment">// -------------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01265"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#abb3c238ce96e9198ebe4260200bfb67b"> 1265</a></span>&#160;<span class="keyword">typedef</span> bool (* <a class="code" href="XMP__Const_8h.html#abb3c238ce96e9198ebe4260200bfb67b">XMPMeta_ErrorCallbackProc</a>) ( <span class="keywordtype">void</span>* context, XMP_ErrorSeverity severity, XMP_Int32 cause, XMP_StringPtr message );</div><div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160;</div><div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160;<span class="comment">// -------------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01301"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a7bed3dd93335821e5afa0ac2b07a9640"> 1301</a></span>&#160;<span class="keyword">typedef</span> bool (* <a class="code" href="XMP__Const_8h.html#a7bed3dd93335821e5afa0ac2b07a9640">XMPFiles_ErrorCallbackProc</a>) ( <span class="keywordtype">void</span>* context, XMP_StringPtr filePath, XMP_ErrorSeverity severity, XMP_Int32 cause, XMP_StringPtr message );</div><div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160;</div><div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160;<span class="comment">// -------------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01306"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a32cbbc2b93eb9028d441ecb4223eb2a4"> 1306</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a> (* <a class="code" href="XMP__Const_8h.html#a32cbbc2b93eb9028d441ecb4223eb2a4">XMPMeta_ErrorCallbackWrapper</a>) ( <a class="code" href="XMP__Const_8h.html#abb3c238ce96e9198ebe4260200bfb67b">XMPMeta_ErrorCallbackProc</a> clientProc, <span class="keywordtype">void</span>* context,</div><div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160; XMP_ErrorSeverity severity, XMP_Int32 cause, XMP_StringPtr message );</div><div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160;</div><div class="line"><a name="l01309"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a24670f4db8bda6e113612fa0c81ffe6b"> 1309</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a> (* <a class="code" href="XMP__Const_8h.html#a24670f4db8bda6e113612fa0c81ffe6b">XMPFiles_ErrorCallbackWrapper</a>) ( <a class="code" href="XMP__Const_8h.html#a7bed3dd93335821e5afa0ac2b07a9640">XMPFiles_ErrorCallbackProc</a> clientProc, <span class="keywordtype">void</span>* context,</div><div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160; XMP_StringPtr filePath, XMP_ErrorSeverity severity,</div><div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160; XMP_Int32 cause, XMP_StringPtr message );</div><div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160;</div><div class="line"><a name="l01314"></a><span class="lineno"><a class="line" href="classXMP__Error.html"> 1314</a></span>&#160;<span class="keyword">class </span><a class="code" href="classXMP__Error.html">XMP_Error</a> {</div><div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160;</div><div class="line"><a name="l01323"></a><span class="lineno"><a class="line" href="classXMP__Error.html#aa8b3b859899759d679b00237254e30aa"> 1323</a></span>&#160; <a class="code" href="classXMP__Error.html#aa8b3b859899759d679b00237254e30aa">XMP_Error</a> ( XMP_Int32 _id, XMP_StringPtr _errMsg ) : id(_id), errMsg(_errMsg), notified(false) {};</div><div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160;</div><div class="line"><a name="l01326"></a><span class="lineno"><a class="line" href="classXMP__Error.html#a56aaa6fc6644ccfc9470ae1af8f3a8cd"> 1326</a></span>&#160; <span class="keyword">inline</span> XMP_Int32 <a class="code" href="classXMP__Error.html#a56aaa6fc6644ccfc9470ae1af8f3a8cd">GetID</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> id; };</div><div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160;</div><div class="line"><a name="l01329"></a><span class="lineno"><a class="line" href="classXMP__Error.html#a9a3560c67612dec9a6ca37c34eb2c153"> 1329</a></span>&#160; <span class="keyword">inline</span> XMP_StringPtr <a class="code" href="classXMP__Error.html#a9a3560c67612dec9a6ca37c34eb2c153">GetErrMsg</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> errMsg; };</div><div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160;</div><div class="line"><a name="l01332"></a><span class="lineno"><a class="line" href="classXMP__Error.html#a5a0651a9615a6a60e467a96ddb43a6bb"> 1332</a></span>&#160; <span class="keyword">inline</span> XMP_Bool <a class="code" href="classXMP__Error.html#a5a0651a9615a6a60e467a96ddb43a6bb">IsNotified</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> notified; }</div><div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160;</div><div class="line"><a name="l01335"></a><span class="lineno"><a class="line" href="classXMP__Error.html#a9c368db94ca63ad7b9b118051d1f8897"> 1335</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classXMP__Error.html#a9c368db94ca63ad7b9b118051d1f8897">SetNotified</a>() { notified = <span class="keyword">true</span>; };</div><div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160;</div><div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160; XMP_Int32 id;</div><div class="line"><a name="l01342"></a><span class="lineno"><a class="line" href="classXMP__Error.html#a31fd80098e50026985e05abd16f3e045"> 1342</a></span>&#160; XMP_StringPtr <a class="code" href="classXMP__Error.html#a31fd80098e50026985e05abd16f3e045">errMsg</a>;</div><div class="line"><a name="l01344"></a><span class="lineno"><a class="line" href="classXMP__Error.html#a2b884dfb0b39689d1cf95105eadc4571"> 1344</a></span>&#160; XMP_Bool <a class="code" href="classXMP__Error.html#a2b884dfb0b39689d1cf95105eadc4571">notified</a>;</div><div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160;};</div><div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160;</div><div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160;<span class="keyword">enum</span> {</div><div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160;</div><div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160; <span class="comment">// --------------------</span></div><div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01354"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ae2aec0f3b8db282cbba40e4bcf746ba9"> 1354</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ae2aec0f3b8db282cbba40e4bcf746ba9">kXMPErr_NoError</a> = -1,</div><div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160;</div><div class="line"><a name="l01357"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14813595824de97382fffeae7b6fe581"> 1357</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14813595824de97382fffeae7b6fe581">kXMPErr_Unknown</a> = 0,</div><div class="line"><a name="l01359"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409acd9fa1b621efafd5b218e3a785cbeda1"> 1359</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409acd9fa1b621efafd5b218e3a785cbeda1">kXMPErr_TBD</a> = 1,</div><div class="line"><a name="l01361"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac7ac408582c194cc723a24acb8b4e4c3"> 1361</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac7ac408582c194cc723a24acb8b4e4c3">kXMPErr_Unavailable</a> = 2,</div><div class="line"><a name="l01363"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a115f3d761d2cad952aab23f35cbdf3a1"> 1363</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a115f3d761d2cad952aab23f35cbdf3a1">kXMPErr_BadObject</a> = 3,</div><div class="line"><a name="l01365"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a52d197a8b0af3c55f16958162a4132f1"> 1365</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a52d197a8b0af3c55f16958162a4132f1">kXMPErr_BadParam</a> = 4,</div><div class="line"><a name="l01367"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a716956a038782e595ce61d3fbdd1a25a"> 1367</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a716956a038782e595ce61d3fbdd1a25a">kXMPErr_BadValue</a> = 5,</div><div class="line"><a name="l01369"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14bd6c24087d280c722c1a044eec27d6"> 1369</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14bd6c24087d280c722c1a044eec27d6">kXMPErr_AssertFailure</a> = 6,</div><div class="line"><a name="l01371"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa856bb36a9742d8542b483e00fc6511b"> 1371</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa856bb36a9742d8542b483e00fc6511b">kXMPErr_EnforceFailure</a> = 7,</div><div class="line"><a name="l01373"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a3de1ac8f4e4afb705d5a4654cb9579e2"> 1373</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a3de1ac8f4e4afb705d5a4654cb9579e2">kXMPErr_Unimplemented</a> = 8,</div><div class="line"><a name="l01375"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a8babbd758d2c64fd04e85fa48e0675c0"> 1375</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a8babbd758d2c64fd04e85fa48e0675c0">kXMPErr_InternalFailure</a> = 9,</div><div class="line"><a name="l01377"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14342c486ddf394ebc110a446becbfa7"> 1377</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14342c486ddf394ebc110a446becbfa7">kXMPErr_Deprecated</a> = 10,</div><div class="line"><a name="l01379"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a82941dc15c6ccde6b8fb2f9cc85c2eeb"> 1379</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a82941dc15c6ccde6b8fb2f9cc85c2eeb">kXMPErr_ExternalFailure</a> = 11,</div><div class="line"><a name="l01381"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4ba7b1a57629e4994a0f7a515d51195"> 1381</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4ba7b1a57629e4994a0f7a515d51195">kXMPErr_UserAbort</a> = 12,</div><div class="line"><a name="l01383"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5322df07e2a7792824d2468c4837f1cb"> 1383</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5322df07e2a7792824d2468c4837f1cb">kXMPErr_StdException</a> = 13,</div><div class="line"><a name="l01385"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aac7558097a1f5a0f99097199f1bf8ff4"> 1385</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aac7558097a1f5a0f99097199f1bf8ff4">kXMPErr_UnknownException</a> = 14,</div><div class="line"><a name="l01387"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a69eb7fef422fbca62cdbc554afffd813"> 1387</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a69eb7fef422fbca62cdbc554afffd813">kXMPErr_NoMemory</a> = 15,</div><div class="line"><a name="l01389"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5227060f282a86c8ea1a944107751dd1"> 1389</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5227060f282a86c8ea1a944107751dd1">kXMPErr_ProgressAbort</a> = 16,</div><div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160;</div><div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160; <span class="comment">// ------------------------------------</span></div><div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160; <span class="comment">// More specific parameter error codes.</span></div><div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160;</div><div class="line"><a name="l01395"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2bc66eec6ce830979089d5c336f75539"> 1395</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2bc66eec6ce830979089d5c336f75539">kXMPErr_BadSchema</a> = 101,</div><div class="line"><a name="l01397"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a3f1efec0aa5452f43c55c05aba616ef7"> 1397</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a3f1efec0aa5452f43c55c05aba616ef7">kXMPErr_BadXPath</a> = 102,</div><div class="line"><a name="l01399"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a40ca77d98bd366442bb8d438c420a444"> 1399</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a40ca77d98bd366442bb8d438c420a444">kXMPErr_BadOptions</a> = 103,</div><div class="line"><a name="l01401"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a31adb57da79b4fb1f1f5f999ec740010"> 1401</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a31adb57da79b4fb1f1f5f999ec740010">kXMPErr_BadIndex</a> = 104,</div><div class="line"><a name="l01403"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2584fc813bfcd9158b7adf28a3454bb9"> 1403</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2584fc813bfcd9158b7adf28a3454bb9">kXMPErr_BadIterPosition</a> = 105,</div><div class="line"><a name="l01405"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a052b1b525fba7da8c98be5c135f434b8"> 1405</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a052b1b525fba7da8c98be5c135f434b8">kXMPErr_BadParse</a> = 106,</div><div class="line"><a name="l01407"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4f936ff6788ce17f6098b7cbda77ed9"> 1407</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4f936ff6788ce17f6098b7cbda77ed9">kXMPErr_BadSerialize</a> = 107,</div><div class="line"><a name="l01409"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa0a05e07925d1f3daf5f36f6da0840f8"> 1409</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa0a05e07925d1f3daf5f36f6da0840f8">kXMPErr_BadFileFormat</a> = 108,</div><div class="line"><a name="l01411"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a10fa053f279fed01b075f34a70f11795"> 1411</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a10fa053f279fed01b075f34a70f11795">kXMPErr_NoFileHandler</a> = 109,</div><div class="line"><a name="l01413"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa9c1c20e53db12b20068d830a8990c0b"> 1413</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa9c1c20e53db12b20068d830a8990c0b">kXMPErr_TooLargeForJPEG</a> = 110,</div><div class="line"><a name="l01415"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2874a5dcddf253a17d75a147b2ed4933"> 1415</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2874a5dcddf253a17d75a147b2ed4933">kXMPErr_NoFile</a> = 111,</div><div class="line"><a name="l01417"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a577b0e80acf44125f0dc49e5885e0824"> 1417</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a577b0e80acf44125f0dc49e5885e0824">kXMPErr_FilePermission</a> = 112,</div><div class="line"><a name="l01419"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa2f19dfd8ce27b5713c79e34f2052e40"> 1419</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa2f19dfd8ce27b5713c79e34f2052e40">kXMPErr_DiskSpace</a> = 113,</div><div class="line"><a name="l01421"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2a17df0c0b690f5b7829bc4ca16efce2"> 1421</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2a17df0c0b690f5b7829bc4ca16efce2">kXMPErr_ReadError</a> = 114,</div><div class="line"><a name="l01423"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409afca1d169d7e3cb3ba84c81700c1b9b22"> 1423</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409afca1d169d7e3cb3ba84c81700c1b9b22">kXMPErr_WriteError</a> = 115,</div><div class="line"><a name="l01425"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aacc6262e9c1fd1a64e3d10cedfb7dcb1"> 1425</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aacc6262e9c1fd1a64e3d10cedfb7dcb1">kXMPErr_BadBlockFormat</a> = 116,</div><div class="line"><a name="l01427"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a0819111429c734ca5ef895c193846351"> 1427</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a0819111429c734ca5ef895c193846351">kXMPErr_FilePathNotAFile</a> = 117,</div><div class="line"><a name="l01429"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad9d8c98663e3ead894841807ab4548f8"> 1429</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad9d8c98663e3ead894841807ab4548f8">kXMPErr_RejectedFileExtension</a> = 118,</div><div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160;</div><div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160; <span class="comment">// -----------------------------------------------</span></div><div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160; <span class="comment">// File format and internal structure error codes.</span></div><div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160;</div><div class="line"><a name="l01435"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac57f1cf1c24778536fd32972e87334c5"> 1435</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac57f1cf1c24778536fd32972e87334c5">kXMPErr_BadXML</a> = 201,</div><div class="line"><a name="l01437"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5464b823e619618d9aa58433cdb45a8e"> 1437</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5464b823e619618d9aa58433cdb45a8e">kXMPErr_BadRDF</a> = 202,</div><div class="line"><a name="l01439"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a211bb632ed1264d9e2236f35c6414821"> 1439</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a211bb632ed1264d9e2236f35c6414821">kXMPErr_BadXMP</a> = 203,</div><div class="line"><a name="l01441"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a078c69d0d76f25187a11981a2552b179"> 1441</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a078c69d0d76f25187a11981a2552b179">kXMPErr_EmptyIterator</a> = 204,</div><div class="line"><a name="l01443"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4cf86fa29624c5e19111e09a97fe05f"> 1443</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4cf86fa29624c5e19111e09a97fe05f">kXMPErr_BadUnicode</a> = 205,</div><div class="line"><a name="l01445"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aecd25299aa177de7bc7f3674fcf2e22d"> 1445</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aecd25299aa177de7bc7f3674fcf2e22d">kXMPErr_BadTIFF</a> = 206,</div><div class="line"><a name="l01447"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad685e1f839e3bc53dfc55611a0803cee"> 1447</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad685e1f839e3bc53dfc55611a0803cee">kXMPErr_BadJPEG</a> = 207,</div><div class="line"><a name="l01449"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad98fc9a9c050e9fc19c3af9c8abb2d6d"> 1449</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad98fc9a9c050e9fc19c3af9c8abb2d6d">kXMPErr_BadPSD</a> = 208,</div><div class="line"><a name="l01451"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a1606a687cb790af16dc561b2a8f2e6a3"> 1451</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a1606a687cb790af16dc561b2a8f2e6a3">kXMPErr_BadPSIR</a> = 209,</div><div class="line"><a name="l01453"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a23b2d7cab10b3d80549e6b60855bb15e"> 1453</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a23b2d7cab10b3d80549e6b60855bb15e">kXMPErr_BadIPTC</a> = 210,</div><div class="line"><a name="l01455"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad596daed4ac92f8bf7871669d03effad"> 1455</a></span>&#160; <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad596daed4ac92f8bf7871669d03effad">kXMPErr_BadMPEG</a> = 211</div><div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>&#160;</div><div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>&#160;};</div><div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>&#160;</div><div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>&#160;</div><div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>&#160;<span class="comment">// Client callbacks</span></div><div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160;<span class="comment">// ================</span></div><div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>&#160;</div><div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>&#160;<span class="comment">// -------------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>&#160;</div><div class="line"><a name="l01474"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a05b81829c04746826f4f85fbac76e3dd"> 1474</a></span>&#160;<span class="keyword">typedef</span> XMP_Int32 <a class="code" href="XMP__Const_8h.html#a05b81829c04746826f4f85fbac76e3dd">XMP_Status</a>;</div><div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>&#160;</div><div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>&#160;<span class="comment">// -------------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01493"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#aa55bae1e6be4ddcefbaf214942e5b272"> 1493</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="XMP__Const_8h.html#a05b81829c04746826f4f85fbac76e3dd">XMP_Status</a> (* <a class="code" href="XMP__Const_8h.html#aa55bae1e6be4ddcefbaf214942e5b272">XMP_TextOutputProc</a>) ( <span class="keywordtype">void</span> * refCon,</div><div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>&#160; XMP_StringPtr buffer,</div><div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>&#160; XMP_StringLen bufferSize );</div><div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>&#160;</div><div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160;<span class="comment">// -------------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01507"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#ac2434559f67332b9d23021b894da838c"> 1507</a></span>&#160;<span class="keyword">typedef</span> bool (* <a class="code" href="XMP__Const_8h.html#ac2434559f67332b9d23021b894da838c">XMP_AbortProc</a>) ( <span class="keywordtype">void</span> * arg );</div><div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>&#160;</div><div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>&#160;<span class="comment">// -------------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01530"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a01973e700ac2ba7f3debef340ccaa663"> 1530</a></span>&#160;<span class="keyword">typedef</span> bool (* <a class="code" href="XMP__Const_8h.html#a01973e700ac2ba7f3debef340ccaa663">XMP_ProgressReportProc</a>) ( <span class="keywordtype">void</span> * context, <span class="keywordtype">float</span> elapsedTime, <span class="keywordtype">float</span> fractionDone, <span class="keywordtype">float</span> secondsToGo );</div><div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>&#160;</div><div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>&#160;<span class="comment">// -------------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01535"></a><span class="lineno"><a class="line" href="XMP__Const_8h.html#a61eb4db5a58902c130d3b3929db624db"> 1535</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a> (* <a class="code" href="XMP__Const_8h.html#a61eb4db5a58902c130d3b3929db624db">XMP_ProgressReportWrapper</a>) ( <a class="code" href="XMP__Const_8h.html#a01973e700ac2ba7f3debef340ccaa663">XMP_ProgressReportProc</a> proc, <span class="keywordtype">void</span> * context,</div><div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>&#160; <span class="keywordtype">float</span> elapsedTime, <span class="keywordtype">float</span> fractionDone, <span class="keywordtype">float</span> secondsToGo );</div><div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>&#160;</div><div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>&#160;</div><div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>&#160;<span class="comment">// Stuff with no better place to be</span></div><div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>&#160;<span class="comment">// ================================</span></div><div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>&#160;</div><div class="line"><a name="l01545"></a><span class="lineno"><a class="line" href="structXMP__VersionInfo.html"> 1545</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structXMP__VersionInfo.html">XMP_VersionInfo</a> {</div><div class="line"><a name="l01547"></a><span class="lineno"><a class="line" href="structXMP__VersionInfo.html#a7edfa1613a58a248fd15267008bd8afb"> 1547</a></span>&#160; XMP_Uns8 <a class="code" href="structXMP__VersionInfo.html#a7edfa1613a58a248fd15267008bd8afb">major</a>;</div><div class="line"><a name="l01549"></a><span class="lineno"><a class="line" href="structXMP__VersionInfo.html#af5b56598e15febd742b431dadae7c317"> 1549</a></span>&#160; XMP_Uns8 <a class="code" href="structXMP__VersionInfo.html#af5b56598e15febd742b431dadae7c317">minor</a>;</div><div class="line"><a name="l01551"></a><span class="lineno"><a class="line" href="structXMP__VersionInfo.html#a4b448a8253e26a37d2df35e04ac25d28"> 1551</a></span>&#160; XMP_Uns8 <a class="code" href="structXMP__VersionInfo.html#a4b448a8253e26a37d2df35e04ac25d28">micro</a>;</div><div class="line"><a name="l01553"></a><span class="lineno"><a class="line" href="structXMP__VersionInfo.html#af1643d86f32f5a5a275dc9c5ba843018"> 1553</a></span>&#160; XMP_Bool <a class="code" href="structXMP__VersionInfo.html#af1643d86f32f5a5a275dc9c5ba843018">isDebug</a>;</div><div class="line"><a name="l01555"></a><span class="lineno"><a class="line" href="structXMP__VersionInfo.html#a0e20a6bf10da4c17bdfc8027f1586ffc"> 1555</a></span>&#160; XMP_Uns32 <a class="code" href="structXMP__VersionInfo.html#a0e20a6bf10da4c17bdfc8027f1586ffc">build</a>;</div><div class="line"><a name="l01557"></a><span class="lineno"><a class="line" href="structXMP__VersionInfo.html#ad018f35b382046ca77b1252bafa93f74"> 1557</a></span>&#160; XMP_Uns32 <a class="code" href="structXMP__VersionInfo.html#ad018f35b382046ca77b1252bafa93f74">flags</a>;</div><div class="line"><a name="l01559"></a><span class="lineno"><a class="line" href="structXMP__VersionInfo.html#a19654242b92bffd7517e92882850e834"> 1559</a></span>&#160; XMP_StringPtr <a class="code" href="structXMP__VersionInfo.html#a19654242b92bffd7517e92882850e834">message</a>;</div><div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>&#160;} <a class="code" href="XMP__Const_8h.html#a57250ff934e642191654ae49c3a2c6c9">XMP_VersionInfo</a>;</div><div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>&#160;</div><div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>&#160;</div><div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>&#160;<span class="preprocessor">#if __cplusplus</span></div><div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>&#160;} <span class="comment">// extern &quot;C&quot;</span></div><div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>&#160;</div><div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>&#160;<span class="preprocessor">#endif // __XMP_Const_h__</span></div><div class="ttc" id="XMP__Const_8h_html_adc29c2ff13d900c2f185ee95427fb06ca79b36427b7bf0c0a1ed010a44dec2d3e"><div class="ttname"><a href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca79b36427b7bf0c0a1ed010a44dec2d3e">kXMP_ParseMoreBuffers</a></div><div class="ttdoc">This is the not last input buffer for this parse stream. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00705">XMP_Const.h:705</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035dac989381d37de320495e4d13f9ecc6371"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dac989381d37de320495e4d13f9ecc6371">kXMP_PNGFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;PNG &amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00895">XMP_Const.h:895</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a9f7dcc184f901c713274edfdac5bcc9a"><div class="ttname"><a href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a></div><div class="ttdeci">XMP_Uns32 XMP_StringLen</div><div class="ttdoc">The type for string length parameters. A 32-bit unsigned integer, as big as will be practically neede...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00170">XMP_Const.h:170</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a00e9d9a76c144421105a4c2742203315"><div class="ttname"><a href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a></div><div class="ttdeci">XMP_Int32 XMP_Index</div><div class="ttdoc">The type for offsets and indices. A 32-bit signed integer. It is signed to allow -1 for loop terminat...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00171">XMP_Const.h:171</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a61dadd085c1777f559549e05962b2c9eae0137d98ea990fa23d292489031ba09e"><div class="ttname"><a href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eae0137d98ea990fa23d292489031ba09e">kXMP_EncodeUTF32Little</a></div><div class="ttdoc">Use UTF13 little-endian encoding. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00764">XMP_Const.h:764</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035daeff4f68cd5162370f7bf938a868e280d"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daeff4f68cd5162370f7bf938a868e280d">kXMP_PremiereProjectFile</a></div><div class="ttdoc">Adobe application file format constant: &amp;#39;PRPJ&amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00976">XMP_Const.h:976</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a61dadd085c1777f559549e05962b2c9eaeb79571cac99ee97feefb0347b1c1845"><div class="ttname"><a href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eaeb79571cac99ee97feefb0347b1c1845">kXMP_EncodingMask</a></div><div class="ttdoc">Bit-flag mask for encoding-type bits. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00749">XMP_Const.h:749</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a61dadd085c1777f559549e05962b2c9ea79230f1d70d2625f7650db6ff5b1ea29"><div class="ttname"><a href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea79230f1d70d2625f7650db6ff5b1ea29">kXMP_OmitAllFormatting</a></div><div class="ttdoc">Omit all formatting whitespace. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00736">XMP_Const.h:736</a></div></div>
+<div class="ttc" id="structXMP__DateTime_html_a1dd34cdab96f55c120b3289db32bdd1e"><div class="ttname"><a href="structXMP__DateTime.html#a1dd34cdab96f55c120b3289db32bdd1e">XMP_DateTime::hasTimeZone</a></div><div class="ttdeci">XMP_Bool hasTimeZone</div><div class="ttdoc">Is the time zone meaningful? </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00250">XMP_Const.h:250</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_ad439e3ceeb4590d310f6125aa12c6df6"><div class="ttname"><a href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a></div><div class="ttdeci">const char * XMP_StringPtr</div><div class="ttdoc">The type for input string parameters. A const char *, a null-terminated UTF-8 string. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00169">XMP_Const.h:169</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409aecd25299aa177de7bc7f3674fcf2e22d"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aecd25299aa177de7bc7f3674fcf2e22d">kXMPErr_BadTIFF</a></div><div class="ttdoc">TIFF format error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01445">XMP_Const.h:1445</a></div></div>
+<div class="ttc" id="structXMP__DateTime_html_a2db713deacfd5a5cb2deea660ca2ccad"><div class="ttname"><a href="structXMP__DateTime.html#a2db713deacfd5a5cb2deea660ca2ccad">XMP_DateTime::year</a></div><div class="ttdeci">XMP_Int32 year</div><div class="ttdoc">The year, can be negative. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00226">XMP_Const.h:226</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da64fe7908df6341e13d9d8c8199cdf852"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da64fe7908df6341e13d9d8c8199cdf852">kXMP_XDCAM_SAMFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;XDCS&amp;#39;, a collection not really a single file. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00937">XMP_Const.h:937</a></div></div>
+<div class="ttc" id="structXMP__PacketInfo_html_a66845c1d5f3f9f36a1543a7322bd7bd1"><div class="ttname"><a href="structXMP__PacketInfo.html#a66845c1d5f3f9f36a1543a7322bd7bd1">XMP_PacketInfo::writeable</a></div><div class="ttdeci">XMP_Bool writeable</div><div class="ttdoc">True if there is a packet wrapper and the trailer says writeable by dumb packet scanners. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01080">XMP_Const.h:1080</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a726ca809ffd3d67ab4b8476646f26635aa0643c076a3b3737ff88ed20f16afd2b"><div class="ttname"><a href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635aa0643c076a3b3737ff88ed20f16afd2b">kXMP_IterProperties</a></div><div class="ttdoc">Iterate the property tree of a TXMPMeta object. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00777">XMP_Const.h:777</a></div></div>
+<div class="ttc" id="structXMP__DateTime_html_a58496718277eea9dc5e3e19d80a69094"><div class="ttname"><a href="structXMP__DateTime.html#a58496718277eea9dc5e3e19d80a69094">XMP_DateTime::day</a></div><div class="ttdeci">XMP_Int32 day</div><div class="ttdoc">The day of the month in the range 1..31. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00232">XMP_Const.h:232</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abb3c238ce96e9198ebe4260200bfb67b"><div class="ttname"><a href="XMP__Const_8h.html#abb3c238ce96e9198ebe4260200bfb67b">XMPMeta_ErrorCallbackProc</a></div><div class="ttdeci">bool(* XMPMeta_ErrorCallbackProc)(void *context, XMP_ErrorSeverity severity, XMP_Int32 cause, XMP_StringPtr message)</div><div class="ttdoc">The signature of a client-defined callback for TXMPMeta error notifications. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01265">XMP_Const.h:1265</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a211bb632ed1264d9e2236f35c6414821"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a211bb632ed1264d9e2236f35c6414821">kXMPErr_BadXMP</a></div><div class="ttdoc">XMP format error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01439">XMP_Const.h:1439</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409ac4ba7b1a57629e4994a0f7a515d51195"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4ba7b1a57629e4994a0f7a515d51195">kXMPErr_UserAbort</a></div><div class="ttdoc">Generic user abort error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01381">XMP_Const.h:1381</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_aa55bae1e6be4ddcefbaf214942e5b272"><div class="ttname"><a href="XMP__Const_8h.html#aa55bae1e6be4ddcefbaf214942e5b272">XMP_TextOutputProc</a></div><div class="ttdeci">XMP_Status(* XMP_TextOutputProc)(void *refCon, XMP_StringPtr buffer, XMP_StringLen bufferSize)</div><div class="ttdoc">The signature of a client-defined callback for text output from XMP Toolkit debugging operations...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01493">XMP_Const.h:1493</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a052b1b525fba7da8c98be5c135f434b8"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a052b1b525fba7da8c98be5c135f434b8">kXMPErr_BadParse</a></div><div class="ttdoc">XML parsing error (deprecated) </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01405">XMP_Const.h:1405</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_aaf105ae5beaca1dee30ae54530691fceab55e1873e67048928de3fc47550678c3"><div class="ttname"><a href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceab55e1873e67048928de3fc47550678c3">kXMPFiles_PrefersInPlace</a></div><div class="ttdoc">Can expand, but prefers in-place update. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01122">XMP_Const.h:1122</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035dafa11d905db1236494e555956cb2f90ef"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafa11d905db1236494e555956cb2f90ef">kXMP_CanonXFFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;CNXF&amp;#39;, a collection not really a single file. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00945">XMP_Const.h:945</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a99fb83031ce9923c84392b4e92f956b5a2596b1f0ea4600270c99102c86b5f1f1"><div class="ttname"><a href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a2596b1f0ea4600270c99102c86b5f1f1">kXMP_PropArrayIsAlternate</a></div><div class="ttdoc">Implies kXMP_PropArrayIsOrdered, items are alternates. It is serialized using an rdf:Alt container...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00617">XMP_Const.h:617</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a61dadd085c1777f559549e05962b2c9ea0b659b3b544c7a5a076fbd3132cd7f7a"><div class="ttname"><a href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea0b659b3b544c7a5a076fbd3132cd7f7a">kXMP_IncludeThumbnailPad</a></div><div class="ttdoc">Include a padding allowance for a thumbnail image. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00730">XMP_Const.h:730</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da82935c41c6222ff4cca954278f18e554"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da82935c41c6222ff4cca954278f18e554">kXMP_IllustratorFile</a></div><div class="ttdoc">Adobe application file format constant: &amp;#39;AI &amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00964">XMP_Const.h:964</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409ad98fc9a9c050e9fc19c3af9c8abb2d6d"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad98fc9a9c050e9fc19c3af9c8abb2d6d">kXMPErr_BadPSD</a></div><div class="ttdoc">PSD format error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01449">XMP_Const.h:1449</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adf764cbdea00d65edcd07bb9953ad2b7a68851b70cc1d2346fa21bc0b0ae6cfec"><div class="ttname"><a href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a68851b70cc1d2346fa21bc0b0ae6cfec">kXMP_TimeEastOfUTC</a></div><div class="ttdoc">Time zone is east of UTC. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00279">XMP_Const.h:279</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a61dadd085c1777f559549e05962b2c9ea041dc6b7b8684be7112ae40f5f259ebb"><div class="ttname"><a href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea041dc6b7b8684be7112ae40f5f259ebb">kXMP_UseCompactFormat</a></div><div class="ttdoc">Use a compact form of RDF. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00724">XMP_Const.h:724</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc6126af1d45847bc59afa0aa3216b04a98cedd5fa29d47abb2ac8903ac7f5a05"><div class="ttname"><a href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04a98cedd5fa29d47abb2ac8903ac7f5a05">kXMP_InsertAfterItem</a></div><div class="ttdoc">Option for array item location: Insert a new item after the given index. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00683">XMP_Const.h:683</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a31adb57da79b4fb1f1f5f999ec740010"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a31adb57da79b4fb1f1f5f999ec740010">kXMPErr_BadIndex</a></div><div class="ttdoc">Bad index parameter. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01401">XMP_Const.h:1401</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_ab04a0655cd1e3bcac5e8f48c18df1a57a9dac536fe6ee25de76d45bf6615abd46"><div class="ttname"><a href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a9dac536fe6ee25de76d45bf6615abd46">kXMPTemplate_ClearUnnamedProperties</a></div><div class="ttdoc">Perform a Clear operation, keep named properties and delete everything else. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00841">XMP_Const.h:841</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_aaf105ae5beaca1dee30ae54530691fcea126c9cc056f6569c424431edbcb9521c"><div class="ttname"><a href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea126c9cc056f6569c424431edbcb9521c">kXMPFiles_CanExpand</a></div><div class="ttdoc">Can expand XMP or other metadata in an existing file. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01116">XMP_Const.h:1116</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a99fb83031ce9923c84392b4e92f956b5a81dcd06251771a0ddee6c1e36128c65c"><div class="ttname"><a href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a81dcd06251771a0ddee6c1e36128c65c">kXMP_PropIsStable</a></div><div class="ttdoc">The value of this property is not derived from the document content. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00644">XMP_Const.h:644</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a61dadd085c1777f559549e05962b2c9ea793e99d9ea83f0aadd5b4193a95ea713"><div class="ttname"><a href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea793e99d9ea83f0aadd5b4193a95ea713">kXMP_EncodeUTF32Big</a></div><div class="ttdoc">Use UTF32 big-endian encoding. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00761">XMP_Const.h:761</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a80155586fa275b28773c9b203f52cabaa0bef4db2ecdaf82a85df9e9d417aab18"><div class="ttname"><a href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa0bef4db2ecdaf82a85df9e9d417aab18">kXMPFiles_OpenStrictly</a></div><div class="ttdoc">Be strict about only attempting to use the designated file handler, no fallback to other handlers...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01172">XMP_Const.h:1172</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da79cbf96ecc4ac3e0ebfb2d182bc75e60"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da79cbf96ecc4ac3e0ebfb2d182bc75e60">kXMP_InDesignFile</a></div><div class="ttdoc">Adobe application file format constant: &amp;#39;INDD&amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00966">XMP_Const.h:966</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a078c69d0d76f25187a11981a2552b179"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a078c69d0d76f25187a11981a2552b179">kXMPErr_EmptyIterator</a></div><div class="ttdoc">Empty iterator. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01441">XMP_Const.h:1441</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035daebdb172c8a75b4ead2eff2d26ed3dc37"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daebdb172c8a75b4ead2eff2d26ed3dc37">kXMP_MOVFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;MOV &amp;#39;, Quicktime. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00905">XMP_Const.h:905</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_aa4bca98ad67d7a62c60cb13dbbab0f25"><div class="ttname"><a href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a></div><div class="ttdeci">struct __XMPFiles__ * XMPFilesRef</div><div class="ttdoc">An &quot;ABI safe&quot; pointer to the internal part of an XMP file-handling object. Use to pass an XMP file-ha...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00142">XMP_Const.h:142</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409aa0a05e07925d1f3daf5f36f6da0840f8"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa0a05e07925d1f3daf5f36f6da0840f8">kXMPErr_BadFileFormat</a></div><div class="ttdoc">File format error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01409">XMP_Const.h:1409</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035dadc0edf25d933c2a21b25449692c3ba08"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dadc0edf25d933c2a21b25449692c3ba08">kXMP_TIFFFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;TIFF&amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00891">XMP_Const.h:891</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a61dadd085c1777f559549e05962b2c9eadc8f241694f5a758e5ee3f6db69d02ab"><div class="ttname"><a href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadc8f241694f5a758e5ee3f6db69d02ab">kXMP_EncodeUTF8</a></div><div class="ttdoc">Use UTF8 encoding. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00752">XMP_Const.h:752</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_af9bdc3014f3d54c426b6d2df10de4960afb962bdcf570af9aef4e32b5f279d1a4"><div class="ttname"><a href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960afb962bdcf570af9aef4e32b5f279d1a4">kXMPErrSev_OperationFatal</a></div><div class="ttdoc">Recovery is not possible, an exception will be thrown aborting the API call. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01233">XMP_Const.h:1233</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035dada5b138722448c4d4595fe760668c3df"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dada5b138722448c4d4595fe760668c3df">kXMP_AEProjTemplateFile</a></div><div class="ttdoc">Adobe application file format constant: &amp;#39;AET &amp;#39;, After Effects Project Template. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00970">XMP_Const.h:970</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da851d2f4525d705cd2dcabb540d0ddc06"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da851d2f4525d705cd2dcabb540d0ddc06">kXMP_GIFFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;GIF &amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00893">XMP_Const.h:893</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_aad7fed121559de43b53067c0bcb9baae"><div class="ttname"><a href="XMP__Const_8h.html#aad7fed121559de43b53067c0bcb9baae">Min_XMP_Int8</a></div><div class="ttdeci">static const XMP_Int8 Min_XMP_Int8</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00118">XMP_Const.h:118</a></div></div>
+<div class="ttc" id="classXMP__Error_html_a56aaa6fc6644ccfc9470ae1af8f3a8cd"><div class="ttname"><a href="classXMP__Error.html#a56aaa6fc6644ccfc9470ae1af8f3a8cd">XMP_Error::GetID</a></div><div class="ttdeci">XMP_Int32 GetID() const </div><div class="ttdoc">Retrieves the numeric code from an XMP_Error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01326">XMP_Const.h:1326</a></div></div>
+<div class="ttc" id="structXMP__VersionInfo_html_af1643d86f32f5a5a275dc9c5ba843018"><div class="ttname"><a href="structXMP__VersionInfo.html#af1643d86f32f5a5a275dc9c5ba843018">XMP_VersionInfo::isDebug</a></div><div class="ttdeci">XMP_Bool isDebug</div><div class="ttdoc">A 0/1 boolean value, true if this is a debug build. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01553">XMP_Const.h:1553</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a385c44f6fb256e5716a2302a5b940388a8ddfb0572b7602a52e533d92d8b1e9fb"><div class="ttname"><a href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a8ddfb0572b7602a52e533d92d8b1e9fb">kXMPUtil_DoAllProperties</a></div><div class="ttdoc">Do all properties, default is just external properties. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00849">XMP_Const.h:849</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da4b3477bdc53fae1511104fc54f88d134"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da4b3477bdc53fae1511104fc54f88d134">kXMP_MXFFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;MXF &amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00925">XMP_Const.h:925</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a05b81829c04746826f4f85fbac76e3dd"><div class="ttname"><a href="XMP__Const_8h.html#a05b81829c04746826f4f85fbac76e3dd">XMP_Status</a></div><div class="ttdeci">XMP_Int32 XMP_Status</div><div class="ttdoc">A signed 32-bit integer used as a status result for the output callback routine, XMP_TextOutputProc. Zero means no error, all other values except -1 are private to the callback. The callback is wrapped to prevent exceptions being thrown across DLL boundaries. Any exceptions thrown out of the callback cause a return status of -1. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01474">XMP_Const.h:1474</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a99fb83031ce9923c84392b4e92f956b5a0d898ea7f6b3db513bb24f8a6a285877"><div class="ttname"><a href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a0d898ea7f6b3db513bb24f8a6a285877">kXMP_PropIsDerived</a></div><div class="ttdoc">The value of this property is derived from the document content. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00647">XMP_Const.h:647</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da1ad712bbd349dc899ca1e71971032b0a"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da1ad712bbd349dc899ca1e71971032b0a">kXMP_PremiereTitleFile</a></div><div class="ttdoc">Adobe application file format constant: &amp;#39;PRTL&amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00978">XMP_Const.h:978</a></div></div>
+<div class="ttc" id="structXMP__VersionInfo_html"><div class="ttname"><a href="structXMP__VersionInfo.html">XMP_VersionInfo</a></div><div class="ttdoc">XMP Toolkit version information. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01545">XMP_Const.h:1545</a></div></div>
+<div class="ttc" id="structXMP__DateTime_html_a675313c70a7e05b7ca50d21300b7d81b"><div class="ttname"><a href="structXMP__DateTime.html#a675313c70a7e05b7ca50d21300b7d81b">XMP_DateTime::second</a></div><div class="ttdeci">XMP_Int32 second</div><div class="ttdoc">The second in the range 0..59. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00241">XMP_Const.h:241</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035dab58eaebed494530072ad990ac7a9807a"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dab58eaebed494530072ad990ac7a9807a">kXMP_MPEG2File</a></div><div class="ttdoc">Public file format constant: &amp;#39;MP2 &amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00921">XMP_Const.h:921</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da542634e6051139c44fd7b92d08c64760"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da542634e6051139c44fd7b92d08c64760">kXMP_HTMLFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;HTML&amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00950">XMP_Const.h:950</a></div></div>
+<div class="ttc" id="structXMP__VersionInfo_html_af5b56598e15febd742b431dadae7c317"><div class="ttname"><a href="structXMP__VersionInfo.html#af5b56598e15febd742b431dadae7c317">XMP_VersionInfo::minor</a></div><div class="ttdeci">XMP_Uns8 minor</div><div class="ttdoc">The secondary release number, the &quot;2&quot; in version &quot;1.2.3&quot;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01549">XMP_Const.h:1549</a></div></div>
+<div class="ttc" id="structXMP__DateTime_html_a190c2a19f01e90997ec2973aec37712c"><div class="ttname"><a href="structXMP__DateTime.html#a190c2a19f01e90997ec2973aec37712c">XMP_DateTime::nanoSecond</a></div><div class="ttdeci">XMP_Int32 nanoSecond</div><div class="ttdoc">Nanoseconds within a second, often left as zero. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00263">XMP_Const.h:263</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a99fb83031ce9923c84392b4e92f956b5a48097c6ea309f240965d77ab564a5464"><div class="ttname"><a href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a48097c6ea309f240965d77ab564a5464">kXMP_PropIsInternal</a></div><div class="ttdoc">The value of this property is &quot;owned&quot; by the application, and should not generally be editable in a U...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00641">XMP_Const.h:641</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a14bd6c24087d280c722c1a044eec27d6"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14bd6c24087d280c722c1a044eec27d6">kXMPErr_AssertFailure</a></div><div class="ttdoc">Generic assertion failure. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01369">XMP_Const.h:1369</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da043afdc1db730db9ac03c505140c61c8"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da043afdc1db730db9ac03c505140c61c8">kXMP_MPEGFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;MPEG&amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00919">XMP_Const.h:919</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a80155586fa275b28773c9b203f52cabaa77f34b1873bb2584feabe26a2c8f1182"><div class="ttname"><a href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa77f34b1873bb2584feabe26a2c8f1182">kXMPFiles_OpenLimitedScanning</a></div><div class="ttdoc">Only packet scan files &quot;known&quot; to need scanning. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01181">XMP_Const.h:1181</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a99fb83031ce9923c84392b4e92f956b5a1f819ef281d1f52c4c12d5d02f49d3f0"><div class="ttname"><a href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a1f819ef281d1f52c4c12d5d02f49d3f0">kXMP_PropHasAliases</a></div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00638">XMP_Const.h:638</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adc83d1c8e3a881f2a1623f63a6cb9ff0"><div class="ttname"><a href="XMP__Const_8h.html#adc83d1c8e3a881f2a1623f63a6cb9ff0">kXMP_Bool_False</a></div><div class="ttdeci">const XMP_Uns8 kXMP_Bool_False</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00104">XMP_Const.h:104</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da455bc501088bbd8061fe3ea386a5066f"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da455bc501088bbd8061fe3ea386a5066f">kXMP_FLVFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;FLV &amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00902">XMP_Const.h:902</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a5783bb97f7a4837bf1938332d65804d8"><div class="ttname"><a href="XMP__Const_8h.html#a5783bb97f7a4837bf1938332d65804d8">Max_XMP_Int64</a></div><div class="ttdeci">static const XMP_Int64 Max_XMP_Int64</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00125">XMP_Const.h:125</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_ae8936caf3fa038bd64705caf6ab2329f"><div class="ttname"><a href="XMP__Const_8h.html#ae8936caf3fa038bd64705caf6ab2329f">Min_XMP_Uns32</a></div><div class="ttdeci">static const XMP_Uns32 Min_XMP_Uns32</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00113">XMP_Const.h:113</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da52c90935ee28a0875a49843d463cad70"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da52c90935ee28a0875a49843d463cad70">kXMP_PostScriptFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;PS &amp;#39;, general PostScript following DSC conventions. ...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00882">XMP_Const.h:882</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_ae5d5ff926903623a451ada7cb840d815"><div class="ttname"><a href="XMP__Const_8h.html#ae5d5ff926903623a451ada7cb840d815">Min_XMP_Uns16</a></div><div class="ttdeci">static const XMP_Uns16 Min_XMP_Uns16</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00111">XMP_Const.h:111</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a2584fc813bfcd9158b7adf28a3454bb9"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2584fc813bfcd9158b7adf28a3454bb9">kXMPErr_BadIterPosition</a></div><div class="ttdoc">Bad iteration position. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01403">XMP_Const.h:1403</a></div></div>
+<div class="ttc" id="structXMP__VersionInfo_html_a0e20a6bf10da4c17bdfc8027f1586ffc"><div class="ttname"><a href="structXMP__VersionInfo.html#a0e20a6bf10da4c17bdfc8027f1586ffc">XMP_VersionInfo::build</a></div><div class="ttdeci">XMP_Uns32 build</div><div class="ttdoc">A rolling build number, monotonically increasing in a release. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01555">XMP_Const.h:1555</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da45bf9b21d5ffed3594fbd585c47cc4fc"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da45bf9b21d5ffed3594fbd585c47cc4fc">kXMP_XDCAM_EXFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;XDCX&amp;#39;, a collection not really a single file. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00939">XMP_Const.h:939</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035daf3ee34ed2bc26dec0e2d572eeb0de89b"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf3ee34ed2bc26dec0e2d572eeb0de89b">kXMP_MP3File</a></div><div class="ttdoc">Public file format constant: &amp;#39;MP3 &amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00913">XMP_Const.h:913</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a7ed33c3b64b4f8a3950f4814487e30e4"><div class="ttname"><a href="XMP__Const_8h.html#a7ed33c3b64b4f8a3950f4814487e30e4">Max_XMP_Int16</a></div><div class="ttdeci">static const XMP_Int16 Max_XMP_Int16</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00121">XMP_Const.h:121</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_aaf105ae5beaca1dee30ae54530691fcea17578d45ae3c09a8d08189ea544052b1"><div class="ttname"><a href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea17578d45ae3c09a8d08189ea544052b1">kXMPFiles_CanNotifyProgress</a></div><div class="ttdoc">The file Handler is capable of notifying progress notifications. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01149">XMP_Const.h:1149</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc6126af1d45847bc59afa0aa3216b04ad1b42a8a4c479d9bfaf406b79f2e1465"><div class="ttname"><a href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04ad1b42a8a4c479d9bfaf406b79f2e1465">kXMP_PropValueOptionsMask</a></div><div class="ttdoc">Bit-flag mask for property-value option bits. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00689">XMP_Const.h:689</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e"><div class="ttname"><a href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e">kXMP_PropValueIsStruct</a></div><div class="ttdoc">The value is a structure with nested fields. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00604">XMP_Const.h:604</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a3de1ac8f4e4afb705d5a4654cb9579e2"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a3de1ac8f4e4afb705d5a4654cb9579e2">kXMPErr_Unimplemented</a></div><div class="ttdoc">Generic unimplemented error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01373">XMP_Const.h:1373</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a61dadd085c1777f559549e05962b2c9ea310e4cbf639e783163778566b439f01d"><div class="ttname"><a href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea310e4cbf639e783163778566b439f01d">kXMP_EncodeUTF16Big</a></div><div class="ttdoc">Use UTF16 big-endian encoding. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00755">XMP_Const.h:755</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a99fb83031ce9923c84392b4e92f956b5a30146ed5209f5c3eb4eeb1fd8e4fb9fe"><div class="ttname"><a href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a30146ed5209f5c3eb4eeb1fd8e4fb9fe">kXMP_PropIsQualifier</a></div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00592">XMP_Const.h:592</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da5fb9e99541bbb2d8e375d0cc9fd92a2e"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da5fb9e99541bbb2d8e375d0cc9fd92a2e">kXMP_AEProjectFile</a></div><div class="ttdoc">Adobe application file format constant: &amp;#39;AEP &amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00968">XMP_Const.h:968</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409acd9fa1b621efafd5b218e3a785cbeda1"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409acd9fa1b621efafd5b218e3a785cbeda1">kXMPErr_TBD</a></div><div class="ttdoc">Generic undefined error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01359">XMP_Const.h:1359</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409ad9d8c98663e3ead894841807ab4548f8"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad9d8c98663e3ead894841807ab4548f8">kXMPErr_RejectedFileExtension</a></div><div class="ttdoc">Rejected File extension. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01429">XMP_Const.h:1429</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a99fb83031ce9923c84392b4e92f956b5a8e34a33a2eed56499d4f6f62da25d159"><div class="ttname"><a href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a8e34a33a2eed56499d4f6f62da25d159">kXMP_PropHasQualifiers</a></div><div class="ttdoc">The property has qualifiers, includes rdf:type and xml:lang. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00586">XMP_Const.h:586</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a2874a5dcddf253a17d75a147b2ed4933"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2874a5dcddf253a17d75a147b2ed4933">kXMPErr_NoFile</a></div><div class="ttdoc">A file does not exist. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01415">XMP_Const.h:1415</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035dae3a6333624e5c292caf14ad849a5e26e"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dae3a6333624e5c292caf14ad849a5e26e">kXMP_AVIFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;AVI &amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00907">XMP_Const.h:907</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a84d76d32dd4ef90e5a90cf759b7e563fa4e179367a02390075e632aca6e115925"><div class="ttname"><a href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563fa4e179367a02390075e632aca6e115925">kXMP_SeekFromCurrent</a></div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00867">XMP_Const.h:867</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a99fb83031ce9923c84392b4e92f956b5a60a9f26fb66c2e65cf40d9bc44968956"><div class="ttname"><a href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a60a9f26fb66c2e65cf40d9bc44968956">kXMP_PropCompositeMask</a></div><div class="ttdoc">Property type bit-flag mask for composite types (array and struct) </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00660">XMP_Const.h:660</a></div></div>
+<div class="ttc" id="structXMP__DateTime_html_a2b26282b9f1ab9920a8f05008c776ddb"><div class="ttname"><a href="structXMP__DateTime.html#a2b26282b9f1ab9920a8f05008c776ddb">XMP_DateTime::tzSign</a></div><div class="ttdeci">XMP_Int8 tzSign</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00254">XMP_Const.h:254</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035dad947e6da0c4d923195d93e0c53a79c4e"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad947e6da0c4d923195d93e0c53a79c4e">kXMP_EPSFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;EPS &amp;#39;, encapsulated PostScript. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00884">XMP_Const.h:884</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a05589fbab0657f08285ebdfe93f5ec9ea6c37f0724299a9c88e2f622d3246d63b"><div class="ttname"><a href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea6c37f0724299a9c88e2f622d3246d63b">kXMP_CharUnknown</a></div><div class="ttdoc">Variable or not-yet-known cases. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01015">XMP_Const.h:1015</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adf764cbdea00d65edcd07bb9953ad2b7a511551ce156d5fd96c26ad464b837801"><div class="ttname"><a href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a511551ce156d5fd96c26ad464b837801">kXMP_TimeWestOfUTC</a></div><div class="ttdoc">Time zone is west of UTC. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00275">XMP_Const.h:275</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_ac36f475ca5b446f4fde4c9b90bec77c8a705cebe9f5f6700f039a153d394b4f2a"><div class="ttname"><a href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8a705cebe9f5f6700f039a153d394b4f2a">kXMP_Char32BitMask</a></div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00999">XMP_Const.h:999</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_aaf105ae5beaca1dee30ae54530691fcead3027b786992e2a4762a4fa37c92943c"><div class="ttname"><a href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcead3027b786992e2a4762a4fa37c92943c">kXMPFiles_UsesSidecarXMP</a></div><div class="ttdoc">The file handler uses a &quot;sidecar&quot; file for the XMP. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01143">XMP_Const.h:1143</a></div></div>
+<div class="ttc" id="classXMP__Error_html_a9a3560c67612dec9a6ca37c34eb2c153"><div class="ttname"><a href="classXMP__Error.html#a9a3560c67612dec9a6ca37c34eb2c153">XMP_Error::GetErrMsg</a></div><div class="ttdeci">XMP_StringPtr GetErrMsg() const </div><div class="ttdoc">Retrieves the descriptive string from an XMP_Error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01329">XMP_Const.h:1329</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a99fb83031ce9923c84392b4e92f956b5ae154b58429b257b18963ba3503e67974"><div class="ttname"><a href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5ae154b58429b257b18963ba3503e67974">kXMP_ImplReservedMask</a></div><div class="ttdoc">Mask for bits that are reserved for transient use by the implementation. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00663">XMP_Const.h:663</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a16af7b253440dadd46a80a4b9fddba4da767b4847575a8de28e691be660d43817"><div class="ttname"><a href="XMP__Const_8h.html#a16af7b253440dadd46a80a4b9fddba4da767b4847575a8de28e691be660d43817">kXMP_PacketInfoVersion</a></div><div class="ttdoc">Version of the XMP_PacketInfo type. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01096">XMP_Const.h:1096</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abed82baf7f470b522273a3e37c24c600ad6d41710c689f16d19ac26dc9f5cc506"><div class="ttname"><a href="XMP__Const_8h.html#abed82baf7f470b522273a3e37c24c600ad6d41710c689f16d19ac26dc9f5cc506">kXMPUtil_AllowCommas</a></div><div class="ttdoc">Allow commas in item values, default is separator. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00821">XMP_Const.h:821</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a99fb83031ce9923c84392b4e92f956b5aab51f87b5c48f47f5cefb9e03293dafb"><div class="ttname"><a href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aab51f87b5c48f47f5cefb9e03293dafb">kXMP_PropValueIsURI</a></div><div class="ttdoc">The XML string form of the property value is a URI, use rdf:resource attribute. DISCOURAGED. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00580">XMP_Const.h:580</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_aaf105ae5beaca1dee30ae54530691fcea8957f1ef358b4ab3a1df519903f2ae07"><div class="ttname"><a href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea8957f1ef358b4ab3a1df519903f2ae07">kXMPFiles_CanRewrite</a></div><div class="ttdoc">Can copy one file to another, writing new metadata. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01119">XMP_Const.h:1119</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a61dadd085c1777f559549e05962b2c9eadb35599da481cc22ea6342b7b4de6bc6"><div class="ttname"><a href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadb35599da481cc22ea6342b7b4de6bc6">kXMP_ExactPacketLength</a></div><div class="ttdoc">The padding parameter is the overall packet length. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00733">XMP_Const.h:733</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_aba01db17f4a2bfbc3db60dc172972a25aee2f09481347c29d6c06951b0d81e145"><div class="ttname"><a href="XMP__Const_8h.html#aba01db17f4a2bfbc3db60dc172972a25aee2f09481347c29d6c06951b0d81e145">kXMPFiles_ServerMode</a></div><div class="ttdoc">Combination of flags necessary for server products using XMPFiles. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01106">XMP_Const.h:1106</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_af9bdc3014f3d54c426b6d2df10de4960a2bd1ff3ba036640f0c76d68a03cf94f7"><div class="ttname"><a href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a2bd1ff3ba036640f0c76d68a03cf94f7">kXMPErrSev_FileFatal</a></div><div class="ttdoc">Recovery is not possible, an exception will be thrown, the file is corrupt and possibly unusable...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01235">XMP_Const.h:1235</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a726ca809ffd3d67ab4b8476646f26635ab26e1a38d1d0343fcc5bdaab1b60e3ed"><div class="ttname"><a href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635ab26e1a38d1d0343fcc5bdaab1b60e3ed">kXMP_IterJustChildren</a></div><div class="ttdoc">Just do the immediate children of the root, default is subtree. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00786">XMP_Const.h:786</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a05589fbab0657f08285ebdfe93f5ec9ea19b97b941d6586031190025225ee0eaa"><div class="ttname"><a href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea19b97b941d6586031190025225ee0eaa">kXMP_Char16BitLittle</a></div><div class="ttdoc">16-bit little-endian </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01009">XMP_Const.h:1009</a></div></div>
+<div class="ttc" id="structXMP__VersionInfo_html_a7edfa1613a58a248fd15267008bd8afb"><div class="ttname"><a href="structXMP__VersionInfo.html#a7edfa1613a58a248fd15267008bd8afb">XMP_VersionInfo::major</a></div><div class="ttdeci">XMP_Uns8 major</div><div class="ttdoc">The primary release number, the &quot;1&quot; in version &quot;1.2.3&quot;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01547">XMP_Const.h:1547</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a1606a687cb790af16dc561b2a8f2e6a3"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a1606a687cb790af16dc561b2a8f2e6a3">kXMPErr_BadPSIR</a></div><div class="ttdoc">PSIR format error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01451">XMP_Const.h:1451</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a8babbd758d2c64fd04e85fa48e0675c0"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a8babbd758d2c64fd04e85fa48e0675c0">kXMPErr_InternalFailure</a></div><div class="ttdoc">Generic internal failure. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01375">XMP_Const.h:1375</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a300d9a9189cb4ddb6970d05389f5c28e"><div class="ttname"><a href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a></div><div class="ttdeci">XMP_Uns32 XMP_FileFormat</div><div class="ttdoc">Type for file format identification constants. See kXMP_PDFFile and following. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00991">XMP_Const.h:991</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a14342c486ddf394ebc110a446becbfa7"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14342c486ddf394ebc110a446becbfa7">kXMPErr_Deprecated</a></div><div class="ttdoc">Generic deprecated error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01377">XMP_Const.h:1377</a></div></div>
+<div class="ttc" id="classXMP__Error_html_a9c368db94ca63ad7b9b118051d1f8897"><div class="ttname"><a href="classXMP__Error.html#a9c368db94ca63ad7b9b118051d1f8897">XMP_Error::SetNotified</a></div><div class="ttdeci">void SetNotified()</div><div class="ttdoc">Sets the notification status for an error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01335">XMP_Const.h:1335</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a05589fbab0657f08285ebdfe93f5ec9eaf5b20dd9abbef29169a362b265049637"><div class="ttname"><a href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9eaf5b20dd9abbef29169a362b265049637">kXMP_Char8Bit</a></div><div class="ttdoc">8-bit </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01005">XMP_Const.h:1005</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409ac4cf86fa29624c5e19111e09a97fe05f"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4cf86fa29624c5e19111e09a97fe05f">kXMPErr_BadUnicode</a></div><div class="ttdoc">Unicode error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01443">XMP_Const.h:1443</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409ad685e1f839e3bc53dfc55611a0803cee"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad685e1f839e3bc53dfc55611a0803cee">kXMPErr_BadJPEG</a></div><div class="ttdoc">JPEG format error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01447">XMP_Const.h:1447</a></div></div>
+<div class="ttc" id="classXMP__Error_html_a31fd80098e50026985e05abd16f3e045"><div class="ttname"><a href="classXMP__Error.html#a31fd80098e50026985e05abd16f3e045">XMP_Error::errMsg</a></div><div class="ttdeci">XMP_StringPtr errMsg</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01342">XMP_Const.h:1342</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_af9bdc3014f3d54c426b6d2df10de4960a068fdc8c88dcce62a7b42788a572af61"><div class="ttname"><a href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a068fdc8c88dcce62a7b42788a572af61">kXMPErrSev_Recoverable</a></div><div class="ttdoc">Partial recovery and continuation is possible. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01231">XMP_Const.h:1231</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a06fc87d81c62e9abb8790b6e5713c55bacf4bfe01497bd0d88c2af337e4bac39e"><div class="ttname"><a href="XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55bacf4bfe01497bd0d88c2af337e4bac39e">kXMPTS_Yes</a></div><div class="ttdoc">The part or parts have definitely changed. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00191">XMP_Const.h:191</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035dab1eeba00d1d92e313acfe68cd054daf9"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dab1eeba00d1d92e313acfe68cd054daf9">kXMP_FLAFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;FLA &amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00900">XMP_Const.h:900</a></div></div>
+<div class="ttc" id="structXMP__DateTime_html"><div class="ttname"><a href="structXMP__DateTime.html">XMP_DateTime</a></div><div class="ttdoc">The expanded type for a date and time. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00223">XMP_Const.h:223</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a80155586fa275b28773c9b203f52cabaaa58279b2b1311242e7374117f455bb96"><div class="ttname"><a href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaa58279b2b1311242e7374117f455bb96">kXMPFiles_OpenOnlyXMP</a></div><div class="ttdoc">Only the XMP is wanted, allows space/time optimizations. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01166">XMP_Const.h:1166</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a914a8ec6b55c89c7ed098e4d3b878989"><div class="ttname"><a href="XMP__Const_8h.html#a914a8ec6b55c89c7ed098e4d3b878989">Max_XMP_Int8</a></div><div class="ttdeci">static const XMP_Int8 Max_XMP_Int8</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00119">XMP_Const.h:119</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc6126af1d45847bc59afa0aa3216b04addd07b4a38b25ab3841e28a9cb169d1c"><div class="ttname"><a href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04addd07b4a38b25ab3841e28a9cb169d1c">kXMP_DeleteExisting</a></div><div class="ttdoc">Delete any pre-existing property. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00686">XMP_Const.h:686</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a950af5f297a8aba136e4fb0bb69b3167"><div class="ttname"><a href="XMP__Const_8h.html#a950af5f297a8aba136e4fb0bb69b3167">Max_XMP_Uns16</a></div><div class="ttdeci">static const XMP_Uns16 Max_XMP_Uns16</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00112">XMP_Const.h:112</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_aaf105ae5beaca1dee30ae54530691fceafc2bc7cfdd28a326788d563ec0357694"><div class="ttname"><a href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceafc2bc7cfdd28a326788d563ec0357694">kXMPFiles_CanReconcile</a></div><div class="ttdoc">Supports reconciliation between XMP and other forms. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01125">XMP_Const.h:1125</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a24670f4db8bda6e113612fa0c81ffe6b"><div class="ttname"><a href="XMP__Const_8h.html#a24670f4db8bda6e113612fa0c81ffe6b">XMPFiles_ErrorCallbackWrapper</a></div><div class="ttdeci">XMP_Bool(* XMPFiles_ErrorCallbackWrapper)(XMPFiles_ErrorCallbackProc clientProc, void *context, XMP_StringPtr filePath, XMP_ErrorSeverity severity, XMP_Int32 cause, XMP_StringPtr message)</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01309">XMP_Const.h:1309</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a577b0e80acf44125f0dc49e5885e0824"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a577b0e80acf44125f0dc49e5885e0824">kXMPErr_FilePermission</a></div><div class="ttdoc">A file exists but cannot be opened. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01417">XMP_Const.h:1417</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a99fb83031ce9923c84392b4e92f956b5a0d70c23394c0676657c89de5491192c0"><div class="ttname"><a href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a0d70c23394c0676657c89de5491192c0">kXMP_PropArrayIsUnordered</a></div><div class="ttdoc">The item order does not matter. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00611">XMP_Const.h:611</a></div></div>
+<div class="ttc" id="structXMP__DateTime_html_a45baa70f30a3dc9f88819886cfb91aa1"><div class="ttname"><a href="structXMP__DateTime.html#a45baa70f30a3dc9f88819886cfb91aa1">XMP_DateTime::tzMinute</a></div><div class="ttdeci">XMP_Int32 tzMinute</div><div class="ttdoc">The time zone minute in the range 0..59. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00260">XMP_Const.h:260</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_aeb865118433be92d88e5f49ed11487c8"><div class="ttname"><a href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a></div><div class="ttdeci">XMP_Uns32 XMP_OptionBits</div><div class="ttdoc">The type for a collection of 32 flag bits. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00172">XMP_Const.h:172</a></div></div>
+<div class="ttc" id="structXMP__DateTime_html_a62e0f39edef2a82749feed46b16572e8"><div class="ttname"><a href="structXMP__DateTime.html#a62e0f39edef2a82749feed46b16572e8">XMP_DateTime::hasDate</a></div><div class="ttdeci">XMP_Bool hasDate</div><div class="ttdoc">Is the date portion meaningful? </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00244">XMP_Const.h:244</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_ae4a7c9347994883250dc440566eb9f52"><div class="ttname"><a href="XMP__Const_8h.html#ae4a7c9347994883250dc440566eb9f52">XMP_ErrorSeverity</a></div><div class="ttdeci">XMP_Uns8 XMP_ErrorSeverity</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01226">XMP_Const.h:1226</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a82941dc15c6ccde6b8fb2f9cc85c2eeb"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a82941dc15c6ccde6b8fb2f9cc85c2eeb">kXMPErr_ExternalFailure</a></div><div class="ttdoc">Generic external failure. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01379">XMP_Const.h:1379</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a0cf68b6f47d136ed571a441a9e0d2248"><div class="ttname"><a href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a></div><div class="ttdeci">XMP_Uns8 XMP_Bool</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00102">XMP_Const.h:102</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a05589fbab0657f08285ebdfe93f5ec9ea859e7aa88e7dfd3f55ad2b6445a4708e"><div class="ttname"><a href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea859e7aa88e7dfd3f55ad2b6445a4708e">kXMP_Char32BitLittle</a></div><div class="ttdoc">32-bit little-endian </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01013">XMP_Const.h:1013</a></div></div>
+<div class="ttc" id="structXMP__PacketInfo_html_af526c582b66e24553f2d4b11eb714a44"><div class="ttname"><a href="structXMP__PacketInfo.html#af526c582b66e24553f2d4b11eb714a44">XMP_PacketInfo::length</a></div><div class="ttdeci">XMP_Int32 length</div><div class="ttdoc">Packet length in the file in bytes, -1 if unknown. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01073">XMP_Const.h:1073</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035daa0edb070c11f87c3dad9f8f7a83b9b5e"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daa0edb070c11f87c3dad9f8f7a83b9b5e">kXMP_SonyHDVFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;SHDV&amp;#39;, a collection not really a single file. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00943">XMP_Const.h:943</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a61dadd085c1777f559549e05962b2c9ea23054ea4ab89dfd802f14cb389e18745"><div class="ttname"><a href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea23054ea4ab89dfd802f14cb389e18745">kXMP_IncludeRDFHash</a></div><div class="ttdoc">Include a rdf Hash and Merged flag in x:xmpmeta element. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00742">XMP_Const.h:742</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_aba01db17f4a2bfbc3db60dc172972a25a9b9c1ef01e49193a167c40156df07b50"><div class="ttname"><a href="XMP__Const_8h.html#aba01db17f4a2bfbc3db60dc172972a25a9b9c1ef01e49193a167c40156df07b50">kXMPFiles_IgnoreLocalText</a></div><div class="ttdoc">Ignore non-XMP text that uses an undefined &quot;local&quot; encoding. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01104">XMP_Const.h:1104</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a385c44f6fb256e5716a2302a5b940388a843589b878f53d42d59258f945ad770b"><div class="ttname"><a href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a843589b878f53d42d59258f945ad770b">kXMPUtil_IncludeAliases</a></div><div class="ttdoc">Include aliases, default is just actual properties. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00858">XMP_Const.h:858</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_ab2a4c6f608993eed8b8e96b875afbaf3"><div class="ttname"><a href="XMP__Const_8h.html#ab2a4c6f608993eed8b8e96b875afbaf3">Max_XMP_Int32</a></div><div class="ttdeci">static const XMP_Int32 Max_XMP_Int32</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00123">XMP_Const.h:123</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da78c62f7c10b16b1a862d93f6226a4622"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da78c62f7c10b16b1a862d93f6226a4622">kXMP_WMAVFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;WMAV&amp;#39;, Windows Media Audio and Video. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00927">XMP_Const.h:927</a></div></div>
+<div class="ttc" id="structXMP__DateTime_html_a6045133feeef41ac1f78c4664ab13db4"><div class="ttname"><a href="structXMP__DateTime.html#a6045133feeef41ac1f78c4664ab13db4">XMP_DateTime::tzHour</a></div><div class="ttdeci">XMP_Int32 tzHour</div><div class="ttdoc">The time zone hour in the range 0..23. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00257">XMP_Const.h:257</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da5f78caa0871695cc92e058e4f4b2dd57"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da5f78caa0871695cc92e058e4f4b2dd57">kXMP_XDCAM_FAMFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;XDCF&amp;#39;, a collection not really a single file. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00935">XMP_Const.h:935</a></div></div>
+<div class="ttc" id="structXMP__PacketInfo_html_a2ae03a1b3d03fa9ebc829105037155a8"><div class="ttname"><a href="structXMP__PacketInfo.html#a2ae03a1b3d03fa9ebc829105037155a8">XMP_PacketInfo::XMP_PacketInfo</a></div><div class="ttdeci">XMP_PacketInfo()</div><div class="ttdoc">Default constructor. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01088">XMP_Const.h:1088</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a69eb7fef422fbca62cdbc554afffd813"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a69eb7fef422fbca62cdbc554afffd813">kXMPErr_NoMemory</a></div><div class="ttdoc">Generic out-of-memory error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01387">XMP_Const.h:1387</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a61dadd085c1777f559549e05962b2c9ea540bbd27859990185eb488442579768b"><div class="ttname"><a href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea540bbd27859990185eb488442579768b">_XMP_UTF32_Bit</a></div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00746">XMP_Const.h:746</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035daab032aa36aec082c6b3a8300548346f5"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daab032aa36aec082c6b3a8300548346f5">kXMP_REDFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;RED &amp;#39;, RED file format. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00931">XMP_Const.h:931</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a726ca809ffd3d67ab4b8476646f26635a4589f99b5b4a55e785e3baf4fe1d9b19"><div class="ttname"><a href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a4589f99b5b4a55e785e3baf4fe1d9b19">kXMP_IterJustLeafNodes</a></div><div class="ttdoc">Just do the leaf nodes, default is all nodes in the subtree. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00789">XMP_Const.h:789</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a80155586fa275b28773c9b203f52cabaa4c61ec4ed571dbc5f1832ff6772320d2"><div class="ttname"><a href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa4c61ec4ed571dbc5f1832ff6772320d2">kXMPFiles_OpenForRead</a></div><div class="ttdoc">Open for read-only access. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01160">XMP_Const.h:1160</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a385c44f6fb256e5716a2302a5b940388a97753b4c5afda9c55e807e41377d86d9"><div class="ttname"><a href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a97753b4c5afda9c55e807e41377d86d9">kXMPUtil_DeleteEmptyValues</a></div><div class="ttdoc">Delete properties if the new value is empty. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00855">XMP_Const.h:855</a></div></div>
+<div class="ttc" id="classXMP__Error_html_aa8b3b859899759d679b00237254e30aa"><div class="ttname"><a href="classXMP__Error.html#aa8b3b859899759d679b00237254e30aa">XMP_Error::XMP_Error</a></div><div class="ttdeci">XMP_Error(XMP_Int32 _id, XMP_StringPtr _errMsg)</div><div class="ttdoc">Constructor for an XMP_Error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01323">XMP_Const.h:1323</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a6ade57a30fb1e40d6aa9695c440fc3d2"><div class="ttname"><a href="XMP__Const_8h.html#a6ade57a30fb1e40d6aa9695c440fc3d2">XMPIteratorRef</a></div><div class="ttdeci">struct __XMPIterator__ * XMPIteratorRef</div><div class="ttdoc">An &quot;ABI safe&quot; pointer to the internal part of an XMP iteration object. Use to pass an XMP iteration o...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00134">XMP_Const.h:134</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_aaf105ae5beaca1dee30ae54530691fcea23a3eb2a5e95292036a93ad6666fa388"><div class="ttname"><a href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea23a3eb2a5e95292036a93ad6666fa388">kXMPFiles_CanInjectXMP</a></div><div class="ttdoc">Can inject first-time XMP into an existing file. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01113">XMP_Const.h:1113</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409ad596daed4ac92f8bf7871669d03effad"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad596daed4ac92f8bf7871669d03effad">kXMPErr_BadMPEG</a></div><div class="ttdoc">MPEG format error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01455">XMP_Const.h:1455</a></div></div>
+<div class="ttc" id="structXMP__PacketInfo_html_a039ce6665fe8e08d922a46f266799f75"><div class="ttname"><a href="structXMP__PacketInfo.html#a039ce6665fe8e08d922a46f266799f75">XMP_PacketInfo::charForm</a></div><div class="ttdeci">XMP_Uns8 charForm</div><div class="ttdoc">Character format using the values kXMP_Char8Bit, kXMP_Char16BitBig, etc. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01078">XMP_Const.h:1078</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a80155586fa275b28773c9b203f52cabaaf5f2ebd401758a14dc52c5ee403303b5"><div class="ttname"><a href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaf5f2ebd401758a14dc52c5ee403303b5">kXMPFiles_OptimizeFileLayout</a></div><div class="ttdoc">When updating a file, spend the effort necessary to optimize file layout. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01187">XMP_Const.h:1187</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da17ab6d429c1550eb3cc16d2e544b78eb"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da17ab6d429c1550eb3cc16d2e544b78eb">kXMP_PDFFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;PDF &amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00880">XMP_Const.h:880</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035dacc1fcd4e52423c0dd2966a2e92352fb8"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dacc1fcd4e52423c0dd2966a2e92352fb8">kXMP_WAVFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;WAV &amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00911">XMP_Const.h:911</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409ac4f936ff6788ce17f6098b7cbda77ed9"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4f936ff6788ce17f6098b7cbda77ed9">kXMPErr_BadSerialize</a></div><div class="ttdoc">Serialization error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01407">XMP_Const.h:1407</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035daf093d01e7e9cc55a7d1e204498521fc3"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf093d01e7e9cc55a7d1e204498521fc3">kXMP_AIFFFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;AIFF&amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00929">XMP_Const.h:929</a></div></div>
+<div class="ttc" id="structXMP__PacketInfo_html_a6725d8ab8b4eedddaac950d2b1b00a7f"><div class="ttname"><a href="structXMP__PacketInfo.html#a6725d8ab8b4eedddaac950d2b1b00a7f">XMP_PacketInfo::hasWrapper</a></div><div class="ttdeci">XMP_Bool hasWrapper</div><div class="ttdoc">True if there is a packet wrapper, the &quot;&lt;?xpacket...&gt;&quot; XML processing instructions. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01082">XMP_Const.h:1082</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adf764cbdea00d65edcd07bb9953ad2b7a3f41be55491204982acb39c9f6c7ad13"><div class="ttname"><a href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a3f41be55491204982acb39c9f6c7ad13">kXMP_TimeIsUTC</a></div><div class="ttdoc">UTC time. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00277">XMP_Const.h:277</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_aaf105ae5beaca1dee30ae54530691fcea9fe958d4ccde02516a3a267db63874cd"><div class="ttname"><a href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea9fe958d4ccde02516a3a267db63874cd">kXMPFiles_AllowsSafeUpdate</a></div><div class="ttdoc">The file handler allows crash-safe file updates. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01137">XMP_Const.h:1137</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409ac7ac408582c194cc723a24acb8b4e4c3"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac7ac408582c194cc723a24acb8b4e4c3">kXMPErr_Unavailable</a></div><div class="ttdoc">Generic unavailable error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01361">XMP_Const.h:1361</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a61dadd085c1777f559549e05962b2c9ea688324384883724626ddd5597eb45739"><div class="ttname"><a href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea688324384883724626ddd5597eb45739">_XMP_UTF16_Bit</a></div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00745">XMP_Const.h:745</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a377e4a668de99ce6ed176cef5aaf3fcd"><div class="ttname"><a href="XMP__Const_8h.html#a377e4a668de99ce6ed176cef5aaf3fcd">XMP_TriState</a></div><div class="ttdeci">XMP_Int8 XMP_TriState</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00197">XMP_Const.h:197</a></div></div>
+<div class="ttc" id="classXMP__Error_html_a5a0651a9615a6a60e467a96ddb43a6bb"><div class="ttname"><a href="classXMP__Error.html#a5a0651a9615a6a60e467a96ddb43a6bb">XMP_Error::IsNotified</a></div><div class="ttdeci">XMP_Bool IsNotified() const </div><div class="ttdoc">Retrieves the information whether particular error is notified or not. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01332">XMP_Const.h:1332</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a84d76d32dd4ef90e5a90cf759b7e563f"><div class="ttname"><a href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563f">SeekMode</a></div><div class="ttdeci">SeekMode</div><div class="ttdoc">Seek mode constants for use with XMP_IO and inside XMPFiles library code. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00867">XMP_Const.h:867</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a726ca809ffd3d67ab4b8476646f26635a93f77b837d89759af3a721712c13f044"><div class="ttname"><a href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a93f77b837d89759af3a721712c13f044">kXMP_IterClassMask</a></div><div class="ttdoc">The low 8 bits are an enum of what data structure to iterate. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00774">XMP_Const.h:774</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a726ca809ffd3d67ab4b8476646f26635aa325d9ffba68a934f0a0a0f6ecfc2f7b"><div class="ttname"><a href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635aa325d9ffba68a934f0a0a0f6ecfc2f7b">kXMP_IterNamespaces</a></div><div class="ttdoc">Iterate the global namespace table. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00783">XMP_Const.h:783</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_aaf105ae5beaca1dee30ae54530691fcea4a183c3ec4994cf09993e5b31dee9733"><div class="ttname"><a href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea4a183c3ec4994cf09993e5b31dee9733">kXMPFiles_AllowsOnlyXMP</a></div><div class="ttdoc">Allows access to just the XMP, ignoring other forms. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01128">XMP_Const.h:1128</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a80155586fa275b28773c9b203f52cabaa77b47c63e579b28cbd25083ceb58c285"><div class="ttname"><a href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa77b47c63e579b28cbd25083ceb58c285">kXMPFiles_OpenUsePacketScanning</a></div><div class="ttdoc">Force packet scanning, do not use a smart handler. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01178">XMP_Const.h:1178</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409aacc6262e9c1fd1a64e3d10cedfb7dcb1"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aacc6262e9c1fd1a64e3d10cedfb7dcb1">kXMPErr_BadBlockFormat</a></div><div class="ttdoc">A block of a file is ill-formed, e.g. invalid IPTC-IIM in a photo. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01425">XMP_Const.h:1425</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_ab04a0655cd1e3bcac5e8f48c18df1a57aae2e0fe43295736a15f0bb76ffe02544"><div class="ttname"><a href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57aae2e0fe43295736a15f0bb76ffe02544">kXMPTemplate_ReplaceExistingProperties</a></div><div class="ttdoc">Perform a Replace operation, add new properties and modify existing ones. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00832">XMP_Const.h:832</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a726ca809ffd3d67ab4b8476646f26635a3333450505cd3712320aeac895e541b9"><div class="ttname"><a href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a3333450505cd3712320aeac895e541b9">kXMP_IterAliases</a></div><div class="ttdoc">Iterate the global alias table. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00780">XMP_Const.h:780</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a61dadd085c1777f559549e05962b2c9eaa646a732a5b11cd8354ca0c3686ef04d"><div class="ttname"><a href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eaa646a732a5b11cd8354ca0c3686ef04d">_XMP_LittleEndian_Bit</a></div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00744">XMP_Const.h:744</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_ab04a0655cd1e3bcac5e8f48c18df1a57a872d2b769e775e281984cc63e28714ea"><div class="ttname"><a href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a872d2b769e775e281984cc63e28714ea">kXMPTemplate_IncludeInternalProperties</a></div><div class="ttdoc">Do all properties, default is just external properties. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00829">XMP_Const.h:829</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719">kXMP_UnknownFile</a></div><div class="ttdoc">Unknown file format constant: &amp;#39; &amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00986">XMP_Const.h:986</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a10fa053f279fed01b075f34a70f11795"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a10fa053f279fed01b075f34a70f11795">kXMPErr_NoFileHandler</a></div><div class="ttdoc">No file handler found for format. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01411">XMP_Const.h:1411</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035dad752b2d3e1139e0745223a9385ef6487"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad752b2d3e1139e0745223a9385ef6487">kXMP_JPEGFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;JPEG&amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00887">XMP_Const.h:887</a></div></div>
+<div class="ttc" id="structXMP__VersionInfo_html_a4b448a8253e26a37d2df35e04ac25d28"><div class="ttname"><a href="structXMP__VersionInfo.html#a4b448a8253e26a37d2df35e04ac25d28">XMP_VersionInfo::micro</a></div><div class="ttdeci">XMP_Uns8 micro</div><div class="ttdoc">The tertiary release number, the &quot;3&quot; in version &quot;1.2.3&quot;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01551">XMP_Const.h:1551</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a99fb83031ce9923c84392b4e92f956b5a9b7706e0f0716ac7546bdc24ffedd0bc"><div class="ttname"><a href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a9b7706e0f0716ac7546bdc24ffedd0bc">kXMP_PropValueIsArray</a></div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00608">XMP_Const.h:608</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a716956a038782e595ce61d3fbdd1a25a"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a716956a038782e595ce61d3fbdd1a25a">kXMPErr_BadValue</a></div><div class="ttdoc">Generic bad value error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01367">XMP_Const.h:1367</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adc36ebc09374b4400ebc68df37a5abad"><div class="ttname"><a href="XMP__Const_8h.html#adc36ebc09374b4400ebc68df37a5abad">Max_XMP_Uns32</a></div><div class="ttdeci">static const XMP_Uns32 Max_XMP_Uns32</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00114">XMP_Const.h:114</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a385c44f6fb256e5716a2302a5b940388adab4dad658d2d218c5b1e7d829b12962"><div class="ttname"><a href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388adab4dad658d2d218c5b1e7d829b12962">kXMPUtil_ReplaceOldValues</a></div><div class="ttdoc">Replace existing values, default is to leave them. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00852">XMP_Const.h:852</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a84d76d32dd4ef90e5a90cf759b7e563faf52720b8c894653e4a089a9c0331ee47"><div class="ttname"><a href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563faf52720b8c894653e4a089a9c0331ee47">kXMP_SeekFromStart</a></div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00867">XMP_Const.h:867</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a80155586fa275b28773c9b203f52cabaab8cbbeef0e99d246907a4375766e21a2"><div class="ttname"><a href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaab8cbbeef0e99d246907a4375766e21a2">kXMPFiles_ForceGivenHandler</a></div><div class="ttdoc">Force use of the given handler (format), do not even verify the format. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01169">XMP_Const.h:1169</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da96804f7b8ce83786051c4dac4930aa96"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da96804f7b8ce83786051c4dac4930aa96">kXMP_UCFFile</a></div><div class="ttdoc">Adobe application file format constant: &amp;#39;UCF &amp;#39;, Universal Container Format. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00980">XMP_Const.h:980</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da6c949ee85f42eaaed035591338be6789"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da6c949ee85f42eaaed035591338be6789">kXMP_CELFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;CEL &amp;#39;, Audition loop. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00917">XMP_Const.h:917</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a422fdf9dc276d3edacde0826d43dfea5"><div class="ttname"><a href="XMP__Const_8h.html#a422fdf9dc276d3edacde0826d43dfea5">Min_XMP_Int64</a></div><div class="ttdeci">static const XMP_Int64 Min_XMP_Int64</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00124">XMP_Const.h:124</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_ac36f475ca5b446f4fde4c9b90bec77c8a0bcf31bfc6bd3bbd5f80ef25f21b4391"><div class="ttname"><a href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8a0bcf31bfc6bd3bbd5f80ef25f21b4391">kXMP_CharLittleEndianMask</a></div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00997">XMP_Const.h:997</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html"><div class="ttname"><a href="XMP__Environment_8h.html">XMP_Environment.h</a></div></div>
+<div class="ttc" id="structXMP__DateTime_html_a2c7f3d493a78f6b3fc7978992308d268"><div class="ttname"><a href="structXMP__DateTime.html#a2c7f3d493a78f6b3fc7978992308d268">XMP_DateTime::hasTime</a></div><div class="ttdeci">XMP_Bool hasTime</div><div class="ttdoc">Is the time portion meaningful? </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00247">XMP_Const.h:247</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035dad217b996403fa13caef3d6e978023124"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad217b996403fa13caef3d6e978023124">kXMP_XMLFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;XML &amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00952">XMP_Const.h:952</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035dabad9584845edf66f2f8fc3c336977e34"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dabad9584845edf66f2f8fc3c336977e34">kXMP_P2File</a></div><div class="ttdoc">Public file format constant: &amp;#39;P2 &amp;#39;, a collection not really a single file. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00933">XMP_Const.h:933</a></div></div>
+<div class="ttc" id="classXMP__Error_html"><div class="ttname"><a href="classXMP__Error.html">XMP_Error</a></div><div class="ttdoc">XMP Toolkit error, associates an error code with a descriptive error string. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01314">XMP_Const.h:1314</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_aaf105ae5beaca1dee30ae54530691fceafc2c5b585e698ebf24a9379de35954b4"><div class="ttname"><a href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceafc2c5b585e698ebf24a9379de35954b4">kXMPFiles_HandlerOwnsFile</a></div><div class="ttdoc">The file handler does the file open and close. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01134">XMP_Const.h:1134</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_ab04a0655cd1e3bcac5e8f48c18df1a57a145c259f83048b811c7b35bc3b339c42"><div class="ttname"><a href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a145c259f83048b811c7b35bc3b339c42">kXMPTemplate_AddNewProperties</a></div><div class="ttdoc">Perform an Add operation, add properties if they don&amp;#39;t already exist. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00838">XMP_Const.h:838</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_ac36f475ca5b446f4fde4c9b90bec77c8ac9b8b24a75e4e325a49e3730b8e3c5ed"><div class="ttname"><a href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8ac9b8b24a75e4e325a49e3730b8e3c5ed">kXMP_Char16BitMask</a></div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00998">XMP_Const.h:998</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035dae28efb65bde55f3f8ddfd1fd8a168e2a"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dae28efb65bde55f3f8ddfd1fd8a168e2a">kXMP_EncoreProjectFile</a></div><div class="ttdoc">Adobe application file format constant: &amp;#39;NCOR&amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00974">XMP_Const.h:974</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da27051cd824d3ae7bb59e3af7a7908ffd"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da27051cd824d3ae7bb59e3af7a7908ffd">kXMP_TextFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;text&amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00954">XMP_Const.h:954</a></div></div>
+<div class="ttc" id="structXMP__VersionInfo_html_ad018f35b382046ca77b1252bafa93f74"><div class="ttname"><a href="structXMP__VersionInfo.html#ad018f35b382046ca77b1252bafa93f74">XMP_VersionInfo::flags</a></div><div class="ttdeci">XMP_Uns32 flags</div><div class="ttdoc">Individual feature implementation flags. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01557">XMP_Const.h:1557</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_ab516453dd7d906e911f8951983cde5f1"><div class="ttname"><a href="XMP__Const_8h.html#ab516453dd7d906e911f8951983cde5f1">XMPDocOpsRef</a></div><div class="ttdeci">struct __XMPDocOps__ * XMPDocOpsRef</div><div class="ttdoc">An &quot;ABI safe&quot; pointer to the internal part of an XMP document operations object. Use to pass an XMP d...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00138">XMP_Const.h:138</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da78b8fa38aaa2067e3e1baa0dcaa7571d"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da78b8fa38aaa2067e3e1baa0dcaa7571d">kXMP_JPEG2KFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;JPX &amp;#39;, JPEG 2000, ISO 15444-1. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00889">XMP_Const.h:889</a></div></div>
+<div class="ttc" id="classXMP__Error_html_a2b884dfb0b39689d1cf95105eadc4571"><div class="ttname"><a href="classXMP__Error.html#a2b884dfb0b39689d1cf95105eadc4571">XMP_Error::notified</a></div><div class="ttdeci">XMP_Bool notified</div><div class="ttdoc">Variable to store whether this particular error is notified to user or not. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01344">XMP_Const.h:1344</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a32cbbc2b93eb9028d441ecb4223eb2a4"><div class="ttname"><a href="XMP__Const_8h.html#a32cbbc2b93eb9028d441ecb4223eb2a4">XMPMeta_ErrorCallbackWrapper</a></div><div class="ttdeci">XMP_Bool(* XMPMeta_ErrorCallbackWrapper)(XMPMeta_ErrorCallbackProc clientProc, void *context, XMP_ErrorSeverity severity, XMP_Int32 cause, XMP_StringPtr message)</div><div class="ttdoc">Internal: The signatures of client-side wrappers for the error notification callbacks. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01306">XMP_Const.h:1306</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a99fb83031ce9923c84392b4e92f956b5aeff16fdf167afc73db25b30b529bd9d5"><div class="ttname"><a href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aeff16fdf167afc73db25b30b529bd9d5">kXMP_PropHasType</a></div><div class="ttdoc">Implies kXMP_PropHasQualifiers, property has rdf:type. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00598">XMP_Const.h:598</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_aaf105ae5beaca1dee30ae54530691fceaee13099f78018a5e1ce033266c27e999"><div class="ttname"><a href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceaee13099f78018a5e1ce033266c27e999">kXMPFiles_NeedsReadOnlyPacket</a></div><div class="ttdoc">The file format needs the XMP packet to be read-only. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01140">XMP_Const.h:1140</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a0819111429c734ca5ef895c193846351"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a0819111429c734ca5ef895c193846351">kXMPErr_FilePathNotAFile</a></div><div class="ttdoc">File Path is not a file. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01427">XMP_Const.h:1427</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adc29c2ff13d900c2f185ee95427fb06ca7107906eab0e1fa6f9f2dc6254ad88b1"><div class="ttname"><a href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca7107906eab0e1fa6f9f2dc6254ad88b1">kXMP_StrictAliasing</a></div><div class="ttdoc">Do not reconcile alias differences, throw an exception. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00708">XMP_Const.h:708</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a40ca77d98bd366442bb8d438c420a444"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a40ca77d98bd366442bb8d438c420a444">kXMPErr_BadOptions</a></div><div class="ttdoc">Bad options parameter. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01399">XMP_Const.h:1399</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035dafc5ff976e78df2d79d651de818b011f2"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafc5ff976e78df2d79d651de818b011f2">kXMP_AVCHDFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;AVHD&amp;#39;, a collection not really a single file. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00941">XMP_Const.h:941</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a05589fbab0657f08285ebdfe93f5ec9ea87f8231aec6dd125baf77c9f3f918fbc"><div class="ttname"><a href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea87f8231aec6dd125baf77c9f3f918fbc">kXMP_Char32BitBig</a></div><div class="ttdoc">32-bit big-endian </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01011">XMP_Const.h:1011</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a05589fbab0657f08285ebdfe93f5ec9ea0966bca9b241646f6a730f96c5c14a2d"><div class="ttname"><a href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea0966bca9b241646f6a730f96c5c14a2d">kXMP_Char16BitBig</a></div><div class="ttdoc">16-bit big-endian </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01007">XMP_Const.h:1007</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a2bc66eec6ce830979089d5c336f75539"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2bc66eec6ce830979089d5c336f75539">kXMPErr_BadSchema</a></div><div class="ttdoc">Bad schema parameter. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01395">XMP_Const.h:1395</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a6a9b77b60c63781a8776f10880856bf4"><div class="ttname"><a href="XMP__Const_8h.html#a6a9b77b60c63781a8776f10880856bf4">kXMPFiles_UnknownOffset</a></div><div class="ttdeci">#define kXMPFiles_UnknownOffset</div><div class="ttdoc">Constant for an unknown packet offset within a file. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01061">XMP_Const.h:1061</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a0411cd49bb5b71852cecd93bcbf0ca2dab0b540cd3841f411471a827f833c606e"><div class="ttname"><a href="XMP__Const_8h.html#a0411cd49bb5b71852cecd93bcbf0ca2dab0b540cd3841f411471a827f833c606e">kXMP_IterSkipSubtree</a></div><div class="ttdoc">Skip the subtree below the current node. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00803">XMP_Const.h:803</a></div></div>
+<div class="ttc" id="structXMP__DateTime_html_ab4b71c1a54879d7da1b4135e23d5446f"><div class="ttname"><a href="structXMP__DateTime.html#ab4b71c1a54879d7da1b4135e23d5446f">XMP_DateTime::month</a></div><div class="ttdeci">XMP_Int32 month</div><div class="ttdoc">The month in the range 1..12. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00229">XMP_Const.h:229</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a61dadd085c1777f559549e05962b2c9ea238c792322c5bd5f9e4db3165e01f9d6"><div class="ttname"><a href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea238c792322c5bd5f9e4db3165e01f9d6">kXMP_ReadOnlyPacket</a></div><div class="ttdoc">Default is a writeable packet. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00721">XMP_Const.h:721</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a80155586fa275b28773c9b203f52cabaa05acd568597f72b4812b432ea6cf606a"><div class="ttname"><a href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa05acd568597f72b4812b432ea6cf606a">kXMPFiles_OpenRepairFile</a></div><div class="ttdoc">Attempt to repair a file opened for update, default is to not open (throw an exception). </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01184">XMP_Const.h:1184</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a5464b823e619618d9aa58433cdb45a8e"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5464b823e619618d9aa58433cdb45a8e">kXMPErr_BadRDF</a></div><div class="ttdoc">RDF format error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01437">XMP_Const.h:1437</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da89e6282c3f0c8966d788500f5d8eaa91"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da89e6282c3f0c8966d788500f5d8eaa91">kXMP_MPEG4File</a></div><div class="ttdoc">Public file format constant: &amp;#39;MP4 &amp;#39;, ISO 14494-12 and -14. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00923">XMP_Const.h:923</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a99fb83031ce9923c84392b4e92f956b5a3fa5ed87edc731bfb3817f58ba70a217"><div class="ttname"><a href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a3fa5ed87edc731bfb3817f58ba70a217">kXMP_PropHasLang</a></div><div class="ttdoc">Implies kXMP_PropHasQualifiers, property has xml:lang. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00595">XMP_Const.h:595</a></div></div>
+<div class="ttc" id="structXMP__VersionInfo_html_a19654242b92bffd7517e92882850e834"><div class="ttname"><a href="structXMP__VersionInfo.html#a19654242b92bffd7517e92882850e834">XMP_VersionInfo::message</a></div><div class="ttdeci">XMP_StringPtr message</div><div class="ttdoc">A comprehensive version information string. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01559">XMP_Const.h:1559</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a778d64a8002543649fcd4e27b332aa38"><div class="ttname"><a href="XMP__Const_8h.html#a778d64a8002543649fcd4e27b332aa38">Min_XMP_Int32</a></div><div class="ttdeci">static const XMP_Int32 Min_XMP_Int32</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00122">XMP_Const.h:122</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a99fb83031ce9923c84392b4e92f956b5a6b5b5f4b869994b7390edc9589745e9f"><div class="ttname"><a href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a6b5b5f4b869994b7390edc9589745e9f">kXMP_PropArrayFormMask</a></div><div class="ttdoc">Property type bit-flag mask for all array types. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00657">XMP_Const.h:657</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_ab04a0655cd1e3bcac5e8f48c18df1a57a81e1b6fd067fc9ad62bc803c98701bd5"><div class="ttname"><a href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a81e1b6fd067fc9ad62bc803c98701bd5">kXMPTemplate_ReplaceWithDeleteEmpty</a></div><div class="ttdoc">Similar to Replace, also delete if the template has an empty value. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00835">XMP_Const.h:835</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409afca1d169d7e3cb3ba84c81700c1b9b22"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409afca1d169d7e3cb3ba84c81700c1b9b22">kXMPErr_WriteError</a></div><div class="ttdoc">A file write failed for a reason other than lack of disk space. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01423">XMP_Const.h:1423</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_aaf105ae5beaca1dee30ae54530691fceadb116eed738d1fcdfe4ab9c1635e08ea"><div class="ttname"><a href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceadb116eed738d1fcdfe4ab9c1635e08ea">kXMPFiles_ReturnsRawPacket</a></div><div class="ttdoc">File handler returns raw XMP packet information. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01131">XMP_Const.h:1131</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a4abfa333cf45f8849b93c6a630537de2"><div class="ttname"><a href="XMP__Const_8h.html#a4abfa333cf45f8849b93c6a630537de2">Min_XMP_Uns8</a></div><div class="ttdeci">static const XMP_Uns8 Min_XMP_Uns8</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00109">XMP_Const.h:109</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_ae0901aabcf619f17cff03f08e5ed3658"><div class="ttname"><a href="XMP__Const_8h.html#ae0901aabcf619f17cff03f08e5ed3658">kXMPFiles_UnknownLength</a></div><div class="ttdeci">#define kXMPFiles_UnknownLength</div><div class="ttdoc">Constant for an unknown packet length within a file. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01065">XMP_Const.h:1065</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a99fb83031ce9923c84392b4e92f956b5aba253f67a6cf44b7438a3f96b516846d"><div class="ttname"><a href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aba253f67a6cf44b7438a3f96b516846d">kXMP_PropArrayIsAltText</a></div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00624">XMP_Const.h:624</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a52d197a8b0af3c55f16958162a4132f1"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a52d197a8b0af3c55f16958162a4132f1">kXMPErr_BadParam</a></div><div class="ttdoc">Generic bad parameter error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01365">XMP_Const.h:1365</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a57250ff934e642191654ae49c3a2c6c9"><div class="ttname"><a href="XMP__Const_8h.html#a57250ff934e642191654ae49c3a2c6c9">XMP_VersionInfo</a></div><div class="ttdeci">struct XMP_VersionInfo XMP_VersionInfo</div><div class="ttdoc">XMP Toolkit version information. </div></div>
+<div class="ttc" id="XMP__Const_8h_html_a61dadd085c1777f559549e05962b2c9ea15e3fb0e64614c574ed554f2f72c0a5d"><div class="ttname"><a href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea15e3fb0e64614c574ed554f2f72c0a5d">kXMP_UseCanonicalFormat</a></div><div class="ttdoc">Use a canonical form of RDF. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00727">XMP_Const.h:727</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a06fc87d81c62e9abb8790b6e5713c55ba7a73219cd125bb21e294ba474112a584"><div class="ttname"><a href="XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba7a73219cd125bb21e294ba474112a584">kXMPTS_Maybe</a></div><div class="ttdoc">The part or parts might, or might not, have changed. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00195">XMP_Const.h:195</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a726ca809ffd3d67ab4b8476646f26635a1b91947105ae68c48c5d5e36aa70d101"><div class="ttname"><a href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a1b91947105ae68c48c5d5e36aa70d101">kXMP_IterOmitQualifiers</a></div><div class="ttdoc">Omit all qualifiers. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00795">XMP_Const.h:795</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_ae3052e3b7b6f4c6163331ead175a7e28"><div class="ttname"><a href="XMP__Const_8h.html#ae3052e3b7b6f4c6163331ead175a7e28">Min_XMP_Uns64</a></div><div class="ttdeci">static const XMP_Uns64 Min_XMP_Uns64</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00115">XMP_Const.h:115</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a61eb4db5a58902c130d3b3929db624db"><div class="ttname"><a href="XMP__Const_8h.html#a61eb4db5a58902c130d3b3929db624db">XMP_ProgressReportWrapper</a></div><div class="ttdeci">XMP_Bool(* XMP_ProgressReportWrapper)(XMP_ProgressReportProc proc, void *context, float elapsedTime, float fractionDone, float secondsToGo)</div><div class="ttdoc">Internal: The signature of a client-side wrapper for the progress report callback. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01535">XMP_Const.h:1535</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a6b7b47dd702d9e331586d485013fd1eaadbf8d744f355ef9800a4ec44325baf54"><div class="ttname"><a href="XMP__Const_8h.html#a6b7b47dd702d9e331586d485013fd1eaadbf8d744f355ef9800a4ec44325baf54">kXMPFiles_UpdateSafely</a></div><div class="ttdoc">Write into a temporary file and swap for crash safety. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01194">XMP_Const.h:1194</a></div></div>
+<div class="ttc" id="structXMP__PacketInfo_html"><div class="ttname"><a href="structXMP__PacketInfo.html">XMP_PacketInfo</a></div><div class="ttdoc">XMP packet description. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01068">XMP_Const.h:1068</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a726ca809ffd3d67ab4b8476646f26635acf22e638f4144bcec8207b2ab69bb344"><div class="ttname"><a href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635acf22e638f4144bcec8207b2ab69bb344">kXMP_IterJustLeafName</a></div><div class="ttdoc">Return just the leaf part of the path, default is the full path. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00792">XMP_Const.h:792</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_aaf105ae5beaca1dee30ae54530691fcea798c55f5144eedde76f8329a056210b2"><div class="ttname"><a href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea798c55f5144eedde76f8329a056210b2">kXMPFiles_NeedsPreloading</a></div><div class="ttdoc">The plugin handler is not capable for delay loading. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01152">XMP_Const.h:1152</a></div></div>
+<div class="ttc" id="structXMP__DateTime_html_ae84965f3296a9c106d1f6c88aa6a7bdf"><div class="ttname"><a href="structXMP__DateTime.html#ae84965f3296a9c106d1f6c88aa6a7bdf">XMP_DateTime::minute</a></div><div class="ttdeci">XMP_Int32 minute</div><div class="ttdoc">The minute in the range 0..59. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00238">XMP_Const.h:238</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409aac7558097a1f5a0f99097199f1bf8ff4"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aac7558097a1f5a0f99097199f1bf8ff4">kXMPErr_UnknownException</a></div><div class="ttdoc">Generic unknown exception. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01385">XMP_Const.h:1385</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_aaf105ae5beaca1dee30ae54530691fceaa2a6a4b744b40055387234632b688fcd"><div class="ttname"><a href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceaa2a6a4b744b40055387234632b688fcd">kXMPFiles_FolderBasedFormat</a></div><div class="ttdoc">The format is folder oriented, for example the P2 video format. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01146">XMP_Const.h:1146</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a06fc87d81c62e9abb8790b6e5713c55ba2a88f4d4589bf413377283843f70bc90"><div class="ttname"><a href="XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba2a88f4d4589bf413377283843f70bc90">kXMPTS_No</a></div><div class="ttdoc">The part or parts have definitely not changed. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00193">XMP_Const.h:193</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409aa9c1c20e53db12b20068d830a8990c0b"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa9c1c20e53db12b20068d830a8990c0b">kXMPErr_TooLargeForJPEG</a></div><div class="ttdoc">Data too large for JPEG file format. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01413">XMP_Const.h:1413</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a01973e700ac2ba7f3debef340ccaa663"><div class="ttname"><a href="XMP__Const_8h.html#a01973e700ac2ba7f3debef340ccaa663">XMP_ProgressReportProc</a></div><div class="ttdeci">bool(* XMP_ProgressReportProc)(void *context, float elapsedTime, float fractionDone, float secondsToGo)</div><div class="ttdoc">The signature of a client-defined callback for progress report notifications. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01530">XMP_Const.h:1530</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409aa856bb36a9742d8542b483e00fc6511b"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa856bb36a9742d8542b483e00fc6511b">kXMPErr_EnforceFailure</a></div><div class="ttdoc">Generic enforcement failure. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01371">XMP_Const.h:1371</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a14813595824de97382fffeae7b6fe581"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14813595824de97382fffeae7b6fe581">kXMPErr_Unknown</a></div><div class="ttdoc">Generic unknown error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01357">XMP_Const.h:1357</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409ae2aec0f3b8db282cbba40e4bcf746ba9"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ae2aec0f3b8db282cbba40e4bcf746ba9">kXMPErr_NoError</a></div><div class="ttdoc">Generic error codes. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01354">XMP_Const.h:1354</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a61dadd085c1777f559549e05962b2c9ea9fb498d749d939e2ba9adf555a75b856"><div class="ttname"><a href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea9fb498d749d939e2ba9adf555a75b856">kXMP_OmitXMPMetaElement</a></div><div class="ttdoc">Omit the x:xmpmeta element surrounding the rdf:RDF element. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00739">XMP_Const.h:739</a></div></div>
+<div class="ttc" id="structXMP__PacketInfo_html_af4f99e6a5b36b05fdf4a519421875256"><div class="ttname"><a href="structXMP__PacketInfo.html#af4f99e6a5b36b05fdf4a519421875256">XMP_PacketInfo::padSize</a></div><div class="ttdeci">XMP_Int32 padSize</div><div class="ttdoc">Packet padding size in bytes, zero if unknown. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01075">XMP_Const.h:1075</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a80155586fa275b28773c9b203f52cabaa91fa388b3888bcb6a68615537b66a49b"><div class="ttname"><a href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa91fa388b3888bcb6a68615537b66a49b">kXMPFiles_OpenForUpdate</a></div><div class="ttdoc">Open for reading and writing. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01163">XMP_Const.h:1163</a></div></div>
+<div class="ttc" id="structXMP__DateTime_html_abc79cdca8cfa5df6583279e3f3e70e9f"><div class="ttname"><a href="structXMP__DateTime.html#abc79cdca8cfa5df6583279e3f3e70e9f">XMP_DateTime::hour</a></div><div class="ttdeci">XMP_Int32 hour</div><div class="ttdoc">The hour in the range 0..23. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00235">XMP_Const.h:235</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a99fb83031ce9923c84392b4e92f956b5af1cdb3b0a3e852ec55e747a1686aba04"><div class="ttname"><a href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5af1cdb3b0a3e852ec55e747a1686aba04">kXMP_PropArrayIsOrdered</a></div><div class="ttdoc">Implies kXMP_PropValueIsArray, item order matters. It is serialized using an rdf:Seq container...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00614">XMP_Const.h:614</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a61dadd085c1777f559549e05962b2c9eadbb9e4c7ee139da0dd4126ddea794c76"><div class="ttname"><a href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadbb9e4c7ee139da0dd4126ddea794c76">kXMP_OmitPacketWrapper</a></div><div class="ttdoc">Omit the XML packet wrapper. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00718">XMP_Const.h:718</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a61dadd085c1777f559549e05962b2c9eafc6417e382c98a2d507830de62fd4830"><div class="ttname"><a href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eafc6417e382c98a2d507830de62fd4830">kXMP_EncodeUTF16Little</a></div><div class="ttdoc">Use UTF16 little-endian encoding. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00758">XMP_Const.h:758</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a5227060f282a86c8ea1a944107751dd1"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5227060f282a86c8ea1a944107751dd1">kXMPErr_ProgressAbort</a></div><div class="ttdoc">Progress reporting callback requested abort. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01389">XMP_Const.h:1389</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409aa2f19dfd8ce27b5713c79e34f2052e40"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa2f19dfd8ce27b5713c79e34f2052e40">kXMPErr_DiskSpace</a></div><div class="ttdoc">A file write failed due to lack of disk space. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01419">XMP_Const.h:1419</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc6126af1d45847bc59afa0aa3216b04aef8c1934a17b0e5d8f0b20a7e89df0df"><div class="ttname"><a href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04aef8c1934a17b0e5d8f0b20a7e89df0df">kXMP_PropArrayLocationMask</a></div><div class="ttdoc">Bit-flag mask for array-item location bits. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00692">XMP_Const.h:692</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_ac2434559f67332b9d23021b894da838c"><div class="ttname"><a href="XMP__Const_8h.html#ac2434559f67332b9d23021b894da838c">XMP_AbortProc</a></div><div class="ttdeci">bool(* XMP_AbortProc)(void *arg)</div><div class="ttdoc">The signature of a client-defined callback to check for a user request to abort a time-consuming oper...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01507">XMP_Const.h:1507</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a84d76d32dd4ef90e5a90cf759b7e563faeedc991a0194b932ae4a47307843baf6"><div class="ttname"><a href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563faeedc991a0194b932ae4a47307843baf6">kXMP_SeekFromEnd</a></div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00867">XMP_Const.h:867</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a99fb83031ce9923c84392b4e92f956b5ab975c19fb5c50f732a1a0d84dadb7c37"><div class="ttname"><a href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5ab975c19fb5c50f732a1a0d84dadb7c37">kXMP_PropIsAlias</a></div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00634">XMP_Const.h:634</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_aa803470bc9b20fc47b0108559e4bccb4"><div class="ttname"><a href="XMP__Const_8h.html#aa803470bc9b20fc47b0108559e4bccb4">Max_XMP_Uns8</a></div><div class="ttdeci">static const XMP_Uns8 Max_XMP_Uns8</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00110">XMP_Const.h:110</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da22b478a9d0d52d12e8e4a1181024eb1c"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da22b478a9d0d52d12e8e4a1181024eb1c">kXMP_PhotoshopFile</a></div><div class="ttdoc">Adobe application file format constant: &amp;#39;PSD &amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00962">XMP_Const.h:962</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035dafd8d3d1c8c84bc6ab773f1298b3938f0"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafd8d3d1c8c84bc6ab773f1298b3938f0">kXMP_AEFilterPresetFile</a></div><div class="ttdoc">Adobe application file format constant: &amp;#39;FFX &amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00972">XMP_Const.h:972</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035daf32bab632c45ee7d960a5b74c9d61155"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf32bab632c45ee7d960a5b74c9d61155">kXMP_AVCUltraFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;AVCU&amp;#39;, a collection not really a single file. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00947">XMP_Const.h:947</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_af9bdc3014f3d54c426b6d2df10de4960a768126806f8c7b7c107314610125deb3"><div class="ttname"><a href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a768126806f8c7b7c107314610125deb3">kXMPErrSev_ProcessFatal</a></div><div class="ttdoc">Recovery is not possible, an exception will be thrown, the entire process should be aborted...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01237">XMP_Const.h:1237</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a23b2d7cab10b3d80549e6b60855bb15e"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a23b2d7cab10b3d80549e6b60855bb15e">kXMPErr_BadIPTC</a></div><div class="ttdoc">IPTC format error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01453">XMP_Const.h:1453</a></div></div>
+<div class="ttc" id="structXMP__PacketInfo_html_a20f65fcfd0f3658ab93ff441a9d61d2c"><div class="ttname"><a href="structXMP__PacketInfo.html#a20f65fcfd0f3658ab93ff441a9d61d2c">XMP_PacketInfo::offset</a></div><div class="ttdeci">XMP_Int64 offset</div><div class="ttdoc">Packet offset in the file in bytes, -1 if unknown. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01071">XMP_Const.h:1071</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_aa6ce5fadc73345c8db588922dc731c89"><div class="ttname"><a href="XMP__Const_8h.html#aa6ce5fadc73345c8db588922dc731c89">Max_XMP_Uns64</a></div><div class="ttdeci">static const XMP_Uns64 Max_XMP_Uns64</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00116">XMP_Const.h:116</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da42cb8767d9cf16eaeb7aec68a4f224e9"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da42cb8767d9cf16eaeb7aec68a4f224e9">kXMP_SESFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;SES &amp;#39;, Audition session. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00915">XMP_Const.h:915</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035dad2935ea79b4f9253891e3a68a002c5bb"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad2935ea79b4f9253891e3a68a002c5bb">kXMP_CINFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;CIN &amp;#39;, Cineon. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00909">XMP_Const.h:909</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a3f1efec0aa5452f43c55c05aba616ef7"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a3f1efec0aa5452f43c55c05aba616ef7">kXMPErr_BadXPath</a></div><div class="ttdoc">Bad XPath parameter. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01397">XMP_Const.h:1397</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a549d5e2cbcb58302d3df840a0205283e"><div class="ttname"><a href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a></div><div class="ttdeci">struct __XMPMeta__ * XMPMetaRef</div><div class="ttdoc">An &quot;ABI safe&quot; pointer to the internal part of an XMP object. Use to pass an XMP object across client ...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00130">XMP_Const.h:130</a></div></div>
+<div class="ttc" id="structXMP__PacketInfo_html_a83ec12161a36451fef05d88cc754104e"><div class="ttname"><a href="structXMP__PacketInfo.html#a83ec12161a36451fef05d88cc754104e">XMP_PacketInfo::pad</a></div><div class="ttdeci">XMP_Uns8 pad</div><div class="ttdoc">Padding to make the struct&amp;#39;s size be a multiple 4. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01085">XMP_Const.h:1085</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a0411cd49bb5b71852cecd93bcbf0ca2da2537b4b8db838f85b47988b198cd2a12"><div class="ttname"><a href="XMP__Const_8h.html#a0411cd49bb5b71852cecd93bcbf0ca2da2537b4b8db838f85b47988b198cd2a12">kXMP_IterSkipSiblings</a></div><div class="ttdoc">Skip the subtree below and remaining siblings of the current node. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00806">XMP_Const.h:806</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abd313c6844b00bcfdbc43b0405fa8364"><div class="ttname"><a href="XMP__Const_8h.html#abd313c6844b00bcfdbc43b0405fa8364">Min_XMP_Int16</a></div><div class="ttdeci">static const XMP_Int16 Min_XMP_Int16</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00120">XMP_Const.h:120</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a80155586fa275b28773c9b203f52cabaaf6332435c7fc89cb0b7381e13fe43646"><div class="ttname"><a href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaf6332435c7fc89cb0b7381e13fe43646">kXMPFiles_OpenUseSmartHandler</a></div><div class="ttdoc">Require the use of a smart handler. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01175">XMP_Const.h:1175</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc6126af1d45847bc59afa0aa3216b04a873411f673fc2a6337083fd024df727f"><div class="ttname"><a href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04a873411f673fc2a6337083fd024df727f">kXMP_InsertBeforeItem</a></div><div class="ttdoc">Option for array item location: Insert a new item before the given index. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00680">XMP_Const.h:680</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409ac57f1cf1c24778536fd32972e87334c5"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac57f1cf1c24778536fd32972e87334c5">kXMPErr_BadXML</a></div><div class="ttdoc">XML format error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01435">XMP_Const.h:1435</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da564a8095f65d951f451e16eb56650597"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da564a8095f65d951f451e16eb56650597">kXMP_SWFFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;SWF &amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00898">XMP_Const.h:898</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a7bed3dd93335821e5afa0ac2b07a9640"><div class="ttname"><a href="XMP__Const_8h.html#a7bed3dd93335821e5afa0ac2b07a9640">XMPFiles_ErrorCallbackProc</a></div><div class="ttdeci">bool(* XMPFiles_ErrorCallbackProc)(void *context, XMP_StringPtr filePath, XMP_ErrorSeverity severity, XMP_Int32 cause, XMP_StringPtr message)</div><div class="ttdoc">The signature of a client-defined callback for TXMPFiles error notifications. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01301">XMP_Const.h:1301</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035daf775c60f1da0e8c34590744a89e66c79"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf775c60f1da0e8c34590744a89e66c79">kXMP_SVGFile</a></div><div class="ttdoc">Public file format constant: &amp;#39;SVG &amp;#39;. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00956">XMP_Const.h:956</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a115f3d761d2cad952aab23f35cbdf3a1"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a115f3d761d2cad952aab23f35cbdf3a1">kXMPErr_BadObject</a></div><div class="ttdoc">Generic bad object error. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01363">XMP_Const.h:1363</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adc29c2ff13d900c2f185ee95427fb06ca1e533852436acf75f594a4fb50a64400"><div class="ttname"><a href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca1e533852436acf75f594a4fb50a64400">kXMP_RequireXMPMeta</a></div><div class="ttdoc">Require a surrounding x:xmpmeta element. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00702">XMP_Const.h:702</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a2a17df0c0b690f5b7829bc4ca16efce2"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2a17df0c0b690f5b7829bc4ca16efce2">kXMPErr_ReadError</a></div><div class="ttdoc">A file read failed. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01421">XMP_Const.h:1421</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_adb49720dc49f7d4e4cf9adbf2948e409a5322df07e2a7792824d2468c4837f1cb"><div class="ttname"><a href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5322df07e2a7792824d2468c4837f1cb">kXMPErr_StdException</a></div><div class="ttdoc">Generic standard exception. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01383">XMP_Const.h:1383</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
</body>
</html>
diff --git a/docs/API/XMP__Environment_8h.html b/docs/API/XMP__Environment_8h.html
new file mode 100755
index 0000000..13e7faf
--- /dev/null
+++ b/docs/API/XMP__Environment_8h.html
@@ -0,0 +1,139 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMP_Environment.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('XMP__Environment_8h.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#define-members">Macros</a> </div>
+ <div class="headertitle">
+<div class="title">XMP_Environment.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="XMP__Environment_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:abeb16d5e16e7b2120731acb63ad88e9f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Environment_8h.html#abeb16d5e16e7b2120731acb63ad88e9f">XMP_DebugBuild</a>&#160;&#160;&#160;0</td></tr>
+<tr class="separator:abeb16d5e16e7b2120731acb63ad88e9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6bdd4740fca953d5f1722643d9295634"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Environment_8h.html#a6bdd4740fca953d5f1722643d9295634">DISABLE_SERIALIZED_IMPORT_EXPORT</a>&#160;&#160;&#160;0</td></tr>
+<tr class="separator:a6bdd4740fca953d5f1722643d9295634"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a69ebf613b248c1e76ae5dbdeee505881"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Environment_8h.html#a69ebf613b248c1e76ae5dbdeee505881">XMP_64</a>&#160;&#160;&#160;0</td></tr>
+<tr class="separator:a69ebf613b248c1e76ae5dbdeee505881"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aac6a4810b1f485f147ab833be63f4d7b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_PUBLIC</a>&#160;&#160;&#160;XMP_HELPER_DLL_IMPORT</td></tr>
+<tr class="separator:aac6a4810b1f485f147ab833be63f4d7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a917e8e3f02685ec390fa3aee270f7747"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a>&#160;&#160;&#160;XMP_HELPER_DLL_PRIVATE</td></tr>
+<tr class="separator:a917e8e3f02685ec390fa3aee270f7747"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="a6bdd4740fca953d5f1722643d9295634"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define DISABLE_SERIALIZED_IMPORT_EXPORT&#160;&#160;&#160;0</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Environment_8h_source.html#l00122">122</a> of file <a class="el" href="XMP__Environment_8h_source.html">XMP_Environment.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a69ebf613b248c1e76ae5dbdeee505881"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define XMP_64&#160;&#160;&#160;0</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Environment_8h_source.html#l00129">129</a> of file <a class="el" href="XMP__Environment_8h_source.html">XMP_Environment.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abeb16d5e16e7b2120731acb63ad88e9f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define XMP_DebugBuild&#160;&#160;&#160;0</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Environment_8h_source.html#l00114">114</a> of file <a class="el" href="XMP__Environment_8h_source.html">XMP_Environment.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a917e8e3f02685ec390fa3aee270f7747"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define XMP_PRIVATE&#160;&#160;&#160;XMP_HELPER_DLL_PRIVATE</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Environment_8h_source.html#l00189">189</a> of file <a class="el" href="XMP__Environment_8h_source.html">XMP_Environment.h</a>.</p>
+
+<p>Referenced by <a class="el" href="IUTF8String_8h_source.html#l00347">AdobeXMPCommon::IUTF8String_v1::compare()</a>, <a class="el" href="INode_8h_source.html#l00372">AdobeXMPCore::INode_v1::ConvertToMetadata()</a>, <a class="el" href="IStructureNode_8h_source.html#l00128">AdobeXMPCore::IStructureNode_v1::GetArrayNode()</a>, <a class="el" href="IArrayNode_8h_source.html#l00139">AdobeXMPCore::IArrayNode_v1::GetArrayNodeAtIndex()</a>, <a class="el" href="ICompositeNode_8h_source.html#l00191">AdobeXMPCore::ICompositeNode_v1::GetArrayNodeAtPath()</a>, <a class="el" href="IError_8h_source.html#l00171">AdobeXMPCommon::IError_v1::GetNextError()</a>, <a class="el" href="IPath_8h_source.html#l00089">AdobeXMPCore::IPath_v1::IsEmpty()</a>, and <a class="el" href="INodeIterator_8h_source.html#l00112">AdobeXMPCore::INodeIterator_v1::Next()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aac6a4810b1f485f147ab833be63f4d7b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define XMP_PUBLIC&#160;&#160;&#160;XMP_HELPER_DLL_IMPORT</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Environment_8h_source.html#l00188">188</a> of file <a class="el" href="XMP__Environment_8h_source.html">XMP_Environment.h</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/XMP__Environment_8h.js b/docs/API/XMP__Environment_8h.js
new file mode 100755
index 0000000..21a843f
--- /dev/null
+++ b/docs/API/XMP__Environment_8h.js
@@ -0,0 +1,8 @@
+var XMP__Environment_8h =
+[
+ [ "DISABLE_SERIALIZED_IMPORT_EXPORT", "XMP__Environment_8h.html#a6bdd4740fca953d5f1722643d9295634", null ],
+ [ "XMP_64", "XMP__Environment_8h.html#a69ebf613b248c1e76ae5dbdeee505881", null ],
+ [ "XMP_DebugBuild", "XMP__Environment_8h.html#abeb16d5e16e7b2120731acb63ad88e9f", null ],
+ [ "XMP_PRIVATE", "XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747", null ],
+ [ "XMP_PUBLIC", "XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b", null ]
+]; \ No newline at end of file
diff --git a/docs/API/XMP__Environment_8h_source.html b/docs/API/XMP__Environment_8h_source.html
new file mode 100755
index 0000000..d1e5ab1
--- /dev/null
+++ b/docs/API/XMP__Environment_8h_source.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMP_Environment.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('XMP__Environment_8h_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">XMP_Environment.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="XMP__Environment_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __XMP_Environment_h__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __XMP_Environment_h__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// XMP_Environment.h - Build environment flags for the XMP toolkit.</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// ================================================================</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// This header is just C preprocessor macro definitions to set up the XMP toolkit build environment.</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// It must be the first #include in any chain since it might affect things in other #includes.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// Copyright 2002 Adobe Systems Incorporated</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// All Rights Reserved.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// Determine the Platform</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// ======================</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">// One of MAC_ENV, WIN_ENV, UNIX_ENV or IOS_ENV must be defined by the client. Since some other code</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// requires these to be defined without values, they are only used here to define XMP-specific</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment">// macros with 0 or 1 values.</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment">// ! Tempting though it might be to have a standard macro for big or little endian, there seems to</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment">// ! be no decent way to do that on our own in UNIX. Forcing it on the client isn&#39;t acceptable.</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#if defined ( MAC_ENV )</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor"> #if 0 // ! maybe someday - ! MAC_ENV</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor"> #error &quot;MAC_ENV must be defined so that \&quot;#if MAC_ENV\&quot; is true&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; </div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor"> #if defined ( WIN_ENV ) || defined ( UNIX_ENV ) || defined ( IOS_ENV )</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor"> #error &quot;XMP environment error - must define only one of MAC_ENV, WIN_ENV, UNIX_ENV or IOS_ENV&quot;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor"> #define XMP_MacBuild 1</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor"> #define XMP_WinBuild 0</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor"> #define XMP_UNIXBuild 0</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor"> #define XMP_iOSBuild 0</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#elif defined ( WIN_ENV )</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"> #if 0 // ! maybe someday - ! WIN_ENV</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor"> #error &quot;WIN_ENV must be defined so that \&quot;#if WIN_ENV\&quot; is true&quot;</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; </div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor"> #if defined ( MAC_ENV ) || defined ( UNIX_ENV ) || defined ( IOS_ENV )</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor"> #error &quot;XMP environment error - must define only one of MAC_ENV, WIN_ENV, UNIX_ENV or IOS_ENV&quot;</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"> #define XMP_MacBuild 0</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor"> #define XMP_WinBuild 1</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor"> #define XMP_UNIXBuild 0</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor"> #define XMP_iOSBuild 0</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor">#elif defined ( UNIX_ENV )</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor"> #if 0 // ! maybe someday - ! UNIX_ENV</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor"> #error &quot;UNIX_ENV must be defined so that \&quot;#if UNIX_ENV\&quot; is true&quot;</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; </div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor"> #if defined ( MAC_ENV ) || defined ( WIN_ENV ) || defined ( IOS_ENV )</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor"> #error &quot;XMP environment error - must define only one of MAC_ENV, WIN_ENV, UNIX_ENV or IOS_ENV&quot;</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor"> #define XMP_MacBuild 0</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor"> #define XMP_WinBuild 0</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor"> #define XMP_UNIXBuild 1</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor"> #define XMP_iOSBuild 0</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor">#elif defined ( IOS_ENV )</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor"> #if 0 // ! maybe someday - ! IOS_ENV</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor"> #error &quot;IOS_ENV must be defined so that \&quot;#if IOS_ENV\&quot; is true&quot;</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor"> #if defined ( MAC_ENV ) || defined ( WIN_ENV ) || defined ( UNIX_ENV )</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor"> #error &quot;XMP environment error - must define only one of MAC_ENV, WIN_ENV, UNIX_ENV or IOS_ENV&quot;</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor"> #define XMP_MacBuild 0</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor"> #define XMP_WinBuild 0</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor"> #define XMP_UNIXBuild 0</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor"> #define XMP_iOSBuild 1</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="preprocessor"> #error &quot;XMP environment error - must define one of MAC_ENV, WIN_ENV, UNIX_ENV or IOS_ENV&quot;</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="comment">// Common Macros</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="comment">// =============</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="preprocessor">#if defined ( DEBUG )</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="preprocessor"> #if defined ( NDEBUG )</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="preprocessor"> #error &quot;XMP environment error - both DEBUG and NDEBUG are defined&quot;</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor"> #define XMP_DebugBuild 1</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="preprocessor">#if defined ( NDEBUG )</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="preprocessor"> #define XMP_DebugBuild 0</span></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="preprocessor">#ifndef XMP_DebugBuild</span></div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="XMP__Environment_8h.html#abeb16d5e16e7b2120731acb63ad88e9f"> 114</a></span>&#160;<span class="preprocessor"> #define XMP_DebugBuild 0</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="preprocessor">#if XMP_DebugBuild</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="preprocessor"> #include &lt;stdio.h&gt;</span> <span class="comment">// The assert macro needs printf.</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="preprocessor">#ifndef DISABLE_SERIALIZED_IMPORT_EXPORT </span></div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="XMP__Environment_8h.html#a6bdd4740fca953d5f1722643d9295634"> 122</a></span>&#160;<span class="preprocessor"> #define DISABLE_SERIALIZED_IMPORT_EXPORT 0</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="preprocessor">#ifndef XMP_64</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="preprocessor"> #if _WIN64 || defined(_LP64)</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="preprocessor"> #define XMP_64 1</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="preprocessor"> #else</span></div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="XMP__Environment_8h.html#a69ebf613b248c1e76ae5dbdeee505881"> 129</a></span>&#160;<span class="preprocessor"> #define XMP_64 0</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="comment">// Macintosh Specific Settings</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="comment">// ===========================</span></div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="preprocessor">#if (XMP_MacBuild)</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="preprocessor"> #define XMP_HELPER_DLL_IMPORT __attribute__((visibility(&quot;default&quot;)))</span></div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="preprocessor"> #define XMP_HELPER_DLL_EXPORT __attribute__((visibility(&quot;default&quot;)))</span></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="preprocessor"> #define XMP_HELPER_DLL_PRIVATE __attribute__((visibility(&quot;hidden&quot;)))</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="preprocessor"> #define APICALL </span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="comment">// Windows Specific Settings</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="comment">// =========================</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="preprocessor">#if (XMP_WinBuild)</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="preprocessor"> #define XMP_HELPER_DLL_IMPORT</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="preprocessor"> #define XMP_HELPER_DLL_EXPORT</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="preprocessor"> #define XMP_HELPER_DLL_PRIVATE</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="preprocessor"> #define APICALL __stdcall</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="comment">// UNIX Specific Settings</span></div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="comment">// ======================</span></div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="preprocessor">#if (XMP_UNIXBuild)</span></div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="preprocessor"> #define XMP_HELPER_DLL_IMPORT</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="preprocessor"> #define XMP_HELPER_DLL_EXPORT __attribute__ ((visibility (&quot;default&quot;)))</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="preprocessor"> #define XMP_HELPER_DLL_PRIVATE __attribute__ ((visibility (&quot;hidden&quot;)))</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="preprocessor"> #define APICALL </span></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="comment">// IOS Specific Settings</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="comment">// ===========================</span></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="preprocessor">#if (XMP_iOSBuild)</span></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="preprocessor"> #include &lt;TargetConditionals.h&gt;</span></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="preprocessor"> #if (TARGET_CPU_ARM)</span></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="preprocessor"> #define XMP_IOS_ARM 1</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="preprocessor"> #else</span></div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="preprocessor"> #define XMP_IOS_ARM 0</span></div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="preprocessor"> #define XMP_HELPER_DLL_IMPORT __attribute__((visibility(&quot;default&quot;)))</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="preprocessor"> #define XMP_HELPER_DLL_EXPORT __attribute__((visibility(&quot;default&quot;)))</span></div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="preprocessor"> #define XMP_HELPER_DLL_PRIVATE __attribute__((visibility(&quot;hidden&quot;)))</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="preprocessor"> #define APICALL </span></div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="preprocessor">#if (XMP_DynamicBuild)</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="preprocessor"> #define XMP_PUBLIC XMP_HELPER_DLL_EXPORT</span></div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="preprocessor"> #define XMP_PRIVATE XMP_HELPER_DLL_PRIVATE</span></div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="preprocessor">#elif (XMP_StaticBuild)</span></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="preprocessor"> #define XMP_PUBLIC</span></div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="preprocessor"> #define XMP_PRIVATE</span></div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b"> 188</a></span>&#160;<span class="preprocessor"> #define XMP_PUBLIC XMP_HELPER_DLL_IMPORT</span></div><div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747"> 189</a></span>&#160;<span class="preprocessor"> #define XMP_PRIVATE XMP_HELPER_DLL_PRIVATE</span></div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="preprocessor">#endif // __XMP_Environment_h__</span></div></div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/XMP__IO_8hpp.html b/docs/API/XMP__IO_8hpp.html
new file mode 100755
index 0000000..bc6e4df
--- /dev/null
+++ b/docs/API/XMP__IO_8hpp.html
@@ -0,0 +1,61 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMP_IO.hpp File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('XMP__IO_8hpp.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">XMP_IO.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="XMP__Environment_8h_source.html">XMP_Environment.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>&quot;</code><br />
+</div>
+<p><a href="XMP__IO_8hpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMP__IO.html">XMP_IO</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract base class for client-managed I/O with <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file. ">TXMPFiles</a></code>. <a href="classXMP__IO.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/XMP__IO_8hpp_source.html b/docs/API/XMP__IO_8hpp_source.html
new file mode 100755
index 0000000..07aefe6
--- /dev/null
+++ b/docs/API/XMP__IO_8hpp_source.html
@@ -0,0 +1,71 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMP_IO.hpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('XMP__IO_8hpp_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">XMP_IO.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="XMP__IO_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __XMP_IO_hpp__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __XMP_IO_hpp__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// ADOBE SYSTEMS INCORPORATED</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// Copyright 2010 Adobe Systems Incorporated</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// All Rights Reserved</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="XMP__Environment_8h.html">XMP_Environment.h</a>&quot;</span> <span class="comment">// ! XMP_Environment.h must be the first included header.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="XMP__Const_8h.html">XMP_Const.h</a>&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment"></span><span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="classXMP__IO.html"> 42</a></span>&#160;<span class="keyword">class </span><a class="code" href="classXMP__IO.html">XMP_IO</a> {</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classXMP__IO.html#af77f9218892471ffad4586413ecd0dcaa148a2bca28df5b2d143590aae5153b55"> 59</a></span>&#160; <span class="keyword">enum</span> { <a class="code" href="classXMP__IO.html#af77f9218892471ffad4586413ecd0dcaa148a2bca28df5b2d143590aae5153b55">kReadAll</a> = <span class="keyword">true</span> };</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">virtual</span> XMP_Uns32 <a class="code" href="classXMP__IO.html#a0a0db95509e567f29f34570d5042aa54">Read</a> ( <span class="keywordtype">void</span>* buffer, XMP_Uns32 count, <span class="keywordtype">bool</span> readAll = <span class="keyword">false</span> ) = 0;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classXMP__IO.html#a0d0b45799793c5fa3dc567556f93cceb"> 63</a></span>&#160; <span class="keyword">inline</span> XMP_Uns32 <a class="code" href="classXMP__IO.html#a0d0b45799793c5fa3dc567556f93cceb">ReadAll</a> ( <span class="keywordtype">void</span>* buffer, XMP_Uns32 bytes )</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; { <span class="keywordflow">return</span> this-&gt;<a class="code" href="classXMP__IO.html#a0a0db95509e567f29f34570d5042aa54">Read</a> ( buffer, bytes, <a class="code" href="classXMP__IO.html#af77f9218892471ffad4586413ecd0dcaa148a2bca28df5b2d143590aae5153b55">kReadAll</a> ); };</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classXMP__IO.html#ab48d705ca0e3fb22d84c7a323951f8e4">Write</a> ( <span class="keyword">const</span> <span class="keywordtype">void</span>* buffer, XMP_Uns32 count ) = 0;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">virtual</span> XMP_Int64 <a class="code" href="classXMP__IO.html#a9c05bb22ecc75e71ecc546bcb756d628">Seek</a> ( XMP_Int64 offset, <a class="code" href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563f">SeekMode</a> mode ) = 0;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="classXMP__IO.html#aa14274c6ed95da83a95e8786b7b1a91e"> 92</a></span>&#160; <span class="keyword">inline</span> XMP_Int64 <a class="code" href="classXMP__IO.html#aa14274c6ed95da83a95e8786b7b1a91e">Offset</a>() { <span class="keywordflow">return</span> this-&gt;<a class="code" href="classXMP__IO.html#a9c05bb22ecc75e71ecc546bcb756d628">Seek</a> ( 0, <a class="code" href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563fa4e179367a02390075e632aca6e115925">kXMP_SeekFromCurrent</a> ); };</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="classXMP__IO.html#a456f92ca90a83095dbd90786a26b64e1"> 93</a></span>&#160; <span class="keyword">inline</span> XMP_Int64 <a class="code" href="classXMP__IO.html#a456f92ca90a83095dbd90786a26b64e1">Rewind</a>() { <span class="keywordflow">return</span> this-&gt;<a class="code" href="classXMP__IO.html#a9c05bb22ecc75e71ecc546bcb756d628">Seek</a> ( 0, <a class="code" href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563faf52720b8c894653e4a089a9c0331ee47">kXMP_SeekFromStart</a> ); }; <span class="comment">// Always returns 0.</span></div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classXMP__IO.html#a51b53ca05c5627da08cd934a9ed8b281"> 94</a></span>&#160; <span class="keyword">inline</span> XMP_Int64 <a class="code" href="classXMP__IO.html#a51b53ca05c5627da08cd934a9ed8b281">ToEOF</a>() { <span class="keywordflow">return</span> this-&gt;<a class="code" href="classXMP__IO.html#a9c05bb22ecc75e71ecc546bcb756d628">Seek</a> ( 0, <a class="code" href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563faeedc991a0194b932ae4a47307843baf6">kXMP_SeekFromEnd</a> ); };</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">virtual</span> XMP_Int64 <a class="code" href="classXMP__IO.html#af4fe442d5f7ea3d062bb5dfeadfa2335">Length</a>() = 0;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classXMP__IO.html#af7dc2bd067498a651597a6b128f02dbb">Truncate</a> ( XMP_Int64 length ) = 0;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classXMP__IO.html">XMP_IO</a>* <a class="code" href="classXMP__IO.html#ac989de23f8fed2efcca71f5a3aa35695">DeriveTemp</a>() = 0;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classXMP__IO.html#aad4cf42485e9d8319a07f4ecdde4ee34">AbsorbTemp</a>() = 0;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classXMP__IO.html#a337ddf3f954d2b4e8dce1d70d8c33ddb">DeleteTemp</a>() = 0;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="classXMP__IO.html#a38ca896e79705a0e4228eb67d3426c65"> 157</a></span>&#160; <a class="code" href="classXMP__IO.html#a38ca896e79705a0e4228eb67d3426c65">XMP_IO</a>() {};</div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="classXMP__IO.html#a52825d62e1a93ae1ee157d68860b6815"> 158</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classXMP__IO.html#a52825d62e1a93ae1ee157d68860b6815">~XMP_IO</a>() {};</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="comment">// ---------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <a class="code" href="classXMP__IO.html#a38ca896e79705a0e4228eb67d3426c65">XMP_IO</a> ( <span class="keyword">const</span> <a class="code" href="classXMP__IO.html">XMP_IO</a> &amp; original );</div><div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="classXMP__IO.html#a18227546a6e759409dfd48a00b9a0748"> 167</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classXMP__IO.html#a18227546a6e759409dfd48a00b9a0748">operator= </a>( <span class="keyword">const</span> <a class="code" href="classXMP__IO.html">XMP_IO</a>&amp; in ) { *<span class="keyword">this</span> = in; <span class="comment">/* Avoid Win compile warnings. */</span> };</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;};</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="preprocessor">#endif // __XMP_IO_hpp__</span></div><div class="ttc" id="classXMP__IO_html"><div class="ttname"><a href="classXMP__IO.html">XMP_IO</a></div><div class="ttdoc">Abstract base class for client-managed I/O with TXMPFiles. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__IO_8hpp_source.html#l00042">XMP_IO.hpp:42</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html"><div class="ttname"><a href="XMP__Const_8h.html">XMP_Const.h</a></div><div class="ttdoc">Common C/C++ types and constants for the XMP toolkit. </div></div>
+<div class="ttc" id="classXMP__IO_html_aa14274c6ed95da83a95e8786b7b1a91e"><div class="ttname"><a href="classXMP__IO.html#aa14274c6ed95da83a95e8786b7b1a91e">XMP_IO::Offset</a></div><div class="ttdeci">XMP_Int64 Offset()</div><div class="ttdef"><b>Definition:</b> <a href="XMP__IO_8hpp_source.html#l00092">XMP_IO.hpp:92</a></div></div>
+<div class="ttc" id="classXMP__IO_html_a38ca896e79705a0e4228eb67d3426c65"><div class="ttname"><a href="classXMP__IO.html#a38ca896e79705a0e4228eb67d3426c65">XMP_IO::XMP_IO</a></div><div class="ttdeci">XMP_IO()</div><div class="ttdef"><b>Definition:</b> <a href="XMP__IO_8hpp_source.html#l00157">XMP_IO.hpp:157</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a84d76d32dd4ef90e5a90cf759b7e563fa4e179367a02390075e632aca6e115925"><div class="ttname"><a href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563fa4e179367a02390075e632aca6e115925">kXMP_SeekFromCurrent</a></div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00867">XMP_Const.h:867</a></div></div>
+<div class="ttc" id="classXMP__IO_html_af4fe442d5f7ea3d062bb5dfeadfa2335"><div class="ttname"><a href="classXMP__IO.html#af4fe442d5f7ea3d062bb5dfeadfa2335">XMP_IO::Length</a></div><div class="ttdeci">virtual XMP_Int64 Length()=0</div><div class="ttdoc">Return the length of the file in bytes. </div></div>
+<div class="ttc" id="classXMP__IO_html_a51b53ca05c5627da08cd934a9ed8b281"><div class="ttname"><a href="classXMP__IO.html#a51b53ca05c5627da08cd934a9ed8b281">XMP_IO::ToEOF</a></div><div class="ttdeci">XMP_Int64 ToEOF()</div><div class="ttdef"><b>Definition:</b> <a href="XMP__IO_8hpp_source.html#l00094">XMP_IO.hpp:94</a></div></div>
+<div class="ttc" id="classXMP__IO_html_af77f9218892471ffad4586413ecd0dcaa148a2bca28df5b2d143590aae5153b55"><div class="ttname"><a href="classXMP__IO.html#af77f9218892471ffad4586413ecd0dcaa148a2bca28df5b2d143590aae5153b55">XMP_IO::kReadAll</a></div><div class="ttdef"><b>Definition:</b> <a href="XMP__IO_8hpp_source.html#l00059">XMP_IO.hpp:59</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a84d76d32dd4ef90e5a90cf759b7e563f"><div class="ttname"><a href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563f">SeekMode</a></div><div class="ttdeci">SeekMode</div><div class="ttdoc">Seek mode constants for use with XMP_IO and inside XMPFiles library code. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00867">XMP_Const.h:867</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a84d76d32dd4ef90e5a90cf759b7e563faf52720b8c894653e4a089a9c0331ee47"><div class="ttname"><a href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563faf52720b8c894653e4a089a9c0331ee47">kXMP_SeekFromStart</a></div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00867">XMP_Const.h:867</a></div></div>
+<div class="ttc" id="XMP__Environment_8h_html"><div class="ttname"><a href="XMP__Environment_8h.html">XMP_Environment.h</a></div></div>
+<div class="ttc" id="classXMP__IO_html_aad4cf42485e9d8319a07f4ecdde4ee34"><div class="ttname"><a href="classXMP__IO.html#aad4cf42485e9d8319a07f4ecdde4ee34">XMP_IO::AbsorbTemp</a></div><div class="ttdeci">virtual void AbsorbTemp()=0</div><div class="ttdoc">Replace the owning file&amp;#39;s content with that of the temp. </div></div>
+<div class="ttc" id="classXMP__IO_html_a18227546a6e759409dfd48a00b9a0748"><div class="ttname"><a href="classXMP__IO.html#a18227546a6e759409dfd48a00b9a0748">XMP_IO::operator=</a></div><div class="ttdeci">void operator=(const XMP_IO &amp;in)</div><div class="ttdef"><b>Definition:</b> <a href="XMP__IO_8hpp_source.html#l00167">XMP_IO.hpp:167</a></div></div>
+<div class="ttc" id="classXMP__IO_html_a456f92ca90a83095dbd90786a26b64e1"><div class="ttname"><a href="classXMP__IO.html#a456f92ca90a83095dbd90786a26b64e1">XMP_IO::Rewind</a></div><div class="ttdeci">XMP_Int64 Rewind()</div><div class="ttdef"><b>Definition:</b> <a href="XMP__IO_8hpp_source.html#l00093">XMP_IO.hpp:93</a></div></div>
+<div class="ttc" id="classXMP__IO_html_a0a0db95509e567f29f34570d5042aa54"><div class="ttname"><a href="classXMP__IO.html#a0a0db95509e567f29f34570d5042aa54">XMP_IO::Read</a></div><div class="ttdeci">virtual XMP_Uns32 Read(void *buffer, XMP_Uns32 count, bool readAll=false)=0</div></div>
+<div class="ttc" id="classXMP__IO_html_a337ddf3f954d2b4e8dce1d70d8c33ddb"><div class="ttname"><a href="classXMP__IO.html#a337ddf3f954d2b4e8dce1d70d8c33ddb">XMP_IO::DeleteTemp</a></div><div class="ttdeci">virtual void DeleteTemp()=0</div><div class="ttdoc">Delete a temp file, leaving the original alone. </div></div>
+<div class="ttc" id="XMP__Const_8h_html_a84d76d32dd4ef90e5a90cf759b7e563faeedc991a0194b932ae4a47307843baf6"><div class="ttname"><a href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563faeedc991a0194b932ae4a47307843baf6">kXMP_SeekFromEnd</a></div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00867">XMP_Const.h:867</a></div></div>
+<div class="ttc" id="classXMP__IO_html_a9c05bb22ecc75e71ecc546bcb756d628"><div class="ttname"><a href="classXMP__IO.html#a9c05bb22ecc75e71ecc546bcb756d628">XMP_IO::Seek</a></div><div class="ttdeci">virtual XMP_Int64 Seek(XMP_Int64 offset, SeekMode mode)=0</div><div class="ttdoc">Set the I/O position, returning the new absolute offset in bytes. </div></div>
+<div class="ttc" id="classXMP__IO_html_ac989de23f8fed2efcca71f5a3aa35695"><div class="ttname"><a href="classXMP__IO.html#ac989de23f8fed2efcca71f5a3aa35695">XMP_IO::DeriveTemp</a></div><div class="ttdeci">virtual XMP_IO * DeriveTemp()=0</div><div class="ttdoc">Create an associated temp file for use in a safe-save style operation. </div></div>
+<div class="ttc" id="classXMP__IO_html_a52825d62e1a93ae1ee157d68860b6815"><div class="ttname"><a href="classXMP__IO.html#a52825d62e1a93ae1ee157d68860b6815">XMP_IO::~XMP_IO</a></div><div class="ttdeci">virtual ~XMP_IO()</div><div class="ttdef"><b>Definition:</b> <a href="XMP__IO_8hpp_source.html#l00158">XMP_IO.hpp:158</a></div></div>
+<div class="ttc" id="classXMP__IO_html_af7dc2bd067498a651597a6b128f02dbb"><div class="ttname"><a href="classXMP__IO.html#af7dc2bd067498a651597a6b128f02dbb">XMP_IO::Truncate</a></div><div class="ttdeci">virtual void Truncate(XMP_Int64 length)=0</div><div class="ttdoc">Truncate the file to the given length. </div></div>
+<div class="ttc" id="classXMP__IO_html_a0d0b45799793c5fa3dc567556f93cceb"><div class="ttname"><a href="classXMP__IO.html#a0d0b45799793c5fa3dc567556f93cceb">XMP_IO::ReadAll</a></div><div class="ttdeci">XMP_Uns32 ReadAll(void *buffer, XMP_Uns32 bytes)</div><div class="ttdef"><b>Definition:</b> <a href="XMP__IO_8hpp_source.html#l00063">XMP_IO.hpp:63</a></div></div>
+<div class="ttc" id="classXMP__IO_html_ab48d705ca0e3fb22d84c7a323951f8e4"><div class="ttname"><a href="classXMP__IO.html#ab48d705ca0e3fb22d84c7a323951f8e4">XMP_IO::Write</a></div><div class="ttdeci">virtual void Write(const void *buffer, XMP_Uns32 count)=0</div><div class="ttdoc">Write from a buffer. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/XMP__Version_8h.html b/docs/API/XMP__Version_8h.html
new file mode 100755
index 0000000..32ddd19
--- /dev/null
+++ b/docs/API/XMP__Version_8h.html
@@ -0,0 +1,220 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMP_Version.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('XMP__Version_8h.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#define-members">Macros</a> </div>
+ <div class="headertitle">
+<div class="title">XMP_Version.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="XMP__Version_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:aac716764f5886d3aa2cae548de31914d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Version_8h.html#aac716764f5886d3aa2cae548de31914d">XMPCORE_API_VERSION_MAJOR</a>&#160;&#160;&#160;5</td></tr>
+<tr class="separator:aac716764f5886d3aa2cae548de31914d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9c0c98c086845899204c31cd7e40ee66"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Version_8h.html#a9c0c98c086845899204c31cd7e40ee66">XMPCORE_API_VERSION_MINOR</a>&#160;&#160;&#160;6</td></tr>
+<tr class="separator:a9c0c98c086845899204c31cd7e40ee66"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a23b73225c458457027b81af90253a36d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Version_8h.html#a23b73225c458457027b81af90253a36d">XMPCORE_API_VERSION_MICRO</a>&#160;&#160;&#160;0</td></tr>
+<tr class="separator:a23b73225c458457027b81af90253a36d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac041954a884c9a67412ce45fd8b93ba8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Version_8h.html#ac041954a884c9a67412ce45fd8b93ba8">XMPCORE_API_VERSION</a>&#160;&#160;&#160;5.6.0</td></tr>
+<tr class="separator:ac041954a884c9a67412ce45fd8b93ba8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a980a28c05c998865f032cda8057530dd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Version_8h.html#a980a28c05c998865f032cda8057530dd">XMPCORE_API_VERSION_STRING</a>&#160;&#160;&#160;&quot;5.6.0&quot;</td></tr>
+<tr class="separator:a980a28c05c998865f032cda8057530dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2d20bc110f01b87d6456f9db1169d0f2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Version_8h.html#a2d20bc110f01b87d6456f9db1169d0f2">XMPFILES_API_VERSION_MAJOR</a>&#160;&#160;&#160;5</td></tr>
+<tr class="separator:a2d20bc110f01b87d6456f9db1169d0f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a824cb65b80a8e7a2a434e3c7e90e34c1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Version_8h.html#a824cb65b80a8e7a2a434e3c7e90e34c1">XMPFILES_API_VERSION_MINOR</a>&#160;&#160;&#160;7</td></tr>
+<tr class="separator:a824cb65b80a8e7a2a434e3c7e90e34c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab50f056612c375f3f3ec2c2bd4b15c20"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Version_8h.html#ab50f056612c375f3f3ec2c2bd4b15c20">XMPFILES_API_VERSION_MICRO</a>&#160;&#160;&#160;0</td></tr>
+<tr class="separator:ab50f056612c375f3f3ec2c2bd4b15c20"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad887c030e319e8ec87b2bb219b411eba"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Version_8h.html#ad887c030e319e8ec87b2bb219b411eba">XMPFILES_API_VERSION</a>&#160;&#160;&#160;5.7.0</td></tr>
+<tr class="separator:ad887c030e319e8ec87b2bb219b411eba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a76ec48e8c62eb491e18c98b620d83826"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Version_8h.html#a76ec48e8c62eb491e18c98b620d83826">XMPFILES_API_VERSION_STRING</a>&#160;&#160;&#160;&quot;5.7.0&quot;</td></tr>
+<tr class="separator:a76ec48e8c62eb491e18c98b620d83826"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="ac041954a884c9a67412ce45fd8b93ba8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define XMPCORE_API_VERSION&#160;&#160;&#160;5.6.0</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Version_8h_source.html#l00040">40</a> of file <a class="el" href="XMP__Version_8h_source.html">XMP_Version.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aac716764f5886d3aa2cae548de31914d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define XMPCORE_API_VERSION_MAJOR&#160;&#160;&#160;5</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>XMP Toolkit Version Information</p>
+<p>Version information for the XMP toolkit is stored in the executable and available through a runtime call, <code>SXMPMeta::GetVersionInfo</code>. In addition a static version number is defined in this header. The information in the executable or returned by <code>SXMPMeta::GetVersionInfo</code> is about the implementation internals, it is runtime version information. The values defined in this header describe the version of the API used at client compile time. They do not necessarily relate to the runtime version.</p>
+<p>Important: Do not display the static values defined here to users as the version of XMP in use. Do not base runtime decisions on just this static version. It is OK to compare the static and runtime versions. </p>
+
+<p>Definition at line <a class="el" href="XMP__Version_8h_source.html#l00036">36</a> of file <a class="el" href="XMP__Version_8h_source.html">XMP_Version.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a23b73225c458457027b81af90253a36d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define XMPCORE_API_VERSION_MICRO&#160;&#160;&#160;0</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Version_8h_source.html#l00038">38</a> of file <a class="el" href="XMP__Version_8h_source.html">XMP_Version.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9c0c98c086845899204c31cd7e40ee66"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define XMPCORE_API_VERSION_MINOR&#160;&#160;&#160;6</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Version_8h_source.html#l00037">37</a> of file <a class="el" href="XMP__Version_8h_source.html">XMP_Version.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a980a28c05c998865f032cda8057530dd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define XMPCORE_API_VERSION_STRING&#160;&#160;&#160;&quot;5.6.0&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Version_8h_source.html#l00041">41</a> of file <a class="el" href="XMP__Version_8h_source.html">XMP_Version.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad887c030e319e8ec87b2bb219b411eba"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define XMPFILES_API_VERSION&#160;&#160;&#160;5.7.0</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Version_8h_source.html#l00047">47</a> of file <a class="el" href="XMP__Version_8h_source.html">XMP_Version.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2d20bc110f01b87d6456f9db1169d0f2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define XMPFILES_API_VERSION_MAJOR&#160;&#160;&#160;5</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Version_8h_source.html#l00043">43</a> of file <a class="el" href="XMP__Version_8h_source.html">XMP_Version.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab50f056612c375f3f3ec2c2bd4b15c20"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define XMPFILES_API_VERSION_MICRO&#160;&#160;&#160;0</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Version_8h_source.html#l00045">45</a> of file <a class="el" href="XMP__Version_8h_source.html">XMP_Version.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a824cb65b80a8e7a2a434e3c7e90e34c1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define XMPFILES_API_VERSION_MINOR&#160;&#160;&#160;7</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Version_8h_source.html#l00044">44</a> of file <a class="el" href="XMP__Version_8h_source.html">XMP_Version.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a76ec48e8c62eb491e18c98b620d83826"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define XMPFILES_API_VERSION_STRING&#160;&#160;&#160;&quot;5.7.0&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__Version_8h_source.html#l00048">48</a> of file <a class="el" href="XMP__Version_8h_source.html">XMP_Version.h</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/XMP__Version_8h.js b/docs/API/XMP__Version_8h.js
new file mode 100755
index 0000000..0473456
--- /dev/null
+++ b/docs/API/XMP__Version_8h.js
@@ -0,0 +1,13 @@
+var XMP__Version_8h =
+[
+ [ "XMPCORE_API_VERSION", "XMP__Version_8h.html#ac041954a884c9a67412ce45fd8b93ba8", null ],
+ [ "XMPCORE_API_VERSION_MAJOR", "XMP__Version_8h.html#aac716764f5886d3aa2cae548de31914d", null ],
+ [ "XMPCORE_API_VERSION_MICRO", "XMP__Version_8h.html#a23b73225c458457027b81af90253a36d", null ],
+ [ "XMPCORE_API_VERSION_MINOR", "XMP__Version_8h.html#a9c0c98c086845899204c31cd7e40ee66", null ],
+ [ "XMPCORE_API_VERSION_STRING", "XMP__Version_8h.html#a980a28c05c998865f032cda8057530dd", null ],
+ [ "XMPFILES_API_VERSION", "XMP__Version_8h.html#ad887c030e319e8ec87b2bb219b411eba", null ],
+ [ "XMPFILES_API_VERSION_MAJOR", "XMP__Version_8h.html#a2d20bc110f01b87d6456f9db1169d0f2", null ],
+ [ "XMPFILES_API_VERSION_MICRO", "XMP__Version_8h.html#ab50f056612c375f3f3ec2c2bd4b15c20", null ],
+ [ "XMPFILES_API_VERSION_MINOR", "XMP__Version_8h.html#a824cb65b80a8e7a2a434e3c7e90e34c1", null ],
+ [ "XMPFILES_API_VERSION_STRING", "XMP__Version_8h.html#a76ec48e8c62eb491e18c98b620d83826", null ]
+]; \ No newline at end of file
diff --git a/docs/API/XMP__Version_8h_source.html b/docs/API/XMP__Version_8h_source.html
new file mode 100755
index 0000000..e047ac3
--- /dev/null
+++ b/docs/API/XMP__Version_8h_source.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMP_Version.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('XMP__Version_8h_source.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">XMP_Version.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="XMP__Version_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __XMP_Version_h__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __XMP_Version_h__ 1</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">/* --------------------------------------------------------------------------------------------- */</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">/* ** IMPORTANT ** This file must be usable by strict ANSI C compilers. No &quot;//&quot; comments, etc. */</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">/* --------------------------------------------------------------------------------------------- */</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// Copyright 2002 Adobe Systems Incorporated</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// All Rights Reserved.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// =================================================================================================</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">/* ============================================================================================= */</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment">/* ============================================================================================= */</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="XMP__Version_8h.html#aac716764f5886d3aa2cae548de31914d"> 36</a></span>&#160;<span class="preprocessor">#define XMPCORE_API_VERSION_MAJOR 5</span></div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="XMP__Version_8h.html#a9c0c98c086845899204c31cd7e40ee66"> 37</a></span>&#160;<span class="preprocessor">#define XMPCORE_API_VERSION_MINOR 6</span></div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="XMP__Version_8h.html#a23b73225c458457027b81af90253a36d"> 38</a></span>&#160;<span class="preprocessor">#define XMPCORE_API_VERSION_MICRO 0</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="XMP__Version_8h.html#ac041954a884c9a67412ce45fd8b93ba8"> 40</a></span>&#160;<span class="preprocessor">#define XMPCORE_API_VERSION 5.6.0</span></div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="XMP__Version_8h.html#a980a28c05c998865f032cda8057530dd"> 41</a></span>&#160;<span class="preprocessor">#define XMPCORE_API_VERSION_STRING &quot;5.6.0&quot;</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="XMP__Version_8h.html#a2d20bc110f01b87d6456f9db1169d0f2"> 43</a></span>&#160;<span class="preprocessor">#define XMPFILES_API_VERSION_MAJOR 5</span></div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="XMP__Version_8h.html#a824cb65b80a8e7a2a434e3c7e90e34c1"> 44</a></span>&#160;<span class="preprocessor">#define XMPFILES_API_VERSION_MINOR 7</span></div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="XMP__Version_8h.html#ab50f056612c375f3f3ec2c2bd4b15c20"> 45</a></span>&#160;<span class="preprocessor">#define XMPFILES_API_VERSION_MICRO 0</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="XMP__Version_8h.html#ad887c030e319e8ec87b2bb219b411eba"> 47</a></span>&#160;<span class="preprocessor">#define XMPFILES_API_VERSION 5.7.0</span></div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="XMP__Version_8h.html#a76ec48e8c62eb491e18c98b620d83826"> 48</a></span>&#160;<span class="preprocessor">#define XMPFILES_API_VERSION_STRING &quot;5.7.0&quot;</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment">/* ============================================================================================= */</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* __XMP_Version_h__ */</span><span class="preprocessor"></span></div></div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/annotated.html b/docs/API/annotated.html
index 3f97302..10cce63 100644..100755
--- a/docs/API/annotated.html
+++ b/docs/API/annotated.html
@@ -1,80 +1,96 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: Class List</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
+<title>Class List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
- <li class="current"><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
- <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('annotated.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">Class List</div> </div>
+</div><!--header-->
<div class="contents">
-<h1>Class List</h1>Here are the classes, structs, unions and interfaces with brief descriptions:<table>
- <tr><td class="indexkey"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td class="indexvalue">API for access to the main (document-level) metadata in a file </td></tr>
- <tr><td class="indexkey"><a class="el" href="classTXMPIterator.html">TXMPIterator&lt; tStringObj &gt;</a></td><td class="indexvalue">API for access to the XMP Toolkit iteration services </td></tr>
- <tr><td class="indexkey"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="indexvalue">API for access to the XMP Toolkit core services </td></tr>
- <tr><td class="indexkey"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td class="indexvalue">API for access to the XMP Toolkit utility services </td></tr>
- <tr><td class="indexkey"><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a></td><td class="indexvalue">The expanded type for a date and time </td></tr>
- <tr><td class="indexkey"><a class="el" href="classXMP__Error.html">XMP_Error</a></td><td class="indexvalue">XMP Toolkit error, associates an error code with a descriptive error string </td></tr>
- <tr><td class="indexkey"><a class="el" href="structXMP__PacketInfo.html">XMP_PacketInfo</a></td><td class="indexvalue">XMP packet description </td></tr>
- <tr><td class="indexkey"><a class="el" href="structXMP__VersionInfo.html">XMP_VersionInfo</a></td><td class="indexvalue">XMP Toolkit version information </td></tr>
+<div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class="directory">
+<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span>]</div><table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceAdobeXMPCommon.html" target="_self">AdobeXMPCommon</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_0_" class="arrow" onclick="toggleFolder('0_0_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html" target="_self">IConfigurable</a></td><td class="desc">Interface that allows to attach various key-value parameters to the underlying object </td></tr>
+<tr id="row_0_0_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html" target="_self">CombinedDataValue</a></td><td class="desc">A union data type to store all kind of values </td></tr>
+<tr id="row_0_1_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html" target="_self">IConfigurationManager_v1</a></td><td class="desc">Version1 of the interface that represents configuration settings controllable by the client </td></tr>
+<tr id="row_0_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html" target="_self">IConfigurationManagerProxy</a></td><td class="desc"></td></tr>
+<tr id="row_0_3_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html" target="_self">IError_v1</a></td><td class="desc">Version1 of the interface that represents an error/warning encountered during processing </td></tr>
+<tr id="row_0_4_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCommon_1_1IErrorNotifier__v1.html" target="_self">IErrorNotifier_v1</a></td><td class="desc">Version1 of the interface that represents an interface to be implemented by client in case he is interested in getting notifications with respect to errors/warnings encountered by library </td></tr>
+<tr id="row_0_5_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html" target="_self">IMemoryAllocator_v1</a></td><td class="desc">Version1 of the interface that represents an interface to be implemented by client in case he is interested in controlling the memory allocation and deallocation on the heap </td></tr>
+<tr id="row_0_6_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html" target="_self">IObjectFactory_v1</a></td><td class="desc">Version1 of a interface that represents a factory to create various artifacts defined within <a class="el" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a> namespace </td></tr>
+<tr id="row_0_7_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html" target="_self">ISharedObject</a></td><td class="desc">Interface that serves as the base interface of all the externally exposed interfaces </td></tr>
+<tr id="row_0_8_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html" target="_self">IThreadSafe</a></td><td class="desc">Interface that serves as the base interface for all the externally exposed interfaces which needs to provide client configurable thread safety </td></tr>
+<tr id="row_0_9_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html" target="_self">IUTF8String_v1</a></td><td class="desc">Version1 of the interface that represents an UTF8String </td></tr>
+<tr id="row_0_10_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html" target="_self">IVersionable</a></td><td class="desc">Interface that serves as the base interface for all the externally exposed interfaces which needs to provide evolving versions of the interface </td></tr>
+<tr id="row_0_11_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html" target="_self">ReportErrorAndContinueFunctor</a></td><td class="desc">A Function object used by the client to report back and warnings to the library encountered during the serialization operation </td></tr>
+<tr id="row_1_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_1_" class="arrow" onclick="toggleFolder('1_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceAdobeXMPCore.html" target="_self">AdobeXMPCore</a></td><td class="desc"></td></tr>
+<tr id="row_1_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html" target="_self">IArrayNode_v1</a></td><td class="desc">Version1 of the interface that represents an Array Node of XMP DOM </td></tr>
+<tr id="row_1_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html" target="_self">IClientDOMParser_v1</a></td><td class="desc">Version 1 of the interface that supports parsing by the client supplied parser of the XMP Data Model </td></tr>
+<tr id="row_1_2_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html" target="_self">IClientDOMSerializer_v1</a></td><td class="desc">Version 1 of the interface that supports serializing by the client supplied serializer of the XMP Data Model </td></tr>
+<tr id="row_1_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html" target="_self">ICompositeNode_v1</a></td><td class="desc">Version1 of the interface that serves as a base interface to all composite types of nodes in the XMP DOM ( like Arrays and Structures ) </td></tr>
+<tr id="row_1_4_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html" target="_self">ICoreConfigurationManager_v1</a></td><td class="desc">Version1 of the interface that represents configuration settings controllable by the client </td></tr>
+<tr id="row_1_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html" target="_self">ICoreObjectFactory_v1</a></td><td class="desc">Version1 of a interface that represents a factory to create various artifacts of XMP DOM like array, structure, path etc </td></tr>
+<tr id="row_1_6_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html" target="_self">IDOMImplementationRegistry_v1</a></td><td class="desc">Version1 of the interface that serves as a database/registry of all the parsers and serializers available with the XMPCore library </td></tr>
+<tr id="row_1_7_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html" target="_self">IDOMParser_v1</a></td><td class="desc">Version 1 of the interface that supports parsing of the XMP Data Model </td></tr>
+<tr id="row_1_8_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html" target="_self">IDOMSerializer_v1</a></td><td class="desc">Version1 of the interface that represents an object that can serialize an XMP Data Model to a buffer. Provides the functions to serialize the XMP Data Model </td></tr>
+<tr id="row_1_9_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html" target="_self">IMetadata_v1</a></td><td class="desc">Version1 of the interface that represents the whole xmp metadata for an asset </td></tr>
+<tr id="row_1_10_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html" target="_self">INameSpacePrefixMap_v1</a></td><td class="desc">Version1 of the interface that represents map where each entry consists of prefix string as the key and corresponding nameSpace string as its value </td></tr>
+<tr id="row_1_11_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1INode__v1.html" target="_self">INode_v1</a></td><td class="desc">Version1 of the interface that serves as a base interface to all types of nodes in the XMP DOM </td></tr>
+<tr id="row_1_12_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html" target="_self">INodeIterator_v1</a></td><td class="desc">Interface that represents an iterator over the mutable children of a XMP DOM Node </td></tr>
+<tr id="row_1_13_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1IPath__v1.html" target="_self">IPath_v1</a></td><td class="desc">Version1 of the interface that provides an easy iterative description of a specific path into the XMP tree </td></tr>
+<tr id="row_1_14_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html" target="_self">IPathSegment_v1</a></td><td class="desc">Version1 of the interface that represents one segment in a path to a node into the XMP tree </td></tr>
+<tr id="row_1_15_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html" target="_self">ISimpleNode_v1</a></td><td class="desc">Version1 of the interface that represents a Simple Property Node of XMP DOM </td></tr>
+<tr id="row_1_16_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html" target="_self">IStructureNode_v1</a></td><td class="desc">Version1 of the interface that represents a structure Node of XMP DOM </td></tr>
+<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classTXMPFiles.html" target="_self">TXMPFiles</a></td><td class="desc">API for access to the main (document-level) metadata in a file </td></tr>
+<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classTXMPIterator.html" target="_self">TXMPIterator</a></td><td class="desc">API for access to the XMP Toolkit iteration services </td></tr>
+<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classTXMPMeta.html" target="_self">TXMPMeta</a></td><td class="desc">API for access to the XMP Toolkit core services </td></tr>
+<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classTXMPUtils.html" target="_self">TXMPUtils</a></td><td class="desc">API for access to the XMP Toolkit utility services </td></tr>
+<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structWXMP__Result.html" target="_self">WXMP_Result</a></td><td class="desc"></td></tr>
+<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structXMP__DateTime.html" target="_self">XMP_DateTime</a></td><td class="desc">The expanded type for a date and time </td></tr>
+<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classXMP__Error.html" target="_self">XMP_Error</a></td><td class="desc">XMP Toolkit error, associates an error code with a descriptive error string </td></tr>
+<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classXMP__IO.html" target="_self">XMP_IO</a></td><td class="desc">Abstract base class for client-managed I/O with <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file. ">TXMPFiles</a></code> </td></tr>
+<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structXMP__PacketInfo.html" target="_self">XMP_PacketInfo</a></td><td class="desc">XMP packet description </td></tr>
+<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structXMP__VersionInfo.html" target="_self">XMP_VersionInfo</a></td><td class="desc">XMP Toolkit version information </td></tr>
</table>
-</div>
+</div><!-- directory -->
+</div><!-- contents -->
+</div><!-- doc-content -->
<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
</body>
</html>
diff --git a/docs/API/annotated_dup.js b/docs/API/annotated_dup.js
new file mode 100755
index 0000000..a04face
--- /dev/null
+++ b/docs/API/annotated_dup.js
@@ -0,0 +1,15 @@
+var annotated_dup =
+[
+ [ "AdobeXMPCommon", "namespaceAdobeXMPCommon.html", "namespaceAdobeXMPCommon" ],
+ [ "AdobeXMPCore", "namespaceAdobeXMPCore.html", "namespaceAdobeXMPCore" ],
+ [ "TXMPFiles", "classTXMPFiles.html", "classTXMPFiles" ],
+ [ "TXMPIterator", "classTXMPIterator.html", "classTXMPIterator" ],
+ [ "TXMPMeta", "classTXMPMeta.html", "classTXMPMeta" ],
+ [ "TXMPUtils", "classTXMPUtils.html", "classTXMPUtils" ],
+ [ "WXMP_Result", "structWXMP__Result.html", "structWXMP__Result" ],
+ [ "XMP_DateTime", "structXMP__DateTime.html", "structXMP__DateTime" ],
+ [ "XMP_Error", "classXMP__Error.html", "classXMP__Error" ],
+ [ "XMP_IO", "classXMP__IO.html", "classXMP__IO" ],
+ [ "XMP_PacketInfo", "structXMP__PacketInfo.html", "structXMP__PacketInfo" ],
+ [ "XMP_VersionInfo", "structXMP__VersionInfo.html", "structXMP__VersionInfo" ]
+]; \ No newline at end of file
diff --git a/docs/API/arrowdown.png b/docs/API/arrowdown.png
new file mode 100755
index 0000000..0b63f6d
--- /dev/null
+++ b/docs/API/arrowdown.png
Binary files differ
diff --git a/docs/API/arrowright.png b/docs/API/arrowright.png
new file mode 100755
index 0000000..c6ee22f
--- /dev/null
+++ b/docs/API/arrowright.png
Binary files differ
diff --git a/docs/API/bc_s.png b/docs/API/bc_s.png
new file mode 100755
index 0000000..224b29a
--- /dev/null
+++ b/docs/API/bc_s.png
Binary files differ
diff --git a/docs/API/bdwn.png b/docs/API/bdwn.png
new file mode 100755
index 0000000..940a0b9
--- /dev/null
+++ b/docs/API/bdwn.png
Binary files differ
diff --git a/docs/API/classAdobeXMPCommon_1_1IConfigurable-members.html b/docs/API/classAdobeXMPCommon_1_1IConfigurable-members.html
new file mode 100755
index 0000000..b4e93bf
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1IConfigurable-members.html
@@ -0,0 +1,85 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCommon_1_1IConfigurable.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">AdobeXMPCommon::IConfigurable Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a932bf0b8f4396de0e29f6c165954e5dc">ConvertCharBufferToUint64</a>(const char *key)</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1">eDataType</a> enum name</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad0e79a0e44353d08139358a56e8510fb">GetAllParameters</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a7e71691861d38ae351bdd42392b78af6">GetDataType</a>(const uint64 &amp;key) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#adc0c0be10213808b04e9cef27a0efa4c">GetParameter</a>(const uint64 &amp;key, bool &amp;value) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a11b855a90f26dee8d87b70ee485e6ec3">GetParameter</a>(const uint64 &amp;key, uint64 &amp;value) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#af655f02a3941826182ea54a2eb012e0d">GetParameter</a>(const uint64 &amp;key, int64 &amp;value) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#abc8b38df0036ec164aa6c108cdee9a5e">GetParameter</a>(const uint64 &amp;key, double &amp;value) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a4c35becce65c3cb18075f4cac9d57609">GetParameter</a>(const uint64 &amp;key, char &amp;value) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a6115940df0fe3a07749cbf4a2bb0acbb">GetParameter</a>(const uint64 &amp;key, const char *&amp;value) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a99fb34ba1e27e2e6cadea3755284cee1">GetParameter</a>(const uint64 &amp;key, const void *&amp;value) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ac321e3926928c7c9b58bab66d6270da5">IConfigurableProxy</a> class</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1ac5217140bec2fb51971d31759f24b81a">kDTAll</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1abdf14ab0f7a234fc99bc476dc4212f4e">kDTBool</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a01da29c7d11b67856b0e9d5f3fe4cdb4">kDTChar</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a8d6faef7e1737835b5007987ed99c48d">kDTConstCharBuffer</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a242c98a52e8d324027a00ee6f66d4c39">kDTConstVoidPtr</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a11c2a544d5ac467b22d7d10098237efa">kDTDouble</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a5c57cf68bc47c55815b5bfc1146df0c3">kDTInt64</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a0233b4bacf60f59232fd3fc0dee50a27">kDTNone</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1ad24c2bb370f5fa12dee346051c13409e">kDTUint64</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a046edf1c0c7d4f994295207dea1242f7">RemoveParameter</a>(const uint64 &amp;key)=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#abb69da6d73e4b56c30e56b43f5a37b9b">REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a174330a36f7e3d27cc0230698ff59313">SetParameter</a>(const uint64 &amp;key, bool value)=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#abc24d334364271934f6f8f1ac9051836">SetParameter</a>(const uint64 &amp;key, uint64 value)=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad248a17a9bc7ca1c189f353f62e829c4">SetParameter</a>(const uint64 &amp;key, int64 value)=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad3b3acdbd19e5860d3e5c5cdcffeb016">SetParameter</a>(const uint64 &amp;key, double value)=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a4f5a64d500f2fd8110f31a2b582e0759">SetParameter</a>(const uint64 &amp;key, char value)=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ae3de9436a04fcd5f6f8bd21fcc9a9edd">SetParameter</a>(const uint64 &amp;key, const char *value)=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a75784001a19ac899764807095e648c70">SetParameter</a>(const uint64 &amp;key, const void *value)=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a2a1e1d3f515d431478ec309fa9dcd977">Size</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a7c19f627db3d07e227e93a6a0e6b20ab">~IConfigurable</a>() __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCommon_1_1IConfigurable.html b/docs/API/classAdobeXMPCommon_1_1IConfigurable.html
new file mode 100755
index 0000000..8908247
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1IConfigurable.html
@@ -0,0 +1,964 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>AdobeXMPCommon::IConfigurable Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCommon_1_1IConfigurable.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#pub-types">Public Types</a> &#124;
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="#friends">Friends</a> &#124;
+<a href="classAdobeXMPCommon_1_1IConfigurable-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">AdobeXMPCommon::IConfigurable Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Interface that allows to attach various key-value parameters to the underlying object.
+ <a href="classAdobeXMPCommon_1_1IConfigurable.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="IConfigurable_8h_source.html">IConfigurable.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for AdobeXMPCommon::IConfigurable:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classAdobeXMPCommon_1_1IConfigurable.png" usemap="#AdobeXMPCommon::IConfigurable_map" alt=""/>
+ <map id="AdobeXMPCommon::IConfigurable_map" name="AdobeXMPCommon::IConfigurable_map">
+<area href="classAdobeXMPCore_1_1IDOMParser__v1.html" title="Version 1 of the interface that supports parsing of the XMP Data Model. " alt="AdobeXMPCore::IDOMParser_v1" shape="rect" coords="0,56,219,80"/>
+<area href="classAdobeXMPCore_1_1IDOMSerializer__v1.html" title="Version1 of the interface that represents an object that can serialize an XMP Data Model to a buffer..." alt="AdobeXMPCore::IDOMSerializer_v1" shape="rect" coords="229,56,448,80"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">union &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html">CombinedDataValue</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A union data type to store all kind of values. <a href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr class="memitem:ad64e6ae45633298b7158be2b0dce79a1"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1">eDataType</a> { <br />
+&#160;&#160;<a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a0233b4bacf60f59232fd3fc0dee50a27">kDTNone</a> = 0,
+<a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1abdf14ab0f7a234fc99bc476dc4212f4e">kDTBool</a> = 1 &lt;&lt; 0,
+<a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1ad24c2bb370f5fa12dee346051c13409e">kDTUint64</a> = 1 &lt;&lt; 1,
+<a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a5c57cf68bc47c55815b5bfc1146df0c3">kDTInt64</a> = 1 &lt;&lt; 2,
+<br />
+&#160;&#160;<a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a01da29c7d11b67856b0e9d5f3fe4cdb4">kDTChar</a> = 1 &lt;&lt; 3,
+<a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a11c2a544d5ac467b22d7d10098237efa">kDTDouble</a> = 1 &lt;&lt; 4,
+<a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a8d6faef7e1737835b5007987ed99c48d">kDTConstCharBuffer</a> = 1 &lt;&lt; 5,
+<a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a242c98a52e8d324027a00ee6f66d4c39">kDTConstVoidPtr</a> = 1 &lt;&lt; 6,
+<br />
+&#160;&#160;<a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1ac5217140bec2fb51971d31759f24b81a">kDTAll</a> = 0xFFFFFFFF
+<br />
+ }<tr class="memdesc:ad64e6ae45633298b7158be2b0dce79a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates various types of parameter values. <a href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:ad64e6ae45633298b7158be2b0dce79a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a046edf1c0c7d4f994295207dea1242f7"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a046edf1c0c7d4f994295207dea1242f7">RemoveParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key)=0</td></tr>
+<tr class="memdesc:a046edf1c0c7d4f994295207dea1242f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes a particular parameter if present. <a href="#a046edf1c0c7d4f994295207dea1242f7">More...</a><br /></td></tr>
+<tr class="separator:a046edf1c0c7d4f994295207dea1242f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad0e79a0e44353d08139358a56e8510fb"><td class="memItemLeft" align="right" valign="top">virtual std::vector&lt; <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &gt; APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad0e79a0e44353d08139358a56e8510fb">GetAllParameters</a> () const =0</td></tr>
+<tr class="memdesc:ad0e79a0e44353d08139358a56e8510fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get all the keys of the parameters associated with the object. <a href="#ad0e79a0e44353d08139358a56e8510fb">More...</a><br /></td></tr>
+<tr class="separator:ad0e79a0e44353d08139358a56e8510fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2a1e1d3f515d431478ec309fa9dcd977"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a2a1e1d3f515d431478ec309fa9dcd977">Size</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a2a1e1d3f515d431478ec309fa9dcd977"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of parameters associated with the object. <a href="#a2a1e1d3f515d431478ec309fa9dcd977">More...</a><br /></td></tr>
+<tr class="separator:a2a1e1d3f515d431478ec309fa9dcd977"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7e71691861d38ae351bdd42392b78af6"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1">eDataType</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a7e71691861d38ae351bdd42392b78af6">GetDataType</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key) const =0</td></tr>
+<tr class="memdesc:a7e71691861d38ae351bdd42392b78af6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the value type of a particular parameter. <a href="#a7e71691861d38ae351bdd42392b78af6">More...</a><br /></td></tr>
+<tr class="separator:a7e71691861d38ae351bdd42392b78af6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
+<tr class="memitem:a174330a36f7e3d27cc0230698ff59313"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a174330a36f7e3d27cc0230698ff59313">SetParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, bool value)=0</td></tr>
+<tr class="memdesc:a174330a36f7e3d27cc0230698ff59313"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add/Change a value of a parameter. <a href="#a174330a36f7e3d27cc0230698ff59313">More...</a><br /></td></tr>
+<tr class="separator:a174330a36f7e3d27cc0230698ff59313"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abc24d334364271934f6f8f1ac9051836"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#abc24d334364271934f6f8f1ac9051836">SetParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> value)=0</td></tr>
+<tr class="separator:abc24d334364271934f6f8f1ac9051836"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad248a17a9bc7ca1c189f353f62e829c4"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad248a17a9bc7ca1c189f353f62e829c4">SetParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, <a class="el" href="namespaceAdobeXMPCommon.html#aee4f68e01de51c2cf1c1044ecafebc25">int64</a> value)=0</td></tr>
+<tr class="separator:ad248a17a9bc7ca1c189f353f62e829c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad3b3acdbd19e5860d3e5c5cdcffeb016"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad3b3acdbd19e5860d3e5c5cdcffeb016">SetParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, double value)=0</td></tr>
+<tr class="separator:ad3b3acdbd19e5860d3e5c5cdcffeb016"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4f5a64d500f2fd8110f31a2b582e0759"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a4f5a64d500f2fd8110f31a2b582e0759">SetParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, char value)=0</td></tr>
+<tr class="separator:a4f5a64d500f2fd8110f31a2b582e0759"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae3de9436a04fcd5f6f8bd21fcc9a9edd"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ae3de9436a04fcd5f6f8bd21fcc9a9edd">SetParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, const char *value)=0</td></tr>
+<tr class="separator:ae3de9436a04fcd5f6f8bd21fcc9a9edd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a75784001a19ac899764807095e648c70"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a75784001a19ac899764807095e648c70">SetParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, const void *value)=0</td></tr>
+<tr class="separator:a75784001a19ac899764807095e648c70"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
+<tr class="memitem:adc0c0be10213808b04e9cef27a0efa4c"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#adc0c0be10213808b04e9cef27a0efa4c">GetParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, bool &amp;value) const =0</td></tr>
+<tr class="memdesc:adc0c0be10213808b04e9cef27a0efa4c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the value of a parameter if present. <a href="#adc0c0be10213808b04e9cef27a0efa4c">More...</a><br /></td></tr>
+<tr class="separator:adc0c0be10213808b04e9cef27a0efa4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a11b855a90f26dee8d87b70ee485e6ec3"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a11b855a90f26dee8d87b70ee485e6ec3">GetParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;value) const =0</td></tr>
+<tr class="separator:a11b855a90f26dee8d87b70ee485e6ec3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af655f02a3941826182ea54a2eb012e0d"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#af655f02a3941826182ea54a2eb012e0d">GetParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, <a class="el" href="namespaceAdobeXMPCommon.html#aee4f68e01de51c2cf1c1044ecafebc25">int64</a> &amp;value) const =0</td></tr>
+<tr class="separator:af655f02a3941826182ea54a2eb012e0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abc8b38df0036ec164aa6c108cdee9a5e"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#abc8b38df0036ec164aa6c108cdee9a5e">GetParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, double &amp;value) const =0</td></tr>
+<tr class="separator:abc8b38df0036ec164aa6c108cdee9a5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4c35becce65c3cb18075f4cac9d57609"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a4c35becce65c3cb18075f4cac9d57609">GetParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, char &amp;value) const =0</td></tr>
+<tr class="separator:a4c35becce65c3cb18075f4cac9d57609"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6115940df0fe3a07749cbf4a2bb0acbb"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a6115940df0fe3a07749cbf4a2bb0acbb">GetParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, const char *&amp;value) const =0</td></tr>
+<tr class="separator:a6115940df0fe3a07749cbf4a2bb0acbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a99fb34ba1e27e2e6cadea3755284cee1"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a99fb34ba1e27e2e6cadea3755284cee1">GetParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, const void *&amp;value) const =0</td></tr>
+<tr class="separator:a99fb34ba1e27e2e6cadea3755284cee1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr class="memitem:a932bf0b8f4396de0e29f6c165954e5dc"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a932bf0b8f4396de0e29f6c165954e5dc">ConvertCharBufferToUint64</a> (const char *key)</td></tr>
+<tr class="memdesc:a932bf0b8f4396de0e29f6c165954e5dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Utility function to convert character buffer ( maximum of 8 characters ) to uint64 representation. <a href="#a932bf0b8f4396de0e29f6c165954e5dc">More...</a><br /></td></tr>
+<tr class="separator:a932bf0b8f4396de0e29f6c165954e5dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:a7c19f627db3d07e227e93a6a0e6b20ab"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a7c19f627db3d07e227e93a6a0e6b20ab">~IConfigurable</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:a7c19f627db3d07e227e93a6a0e6b20ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abb69da6d73e4b56c30e56b43f5a37b9b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#abb69da6d73e4b56c30e56b43f5a37b9b">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:abb69da6d73e4b56c30e56b43f5a37b9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
+Friends</h2></td></tr>
+<tr class="memitem:ac321e3926928c7c9b58bab66d6270da5"><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ac321e3926928c7c9b58bab66d6270da5">IConfigurableProxy</a></td></tr>
+<tr class="separator:ac321e3926928c7c9b58bab66d6270da5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Interface that allows to attach various key-value parameters to the underlying object. </p>
+<p>Key is an unsigned 64-bit integer value which can be a char buffer of eight characters also. </p><dl class="section note"><dt>Note</dt><dd>For all value types except user data ( const void * ) or char buffer ( const char * ) a copy is made and is stored, so the scope is maintained internally. But for user data ( const void * ) or char buffer ( const char * ) its clients responsibility to make sure these pointers remain valid through out the life span of the object or objects derived from it. </dd></dl>
+
+<p>Definition at line <a class="el" href="IConfigurable_8h_source.html#l00030">30</a> of file <a class="el" href="IConfigurable_8h_source.html">IConfigurable.h</a>.</p>
+</div><h2 class="groupheader">Member Enumeration Documentation</h2>
+<a class="anchor" id="ad64e6ae45633298b7158be2b0dce79a1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1">AdobeXMPCommon::IConfigurable::eDataType</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Indicates various types of parameter values. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="ad64e6ae45633298b7158be2b0dce79a1a0233b4bacf60f59232fd3fc0dee50a27"></a>kDTNone&#160;</td><td class="fielddoc">
+<p>Data type is none. </p>
+<p>Data type is boolean. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="ad64e6ae45633298b7158be2b0dce79a1abdf14ab0f7a234fc99bc476dc4212f4e"></a>kDTBool&#160;</td><td class="fielddoc">
+<p>Data type is unsigned 64 bit integer. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="ad64e6ae45633298b7158be2b0dce79a1ad24c2bb370f5fa12dee346051c13409e"></a>kDTUint64&#160;</td><td class="fielddoc">
+<p>Data type is signed 64 bit integer. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="ad64e6ae45633298b7158be2b0dce79a1a5c57cf68bc47c55815b5bfc1146df0c3"></a>kDTInt64&#160;</td><td class="fielddoc">
+<p>Data type is character. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="ad64e6ae45633298b7158be2b0dce79a1a01da29c7d11b67856b0e9d5f3fe4cdb4"></a>kDTChar&#160;</td><td class="fielddoc">
+<p>Data type is double. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="ad64e6ae45633298b7158be2b0dce79a1a11c2a544d5ac467b22d7d10098237efa"></a>kDTDouble&#160;</td><td class="fielddoc">
+<p>Data type is char buffer. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="ad64e6ae45633298b7158be2b0dce79a1a8d6faef7e1737835b5007987ed99c48d"></a>kDTConstCharBuffer&#160;</td><td class="fielddoc">
+<p>Data type is user data ( pointer to const void ). </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="ad64e6ae45633298b7158be2b0dce79a1a242c98a52e8d324027a00ee6f66d4c39"></a>kDTConstVoidPtr&#160;</td><td class="fielddoc">
+<p>Maximum value this enum can hold. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="ad64e6ae45633298b7158be2b0dce79a1ac5217140bec2fb51971d31759f24b81a"></a>kDTAll&#160;</td><td class="fielddoc">
+</td></tr>
+</table>
+
+<p>Definition at line <a class="el" href="IConfigurable_8h_source.html#l00037">37</a> of file <a class="el" href="IConfigurable_8h_source.html">IConfigurable.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; {</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <a class="code" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a0233b4bacf60f59232fd3fc0dee50a27">kDTNone</a> = 0,</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="code" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1abdf14ab0f7a234fc99bc476dc4212f4e">kDTBool</a> = 1 &lt;&lt; 0,</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <a class="code" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1ad24c2bb370f5fa12dee346051c13409e">kDTUint64</a> = 1 &lt;&lt; 1,</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <a class="code" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a5c57cf68bc47c55815b5bfc1146df0c3">kDTInt64</a> = 1 &lt;&lt; 2,</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <a class="code" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a01da29c7d11b67856b0e9d5f3fe4cdb4">kDTChar</a> = 1 &lt;&lt; 3,</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <a class="code" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a11c2a544d5ac467b22d7d10098237efa">kDTDouble</a> = 1 &lt;&lt; 4,</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="code" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a8d6faef7e1737835b5007987ed99c48d">kDTConstCharBuffer</a> = 1 &lt;&lt; 5,</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <a class="code" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a242c98a52e8d324027a00ee6f66d4c39">kDTConstVoidPtr</a> = 1 &lt;&lt; 6,</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1ac5217140bec2fb51971d31759f24b81a">kDTAll</a> = 0xFFFFFFFF</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; } <a class="code" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1">eDataType</a>;</div><div class="ttc" id="classAdobeXMPCommon_1_1IConfigurable_html_ad64e6ae45633298b7158be2b0dce79a1ad24c2bb370f5fa12dee346051c13409e"><div class="ttname"><a href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1ad24c2bb370f5fa12dee346051c13409e">AdobeXMPCommon::IConfigurable::kDTUint64</a></div><div class="ttdoc">Data type is signed 64 bit integer. </div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00043">IConfigurable.h:43</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IConfigurable_html_ad64e6ae45633298b7158be2b0dce79a1a8d6faef7e1737835b5007987ed99c48d"><div class="ttname"><a href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a8d6faef7e1737835b5007987ed99c48d">AdobeXMPCommon::IConfigurable::kDTConstCharBuffer</a></div><div class="ttdoc">Data type is user data ( pointer to const void ). </div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00051">IConfigurable.h:51</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IConfigurable_html_ad64e6ae45633298b7158be2b0dce79a1a0233b4bacf60f59232fd3fc0dee50a27"><div class="ttname"><a href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a0233b4bacf60f59232fd3fc0dee50a27">AdobeXMPCommon::IConfigurable::kDTNone</a></div><div class="ttdoc">Data type is none. </div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00039">IConfigurable.h:39</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IConfigurable_html_ad64e6ae45633298b7158be2b0dce79a1a01da29c7d11b67856b0e9d5f3fe4cdb4"><div class="ttname"><a href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a01da29c7d11b67856b0e9d5f3fe4cdb4">AdobeXMPCommon::IConfigurable::kDTChar</a></div><div class="ttdoc">Data type is double. </div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00047">IConfigurable.h:47</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IConfigurable_html_ad64e6ae45633298b7158be2b0dce79a1a11c2a544d5ac467b22d7d10098237efa"><div class="ttname"><a href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a11c2a544d5ac467b22d7d10098237efa">AdobeXMPCommon::IConfigurable::kDTDouble</a></div><div class="ttdoc">Data type is char buffer. </div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00049">IConfigurable.h:49</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IConfigurable_html_ad64e6ae45633298b7158be2b0dce79a1"><div class="ttname"><a href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1">AdobeXMPCommon::IConfigurable::eDataType</a></div><div class="ttdeci">eDataType</div><div class="ttdoc">Indicates various types of parameter values. </div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00037">IConfigurable.h:37</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IConfigurable_html_ad64e6ae45633298b7158be2b0dce79a1abdf14ab0f7a234fc99bc476dc4212f4e"><div class="ttname"><a href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1abdf14ab0f7a234fc99bc476dc4212f4e">AdobeXMPCommon::IConfigurable::kDTBool</a></div><div class="ttdoc">Data type is unsigned 64 bit integer. </div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00041">IConfigurable.h:41</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IConfigurable_html_ad64e6ae45633298b7158be2b0dce79a1ac5217140bec2fb51971d31759f24b81a"><div class="ttname"><a href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1ac5217140bec2fb51971d31759f24b81a">AdobeXMPCommon::IConfigurable::kDTAll</a></div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00056">IConfigurable.h:56</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IConfigurable_html_ad64e6ae45633298b7158be2b0dce79a1a242c98a52e8d324027a00ee6f66d4c39"><div class="ttname"><a href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a242c98a52e8d324027a00ee6f66d4c39">AdobeXMPCommon::IConfigurable::kDTConstVoidPtr</a></div><div class="ttdoc">Maximum value this enum can hold. </div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00053">IConfigurable.h:53</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IConfigurable_html_ad64e6ae45633298b7158be2b0dce79a1a5c57cf68bc47c55815b5bfc1146df0c3"><div class="ttname"><a href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a5c57cf68bc47c55815b5bfc1146df0c3">AdobeXMPCommon::IConfigurable::kDTInt64</a></div><div class="ttdoc">Data type is character. </div><div class="ttdef"><b>Definition:</b> <a href="IConfigurable_8h_source.html#l00045">IConfigurable.h:45</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a7c19f627db3d07e227e93a6a0e6b20ab"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual AdobeXMPCommon::IConfigurable::~IConfigurable </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>protected Virtual Destructor </p>
+
+<p>Definition at line <a class="el" href="IConfigurable_8h_source.html#l00171">171</a> of file <a class="el" href="IConfigurable_8h_source.html">IConfigurable.h</a>.</p>
+
+<p>References <a class="el" href="XMPCommonDefines_8h_source.html#l00117">__NOTHROW__</a>, and <a class="el" href="XMPCommonDefines_8h_source.html#l00107">REQ_FRIEND_CLASS_DECLARATION</a>.</p>
+<div class="fragment"><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;{};</div></div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a932bf0b8f4396de0e29f6c165954e5dc"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> AdobeXMPCommon::IConfigurable::ConvertCharBufferToUint64 </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>key</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Utility function to convert character buffer ( maximum of 8 characters ) to uint64 representation. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>A pointer to const char buffer, maximum characters used are 8 provided there is no null character present in the buffer between 1st to 8 characters, otherwise characters upto NULL character (excluding NULL) are read. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A 64-bit unsigned integer representing the first 8 characters of the character buffer. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Return 0 in case key is NULL. </dd></dl>
+
+<p>Definition at line <a class="el" href="IConfigurable_8h_source.html#l00132">132</a> of file <a class="el" href="IConfigurable_8h_source.html">IConfigurable.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; {</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> keyAsuint64 = 0;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">if</span> ( key ) {</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 0; i &lt; 8 &amp;&amp; key[ i ] != <span class="charliteral">&#39;\0&#39;</span>; i++ ) {</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; keyAsuint64 = keyAsuint64 &lt;&lt; 8;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; keyAsuint64 += ( <span class="keywordtype">unsigned</span> char ) key[ i ];</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">return</span> keyAsuint64;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; }</div><div class="ttc" id="namespaceAdobeXMPCommon_html_aea1d692da07b844d1f642b47ea6a91bd"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">AdobeXMPCommon::uint64</a></div><div class="ttdeci">XMP_Uns64 uint64</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonDefines_8h_source.html#l00142">XMPCommonDefines.h:142</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="ad0e79a0e44353d08139358a56e8510fb"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual std::vector&lt; <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &gt; APICALL AdobeXMPCommon::IConfigurable::GetAllParameters </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Get all the keys of the parameters associated with the object. </p>
+<p>Provide a std::vector containing the keys of all the parameters associated with the object. </p><dl class="section return"><dt>Returns</dt><dd>A std::vector of unsigned 64 bit integers. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a7e71691861d38ae351bdd42392b78af6"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1">eDataType</a> APICALL AdobeXMPCommon::IConfigurable::GetDataType </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;&#160;</td>
+ <td class="paramname"><em>key</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Get the value type of a particular parameter. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>An unsigned 64 bit integer value indicating the key. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A value of type eDataType indicating the type of value the parameter is supposed to hold. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>return kDTNone in case no such key is associated with the object. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="adc0c0be10213808b04e9cef27a0efa4c"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual bool APICALL AdobeXMPCommon::IConfigurable::GetParameter </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;&#160;</td>
+ <td class="paramname"><em>key</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">bool &amp;&#160;</td>
+ <td class="paramname"><em>value</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Get the value of a parameter if present. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>An unsigned 64 bit integer value indicating the key. </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">value</td><td>The value of the parameter. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>false if no such parameter is present, otherwise true. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case the type of the parameter is not the one client is asking for. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a11b855a90f26dee8d87b70ee485e6ec3"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual bool APICALL AdobeXMPCommon::IConfigurable::GetParameter </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;&#160;</td>
+ <td class="paramname"><em>key</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;&#160;</td>
+ <td class="paramname"><em>value</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af655f02a3941826182ea54a2eb012e0d"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual bool APICALL AdobeXMPCommon::IConfigurable::GetParameter </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;&#160;</td>
+ <td class="paramname"><em>key</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#aee4f68e01de51c2cf1c1044ecafebc25">int64</a> &amp;&#160;</td>
+ <td class="paramname"><em>value</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="abc8b38df0036ec164aa6c108cdee9a5e"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual bool APICALL AdobeXMPCommon::IConfigurable::GetParameter </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;&#160;</td>
+ <td class="paramname"><em>key</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">double &amp;&#160;</td>
+ <td class="paramname"><em>value</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4c35becce65c3cb18075f4cac9d57609"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual bool APICALL AdobeXMPCommon::IConfigurable::GetParameter </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;&#160;</td>
+ <td class="paramname"><em>key</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">char &amp;&#160;</td>
+ <td class="paramname"><em>value</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6115940df0fe3a07749cbf4a2bb0acbb"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual bool APICALL AdobeXMPCommon::IConfigurable::GetParameter </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;&#160;</td>
+ <td class="paramname"><em>key</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&amp;&#160;</td>
+ <td class="paramname"><em>value</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a99fb34ba1e27e2e6cadea3755284cee1"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual bool APICALL AdobeXMPCommon::IConfigurable::GetParameter </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;&#160;</td>
+ <td class="paramname"><em>key</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const void *&amp;&#160;</td>
+ <td class="paramname"><em>value</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a046edf1c0c7d4f994295207dea1242f7"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual bool APICALL AdobeXMPCommon::IConfigurable::RemoveParameter </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;&#160;</td>
+ <td class="paramname"><em>key</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Removes a particular parameter if present. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>An unsigned 64 bit integer value indicating the key. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>True in case key was present and is deleted. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
+<li>key is a must have for the underlying object. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="abb69da6d73e4b56c30e56b43f5a37b9b"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">AdobeXMPCommon::IConfigurable::REQ_FRIEND_CLASS_DECLARATION </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a174330a36f7e3d27cc0230698ff59313"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCommon::IConfigurable::SetParameter </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;&#160;</td>
+ <td class="paramname"><em>key</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">bool&#160;</td>
+ <td class="paramname"><em>value</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Add/Change a value of a parameter. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>An unsigned 64 bit integer value indicating the key. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>New value of the parameter. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
+<li>the previous type of value associated with key is of different type.</li>
+<li>the type of value associated with key is not as expected. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="abc24d334364271934f6f8f1ac9051836"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCommon::IConfigurable::SetParameter </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;&#160;</td>
+ <td class="paramname"><em>key</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td>
+ <td class="paramname"><em>value</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad248a17a9bc7ca1c189f353f62e829c4"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCommon::IConfigurable::SetParameter </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;&#160;</td>
+ <td class="paramname"><em>key</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#aee4f68e01de51c2cf1c1044ecafebc25">int64</a>&#160;</td>
+ <td class="paramname"><em>value</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad3b3acdbd19e5860d3e5c5cdcffeb016"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCommon::IConfigurable::SetParameter </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;&#160;</td>
+ <td class="paramname"><em>key</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>value</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4f5a64d500f2fd8110f31a2b582e0759"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCommon::IConfigurable::SetParameter </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;&#160;</td>
+ <td class="paramname"><em>key</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">char&#160;</td>
+ <td class="paramname"><em>value</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae3de9436a04fcd5f6f8bd21fcc9a9edd"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCommon::IConfigurable::SetParameter </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;&#160;</td>
+ <td class="paramname"><em>key</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>value</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a75784001a19ac899764807095e648c70"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCommon::IConfigurable::SetParameter </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;&#160;</td>
+ <td class="paramname"><em>key</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const void *&#160;</td>
+ <td class="paramname"><em>value</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2a1e1d3f515d431478ec309fa9dcd977"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL AdobeXMPCommon::IConfigurable::Size </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Get the number of parameters associated with the object. </p>
+
+</div>
+</div>
+<h2 class="groupheader">Friends And Related Function Documentation</h2>
+<a class="anchor" id="ac321e3926928c7c9b58bab66d6270da5"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">friend class IConfigurableProxy</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">friend</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="IConfigurable_8h_source.html#l00171">171</a> of file <a class="el" href="IConfigurable_8h_source.html">IConfigurable.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/Interfaces/BaseInterfaces/<a class="el" href="IConfigurable_8h_source.html">IConfigurable.h</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCommon_1_1IConfigurable.js b/docs/API/classAdobeXMPCommon_1_1IConfigurable.js
new file mode 100755
index 0000000..a46ec83
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1IConfigurable.js
@@ -0,0 +1,37 @@
+var classAdobeXMPCommon_1_1IConfigurable =
+[
+ [ "CombinedDataValue", "unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html", "unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue" ],
+ [ "eDataType", "classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1", [
+ [ "kDTNone", "classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a0233b4bacf60f59232fd3fc0dee50a27", null ],
+ [ "kDTBool", "classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1abdf14ab0f7a234fc99bc476dc4212f4e", null ],
+ [ "kDTUint64", "classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1ad24c2bb370f5fa12dee346051c13409e", null ],
+ [ "kDTInt64", "classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a5c57cf68bc47c55815b5bfc1146df0c3", null ],
+ [ "kDTChar", "classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a01da29c7d11b67856b0e9d5f3fe4cdb4", null ],
+ [ "kDTDouble", "classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a11c2a544d5ac467b22d7d10098237efa", null ],
+ [ "kDTConstCharBuffer", "classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a8d6faef7e1737835b5007987ed99c48d", null ],
+ [ "kDTConstVoidPtr", "classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a242c98a52e8d324027a00ee6f66d4c39", null ],
+ [ "kDTAll", "classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1ac5217140bec2fb51971d31759f24b81a", null ]
+ ] ],
+ [ "~IConfigurable", "classAdobeXMPCommon_1_1IConfigurable.html#a7c19f627db3d07e227e93a6a0e6b20ab", null ],
+ [ "ConvertCharBufferToUint64", "classAdobeXMPCommon_1_1IConfigurable.html#a932bf0b8f4396de0e29f6c165954e5dc", null ],
+ [ "GetAllParameters", "classAdobeXMPCommon_1_1IConfigurable.html#ad0e79a0e44353d08139358a56e8510fb", null ],
+ [ "GetDataType", "classAdobeXMPCommon_1_1IConfigurable.html#a7e71691861d38ae351bdd42392b78af6", null ],
+ [ "GetParameter", "classAdobeXMPCommon_1_1IConfigurable.html#adc0c0be10213808b04e9cef27a0efa4c", null ],
+ [ "GetParameter", "classAdobeXMPCommon_1_1IConfigurable.html#a11b855a90f26dee8d87b70ee485e6ec3", null ],
+ [ "GetParameter", "classAdobeXMPCommon_1_1IConfigurable.html#af655f02a3941826182ea54a2eb012e0d", null ],
+ [ "GetParameter", "classAdobeXMPCommon_1_1IConfigurable.html#abc8b38df0036ec164aa6c108cdee9a5e", null ],
+ [ "GetParameter", "classAdobeXMPCommon_1_1IConfigurable.html#a4c35becce65c3cb18075f4cac9d57609", null ],
+ [ "GetParameter", "classAdobeXMPCommon_1_1IConfigurable.html#a6115940df0fe3a07749cbf4a2bb0acbb", null ],
+ [ "GetParameter", "classAdobeXMPCommon_1_1IConfigurable.html#a99fb34ba1e27e2e6cadea3755284cee1", null ],
+ [ "RemoveParameter", "classAdobeXMPCommon_1_1IConfigurable.html#a046edf1c0c7d4f994295207dea1242f7", null ],
+ [ "REQ_FRIEND_CLASS_DECLARATION", "classAdobeXMPCommon_1_1IConfigurable.html#abb69da6d73e4b56c30e56b43f5a37b9b", null ],
+ [ "SetParameter", "classAdobeXMPCommon_1_1IConfigurable.html#a174330a36f7e3d27cc0230698ff59313", null ],
+ [ "SetParameter", "classAdobeXMPCommon_1_1IConfigurable.html#abc24d334364271934f6f8f1ac9051836", null ],
+ [ "SetParameter", "classAdobeXMPCommon_1_1IConfigurable.html#ad248a17a9bc7ca1c189f353f62e829c4", null ],
+ [ "SetParameter", "classAdobeXMPCommon_1_1IConfigurable.html#ad3b3acdbd19e5860d3e5c5cdcffeb016", null ],
+ [ "SetParameter", "classAdobeXMPCommon_1_1IConfigurable.html#a4f5a64d500f2fd8110f31a2b582e0759", null ],
+ [ "SetParameter", "classAdobeXMPCommon_1_1IConfigurable.html#ae3de9436a04fcd5f6f8bd21fcc9a9edd", null ],
+ [ "SetParameter", "classAdobeXMPCommon_1_1IConfigurable.html#a75784001a19ac899764807095e648c70", null ],
+ [ "Size", "classAdobeXMPCommon_1_1IConfigurable.html#a2a1e1d3f515d431478ec309fa9dcd977", null ],
+ [ "IConfigurableProxy", "classAdobeXMPCommon_1_1IConfigurable.html#ac321e3926928c7c9b58bab66d6270da5", null ]
+]; \ No newline at end of file
diff --git a/docs/API/classAdobeXMPCommon_1_1IConfigurable.png b/docs/API/classAdobeXMPCommon_1_1IConfigurable.png
new file mode 100755
index 0000000..a842641
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1IConfigurable.png
Binary files differ
diff --git a/docs/API/classAdobeXMPCommon_1_1IConfigurationManagerProxy-members.html b/docs/API/classAdobeXMPCommon_1_1IConfigurationManagerProxy-members.html
new file mode 100755
index 0000000..a12488e
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1IConfigurationManagerProxy-members.html
@@ -0,0 +1,70 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCommon_1_1IConfigurationManagerProxy.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">AdobeXMPCommon::IConfigurationManagerProxy Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html">AdobeXMPCommon::IConfigurationManagerProxy</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#ab368f307d6f23590d7ee76974cbd87fa">Acquire</a>() const __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html">AdobeXMPCommon::IConfigurationManagerProxy</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a8432b3ab3d3e1c344dc006308e34e4bc">DisableMultiThreading</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html">AdobeXMPCommon::IConfigurationManagerProxy</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a9d07fe612bdc448ea279f9c6a8f2c905">disableMultiThreading</a>(pcIError_base &amp;error) __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html">AdobeXMPCommon::IConfigurationManagerProxy</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a51a9e283ecad4043182f5ff9c8c38367">GetActualIConfigurationManager</a>() __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html">AdobeXMPCommon::IConfigurationManagerProxy</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#acb62caf44deca15cc1a427ff4d437e0b">getInterfacePointer</a>(uint64 interfaceID, uint32 interfaceVersion, pcIError_base &amp;error) __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html">AdobeXMPCommon::IConfigurationManagerProxy</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#acf184689e6c9862642425392ac80640c">GetInterfacePointer</a>(uint64 interfaceID, uint32 interfaceVersion)</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html">AdobeXMPCommon::IConfigurationManagerProxy</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a9efc36a9faf07297c329f1c422659758">GetISharedObject_I</a>() __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html">AdobeXMPCommon::IConfigurationManagerProxy</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#aa6e0ad02dd491d0881e35ea0554c93a6">IConfigurationManagerProxy</a>(pIConfigurationManager ptr)</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html">AdobeXMPCommon::IConfigurationManagerProxy</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a7b99c9d6b1b337c74b240afbdb1ba11a">isMultiThreaded</a>(pcIError_base &amp;error) const __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html">AdobeXMPCommon::IConfigurationManagerProxy</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a84324c2d73c81094f9a4ea365b22acb7">IsMultiThreaded</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html">AdobeXMPCommon::IConfigurationManagerProxy</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a57ee5dce3f7d579adb79ebc00618aa17">mRawPtr</a></td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html">AdobeXMPCommon::IConfigurationManagerProxy</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a2f95a01a640809db056c50f3af9969a3">RegisterErrorNotifier</a>(pIErrorNotifier_base clientErrorNotifier)</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html">AdobeXMPCommon::IConfigurationManagerProxy</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#adec0b71edd5e1d6af91ddb57d4c46fe5">registerErrorNotifier</a>(pIErrorNotifier_base clientErrorNotifier, pcIError_base &amp;error) __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html">AdobeXMPCommon::IConfigurationManagerProxy</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a1cd3f0ed28518a855a9adec183f638c5">RegisterMemoryAllocator</a>(pIMemoryAllocator memoryAllocator)</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html">AdobeXMPCommon::IConfigurationManagerProxy</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#aecb05f0b0c1c934c00aab318d6de1daf">registerMemoryAllocator</a>(pIMemoryAllocator_base memoryAllocator, pcIError_base &amp;error) __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html">AdobeXMPCommon::IConfigurationManagerProxy</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#ad53bcc0d6f8a1978b43a007c040c4c04">Release</a>() const __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html">AdobeXMPCommon::IConfigurationManagerProxy</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a2d3924186af26ed2ea955d155ba8e89c">~IConfigurationManagerProxy</a>() __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html">AdobeXMPCommon::IConfigurationManagerProxy</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCommon_1_1IConfigurationManagerProxy.html b/docs/API/classAdobeXMPCommon_1_1IConfigurationManagerProxy.html
new file mode 100755
index 0000000..715392e
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1IConfigurationManagerProxy.html
@@ -0,0 +1,553 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>AdobeXMPCommon::IConfigurationManagerProxy Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCommon_1_1IConfigurationManagerProxy.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="#pri-attribs">Private Attributes</a> &#124;
+<a href="classAdobeXMPCommon_1_1IConfigurationManagerProxy-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">AdobeXMPCommon::IConfigurationManagerProxy Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include &lt;<a class="el" href="IConfigurationManager_8h_source.html">IConfigurationManager.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for AdobeXMPCommon::IConfigurationManagerProxy:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classAdobeXMPCommon_1_1IConfigurationManagerProxy.png" usemap="#AdobeXMPCommon::IConfigurationManagerProxy_map" alt=""/>
+ <map id="AdobeXMPCommon::IConfigurationManagerProxy_map" name="AdobeXMPCommon::IConfigurationManagerProxy_map">
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:aa6e0ad02dd491d0881e35ea0554c93a6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#aa6e0ad02dd491d0881e35ea0554c93a6">IConfigurationManagerProxy</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a66f57b67d8be6cbf836ad084a3d27d76">pIConfigurationManager</a> ptr)</td></tr>
+<tr class="separator:aa6e0ad02dd491d0881e35ea0554c93a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2d3924186af26ed2ea955d155ba8e89c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a2d3924186af26ed2ea955d155ba8e89c">~IConfigurationManagerProxy</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:a2d3924186af26ed2ea955d155ba8e89c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a51a9e283ecad4043182f5ff9c8c38367"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceAdobeXMPCommon.html#a66f57b67d8be6cbf836ad084a3d27d76">pIConfigurationManager</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a51a9e283ecad4043182f5ff9c8c38367">GetActualIConfigurationManager</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:a51a9e283ecad4043182f5ff9c8c38367"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9efc36a9faf07297c329f1c422659758"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceAdobeXMPCommon__Int.html#ada4b051c58f05ef398453930451bc13d">AdobeXMPCommon_Int::pISharedObject_I</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a9efc36a9faf07297c329f1c422659758">GetISharedObject_I</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:a9efc36a9faf07297c329f1c422659758"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab368f307d6f23590d7ee76974cbd87fa"><td class="memItemLeft" align="right" valign="top">void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#ab368f307d6f23590d7ee76974cbd87fa">Acquire</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:ab368f307d6f23590d7ee76974cbd87fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad53bcc0d6f8a1978b43a007c040c4c04"><td class="memItemLeft" align="right" valign="top">void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#ad53bcc0d6f8a1978b43a007c040c4c04">Release</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:ad53bcc0d6f8a1978b43a007c040c4c04"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acf184689e6c9862642425392ac80640c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceAdobeXMPCommon.html#ab59e650373a5efadfbfd2486313258a6">pvoid</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#acf184689e6c9862642425392ac80640c">GetInterfacePointer</a> (<a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> interfaceID, <a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> interfaceVersion)</td></tr>
+<tr class="separator:acf184689e6c9862642425392ac80640c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1cd3f0ed28518a855a9adec183f638c5"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a1cd3f0ed28518a855a9adec183f638c5">RegisterMemoryAllocator</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a605dcb5281a71a01673c81e6508f932f">pIMemoryAllocator</a> memoryAllocator)</td></tr>
+<tr class="separator:a1cd3f0ed28518a855a9adec183f638c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2f95a01a640809db056c50f3af9969a3"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a2f95a01a640809db056c50f3af9969a3">RegisterErrorNotifier</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a4ad7bda9e1289b0bb93510402b6e86f9">pIErrorNotifier_base</a> clientErrorNotifier)</td></tr>
+<tr class="separator:a2f95a01a640809db056c50f3af9969a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8432b3ab3d3e1c344dc006308e34e4bc"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a8432b3ab3d3e1c344dc006308e34e4bc">DisableMultiThreading</a> ()</td></tr>
+<tr class="separator:a8432b3ab3d3e1c344dc006308e34e4bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a84324c2d73c81094f9a4ea365b22acb7"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a84324c2d73c81094f9a4ea365b22acb7">IsMultiThreaded</a> () const </td></tr>
+<tr class="separator:a84324c2d73c81094f9a4ea365b22acb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:aecb05f0b0c1c934c00aab318d6de1daf"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#aecb05f0b0c1c934c00aab318d6de1daf">registerMemoryAllocator</a> (<a class="el" href="namespaceAdobeXMPCommon.html#aff75b5c835a8eb072072be6b404aa0d5">pIMemoryAllocator_base</a> memoryAllocator, <a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;error) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:aecb05f0b0c1c934c00aab318d6de1daf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adec0b71edd5e1d6af91ddb57d4c46fe5"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#adec0b71edd5e1d6af91ddb57d4c46fe5">registerErrorNotifier</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a4ad7bda9e1289b0bb93510402b6e86f9">pIErrorNotifier_base</a> clientErrorNotifier, <a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;error) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:adec0b71edd5e1d6af91ddb57d4c46fe5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9d07fe612bdc448ea279f9c6a8f2c905"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a9d07fe612bdc448ea279f9c6a8f2c905">disableMultiThreading</a> (<a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;error) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:a9d07fe612bdc448ea279f9c6a8f2c905"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7b99c9d6b1b337c74b240afbdb1ba11a"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a7b99c9d6b1b337c74b240afbdb1ba11a">isMultiThreaded</a> (<a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;error) const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:a7b99c9d6b1b337c74b240afbdb1ba11a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acb62caf44deca15cc1a427ff4d437e0b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceAdobeXMPCommon.html#ab59e650373a5efadfbfd2486313258a6">pvoid</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#acb62caf44deca15cc1a427ff4d437e0b">getInterfacePointer</a> (<a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> interfaceID, <a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> interfaceVersion, <a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;error) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:acb62caf44deca15cc1a427ff4d437e0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
+Private Attributes</h2></td></tr>
+<tr class="memitem:a57ee5dce3f7d579adb79ebc00618aa17"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceAdobeXMPCommon.html#a66f57b67d8be6cbf836ad084a3d27d76">pIConfigurationManager</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a57ee5dce3f7d579adb79ebc00618aa17">mRawPtr</a></td></tr>
+<tr class="separator:a57ee5dce3f7d579adb79ebc00618aa17"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p>Definition at line <a class="el" href="IConfigurationManager_8h_source.html#l00130">130</a> of file <a class="el" href="IConfigurationManager_8h_source.html">IConfigurationManager.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="aa6e0ad02dd491d0881e35ea0554c93a6"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">AdobeXMPCommon::IConfigurationManagerProxy::IConfigurationManagerProxy </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a66f57b67d8be6cbf836ad084a3d27d76">pIConfigurationManager</a>&#160;</td>
+ <td class="paramname"><em>ptr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="IConfigurationManager_8h_source.html#l00137">137</a> of file <a class="el" href="IConfigurationManager_8h_source.html">IConfigurationManager.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; : <a class="code" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a57ee5dce3f7d579adb79ebc00618aa17">mRawPtr</a>( ptr )</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; {</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <a class="code" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a57ee5dce3f7d579adb79ebc00618aa17">mRawPtr</a>-&gt;Acquire();</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; }</div><div class="ttc" id="classAdobeXMPCommon_1_1IConfigurationManagerProxy_html_a57ee5dce3f7d579adb79ebc00618aa17"><div class="ttname"><a href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a57ee5dce3f7d579adb79ebc00618aa17">AdobeXMPCommon::IConfigurationManagerProxy::mRawPtr</a></div><div class="ttdeci">pIConfigurationManager mRawPtr</div><div class="ttdef"><b>Definition:</b> <a href="IConfigurationManager_8h_source.html#l00134">IConfigurationManager.h:134</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a2d3924186af26ed2ea955d155ba8e89c"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">AdobeXMPCommon::IConfigurationManagerProxy::~IConfigurationManagerProxy </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="IConfigurationManager_8h_source.html#l00143">143</a> of file <a class="el" href="IConfigurationManager_8h_source.html">IConfigurationManager.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;{ <a class="code" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a57ee5dce3f7d579adb79ebc00618aa17">mRawPtr</a>-&gt;Release(); }</div><div class="ttc" id="classAdobeXMPCommon_1_1IConfigurationManagerProxy_html_a57ee5dce3f7d579adb79ebc00618aa17"><div class="ttname"><a href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a57ee5dce3f7d579adb79ebc00618aa17">AdobeXMPCommon::IConfigurationManagerProxy::mRawPtr</a></div><div class="ttdeci">pIConfigurationManager mRawPtr</div><div class="ttdef"><b>Definition:</b> <a href="IConfigurationManager_8h_source.html#l00134">IConfigurationManager.h:134</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="ab368f307d6f23590d7ee76974cbd87fa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void APICALL AdobeXMPCommon::IConfigurationManagerProxy::Acquire </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a8432b3ab3d3e1c344dc006308e34e4bc"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual bool APICALL AdobeXMPCommon::IConfigurationManagerProxy::DisableMultiThreading </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9d07fe612bdc448ea279f9c6a8f2c905"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL AdobeXMPCommon::IConfigurationManagerProxy::disableMultiThreading </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;&#160;</td>
+ <td class="paramname"><em>error</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a51a9e283ecad4043182f5ff9c8c38367"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="namespaceAdobeXMPCommon.html#a66f57b67d8be6cbf836ad084a3d27d76">pIConfigurationManager</a> APICALL AdobeXMPCommon::IConfigurationManagerProxy::GetActualIConfigurationManager </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="IConfigurationManager_8h_source.html#l00144">144</a> of file <a class="el" href="IConfigurationManager_8h_source.html">IConfigurationManager.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;{ <span class="keywordflow">return</span> <a class="code" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a57ee5dce3f7d579adb79ebc00618aa17">mRawPtr</a>; }</div><div class="ttc" id="classAdobeXMPCommon_1_1IConfigurationManagerProxy_html_a57ee5dce3f7d579adb79ebc00618aa17"><div class="ttname"><a href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a57ee5dce3f7d579adb79ebc00618aa17">AdobeXMPCommon::IConfigurationManagerProxy::mRawPtr</a></div><div class="ttdeci">pIConfigurationManager mRawPtr</div><div class="ttdef"><b>Definition:</b> <a href="IConfigurationManager_8h_source.html#l00134">IConfigurationManager.h:134</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="acf184689e6c9862642425392ac80640c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="namespaceAdobeXMPCommon.html#ab59e650373a5efadfbfd2486313258a6">pvoid</a> APICALL AdobeXMPCommon::IConfigurationManagerProxy::GetInterfacePointer </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td>
+ <td class="paramname"><em>interfaceID</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a>&#160;</td>
+ <td class="paramname"><em>interfaceVersion</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="acb62caf44deca15cc1a427ff4d437e0b"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="namespaceAdobeXMPCommon.html#ab59e650373a5efadfbfd2486313258a6">pvoid</a> APICALL AdobeXMPCommon::IConfigurationManagerProxy::getInterfacePointer </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td>
+ <td class="paramname"><em>interfaceID</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a>&#160;</td>
+ <td class="paramname"><em>interfaceVersion</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;&#160;</td>
+ <td class="paramname"><em>error</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9efc36a9faf07297c329f1c422659758"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="namespaceAdobeXMPCommon__Int.html#ada4b051c58f05ef398453930451bc13d">AdobeXMPCommon_Int::pISharedObject_I</a> APICALL AdobeXMPCommon::IConfigurationManagerProxy::GetISharedObject_I </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="IConfigurationManager_8h_source.html#l00145">145</a> of file <a class="el" href="IConfigurationManager_8h_source.html">IConfigurationManager.h</a>.</p>
+
+<p>References <a class="el" href="XMPCommonDefines_8h_source.html#l00117">__NOTHROW__</a>.</p>
+<div class="fragment"><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;{ <span class="keywordflow">return</span> <a class="code" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a57ee5dce3f7d579adb79ebc00618aa17">mRawPtr</a>-&gt;GetISharedObject_I(); }</div><div class="ttc" id="classAdobeXMPCommon_1_1IConfigurationManagerProxy_html_a57ee5dce3f7d579adb79ebc00618aa17"><div class="ttname"><a href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a57ee5dce3f7d579adb79ebc00618aa17">AdobeXMPCommon::IConfigurationManagerProxy::mRawPtr</a></div><div class="ttdeci">pIConfigurationManager mRawPtr</div><div class="ttdef"><b>Definition:</b> <a href="IConfigurationManager_8h_source.html#l00134">IConfigurationManager.h:134</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a84324c2d73c81094f9a4ea365b22acb7"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual bool APICALL AdobeXMPCommon::IConfigurationManagerProxy::IsMultiThreaded </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7b99c9d6b1b337c74b240afbdb1ba11a"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL AdobeXMPCommon::IConfigurationManagerProxy::isMultiThreaded </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;&#160;</td>
+ <td class="paramname"><em>error</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2f95a01a640809db056c50f3af9969a3"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual bool APICALL AdobeXMPCommon::IConfigurationManagerProxy::RegisterErrorNotifier </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a4ad7bda9e1289b0bb93510402b6e86f9">pIErrorNotifier_base</a>&#160;</td>
+ <td class="paramname"><em>clientErrorNotifier</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="adec0b71edd5e1d6af91ddb57d4c46fe5"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL AdobeXMPCommon::IConfigurationManagerProxy::registerErrorNotifier </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a4ad7bda9e1289b0bb93510402b6e86f9">pIErrorNotifier_base</a>&#160;</td>
+ <td class="paramname"><em>clientErrorNotifier</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;&#160;</td>
+ <td class="paramname"><em>error</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1cd3f0ed28518a855a9adec183f638c5"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual bool APICALL AdobeXMPCommon::IConfigurationManagerProxy::RegisterMemoryAllocator </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a605dcb5281a71a01673c81e6508f932f">pIMemoryAllocator</a>&#160;</td>
+ <td class="paramname"><em>memoryAllocator</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aecb05f0b0c1c934c00aab318d6de1daf"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> APICALL AdobeXMPCommon::IConfigurationManagerProxy::registerMemoryAllocator </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#aff75b5c835a8eb072072be6b404aa0d5">pIMemoryAllocator_base</a>&#160;</td>
+ <td class="paramname"><em>memoryAllocator</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;&#160;</td>
+ <td class="paramname"><em>error</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad53bcc0d6f8a1978b43a007c040c4c04"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void APICALL AdobeXMPCommon::IConfigurationManagerProxy::Release </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a class="anchor" id="a57ee5dce3f7d579adb79ebc00618aa17"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="namespaceAdobeXMPCommon.html#a66f57b67d8be6cbf836ad084a3d27d76">pIConfigurationManager</a> AdobeXMPCommon::IConfigurationManagerProxy::mRawPtr</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="IConfigurationManager_8h_source.html#l00134">134</a> of file <a class="el" href="IConfigurationManager_8h_source.html">IConfigurationManager.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/Interfaces/<a class="el" href="IConfigurationManager_8h_source.html">IConfigurationManager.h</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCommon_1_1IConfigurationManagerProxy.js b/docs/API/classAdobeXMPCommon_1_1IConfigurationManagerProxy.js
new file mode 100755
index 0000000..8fe3981
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1IConfigurationManagerProxy.js
@@ -0,0 +1,20 @@
+var classAdobeXMPCommon_1_1IConfigurationManagerProxy =
+[
+ [ "IConfigurationManagerProxy", "classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#aa6e0ad02dd491d0881e35ea0554c93a6", null ],
+ [ "~IConfigurationManagerProxy", "classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a2d3924186af26ed2ea955d155ba8e89c", null ],
+ [ "Acquire", "classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#ab368f307d6f23590d7ee76974cbd87fa", null ],
+ [ "DisableMultiThreading", "classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a8432b3ab3d3e1c344dc006308e34e4bc", null ],
+ [ "disableMultiThreading", "classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a9d07fe612bdc448ea279f9c6a8f2c905", null ],
+ [ "GetActualIConfigurationManager", "classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a51a9e283ecad4043182f5ff9c8c38367", null ],
+ [ "GetInterfacePointer", "classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#acf184689e6c9862642425392ac80640c", null ],
+ [ "getInterfacePointer", "classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#acb62caf44deca15cc1a427ff4d437e0b", null ],
+ [ "GetISharedObject_I", "classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a9efc36a9faf07297c329f1c422659758", null ],
+ [ "IsMultiThreaded", "classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a84324c2d73c81094f9a4ea365b22acb7", null ],
+ [ "isMultiThreaded", "classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a7b99c9d6b1b337c74b240afbdb1ba11a", null ],
+ [ "RegisterErrorNotifier", "classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a2f95a01a640809db056c50f3af9969a3", null ],
+ [ "registerErrorNotifier", "classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#adec0b71edd5e1d6af91ddb57d4c46fe5", null ],
+ [ "RegisterMemoryAllocator", "classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a1cd3f0ed28518a855a9adec183f638c5", null ],
+ [ "registerMemoryAllocator", "classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#aecb05f0b0c1c934c00aab318d6de1daf", null ],
+ [ "Release", "classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#ad53bcc0d6f8a1978b43a007c040c4c04", null ],
+ [ "mRawPtr", "classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a57ee5dce3f7d579adb79ebc00618aa17", null ]
+]; \ No newline at end of file
diff --git a/docs/API/classAdobeXMPCommon_1_1IConfigurationManagerProxy.png b/docs/API/classAdobeXMPCommon_1_1IConfigurationManagerProxy.png
new file mode 100755
index 0000000..f0c1026
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1IConfigurationManagerProxy.png
Binary files differ
diff --git a/docs/API/classAdobeXMPCommon_1_1IConfigurationManager__v1-members.html b/docs/API/classAdobeXMPCommon_1_1IConfigurationManager__v1-members.html
new file mode 100755
index 0000000..bfaa4c6
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1IConfigurationManager__v1-members.html
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCommon_1_1IConfigurationManager__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">AdobeXMPCommon::IConfigurationManager_v1 Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html">AdobeXMPCommon::IConfigurationManager_v1</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc">Acquire</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html#acf69fdd4ec5c1eb47b6a41b052372504">DisableMultiThreading</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html">AdobeXMPCommon::IConfigurationManager_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070">GetInterfacePointer</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html#a32c1e2b6af5182d30d298be95652a065">IsMultiThreaded</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html">AdobeXMPCommon::IConfigurationManager_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html#af078935e322f611a884061977d015d1d">RegisterErrorNotifier</a>(pIErrorNotifier_base clientErrorNotifier)=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html">AdobeXMPCommon::IConfigurationManager_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html#a4886e0ac409969583acccbe344489a85">RegisterMemoryAllocator</a>(pIMemoryAllocator memoryAllocator)=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html">AdobeXMPCommon::IConfigurationManager_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3">Release</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html#ad857109e294bdff85685fa0974020645">REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html">AdobeXMPCommon::IConfigurationManager_v1</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html#aab2f368cf6883a6cd92fe688a95516b5">~IConfigurationManager_v1</a>() __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html">AdobeXMPCommon::IConfigurationManager_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31">~ISharedObject</a>() __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCommon_1_1IConfigurationManager__v1.html b/docs/API/classAdobeXMPCommon_1_1IConfigurationManager__v1.html
new file mode 100755
index 0000000..46fa2b3
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1IConfigurationManager__v1.html
@@ -0,0 +1,297 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>AdobeXMPCommon::IConfigurationManager_v1 Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCommon_1_1IConfigurationManager__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="classAdobeXMPCommon_1_1IConfigurationManager__v1-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">AdobeXMPCommon::IConfigurationManager_v1 Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Version1 of the interface that represents configuration settings controllable by the client.
+ <a href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="IConfigurationManager_8h_source.html">IConfigurationManager.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for AdobeXMPCommon::IConfigurationManager_v1:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classAdobeXMPCommon_1_1IConfigurationManager__v1.png" usemap="#AdobeXMPCommon::IConfigurationManager_5Fv1_map" alt=""/>
+ <map id="AdobeXMPCommon::IConfigurationManager_5Fv1_map" name="AdobeXMPCommon::IConfigurationManager_v1_map">
+<area href="classAdobeXMPCommon_1_1ISharedObject.html" title="Interface that serves as the base interface of all the externally exposed interfaces. " alt="AdobeXMPCommon::ISharedObject" shape="rect" coords="0,0,290,24"/>
+<area href="classAdobeXMPCommon_1_1IVersionable.html" title="Interface that serves as the base interface for all the externally exposed interfaces which needs to ..." alt="AdobeXMPCommon::IVersionable" shape="rect" coords="300,0,590,24"/>
+<area href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html" title="Version1 of the interface that represents configuration settings controllable by the client..." alt="AdobeXMPCore::ICoreConfigurationManager_v1" shape="rect" coords="150,112,440,136"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a4886e0ac409969583acccbe344489a85"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html#a4886e0ac409969583acccbe344489a85">RegisterMemoryAllocator</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a605dcb5281a71a01673c81e6508f932f">pIMemoryAllocator</a> memoryAllocator)=0</td></tr>
+<tr class="memdesc:a4886e0ac409969583acccbe344489a85"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allows the client to plug in its own memory allocation procedures which will be used to allocate/deallocate memory from the heap. <a href="#a4886e0ac409969583acccbe344489a85">More...</a><br /></td></tr>
+<tr class="separator:a4886e0ac409969583acccbe344489a85"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af078935e322f611a884061977d015d1d"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html#af078935e322f611a884061977d015d1d">RegisterErrorNotifier</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a4ad7bda9e1289b0bb93510402b6e86f9">pIErrorNotifier_base</a> clientErrorNotifier)=0</td></tr>
+<tr class="memdesc:af078935e322f611a884061977d015d1d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allows the client to plug in its own error notification procedures which will be used to inform client about various warnings and errors. <a href="#af078935e322f611a884061977d015d1d">More...</a><br /></td></tr>
+<tr class="separator:af078935e322f611a884061977d015d1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acf69fdd4ec5c1eb47b6a41b052372504"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html#acf69fdd4ec5c1eb47b6a41b052372504">DisableMultiThreading</a> ()=0</td></tr>
+<tr class="memdesc:acf69fdd4ec5c1eb47b6a41b052372504"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allows the client to disable the support for multi threading inside the library. By default library supports multi-threading. <a href="#acf69fdd4ec5c1eb47b6a41b052372504">More...</a><br /></td></tr>
+<tr class="separator:acf69fdd4ec5c1eb47b6a41b052372504"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a32c1e2b6af5182d30d298be95652a065"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html#a32c1e2b6af5182d30d298be95652a065">IsMultiThreaded</a> () const =0</td></tr>
+<tr class="memdesc:a32c1e2b6af5182d30d298be95652a065"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether library supports multi threading or not. <a href="#a32c1e2b6af5182d30d298be95652a065">More...</a><br /></td></tr>
+<tr class="separator:a32c1e2b6af5182d30d298be95652a065"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aab2f368cf6883a6cd92fe688a95516b5"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html#aab2f368cf6883a6cd92fe688a95516b5">~IConfigurationManager_v1</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:aab2f368cf6883a6cd92fe688a95516b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1ISharedObject')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td></tr>
+<tr class="memitem:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc">Acquire</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the clients of the object to indicate that he has acquired the shared ownership of the object. <a href="#ab90d4ec1fcd975a7ac62dcb866335cdc">More...</a><br /></td></tr>
+<tr class="separator:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3">Release</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the clients of the object to indicate he has released his shared ownership of the object. If this being the last client than this function should call Destroy to delete and release the memory. <a href="#abf5a54e09f87366170ea19c618f68bc3">More...</a><br /></td></tr>
+<tr class="separator:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
+<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
+<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a> ()</td></tr>
+<tr class="memdesc:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to an interface object implementing the requested version. <a href="#ad6539461695decfaea8a44798db51e54">More...</a><br /></td></tr>
+<tr class="separator:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
+<tr class="memitem:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> const requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070">GetInterfacePointer</a> () const </td></tr>
+<tr class="memdesc:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to a const interface object implementing the requested version. <a href="#ab93a940e2946c14a76ebbd9552cab070">More...</a><br /></td></tr>
+<tr class="separator:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:ad857109e294bdff85685fa0974020645"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html#ad857109e294bdff85685fa0974020645">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:ad857109e294bdff85685fa0974020645"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1ISharedObject')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td></tr>
+<tr class="memitem:a5869ff89d0b7dd0a7b525401a1d57b31 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31">~ISharedObject</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="separator:a5869ff89d0b7dd0a7b525401a1d57b31 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afcb42109aed83c3b0c133bc413388037 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#afcb42109aed83c3b0c133bc413388037">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:afcb42109aed83c3b0c133bc413388037 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
+<tr class="memitem:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a> ()</td></tr>
+<tr class="separator:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Version1 of the interface that represents configuration settings controllable by the client. </p>
+<p>Provides functions through which client can plug in its own memory allocators, error notifiers. </p><dl class="section attention"><dt>Attention</dt><dd>Not Thread Safe as this functionality is generally used at the initialization phase. </dd></dl>
+
+<p>Definition at line <a class="el" href="IConfigurationManager_8h_source.html#l00030">30</a> of file <a class="el" href="IConfigurationManager_8h_source.html">IConfigurationManager.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="aab2f368cf6883a6cd92fe688a95516b5"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual AdobeXMPCommon::IConfigurationManager_v1::~IConfigurationManager_v1 </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="IConfigurationManager_8h_source.html#l00107">107</a> of file <a class="el" href="IConfigurationManager_8h_source.html">IConfigurationManager.h</a>.</p>
+
+<p>References <a class="el" href="XMPCommonDefines_8h_source.html#l00107">REQ_FRIEND_CLASS_DECLARATION</a>.</p>
+<div class="fragment"><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;{}</div></div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="acf69fdd4ec5c1eb47b6a41b052372504"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual bool APICALL AdobeXMPCommon::IConfigurationManager_v1::DisableMultiThreading </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Allows the client to disable the support for multi threading inside the library. By default library supports multi-threading. </p>
+<dl class="section return"><dt>Returns</dt><dd>A value of bool type; true means successful and false otherwise. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a32c1e2b6af5182d30d298be95652a065"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual bool APICALL AdobeXMPCommon::IConfigurationManager_v1::IsMultiThreaded </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Returns whether library supports multi threading or not. </p>
+<dl class="section return"><dt>Returns</dt><dd>A value of bool type; true means it supports multi threading and false otherwise. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="af078935e322f611a884061977d015d1d"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual bool APICALL AdobeXMPCommon::IConfigurationManager_v1::RegisterErrorNotifier </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a4ad7bda9e1289b0bb93510402b6e86f9">pIErrorNotifier_base</a>&#160;</td>
+ <td class="paramname"><em>clientErrorNotifier</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Allows the client to plug in its own error notification procedures which will be used to inform client about various warnings and errors. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">clientErrorNotifier</td><td>A pointer to an object of type AdobeXMPCommon::IErrorNotifier. NULL pointer means client no longer wants to be notified of any warnings or errors. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>a value of bool type; true means successful and false otherwise. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a4886e0ac409969583acccbe344489a85"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual bool APICALL AdobeXMPCommon::IConfigurationManager_v1::RegisterMemoryAllocator </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a605dcb5281a71a01673c81e6508f932f">pIMemoryAllocator</a>&#160;</td>
+ <td class="paramname"><em>memoryAllocator</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Allows the client to plug in its own memory allocation procedures which will be used to allocate/deallocate memory from the heap. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">memoryAllocator</td><td>A pointer to an object of type AdobeXMPCommon::IMemoryAllocator. NULL pointer will switch to default allocator built in the library. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A value of bool type; true means successful and false otherwise. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ad857109e294bdff85685fa0974020645"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">AdobeXMPCommon::IConfigurationManager_v1::REQ_FRIEND_CLASS_DECLARATION </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/Interfaces/<a class="el" href="IConfigurationManager_8h_source.html">IConfigurationManager.h</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCommon_1_1IConfigurationManager__v1.js b/docs/API/classAdobeXMPCommon_1_1IConfigurationManager__v1.js
new file mode 100755
index 0000000..083388d
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1IConfigurationManager__v1.js
@@ -0,0 +1,9 @@
+var classAdobeXMPCommon_1_1IConfigurationManager__v1 =
+[
+ [ "~IConfigurationManager_v1", "classAdobeXMPCommon_1_1IConfigurationManager__v1.html#aab2f368cf6883a6cd92fe688a95516b5", null ],
+ [ "DisableMultiThreading", "classAdobeXMPCommon_1_1IConfigurationManager__v1.html#acf69fdd4ec5c1eb47b6a41b052372504", null ],
+ [ "IsMultiThreaded", "classAdobeXMPCommon_1_1IConfigurationManager__v1.html#a32c1e2b6af5182d30d298be95652a065", null ],
+ [ "RegisterErrorNotifier", "classAdobeXMPCommon_1_1IConfigurationManager__v1.html#af078935e322f611a884061977d015d1d", null ],
+ [ "RegisterMemoryAllocator", "classAdobeXMPCommon_1_1IConfigurationManager__v1.html#a4886e0ac409969583acccbe344489a85", null ],
+ [ "REQ_FRIEND_CLASS_DECLARATION", "classAdobeXMPCommon_1_1IConfigurationManager__v1.html#ad857109e294bdff85685fa0974020645", null ]
+]; \ No newline at end of file
diff --git a/docs/API/classAdobeXMPCommon_1_1IConfigurationManager__v1.png b/docs/API/classAdobeXMPCommon_1_1IConfigurationManager__v1.png
new file mode 100755
index 0000000..b642a29
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1IConfigurationManager__v1.png
Binary files differ
diff --git a/docs/API/classAdobeXMPCommon_1_1IErrorNotifier__v1-members.html b/docs/API/classAdobeXMPCommon_1_1IErrorNotifier__v1-members.html
new file mode 100755
index 0000000..01c1ee1
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1IErrorNotifier__v1-members.html
@@ -0,0 +1,55 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCommon_1_1IErrorNotifier__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">AdobeXMPCommon::IErrorNotifier_v1 Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classAdobeXMPCommon_1_1IErrorNotifier__v1.html">AdobeXMPCommon::IErrorNotifier_v1</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IErrorNotifier__v1.html#ace4799050050f28ac3706b1de8940769">Notify</a>(const spcIError &amp;error)=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IErrorNotifier__v1.html">AdobeXMPCommon::IErrorNotifier_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IErrorNotifier__v1.html#a6b08a4aa1295fae50fe52c60787b3037">REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IErrorNotifier__v1.html">AdobeXMPCommon::IErrorNotifier_v1</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCommon_1_1IErrorNotifier__v1.html b/docs/API/classAdobeXMPCommon_1_1IErrorNotifier__v1.html
new file mode 100755
index 0000000..929dffc
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1IErrorNotifier__v1.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>AdobeXMPCommon::IErrorNotifier_v1 Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCommon_1_1IErrorNotifier__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="classAdobeXMPCommon_1_1IErrorNotifier__v1-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">AdobeXMPCommon::IErrorNotifier_v1 Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Version1 of the interface that represents an interface to be implemented by client in case he is interested in getting notifications with respect to errors/warnings encountered by library.
+ <a href="classAdobeXMPCommon_1_1IErrorNotifier__v1.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="IErrorNotifier_8h_source.html">IErrorNotifier.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:ace4799050050f28ac3706b1de8940769"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IErrorNotifier__v1.html#ace4799050050f28ac3706b1de8940769">Notify</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#a3f0de5ba5753a56896f2941927b23560">spcIError</a> &amp;error)=0</td></tr>
+<tr class="memdesc:ace4799050050f28ac3706b1de8940769"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the library to notify the client about the warning/error. <a href="#ace4799050050f28ac3706b1de8940769">More...</a><br /></td></tr>
+<tr class="separator:ace4799050050f28ac3706b1de8940769"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:a6b08a4aa1295fae50fe52c60787b3037"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IErrorNotifier__v1.html#a6b08a4aa1295fae50fe52c60787b3037">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:a6b08a4aa1295fae50fe52c60787b3037"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Version1 of the interface that represents an interface to be implemented by client in case he is interested in getting notifications with respect to errors/warnings encountered by library. </p>
+<p>In case client is interested in error notifications he can implement this interface and register the same with the #AdobeXMPCommon::IConfigurationManager. For every warning or error encountered the NotifyError function will be called by the library. In case of warnings ( indicated by the severity of the error ) the client has the option to continue ignoring the warning by returning true else he can return false and the warning will be thrown aborting the current operation. </p>
+
+<p>Definition at line <a class="el" href="IErrorNotifier_8h_source.html#l00027">27</a> of file <a class="el" href="IErrorNotifier_8h_source.html">IErrorNotifier.h</a>.</p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="ace4799050050f28ac3706b1de8940769"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual bool APICALL AdobeXMPCommon::IErrorNotifier_v1::Notify </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCommon.html#a3f0de5ba5753a56896f2941927b23560">spcIError</a> &amp;&#160;</td>
+ <td class="paramname"><em>error</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Called by the library to notify the client about the warning/error. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">error</td><td>const pointer to a #AdobeXMPCommon::IError. Client can use the information in the error to decide what should be the future course of action. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A value of bool type that will indicate the future course of action. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a6b08a4aa1295fae50fe52c60787b3037"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">AdobeXMPCommon::IErrorNotifier_v1::REQ_FRIEND_CLASS_DECLARATION </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/Interfaces/<a class="el" href="IErrorNotifier_8h_source.html">IErrorNotifier.h</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCommon_1_1IErrorNotifier__v1.js b/docs/API/classAdobeXMPCommon_1_1IErrorNotifier__v1.js
new file mode 100755
index 0000000..3d995ee
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1IErrorNotifier__v1.js
@@ -0,0 +1,5 @@
+var classAdobeXMPCommon_1_1IErrorNotifier__v1 =
+[
+ [ "Notify", "classAdobeXMPCommon_1_1IErrorNotifier__v1.html#ace4799050050f28ac3706b1de8940769", null ],
+ [ "REQ_FRIEND_CLASS_DECLARATION", "classAdobeXMPCommon_1_1IErrorNotifier__v1.html#a6b08a4aa1295fae50fe52c60787b3037", null ]
+]; \ No newline at end of file
diff --git a/docs/API/classAdobeXMPCommon_1_1IError__v1-members.html b/docs/API/classAdobeXMPCommon_1_1IError__v1-members.html
new file mode 100755
index 0000000..3ae3a65
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1IError__v1-members.html
@@ -0,0 +1,108 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCommon_1_1IError__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">AdobeXMPCommon::IError_v1 Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc">Acquire</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#abd77c134aeae1727d3173ab1a49ea3f2">AppendParameter</a>(const char *parameter, sizet len=npos) __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a8d43b2b1346cf0971e0ca85eb978c24a">AppendParameter</a>(void *addressParameter) __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#aaee451537de9ae0fecd92cdf9a2d74bd">AppendParameter</a>(const uint32 &amp;integerValue) __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a78f8b576c87bb5cf22716bd91621cf28">AppendParameter</a>(const uint64 &amp;integerValue) __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a6e85bc715a4de6c58b5d8bfa445ddebe">AppendParameter</a>(const int32 &amp;integerValue) __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a354cf52656e1567eb7bca7f682f39622">AppendParameter</a>(const int64 &amp;integerValue) __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a125e3343c3a6fc979798cfc5a826ffa9">AppendParameter</a>(const float &amp;floatValue) __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a62b066580a0f0b18a7f7fc9c351d1c93">AppendParameter</a>(const double &amp;doubleValue) __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#aebd455b3127a9c030bbcdafe78a8da98">AppendParameter</a>(bool booleanValue) __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#aac7106e2c1a4fb762f11ef70fb38cb8e">CreateError</a>(pIObjectFactory objFactory, eErrorDomain errDomain, eErrorCode errCode, eErrorSeverity errSeverity)</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a29cc93a78d4e1111ec8e51e4ca9a82b3">eErrorCode</a> typedef</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0d">eErrorDomain</a> enum name</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702">eErrorSeverity</a> enum name</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a4daea946019093097749e0a6c0a45cf0">GetCode</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#ae28247d03f397b27bee52b8378366f80">GetDomain</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070">GetInterfacePointer</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a1b00f65d8eff4312decbbf374089a73f">GetLocation</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a0bf4ec8969fd74b0d82db0e5c0f47530">GetMessage</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#acde20d4794bd22283a8c86021f979c29">GetNextError</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a18e0f7f012b875b315bb745a96bc4d66">GetNextError</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a9479cedd0dcfd7bfda628178554ceb30">GetParameter</a>(sizet index) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a0023512a27c6aea27998fcf18d1a6413">GetParametersCount</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a62944c723bd7bf40207521ac966a6b02">GetSeverity</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da495992977fdfefad3c7b51350d952120">kEDAssetManagement</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0dadea3f136c96a37d23f8f984551bfc320">kEDConfigurable</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da54f0a72b16e0c1cc0e484ebca6d13708">kEDConflictIdentification</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da7a0ca7368a9c93d038b635ea7ae0f691">kEDConflictResolution</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da553e7b6dff9e1c9d4d53a155cdb627a7">kEDDataModel</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da3ab4caaddd020b4446ef5e52300e7b1f">kEDGeneral</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da500ecdf6b68ffe0f4d901740bae84a6a">kEDGenericStrategyDatabase</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da1e77ab380b475ba060d14c489a2ad1bc">kEDMaxValue</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da259afda1164ca63dc7a5730e36ca35a8">kEDMemoryManagement</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0dad284da5871c3d7be07ece3e18cfc1313">kEDMultiThreading</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0dad08de2ff0da8d78befc1e3160d91fb66">kEDNone</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da977f7d430590fc0e8e91424479403e54">kEDParser</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da3ee93ea699a7ad40361aa97bd7bd5cbf">kEDSerializer</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0dae98f9f2ae109cb8f4e20bac749b9096d">kEDThreeWayMerge</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da90c7a2910e189c25b42be36b5342cd8e">kEDXMPFiles</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702aaf28b59c2541f8bd3a4e70a4c7e58908">kESAll</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702aa83e26dbed0e72dc086520892693a408">kESMaxValue</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702a72d4e6dab6f3c900e504db6ad274f03b">kESNone</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702aad55eb387014908711b915d5877d7d80">kESOperationFatal</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702a2aec1db6233320381fa85f9490d95a60">kESProcessFatal</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702a20b2b1a43e9ba7559ad49c5fb9ae845c">kESWarning</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3">Release</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#afcb42109aed83c3b0c133bc413388037">AdobeXMPCommon::REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f">AdobeXMPCommon::IVersionable::REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a02f24319a739eee3b5d246bfc72fa71d">SetLocation</a>(const char *fileName, sizet lineNumber) __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#aab0339169d7def09682a3afd8a65145e">SetMessage</a>(const char *message, sizet len=npos) __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a65e29b8ca5749bb9a5286e2d4a93a2af">SetNextError</a>(const spIError &amp;error)=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a259f1d92b325fe01991ca5acd2238346">~IError_v1</a>() __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">AdobeXMPCommon::IError_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31">~ISharedObject</a>() __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCommon_1_1IError__v1.html b/docs/API/classAdobeXMPCommon_1_1IError__v1.html
new file mode 100755
index 0000000..389f988
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1IError__v1.html
@@ -0,0 +1,1119 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>AdobeXMPCommon::IError_v1 Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCommon_1_1IError__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pub-types">Public Types</a> &#124;
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="classAdobeXMPCommon_1_1IError__v1-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">AdobeXMPCommon::IError_v1 Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Version1 of the interface that represents an error/warning encountered during processing.
+ <a href="classAdobeXMPCommon_1_1IError__v1.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="IError_8h_source.html">IError.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for AdobeXMPCommon::IError_v1:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classAdobeXMPCommon_1_1IError__v1.png" usemap="#AdobeXMPCommon::IError_5Fv1_map" alt=""/>
+ <map id="AdobeXMPCommon::IError_5Fv1_map" name="AdobeXMPCommon::IError_v1_map">
+<area href="classAdobeXMPCommon_1_1ISharedObject.html" title="Interface that serves as the base interface of all the externally exposed interfaces. " alt="AdobeXMPCommon::ISharedObject" shape="rect" coords="0,0,212,24"/>
+<area href="classAdobeXMPCommon_1_1IVersionable.html" title="Interface that serves as the base interface for all the externally exposed interfaces which needs to ..." alt="AdobeXMPCommon::IVersionable" shape="rect" coords="222,0,434,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr class="memitem:a9079d6a31de223baec5db854f826d702"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702">eErrorSeverity</a> { <br />
+&#160;&#160;<a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702a72d4e6dab6f3c900e504db6ad274f03b">kESNone</a> = 0,
+<a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702a20b2b1a43e9ba7559ad49c5fb9ae845c">kESWarning</a> = 1 &lt;&lt; 0,
+<a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702aad55eb387014908711b915d5877d7d80">kESOperationFatal</a> = 1 &lt;&lt; 1,
+<a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702a2aec1db6233320381fa85f9490d95a60">kESProcessFatal</a> = 1 &lt;&lt; 2,
+<br />
+&#160;&#160;<a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702aa83e26dbed0e72dc086520892693a408">kESMaxValue</a> = 1 &lt;&lt; 31,
+<a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702aaf28b59c2541f8bd3a4e70a4c7e58908">kESAll</a> = kAllBits
+<br />
+ }<tr class="memdesc:a9079d6a31de223baec5db854f826d702"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates various types of errors. <a href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:a9079d6a31de223baec5db854f826d702"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00f8c929931409a4bf6eeeb47270bf0d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0d">eErrorDomain</a> { <br />
+&#160;&#160;<a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0dad08de2ff0da8d78befc1e3160d91fb66">kEDNone</a> = 0,
+<a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da3ab4caaddd020b4446ef5e52300e7b1f">kEDGeneral</a> = 1,
+<a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da259afda1164ca63dc7a5730e36ca35a8">kEDMemoryManagement</a> = 2,
+<a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0dadea3f136c96a37d23f8f984551bfc320">kEDConfigurable</a> = 3,
+<br />
+&#160;&#160;<a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0dad284da5871c3d7be07ece3e18cfc1313">kEDMultiThreading</a> = 4,
+<a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da553e7b6dff9e1c9d4d53a155cdb627a7">kEDDataModel</a> = 100,
+<a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da977f7d430590fc0e8e91424479403e54">kEDParser</a> = 101,
+<a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da3ee93ea699a7ad40361aa97bd7bd5cbf">kEDSerializer</a> = 102,
+<br />
+&#160;&#160;<a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da90c7a2910e189c25b42be36b5342cd8e">kEDXMPFiles</a> = 200,
+<a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da54f0a72b16e0c1cc0e484ebca6d13708">kEDConflictIdentification</a> = 400,
+<a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da7a0ca7368a9c93d038b635ea7ae0f691">kEDConflictResolution</a> = 500,
+<a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0dae98f9f2ae109cb8f4e20bac749b9096d">kEDThreeWayMerge</a> = 600,
+<br />
+&#160;&#160;<a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da500ecdf6b68ffe0f4d901740bae84a6a">kEDGenericStrategyDatabase</a> = 601,
+<a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da495992977fdfefad3c7b51350d952120">kEDAssetManagement</a> = 10000,
+<a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da1e77ab380b475ba060d14c489a2ad1bc">kEDMaxValue</a> = kMaxEnumValue
+<br />
+ }<tr class="memdesc:a00f8c929931409a4bf6eeeb47270bf0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates various types of error domains. <a href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0d">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:a00f8c929931409a4bf6eeeb47270bf0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a29cc93a78d4e1111ec8e51e4ca9a82b3"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a29cc93a78d4e1111ec8e51e4ca9a82b3">eErrorCode</a></td></tr>
+<tr class="separator:a29cc93a78d4e1111ec8e51e4ca9a82b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a4daea946019093097749e0a6c0a45cf0"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a29cc93a78d4e1111ec8e51e4ca9a82b3">eErrorCode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a4daea946019093097749e0a6c0a45cf0">GetCode</a> () const =0</td></tr>
+<tr class="memdesc:a4daea946019093097749e0a6c0a45cf0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the error code. <a href="#a4daea946019093097749e0a6c0a45cf0">More...</a><br /></td></tr>
+<tr class="separator:a4daea946019093097749e0a6c0a45cf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae28247d03f397b27bee52b8378366f80"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0d">eErrorDomain</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#ae28247d03f397b27bee52b8378366f80">GetDomain</a> () const =0</td></tr>
+<tr class="memdesc:ae28247d03f397b27bee52b8378366f80"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the error domain. <a href="#ae28247d03f397b27bee52b8378366f80">More...</a><br /></td></tr>
+<tr class="separator:ae28247d03f397b27bee52b8378366f80"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a62944c723bd7bf40207521ac966a6b02"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702">eErrorSeverity</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a62944c723bd7bf40207521ac966a6b02">GetSeverity</a> () const =0</td></tr>
+<tr class="memdesc:a62944c723bd7bf40207521ac966a6b02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the error severity. <a href="#a62944c723bd7bf40207521ac966a6b02">More...</a><br /></td></tr>
+<tr class="separator:a62944c723bd7bf40207521ac966a6b02"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0bf4ec8969fd74b0d82db0e5c0f47530"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a0bf4ec8969fd74b0d82db0e5c0f47530">GetMessage</a> () const =0</td></tr>
+<tr class="memdesc:a0bf4ec8969fd74b0d82db0e5c0f47530"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the error message. <a href="#a0bf4ec8969fd74b0d82db0e5c0f47530">More...</a><br /></td></tr>
+<tr class="separator:a0bf4ec8969fd74b0d82db0e5c0f47530"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1b00f65d8eff4312decbbf374089a73f"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a1b00f65d8eff4312decbbf374089a73f">GetLocation</a> () const =0</td></tr>
+<tr class="memdesc:a1b00f65d8eff4312decbbf374089a73f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the location of the error origin. <a href="#a1b00f65d8eff4312decbbf374089a73f">More...</a><br /></td></tr>
+<tr class="separator:a1b00f65d8eff4312decbbf374089a73f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9479cedd0dcfd7bfda628178554ceb30"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a9479cedd0dcfd7bfda628178554ceb30">GetParameter</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> index) const =0</td></tr>
+<tr class="memdesc:a9479cedd0dcfd7bfda628178554ceb30"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the value of a parameter at a particular index. <a href="#a9479cedd0dcfd7bfda628178554ceb30">More...</a><br /></td></tr>
+<tr class="separator:a9479cedd0dcfd7bfda628178554ceb30"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0023512a27c6aea27998fcf18d1a6413"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a0023512a27c6aea27998fcf18d1a6413">GetParametersCount</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a0023512a27c6aea27998fcf18d1a6413"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the count of parameters. <a href="#a0023512a27c6aea27998fcf18d1a6413">More...</a><br /></td></tr>
+<tr class="separator:a0023512a27c6aea27998fcf18d1a6413"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a65e29b8ca5749bb9a5286e2d4a93a2af"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#adb05c7ceec43360b84aee536612151f9">spIError</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a65e29b8ca5749bb9a5286e2d4a93a2af">SetNextError</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#adb05c7ceec43360b84aee536612151f9">spIError</a> &amp;error)=0</td></tr>
+<tr class="memdesc:a65e29b8ca5749bb9a5286e2d4a93a2af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the next error in the chain. <a href="#a65e29b8ca5749bb9a5286e2d4a93a2af">More...</a><br /></td></tr>
+<tr class="separator:a65e29b8ca5749bb9a5286e2d4a93a2af"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aab0339169d7def09682a3afd8a65145e"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#aab0339169d7def09682a3afd8a65145e">SetMessage</a> (const char *message, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> len=<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a>) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:aab0339169d7def09682a3afd8a65145e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the error message. <a href="#aab0339169d7def09682a3afd8a65145e">More...</a><br /></td></tr>
+<tr class="separator:aab0339169d7def09682a3afd8a65145e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a02f24319a739eee3b5d246bfc72fa71d"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a02f24319a739eee3b5d246bfc72fa71d">SetLocation</a> (const char *fileName, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> lineNumber) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a02f24319a739eee3b5d246bfc72fa71d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the location of origin of error. <a href="#a02f24319a739eee3b5d246bfc72fa71d">More...</a><br /></td></tr>
+<tr class="separator:a02f24319a739eee3b5d246bfc72fa71d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abd77c134aeae1727d3173ab1a49ea3f2"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#abd77c134aeae1727d3173ab1a49ea3f2">AppendParameter</a> (const char *parameter, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> len=<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a>) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:abd77c134aeae1727d3173ab1a49ea3f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends a parameter to the list of parameters. <a href="#abd77c134aeae1727d3173ab1a49ea3f2">More...</a><br /></td></tr>
+<tr class="separator:abd77c134aeae1727d3173ab1a49ea3f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8d43b2b1346cf0971e0ca85eb978c24a"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a8d43b2b1346cf0971e0ca85eb978c24a">AppendParameter</a> (void *addressParameter) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a8d43b2b1346cf0971e0ca85eb978c24a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends an address as a string to the list of parameters. <a href="#a8d43b2b1346cf0971e0ca85eb978c24a">More...</a><br /></td></tr>
+<tr class="separator:a8d43b2b1346cf0971e0ca85eb978c24a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaee451537de9ae0fecd92cdf9a2d74bd"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#aaee451537de9ae0fecd92cdf9a2d74bd">AppendParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> &amp;integerValue) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:aaee451537de9ae0fecd92cdf9a2d74bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends a 32 bit unsigned integer value as a string to the list of parameters. <a href="#aaee451537de9ae0fecd92cdf9a2d74bd">More...</a><br /></td></tr>
+<tr class="separator:aaee451537de9ae0fecd92cdf9a2d74bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a78f8b576c87bb5cf22716bd91621cf28"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a78f8b576c87bb5cf22716bd91621cf28">AppendParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;integerValue) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a78f8b576c87bb5cf22716bd91621cf28"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends a 64 bit unsigned integer value as a string to the list of parameters. <a href="#a78f8b576c87bb5cf22716bd91621cf28">More...</a><br /></td></tr>
+<tr class="separator:a78f8b576c87bb5cf22716bd91621cf28"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6e85bc715a4de6c58b5d8bfa445ddebe"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a6e85bc715a4de6c58b5d8bfa445ddebe">AppendParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#a070d4ea981e6080468e9a3cdbd82b458">int32</a> &amp;integerValue) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a6e85bc715a4de6c58b5d8bfa445ddebe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends a 32 bit integer value as a string to the list of parameters. <a href="#a6e85bc715a4de6c58b5d8bfa445ddebe">More...</a><br /></td></tr>
+<tr class="separator:a6e85bc715a4de6c58b5d8bfa445ddebe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a354cf52656e1567eb7bca7f682f39622"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a354cf52656e1567eb7bca7f682f39622">AppendParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aee4f68e01de51c2cf1c1044ecafebc25">int64</a> &amp;integerValue) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a354cf52656e1567eb7bca7f682f39622"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends a 64 bit integer value as a string to the list of parameters. <a href="#a354cf52656e1567eb7bca7f682f39622">More...</a><br /></td></tr>
+<tr class="separator:a354cf52656e1567eb7bca7f682f39622"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a125e3343c3a6fc979798cfc5a826ffa9"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a125e3343c3a6fc979798cfc5a826ffa9">AppendParameter</a> (const float &amp;floatValue) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a125e3343c3a6fc979798cfc5a826ffa9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends a floating value as a string to the list of parameters. <a href="#a125e3343c3a6fc979798cfc5a826ffa9">More...</a><br /></td></tr>
+<tr class="separator:a125e3343c3a6fc979798cfc5a826ffa9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a62b066580a0f0b18a7f7fc9c351d1c93"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a62b066580a0f0b18a7f7fc9c351d1c93">AppendParameter</a> (const double &amp;doubleValue) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a62b066580a0f0b18a7f7fc9c351d1c93"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends a double floating value as a string to the list of parameters. <a href="#a62b066580a0f0b18a7f7fc9c351d1c93">More...</a><br /></td></tr>
+<tr class="separator:a62b066580a0f0b18a7f7fc9c351d1c93"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aebd455b3127a9c030bbcdafe78a8da98"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#aebd455b3127a9c030bbcdafe78a8da98">AppendParameter</a> (bool booleanValue) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:aebd455b3127a9c030bbcdafe78a8da98"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends a boolean value as a string to the list of parameters. <a href="#aebd455b3127a9c030bbcdafe78a8da98">More...</a><br /></td></tr>
+<tr class="separator:aebd455b3127a9c030bbcdafe78a8da98"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
+<tr class="memitem:acde20d4794bd22283a8c86021f979c29"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#adb05c7ceec43360b84aee536612151f9">spIError</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#acde20d4794bd22283a8c86021f979c29">GetNextError</a> ()=0</td></tr>
+<tr class="memdesc:acde20d4794bd22283a8c86021f979c29"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the next error in the chain. <a href="#acde20d4794bd22283a8c86021f979c29">More...</a><br /></td></tr>
+<tr class="separator:acde20d4794bd22283a8c86021f979c29"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a18e0f7f012b875b315bb745a96bc4d66"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCommon.html#a3f0de5ba5753a56896f2941927b23560">spcIError</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a18e0f7f012b875b315bb745a96bc4d66">GetNextError</a> () const </td></tr>
+<tr class="separator:a18e0f7f012b875b315bb745a96bc4d66"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1ISharedObject')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td></tr>
+<tr class="memitem:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc">Acquire</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the clients of the object to indicate that he has acquired the shared ownership of the object. <a href="#ab90d4ec1fcd975a7ac62dcb866335cdc">More...</a><br /></td></tr>
+<tr class="separator:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3">Release</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the clients of the object to indicate he has released his shared ownership of the object. If this being the last client than this function should call Destroy to delete and release the memory. <a href="#abf5a54e09f87366170ea19c618f68bc3">More...</a><br /></td></tr>
+<tr class="separator:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
+<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
+<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a> ()</td></tr>
+<tr class="memdesc:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to an interface object implementing the requested version. <a href="#ad6539461695decfaea8a44798db51e54">More...</a><br /></td></tr>
+<tr class="separator:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
+<tr class="memitem:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> const requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070">GetInterfacePointer</a> () const </td></tr>
+<tr class="memdesc:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to a const interface object implementing the requested version. <a href="#ab93a940e2946c14a76ebbd9552cab070">More...</a><br /></td></tr>
+<tr class="separator:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr class="memitem:aac7106e2c1a4fb762f11ef70fb38cb8e"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="namespaceAdobeXMPCommon.html#adb05c7ceec43360b84aee536612151f9">spIError</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#aac7106e2c1a4fb762f11ef70fb38cb8e">CreateError</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a0863cf1c24764306839671985373b93f">pIObjectFactory</a> objFactory, <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0d">eErrorDomain</a> errDomain, <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a29cc93a78d4e1111ec8e51e4ca9a82b3">eErrorCode</a> errCode, <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702">eErrorSeverity</a> errSeverity)</td></tr>
+<tr class="memdesc:aac7106e2c1a4fb762f11ef70fb38cb8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an error object. <a href="#aac7106e2c1a4fb762f11ef70fb38cb8e">More...</a><br /></td></tr>
+<tr class="separator:aac7106e2c1a4fb762f11ef70fb38cb8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:a259f1d92b325fe01991ca5acd2238346"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a259f1d92b325fe01991ca5acd2238346">~IError_v1</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:a259f1d92b325fe01991ca5acd2238346"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1ISharedObject')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td></tr>
+<tr class="memitem:a5869ff89d0b7dd0a7b525401a1d57b31 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31">~ISharedObject</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="separator:a5869ff89d0b7dd0a7b525401a1d57b31 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afcb42109aed83c3b0c133bc413388037 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#afcb42109aed83c3b0c133bc413388037">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:afcb42109aed83c3b0c133bc413388037 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
+<tr class="memitem:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a> ()</td></tr>
+<tr class="separator:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Version1 of the interface that represents an error/warning encountered during processing. </p>
+<p>Provides all the functions to get required information regarding error scenario. </p><dl class="section attention"><dt>Attention</dt><dd>Do Not support Multi-threading at object level. </dd>
+<dd>
+Multi-threading not required since clients will only be provided const objects. </dd></dl>
+
+<p>Definition at line <a class="el" href="IError_8h_source.html#l00026">26</a> of file <a class="el" href="IError_8h_source.html">IError.h</a>.</p>
+</div><h2 class="groupheader">Member Typedef Documentation</h2>
+<a class="anchor" id="a29cc93a78d4e1111ec8e51e4ca9a82b3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a29cc93a78d4e1111ec8e51e4ca9a82b3">AdobeXMPCommon::IError_v1::eErrorCode</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="IError_8h_source.html#l00109">109</a> of file <a class="el" href="IError_8h_source.html">IError.h</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Enumeration Documentation</h2>
+<a class="anchor" id="a00f8c929931409a4bf6eeeb47270bf0d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0d">AdobeXMPCommon::IError_v1::eErrorDomain</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Indicates various types of error domains. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a00f8c929931409a4bf6eeeb47270bf0dad08de2ff0da8d78befc1e3160d91fb66"></a>kEDNone&#160;</td><td class="fielddoc">
+<p>No Domain. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a00f8c929931409a4bf6eeeb47270bf0da3ab4caaddd020b4446ef5e52300e7b1f"></a>kEDGeneral&#160;</td><td class="fielddoc">
+<p>Indicates error related to general conditions. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a00f8c929931409a4bf6eeeb47270bf0da259afda1164ca63dc7a5730e36ca35a8"></a>kEDMemoryManagement&#160;</td><td class="fielddoc">
+<p>Indicates error related to memory allocation-deallocation conditions. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a00f8c929931409a4bf6eeeb47270bf0dadea3f136c96a37d23f8f984551bfc320"></a>kEDConfigurable&#160;</td><td class="fielddoc">
+<p>Indicates error related to configurable APIs. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a00f8c929931409a4bf6eeeb47270bf0dad284da5871c3d7be07ece3e18cfc1313"></a>kEDMultiThreading&#160;</td><td class="fielddoc">
+<p>Indicates error releated to multithreading. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a00f8c929931409a4bf6eeeb47270bf0da553e7b6dff9e1c9d4d53a155cdb627a7"></a>kEDDataModel&#160;</td><td class="fielddoc">
+<p>Indicates error related to XMP Data Model Management. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a00f8c929931409a4bf6eeeb47270bf0da977f7d430590fc0e8e91424479403e54"></a>kEDParser&#160;</td><td class="fielddoc">
+<p>Indicates error related to XMP Parsing. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a00f8c929931409a4bf6eeeb47270bf0da3ee93ea699a7ad40361aa97bd7bd5cbf"></a>kEDSerializer&#160;</td><td class="fielddoc">
+<p>Indicates error related to XMP Serializing. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a00f8c929931409a4bf6eeeb47270bf0da90c7a2910e189c25b42be36b5342cd8e"></a>kEDXMPFiles&#160;</td><td class="fielddoc">
+<p>Indicates error related to dealing with XMP in various file formats. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a00f8c929931409a4bf6eeeb47270bf0da54f0a72b16e0c1cc0e484ebca6d13708"></a>kEDConflictIdentification&#160;</td><td class="fielddoc">
+<p>Indicates error related to Conflict Identification. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a00f8c929931409a4bf6eeeb47270bf0da7a0ca7368a9c93d038b635ea7ae0f691"></a>kEDConflictResolution&#160;</td><td class="fielddoc">
+<p>Indicates error related to Conflict Resolution. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a00f8c929931409a4bf6eeeb47270bf0dae98f9f2ae109cb8f4e20bac749b9096d"></a>kEDThreeWayMerge&#160;</td><td class="fielddoc">
+<p>Indicates error related to 3 Way Merge. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a00f8c929931409a4bf6eeeb47270bf0da500ecdf6b68ffe0f4d901740bae84a6a"></a>kEDGenericStrategyDatabase&#160;</td><td class="fielddoc">
+<p>Indicates error related to Generic Strategy Database. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a00f8c929931409a4bf6eeeb47270bf0da495992977fdfefad3c7b51350d952120"></a>kEDAssetManagement&#160;</td><td class="fielddoc">
+<p>Indicates error related to Asset Management. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a00f8c929931409a4bf6eeeb47270bf0da1e77ab380b475ba060d14c489a2ad1bc"></a>kEDMaxValue&#160;</td><td class="fielddoc">
+<p>Maximum value this enum can hold, should be treated as invalid value. </p>
+</td></tr>
+</table>
+
+<p>Definition at line <a class="el" href="IError_8h_source.html#l00060">60</a> of file <a class="el" href="IError_8h_source.html">IError.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; {</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0dad08de2ff0da8d78befc1e3160d91fb66">kEDNone</a> = 0,</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da3ab4caaddd020b4446ef5e52300e7b1f">kEDGeneral</a> = 1,</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da259afda1164ca63dc7a5730e36ca35a8">kEDMemoryManagement</a> = 2,</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0dadea3f136c96a37d23f8f984551bfc320">kEDConfigurable</a> = 3,</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0dad284da5871c3d7be07ece3e18cfc1313">kEDMultiThreading</a> = 4,</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da553e7b6dff9e1c9d4d53a155cdb627a7">kEDDataModel</a> = 100,</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da977f7d430590fc0e8e91424479403e54">kEDParser</a> = 101,</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da3ee93ea699a7ad40361aa97bd7bd5cbf">kEDSerializer</a> = 102,</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da90c7a2910e189c25b42be36b5342cd8e">kEDXMPFiles</a> = 200,</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da54f0a72b16e0c1cc0e484ebca6d13708">kEDConflictIdentification</a> = 400,</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da7a0ca7368a9c93d038b635ea7ae0f691">kEDConflictResolution</a> = 500,</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0dae98f9f2ae109cb8f4e20bac749b9096d">kEDThreeWayMerge</a> = 600,</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da500ecdf6b68ffe0f4d901740bae84a6a">kEDGenericStrategyDatabase</a> = 601,</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da495992977fdfefad3c7b51350d952120">kEDAssetManagement</a> = 10000,</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da1e77ab380b475ba060d14c489a2ad1bc">kEDMaxValue</a> = <a class="code" href="namespaceAdobeXMPCommon.html#a8ec7e2a77ea452c3d46bb7dbbc722574">kMaxEnumValue</a></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; } <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0d">eErrorDomain</a>;</div><div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html_a00f8c929931409a4bf6eeeb47270bf0da3ab4caaddd020b4446ef5e52300e7b1f"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da3ab4caaddd020b4446ef5e52300e7b1f">AdobeXMPCommon::IError_v1::kEDGeneral</a></div><div class="ttdoc">Indicates error related to general conditions. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00065">IError.h:65</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html_a00f8c929931409a4bf6eeeb47270bf0da259afda1164ca63dc7a5730e36ca35a8"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da259afda1164ca63dc7a5730e36ca35a8">AdobeXMPCommon::IError_v1::kEDMemoryManagement</a></div><div class="ttdoc">Indicates error related to memory allocation-deallocation conditions. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00068">IError.h:68</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html_a00f8c929931409a4bf6eeeb47270bf0da500ecdf6b68ffe0f4d901740bae84a6a"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da500ecdf6b68ffe0f4d901740bae84a6a">AdobeXMPCommon::IError_v1::kEDGenericStrategyDatabase</a></div><div class="ttdoc">Indicates error related to Generic Strategy Database. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00100">IError.h:100</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html_a00f8c929931409a4bf6eeeb47270bf0da90c7a2910e189c25b42be36b5342cd8e"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da90c7a2910e189c25b42be36b5342cd8e">AdobeXMPCommon::IError_v1::kEDXMPFiles</a></div><div class="ttdoc">Indicates error related to dealing with XMP in various file formats. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00087">IError.h:87</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html_a00f8c929931409a4bf6eeeb47270bf0da977f7d430590fc0e8e91424479403e54"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da977f7d430590fc0e8e91424479403e54">AdobeXMPCommon::IError_v1::kEDParser</a></div><div class="ttdoc">Indicates error related to XMP Parsing. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00080">IError.h:80</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html_a00f8c929931409a4bf6eeeb47270bf0dae98f9f2ae109cb8f4e20bac749b9096d"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0dae98f9f2ae109cb8f4e20bac749b9096d">AdobeXMPCommon::IError_v1::kEDThreeWayMerge</a></div><div class="ttdoc">Indicates error related to 3 Way Merge. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00097">IError.h:97</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html_a00f8c929931409a4bf6eeeb47270bf0dadea3f136c96a37d23f8f984551bfc320"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0dadea3f136c96a37d23f8f984551bfc320">AdobeXMPCommon::IError_v1::kEDConfigurable</a></div><div class="ttdoc">Indicates error related to configurable APIs. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00071">IError.h:71</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html_a00f8c929931409a4bf6eeeb47270bf0d"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0d">AdobeXMPCommon::IError_v1::eErrorDomain</a></div><div class="ttdeci">eErrorDomain</div><div class="ttdoc">Indicates various types of error domains. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00060">IError.h:60</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html_a00f8c929931409a4bf6eeeb47270bf0da495992977fdfefad3c7b51350d952120"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da495992977fdfefad3c7b51350d952120">AdobeXMPCommon::IError_v1::kEDAssetManagement</a></div><div class="ttdoc">Indicates error related to Asset Management. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00103">IError.h:103</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html_a00f8c929931409a4bf6eeeb47270bf0da1e77ab380b475ba060d14c489a2ad1bc"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da1e77ab380b475ba060d14c489a2ad1bc">AdobeXMPCommon::IError_v1::kEDMaxValue</a></div><div class="ttdoc">Maximum value this enum can hold, should be treated as invalid value. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00106">IError.h:106</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html_a00f8c929931409a4bf6eeeb47270bf0da3ee93ea699a7ad40361aa97bd7bd5cbf"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da3ee93ea699a7ad40361aa97bd7bd5cbf">AdobeXMPCommon::IError_v1::kEDSerializer</a></div><div class="ttdoc">Indicates error related to XMP Serializing. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00083">IError.h:83</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8ec7e2a77ea452c3d46bb7dbbc722574"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8ec7e2a77ea452c3d46bb7dbbc722574">AdobeXMPCommon::kMaxEnumValue</a></div><div class="ttdeci">static const uint32 kMaxEnumValue(Max_XMP_Uns32)</div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html_a00f8c929931409a4bf6eeeb47270bf0da7a0ca7368a9c93d038b635ea7ae0f691"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da7a0ca7368a9c93d038b635ea7ae0f691">AdobeXMPCommon::IError_v1::kEDConflictResolution</a></div><div class="ttdoc">Indicates error related to Conflict Resolution. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00094">IError.h:94</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html_a00f8c929931409a4bf6eeeb47270bf0dad08de2ff0da8d78befc1e3160d91fb66"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0dad08de2ff0da8d78befc1e3160d91fb66">AdobeXMPCommon::IError_v1::kEDNone</a></div><div class="ttdoc">No Domain. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00062">IError.h:62</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html_a00f8c929931409a4bf6eeeb47270bf0dad284da5871c3d7be07ece3e18cfc1313"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0dad284da5871c3d7be07ece3e18cfc1313">AdobeXMPCommon::IError_v1::kEDMultiThreading</a></div><div class="ttdoc">Indicates error releated to multithreading. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00074">IError.h:74</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html_a00f8c929931409a4bf6eeeb47270bf0da54f0a72b16e0c1cc0e484ebca6d13708"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da54f0a72b16e0c1cc0e484ebca6d13708">AdobeXMPCommon::IError_v1::kEDConflictIdentification</a></div><div class="ttdoc">Indicates error related to Conflict Identification. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00091">IError.h:91</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html_a00f8c929931409a4bf6eeeb47270bf0da553e7b6dff9e1c9d4d53a155cdb627a7"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da553e7b6dff9e1c9d4d53a155cdb627a7">AdobeXMPCommon::IError_v1::kEDDataModel</a></div><div class="ttdoc">Indicates error related to XMP Data Model Management. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00077">IError.h:77</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a9079d6a31de223baec5db854f826d702"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702">AdobeXMPCommon::IError_v1::eErrorSeverity</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Indicates various types of errors. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a9079d6a31de223baec5db854f826d702a72d4e6dab6f3c900e504db6ad274f03b"></a>kESNone&#160;</td><td class="fielddoc">
+<p>No severity, not to be used. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a9079d6a31de223baec5db854f826d702a20b2b1a43e9ba7559ad49c5fb9ae845c"></a>kESWarning&#160;</td><td class="fielddoc">
+<p>Recovery is possible, client can choose to ignore and let library continue with the best possible way. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a9079d6a31de223baec5db854f826d702aad55eb387014908711b915d5877d7d80"></a>kESOperationFatal&#160;</td><td class="fielddoc">
+<p>Recovery is not possible, an exception of type pcIError_base will be thrown aborting the API call. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a9079d6a31de223baec5db854f826d702a2aec1db6233320381fa85f9490d95a60"></a>kESProcessFatal&#160;</td><td class="fielddoc">
+<p>Recovery is not possible, an exception of type pcIError_base will be thrown, client should abort the process. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a9079d6a31de223baec5db854f826d702aa83e26dbed0e72dc086520892693a408"></a>kESMaxValue&#160;</td><td class="fielddoc">
+<p>Maximum value this enum can hold, should be treated as invalid value. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a9079d6a31de223baec5db854f826d702aaf28b59c2541f8bd3a4e70a4c7e58908"></a>kESAll&#160;</td><td class="fielddoc">
+<p>Union of all severities. </p>
+</td></tr>
+</table>
+
+<p>Definition at line <a class="el" href="IError_8h_source.html#l00034">34</a> of file <a class="el" href="IError_8h_source.html">IError.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; {</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702a72d4e6dab6f3c900e504db6ad274f03b">kESNone</a> = 0,</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702a20b2b1a43e9ba7559ad49c5fb9ae845c">kESWarning</a> = 1 &lt;&lt; 0,</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702aad55eb387014908711b915d5877d7d80">kESOperationFatal</a> = 1 &lt;&lt; 1,</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702a2aec1db6233320381fa85f9490d95a60">kESProcessFatal</a> = 1 &lt;&lt; 2,</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="comment">// Add new severities here</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702aa83e26dbed0e72dc086520892693a408">kESMaxValue</a> = 1 &lt;&lt; 31,</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702aaf28b59c2541f8bd3a4e70a4c7e58908">kESAll</a> = <a class="code" href="namespaceAdobeXMPCommon.html#a3e31c8b25cbf95c42b8e439071bdf865">kAllBits</a>,</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; } <a class="code" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702">eErrorSeverity</a>;</div><div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html_a9079d6a31de223baec5db854f826d702a2aec1db6233320381fa85f9490d95a60"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702a2aec1db6233320381fa85f9490d95a60">AdobeXMPCommon::IError_v1::kESProcessFatal</a></div><div class="ttdoc">Recovery is not possible, an exception of type pcIError_base will be thrown, client should abort the ...</div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00045">IError.h:45</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a3e31c8b25cbf95c42b8e439071bdf865"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a3e31c8b25cbf95c42b8e439071bdf865">AdobeXMPCommon::kAllBits</a></div><div class="ttdeci">static const uint32 kAllBits(0xFFFFFFFF)</div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html_a9079d6a31de223baec5db854f826d702a20b2b1a43e9ba7559ad49c5fb9ae845c"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702a20b2b1a43e9ba7559ad49c5fb9ae845c">AdobeXMPCommon::IError_v1::kESWarning</a></div><div class="ttdoc">Recovery is possible, client can choose to ignore and let library continue with the best possible way...</div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00039">IError.h:39</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html_a9079d6a31de223baec5db854f826d702aa83e26dbed0e72dc086520892693a408"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702aa83e26dbed0e72dc086520892693a408">AdobeXMPCommon::IError_v1::kESMaxValue</a></div><div class="ttdoc">Maximum value this enum can hold, should be treated as invalid value. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00050">IError.h:50</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html_a9079d6a31de223baec5db854f826d702a72d4e6dab6f3c900e504db6ad274f03b"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702a72d4e6dab6f3c900e504db6ad274f03b">AdobeXMPCommon::IError_v1::kESNone</a></div><div class="ttdoc">No severity, not to be used. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00036">IError.h:36</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html_a9079d6a31de223baec5db854f826d702aaf28b59c2541f8bd3a4e70a4c7e58908"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702aaf28b59c2541f8bd3a4e70a4c7e58908">AdobeXMPCommon::IError_v1::kESAll</a></div><div class="ttdoc">Union of all severities. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00053">IError.h:53</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html_a9079d6a31de223baec5db854f826d702"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702">AdobeXMPCommon::IError_v1::eErrorSeverity</a></div><div class="ttdeci">eErrorSeverity</div><div class="ttdoc">Indicates various types of errors. </div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00034">IError.h:34</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html_a9079d6a31de223baec5db854f826d702aad55eb387014908711b915d5877d7d80"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702aad55eb387014908711b915d5877d7d80">AdobeXMPCommon::IError_v1::kESOperationFatal</a></div><div class="ttdoc">Recovery is not possible, an exception of type pcIError_base will be thrown aborting the API call...</div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00042">IError.h:42</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a259f1d92b325fe01991ca5acd2238346"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual AdobeXMPCommon::IError_v1::~IError_v1 </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Destructor </p>
+
+<p>Definition at line <a class="el" href="IError_8h_source.html#l00314">314</a> of file <a class="el" href="IError_8h_source.html">IError.h</a>.</p>
+
+<p>References <a class="el" href="XMPCommonDefines_8h_source.html#l00107">REQ_FRIEND_CLASS_DECLARATION</a>.</p>
+<div class="fragment"><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;{}</div></div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="abd77c134aeae1727d3173ab1a49ea3f2"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCommon::IError_v1::AppendParameter </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>parameter</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>len</em> = <code><a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a></code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Appends a parameter to the list of parameters. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">parameter</td><td>Pointer to a constant char buffer containing parameter. It can be null terminated or not. NULL pointer will be treated as empty message string. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">len</td><td>A value of <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a> indicating the length in case parameter is not null terminated. In case parameter is null terminated it can be set to its default value ( npos ). </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a8d43b2b1346cf0971e0ca85eb978c24a"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCommon::IError_v1::AppendParameter </td>
+ <td>(</td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>addressParameter</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Appends an address as a string to the list of parameters. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">addressParameter</td><td>A value of void * type containing the address of the location to be used as parameter. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="aaee451537de9ae0fecd92cdf9a2d74bd"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCommon::IError_v1::AppendParameter </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> &amp;&#160;</td>
+ <td class="paramname"><em>integerValue</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Appends a 32 bit unsigned integer value as a string to the list of parameters. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">integerValue</td><td>A value of <a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">AdobeXMPCommon::uint32</a> type containing the integral value to be used as parameter. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a78f8b576c87bb5cf22716bd91621cf28"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCommon::IError_v1::AppendParameter </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;&#160;</td>
+ <td class="paramname"><em>integerValue</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Appends a 64 bit unsigned integer value as a string to the list of parameters. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">integerValue</td><td>A value of <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">AdobeXMPCommon::uint64</a> type containing the integral value to be used as parameter. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a6e85bc715a4de6c58b5d8bfa445ddebe"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCommon::IError_v1::AppendParameter </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCommon.html#a070d4ea981e6080468e9a3cdbd82b458">int32</a> &amp;&#160;</td>
+ <td class="paramname"><em>integerValue</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Appends a 32 bit integer value as a string to the list of parameters. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">integerValue</td><td>A value of <a class="el" href="namespaceAdobeXMPCommon.html#a070d4ea981e6080468e9a3cdbd82b458">AdobeXMPCommon::int32</a> type containing the integral value to be used as parameter. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a354cf52656e1567eb7bca7f682f39622"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCommon::IError_v1::AppendParameter </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCommon.html#aee4f68e01de51c2cf1c1044ecafebc25">int64</a> &amp;&#160;</td>
+ <td class="paramname"><em>integerValue</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Appends a 64 bit integer value as a string to the list of parameters. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">integerValue</td><td>A value of <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">AdobeXMPCommon::uint64</a> type containing the integral value to be used as parameter. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a125e3343c3a6fc979798cfc5a826ffa9"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCommon::IError_v1::AppendParameter </td>
+ <td>(</td>
+ <td class="paramtype">const float &amp;&#160;</td>
+ <td class="paramname"><em>floatValue</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Appends a floating value as a string to the list of parameters. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">floatValue</td><td>A value of float type containing the floating value to be used as parameter. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a62b066580a0f0b18a7f7fc9c351d1c93"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCommon::IError_v1::AppendParameter </td>
+ <td>(</td>
+ <td class="paramtype">const double &amp;&#160;</td>
+ <td class="paramname"><em>doubleValue</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Appends a double floating value as a string to the list of parameters. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">doubleValue</td><td>A value of double type containing the floating value to be used as parameter. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="aebd455b3127a9c030bbcdafe78a8da98"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCommon::IError_v1::AppendParameter </td>
+ <td>(</td>
+ <td class="paramtype">bool&#160;</td>
+ <td class="paramname"><em>booleanValue</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Appends a boolean value as a string to the list of parameters. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">booleanValue</td><td>A value of bool type containing the boolean value to be used as parameter. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="aac7106e2c1a4fb762f11ef70fb38cb8e"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static <a class="el" href="namespaceAdobeXMPCommon.html#adb05c7ceec43360b84aee536612151f9">spIError</a> AdobeXMPCommon::IError_v1::CreateError </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a0863cf1c24764306839671985373b93f">pIObjectFactory</a>&#160;</td>
+ <td class="paramname"><em>objFactory</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0d">eErrorDomain</a>&#160;</td>
+ <td class="paramname"><em>errDomain</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a29cc93a78d4e1111ec8e51e4ca9a82b3">eErrorCode</a>&#160;</td>
+ <td class="paramname"><em>errCode</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702">eErrorSeverity</a>&#160;</td>
+ <td class="paramname"><em>errSeverity</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Creates an error object. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">objFactory</td><td>A pointer to IObjectFactory object. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">errDomain</td><td>A value of <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0d" title="Indicates various types of error domains. ">eErrorDomain</a> indicating the error domain. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">errCode</td><td>A value of <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a29cc93a78d4e1111ec8e51e4ca9a82b3">eErrorCode</a> indicating the error code. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">errSeverity</td><td>A value of <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702" title="Indicates various types of errors. ">eErrorSeverity</a> indicating the severity of the error. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to an object of <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html" title="Version1 of the interface that represents an error/warning encountered during processing. ">IError_v1</a>. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a4daea946019093097749e0a6c0a45cf0"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a29cc93a78d4e1111ec8e51e4ca9a82b3">eErrorCode</a> APICALL AdobeXMPCommon::IError_v1::GetCode </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Get the error code. </p>
+<dl class="section return"><dt>Returns</dt><dd>An object of type <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a29cc93a78d4e1111ec8e51e4ca9a82b3">eErrorCode</a> indicating the error code. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ae28247d03f397b27bee52b8378366f80"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0d">eErrorDomain</a> APICALL AdobeXMPCommon::IError_v1::GetDomain </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Get the error domain. </p>
+<dl class="section return"><dt>Returns</dt><dd>An object of type <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0d" title="Indicates various types of error domains. ">eErrorDomain</a> indicating the error domain. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a1b00f65d8eff4312decbbf374089a73f"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL AdobeXMPCommon::IError_v1::GetLocation </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Get the location of the error origin. </p>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to const AdobeXMPCommon::IUTF8String object containing location as like file name and line number. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>For debugging use only. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a0bf4ec8969fd74b0d82db0e5c0f47530"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL AdobeXMPCommon::IError_v1::GetMessage </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Get the error message. </p>
+<p>Error message contains a descriptive string, for debugging use only. It must not be shown to users in a final product. It is written for developers, not users, and never localized. </p><dl class="section return"><dt>Returns</dt><dd>A shared pointer to const AdobeXMPCommon::IUTF8String object containing message string. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="acde20d4794bd22283a8c86021f979c29"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#adb05c7ceec43360b84aee536612151f9">spIError</a> APICALL AdobeXMPCommon::IError_v1::GetNextError </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Get the next error in the chain. </p>
+<dl class="section return"><dt>Returns</dt><dd>A pointer to const/non-const #AdobeXMPCommon::IError object which is the next error in the chain. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Return an invalid shared pointer in case it is the last error object in the chain. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a18e0f7f012b875b315bb745a96bc4d66"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCommon.html#a3f0de5ba5753a56896f2941927b23560">spcIError</a> AdobeXMPCommon::IError_v1::GetNextError </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="IError_8h_source.html#l00171">171</a> of file <a class="el" href="IError_8h_source.html">IError.h</a>.</p>
+
+<p>References <a class="el" href="XMPCommonDefines_8h_source.html#l00117">__NOTHROW__</a>, <a class="el" href="namespaceAdobeXMPCommon.html#ad4c8ddc8db2d27cbcc0d88688fabdd93">AdobeXMPCommon::kIErrorID()</a>, <a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos()</a>, and <a class="el" href="XMP__Environment_8h_source.html#l00189">XMP_PRIVATE</a>.</p>
+<div class="fragment"><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; {</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> IError_v1 * <span class="keyword">&gt;</span>( this )-&gt;<a class="code" href="classAdobeXMPCommon_1_1IError__v1.html#acde20d4794bd22283a8c86021f979c29">GetNextError</a>();</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; }</div><div class="ttc" id="classAdobeXMPCommon_1_1IError__v1_html_acde20d4794bd22283a8c86021f979c29"><div class="ttname"><a href="classAdobeXMPCommon_1_1IError__v1.html#acde20d4794bd22283a8c86021f979c29">AdobeXMPCommon::IError_v1::GetNextError</a></div><div class="ttdeci">virtual spIError APICALL GetNextError()=0</div><div class="ttdoc">Get the next error in the chain. </div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a9479cedd0dcfd7bfda628178554ceb30"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL AdobeXMPCommon::IError_v1::GetParameter </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>index</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Get the value of a parameter at a particular index. </p>
+<p>Based on each error condition various parameters are stored along with the error object. Clients can one by one get access to each parameter that can be later used for debugging. </p><dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>A value of #<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a> indicating the index of the parameter client is interested in retrieving. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to const #AdobeXMPCommon::IUTF8String object containing some string. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Throws #<a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">AdobeXMPCommon::pcIError_base</a> in case index is out of bounds. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>For debugging use only. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a0023512a27c6aea27998fcf18d1a6413"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL AdobeXMPCommon::IError_v1::GetParametersCount </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Get the count of parameters. </p>
+<dl class="section return"><dt>Returns</dt><dd>An object of type #<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a> containing the count of paramaters associated with the error object. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a62944c723bd7bf40207521ac966a6b02"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702">eErrorSeverity</a> APICALL AdobeXMPCommon::IError_v1::GetSeverity </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Get the error severity. </p>
+<dl class="section return"><dt>Returns</dt><dd>An object of type <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702" title="Indicates various types of errors. ">eErrorSeverity</a> indicating the severity of error. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a02f24319a739eee3b5d246bfc72fa71d"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCommon::IError_v1::SetLocation </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>fileName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>lineNumber</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Set the location of origin of error. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">fileName</td><td>Pointer to a null terminated char buffer containing the file name from which the error originated. NULL pointer will be treated as empty fileName. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">lineNumber</td><td>A value of #<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a> indicating the line in source file from which the error originated. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="aab0339169d7def09682a3afd8a65145e"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCommon::IError_v1::SetMessage </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>message</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>len</em> = <code><a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a></code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Set the error message. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">message</td><td>Pointer to a constant char buffer containing message. It can be null terminated or not. NULL pointer will be treated as empty message string. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">len</td><td>A value of #<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a> indicating the length in case message is not null terminated. In case message is null terminated it can be set to its default value ( npos ). </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a65e29b8ca5749bb9a5286e2d4a93a2af"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#adb05c7ceec43360b84aee536612151f9">spIError</a> APICALL AdobeXMPCommon::IError_v1::SetNextError </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCommon.html#adb05c7ceec43360b84aee536612151f9">spIError</a> &amp;&#160;</td>
+ <td class="paramname"><em>error</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Set the next error in the chain. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">error</td><td>A pointer to #AdobeXMP::IError object which will be the next error in the chain. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A pointer to #AdobeXMPCommon::IError object which is the current next error in the chain. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Return an invalid pointer in case there is no current next error in the chain. </dd></dl>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/Interfaces/<a class="el" href="IError_8h_source.html">IError.h</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCommon_1_1IError__v1.js b/docs/API/classAdobeXMPCommon_1_1IError__v1.js
new file mode 100755
index 0000000..8c0d207
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1IError__v1.js
@@ -0,0 +1,52 @@
+var classAdobeXMPCommon_1_1IError__v1 =
+[
+ [ "eErrorCode", "classAdobeXMPCommon_1_1IError__v1.html#a29cc93a78d4e1111ec8e51e4ca9a82b3", null ],
+ [ "eErrorDomain", "classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0d", [
+ [ "kEDNone", "classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0dad08de2ff0da8d78befc1e3160d91fb66", null ],
+ [ "kEDGeneral", "classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da3ab4caaddd020b4446ef5e52300e7b1f", null ],
+ [ "kEDMemoryManagement", "classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da259afda1164ca63dc7a5730e36ca35a8", null ],
+ [ "kEDConfigurable", "classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0dadea3f136c96a37d23f8f984551bfc320", null ],
+ [ "kEDMultiThreading", "classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0dad284da5871c3d7be07ece3e18cfc1313", null ],
+ [ "kEDDataModel", "classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da553e7b6dff9e1c9d4d53a155cdb627a7", null ],
+ [ "kEDParser", "classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da977f7d430590fc0e8e91424479403e54", null ],
+ [ "kEDSerializer", "classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da3ee93ea699a7ad40361aa97bd7bd5cbf", null ],
+ [ "kEDXMPFiles", "classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da90c7a2910e189c25b42be36b5342cd8e", null ],
+ [ "kEDConflictIdentification", "classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da54f0a72b16e0c1cc0e484ebca6d13708", null ],
+ [ "kEDConflictResolution", "classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da7a0ca7368a9c93d038b635ea7ae0f691", null ],
+ [ "kEDThreeWayMerge", "classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0dae98f9f2ae109cb8f4e20bac749b9096d", null ],
+ [ "kEDGenericStrategyDatabase", "classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da500ecdf6b68ffe0f4d901740bae84a6a", null ],
+ [ "kEDAssetManagement", "classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da495992977fdfefad3c7b51350d952120", null ],
+ [ "kEDMaxValue", "classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da1e77ab380b475ba060d14c489a2ad1bc", null ]
+ ] ],
+ [ "eErrorSeverity", "classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702", [
+ [ "kESNone", "classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702a72d4e6dab6f3c900e504db6ad274f03b", null ],
+ [ "kESWarning", "classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702a20b2b1a43e9ba7559ad49c5fb9ae845c", null ],
+ [ "kESOperationFatal", "classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702aad55eb387014908711b915d5877d7d80", null ],
+ [ "kESProcessFatal", "classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702a2aec1db6233320381fa85f9490d95a60", null ],
+ [ "kESMaxValue", "classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702aa83e26dbed0e72dc086520892693a408", null ],
+ [ "kESAll", "classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702aaf28b59c2541f8bd3a4e70a4c7e58908", null ]
+ ] ],
+ [ "~IError_v1", "classAdobeXMPCommon_1_1IError__v1.html#a259f1d92b325fe01991ca5acd2238346", null ],
+ [ "AppendParameter", "classAdobeXMPCommon_1_1IError__v1.html#abd77c134aeae1727d3173ab1a49ea3f2", null ],
+ [ "AppendParameter", "classAdobeXMPCommon_1_1IError__v1.html#a8d43b2b1346cf0971e0ca85eb978c24a", null ],
+ [ "AppendParameter", "classAdobeXMPCommon_1_1IError__v1.html#aaee451537de9ae0fecd92cdf9a2d74bd", null ],
+ [ "AppendParameter", "classAdobeXMPCommon_1_1IError__v1.html#a78f8b576c87bb5cf22716bd91621cf28", null ],
+ [ "AppendParameter", "classAdobeXMPCommon_1_1IError__v1.html#a6e85bc715a4de6c58b5d8bfa445ddebe", null ],
+ [ "AppendParameter", "classAdobeXMPCommon_1_1IError__v1.html#a354cf52656e1567eb7bca7f682f39622", null ],
+ [ "AppendParameter", "classAdobeXMPCommon_1_1IError__v1.html#a125e3343c3a6fc979798cfc5a826ffa9", null ],
+ [ "AppendParameter", "classAdobeXMPCommon_1_1IError__v1.html#a62b066580a0f0b18a7f7fc9c351d1c93", null ],
+ [ "AppendParameter", "classAdobeXMPCommon_1_1IError__v1.html#aebd455b3127a9c030bbcdafe78a8da98", null ],
+ [ "CreateError", "classAdobeXMPCommon_1_1IError__v1.html#aac7106e2c1a4fb762f11ef70fb38cb8e", null ],
+ [ "GetCode", "classAdobeXMPCommon_1_1IError__v1.html#a4daea946019093097749e0a6c0a45cf0", null ],
+ [ "GetDomain", "classAdobeXMPCommon_1_1IError__v1.html#ae28247d03f397b27bee52b8378366f80", null ],
+ [ "GetLocation", "classAdobeXMPCommon_1_1IError__v1.html#a1b00f65d8eff4312decbbf374089a73f", null ],
+ [ "GetMessage", "classAdobeXMPCommon_1_1IError__v1.html#a0bf4ec8969fd74b0d82db0e5c0f47530", null ],
+ [ "GetNextError", "classAdobeXMPCommon_1_1IError__v1.html#acde20d4794bd22283a8c86021f979c29", null ],
+ [ "GetNextError", "classAdobeXMPCommon_1_1IError__v1.html#a18e0f7f012b875b315bb745a96bc4d66", null ],
+ [ "GetParameter", "classAdobeXMPCommon_1_1IError__v1.html#a9479cedd0dcfd7bfda628178554ceb30", null ],
+ [ "GetParametersCount", "classAdobeXMPCommon_1_1IError__v1.html#a0023512a27c6aea27998fcf18d1a6413", null ],
+ [ "GetSeverity", "classAdobeXMPCommon_1_1IError__v1.html#a62944c723bd7bf40207521ac966a6b02", null ],
+ [ "SetLocation", "classAdobeXMPCommon_1_1IError__v1.html#a02f24319a739eee3b5d246bfc72fa71d", null ],
+ [ "SetMessage", "classAdobeXMPCommon_1_1IError__v1.html#aab0339169d7def09682a3afd8a65145e", null ],
+ [ "SetNextError", "classAdobeXMPCommon_1_1IError__v1.html#a65e29b8ca5749bb9a5286e2d4a93a2af", null ]
+]; \ No newline at end of file
diff --git a/docs/API/classAdobeXMPCommon_1_1IError__v1.png b/docs/API/classAdobeXMPCommon_1_1IError__v1.png
new file mode 100755
index 0000000..932e4a7
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1IError__v1.png
Binary files differ
diff --git a/docs/API/classAdobeXMPCommon_1_1IMemoryAllocator__v1-members.html b/docs/API/classAdobeXMPCommon_1_1IMemoryAllocator__v1-members.html
new file mode 100755
index 0000000..f12ec96
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1IMemoryAllocator__v1-members.html
@@ -0,0 +1,57 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCommon_1_1IMemoryAllocator__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">AdobeXMPCommon::IMemoryAllocator_v1 Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html">AdobeXMPCommon::IMemoryAllocator_v1</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html#a2942e9d8f0d685ae6ebe58c18a11b999">allocate</a>(sizet size) __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html">AdobeXMPCommon::IMemoryAllocator_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html#a607755ef64bf552482c4a330fcc79120">deallocate</a>(void *ptr) __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html">AdobeXMPCommon::IMemoryAllocator_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html#a89ea55ddb2e5a544a93525b227b042f9">reallocate</a>(void *ptr, sizet size) __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html">AdobeXMPCommon::IMemoryAllocator_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html#aee52f392f1548bffc01b2be3fd9fab28">REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html">AdobeXMPCommon::IMemoryAllocator_v1</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCommon_1_1IMemoryAllocator__v1.html b/docs/API/classAdobeXMPCommon_1_1IMemoryAllocator__v1.html
new file mode 100755
index 0000000..5d1f6e9
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1IMemoryAllocator__v1.html
@@ -0,0 +1,218 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>AdobeXMPCommon::IMemoryAllocator_v1 Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCommon_1_1IMemoryAllocator__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="classAdobeXMPCommon_1_1IMemoryAllocator__v1-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">AdobeXMPCommon::IMemoryAllocator_v1 Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Version1 of the interface that represents an interface to be implemented by client in case he is interested in controlling the memory allocation and deallocation on the heap.
+ <a href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="IMemoryAllocator_8h_source.html">IMemoryAllocator.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a2942e9d8f0d685ae6ebe58c18a11b999"><td class="memItemLeft" align="right" valign="top">virtual void *APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html#a2942e9d8f0d685ae6ebe58c18a11b999">allocate</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> size) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a2942e9d8f0d685ae6ebe58c18a11b999"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the library whenever it needs some space on the heap. <a href="#a2942e9d8f0d685ae6ebe58c18a11b999">More...</a><br /></td></tr>
+<tr class="separator:a2942e9d8f0d685ae6ebe58c18a11b999"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a607755ef64bf552482c4a330fcc79120"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html#a607755ef64bf552482c4a330fcc79120">deallocate</a> (void *ptr) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a607755ef64bf552482c4a330fcc79120"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the library whenever there is no further need for a previously allocated space on the heap. <a href="#a607755ef64bf552482c4a330fcc79120">More...</a><br /></td></tr>
+<tr class="separator:a607755ef64bf552482c4a330fcc79120"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a89ea55ddb2e5a544a93525b227b042f9"><td class="memItemLeft" align="right" valign="top">virtual void *APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html#a89ea55ddb2e5a544a93525b227b042f9">reallocate</a> (void *ptr, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> size) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a89ea55ddb2e5a544a93525b227b042f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the library whenever it needs to expand or contract some space already allocated on the heap, preserving the contents. <a href="#a89ea55ddb2e5a544a93525b227b042f9">More...</a><br /></td></tr>
+<tr class="separator:a89ea55ddb2e5a544a93525b227b042f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:aee52f392f1548bffc01b2be3fd9fab28"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html#aee52f392f1548bffc01b2be3fd9fab28">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:aee52f392f1548bffc01b2be3fd9fab28"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Version1 of the interface that represents an interface to be implemented by client in case he is interested in controlling the memory allocation and deallocation on the heap. </p>
+<p>In case client is interested in controlling the memory allocation and deallocation on the heap he can implement this interface and register the same with the #AdobeXMPCommon::IConfigurationManager. For every request of memory allocation or deallocation on the heap corresponding function will be called by the library. </p><dl class="section attention"><dt>Attention</dt><dd>Support for Multi threading is under clients hand. </dd></dl>
+
+<p>Definition at line <a class="el" href="IMemoryAllocator_8h_source.html#l00027">27</a> of file <a class="el" href="IMemoryAllocator_8h_source.html">IMemoryAllocator.h</a>.</p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a2942e9d8f0d685ae6ebe58c18a11b999"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void* APICALL AdobeXMPCommon::IMemoryAllocator_v1::allocate </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>size</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Called by the library whenever it needs some space on the heap. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>A value of type #<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a> indicating the number of bytes required by the library on the heap. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A pointer to memory location on the heap. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a607755ef64bf552482c4a330fcc79120"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCommon::IMemoryAllocator_v1::deallocate </td>
+ <td>(</td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>ptr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Called by the library whenever there is no further need for a previously allocated space on the heap. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>A pointer to a memory location which is no longer needed. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a89ea55ddb2e5a544a93525b227b042f9"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void* APICALL AdobeXMPCommon::IMemoryAllocator_v1::reallocate </td>
+ <td>(</td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>ptr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>size</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Called by the library whenever it needs to expand or contract some space already allocated on the heap, preserving the contents. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>A pointer to a memory location which was previously allocated on the heap. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>A value of type #<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a> indicating the new number of bytes required by the library on the heap. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A pointer to memory location on the heap which is of new size and previous contents are preserved. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="aee52f392f1548bffc01b2be3fd9fab28"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">AdobeXMPCommon::IMemoryAllocator_v1::REQ_FRIEND_CLASS_DECLARATION </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/Interfaces/<a class="el" href="IMemoryAllocator_8h_source.html">IMemoryAllocator.h</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCommon_1_1IMemoryAllocator__v1.js b/docs/API/classAdobeXMPCommon_1_1IMemoryAllocator__v1.js
new file mode 100755
index 0000000..9ec309a
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1IMemoryAllocator__v1.js
@@ -0,0 +1,7 @@
+var classAdobeXMPCommon_1_1IMemoryAllocator__v1 =
+[
+ [ "allocate", "classAdobeXMPCommon_1_1IMemoryAllocator__v1.html#a2942e9d8f0d685ae6ebe58c18a11b999", null ],
+ [ "deallocate", "classAdobeXMPCommon_1_1IMemoryAllocator__v1.html#a607755ef64bf552482c4a330fcc79120", null ],
+ [ "reallocate", "classAdobeXMPCommon_1_1IMemoryAllocator__v1.html#a89ea55ddb2e5a544a93525b227b042f9", null ],
+ [ "REQ_FRIEND_CLASS_DECLARATION", "classAdobeXMPCommon_1_1IMemoryAllocator__v1.html#aee52f392f1548bffc01b2be3fd9fab28", null ]
+]; \ No newline at end of file
diff --git a/docs/API/classAdobeXMPCommon_1_1IObjectFactory__v1-members.html b/docs/API/classAdobeXMPCommon_1_1IObjectFactory__v1-members.html
new file mode 100755
index 0000000..421ea62
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1IObjectFactory__v1-members.html
@@ -0,0 +1,64 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCommon_1_1IObjectFactory__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">AdobeXMPCommon::IObjectFactory_v1 Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html">AdobeXMPCommon::IObjectFactory_v1</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#ae86e711336af91dca23f4611b1f03724">CreateError</a>(uint32 domain, uint32 code, uint32 severity, pcIError_base &amp;error) __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html">AdobeXMPCommon::IObjectFactory_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#ae3e9eb977c305e48425654bec514f405">CreateUTF8String</a>(const char *buf, sizet count, pcIError_base &amp;error) __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html">AdobeXMPCommon::IObjectFactory_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#ab61b0ddca88dc76f0499d317f189b918">GetInterfaceID</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html">AdobeXMPCommon::IObjectFactory_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070">GetInterfacePointer</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#a81c25d76569a9249ab3c8a3e4490c73d">GetInterfaceVersion</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html">AdobeXMPCommon::IObjectFactory_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#a2dc282621cdfef44b424ac91efb965a1">MakeObjectFactory</a>(pIObjectFactory_base ptr)</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html">AdobeXMPCommon::IObjectFactory_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#aa906cf2b9efb958e49fd8c5122b8db96">MakeObjectFactory</a>(pcIObjectFactory_base ptr)</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html">AdobeXMPCommon::IObjectFactory_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#a2f02bcd4eafa4d318197c39dd55d0957">REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html">AdobeXMPCommon::IObjectFactory_v1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#a95fcbab435329d052ab42028da563c02">~IObjectFactory_v1</a>() __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html">AdobeXMPCommon::IObjectFactory_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCommon_1_1IObjectFactory__v1.html b/docs/API/classAdobeXMPCommon_1_1IObjectFactory__v1.html
new file mode 100755
index 0000000..007182f
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1IObjectFactory__v1.html
@@ -0,0 +1,390 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>AdobeXMPCommon::IObjectFactory_v1 Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCommon_1_1IObjectFactory__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
+<a href="classAdobeXMPCommon_1_1IObjectFactory__v1-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">AdobeXMPCommon::IObjectFactory_v1 Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Version1 of a interface that represents a factory to create various artifacts defined within <a class="el" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a> namespace.
+ <a href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="IObjectFactory_8h_source.html">IObjectFactory.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for AdobeXMPCommon::IObjectFactory_v1:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classAdobeXMPCommon_1_1IObjectFactory__v1.png" usemap="#AdobeXMPCommon::IObjectFactory_5Fv1_map" alt=""/>
+ <map id="AdobeXMPCommon::IObjectFactory_5Fv1_map" name="AdobeXMPCommon::IObjectFactory_v1_map">
+<area href="classAdobeXMPCommon_1_1IVersionable.html" title="Interface that serves as the base interface for all the externally exposed interfaces which needs to ..." alt="AdobeXMPCommon::IVersionable" shape="rect" coords="0,0,244,24"/>
+<area href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html" title="Version1 of a interface that represents a factory to create various artifacts of XMP DOM like array..." alt="AdobeXMPCore::ICoreObjectFactory_v1" shape="rect" coords="0,112,244,136"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:ae3e9eb977c305e48425654bec514f405"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a0430b250dd00621dcb9f32a3acb87b7f">pIUTF8String_base</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#ae3e9eb977c305e48425654bec514f405">CreateUTF8String</a> (const char *buf, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count, <a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;error) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:ae3e9eb977c305e48425654bec514f405"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an IUTF8String object. <a href="#ae3e9eb977c305e48425654bec514f405">More...</a><br /></td></tr>
+<tr class="separator:ae3e9eb977c305e48425654bec514f405"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae86e711336af91dca23f4611b1f03724"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a4e907810e5d5937b974343d279e0181d">pIError_base</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#ae86e711336af91dca23f4611b1f03724">CreateError</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> domain, <a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> code, <a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> severity, <a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;error) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:ae86e711336af91dca23f4611b1f03724"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an IError object. <a href="#ae86e711336af91dca23f4611b1f03724">More...</a><br /></td></tr>
+<tr class="separator:ae86e711336af91dca23f4611b1f03724"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a95fcbab435329d052ab42028da563c02"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#a95fcbab435329d052ab42028da563c02">~IObjectFactory_v1</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:a95fcbab435329d052ab42028da563c02"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2f02bcd4eafa4d318197c39dd55d0957"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#a2f02bcd4eafa4d318197c39dd55d0957">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:a2f02bcd4eafa4d318197c39dd55d0957"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
+<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
+<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a> ()</td></tr>
+<tr class="memdesc:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to an interface object implementing the requested version. <a href="#ad6539461695decfaea8a44798db51e54">More...</a><br /></td></tr>
+<tr class="separator:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
+<tr class="memitem:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> const requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070">GetInterfacePointer</a> () const </td></tr>
+<tr class="memdesc:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to a const interface object implementing the requested version. <a href="#ab93a940e2946c14a76ebbd9552cab070">More...</a><br /></td></tr>
+<tr class="separator:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr class="memitem:ab61b0ddca88dc76f0499d317f189b918"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#ab61b0ddca88dc76f0499d317f189b918">GetInterfaceID</a> ()</td></tr>
+<tr class="memdesc:ab61b0ddca88dc76f0499d317f189b918"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the unique ID assigned to the interface. <a href="#ab61b0ddca88dc76f0499d317f189b918">More...</a><br /></td></tr>
+<tr class="separator:ab61b0ddca88dc76f0499d317f189b918"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a81c25d76569a9249ab3c8a3e4490c73d"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#a81c25d76569a9249ab3c8a3e4490c73d">GetInterfaceVersion</a> ()</td></tr>
+<tr class="memdesc:a81c25d76569a9249ab3c8a3e4490c73d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the version of the interface. <a href="#a81c25d76569a9249ab3c8a3e4490c73d">More...</a><br /></td></tr>
+<tr class="separator:a81c25d76569a9249ab3c8a3e4490c73d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
+<tr class="memitem:a2dc282621cdfef44b424ac91efb965a1"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCommon.html#a0863cf1c24764306839671985373b93f">pIObjectFactory</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#a2dc282621cdfef44b424ac91efb965a1">MakeObjectFactory</a> (<a class="el" href="namespaceAdobeXMPCommon.html#adb1552a01da782d3f1c5ff00e49f48f8">pIObjectFactory_base</a> ptr)</td></tr>
+<tr class="separator:a2dc282621cdfef44b424ac91efb965a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa906cf2b9efb958e49fd8c5122b8db96"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCommon.html#a272e32106a7573db514736bfb68a1673">pcIObjectFactory</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#aa906cf2b9efb958e49fd8c5122b8db96">MakeObjectFactory</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a8d7232279921e3ccaa69fe314052415b">pcIObjectFactory_base</a> ptr)</td></tr>
+<tr class="separator:aa906cf2b9efb958e49fd8c5122b8db96"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
+<tr class="memitem:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a> ()</td></tr>
+<tr class="separator:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Version1 of a interface that represents a factory to create various artifacts defined within <a class="el" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a> namespace. </p>
+<p>Provides all the functions to create instances of various artifacts defined with <a class="el" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a> namespace. This is the interface through which clients of the library actually get access to all other interfaces. </p>
+
+<p>Definition at line <a class="el" href="IObjectFactory_8h_source.html#l00025">25</a> of file <a class="el" href="IObjectFactory_8h_source.html">IObjectFactory.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a95fcbab435329d052ab42028da563c02"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual AdobeXMPCommon::IObjectFactory_v1::~IObjectFactory_v1 </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="IObjectFactory_8h_source.html#l00080">80</a> of file <a class="el" href="IObjectFactory_8h_source.html">IObjectFactory.h</a>.</p>
+
+<p>References <a class="el" href="XMPCommonDefines_8h_source.html#l00107">REQ_FRIEND_CLASS_DECLARATION</a>.</p>
+<div class="fragment"><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;{};</div></div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="ae86e711336af91dca23f4611b1f03724"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a4e907810e5d5937b974343d279e0181d">pIError_base</a> APICALL AdobeXMPCommon::IObjectFactory_v1::CreateError </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a>&#160;</td>
+ <td class="paramname"><em>domain</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a>&#160;</td>
+ <td class="paramname"><em>code</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a>&#160;</td>
+ <td class="paramname"><em>severity</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;&#160;</td>
+ <td class="paramname"><em>error</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Creates an IError object. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">domain</td><td>An unsigned 32 bit integer value representing the error domain. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">code</td><td>An unsigned 32 bit integer value representing the error code. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">severity</td><td>An unsigned 32 bit integer value representing the severity of the error. </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">error</td><td>A reference to a pointer to const IError object which will be filled with the error object in case of any error. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section attention"><dt>Attention</dt><dd>The returned pointer is allocated on heap by the module so client is responsible for its release. They should call Release once they no longer need this object. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ae3e9eb977c305e48425654bec514f405"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a0430b250dd00621dcb9f32a3acb87b7f">pIUTF8String_base</a> APICALL AdobeXMPCommon::IObjectFactory_v1::CreateUTF8String </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>buf</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>count</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;&#160;</td>
+ <td class="paramname"><em>error</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Creates an IUTF8String object. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">buf</td><td>pointer to a constant char buffer containing content. It can be null terminated or not. NULL pointer will be treated as empty string. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">count</td><td>A value of #<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a> indicating the length in case buf is not null terminated. In case buf is null terminated it can be set to npos. </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">error</td><td>A reference to a pointer to const IError object which will be filled with the error object in case of any error. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section attention"><dt>Attention</dt><dd>The returned pointer is allocated on heap by the module so client is responsible for its release. They should call Release once they no longer need this object. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ab61b0ddca88dc76f0499d317f189b918"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> AdobeXMPCommon::IObjectFactory_v1::GetInterfaceID </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Returns the unique ID assigned to the interface. </p>
+<dl class="section return"><dt>Returns</dt><dd>64 bit unsigned integer representing the unique ID assigned to the interface. </dd></dl>
+
+<p>Definition at line <a class="el" href="IObjectFactory_8h_source.html#l00072">72</a> of file <a class="el" href="IObjectFactory_8h_source.html">IObjectFactory.h</a>.</p>
+
+<p>References <a class="el" href="namespaceAdobeXMPCommon.html#a3eaf39cde126acb079462286763ca44a">AdobeXMPCommon::kIObjectFactoryID()</a>.</p>
+<div class="fragment"><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;{ <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCommon.html#a3eaf39cde126acb079462286763ca44a">kIObjectFactoryID</a>; }</div><div class="ttc" id="namespaceAdobeXMPCommon_html_a3eaf39cde126acb079462286763ca44a"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a3eaf39cde126acb079462286763ca44a">AdobeXMPCommon::kIObjectFactoryID</a></div><div class="ttdeci">static const uint64 kIObjectFactoryID(0x6e4f626a46616374)</div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a81c25d76569a9249ab3c8a3e4490c73d"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> AdobeXMPCommon::IObjectFactory_v1::GetInterfaceVersion </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Returns the version of the interface. </p>
+<dl class="section return"><dt>Returns</dt><dd>32 bit unsigned integer representing the version of the interface. </dd></dl>
+
+<p>Definition at line <a class="el" href="IObjectFactory_8h_source.html#l00078">78</a> of file <a class="el" href="IObjectFactory_8h_source.html">IObjectFactory.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;{ <span class="keywordflow">return</span> 1; }</div></div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a2dc282621cdfef44b424ac91efb965a1"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCommon.html#a0863cf1c24764306839671985373b93f">pIObjectFactory</a> AdobeXMPCommon::IObjectFactory_v1::MakeObjectFactory </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#adb1552a01da782d3f1c5ff00e49f48f8">pIObjectFactory_base</a>&#160;</td>
+ <td class="paramname"><em>ptr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Convert raw pointer to shared pointer. The raw pointer is of version 1 interface where as the returned returned pointer depends on the version client is interested in. </p><dl class="section return"><dt>Returns</dt><dd>Raw pointer to const or non constant IObjectFactory interface. </dd></dl>
+
+<p>Definition at line <a class="el" href="IObjectFactory_8h_source.html#l00059">59</a> of file <a class="el" href="IObjectFactory_8h_source.html">IObjectFactory.h</a>.</p>
+
+<p>References <a class="el" href="IVersionable_8h_source.html#l00038">AdobeXMPCommon::IVersionable::GetInterfacePointer()</a>.</p>
+<div class="fragment"><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">return</span> IObjectFactory::GetInterfaceVersion() &gt; 1 ? ptr-&gt;GetInterfacePointer&lt; IObjectFactory &gt;() : ptr;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; }</div></div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="aa906cf2b9efb958e49fd8c5122b8db96"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCommon.html#a272e32106a7573db514736bfb68a1673">pcIObjectFactory</a> AdobeXMPCommon::IObjectFactory_v1::MakeObjectFactory </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a8d7232279921e3ccaa69fe314052415b">pcIObjectFactory_base</a>&#160;</td>
+ <td class="paramname"><em>ptr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="IObjectFactory_8h_source.html#l00062">62</a> of file <a class="el" href="IObjectFactory_8h_source.html">IObjectFactory.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; {</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#a2dc282621cdfef44b424ac91efb965a1">MakeObjectFactory</a>( const_cast&lt; pIObjectFactory_base &gt;( ptr ) );</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; }</div><div class="ttc" id="classAdobeXMPCommon_1_1IObjectFactory__v1_html_a2dc282621cdfef44b424ac91efb965a1"><div class="ttname"><a href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#a2dc282621cdfef44b424ac91efb965a1">AdobeXMPCommon::IObjectFactory_v1::MakeObjectFactory</a></div><div class="ttdeci">static XMP_PRIVATE pIObjectFactory MakeObjectFactory(pIObjectFactory_base ptr)</div><div class="ttdef"><b>Definition:</b> <a href="IObjectFactory_8h_source.html#l00059">IObjectFactory.h:59</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a2f02bcd4eafa4d318197c39dd55d0957"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">AdobeXMPCommon::IObjectFactory_v1::REQ_FRIEND_CLASS_DECLARATION </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/Interfaces/<a class="el" href="IObjectFactory_8h_source.html">IObjectFactory.h</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCommon_1_1IObjectFactory__v1.js b/docs/API/classAdobeXMPCommon_1_1IObjectFactory__v1.js
new file mode 100755
index 0000000..2cb48a9
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1IObjectFactory__v1.js
@@ -0,0 +1,11 @@
+var classAdobeXMPCommon_1_1IObjectFactory__v1 =
+[
+ [ "~IObjectFactory_v1", "classAdobeXMPCommon_1_1IObjectFactory__v1.html#a95fcbab435329d052ab42028da563c02", null ],
+ [ "CreateError", "classAdobeXMPCommon_1_1IObjectFactory__v1.html#ae86e711336af91dca23f4611b1f03724", null ],
+ [ "CreateUTF8String", "classAdobeXMPCommon_1_1IObjectFactory__v1.html#ae3e9eb977c305e48425654bec514f405", null ],
+ [ "GetInterfaceID", "classAdobeXMPCommon_1_1IObjectFactory__v1.html#ab61b0ddca88dc76f0499d317f189b918", null ],
+ [ "GetInterfaceVersion", "classAdobeXMPCommon_1_1IObjectFactory__v1.html#a81c25d76569a9249ab3c8a3e4490c73d", null ],
+ [ "MakeObjectFactory", "classAdobeXMPCommon_1_1IObjectFactory__v1.html#a2dc282621cdfef44b424ac91efb965a1", null ],
+ [ "MakeObjectFactory", "classAdobeXMPCommon_1_1IObjectFactory__v1.html#aa906cf2b9efb958e49fd8c5122b8db96", null ],
+ [ "REQ_FRIEND_CLASS_DECLARATION", "classAdobeXMPCommon_1_1IObjectFactory__v1.html#a2f02bcd4eafa4d318197c39dd55d0957", null ]
+]; \ No newline at end of file
diff --git a/docs/API/classAdobeXMPCommon_1_1IObjectFactory__v1.png b/docs/API/classAdobeXMPCommon_1_1IObjectFactory__v1.png
new file mode 100755
index 0000000..3b75c16
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1IObjectFactory__v1.png
Binary files differ
diff --git a/docs/API/classAdobeXMPCommon_1_1ISharedObject-members.html b/docs/API/classAdobeXMPCommon_1_1ISharedObject-members.html
new file mode 100755
index 0000000..ee4f94a
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1ISharedObject-members.html
@@ -0,0 +1,57 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCommon_1_1ISharedObject.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">AdobeXMPCommon::ISharedObject Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc">Acquire</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3">Release</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#afcb42109aed83c3b0c133bc413388037">REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31">~ISharedObject</a>() __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCommon_1_1ISharedObject.html b/docs/API/classAdobeXMPCommon_1_1ISharedObject.html
new file mode 100755
index 0000000..43ee17f
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1ISharedObject.html
@@ -0,0 +1,205 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>AdobeXMPCommon::ISharedObject Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCommon_1_1ISharedObject.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="classAdobeXMPCommon_1_1ISharedObject-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">AdobeXMPCommon::ISharedObject Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Interface that serves as the base interface of all the externally exposed interfaces.
+ <a href="classAdobeXMPCommon_1_1ISharedObject.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="ISharedObject_8h_source.html">ISharedObject.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for AdobeXMPCommon::ISharedObject:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classAdobeXMPCommon_1_1ISharedObject.png" usemap="#AdobeXMPCommon::ISharedObject_map" alt=""/>
+ <map id="AdobeXMPCommon::ISharedObject_map" name="AdobeXMPCommon::ISharedObject_map">
+<area href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html" title="Version1 of the interface that represents configuration settings controllable by the client..." alt="AdobeXMPCommon::IConfigurationManager_v1" shape="rect" coords="303,56,596,80"/>
+<area href="classAdobeXMPCommon_1_1IError__v1.html" title="Version1 of the interface that represents an error/warning encountered during processing. " alt="AdobeXMPCommon::IError_v1" shape="rect" coords="303,112,596,136"/>
+<area href="classAdobeXMPCommon_1_1IUTF8String__v1.html" title="Version1 of the interface that represents an UTF8String. " alt="AdobeXMPCommon::IUTF8String_v1" shape="rect" coords="303,168,596,192"/>
+<area href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html" title="Version1 of the interface that serves as a database/registry of all the parsers and serializers avail..." alt="AdobeXMPCore::IDOMImplementationRegistry_v1" shape="rect" coords="303,224,596,248"/>
+<area href="classAdobeXMPCore_1_1IDOMParser__v1.html" title="Version 1 of the interface that supports parsing of the XMP Data Model. " alt="AdobeXMPCore::IDOMParser_v1" shape="rect" coords="303,280,596,304"/>
+<area href="classAdobeXMPCore_1_1IDOMSerializer__v1.html" title="Version1 of the interface that represents an object that can serialize an XMP Data Model to a buffer..." alt="AdobeXMPCore::IDOMSerializer_v1" shape="rect" coords="303,336,596,360"/>
+<area href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html" title="Version1 of the interface that represents map where each entry consists of prefix string as the key a..." alt="AdobeXMPCore::INameSpacePrefixMap_v1" shape="rect" coords="303,392,596,416"/>
+<area href="classAdobeXMPCore_1_1INode__v1.html" title="Version1 of the interface that serves as a base interface to all types of nodes in the XMP DOM..." alt="AdobeXMPCore::INode_v1" shape="rect" coords="303,448,596,472"/>
+<area href="classAdobeXMPCore_1_1INodeIterator__v1.html" title="Interface that represents an iterator over the mutable children of a XMP DOM Node. " alt="AdobeXMPCore::INodeIterator_v1" shape="rect" coords="303,504,596,528"/>
+<area href="classAdobeXMPCore_1_1IPath__v1.html" title="Version1 of the interface that provides an easy iterative description of a specific path into the XMP..." alt="AdobeXMPCore::IPath_v1" shape="rect" coords="303,560,596,584"/>
+<area href="classAdobeXMPCore_1_1IPathSegment__v1.html" title="Version1 of the interface that represents one segment in a path to a node into the XMP tree..." alt="AdobeXMPCore::IPathSegment_v1" shape="rect" coords="303,616,596,640"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:ab90d4ec1fcd975a7ac62dcb866335cdc"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc">Acquire</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:ab90d4ec1fcd975a7ac62dcb866335cdc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the clients of the object to indicate that he has acquired the shared ownership of the object. <a href="#ab90d4ec1fcd975a7ac62dcb866335cdc">More...</a><br /></td></tr>
+<tr class="separator:ab90d4ec1fcd975a7ac62dcb866335cdc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abf5a54e09f87366170ea19c618f68bc3"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3">Release</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:abf5a54e09f87366170ea19c618f68bc3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the clients of the object to indicate he has released his shared ownership of the object. If this being the last client than this function should call Destroy to delete and release the memory. <a href="#abf5a54e09f87366170ea19c618f68bc3">More...</a><br /></td></tr>
+<tr class="separator:abf5a54e09f87366170ea19c618f68bc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:a5869ff89d0b7dd0a7b525401a1d57b31"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31">~ISharedObject</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="separator:a5869ff89d0b7dd0a7b525401a1d57b31"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afcb42109aed83c3b0c133bc413388037"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#afcb42109aed83c3b0c133bc413388037">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:afcb42109aed83c3b0c133bc413388037"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Interface that serves as the base interface of all the externally exposed interfaces. </p>
+<p>This allows all interfaces to be used as shared pointers so as to reduce the burden of scope management from the client or library code. It makes the heap allocated object to be self manged in in terms of memory and life. This provides functions so as to inform the actual object when a shared pointer is created or destroyed and appropriately release the memory during the last call to Release. </p><dl class="section attention"><dt>Attention</dt><dd>Supports Multi-threading at object level through use of Atomic Variables. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Any interface which inherits from this needs to make sure that its destructor is declared protected so that unknowingly also client of this object cannot call delete on the object. </dd></dl>
+
+<p>Definition at line <a class="el" href="ISharedObject_8h_source.html#l00027">27</a> of file <a class="el" href="ISharedObject_8h_source.html">ISharedObject.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a5869ff89d0b7dd0a7b525401a1d57b31"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">AdobeXMPCommon::ISharedObject::~ISharedObject </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>protected virtual destructor. </p>
+
+<p>Definition at line <a class="el" href="ISharedObject_8h_source.html#l00067">67</a> of file <a class="el" href="ISharedObject_8h_source.html">ISharedObject.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;{ }</div></div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="ab90d4ec1fcd975a7ac62dcb866335cdc"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCommon::ISharedObject::Acquire </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Called by the clients of the object to indicate that he has acquired the shared ownership of the object. </p>
+
+</div>
+</div>
+<a class="anchor" id="abf5a54e09f87366170ea19c618f68bc3"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCommon::ISharedObject::Release </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Called by the clients of the object to indicate he has released his shared ownership of the object. If this being the last client than this function should call Destroy to delete and release the memory. </p>
+
+</div>
+</div>
+<a class="anchor" id="afcb42109aed83c3b0c133bc413388037"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">AdobeXMPCommon::ISharedObject::REQ_FRIEND_CLASS_DECLARATION </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/Interfaces/BaseInterfaces/<a class="el" href="ISharedObject_8h_source.html">ISharedObject.h</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCommon_1_1ISharedObject.js b/docs/API/classAdobeXMPCommon_1_1ISharedObject.js
new file mode 100755
index 0000000..45247d8
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1ISharedObject.js
@@ -0,0 +1,7 @@
+var classAdobeXMPCommon_1_1ISharedObject =
+[
+ [ "~ISharedObject", "classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31", null ],
+ [ "Acquire", "classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc", null ],
+ [ "Release", "classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3", null ],
+ [ "REQ_FRIEND_CLASS_DECLARATION", "classAdobeXMPCommon_1_1ISharedObject.html#afcb42109aed83c3b0c133bc413388037", null ]
+]; \ No newline at end of file
diff --git a/docs/API/classAdobeXMPCommon_1_1ISharedObject.png b/docs/API/classAdobeXMPCommon_1_1ISharedObject.png
new file mode 100755
index 0000000..6c81cb0
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1ISharedObject.png
Binary files differ
diff --git a/docs/API/classAdobeXMPCommon_1_1IThreadSafe-members.html b/docs/API/classAdobeXMPCommon_1_1IThreadSafe-members.html
new file mode 100755
index 0000000..bbfdad2
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1IThreadSafe-members.html
@@ -0,0 +1,57 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCommon_1_1IThreadSafe.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">AdobeXMPCommon::IThreadSafe Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a214bb1b5840dbd5576e764dd2220b261">DisableThreadSafety</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#afe35614cb88e2bdb32996cf4ac15b211">EnableThreadSafety</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a261e2f6af96b75015e5f8318f32be7f9">IsThreadSafe</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a0f31eb9677c4af06288319e363c21ebc">REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCommon_1_1IThreadSafe.html b/docs/API/classAdobeXMPCommon_1_1IThreadSafe.html
new file mode 100755
index 0000000..ffde0e8
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1IThreadSafe.html
@@ -0,0 +1,203 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>AdobeXMPCommon::IThreadSafe Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCommon_1_1IThreadSafe.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="classAdobeXMPCommon_1_1IThreadSafe-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">AdobeXMPCommon::IThreadSafe Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Interface that serves as the base interface for all the externally exposed interfaces which needs to provide client configurable thread safety.
+ <a href="classAdobeXMPCommon_1_1IThreadSafe.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="IThreadSafe_8h_source.html">IThreadSafe.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for AdobeXMPCommon::IThreadSafe:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classAdobeXMPCommon_1_1IThreadSafe.png" usemap="#AdobeXMPCommon::IThreadSafe_map" alt=""/>
+ <map id="AdobeXMPCommon::IThreadSafe_map" name="AdobeXMPCommon::IThreadSafe_map">
+<area href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html" title="Version1 of the interface that represents map where each entry consists of prefix string as the key a..." alt="AdobeXMPCore::INameSpacePrefixMap_v1" shape="rect" coords="0,56,261,80"/>
+<area href="classAdobeXMPCore_1_1INode__v1.html" title="Version1 of the interface that serves as a base interface to all types of nodes in the XMP DOM..." alt="AdobeXMPCore::INode_v1" shape="rect" coords="271,56,532,80"/>
+<area href="classAdobeXMPCore_1_1ICompositeNode__v1.html" title="Version1 of the interface that serves as a base interface to all composite types of nodes in the XMP ..." alt="AdobeXMPCore::ICompositeNode_v1" shape="rect" coords="135,112,396,136"/>
+<area href="classAdobeXMPCore_1_1ISimpleNode__v1.html" title="Version1 of the interface that represents a Simple Property Node of XMP DOM. " alt="AdobeXMPCore::ISimpleNode_v1" shape="rect" coords="406,112,667,136"/>
+<area href="classAdobeXMPCore_1_1IArrayNode__v1.html" title="Version1 of the interface that represents an Array Node of XMP DOM. " alt="AdobeXMPCore::IArrayNode_v1" shape="rect" coords="0,168,261,192"/>
+<area href="classAdobeXMPCore_1_1IStructureNode__v1.html" title="Version1 of the interface that represents a structure Node of XMP DOM. " alt="AdobeXMPCore::IStructureNode_v1" shape="rect" coords="271,168,532,192"/>
+<area href="classAdobeXMPCore_1_1IMetadata__v1.html" title="Version1 of the interface that represents the whole xmp metadata for an asset. " alt="AdobeXMPCore::IMetadata_v1" shape="rect" coords="271,224,532,248"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:afe35614cb88e2bdb32996cf4ac15b211"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#afe35614cb88e2bdb32996cf4ac15b211">EnableThreadSafety</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:afe35614cb88e2bdb32996cf4ac15b211"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables the thread safety on an object. <a href="#afe35614cb88e2bdb32996cf4ac15b211">More...</a><br /></td></tr>
+<tr class="separator:afe35614cb88e2bdb32996cf4ac15b211"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a214bb1b5840dbd5576e764dd2220b261"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a214bb1b5840dbd5576e764dd2220b261">DisableThreadSafety</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a214bb1b5840dbd5576e764dd2220b261"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disables the thread safety on an object. <a href="#a214bb1b5840dbd5576e764dd2220b261">More...</a><br /></td></tr>
+<tr class="separator:a214bb1b5840dbd5576e764dd2220b261"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a261e2f6af96b75015e5f8318f32be7f9"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a261e2f6af96b75015e5f8318f32be7f9">IsThreadSafe</a> () const =0</td></tr>
+<tr class="memdesc:a261e2f6af96b75015e5f8318f32be7f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Informs whether object can be used across multiple threads or not. <a href="#a261e2f6af96b75015e5f8318f32be7f9">More...</a><br /></td></tr>
+<tr class="separator:a261e2f6af96b75015e5f8318f32be7f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:a0f31eb9677c4af06288319e363c21ebc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a0f31eb9677c4af06288319e363c21ebc">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:a0f31eb9677c4af06288319e363c21ebc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Interface that serves as the base interface for all the externally exposed interfaces which needs to provide client configurable thread safety. </p>
+<dl class="section attention"><dt>Attention</dt><dd>In case client has disabled thread safety at the module level these functions will have no use. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>By default all the objects created are not thread safe. </dd></dl>
+
+<p>Definition at line <a class="el" href="IThreadSafe_8h_source.html#l00027">27</a> of file <a class="el" href="IThreadSafe_8h_source.html">IThreadSafe.h</a>.</p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a214bb1b5840dbd5576e764dd2220b261"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCommon::IThreadSafe::DisableThreadSafety </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Disables the thread safety on an object. </p>
+<p>After calling this function the object should not be used across multiple threads. </p>
+
+</div>
+</div>
+<a class="anchor" id="afe35614cb88e2bdb32996cf4ac15b211"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCommon::IThreadSafe::EnableThreadSafety </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Enables the thread safety on an object. </p>
+<p>After calling this function the object can be used across multiple threads. </p>
+
+</div>
+</div>
+<a class="anchor" id="a261e2f6af96b75015e5f8318f32be7f9"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual bool APICALL AdobeXMPCommon::IThreadSafe::IsThreadSafe </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Informs whether object can be used across multiple threads or not. </p>
+<dl class="section return"><dt>Returns</dt><dd>bool value; true in case object can be used across multiple threads, false otherwise. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a0f31eb9677c4af06288319e363c21ebc"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">AdobeXMPCommon::IThreadSafe::REQ_FRIEND_CLASS_DECLARATION </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/Interfaces/BaseInterfaces/<a class="el" href="IThreadSafe_8h_source.html">IThreadSafe.h</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCommon_1_1IThreadSafe.js b/docs/API/classAdobeXMPCommon_1_1IThreadSafe.js
new file mode 100755
index 0000000..f487797
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1IThreadSafe.js
@@ -0,0 +1,7 @@
+var classAdobeXMPCommon_1_1IThreadSafe =
+[
+ [ "DisableThreadSafety", "classAdobeXMPCommon_1_1IThreadSafe.html#a214bb1b5840dbd5576e764dd2220b261", null ],
+ [ "EnableThreadSafety", "classAdobeXMPCommon_1_1IThreadSafe.html#afe35614cb88e2bdb32996cf4ac15b211", null ],
+ [ "IsThreadSafe", "classAdobeXMPCommon_1_1IThreadSafe.html#a261e2f6af96b75015e5f8318f32be7f9", null ],
+ [ "REQ_FRIEND_CLASS_DECLARATION", "classAdobeXMPCommon_1_1IThreadSafe.html#a0f31eb9677c4af06288319e363c21ebc", null ]
+]; \ No newline at end of file
diff --git a/docs/API/classAdobeXMPCommon_1_1IThreadSafe.png b/docs/API/classAdobeXMPCommon_1_1IThreadSafe.png
new file mode 100755
index 0000000..a09af42
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1IThreadSafe.png
Binary files differ
diff --git a/docs/API/classAdobeXMPCommon_1_1IUTF8String__v1-members.html b/docs/API/classAdobeXMPCommon_1_1IUTF8String__v1-members.html
new file mode 100755
index 0000000..634d8cb
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1IUTF8String__v1-members.html
@@ -0,0 +1,91 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCommon_1_1IUTF8String__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">AdobeXMPCommon::IUTF8String_v1 Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc">Acquire</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a0699c6ad71960ba770c393dddcfa171d">append</a>(const char *buf, sizet count)=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#ac4a048a6701b0e8c500bedef4a5ae886">append</a>(const spcIUTF8String &amp;src, sizet srcPos=0, sizet count=npos)=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a09ed6025bf467e1aab61ceab27277ea7">assign</a>(const char *buf, sizet count)=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#aa9a26fe32a7bc969628d60575e2cbc37">assign</a>(const spcIUTF8String &amp;src, sizet srcPos=0, sizet count=npos)=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a74f019bc9c2d4a36c689906529abca14">c_str</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a8c89cae09770d23100e36a7401733e00">clear</a>() __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a745714ed2abbc6a2808fb933cc6b2f46">compare</a>(const char *buf) const </td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a382311b08300432549054caa0c351928">compare</a>(sizet pos, sizet len, const char *buf) const </td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#aeef728e7e6133f12bb10282c5fcff69f">compare</a>(sizet pos, sizet len, const char *buf, sizet count) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a709ce9d5053d7fdc30a0735112844305">compare</a>(const spcIUTF8String &amp;str) const </td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#ac71ee072a3ea37023575720d89833f02">compare</a>(sizet pos, sizet len, const spcIUTF8String &amp;str, sizet strPos=0, sizet strLen=npos) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a71882e69cdd1729a498571286dcf752a">copy</a>(char *buf, sizet len, sizet pos=0) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a0d2adae65b938d56ff526d67cc9634a3">CreateUTF8String</a>(pIObjectFactory objFactory)</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#afcf1d7294c5e3c518c3fcbc3bc16d305">CreateUTF8String</a>(pIObjectFactory objFactory, const char *buf, sizet count)</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a3d47695cb24358835d8c904cfbf0856c">empty</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a34008a94fe509b080c0d1b7f5e650886">erase</a>(sizet pos=0, sizet count=npos)=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a136133c53ec032e30c10a15f11c7c8b5">find</a>(const char *buf, sizet pos=0) const </td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a75ef851beb03fa01e9c4232a6a3e749b">find</a>(const char *buf, sizet pos, sizet count) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#ac6d67760974e46520e3517d6cd0f54a6">find</a>(const spcIUTF8String &amp;src, sizet pos=0, sizet count=npos) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070">GetInterfacePointer</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#ae19e8581f0cd7c13ada7d465b76d6814">insert</a>(sizet pos, const char *buf, sizet count)=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a4b31b65fa8904172abd35adb388d33cb">insert</a>(sizet pos, const spcIUTF8String &amp;src, sizet srcPos=0, sizet count=npos)=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3">Release</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a6873a42d7f1a747fc5461e2c653e97cb">replace</a>(sizet pos, sizet count, const char *buf, sizet srcCount)=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a90218f86f4baae7d98e75238512c7c5e">replace</a>(sizet pos, sizet count, const spcIUTF8String &amp;src, sizet srcPos=0, sizet srcCount=npos)=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#afcb42109aed83c3b0c133bc413388037">AdobeXMPCommon::REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f">AdobeXMPCommon::IVersionable::REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a94228b12fd752c7051f9cafad0aa1692">resize</a>(sizet n)=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a7b58ccfe2131a133db0e2fdcfc4f6baf">rfind</a>(const char *buf, sizet pos=npos) const </td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a073b7795a02f6844d2595da422c737f3">rfind</a>(const char *buf, sizet pos, sizet count) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#aeae90e180292815caf2f4ceb890a8f5a">rfind</a>(const spcIUTF8String &amp;src, sizet pos=npos, sizet count=npos) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a5da1566bf196fc58c4c3d5a469e1f4f3">size</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#ab960c740e20dd09e26b24e04fd43e357">substr</a>(sizet pos=0, sizet count=npos) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31">~ISharedObject</a>() __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#ade123eab5a2f5e432ce6e50f43eddad3">~IUTF8String_v1</a>() __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">AdobeXMPCommon::IUTF8String_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCommon_1_1IUTF8String__v1.html b/docs/API/classAdobeXMPCommon_1_1IUTF8String__v1.html
new file mode 100755
index 0000000..158b30a
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1IUTF8String__v1.html
@@ -0,0 +1,1671 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>AdobeXMPCommon::IUTF8String_v1 Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCommon_1_1IUTF8String__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classAdobeXMPCommon_1_1IUTF8String__v1-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">AdobeXMPCommon::IUTF8String_v1 Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Version1 of the interface that represents an UTF8String.
+ <a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="IUTF8String_8h_source.html">IUTF8String.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for AdobeXMPCommon::IUTF8String_v1:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classAdobeXMPCommon_1_1IUTF8String__v1.png" usemap="#AdobeXMPCommon::IUTF8String_5Fv1_map" alt=""/>
+ <map id="AdobeXMPCommon::IUTF8String_5Fv1_map" name="AdobeXMPCommon::IUTF8String_v1_map">
+<area href="classAdobeXMPCommon_1_1ISharedObject.html" title="Interface that serves as the base interface of all the externally exposed interfaces. " alt="AdobeXMPCommon::ISharedObject" shape="rect" coords="0,0,218,24"/>
+<area href="classAdobeXMPCommon_1_1IVersionable.html" title="Interface that serves as the base interface for all the externally exposed interfaces which needs to ..." alt="AdobeXMPCommon::IVersionable" shape="rect" coords="228,0,446,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a0699c6ad71960ba770c393dddcfa171d"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a0699c6ad71960ba770c393dddcfa171d">append</a> (const char *buf, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count)=0</td></tr>
+<tr class="memdesc:a0699c6ad71960ba770c393dddcfa171d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends more content into the existing string object through a pointer to char buffer. <a href="#a0699c6ad71960ba770c393dddcfa171d">More...</a><br /></td></tr>
+<tr class="separator:a0699c6ad71960ba770c393dddcfa171d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac4a048a6701b0e8c500bedef4a5ae886"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#ac4a048a6701b0e8c500bedef4a5ae886">append</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> &amp;src, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> srcPos=0, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count=<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a>)=0</td></tr>
+<tr class="memdesc:ac4a048a6701b0e8c500bedef4a5ae886"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends the contents of another string into the existing string. <a href="#ac4a048a6701b0e8c500bedef4a5ae886">More...</a><br /></td></tr>
+<tr class="separator:ac4a048a6701b0e8c500bedef4a5ae886"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a09ed6025bf467e1aab61ceab27277ea7"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a09ed6025bf467e1aab61ceab27277ea7">assign</a> (const char *buf, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count)=0</td></tr>
+<tr class="memdesc:a09ed6025bf467e1aab61ceab27277ea7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Overwrites new string content into the existing string object through a pointer to char buffer. <a href="#a09ed6025bf467e1aab61ceab27277ea7">More...</a><br /></td></tr>
+<tr class="separator:a09ed6025bf467e1aab61ceab27277ea7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa9a26fe32a7bc969628d60575e2cbc37"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#aa9a26fe32a7bc969628d60575e2cbc37">assign</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> &amp;src, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> srcPos=0, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count=<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a>)=0</td></tr>
+<tr class="memdesc:aa9a26fe32a7bc969628d60575e2cbc37"><td class="mdescLeft">&#160;</td><td class="mdescRight">Overwrites the contents with contents of another string. <a href="#aa9a26fe32a7bc969628d60575e2cbc37">More...</a><br /></td></tr>
+<tr class="separator:aa9a26fe32a7bc969628d60575e2cbc37"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae19e8581f0cd7c13ada7d465b76d6814"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#ae19e8581f0cd7c13ada7d465b76d6814">insert</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos, const char *buf, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count)=0</td></tr>
+<tr class="memdesc:ae19e8581f0cd7c13ada7d465b76d6814"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inserts additional characters into the string right before the character indicated by pos. <a href="#ae19e8581f0cd7c13ada7d465b76d6814">More...</a><br /></td></tr>
+<tr class="separator:ae19e8581f0cd7c13ada7d465b76d6814"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4b31b65fa8904172abd35adb388d33cb"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a4b31b65fa8904172abd35adb388d33cb">insert</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos, const <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> &amp;src, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> srcPos=0, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count=<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a>)=0</td></tr>
+<tr class="memdesc:a4b31b65fa8904172abd35adb388d33cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inserts additional characters into the string right before the character indicated by pos. <a href="#a4b31b65fa8904172abd35adb388d33cb">More...</a><br /></td></tr>
+<tr class="separator:a4b31b65fa8904172abd35adb388d33cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a34008a94fe509b080c0d1b7f5e650886"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a34008a94fe509b080c0d1b7f5e650886">erase</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos=0, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count=<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a>)=0</td></tr>
+<tr class="memdesc:a34008a94fe509b080c0d1b7f5e650886"><td class="mdescLeft">&#160;</td><td class="mdescRight">Erases part of the string, reducing its length. <a href="#a34008a94fe509b080c0d1b7f5e650886">More...</a><br /></td></tr>
+<tr class="separator:a34008a94fe509b080c0d1b7f5e650886"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a94228b12fd752c7051f9cafad0aa1692"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a94228b12fd752c7051f9cafad0aa1692">resize</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> n)=0</td></tr>
+<tr class="memdesc:a94228b12fd752c7051f9cafad0aa1692"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resizes the string to the length of n characters. /param[in] n New string length, expressed in number of characters. <a href="#a94228b12fd752c7051f9cafad0aa1692">More...</a><br /></td></tr>
+<tr class="separator:a94228b12fd752c7051f9cafad0aa1692"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6873a42d7f1a747fc5461e2c653e97cb"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a6873a42d7f1a747fc5461e2c653e97cb">replace</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count, const char *buf, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> srcCount)=0</td></tr>
+<tr class="memdesc:a6873a42d7f1a747fc5461e2c653e97cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replace portion of string. <a href="#a6873a42d7f1a747fc5461e2c653e97cb">More...</a><br /></td></tr>
+<tr class="separator:a6873a42d7f1a747fc5461e2c653e97cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a90218f86f4baae7d98e75238512c7c5e"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a90218f86f4baae7d98e75238512c7c5e">replace</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count, const <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> &amp;src, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> srcPos=0, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> srcCount=<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a>)=0</td></tr>
+<tr class="memdesc:a90218f86f4baae7d98e75238512c7c5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replace portion of string. <a href="#a90218f86f4baae7d98e75238512c7c5e">More...</a><br /></td></tr>
+<tr class="separator:a90218f86f4baae7d98e75238512c7c5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a71882e69cdd1729a498571286dcf752a"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a71882e69cdd1729a498571286dcf752a">copy</a> (char *buf, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> len, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos=0) const =0</td></tr>
+<tr class="memdesc:a71882e69cdd1729a498571286dcf752a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy sequence of characters from string. <a href="#a71882e69cdd1729a498571286dcf752a">More...</a><br /></td></tr>
+<tr class="separator:a71882e69cdd1729a498571286dcf752a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a136133c53ec032e30c10a15f11c7c8b5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a136133c53ec032e30c10a15f11c7c8b5">find</a> (const char *buf, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos=0) const </td></tr>
+<tr class="memdesc:a136133c53ec032e30c10a15f11c7c8b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find content in string. <a href="#a136133c53ec032e30c10a15f11c7c8b5">More...</a><br /></td></tr>
+<tr class="separator:a136133c53ec032e30c10a15f11c7c8b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a75ef851beb03fa01e9c4232a6a3e749b"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a75ef851beb03fa01e9c4232a6a3e749b">find</a> (const char *buf, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count) const =0</td></tr>
+<tr class="memdesc:a75ef851beb03fa01e9c4232a6a3e749b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find content in string. <a href="#a75ef851beb03fa01e9c4232a6a3e749b">More...</a><br /></td></tr>
+<tr class="separator:a75ef851beb03fa01e9c4232a6a3e749b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac6d67760974e46520e3517d6cd0f54a6"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#ac6d67760974e46520e3517d6cd0f54a6">find</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> &amp;src, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos=0, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count=<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a>) const =0</td></tr>
+<tr class="memdesc:ac6d67760974e46520e3517d6cd0f54a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find content in string. <a href="#ac6d67760974e46520e3517d6cd0f54a6">More...</a><br /></td></tr>
+<tr class="separator:ac6d67760974e46520e3517d6cd0f54a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeae90e180292815caf2f4ceb890a8f5a"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#aeae90e180292815caf2f4ceb890a8f5a">rfind</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> &amp;src, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos=<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a>, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count=<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a>) const =0</td></tr>
+<tr class="memdesc:aeae90e180292815caf2f4ceb890a8f5a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find last occurrence of content in string. <a href="#aeae90e180292815caf2f4ceb890a8f5a">More...</a><br /></td></tr>
+<tr class="separator:aeae90e180292815caf2f4ceb890a8f5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
+<tr class="memitem:a7b58ccfe2131a133db0e2fdcfc4f6baf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a7b58ccfe2131a133db0e2fdcfc4f6baf">rfind</a> (const char *buf, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos=<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a>) const </td></tr>
+<tr class="memdesc:a7b58ccfe2131a133db0e2fdcfc4f6baf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find last occurrence of content in string. <a href="#a7b58ccfe2131a133db0e2fdcfc4f6baf">More...</a><br /></td></tr>
+<tr class="separator:a7b58ccfe2131a133db0e2fdcfc4f6baf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a073b7795a02f6844d2595da422c737f3"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a073b7795a02f6844d2595da422c737f3">rfind</a> (const char *buf, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count) const =0</td></tr>
+<tr class="separator:a073b7795a02f6844d2595da422c737f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1ISharedObject')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td></tr>
+<tr class="memitem:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc">Acquire</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the clients of the object to indicate that he has acquired the shared ownership of the object. <a href="#ab90d4ec1fcd975a7ac62dcb866335cdc">More...</a><br /></td></tr>
+<tr class="separator:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3">Release</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the clients of the object to indicate he has released his shared ownership of the object. If this being the last client than this function should call Destroy to delete and release the memory. <a href="#abf5a54e09f87366170ea19c618f68bc3">More...</a><br /></td></tr>
+<tr class="separator:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
+<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
+<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a> ()</td></tr>
+<tr class="memdesc:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to an interface object implementing the requested version. <a href="#ad6539461695decfaea8a44798db51e54">More...</a><br /></td></tr>
+<tr class="separator:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
+<tr class="memitem:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> const requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070">GetInterfacePointer</a> () const </td></tr>
+<tr class="memdesc:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to a const interface object implementing the requested version. <a href="#ab93a940e2946c14a76ebbd9552cab070">More...</a><br /></td></tr>
+<tr class="separator:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a745714ed2abbc6a2808fb933cc6b2f46"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceAdobeXMPCommon.html#a070d4ea981e6080468e9a3cdbd82b458">int32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a745714ed2abbc6a2808fb933cc6b2f46">compare</a> (const char *buf) const </td></tr>
+<tr class="memdesc:a745714ed2abbc6a2808fb933cc6b2f46"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compare strings. <a href="#a745714ed2abbc6a2808fb933cc6b2f46">More...</a><br /></td></tr>
+<tr class="separator:a745714ed2abbc6a2808fb933cc6b2f46"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a382311b08300432549054caa0c351928"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceAdobeXMPCommon.html#a070d4ea981e6080468e9a3cdbd82b458">int32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a382311b08300432549054caa0c351928">compare</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> len, const char *buf) const </td></tr>
+<tr class="memdesc:a382311b08300432549054caa0c351928"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compare strings. <a href="#a382311b08300432549054caa0c351928">More...</a><br /></td></tr>
+<tr class="separator:a382311b08300432549054caa0c351928"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeef728e7e6133f12bb10282c5fcff69f"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a070d4ea981e6080468e9a3cdbd82b458">int32</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#aeef728e7e6133f12bb10282c5fcff69f">compare</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> len, const char *buf, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count) const =0</td></tr>
+<tr class="memdesc:aeef728e7e6133f12bb10282c5fcff69f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compare strings. <a href="#aeef728e7e6133f12bb10282c5fcff69f">More...</a><br /></td></tr>
+<tr class="separator:aeef728e7e6133f12bb10282c5fcff69f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a709ce9d5053d7fdc30a0735112844305"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceAdobeXMPCommon.html#a070d4ea981e6080468e9a3cdbd82b458">int32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a709ce9d5053d7fdc30a0735112844305">compare</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> &amp;str) const </td></tr>
+<tr class="memdesc:a709ce9d5053d7fdc30a0735112844305"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compare strings. <a href="#a709ce9d5053d7fdc30a0735112844305">More...</a><br /></td></tr>
+<tr class="separator:a709ce9d5053d7fdc30a0735112844305"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac71ee072a3ea37023575720d89833f02"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a070d4ea981e6080468e9a3cdbd82b458">int32</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#ac71ee072a3ea37023575720d89833f02">compare</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> len, const <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> &amp;str, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> strPos=0, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> strLen=<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a>) const =0</td></tr>
+<tr class="memdesc:ac71ee072a3ea37023575720d89833f02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compare strings. <a href="#ac71ee072a3ea37023575720d89833f02">More...</a><br /></td></tr>
+<tr class="separator:ac71ee072a3ea37023575720d89833f02"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab960c740e20dd09e26b24e04fd43e357"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#ab960c740e20dd09e26b24e04fd43e357">substr</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pos=0, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count=<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a>) const =0</td></tr>
+<tr class="memdesc:ab960c740e20dd09e26b24e04fd43e357"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a new string object which contains a sub string of the actual string object. <a href="#ab960c740e20dd09e26b24e04fd43e357">More...</a><br /></td></tr>
+<tr class="separator:ab960c740e20dd09e26b24e04fd43e357"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3d47695cb24358835d8c904cfbf0856c"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a3d47695cb24358835d8c904cfbf0856c">empty</a> () const =0</td></tr>
+<tr class="memdesc:a3d47695cb24358835d8c904cfbf0856c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates whether the string object is empty or not. <a href="#a3d47695cb24358835d8c904cfbf0856c">More...</a><br /></td></tr>
+<tr class="separator:a3d47695cb24358835d8c904cfbf0856c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a74f019bc9c2d4a36c689906529abca14"><td class="memItemLeft" align="right" valign="top">virtual const char *APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a74f019bc9c2d4a36c689906529abca14">c_str</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a74f019bc9c2d4a36c689906529abca14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides access to the actual location where contents of string are stored. <a href="#a74f019bc9c2d4a36c689906529abca14">More...</a><br /></td></tr>
+<tr class="separator:a74f019bc9c2d4a36c689906529abca14"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8c89cae09770d23100e36a7401733e00"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a8c89cae09770d23100e36a7401733e00">clear</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a8c89cae09770d23100e36a7401733e00"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears the contents of the string object. <a href="#a8c89cae09770d23100e36a7401733e00">More...</a><br /></td></tr>
+<tr class="separator:a8c89cae09770d23100e36a7401733e00"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5da1566bf196fc58c4c3d5a469e1f4f3"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a5da1566bf196fc58c4c3d5a469e1f4f3">size</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a5da1566bf196fc58c4c3d5a469e1f4f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates the number of bytes used by the contents of the string object. <a href="#a5da1566bf196fc58c4c3d5a469e1f4f3">More...</a><br /></td></tr>
+<tr class="separator:a5da1566bf196fc58c4c3d5a469e1f4f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0d2adae65b938d56ff526d67cc9634a3"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a0d2adae65b938d56ff526d67cc9634a3">CreateUTF8String</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a0863cf1c24764306839671985373b93f">pIObjectFactory</a> objFactory)</td></tr>
+<tr class="memdesc:a0d2adae65b938d56ff526d67cc9634a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an empty IUTF8String object. <a href="#a0d2adae65b938d56ff526d67cc9634a3">More...</a><br /></td></tr>
+<tr class="separator:a0d2adae65b938d56ff526d67cc9634a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afcf1d7294c5e3c518c3fcbc3bc16d305"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#afcf1d7294c5e3c518c3fcbc3bc16d305">CreateUTF8String</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a0863cf1c24764306839671985373b93f">pIObjectFactory</a> objFactory, const char *buf, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count)</td></tr>
+<tr class="memdesc:afcf1d7294c5e3c518c3fcbc3bc16d305"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an IUTF8String object whose initial contents are copied from a char buffer. <a href="#afcf1d7294c5e3c518c3fcbc3bc16d305">More...</a><br /></td></tr>
+<tr class="separator:afcf1d7294c5e3c518c3fcbc3bc16d305"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ade123eab5a2f5e432ce6e50f43eddad3"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#ade123eab5a2f5e432ce6e50f43eddad3">~IUTF8String_v1</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:ade123eab5a2f5e432ce6e50f43eddad3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1ISharedObject')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td></tr>
+<tr class="memitem:a5869ff89d0b7dd0a7b525401a1d57b31 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31">~ISharedObject</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="separator:a5869ff89d0b7dd0a7b525401a1d57b31 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afcb42109aed83c3b0c133bc413388037 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#afcb42109aed83c3b0c133bc413388037">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:afcb42109aed83c3b0c133bc413388037 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
+<tr class="memitem:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a> ()</td></tr>
+<tr class="separator:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Version1 of the interface that represents an UTF8String. </p>
+<p>Provides all the functions to access properties of the string object, appends or assigns content to the existing string objects and clones existing string objects. </p>
+
+<p>Definition at line <a class="el" href="IUTF8String_8h_source.html#l00023">23</a> of file <a class="el" href="IUTF8String_8h_source.html">IUTF8String.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="ade123eab5a2f5e432ce6e50f43eddad3"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual AdobeXMPCommon::IUTF8String_v1::~IUTF8String_v1 </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Destructor </p>
+
+<p>Definition at line <a class="el" href="IUTF8String_8h_source.html#l00473">473</a> of file <a class="el" href="IUTF8String_8h_source.html">IUTF8String.h</a>.</p>
+
+<p>References <a class="el" href="XMPCommonDefines_8h_source.html#l00107">REQ_FRIEND_CLASS_DECLARATION</a>.</p>
+<div class="fragment"><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;{}</div></div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a0699c6ad71960ba770c393dddcfa171d"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL AdobeXMPCommon::IUTF8String_v1::append </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>buf</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>count</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Appends more content into the existing string object through a pointer to char buffer. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">buf</td><td>pointer to a constant char buffer containing new content. It can be null terminated or not. NULL pointer will be treated as empty string. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">count</td><td>A value of #<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a> indicating the length in case buf is not null terminated. In case buf is null terminated it can be set to npos. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The shared pointer to itself of type #AdobeXMPCommon::IUTF8String. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ac4a048a6701b0e8c500bedef4a5ae886"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL AdobeXMPCommon::IUTF8String_v1::append </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> &amp;&#160;</td>
+ <td class="paramname"><em>src</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>srcPos</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>count</em> = <code><a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a></code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Appends the contents of another string into the existing string. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>Shared pointer to const #AdobeXMPCommon::IUTF8String whose contents will be appended to existing content in the object. Invalid shared pointer will be treated as empty string. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">srcPos</td><td>A value of #<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a> indicating the position of the first character in src that is inserted into the object as a substring. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">count</td><td>A value of #<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a> indicating the length of the substring to be copied (if the string is shorter, as many characters as possible are copied). A value of npos indicates all characters until the end of src. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The shared pointer to itself of type #AdobeXMPCommon::IUTF8String. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
+<li>srcPos is greater than length of src. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a09ed6025bf467e1aab61ceab27277ea7"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL AdobeXMPCommon::IUTF8String_v1::assign </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>buf</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>count</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Overwrites new string content into the existing string object through a pointer to char buffer. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">buf</td><td>pointer to a constant char buffer containing new content. It can be null terminated or not. NULL pointer will be treated as empty string. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">count</td><td>A value of #<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a> indicating the length in case buf is not null terminated. In case buf is null terminated it can be set to npos. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The shared pointer to itself of type #AdobeXMPCommon::IUTF8String. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="aa9a26fe32a7bc969628d60575e2cbc37"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL AdobeXMPCommon::IUTF8String_v1::assign </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> &amp;&#160;</td>
+ <td class="paramname"><em>src</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>srcPos</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>count</em> = <code><a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a></code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Overwrites the contents with contents of another string. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>shared pointer to const #AdobeXMPCommon::IUTF8String whose contents will overwrite existing content in the object. Invalid shared pointer will be treated as empty string. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">srcPos</td><td>A value of #<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a> indicating the position of the first character in src that is inserted into the object as a substring. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">count</td><td>A value of #<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a> indicating the length of the substring to be copied. A value of npos indicates all characters until the end of src. If this is greater than the available characters in the substring then copying is limited to the number of available characters. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The shared pointer to itself of type #AdobeXMPCommon::IUTF8String. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
+<li>srcPos is greater than length of src. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a74f019bc9c2d4a36c689906529abca14"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual const char* APICALL AdobeXMPCommon::IUTF8String_v1::c_str </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Provides access to the actual location where contents of string are stored. </p>
+<dl class="section return"><dt>Returns</dt><dd>A pointer to a buffer of const chars containing the contents of the string object. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a8c89cae09770d23100e36a7401733e00"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCommon::IUTF8String_v1::clear </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Clears the contents of the string object. </p>
+
+</div>
+</div>
+<a class="anchor" id="a745714ed2abbc6a2808fb933cc6b2f46"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="namespaceAdobeXMPCommon.html#a070d4ea981e6080468e9a3cdbd82b458">int32</a> AdobeXMPCommon::IUTF8String_v1::compare </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>buf</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Compare strings. </p>
+<p>Compares the value of the string object (or a substring) to the sequence of characters specified by its arguments. </p><dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">buf</td><td>pointer to a constant char buffer containing content to be compared. It can be null terminated or not. NULL pointer will be treated as empty string.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Returns a signed integral indicating the relation between the strings <table class="doxtable">
+<tr>
+<th align="center">value </th><th align="left">relation between compared string and comparing string </th></tr>
+<tr>
+<td align="center">0 </td><td align="left">They compare equal </td></tr>
+<tr>
+<td align="center">&lt;0 </td><td align="left">Either the value of the first character that does not match is lower in the compared string, or all compared characters match but the compared string is shorter. </td></tr>
+<tr>
+<td align="center">&gt;0 </td><td align="left">Either the value of the first character that does not match is greater in the compared string, or all compared characters match but the compared string is longer. </td></tr>
+</table>
+</dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
+<li>pos is greater than the object's length. </li>
+</ul>
+</dd></dl>
+
+<p>Definition at line <a class="el" href="IUTF8String_8h_source.html#l00283">283</a> of file <a class="el" href="IUTF8String_8h_source.html">IUTF8String.h</a>.</p>
+
+<p>References <a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos()</a>.</p>
+<div class="fragment"><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; {</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a745714ed2abbc6a2808fb933cc6b2f46">compare</a>( 0, <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a5da1566bf196fc58c4c3d5a469e1f4f3">size</a>(), buf, <a class="code" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a> );</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; }</div><div class="ttc" id="namespaceAdobeXMPCommon_html_afc1bfa88991003b305ab5023b483d3f9"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a></div><div class="ttdeci">const sizet npos(kMaxSize)</div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IUTF8String__v1_html_a745714ed2abbc6a2808fb933cc6b2f46"><div class="ttname"><a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a745714ed2abbc6a2808fb933cc6b2f46">AdobeXMPCommon::IUTF8String_v1::compare</a></div><div class="ttdeci">int32 compare(const char *buf) const </div><div class="ttdoc">Compare strings. </div><div class="ttdef"><b>Definition:</b> <a href="IUTF8String_8h_source.html#l00283">IUTF8String.h:283</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IUTF8String__v1_html_a5da1566bf196fc58c4c3d5a469e1f4f3"><div class="ttname"><a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a5da1566bf196fc58c4c3d5a469e1f4f3">AdobeXMPCommon::IUTF8String_v1::size</a></div><div class="ttdeci">virtual sizet APICALL size() const __NOTHROW__=0</div><div class="ttdoc">Indicates the number of bytes used by the contents of the string object. </div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a382311b08300432549054caa0c351928"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="namespaceAdobeXMPCommon.html#a070d4ea981e6080468e9a3cdbd82b458">int32</a> AdobeXMPCommon::IUTF8String_v1::compare </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>pos</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>len</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>buf</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Compare strings. </p>
+<p>Compares the value of the string object (or a substring) to the sequence of characters specified by its arguments. </p><dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">buf</td><td>pointer to a constant char buffer containing content to be compared. It can be null terminated or not. NULL pointer will be treated as empty string. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>Position of the first character in the compared string. If this is greater than the string length, it is treated as empty string. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">len</td><td>Length of compared string (if the string is shorter, as many characters as possible). A value of npos indicates all characters until the end of the string.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Returns a signed integral indicating the relation between the strings <table class="doxtable">
+<tr>
+<th align="center">value </th><th align="left">relation between compared string and comparing string </th></tr>
+<tr>
+<td align="center">0 </td><td align="left">They compare equal </td></tr>
+<tr>
+<td align="center">&lt;0 </td><td align="left">Either the value of the first character that does not match is lower in the compared string, or all compared characters match but the compared string is shorter. </td></tr>
+<tr>
+<td align="center">&gt;0 </td><td align="left">Either the value of the first character that does not match is greater in the compared string, or all compared characters match but the compared string is longer. </td></tr>
+</table>
+</dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
+<li>pos is greater than the object's length. </li>
+</ul>
+</dd></dl>
+
+<p>Definition at line <a class="el" href="IUTF8String_8h_source.html#l00305">305</a> of file <a class="el" href="IUTF8String_8h_source.html">IUTF8String.h</a>.</p>
+
+<p>References <a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos()</a>.</p>
+<div class="fragment"><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; {</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a745714ed2abbc6a2808fb933cc6b2f46">compare</a>( pos, len, buf, <a class="code" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a> );</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; }</div><div class="ttc" id="namespaceAdobeXMPCommon_html_afc1bfa88991003b305ab5023b483d3f9"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a></div><div class="ttdeci">const sizet npos(kMaxSize)</div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IUTF8String__v1_html_a745714ed2abbc6a2808fb933cc6b2f46"><div class="ttname"><a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a745714ed2abbc6a2808fb933cc6b2f46">AdobeXMPCommon::IUTF8String_v1::compare</a></div><div class="ttdeci">int32 compare(const char *buf) const </div><div class="ttdoc">Compare strings. </div><div class="ttdef"><b>Definition:</b> <a href="IUTF8String_8h_source.html#l00283">IUTF8String.h:283</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="aeef728e7e6133f12bb10282c5fcff69f"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a070d4ea981e6080468e9a3cdbd82b458">int32</a> APICALL AdobeXMPCommon::IUTF8String_v1::compare </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>pos</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>len</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>buf</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>count</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Compare strings. </p>
+<p>Compares the value of the string object (or a substring) to the sequence of characters specified by its arguments. </p><dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">buf</td><td>pointer to a constant char buffer containing content to be compared. It can be null terminated or not. NULL pointer will be treated as empty string. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>Position of the first character in the compared string. If this is greater than the string length, it is treated as empty string. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">len</td><td>Length of compared string (if the string is shorter, as many characters as possible). A value of npos indicates all characters until the end of the string. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">count</td><td>Number of characters to compare.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Returns a signed integral indicating the relation between the strings <table class="doxtable">
+<tr>
+<th align="center">value </th><th align="left">relation between compared string and comparing string </th></tr>
+<tr>
+<td align="center">0 </td><td align="left">They compare equal </td></tr>
+<tr>
+<td align="center">&lt;0 </td><td align="left">Either the value of the first character that does not match is lower in the compared string, or all compared characters match but the compared string is shorter. </td></tr>
+<tr>
+<td align="center">&gt;0 </td><td align="left">Either the value of the first character that does not match is greater in the compared string, or all compared characters match but the compared string is longer. </td></tr>
+</table>
+</dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
+<li>pos is greater than the object's length. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a709ce9d5053d7fdc30a0735112844305"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="namespaceAdobeXMPCommon.html#a070d4ea981e6080468e9a3cdbd82b458">int32</a> AdobeXMPCommon::IUTF8String_v1::compare </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> &amp;&#160;</td>
+ <td class="paramname"><em>str</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Compare strings. </p>
+<p>Compares the value of the string object (or a substring) to the contents of an string or substring object specified by its arguments. </p><dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">str</td><td>shared pointer to const #AdobeXMPCommon::IUTF8String containing content to be compared. Invalid shared pointer will be treated as empty string. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Returns a signed integral indicating the relation between the strings <table class="doxtable">
+<tr>
+<th align="center">value </th><th align="left">relation between compared string and comparing string </th></tr>
+<tr>
+<td align="center">0 </td><td align="left">They compare equal </td></tr>
+<tr>
+<td align="center">&lt;0 </td><td align="left">Either the value of the first character that does not match is lower in the compared string, or all compared characters match but the compared string is shorter. </td></tr>
+<tr>
+<td align="center">&gt;0 </td><td align="left">Either the value of the first character that does not match is greater in the compared string, or all compared characters match but the compared string is longer. </td></tr>
+</table>
+</dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
+<li>strPos is greater than length of str.</li>
+<li>pos is greater than the object's length. </li>
+</ul>
+</dd></dl>
+
+<p>Definition at line <a class="el" href="IUTF8String_8h_source.html#l00347">347</a> of file <a class="el" href="IUTF8String_8h_source.html">IUTF8String.h</a>.</p>
+
+<p>References <a class="el" href="XMPCommonDefines_8h_source.html#l00117">__NOTHROW__</a>, <a class="el" href="namespaceAdobeXMPCommon.html#a97f984a3b999db35dd915b17322c8c7f">AdobeXMPCommon::kIUTF8StringID()</a>, <a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos()</a>, and <a class="el" href="XMP__Environment_8h_source.html#l00189">XMP_PRIVATE</a>.</p>
+<div class="fragment"><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; {</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a745714ed2abbc6a2808fb933cc6b2f46">compare</a>( 0, <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a5da1566bf196fc58c4c3d5a469e1f4f3">size</a>(), str, 0, str-&gt;size() );</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; }</div><div class="ttc" id="classAdobeXMPCommon_1_1IUTF8String__v1_html_a745714ed2abbc6a2808fb933cc6b2f46"><div class="ttname"><a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a745714ed2abbc6a2808fb933cc6b2f46">AdobeXMPCommon::IUTF8String_v1::compare</a></div><div class="ttdeci">int32 compare(const char *buf) const </div><div class="ttdoc">Compare strings. </div><div class="ttdef"><b>Definition:</b> <a href="IUTF8String_8h_source.html#l00283">IUTF8String.h:283</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IUTF8String__v1_html_a5da1566bf196fc58c4c3d5a469e1f4f3"><div class="ttname"><a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a5da1566bf196fc58c4c3d5a469e1f4f3">AdobeXMPCommon::IUTF8String_v1::size</a></div><div class="ttdeci">virtual sizet APICALL size() const __NOTHROW__=0</div><div class="ttdoc">Indicates the number of bytes used by the contents of the string object. </div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="ac71ee072a3ea37023575720d89833f02"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a070d4ea981e6080468e9a3cdbd82b458">int32</a> APICALL AdobeXMPCommon::IUTF8String_v1::compare </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>pos</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>len</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> &amp;&#160;</td>
+ <td class="paramname"><em>str</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>strPos</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>strLen</em> = <code><a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a></code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Compare strings. </p>
+<p>Compares the value of the string object (or a substring) to the contents of an string or substring object specified by its arguments. </p><dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>Position of the first character in the compared string. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">len</td><td>Length of compared string (if the string is shorter, as many characters as possible). A value of npos indicates all characters until the end of the string. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">str</td><td>shared pointer to const #AdobeXMPCommon::IUTF8String containing content to be compared. Invalid shared pointer will be treated as empty string. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">strPos</td><td>Position of the first character in the comparing string. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">strLen</td><td>Length of comparing string (if the string is shorter, as many characters as possible).</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Returns a signed integral indicating the relation between the strings <table class="doxtable">
+<tr>
+<th align="center">value </th><th align="left">relation between compared string and comparing string </th></tr>
+<tr>
+<td align="center">0 </td><td align="left">They compare equal </td></tr>
+<tr>
+<td align="center">&lt;0 </td><td align="left">Either the value of the first character that does not match is lower in the compared string, or all compared characters match but the compared string is shorter. </td></tr>
+<tr>
+<td align="center">&gt;0 </td><td align="left">Either the value of the first character that does not match is greater in the compared string, or all compared characters match but the compared string is longer. </td></tr>
+</table>
+</dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
+<li>strPos is greater than length of str.</li>
+<li>pos is greater than the object's length. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a71882e69cdd1729a498571286dcf752a"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL AdobeXMPCommon::IUTF8String_v1::copy </td>
+ <td>(</td>
+ <td class="paramtype">char *&#160;</td>
+ <td class="paramname"><em>buf</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>len</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>pos</em> = <code>0</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Copy sequence of characters from string. </p>
+<p>Copies a substring of the current value of the string object into the array. This substring contains the len characters that start at position pos. </p><dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in,out]</td><td class="paramname">buf</td><td>Pointer to an array of characters. The array shall contain enough storage for the copied characters. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">len</td><td>Number of characters to copy (if the string is shorter, as many characters as possible are copied). </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>Position of the first character to be copied. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The number of characters copied to the array. This may be equal to count or to <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a5da1566bf196fc58c4c3d5a469e1f4f3" title="Indicates the number of bytes used by the contents of the string object. ">size()</a> - pos. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>The function does not append a null character at the end of the copied content. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
+<li>pos is greater than the object's length. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a0d2adae65b938d56ff526d67cc9634a3"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> AdobeXMPCommon::IUTF8String_v1::CreateUTF8String </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a0863cf1c24764306839671985373b93f">pIObjectFactory</a>&#160;</td>
+ <td class="paramname"><em>objFactory</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Creates an empty IUTF8String object. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">objFactory</td><td>A pointer to #AdobeXMPCommon::IObjectFactory object. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to an empty IUTF8String object </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="afcf1d7294c5e3c518c3fcbc3bc16d305"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> AdobeXMPCommon::IUTF8String_v1::CreateUTF8String </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a0863cf1c24764306839671985373b93f">pIObjectFactory</a>&#160;</td>
+ <td class="paramname"><em>objFactory</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>buf</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>count</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Creates an IUTF8String object whose initial contents are copied from a char buffer. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">objFactory</td><td>A pointer to #AdobeXMPCommon::IObjectFactory object. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">buf</td><td>pointer to a constant char buffer containing content. It can be null terminated or not. NULL pointer will be treated as empty string. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">count</td><td>A value of #<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a> indicating the length in case buf is not null terminated. In case buf is null terminated it can be set to npos. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to a newly created #AdobeXMPCommon::IUTF8String object </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a3d47695cb24358835d8c904cfbf0856c"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual bool APICALL AdobeXMPCommon::IUTF8String_v1::empty </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Indicates whether the string object is empty or not. </p>
+<dl class="section return"><dt>Returns</dt><dd>A value of type bool; true in case the contents of the string object is empty. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a34008a94fe509b080c0d1b7f5e650886"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL AdobeXMPCommon::IUTF8String_v1::erase </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>pos</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>count</em> = <code><a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a></code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Erases part of the string, reducing its length. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>Position of the first character to be erased. If this is greater than the string length, nothing is erased. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">count</td><td>Number of characters to erase (if the string is shorter, as many characters as possible are erased). A value of npos indicates all characters until the end of the string. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The shared pointer to itself of type #AdobeXMPCommon::IUTF8String. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
+<li>pos is greater than the object's length. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a136133c53ec032e30c10a15f11c7c8b5"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> AdobeXMPCommon::IUTF8String_v1::find </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>buf</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>pos</em> = <code>0</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Find content in string. </p>
+<p>Searches the string for the first occurrence of the sequence specified by its arguments. When pos is specified, the search only includes characters at or after position pos, ignoring any possible occurrences that include characters before pos. </p><dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">buf</td><td>pointer to a constant char buffer containing content to be matched. It can be null terminated or not. NULL pointer will be treated as empty string. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>Position of the first character in the string to be considered in the search. If this is greater than the string length, the function never finds matches. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The position of the first character of the first match. If no matches were found, the function returns npos. </dd></dl>
+
+<p>Definition at line <a class="el" href="IUTF8String_8h_source.html#l00194">194</a> of file <a class="el" href="IUTF8String_8h_source.html">IUTF8String.h</a>.</p>
+
+<p>References <a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos()</a>.</p>
+<div class="fragment"><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; {</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a136133c53ec032e30c10a15f11c7c8b5">find</a>( buf, pos, <a class="code" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a> );</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; }</div><div class="ttc" id="namespaceAdobeXMPCommon_html_afc1bfa88991003b305ab5023b483d3f9"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a></div><div class="ttdeci">const sizet npos(kMaxSize)</div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IUTF8String__v1_html_a136133c53ec032e30c10a15f11c7c8b5"><div class="ttname"><a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a136133c53ec032e30c10a15f11c7c8b5">AdobeXMPCommon::IUTF8String_v1::find</a></div><div class="ttdeci">sizet find(const char *buf, sizet pos=0) const </div><div class="ttdoc">Find content in string. </div><div class="ttdef"><b>Definition:</b> <a href="IUTF8String_8h_source.html#l00194">IUTF8String.h:194</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a75ef851beb03fa01e9c4232a6a3e749b"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL AdobeXMPCommon::IUTF8String_v1::find </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>buf</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>pos</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>count</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Find content in string. </p>
+<p>Searches the string for the first occurrence of the sequence specified by its arguments. When pos is specified, the search only includes characters at or after position pos, ignoring any possible occurrences that include characters before pos. </p><dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">buf</td><td>pointer to a constant char buffer containing content to be matched. It can be null terminated or not. NULL pointer will be treated as empty string. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>Position of the first character in the string to be considered in the search. If this is greater than the string length, the function never finds matches. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">count</td><td>Length of sequence of characters to match. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The position of the first character of the first match. If no matches were found, the function returns npos. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ac6d67760974e46520e3517d6cd0f54a6"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL AdobeXMPCommon::IUTF8String_v1::find </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> &amp;&#160;</td>
+ <td class="paramname"><em>src</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>pos</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>count</em> = <code><a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a></code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Find content in string. </p>
+<p>Searches the string for the first occurrence of the sequence specified by its arguments. When pos is specified, the search only includes characters at or after position pos, ignoring any possible occurrences that include characters before pos. </p><dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>shared pointer to const #AdobeXMPCommon::IUTF8String containing content to be matched. Invalid shared pointer will be treated as empty string. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>Position of the first character in the string to be considered in the search. If this is greater than the string length, the function never finds matches. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">count</td><td>Length of sequence of characters to match. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The position of the first character of the first match. If no matches were found, the function returns npos. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ae19e8581f0cd7c13ada7d465b76d6814"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL AdobeXMPCommon::IUTF8String_v1::insert </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>pos</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>buf</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>count</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Inserts additional characters into the string right before the character indicated by pos. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>Insertion point: The new contents are inserted before the character at position pos. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">buf</td><td>pointer to a constant char buffer containing new content. It can be null terminated or not. NULL pointer will be treated as empty string. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">count</td><td>A value of #<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a> indicating the length in case buf is not null terminated. In case buf is null terminated it can be set to npos. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The shared pointer to itself of type #AdobeXMPCommon::IUTF8String. \attention Error is thrown in case<ul>
+<li>pos is greater than the object's length. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a4b31b65fa8904172abd35adb388d33cb"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL AdobeXMPCommon::IUTF8String_v1::insert </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>pos</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> &amp;&#160;</td>
+ <td class="paramname"><em>src</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>srcPos</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>count</em> = <code><a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a></code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Inserts additional characters into the string right before the character indicated by pos. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>Insertion point: The new contents are inserted before the character at position pos. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>shared pointer to const #AdobeXMPCommon::IUTF8String whose contents will be copied and pushed into the object. Invalid shared pointer will be treated as empty string. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">srcPos</td><td>A value of #<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a> indicating the position of the first character in src that is inserted into the object as a substring. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">count</td><td>A value of #<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a> indicating the length of the substring to be copied (if the string is shorter, as many characters as possible are copied). A value of npos indicates all characters until the end of src. If this is greater than the available characters in the substring then copying is limited to the number of available characters. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The shared pointer to itself of type #AdobeXMPCommon::IUTF8String. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
+<li>srcPos is greater than length of src.</li>
+<li>pos is greater than the object's length. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a6873a42d7f1a747fc5461e2c653e97cb"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL AdobeXMPCommon::IUTF8String_v1::replace </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>pos</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>count</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>buf</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>srcCount</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Replace portion of string. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>Position of the first character to be replaced. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">count</td><td>Number of characters to replace (if the string is shorter, as many characters as possible are replaced). A value of npos indicates all characters until the end of the string. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">buf</td><td>pointer to a constant char buffer containing new content. It can be null terminated or not. NULL pointer will be treated as empty string. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">srcCount</td><td>A value of #<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a> indicating the length in case buf is not null terminated. In case buf is null terminated it can be set to npos. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The shared pointer to itself of type #AdobeXMPCommon::IUTF8String. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
+<li>pos is greater than the object's length. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a90218f86f4baae7d98e75238512c7c5e"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL AdobeXMPCommon::IUTF8String_v1::replace </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>pos</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>count</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> &amp;&#160;</td>
+ <td class="paramname"><em>src</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>srcPos</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>srcCount</em> = <code><a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a></code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Replace portion of string. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>Position of the first character to be replaced. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">count</td><td>Number of characters to replace (if the string is shorter, as many characters as possible are replaced). A value of npos indicates all characters until the end of the string. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>Shared pointer to const #AdobeXMPCommon::IUTF8String whose contents will be copied and pushed into the object. Invalid shared pointer will be treated as empty string. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">srcPos</td><td>Position of the first character in str that is copied to the object as replacement. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">srcCount</td><td>Length of the substring to be copied (if the string is shorter, as many characters as possible are copied). A value of npos indicates all characters until the end of str. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The shared pointer to itself of type #AdobeXMPCommon::IUTF8String. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
+<li>srcPos is greater than length of src.</li>
+<li>pos is greater than the object's length. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a94228b12fd752c7051f9cafad0aa1692"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCommon::IUTF8String_v1::resize </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>n</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Resizes the string to the length of n characters. /param[in] n New string length, expressed in number of characters. </p>
+<dl class="section note"><dt>Note</dt><dd>If n is smaller than the current string length, the current value is shortened to its first size character, removing the characters beyond the nth. If n is greater than the current string length, the current content is extended by inserting at the end as many NULL characters as needed to reach a size of n. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
+<li>n is greater than max_size</li>
+<li>allocation fails </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a7b58ccfe2131a133db0e2fdcfc4f6baf"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> AdobeXMPCommon::IUTF8String_v1::rfind </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>buf</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>pos</em> = <code><a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a></code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Find last occurrence of content in string. </p>
+<p>Searches the string for the last occurrence of the sequence specified by its arguments. When pos is specified, the search only includes sequences of characters that begin at or before position pos, ignoring any possible match beginning after pos. </p><dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">buf</td><td>pointer to a constant char buffer containing content to be matched. It can be null terminated or not. NULL pointer will be treated as empty string. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>Position of the last character in the string to be considered as the beginning of a match. Any value greater or equal than the string length (including npos) means that the entire string is searched. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The position of the fist character of the last match. If no matches were found, the function returns npos. </dd></dl>
+
+<p>Definition at line <a class="el" href="IUTF8String_8h_source.html#l00243">243</a> of file <a class="el" href="IUTF8String_8h_source.html">IUTF8String.h</a>.</p>
+
+<p>References <a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos()</a>.</p>
+<div class="fragment"><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; {</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a7b58ccfe2131a133db0e2fdcfc4f6baf">rfind</a>( buf, pos, <a class="code" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a> );</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; }</div><div class="ttc" id="namespaceAdobeXMPCommon_html_afc1bfa88991003b305ab5023b483d3f9"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a></div><div class="ttdeci">const sizet npos(kMaxSize)</div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1IUTF8String__v1_html_a7b58ccfe2131a133db0e2fdcfc4f6baf"><div class="ttname"><a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a7b58ccfe2131a133db0e2fdcfc4f6baf">AdobeXMPCommon::IUTF8String_v1::rfind</a></div><div class="ttdeci">sizet rfind(const char *buf, sizet pos=npos) const </div><div class="ttdoc">Find last occurrence of content in string. </div><div class="ttdef"><b>Definition:</b> <a href="IUTF8String_8h_source.html#l00243">IUTF8String.h:243</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a073b7795a02f6844d2595da422c737f3"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL AdobeXMPCommon::IUTF8String_v1::rfind </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>buf</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>pos</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>count</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aeae90e180292815caf2f4ceb890a8f5a"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL AdobeXMPCommon::IUTF8String_v1::rfind </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> &amp;&#160;</td>
+ <td class="paramname"><em>src</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>pos</em> = <code><a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a></code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>count</em> = <code><a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a></code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Find last occurrence of content in string. </p>
+<p>Searches the string for the last occurrence of the sequence specified by its arguments. When pos is specified, the search only includes sequences of characters that begin at or before position pos, ignoring any possible match beginning after pos. </p><dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>shared pointer to const #AdobeXMPCommon::IUTF8String containing content to be matched. Invalid shared pointer will be treated as empty string. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>Position of the last character in the string to be considered as the beginning of a match. Any value greater or equal than the string length (including npos) means that the entire string is searched. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">count</td><td>Length of sequence of characters to match. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The position of the fist character of the last match. If no matches were found, the function returns npos. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a5da1566bf196fc58c4c3d5a469e1f4f3"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL AdobeXMPCommon::IUTF8String_v1::size </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Indicates the number of bytes used by the contents of the string object. </p>
+<dl class="section return"><dt>Returns</dt><dd>An object of type #<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a> containing the number of bytes used to store the contents fo the string object. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ab960c740e20dd09e26b24e04fd43e357"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL AdobeXMPCommon::IUTF8String_v1::substr </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>pos</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>count</em> = <code><a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a></code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Returns a new string object which contains a sub string of the actual string object. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>Position of the first character to be copied. If this is greater than the string length, then nothing is copied. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">count</td><td>Number of characters to copy (if the string is shorter, as many characters as possible are copied). </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to AdobeXMPCommon::IUTF8String which is exact replica of the current object. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
+<li>pos is greater than the object's length.</li>
+<li>allocation fails </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/Interfaces/<a class="el" href="IUTF8String_8h_source.html">IUTF8String.h</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCommon_1_1IUTF8String__v1.js b/docs/API/classAdobeXMPCommon_1_1IUTF8String__v1.js
new file mode 100755
index 0000000..9f762ff
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1IUTF8String__v1.js
@@ -0,0 +1,33 @@
+var classAdobeXMPCommon_1_1IUTF8String__v1 =
+[
+ [ "~IUTF8String_v1", "classAdobeXMPCommon_1_1IUTF8String__v1.html#ade123eab5a2f5e432ce6e50f43eddad3", null ],
+ [ "append", "classAdobeXMPCommon_1_1IUTF8String__v1.html#a0699c6ad71960ba770c393dddcfa171d", null ],
+ [ "append", "classAdobeXMPCommon_1_1IUTF8String__v1.html#ac4a048a6701b0e8c500bedef4a5ae886", null ],
+ [ "assign", "classAdobeXMPCommon_1_1IUTF8String__v1.html#a09ed6025bf467e1aab61ceab27277ea7", null ],
+ [ "assign", "classAdobeXMPCommon_1_1IUTF8String__v1.html#aa9a26fe32a7bc969628d60575e2cbc37", null ],
+ [ "c_str", "classAdobeXMPCommon_1_1IUTF8String__v1.html#a74f019bc9c2d4a36c689906529abca14", null ],
+ [ "clear", "classAdobeXMPCommon_1_1IUTF8String__v1.html#a8c89cae09770d23100e36a7401733e00", null ],
+ [ "compare", "classAdobeXMPCommon_1_1IUTF8String__v1.html#a745714ed2abbc6a2808fb933cc6b2f46", null ],
+ [ "compare", "classAdobeXMPCommon_1_1IUTF8String__v1.html#a382311b08300432549054caa0c351928", null ],
+ [ "compare", "classAdobeXMPCommon_1_1IUTF8String__v1.html#aeef728e7e6133f12bb10282c5fcff69f", null ],
+ [ "compare", "classAdobeXMPCommon_1_1IUTF8String__v1.html#a709ce9d5053d7fdc30a0735112844305", null ],
+ [ "compare", "classAdobeXMPCommon_1_1IUTF8String__v1.html#ac71ee072a3ea37023575720d89833f02", null ],
+ [ "copy", "classAdobeXMPCommon_1_1IUTF8String__v1.html#a71882e69cdd1729a498571286dcf752a", null ],
+ [ "CreateUTF8String", "classAdobeXMPCommon_1_1IUTF8String__v1.html#a0d2adae65b938d56ff526d67cc9634a3", null ],
+ [ "CreateUTF8String", "classAdobeXMPCommon_1_1IUTF8String__v1.html#afcf1d7294c5e3c518c3fcbc3bc16d305", null ],
+ [ "empty", "classAdobeXMPCommon_1_1IUTF8String__v1.html#a3d47695cb24358835d8c904cfbf0856c", null ],
+ [ "erase", "classAdobeXMPCommon_1_1IUTF8String__v1.html#a34008a94fe509b080c0d1b7f5e650886", null ],
+ [ "find", "classAdobeXMPCommon_1_1IUTF8String__v1.html#a136133c53ec032e30c10a15f11c7c8b5", null ],
+ [ "find", "classAdobeXMPCommon_1_1IUTF8String__v1.html#a75ef851beb03fa01e9c4232a6a3e749b", null ],
+ [ "find", "classAdobeXMPCommon_1_1IUTF8String__v1.html#ac6d67760974e46520e3517d6cd0f54a6", null ],
+ [ "insert", "classAdobeXMPCommon_1_1IUTF8String__v1.html#ae19e8581f0cd7c13ada7d465b76d6814", null ],
+ [ "insert", "classAdobeXMPCommon_1_1IUTF8String__v1.html#a4b31b65fa8904172abd35adb388d33cb", null ],
+ [ "replace", "classAdobeXMPCommon_1_1IUTF8String__v1.html#a6873a42d7f1a747fc5461e2c653e97cb", null ],
+ [ "replace", "classAdobeXMPCommon_1_1IUTF8String__v1.html#a90218f86f4baae7d98e75238512c7c5e", null ],
+ [ "resize", "classAdobeXMPCommon_1_1IUTF8String__v1.html#a94228b12fd752c7051f9cafad0aa1692", null ],
+ [ "rfind", "classAdobeXMPCommon_1_1IUTF8String__v1.html#a7b58ccfe2131a133db0e2fdcfc4f6baf", null ],
+ [ "rfind", "classAdobeXMPCommon_1_1IUTF8String__v1.html#a073b7795a02f6844d2595da422c737f3", null ],
+ [ "rfind", "classAdobeXMPCommon_1_1IUTF8String__v1.html#aeae90e180292815caf2f4ceb890a8f5a", null ],
+ [ "size", "classAdobeXMPCommon_1_1IUTF8String__v1.html#a5da1566bf196fc58c4c3d5a469e1f4f3", null ],
+ [ "substr", "classAdobeXMPCommon_1_1IUTF8String__v1.html#ab960c740e20dd09e26b24e04fd43e357", null ]
+]; \ No newline at end of file
diff --git a/docs/API/classAdobeXMPCommon_1_1IUTF8String__v1.png b/docs/API/classAdobeXMPCommon_1_1IUTF8String__v1.png
new file mode 100755
index 0000000..1fcb743
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1IUTF8String__v1.png
Binary files differ
diff --git a/docs/API/classAdobeXMPCommon_1_1IVersionable-members.html b/docs/API/classAdobeXMPCommon_1_1IVersionable-members.html
new file mode 100755
index 0000000..0283b53
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1IVersionable-members.html
@@ -0,0 +1,57 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCommon_1_1IVersionable.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">AdobeXMPCommon::IVersionable Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070">GetInterfacePointer</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f">REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCommon_1_1IVersionable.html b/docs/API/classAdobeXMPCommon_1_1IVersionable.html
new file mode 100755
index 0000000..55407af
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1IVersionable.html
@@ -0,0 +1,227 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>AdobeXMPCommon::IVersionable Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCommon_1_1IVersionable.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="classAdobeXMPCommon_1_1IVersionable-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">AdobeXMPCommon::IVersionable Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Interface that serves as the base interface for all the externally exposed interfaces which needs to provide evolving versions of the interface.
+ <a href="classAdobeXMPCommon_1_1IVersionable.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="IVersionable_8h_source.html">IVersionable.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for AdobeXMPCommon::IVersionable:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classAdobeXMPCommon_1_1IVersionable.png" usemap="#AdobeXMPCommon::IVersionable_map" alt=""/>
+ <map id="AdobeXMPCommon::IVersionable_map" name="AdobeXMPCommon::IVersionable_map">
+<area href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html" title="Version1 of the interface that represents configuration settings controllable by the client..." alt="AdobeXMPCommon::IConfigurationManager_v1" shape="rect" coords="303,56,596,80"/>
+<area href="classAdobeXMPCommon_1_1IError__v1.html" title="Version1 of the interface that represents an error/warning encountered during processing. " alt="AdobeXMPCommon::IError_v1" shape="rect" coords="303,112,596,136"/>
+<area href="classAdobeXMPCommon_1_1IObjectFactory__v1.html" title="Version1 of a interface that represents a factory to create various artifacts defined within AdobeXMP..." alt="AdobeXMPCommon::IObjectFactory_v1" shape="rect" coords="303,168,596,192"/>
+<area href="classAdobeXMPCommon_1_1IUTF8String__v1.html" title="Version1 of the interface that represents an UTF8String. " alt="AdobeXMPCommon::IUTF8String_v1" shape="rect" coords="303,224,596,248"/>
+<area href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html" title="Version1 of the interface that serves as a database/registry of all the parsers and serializers avail..." alt="AdobeXMPCore::IDOMImplementationRegistry_v1" shape="rect" coords="303,280,596,304"/>
+<area href="classAdobeXMPCore_1_1IDOMParser__v1.html" title="Version 1 of the interface that supports parsing of the XMP Data Model. " alt="AdobeXMPCore::IDOMParser_v1" shape="rect" coords="303,336,596,360"/>
+<area href="classAdobeXMPCore_1_1IDOMSerializer__v1.html" title="Version1 of the interface that represents an object that can serialize an XMP Data Model to a buffer..." alt="AdobeXMPCore::IDOMSerializer_v1" shape="rect" coords="303,392,596,416"/>
+<area href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html" title="Version1 of the interface that represents map where each entry consists of prefix string as the key a..." alt="AdobeXMPCore::INameSpacePrefixMap_v1" shape="rect" coords="303,448,596,472"/>
+<area href="classAdobeXMPCore_1_1INode__v1.html" title="Version1 of the interface that serves as a base interface to all types of nodes in the XMP DOM..." alt="AdobeXMPCore::INode_v1" shape="rect" coords="303,504,596,528"/>
+<area href="classAdobeXMPCore_1_1INodeIterator__v1.html" title="Interface that represents an iterator over the mutable children of a XMP DOM Node. " alt="AdobeXMPCore::INodeIterator_v1" shape="rect" coords="303,560,596,584"/>
+<area href="classAdobeXMPCore_1_1IPath__v1.html" title="Version1 of the interface that provides an easy iterative description of a specific path into the XMP..." alt="AdobeXMPCore::IPath_v1" shape="rect" coords="303,616,596,640"/>
+<area href="classAdobeXMPCore_1_1IPathSegment__v1.html" title="Version1 of the interface that represents one segment in a path to a node into the XMP tree..." alt="AdobeXMPCore::IPathSegment_v1" shape="rect" coords="303,672,596,696"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:ad6539461695decfaea8a44798db51e54"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
+<tr class="memitem:ad6539461695decfaea8a44798db51e54"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a> ()</td></tr>
+<tr class="memdesc:ad6539461695decfaea8a44798db51e54"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to an interface object implementing the requested version. <a href="#ad6539461695decfaea8a44798db51e54">More...</a><br /></td></tr>
+<tr class="separator:ad6539461695decfaea8a44798db51e54"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab93a940e2946c14a76ebbd9552cab070"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
+<tr class="memitem:ab93a940e2946c14a76ebbd9552cab070"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> const requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070">GetInterfacePointer</a> () const </td></tr>
+<tr class="memdesc:ab93a940e2946c14a76ebbd9552cab070"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to a const interface object implementing the requested version. <a href="#ab93a940e2946c14a76ebbd9552cab070">More...</a><br /></td></tr>
+<tr class="separator:ab93a940e2946c14a76ebbd9552cab070"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:a3ccd9a1bdf7008906e094fb4e7f69826"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a> ()</td></tr>
+<tr class="separator:a3ccd9a1bdf7008906e094fb4e7f69826"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac619a81b428c88cfce50feaa91a2479f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:ac619a81b428c88cfce50feaa91a2479f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Interface that serves as the base interface for all the externally exposed interfaces which needs to provide evolving versions of the interface. </p>
+<p>Provide pointer to interface requested by client. Requirements on the class type</p><ol type="1">
+<li>Need to implement a function GetInterfaceID() returning a unique id for the interface. Only required to be implemented in first version of the interface.</li>
+<li>Need to implement a function GetVersionNumber() returning the version of the interface. Required to implemented by each version of the interface. </li>
+</ol>
+
+<p>Definition at line <a class="el" href="IVersionable_8h_source.html#l00028">28</a> of file <a class="el" href="IVersionable_8h_source.html">IVersionable.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a3ccd9a1bdf7008906e094fb4e7f69826"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual AdobeXMPCommon::IVersionable::~IVersionable </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="IVersionable_8h_source.html#l00056">56</a> of file <a class="el" href="IVersionable_8h_source.html">IVersionable.h</a>.</p>
+
+<p>References <a class="el" href="XMPCommonDefines_8h_source.html#l00117">__NOTHROW__</a>, and <a class="el" href="XMPCommonDefines_8h_source.html#l00107">REQ_FRIEND_CLASS_DECLARATION</a>.</p>
+<div class="fragment"><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{}</div></div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="ad6539461695decfaea8a44798db51e54"></a>
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename requestedInterface &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> requestedInterface* AdobeXMPCommon::IVersionable::GetInterfacePointer </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Get the raw pointer to an interface object implementing the requested version. </p>
+<dl class="section return"><dt>Returns</dt><dd>a raw pointer to an interface object implementing the requested version. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>In case a particular version number is not supported than an error is thrown. </dd></dl>
+
+<p>Definition at line <a class="el" href="IVersionable_8h_source.html#l00038">38</a> of file <a class="el" href="IVersionable_8h_source.html">IVersionable.h</a>.</p>
+
+<p>Referenced by <a class="el" href="IObjectFactory_8h_source.html#l00059">AdobeXMPCommon::IObjectFactory_v1::MakeObjectFactory()</a>.</p>
+<div class="fragment"><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; {</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ab59e650373a5efadfbfd2486313258a6">pvoid</a> ptr = <a class="code" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a>( requestedInterface::GetInterfaceID(),</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; requestedInterface::GetInterfaceVersion() );</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span> requestedInterface * <span class="keyword">&gt;</span>( ptr );</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; }</div><div class="ttc" id="classAdobeXMPCommon_1_1IVersionable_html_ad6539461695decfaea8a44798db51e54"><div class="ttname"><a href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">AdobeXMPCommon::IVersionable::GetInterfacePointer</a></div><div class="ttdeci">XMP_PRIVATE requestedInterface * GetInterfacePointer()</div><div class="ttdoc">Get the raw pointer to an interface object implementing the requested version. </div><div class="ttdef"><b>Definition:</b> <a href="IVersionable_8h_source.html#l00038">IVersionable.h:38</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_ab59e650373a5efadfbfd2486313258a6"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#ab59e650373a5efadfbfd2486313258a6">AdobeXMPCommon::pvoid</a></div><div class="ttdeci">void * pvoid</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00044">XMPCommonFwdDeclarations.h:44</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="ab93a940e2946c14a76ebbd9552cab070"></a>
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename requestedInterface &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> const requestedInterface* AdobeXMPCommon::IVersionable::GetInterfacePointer </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Get the raw pointer to a const interface object implementing the requested version. </p>
+<dl class="section return"><dt>Returns</dt><dd>a raw pointer to a const interface object implementing the requested version. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>In case a particular version number is not supported than an error is thrown. </dd></dl>
+
+<p>Definition at line <a class="el" href="IVersionable_8h_source.html#l00051">51</a> of file <a class="el" href="IVersionable_8h_source.html">IVersionable.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; {</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> IVersionable * <span class="keyword">&gt;</span>( this )-&gt;GetInterfacePointer&lt; requestedInterface &gt;();</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; }</div></div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="ac619a81b428c88cfce50feaa91a2479f"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">AdobeXMPCommon::IVersionable::REQ_FRIEND_CLASS_DECLARATION </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/Interfaces/BaseInterfaces/<a class="el" href="IVersionable_8h_source.html">IVersionable.h</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCommon_1_1IVersionable.js b/docs/API/classAdobeXMPCommon_1_1IVersionable.js
new file mode 100755
index 0000000..fa3b92d
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1IVersionable.js
@@ -0,0 +1,7 @@
+var classAdobeXMPCommon_1_1IVersionable =
+[
+ [ "~IVersionable", "classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826", null ],
+ [ "GetInterfacePointer", "classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54", null ],
+ [ "GetInterfacePointer", "classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070", null ],
+ [ "REQ_FRIEND_CLASS_DECLARATION", "classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f", null ]
+]; \ No newline at end of file
diff --git a/docs/API/classAdobeXMPCommon_1_1IVersionable.png b/docs/API/classAdobeXMPCommon_1_1IVersionable.png
new file mode 100755
index 0000000..172de88
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1IVersionable.png
Binary files differ
diff --git a/docs/API/classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor-members.html b/docs/API/classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor-members.html
new file mode 100755
index 0000000..5655a16
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor-members.html
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">AdobeXMPCommon::ReportErrorAndContinueFunctor Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html">AdobeXMPCommon::ReportErrorAndContinueFunctor</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html#a3b28d2e68ebbcd5d20781d8b7a48f879">mSafeProc</a></td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html">AdobeXMPCommon::ReportErrorAndContinueFunctor</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html#a5dd060eac19acba07ce701dc9ebaa09d">operator()</a>(IError_v1::eErrorDomain errorDomain, IError_v1::eErrorCode errorCode, IError_v1::eErrorSeverity errorSeverity, const char *message)</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html">AdobeXMPCommon::ReportErrorAndContinueFunctor</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html#a40e6fedd9a880d70095b9468b5cf05db">ReportErrorAndContinueFunctor</a>(ReportErrorAndContinueABISafeProc safeProc)</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html">AdobeXMPCommon::ReportErrorAndContinueFunctor</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html b/docs/API/classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html
new file mode 100755
index 0000000..0abb469
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html
@@ -0,0 +1,192 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>AdobeXMPCommon::ReportErrorAndContinueFunctor Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-attribs">Protected Attributes</a> &#124;
+<a href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">AdobeXMPCommon::ReportErrorAndContinueFunctor Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>A Function object used by the client to report back and warnings to the library encountered during the serialization operation.
+ <a href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="IError_8h_source.html">IError.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a40e6fedd9a880d70095b9468b5cf05db"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html#a40e6fedd9a880d70095b9468b5cf05db">ReportErrorAndContinueFunctor</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a8dc9ba4ce78a957c0843998c2468241a">ReportErrorAndContinueABISafeProc</a> safeProc)</td></tr>
+<tr class="separator:a40e6fedd9a880d70095b9468b5cf05db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5dd060eac19acba07ce701dc9ebaa09d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html#a5dd060eac19acba07ce701dc9ebaa09d">operator()</a> (<a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0d">IError_v1::eErrorDomain</a> errorDomain, <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a29cc93a78d4e1111ec8e51e4ca9a82b3">IError_v1::eErrorCode</a> errorCode, <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702">IError_v1::eErrorSeverity</a> errorSeverity, const char *message)</td></tr>
+<tr class="separator:a5dd060eac19acba07ce701dc9ebaa09d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr class="memitem:a3b28d2e68ebbcd5d20781d8b7a48f879"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceAdobeXMPCommon.html#a8dc9ba4ce78a957c0843998c2468241a">ReportErrorAndContinueABISafeProc</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html#a3b28d2e68ebbcd5d20781d8b7a48f879">mSafeProc</a></td></tr>
+<tr class="separator:a3b28d2e68ebbcd5d20781d8b7a48f879"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>A Function object used by the client to report back and warnings to the library encountered during the serialization operation. </p>
+<p>Based on the error condition library can return 0 or non zero to indicate that a particular warning can be ignored and operation can continue. </p>
+
+<p>Definition at line <a class="el" href="IError_8h_source.html#l00350">350</a> of file <a class="el" href="IError_8h_source.html">IError.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a40e6fedd9a880d70095b9468b5cf05db"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">AdobeXMPCommon::ReportErrorAndContinueFunctor::ReportErrorAndContinueFunctor </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a8dc9ba4ce78a957c0843998c2468241a">ReportErrorAndContinueABISafeProc</a>&#160;</td>
+ <td class="paramname"><em>safeProc</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="IError_8h_source.html#l00352">352</a> of file <a class="el" href="IError_8h_source.html">IError.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; : <a class="code" href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html#a3b28d2e68ebbcd5d20781d8b7a48f879">mSafeProc</a>( safeProc ) {}</div><div class="ttc" id="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor_html_a3b28d2e68ebbcd5d20781d8b7a48f879"><div class="ttname"><a href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html#a3b28d2e68ebbcd5d20781d8b7a48f879">AdobeXMPCommon::ReportErrorAndContinueFunctor::mSafeProc</a></div><div class="ttdeci">ReportErrorAndContinueABISafeProc mSafeProc</div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00371">IError.h:371</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a5dd060eac19acba07ce701dc9ebaa09d"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool AdobeXMPCommon::ReportErrorAndContinueFunctor::operator() </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0d">IError_v1::eErrorDomain</a>&#160;</td>
+ <td class="paramname"><em>errorDomain</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a29cc93a78d4e1111ec8e51e4ca9a82b3">IError_v1::eErrorCode</a>&#160;</td>
+ <td class="paramname"><em>errorCode</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702">IError_v1::eErrorSeverity</a>&#160;</td>
+ <td class="paramname"><em>errorSeverity</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>message</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">errorDomain</td><td>A value of #<a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0d" title="Indicates various types of error domains. ">IError_v1::eErrorDomain</a> indicating the domain of the error. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">errorCode</td><td>A value of #<a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a29cc93a78d4e1111ec8e51e4ca9a82b3">IError_v1::eErrorCode</a> indicating the code of the error. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">errorSeverity</td><td>A value of #<a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702" title="Indicates various types of errors. ">IError_v1::eErrorSeverity</a> indicating the severity of the error. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">message</td><td>Pointer to a constant char buffer containing message. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>true value indicating that process can continue ignoring the warning, otherwise return false to indicate it should stop immediately. </dd></dl>
+
+<p>Definition at line <a class="el" href="IError_8h_source.html#l00362">362</a> of file <a class="el" href="IError_8h_source.html">IError.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; {</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> error( NULL );</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keyword">auto</span> retValue = <a class="code" href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html#a3b28d2e68ebbcd5d20781d8b7a48f879">mSafeProc</a>( static_cast&lt; uint32 &gt;( errorDomain ), static_cast&lt; uint32 &gt;( errorCode ), static_cast&lt; uint32 &gt;( errorSeverity ), message, error );</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keywordflow">if</span> ( error )</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keywordflow">throw</span> IError_v1::MakeShared( error );</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keywordflow">return</span> retValue != 0 ? <span class="keyword">true</span> : <span class="keyword">false</span>;</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; }</div><div class="ttc" id="namespaceAdobeXMPCommon_html_ae3cc983230819089dc742273902228c5"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">AdobeXMPCommon::pcIError_base</a></div><div class="ttdeci">const IError_v1 * pcIError_base</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00062">XMPCommonFwdDeclarations.h:62</a></div></div>
+<div class="ttc" id="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor_html_a3b28d2e68ebbcd5d20781d8b7a48f879"><div class="ttname"><a href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html#a3b28d2e68ebbcd5d20781d8b7a48f879">AdobeXMPCommon::ReportErrorAndContinueFunctor::mSafeProc</a></div><div class="ttdeci">ReportErrorAndContinueABISafeProc mSafeProc</div><div class="ttdef"><b>Definition:</b> <a href="IError_8h_source.html#l00371">IError.h:371</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a class="anchor" id="a3b28d2e68ebbcd5d20781d8b7a48f879"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="namespaceAdobeXMPCommon.html#a8dc9ba4ce78a957c0843998c2468241a">ReportErrorAndContinueABISafeProc</a> AdobeXMPCommon::ReportErrorAndContinueFunctor::mSafeProc</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="IError_8h_source.html#l00371">371</a> of file <a class="el" href="IError_8h_source.html">IError.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/Interfaces/<a class="el" href="IError_8h_source.html">IError.h</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.js b/docs/API/classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.js
new file mode 100755
index 0000000..a2c3654
--- /dev/null
+++ b/docs/API/classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.js
@@ -0,0 +1,6 @@
+var classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor =
+[
+ [ "ReportErrorAndContinueFunctor", "classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html#a40e6fedd9a880d70095b9468b5cf05db", null ],
+ [ "operator()", "classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html#a5dd060eac19acba07ce701dc9ebaa09d", null ],
+ [ "mSafeProc", "classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html#a3b28d2e68ebbcd5d20781d8b7a48f879", null ]
+]; \ No newline at end of file
diff --git a/docs/API/classAdobeXMPCore_1_1IArrayNode__v1-members.html b/docs/API/classAdobeXMPCore_1_1IArrayNode__v1-members.html
new file mode 100755
index 0000000..2bf2d9e
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1IArrayNode__v1-members.html
@@ -0,0 +1,154 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCore_1_1IArrayNode__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">AdobeXMPCore::IArrayNode_v1 Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html">AdobeXMPCore::IArrayNode_v1</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a673b6b4d69b2c9d85f2fa440d413ace3">AcknowledgeChanges</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc">Acquire</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a6795e662d9daea5b88de08261488964b">AppendNode</a>(const spINode &amp;node)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#abf3323ce933f5336bc0f64955c0bdd11">ChildCount</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4b615b0eef081f3c23385f28728aa462">Clear</a>(bool contents=true, bool qualifiers=true)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2d613694adcedb569145aff06d0bc595">Clone</a>(bool ignoreEmptyNodes=false, bool ignoreNodesWithOnlyQualifiers=false) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#af180be62ecd26edf90df0fe3ea75941e">ConvertToArrayNode</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a0d67ad7708fb6f007ea1152b79e65f49">ConvertToArrayNode</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a08f9ed4dee6c899f65eb51e3d7f9858d">ConvertToMetadata</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a72dc534e1af718599ac185563a02612a">ConvertToMetadata</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aeb9797165d96d06998de79dd19a9f846">ConvertToSimpleNode</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ad8e7ef140cb5ff094789abfcc879c94b">ConvertToSimpleNode</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5ea317fcd59694184089a9774c866b22">ConvertToStructureNode</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ad5f62a4ae9a9630c8106a04bd0c2a0a3">ConvertToStructureNode</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#afcb8012075f5c956139bff39f41bae47">CreateAlternativeArrayNode</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html">AdobeXMPCore::IArrayNode_v1</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a6e9068b8048a29804fb9d567c6cc8952">CreateOrderedArrayNode</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html">AdobeXMPCore::IArrayNode_v1</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a9b89618c3115efc948bd7fb49dfc570c">CreateUnorderedArrayNode</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html">AdobeXMPCore::IArrayNode_v1</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a214bb1b5840dbd5576e764dd2220b261">DisableThreadSafety</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3">eArrayForm</a> enum name</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html">AdobeXMPCore::IArrayNode_v1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#afe35614cb88e2bdb32996cf4ac15b211">EnableThreadSafety</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> enum name</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#ae75dc043c5da4ab09b4700fcbfc065ec">GetArrayForm</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html">AdobeXMPCore::IArrayNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a57011f7b4cf194ef1a2e52011671b862">GetArrayNodeAtIndex</a>(sizet index) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html">AdobeXMPCore::IArrayNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#ac16b0614e51f8323585d653c0d36faf2">GetArrayNodeAtIndex</a>(sizet index)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html">AdobeXMPCore::IArrayNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a2e17bda06b20439a0076ea2fae68594d">GetArrayNodeAtPath</a>(const spcIPath &amp;path) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#aba3fc78fab746460b1e7e01fe2e004b6">GetArrayNodeAtPath</a>(const spcIPath &amp;path)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ab55c9dad49840d58a1c2c16b9f1962ad">GetArrayQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a2e68d1345ed6ca2e5d1bfada42b13f">GetArrayQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#ad3748958964789cb3d20d5776b1157b5">GetChildNodeType</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html">AdobeXMPCore::IArrayNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2447e6ea34adbe073a639c703015db90">GetIndex</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070">GetInterfacePointer</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a68350da5edc0668811b9bb890d5777b9">GetName</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2e8319347c3b01638027b4abbe72fda6">GetNameSpace</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7c2e3c217f7e1bb28504c40da474f01e">GetNodeAtIndex</a>(sizet index)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html">AdobeXMPCore::IArrayNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#ae3bf9368ff5fa36665e21911bbab98b5">GetNodeAtIndex</a>(sizet index) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html">AdobeXMPCore::IArrayNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a5c4cddddb0702e61d85cff16c5e72632">GetNodeAtPath</a>(const spcIPath &amp;path) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a0dd2a64d53b361b96bdfb597c5e35579">GetNodeAtPath</a>(const spcIPath &amp;path)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a6d9067d66571727b622ffccade5225f0">GetNodeType</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#ac5e3227436e3ee11d0df7f3a176402e0">GetNodeTypeAtPath</a>(const spcIPath &amp;path) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aee7e1f35ac174874234ba5e913a6bfaa">GetParent</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4533c1d11fc2d32c166c9ce05fe01b3c">GetParent</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a47da5e5605d69d6d6ced761e7c39d24f">GetParentNodeType</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a549f1adeea470827a6201b3b4c596f1e">GetPath</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a96a99fa56a2b088691ecad5a0cf6e54d">GetQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a7701069162b4f677026624a5f2b3f788">GetQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2866bcde949c37aeb72cdba8dddcac95">GetQualifierNodeType</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#ab6cffa23c82a1dee98d634e8b4081510">GetSimpleNodeAtIndex</a>(sizet index) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html">AdobeXMPCore::IArrayNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a37ba080075f5158ffdffbb36437e2622">GetSimpleNodeAtIndex</a>(sizet index)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html">AdobeXMPCore::IArrayNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a93d1009b739d8a6c40ebbf4aa75051af">GetSimpleNodeAtPath</a>(const spcIPath &amp;path) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a42c91ca3eeded6302163a96903927445">GetSimpleNodeAtPath</a>(const spcIPath &amp;path)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a1524d74e397863cb9324838862f70d7b">GetSimpleQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2831fe03981afd9af12e775bda89361e">GetSimpleQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#aabcee273a5efdaf57975f52f11ba8e85">GetStructureNodeAtIndex</a>(sizet index) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html">AdobeXMPCore::IArrayNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#aaf0ef3b97a41d1035f789dc3ab127bae">GetStructureNodeAtIndex</a>(sizet index)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html">AdobeXMPCore::IArrayNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#ad6ca35dc12323a3a970066beb4c63e84">GetStructureNodeAtPath</a>(const spcIPath &amp;path) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a2abb6cdf40e6d4c91e30b736586e89dc">GetStructureNodeAtPath</a>(const spcIPath &amp;path)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a844a40cd69e0d87226ce1146d733edd6">GetStructureQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4fb3c837b8c28501b2e7a3376a2cf382">GetStructureQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ab78ba3aaadf4b0109e610505e753de50">HasChanged</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa288c34c9bccb73ae73b653f3c769ade">HasContent</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#adfd1ce7bd20268240769f8a6a405a8ee">HasQualifiers</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#af206a6ae16faa9083b0c80b0becccde2">InsertNodeAtIndex</a>(const spINode &amp;node, sizet index)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html">AdobeXMPCore::IArrayNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a39f5d9b31976e7a243d11152cd57260b">InsertNodeAtPath</a>(const spINode &amp;node, const spcIPath &amp;path)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a5e6dd9a58a288f20fd0a667a30a2ae">InsertQualifier</a>(const spINode &amp;node)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a3289deed9715f661f5f588dc38642baa">IsArrayItem</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5075ad988ba61e055b6ee6bbeaf25e25">IsEmpty</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a0d545f6b4b2b9760b63c902317c43a94">IsQualifierNode</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a261e2f6af96b75015e5f8318f32be7f9">IsThreadSafe</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a313df9421df168266a32592732c25d9f">Iterator</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#afa9e587b9293ff99d9f8b38b0cc07cad">Iterator</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3a7dd5034acb7178341218ab2389bb45cf">kAFAll</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html">AdobeXMPCore::IArrayNode_v1</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3a76f68496b69df8d9ff018d0eb7cf214c">kAFAlternative</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html">AdobeXMPCore::IArrayNode_v1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3a9e94ffd1d41fc1770ea2430ddb6b0850">kAFNone</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html">AdobeXMPCore::IArrayNode_v1</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3ae739b09d3ac25faa60551f181c273163">kAFOrdered</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html">AdobeXMPCore::IArrayNode_v1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3afbd5e7a5cc72cd12eeec6e4ab370b29c">kAFUnordered</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html">AdobeXMPCore::IArrayNode_v1</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a68bac77fd8140a60490eb78f0b533e21">kNTAll</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a60c6b4c3dfc99d8584866f5f18ff2610">kNTArray</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913aae32cc414cc7adaf3b2a1c375f2cb3bb">kNTNone</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a97e0c4fb69029d0d152c068c10736234">kNTSimple</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a7542b80b3b688cd3d210d62d12dbe471">kNTStructure</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#af898813d17af58fb1a828d92a74d7dd3">QualifiersCount</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a9972ca54948952083a930166448c05c0">QualifiersIterator</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa168f37bc38763df55fb1022d55886bd">QualifiersIterator</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3">Release</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a435be63553b76b568fc8a6f980f4eac6">RemoveNodeAtIndex</a>(sizet index)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html">AdobeXMPCore::IArrayNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a1c713f2e29d6d0e9d4a1ee800a679f06">RemoveNodeAtPath</a>(const spcIPath &amp;path)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a87f03e9924418ae5f7b6fa63def6eee8">RemoveQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a484e351f788771cf4500bfe0a2b144ec">ReplaceNodeAtIndex</a>(const spINode &amp;node, sizet index)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html">AdobeXMPCore::IArrayNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a2c51c5296da4abb8fa5d5999f686602b">ReplaceNodeAtPath</a>(const spINode &amp;node, const spcIPath &amp;path)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a2692b8281984d9fe6de6c169332f2c">ReplaceQualifier</a>(const spINode &amp;node)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#afcb42109aed83c3b0c133bc413388037">AdobeXMPCommon::REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f">AdobeXMPCommon::IVersionable::REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a0f31eb9677c4af06288319e363c21ebc">AdobeXMPCommon::IThreadSafe::REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa087d2f94e42fdd5ece1bd22dfea66d5">SetName</a>(const char *name, sizet nameLength)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a55c6097b36412f9facc8a4cf7e898186">SetNameSpace</a>(const char *nameSpace, sizet nameSpaceLength)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#ae72a477964eaa0590d7ee415e044bc02">~IArrayNode_v1</a>() __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html">AdobeXMPCore::IArrayNode_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a51af220e29b40e8520ae5765f28515bf">~ICompositeNode_v1</a>() __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#affdbed044179bbde65ffc28b20e28ecb">~INode_v1</a>() __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31">~ISharedObject</a>() __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCore_1_1IArrayNode__v1.html b/docs/API/classAdobeXMPCore_1_1IArrayNode__v1.html
new file mode 100755
index 0000000..658f885
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1IArrayNode__v1.html
@@ -0,0 +1,1107 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>AdobeXMPCore::IArrayNode_v1 Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCore_1_1IArrayNode__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pub-types">Public Types</a> &#124;
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="classAdobeXMPCore_1_1IArrayNode__v1-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">AdobeXMPCore::IArrayNode_v1 Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Version1 of the interface that represents an Array Node of XMP DOM.
+ <a href="classAdobeXMPCore_1_1IArrayNode__v1.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="IArrayNode_8h_source.html">IArrayNode.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for AdobeXMPCore::IArrayNode_v1:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classAdobeXMPCore_1_1IArrayNode__v1.png" usemap="#AdobeXMPCore::IArrayNode_5Fv1_map" alt=""/>
+ <map id="AdobeXMPCore::IArrayNode_5Fv1_map" name="AdobeXMPCore::IArrayNode_v1_map">
+<area href="classAdobeXMPCore_1_1ICompositeNode__v1.html" title="Version1 of the interface that serves as a base interface to all composite types of nodes in the XMP ..." alt="AdobeXMPCore::ICompositeNode_v1" shape="rect" coords="233,112,456,136"/>
+<area href="classAdobeXMPCore_1_1INode__v1.html" title="Version1 of the interface that serves as a base interface to all types of nodes in the XMP DOM..." alt="AdobeXMPCore::INode_v1" shape="rect" coords="233,56,456,80"/>
+<area href="classAdobeXMPCommon_1_1ISharedObject.html" title="Interface that serves as the base interface of all the externally exposed interfaces. " alt="AdobeXMPCommon::ISharedObject" shape="rect" coords="0,0,223,24"/>
+<area href="classAdobeXMPCommon_1_1IVersionable.html" title="Interface that serves as the base interface for all the externally exposed interfaces which needs to ..." alt="AdobeXMPCommon::IVersionable" shape="rect" coords="233,0,456,24"/>
+<area href="classAdobeXMPCommon_1_1IThreadSafe.html" title="Interface that serves as the base interface for all the externally exposed interfaces which needs to ..." alt="AdobeXMPCommon::IThreadSafe" shape="rect" coords="466,0,689,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr class="memitem:a7b5b5daa606aeb28496f326ac705a9a3"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3">eArrayForm</a> { <br />
+&#160;&#160;<a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3a9e94ffd1d41fc1770ea2430ddb6b0850">kAFNone</a> = 0,
+<a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3afbd5e7a5cc72cd12eeec6e4ab370b29c">kAFUnordered</a> = 1 &lt;&lt; 0,
+<a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3ae739b09d3ac25faa60551f181c273163">kAFOrdered</a> = 1 &lt;&lt; 1,
+<a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3a76f68496b69df8d9ff018d0eb7cf214c">kAFAlternative</a> = 1 &lt;&lt; 2,
+<br />
+&#160;&#160;<a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3a7dd5034acb7178341218ab2389bb45cf">kAFAll</a> = kAllBits
+<br />
+ }<tr class="memdesc:a7b5b5daa606aeb28496f326ac705a9a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates different kinds of array forms possible in XMP i.e, unordered, ordered and alternative. <a href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:a7b5b5daa606aeb28496f326ac705a9a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_types_classAdobeXMPCore_1_1INode__v1"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classAdobeXMPCore_1_1INode__v1')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td></tr>
+<tr class="memitem:a46b01045c1addbc8f444bd21384b7913 inherit pub_types_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> { <br />
+&#160;&#160;<a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913aae32cc414cc7adaf3b2a1c375f2cb3bb">kNTNone</a> = 0,
+<a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a97e0c4fb69029d0d152c068c10736234">kNTSimple</a> = 1,
+<a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a60c6b4c3dfc99d8584866f5f18ff2610">kNTArray</a> = 1 &lt;&lt; 1,
+<a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a7542b80b3b688cd3d210d62d12dbe471">kNTStructure</a> = 1 &lt;&lt; 2,
+<br />
+&#160;&#160;<a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a68bac77fd8140a60490eb78f0b533e21">kNTAll</a> = kAllBits
+<br />
+ }<tr class="memdesc:a46b01045c1addbc8f444bd21384b7913"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates various types of node available in XMP Data Model like simple, array and structure. <a href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:a46b01045c1addbc8f444bd21384b7913 inherit pub_types_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:ae75dc043c5da4ab09b4700fcbfc065ec"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3">eArrayForm</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#ae75dc043c5da4ab09b4700fcbfc065ec">GetArrayForm</a> () const =0</td></tr>
+<tr class="memdesc:ae75dc043c5da4ab09b4700fcbfc065ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the type of array. <a href="#ae75dc043c5da4ab09b4700fcbfc065ec">More...</a><br /></td></tr>
+<tr class="separator:ae75dc043c5da4ab09b4700fcbfc065ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad3748958964789cb3d20d5776b1157b5"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#ad3748958964789cb3d20d5776b1157b5">GetChildNodeType</a> () const =0</td></tr>
+<tr class="memdesc:ad3748958964789cb3d20d5776b1157b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the type of child nodes. <a href="#ad3748958964789cb3d20d5776b1157b5">More...</a><br /></td></tr>
+<tr class="separator:ad3748958964789cb3d20d5776b1157b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af206a6ae16faa9083b0c80b0becccde2"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#af206a6ae16faa9083b0c80b0becccde2">InsertNodeAtIndex</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;node, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> index)=0</td></tr>
+<tr class="memdesc:af206a6ae16faa9083b0c80b0becccde2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inserts a given node at the specified index. <a href="#af206a6ae16faa9083b0c80b0becccde2">More...</a><br /></td></tr>
+<tr class="separator:af206a6ae16faa9083b0c80b0becccde2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a484e351f788771cf4500bfe0a2b144ec"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a484e351f788771cf4500bfe0a2b144ec">ReplaceNodeAtIndex</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;node, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> index)=0</td></tr>
+<tr class="memdesc:a484e351f788771cf4500bfe0a2b144ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replaces an existing node with the given node at the specified index. <a href="#a484e351f788771cf4500bfe0a2b144ec">More...</a><br /></td></tr>
+<tr class="separator:a484e351f788771cf4500bfe0a2b144ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a435be63553b76b568fc8a6f980f4eac6"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a435be63553b76b568fc8a6f980f4eac6">RemoveNodeAtIndex</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> index)=0</td></tr>
+<tr class="memdesc:a435be63553b76b568fc8a6f980f4eac6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove the node at the specified index. <a href="#a435be63553b76b568fc8a6f980f4eac6">More...</a><br /></td></tr>
+<tr class="separator:a435be63553b76b568fc8a6f980f4eac6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
+<tr class="memitem:a7c2e3c217f7e1bb28504c40da474f01e"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7c2e3c217f7e1bb28504c40da474f01e">GetNodeAtIndex</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> index)=0</td></tr>
+<tr class="memdesc:a7c2e3c217f7e1bb28504c40da474f01e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the node at the specified index. <a href="#a7c2e3c217f7e1bb28504c40da474f01e">More...</a><br /></td></tr>
+<tr class="separator:a7c2e3c217f7e1bb28504c40da474f01e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae3bf9368ff5fa36665e21911bbab98b5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">spcINode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#ae3bf9368ff5fa36665e21911bbab98b5">GetNodeAtIndex</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> index) const </td></tr>
+<tr class="separator:ae3bf9368ff5fa36665e21911bbab98b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
+<tr class="memitem:ab6cffa23c82a1dee98d634e8b4081510"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#ab6cffa23c82a1dee98d634e8b4081510">GetSimpleNodeAtIndex</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> index) const </td></tr>
+<tr class="memdesc:ab6cffa23c82a1dee98d634e8b4081510"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the node at the specified index as simple node, if possible. <a href="#ab6cffa23c82a1dee98d634e8b4081510">More...</a><br /></td></tr>
+<tr class="separator:ab6cffa23c82a1dee98d634e8b4081510"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a37ba080075f5158ffdffbb36437e2622"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a37ba080075f5158ffdffbb36437e2622">GetSimpleNodeAtIndex</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> index)</td></tr>
+<tr class="separator:a37ba080075f5158ffdffbb36437e2622"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
+<tr class="memitem:aabcee273a5efdaf57975f52f11ba8e85"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#aabcee273a5efdaf57975f52f11ba8e85">GetStructureNodeAtIndex</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> index) const </td></tr>
+<tr class="memdesc:aabcee273a5efdaf57975f52f11ba8e85"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the node at the specified index as structure node, if possible. <a href="#aabcee273a5efdaf57975f52f11ba8e85">More...</a><br /></td></tr>
+<tr class="separator:aabcee273a5efdaf57975f52f11ba8e85"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaf0ef3b97a41d1035f789dc3ab127bae"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#aaf0ef3b97a41d1035f789dc3ab127bae">GetStructureNodeAtIndex</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> index)</td></tr>
+<tr class="separator:aaf0ef3b97a41d1035f789dc3ab127bae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
+<tr class="memitem:a57011f7b4cf194ef1a2e52011671b862"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a57011f7b4cf194ef1a2e52011671b862">GetArrayNodeAtIndex</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> index) const </td></tr>
+<tr class="memdesc:a57011f7b4cf194ef1a2e52011671b862"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the node at the specified index as an array node, if possible. <a href="#a57011f7b4cf194ef1a2e52011671b862">More...</a><br /></td></tr>
+<tr class="separator:a57011f7b4cf194ef1a2e52011671b862"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac16b0614e51f8323585d653c0d36faf2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#ac16b0614e51f8323585d653c0d36faf2">GetArrayNodeAtIndex</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> index)</td></tr>
+<tr class="separator:ac16b0614e51f8323585d653c0d36faf2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td></tr>
+<tr class="memitem:ac5e3227436e3ee11d0df7f3a176402e0 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#ac5e3227436e3ee11d0df7f3a176402e0">GetNodeTypeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path) const =0</td></tr>
+<tr class="memdesc:ac5e3227436e3ee11d0df7f3a176402e0 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the node type specified by the path relative to the composite node. <a href="#ac5e3227436e3ee11d0df7f3a176402e0">More...</a><br /></td></tr>
+<tr class="separator:ac5e3227436e3ee11d0df7f3a176402e0 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6795e662d9daea5b88de08261488964b inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a6795e662d9daea5b88de08261488964b">AppendNode</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;node)=0</td></tr>
+<tr class="memdesc:a6795e662d9daea5b88de08261488964b inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends a given node as the child of the node. <a href="#a6795e662d9daea5b88de08261488964b">More...</a><br /></td></tr>
+<tr class="separator:a6795e662d9daea5b88de08261488964b inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a39f5d9b31976e7a243d11152cd57260b inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a39f5d9b31976e7a243d11152cd57260b">InsertNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;node, const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path)=0</td></tr>
+<tr class="memdesc:a39f5d9b31976e7a243d11152cd57260b inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inserts a given node at the path relative to the composite node. <a href="#a39f5d9b31976e7a243d11152cd57260b">More...</a><br /></td></tr>
+<tr class="separator:a39f5d9b31976e7a243d11152cd57260b inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2c51c5296da4abb8fa5d5999f686602b inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a2c51c5296da4abb8fa5d5999f686602b">ReplaceNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;node, const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path)=0</td></tr>
+<tr class="memdesc:a2c51c5296da4abb8fa5d5999f686602b inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replaces an existing node with the given node at the path relative to the composite node.. <a href="#a2c51c5296da4abb8fa5d5999f686602b">More...</a><br /></td></tr>
+<tr class="separator:a2c51c5296da4abb8fa5d5999f686602b inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1c713f2e29d6d0e9d4a1ee800a679f06 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a1c713f2e29d6d0e9d4a1ee800a679f06">RemoveNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path)=0</td></tr>
+<tr class="memdesc:a1c713f2e29d6d0e9d4a1ee800a679f06 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes the node specified by the path relative to the composite node. <a href="#a1c713f2e29d6d0e9d4a1ee800a679f06">More...</a><br /></td></tr>
+<tr class="separator:a1c713f2e29d6d0e9d4a1ee800a679f06 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abf3323ce933f5336bc0f64955c0bdd11 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#abf3323ce933f5336bc0f64955c0bdd11">ChildCount</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:abf3323ce933f5336bc0f64955c0bdd11 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the count of child nodes of the composite node. <a href="#abf3323ce933f5336bc0f64955c0bdd11">More...</a><br /></td></tr>
+<tr class="separator:abf3323ce933f5336bc0f64955c0bdd11 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5c4cddddb0702e61d85cff16c5e72632 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">spcINode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a5c4cddddb0702e61d85cff16c5e72632">GetNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path) const </td></tr>
+<tr class="memdesc:a5c4cddddb0702e61d85cff16c5e72632 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the node specified by the path relative to the composite node. <a href="#a5c4cddddb0702e61d85cff16c5e72632">More...</a><br /></td></tr>
+<tr class="separator:a5c4cddddb0702e61d85cff16c5e72632 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0dd2a64d53b361b96bdfb597c5e35579 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a0dd2a64d53b361b96bdfb597c5e35579">GetNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path)=0</td></tr>
+<tr class="separator:a0dd2a64d53b361b96bdfb597c5e35579 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a313df9421df168266a32592732c25d9f inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a5386a735d9eb66d5859e4657dfeebb7c">spINodeIterator</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a313df9421df168266a32592732c25d9f">Iterator</a> ()=0</td></tr>
+<tr class="memdesc:a313df9421df168266a32592732c25d9f inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get an iterator object to iterate over all the child nodes of the composite node. <a href="#a313df9421df168266a32592732c25d9f">More...</a><br /></td></tr>
+<tr class="separator:a313df9421df168266a32592732c25d9f inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afa9e587b9293ff99d9f8b38b0cc07cad inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab423c366f29043e79694f805bceddb56">spcINodeIterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#afa9e587b9293ff99d9f8b38b0cc07cad">Iterator</a> () const </td></tr>
+<tr class="separator:afa9e587b9293ff99d9f8b38b0cc07cad inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a93d1009b739d8a6c40ebbf4aa75051af inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a93d1009b739d8a6c40ebbf4aa75051af">GetSimpleNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path) const </td></tr>
+<tr class="memdesc:a93d1009b739d8a6c40ebbf4aa75051af inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a simple node specified by the path relative to the node. <a href="#a93d1009b739d8a6c40ebbf4aa75051af">More...</a><br /></td></tr>
+<tr class="separator:a93d1009b739d8a6c40ebbf4aa75051af inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a42c91ca3eeded6302163a96903927445 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a42c91ca3eeded6302163a96903927445">GetSimpleNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path)</td></tr>
+<tr class="separator:a42c91ca3eeded6302163a96903927445 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad6ca35dc12323a3a970066beb4c63e84 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#ad6ca35dc12323a3a970066beb4c63e84">GetStructureNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path) const </td></tr>
+<tr class="memdesc:ad6ca35dc12323a3a970066beb4c63e84 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a structure node specified by the path relative to the node. <a href="#ad6ca35dc12323a3a970066beb4c63e84">More...</a><br /></td></tr>
+<tr class="separator:ad6ca35dc12323a3a970066beb4c63e84 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2abb6cdf40e6d4c91e30b736586e89dc inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a2abb6cdf40e6d4c91e30b736586e89dc">GetStructureNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path)</td></tr>
+<tr class="separator:a2abb6cdf40e6d4c91e30b736586e89dc inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2e17bda06b20439a0076ea2fae68594d inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a2e17bda06b20439a0076ea2fae68594d">GetArrayNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path) const </td></tr>
+<tr class="memdesc:a2e17bda06b20439a0076ea2fae68594d inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get an array node specified by the path relative to the node. <a href="#a2e17bda06b20439a0076ea2fae68594d">More...</a><br /></td></tr>
+<tr class="separator:a2e17bda06b20439a0076ea2fae68594d inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aba3fc78fab746460b1e7e01fe2e004b6 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#aba3fc78fab746460b1e7e01fe2e004b6">GetArrayNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path)</td></tr>
+<tr class="separator:aba3fc78fab746460b1e7e01fe2e004b6 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCore_1_1INode__v1"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCore_1_1INode__v1')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td></tr>
+<tr class="memitem:a6d9067d66571727b622ffccade5225f0 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a6d9067d66571727b622ffccade5225f0">GetNodeType</a> () const =0</td></tr>
+<tr class="memdesc:a6d9067d66571727b622ffccade5225f0 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the node type of the node. <a href="#a6d9067d66571727b622ffccade5225f0">More...</a><br /></td></tr>
+<tr class="separator:a6d9067d66571727b622ffccade5225f0 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a47da5e5605d69d6d6ced761e7c39d24f inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a47da5e5605d69d6d6ced761e7c39d24f">GetParentNodeType</a> () const =0</td></tr>
+<tr class="memdesc:a47da5e5605d69d6d6ced761e7c39d24f inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the node type of the node's parent. <a href="#a47da5e5605d69d6d6ced761e7c39d24f">More...</a><br /></td></tr>
+<tr class="separator:a47da5e5605d69d6d6ced761e7c39d24f inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa087d2f94e42fdd5ece1bd22dfea66d5 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa087d2f94e42fdd5ece1bd22dfea66d5">SetName</a> (const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)=0</td></tr>
+<tr class="memdesc:aa087d2f94e42fdd5ece1bd22dfea66d5 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the local name of the node. <a href="#aa087d2f94e42fdd5ece1bd22dfea66d5">More...</a><br /></td></tr>
+<tr class="separator:aa087d2f94e42fdd5ece1bd22dfea66d5 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a68350da5edc0668811b9bb890d5777b9 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a68350da5edc0668811b9bb890d5777b9">GetName</a> () const =0</td></tr>
+<tr class="memdesc:a68350da5edc0668811b9bb890d5777b9 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the local name of the node. <a href="#a68350da5edc0668811b9bb890d5777b9">More...</a><br /></td></tr>
+<tr class="separator:a68350da5edc0668811b9bb890d5777b9 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a55c6097b36412f9facc8a4cf7e898186 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a55c6097b36412f9facc8a4cf7e898186">SetNameSpace</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength)=0</td></tr>
+<tr class="memdesc:a55c6097b36412f9facc8a4cf7e898186 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the name space of the node. <a href="#a55c6097b36412f9facc8a4cf7e898186">More...</a><br /></td></tr>
+<tr class="separator:a55c6097b36412f9facc8a4cf7e898186 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2e8319347c3b01638027b4abbe72fda6 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2e8319347c3b01638027b4abbe72fda6">GetNameSpace</a> () const =0</td></tr>
+<tr class="memdesc:a2e8319347c3b01638027b4abbe72fda6 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the name space of the node. <a href="#a2e8319347c3b01638027b4abbe72fda6">More...</a><br /></td></tr>
+<tr class="separator:a2e8319347c3b01638027b4abbe72fda6 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a549f1adeea470827a6201b3b4c596f1e inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aa54f5ed241da9437ad01c1047a199f56">spIPath</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a549f1adeea470827a6201b3b4c596f1e">GetPath</a> () const =0</td></tr>
+<tr class="memdesc:a549f1adeea470827a6201b3b4c596f1e inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the path of the node from the root of the metadata. <a href="#a549f1adeea470827a6201b3b4c596f1e">More...</a><br /></td></tr>
+<tr class="separator:a549f1adeea470827a6201b3b4c596f1e inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af898813d17af58fb1a828d92a74d7dd3 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#af898813d17af58fb1a828d92a74d7dd3">QualifiersCount</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:af898813d17af58fb1a828d92a74d7dd3 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the count of the qualifiers attached with the node. <a href="#af898813d17af58fb1a828d92a74d7dd3">More...</a><br /></td></tr>
+<tr class="separator:af898813d17af58fb1a828d92a74d7dd3 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2866bcde949c37aeb72cdba8dddcac95 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2866bcde949c37aeb72cdba8dddcac95">GetQualifierNodeType</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const =0</td></tr>
+<tr class="memdesc:a2866bcde949c37aeb72cdba8dddcac95 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the type of the node's qualifier having specified namespace and name. <a href="#a2866bcde949c37aeb72cdba8dddcac95">More...</a><br /></td></tr>
+<tr class="separator:a2866bcde949c37aeb72cdba8dddcac95 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a5e6dd9a58a288f20fd0a667a30a2ae inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a5e6dd9a58a288f20fd0a667a30a2ae">InsertQualifier</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;node)=0</td></tr>
+<tr class="memdesc:a5a5e6dd9a58a288f20fd0a667a30a2ae inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inserts a given qualifier node. <a href="#a5a5e6dd9a58a288f20fd0a667a30a2ae">More...</a><br /></td></tr>
+<tr class="separator:a5a5e6dd9a58a288f20fd0a667a30a2ae inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a2692b8281984d9fe6de6c169332f2c inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a2692b8281984d9fe6de6c169332f2c">ReplaceQualifier</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;node)=0</td></tr>
+<tr class="memdesc:a5a2692b8281984d9fe6de6c169332f2c inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replaces a given qualifier node. <a href="#a5a2692b8281984d9fe6de6c169332f2c">More...</a><br /></td></tr>
+<tr class="separator:a5a2692b8281984d9fe6de6c169332f2c inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a87f03e9924418ae5f7b6fa63def6eee8 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a87f03e9924418ae5f7b6fa63def6eee8">RemoveQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)=0</td></tr>
+<tr class="memdesc:a87f03e9924418ae5f7b6fa63def6eee8 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes the qualifier node with the specified nameSpace and name. <a href="#a87f03e9924418ae5f7b6fa63def6eee8">More...</a><br /></td></tr>
+<tr class="separator:a87f03e9924418ae5f7b6fa63def6eee8 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3289deed9715f661f5f588dc38642baa inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a3289deed9715f661f5f588dc38642baa">IsArrayItem</a> () const =0</td></tr>
+<tr class="memdesc:a3289deed9715f661f5f588dc38642baa inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates whether the node is a direct child of an array node. <a href="#a3289deed9715f661f5f588dc38642baa">More...</a><br /></td></tr>
+<tr class="separator:a3289deed9715f661f5f588dc38642baa inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0d545f6b4b2b9760b63c902317c43a94 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a0d545f6b4b2b9760b63c902317c43a94">IsQualifierNode</a> () const =0</td></tr>
+<tr class="memdesc:a0d545f6b4b2b9760b63c902317c43a94 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates whether the node is a qualifier node. <a href="#a0d545f6b4b2b9760b63c902317c43a94">More...</a><br /></td></tr>
+<tr class="separator:a0d545f6b4b2b9760b63c902317c43a94 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2447e6ea34adbe073a639c703015db90 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2447e6ea34adbe073a639c703015db90">GetIndex</a> () const =0</td></tr>
+<tr class="memdesc:a2447e6ea34adbe073a639c703015db90 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the index of the node in case it is an array item. <a href="#a2447e6ea34adbe073a639c703015db90">More...</a><br /></td></tr>
+<tr class="separator:a2447e6ea34adbe073a639c703015db90 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adfd1ce7bd20268240769f8a6a405a8ee inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#adfd1ce7bd20268240769f8a6a405a8ee">HasQualifiers</a> () const =0</td></tr>
+<tr class="memdesc:adfd1ce7bd20268240769f8a6a405a8ee inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates whether the node has any qualifiers associated with it. <a href="#adfd1ce7bd20268240769f8a6a405a8ee">More...</a><br /></td></tr>
+<tr class="separator:adfd1ce7bd20268240769f8a6a405a8ee inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa288c34c9bccb73ae73b653f3c769ade inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa288c34c9bccb73ae73b653f3c769ade">HasContent</a> () const =0</td></tr>
+<tr class="memdesc:aa288c34c9bccb73ae73b653f3c769ade inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether the node has any content or not. return A bool value indicating the presence of contents in the node apart from qualifiers. <a href="#aa288c34c9bccb73ae73b653f3c769ade">More...</a><br /></td></tr>
+<tr class="separator:aa288c34c9bccb73ae73b653f3c769ade inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5075ad988ba61e055b6ee6bbeaf25e25 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5075ad988ba61e055b6ee6bbeaf25e25">IsEmpty</a> () const =0</td></tr>
+<tr class="memdesc:a5075ad988ba61e055b6ee6bbeaf25e25 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether the node is empty. return A bool value indicating whether the contents and qualifiers of a node are empty. <a href="#a5075ad988ba61e055b6ee6bbeaf25e25">More...</a><br /></td></tr>
+<tr class="separator:a5075ad988ba61e055b6ee6bbeaf25e25 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab78ba3aaadf4b0109e610505e753de50 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ab78ba3aaadf4b0109e610505e753de50">HasChanged</a> () const =0</td></tr>
+<tr class="memdesc:ab78ba3aaadf4b0109e610505e753de50 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the status about any change done to the node or its children or qualifiers. returns a bool value indicating whether some changes have been performed on the node or its children or qualifiers. for a simple node, true will be returned in scenarios like when the node's value or qualifiers are modified. for an array node or a structure node, true will be returned in scenarios like when the node's children or the node's qualifiers are modified. <a href="#ab78ba3aaadf4b0109e610505e753de50">More...</a><br /></td></tr>
+<tr class="separator:ab78ba3aaadf4b0109e610505e753de50 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a673b6b4d69b2c9d85f2fa440d413ace3 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a673b6b4d69b2c9d85f2fa440d413ace3">AcknowledgeChanges</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a673b6b4d69b2c9d85f2fa440d413ace3 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Acknowledges that changes for the node and its children and qualifiers have been taken care of. for a simple node, changes that will be acknowledged in scenarios like when the node's value or node's qualifiers were modified. for an array node or a structure node, changes will be acknowledged in scenarios like when the node's children were or the node's qualifiers were modified. <a href="#a673b6b4d69b2c9d85f2fa440d413ace3">More...</a><br /></td></tr>
+<tr class="separator:a673b6b4d69b2c9d85f2fa440d413ace3 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4b615b0eef081f3c23385f28728aa462 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4b615b0eef081f3c23385f28728aa462">Clear</a> (bool contents=true, bool qualifiers=true)=0</td></tr>
+<tr class="memdesc:a4b615b0eef081f3c23385f28728aa462 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the contents of the node. <a href="#a4b615b0eef081f3c23385f28728aa462">More...</a><br /></td></tr>
+<tr class="separator:a4b615b0eef081f3c23385f28728aa462 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2d613694adcedb569145aff06d0bc595 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2d613694adcedb569145aff06d0bc595">Clone</a> (bool ignoreEmptyNodes=false, bool ignoreNodesWithOnlyQualifiers=false) const =0</td></tr>
+<tr class="memdesc:a2d613694adcedb569145aff06d0bc595 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual copy constructor. <a href="#a2d613694adcedb569145aff06d0bc595">More...</a><br /></td></tr>
+<tr class="separator:a2d613694adcedb569145aff06d0bc595 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aee7e1f35ac174874234ba5e913a6bfaa inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">spcINode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aee7e1f35ac174874234ba5e913a6bfaa">GetParent</a> () const </td></tr>
+<tr class="memdesc:aee7e1f35ac174874234ba5e913a6bfaa inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the parent node of the node. <a href="#aee7e1f35ac174874234ba5e913a6bfaa">More...</a><br /></td></tr>
+<tr class="separator:aee7e1f35ac174874234ba5e913a6bfaa inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4533c1d11fc2d32c166c9ce05fe01b3c inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4533c1d11fc2d32c166c9ce05fe01b3c">GetParent</a> ()=0</td></tr>
+<tr class="separator:a4533c1d11fc2d32c166c9ce05fe01b3c inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9972ca54948952083a930166448c05c0 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab423c366f29043e79694f805bceddb56">spcINodeIterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a9972ca54948952083a930166448c05c0">QualifiersIterator</a> () const </td></tr>
+<tr class="separator:a9972ca54948952083a930166448c05c0 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa168f37bc38763df55fb1022d55886bd inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a5386a735d9eb66d5859e4657dfeebb7c">spINodeIterator</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa168f37bc38763df55fb1022d55886bd">QualifiersIterator</a> ()=0</td></tr>
+<tr class="separator:aa168f37bc38763df55fb1022d55886bd inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a96a99fa56a2b088691ecad5a0cf6e54d inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">spcINode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a96a99fa56a2b088691ecad5a0cf6e54d">GetQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const </td></tr>
+<tr class="memdesc:a96a99fa56a2b088691ecad5a0cf6e54d inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the qualifier of the node having specified namespace and name. <a href="#a96a99fa56a2b088691ecad5a0cf6e54d">More...</a><br /></td></tr>
+<tr class="separator:a96a99fa56a2b088691ecad5a0cf6e54d inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7701069162b4f677026624a5f2b3f788 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a7701069162b4f677026624a5f2b3f788">GetQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)=0</td></tr>
+<tr class="separator:a7701069162b4f677026624a5f2b3f788 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1524d74e397863cb9324838862f70d7b inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a1524d74e397863cb9324838862f70d7b">GetSimpleQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const </td></tr>
+<tr class="memdesc:a1524d74e397863cb9324838862f70d7b inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the node's qualifier having specified name space and name as simple node. <a href="#a1524d74e397863cb9324838862f70d7b">More...</a><br /></td></tr>
+<tr class="separator:a1524d74e397863cb9324838862f70d7b inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2831fe03981afd9af12e775bda89361e inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2831fe03981afd9af12e775bda89361e">GetSimpleQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)</td></tr>
+<tr class="separator:a2831fe03981afd9af12e775bda89361e inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a844a40cd69e0d87226ce1146d733edd6 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a844a40cd69e0d87226ce1146d733edd6">GetStructureQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const </td></tr>
+<tr class="memdesc:a844a40cd69e0d87226ce1146d733edd6 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the node's qualifier having specified name space and name as structure node. <a href="#a844a40cd69e0d87226ce1146d733edd6">More...</a><br /></td></tr>
+<tr class="separator:a844a40cd69e0d87226ce1146d733edd6 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4fb3c837b8c28501b2e7a3376a2cf382 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4fb3c837b8c28501b2e7a3376a2cf382">GetStructureQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)</td></tr>
+<tr class="separator:a4fb3c837b8c28501b2e7a3376a2cf382 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab55c9dad49840d58a1c2c16b9f1962ad inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ab55c9dad49840d58a1c2c16b9f1962ad">GetArrayQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const </td></tr>
+<tr class="memdesc:ab55c9dad49840d58a1c2c16b9f1962ad inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the node's qualifier having specified name space and name as an array node. <a href="#ab55c9dad49840d58a1c2c16b9f1962ad">More...</a><br /></td></tr>
+<tr class="separator:ab55c9dad49840d58a1c2c16b9f1962ad inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a2e68d1345ed6ca2e5d1bfada42b13f inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a2e68d1345ed6ca2e5d1bfada42b13f">GetArrayQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)</td></tr>
+<tr class="separator:a5a2e68d1345ed6ca2e5d1bfada42b13f inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeb9797165d96d06998de79dd19a9f846 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aeb9797165d96d06998de79dd19a9f846">ConvertToSimpleNode</a> () const </td></tr>
+<tr class="memdesc:aeb9797165d96d06998de79dd19a9f846 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts Node to a simple node, if possible. <a href="#aeb9797165d96d06998de79dd19a9f846">More...</a><br /></td></tr>
+<tr class="separator:aeb9797165d96d06998de79dd19a9f846 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad8e7ef140cb5ff094789abfcc879c94b inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ad8e7ef140cb5ff094789abfcc879c94b">ConvertToSimpleNode</a> ()=0</td></tr>
+<tr class="separator:ad8e7ef140cb5ff094789abfcc879c94b inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5ea317fcd59694184089a9774c866b22 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5ea317fcd59694184089a9774c866b22">ConvertToStructureNode</a> () const </td></tr>
+<tr class="memdesc:a5ea317fcd59694184089a9774c866b22 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts Node to a structure node type, if possible. <a href="#a5ea317fcd59694184089a9774c866b22">More...</a><br /></td></tr>
+<tr class="separator:a5ea317fcd59694184089a9774c866b22 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad5f62a4ae9a9630c8106a04bd0c2a0a3 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ad5f62a4ae9a9630c8106a04bd0c2a0a3">ConvertToStructureNode</a> ()=0</td></tr>
+<tr class="separator:ad5f62a4ae9a9630c8106a04bd0c2a0a3 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af180be62ecd26edf90df0fe3ea75941e inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#af180be62ecd26edf90df0fe3ea75941e">ConvertToArrayNode</a> () const </td></tr>
+<tr class="memdesc:af180be62ecd26edf90df0fe3ea75941e inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts Node to an array node type, if possible. <a href="#af180be62ecd26edf90df0fe3ea75941e">More...</a><br /></td></tr>
+<tr class="separator:af180be62ecd26edf90df0fe3ea75941e inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0d67ad7708fb6f007ea1152b79e65f49 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a0d67ad7708fb6f007ea1152b79e65f49">ConvertToArrayNode</a> ()=0</td></tr>
+<tr class="separator:a0d67ad7708fb6f007ea1152b79e65f49 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a08f9ed4dee6c899f65eb51e3d7f9858d inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a1e81ce748e90e850d0a48b0b5943fce2">spcIMetadata</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a08f9ed4dee6c899f65eb51e3d7f9858d">ConvertToMetadata</a> () const </td></tr>
+<tr class="memdesc:a08f9ed4dee6c899f65eb51e3d7f9858d inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts Node to a metadata node type, if possible. <a href="#a08f9ed4dee6c899f65eb51e3d7f9858d">More...</a><br /></td></tr>
+<tr class="separator:a08f9ed4dee6c899f65eb51e3d7f9858d inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a72dc534e1af718599ac185563a02612a inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a7f1de39fd79aeac4402eba73cb1ffe82">spIMetadata</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a72dc534e1af718599ac185563a02612a">ConvertToMetadata</a> ()=0</td></tr>
+<tr class="separator:a72dc534e1af718599ac185563a02612a inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1ISharedObject')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td></tr>
+<tr class="memitem:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc">Acquire</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the clients of the object to indicate that he has acquired the shared ownership of the object. <a href="#ab90d4ec1fcd975a7ac62dcb866335cdc">More...</a><br /></td></tr>
+<tr class="separator:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3">Release</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the clients of the object to indicate he has released his shared ownership of the object. If this being the last client than this function should call Destroy to delete and release the memory. <a href="#abf5a54e09f87366170ea19c618f68bc3">More...</a><br /></td></tr>
+<tr class="separator:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
+<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
+<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a> ()</td></tr>
+<tr class="memdesc:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to an interface object implementing the requested version. <a href="#ad6539461695decfaea8a44798db51e54">More...</a><br /></td></tr>
+<tr class="separator:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
+<tr class="memitem:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> const requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070">GetInterfacePointer</a> () const </td></tr>
+<tr class="memdesc:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to a const interface object implementing the requested version. <a href="#ab93a940e2946c14a76ebbd9552cab070">More...</a><br /></td></tr>
+<tr class="separator:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1IThreadSafe')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td></tr>
+<tr class="memitem:afe35614cb88e2bdb32996cf4ac15b211 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#afe35614cb88e2bdb32996cf4ac15b211">EnableThreadSafety</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:afe35614cb88e2bdb32996cf4ac15b211 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables the thread safety on an object. <a href="#afe35614cb88e2bdb32996cf4ac15b211">More...</a><br /></td></tr>
+<tr class="separator:afe35614cb88e2bdb32996cf4ac15b211 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a214bb1b5840dbd5576e764dd2220b261 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a214bb1b5840dbd5576e764dd2220b261">DisableThreadSafety</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a214bb1b5840dbd5576e764dd2220b261 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disables the thread safety on an object. <a href="#a214bb1b5840dbd5576e764dd2220b261">More...</a><br /></td></tr>
+<tr class="separator:a214bb1b5840dbd5576e764dd2220b261 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a261e2f6af96b75015e5f8318f32be7f9 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a261e2f6af96b75015e5f8318f32be7f9">IsThreadSafe</a> () const =0</td></tr>
+<tr class="memdesc:a261e2f6af96b75015e5f8318f32be7f9 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Informs whether object can be used across multiple threads or not. <a href="#a261e2f6af96b75015e5f8318f32be7f9">More...</a><br /></td></tr>
+<tr class="separator:a261e2f6af96b75015e5f8318f32be7f9 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr class="memitem:a9b89618c3115efc948bd7fb49dfc570c"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a9b89618c3115efc948bd7fb49dfc570c">CreateUnorderedArrayNode</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)</td></tr>
+<tr class="memdesc:a9b89618c3115efc948bd7fb49dfc570c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an unordered array node which is not part of any metadata document. <a href="#a9b89618c3115efc948bd7fb49dfc570c">More...</a><br /></td></tr>
+<tr class="separator:a9b89618c3115efc948bd7fb49dfc570c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6e9068b8048a29804fb9d567c6cc8952"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a6e9068b8048a29804fb9d567c6cc8952">CreateOrderedArrayNode</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)</td></tr>
+<tr class="memdesc:a6e9068b8048a29804fb9d567c6cc8952"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an ordered array node which is not part of any metadata document. <a href="#a6e9068b8048a29804fb9d567c6cc8952">More...</a><br /></td></tr>
+<tr class="separator:a6e9068b8048a29804fb9d567c6cc8952"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afcb8012075f5c956139bff39f41bae47"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#afcb8012075f5c956139bff39f41bae47">CreateAlternativeArrayNode</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)</td></tr>
+<tr class="memdesc:afcb8012075f5c956139bff39f41bae47"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an alternative array node which is not part of any metadata document. <a href="#afcb8012075f5c956139bff39f41bae47">More...</a><br /></td></tr>
+<tr class="separator:afcb8012075f5c956139bff39f41bae47"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:ae72a477964eaa0590d7ee415e044bc02"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#ae72a477964eaa0590d7ee415e044bc02">~IArrayNode_v1</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:ae72a477964eaa0590d7ee415e044bc02"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCore_1_1ICompositeNode__v1')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td></tr>
+<tr class="memitem:a51af220e29b40e8520ae5765f28515bf inherit pro_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a51af220e29b40e8520ae5765f28515bf">~ICompositeNode_v1</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:a51af220e29b40e8520ae5765f28515bf inherit pro_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCore_1_1INode__v1"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCore_1_1INode__v1')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td></tr>
+<tr class="memitem:affdbed044179bbde65ffc28b20e28ecb inherit pro_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#affdbed044179bbde65ffc28b20e28ecb">~INode_v1</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:affdbed044179bbde65ffc28b20e28ecb inherit pro_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1ISharedObject')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td></tr>
+<tr class="memitem:a5869ff89d0b7dd0a7b525401a1d57b31 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31">~ISharedObject</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="separator:a5869ff89d0b7dd0a7b525401a1d57b31 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afcb42109aed83c3b0c133bc413388037 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#afcb42109aed83c3b0c133bc413388037">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:afcb42109aed83c3b0c133bc413388037 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
+<tr class="memitem:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a> ()</td></tr>
+<tr class="separator:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1IThreadSafe"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1IThreadSafe')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td></tr>
+<tr class="memitem:a0f31eb9677c4af06288319e363c21ebc inherit pro_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a0f31eb9677c4af06288319e363c21ebc">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:a0f31eb9677c4af06288319e363c21ebc inherit pro_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Version1 of the interface that represents an Array Node of XMP DOM. </p>
+<p>Provides all the functions to get and set various properties of the array node. </p><dl class="section attention"><dt>Attention</dt><dd>Support multi threading through locks but can be enabled/disabled by the client. By default every object created does not support multi-threading. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>The index of the array is 1-based. </dd></dl>
+
+<p>Definition at line <a class="el" href="IArrayNode_8h_source.html#l00025">25</a> of file <a class="el" href="IArrayNode_8h_source.html">IArrayNode.h</a>.</p>
+</div><h2 class="groupheader">Member Enumeration Documentation</h2>
+<a class="anchor" id="a7b5b5daa606aeb28496f326ac705a9a3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3">AdobeXMPCore::IArrayNode_v1::eArrayForm</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Indicates different kinds of array forms possible in XMP i.e, unordered, ordered and alternative. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a7b5b5daa606aeb28496f326ac705a9a3a9e94ffd1d41fc1770ea2430ddb6b0850"></a>kAFNone&#160;</td><td class="fielddoc">
+<p>unknown array form, should be used as invalid value. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a7b5b5daa606aeb28496f326ac705a9a3afbd5e7a5cc72cd12eeec6e4ab370b29c"></a>kAFUnordered&#160;</td><td class="fielddoc">
+<p>Array contains entries which are unordered. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a7b5b5daa606aeb28496f326ac705a9a3ae739b09d3ac25faa60551f181c273163"></a>kAFOrdered&#160;</td><td class="fielddoc">
+<p>Array contains entries which are ordered. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a7b5b5daa606aeb28496f326ac705a9a3a76f68496b69df8d9ff018d0eb7cf214c"></a>kAFAlternative&#160;</td><td class="fielddoc">
+<p>Array contains entries which are ordered plus default value should be the top one. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a7b5b5daa606aeb28496f326ac705a9a3a7dd5034acb7178341218ab2389bb45cf"></a>kAFAll&#160;</td><td class="fielddoc">
+<p>Maximum value this enum can hold, should be treated as invalid value. </p>
+</td></tr>
+</table>
+
+<p>Definition at line <a class="el" href="IArrayNode_8h_source.html#l00033">33</a> of file <a class="el" href="IArrayNode_8h_source.html">IArrayNode.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; {</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <a class="code" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3a9e94ffd1d41fc1770ea2430ddb6b0850">kAFNone</a> = 0,</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <a class="code" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3afbd5e7a5cc72cd12eeec6e4ab370b29c">kAFUnordered</a> = 1 &lt;&lt; 0,</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="code" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3ae739b09d3ac25faa60551f181c273163">kAFOrdered</a> = 1 &lt;&lt; 1,</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <a class="code" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3a76f68496b69df8d9ff018d0eb7cf214c">kAFAlternative</a> = 1 &lt;&lt; 2,</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <a class="code" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3a7dd5034acb7178341218ab2389bb45cf">kAFAll</a> = <a class="code" href="namespaceAdobeXMPCommon.html#a3e31c8b25cbf95c42b8e439071bdf865">kAllBits</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; } <a class="code" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3">eArrayForm</a>;</div><div class="ttc" id="classAdobeXMPCore_1_1IArrayNode__v1_html_a7b5b5daa606aeb28496f326ac705a9a3"><div class="ttname"><a href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3">AdobeXMPCore::IArrayNode_v1::eArrayForm</a></div><div class="ttdeci">eArrayForm</div><div class="ttdoc">Indicates different kinds of array forms possible in XMP i.e, unordered, ordered and alternative...</div><div class="ttdef"><b>Definition:</b> <a href="IArrayNode_8h_source.html#l00033">IArrayNode.h:33</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a3e31c8b25cbf95c42b8e439071bdf865"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a3e31c8b25cbf95c42b8e439071bdf865">AdobeXMPCommon::kAllBits</a></div><div class="ttdeci">static const uint32 kAllBits(0xFFFFFFFF)</div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IArrayNode__v1_html_a7b5b5daa606aeb28496f326ac705a9a3a7dd5034acb7178341218ab2389bb45cf"><div class="ttname"><a href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3a7dd5034acb7178341218ab2389bb45cf">AdobeXMPCore::IArrayNode_v1::kAFAll</a></div><div class="ttdoc">Maximum value this enum can hold, should be treated as invalid value. </div><div class="ttdef"><b>Definition:</b> <a href="IArrayNode_8h_source.html#l00047">IArrayNode.h:47</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IArrayNode__v1_html_a7b5b5daa606aeb28496f326ac705a9a3ae739b09d3ac25faa60551f181c273163"><div class="ttname"><a href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3ae739b09d3ac25faa60551f181c273163">AdobeXMPCore::IArrayNode_v1::kAFOrdered</a></div><div class="ttdoc">Array contains entries which are ordered. </div><div class="ttdef"><b>Definition:</b> <a href="IArrayNode_8h_source.html#l00041">IArrayNode.h:41</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IArrayNode__v1_html_a7b5b5daa606aeb28496f326ac705a9a3a76f68496b69df8d9ff018d0eb7cf214c"><div class="ttname"><a href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3a76f68496b69df8d9ff018d0eb7cf214c">AdobeXMPCore::IArrayNode_v1::kAFAlternative</a></div><div class="ttdoc">Array contains entries which are ordered plus default value should be the top one. </div><div class="ttdef"><b>Definition:</b> <a href="IArrayNode_8h_source.html#l00044">IArrayNode.h:44</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IArrayNode__v1_html_a7b5b5daa606aeb28496f326ac705a9a3afbd5e7a5cc72cd12eeec6e4ab370b29c"><div class="ttname"><a href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3afbd5e7a5cc72cd12eeec6e4ab370b29c">AdobeXMPCore::IArrayNode_v1::kAFUnordered</a></div><div class="ttdoc">Array contains entries which are unordered. </div><div class="ttdef"><b>Definition:</b> <a href="IArrayNode_8h_source.html#l00038">IArrayNode.h:38</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IArrayNode__v1_html_a7b5b5daa606aeb28496f326ac705a9a3a9e94ffd1d41fc1770ea2430ddb6b0850"><div class="ttname"><a href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3a9e94ffd1d41fc1770ea2430ddb6b0850">AdobeXMPCore::IArrayNode_v1::kAFNone</a></div><div class="ttdoc">unknown array form, should be used as invalid value. </div><div class="ttdef"><b>Definition:</b> <a href="IArrayNode_8h_source.html#l00035">IArrayNode.h:35</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="ae72a477964eaa0590d7ee415e044bc02"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual AdobeXMPCore::IArrayNode_v1::~IArrayNode_v1 </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Destructor </p>
+
+<p>Definition at line <a class="el" href="IArrayNode_8h_source.html#l00284">284</a> of file <a class="el" href="IArrayNode_8h_source.html">IArrayNode.h</a>.</p>
+
+<p>References <a class="el" href="XMPCommonDefines_8h_source.html#l00107">REQ_FRIEND_CLASS_DECLARATION</a>.</p>
+<div class="fragment"><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;{}</div></div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="afcb8012075f5c956139bff39f41bae47"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a> AdobeXMPCore::IArrayNode_v1::CreateAlternativeArrayNode </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>nameSpace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameSpaceLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameLength</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Creates an alternative array node which is not part of any metadata document. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpace</td><td>Pointer to a constant char buffer containing name space URI of the array node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpaceLength</td><td>Number of characters in nameSpace. In case nameSpace is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Pointer to a constant char buffer containing local name of the array node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameLength</td><td>Number of characters in name. In case name is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to a #IArrayNode object. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in the following cases:<ol type="1">
+<li>nameSpace is NULL or its contents are empty.</li>
+<li>name is NULL or its contents are empty. </li>
+</ol>
+</dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a6e9068b8048a29804fb9d567c6cc8952"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a> AdobeXMPCore::IArrayNode_v1::CreateOrderedArrayNode </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>nameSpace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameSpaceLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameLength</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Creates an ordered array node which is not part of any metadata document. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpace</td><td>Pointer to a constant char buffer containing name space URI of the array node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpaceLength</td><td>Number of characters in nameSpace. In case nameSpace is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Pointer to a constant char buffer containing local name of the array node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameLength</td><td>Number of characters in name. In case name is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to a #IArrayNode object. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in the following cases:<ol type="1">
+<li>nameSpace is NULL or its contents are empty.</li>
+<li>name is NULL or its contents are empty. </li>
+</ol>
+</dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a9b89618c3115efc948bd7fb49dfc570c"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a> AdobeXMPCore::IArrayNode_v1::CreateUnorderedArrayNode </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>nameSpace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameSpaceLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameLength</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Creates an unordered array node which is not part of any metadata document. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpace</td><td>Pointer to a constant char buffer containing name space URI of the array node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpaceLength</td><td>Number of characters in nameSpace. In case nameSpace is null terminated, set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Pointer to a constant char buffer containing local name of the array node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameLength</td><td>Number of characters in name. In case name is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to a #IArrayNode object. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in the following cases:<ol type="1">
+<li>nameSpace is NULL or its contents are empty.</li>
+<li>name is NULL or its contents are empty. </li>
+</ol>
+</dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ae75dc043c5da4ab09b4700fcbfc065ec"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3">eArrayForm</a> APICALL AdobeXMPCore::IArrayNode_v1::GetArrayForm </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Get the type of array. </p>
+<dl class="section return"><dt>Returns</dt><dd>a value of type <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3" title="Indicates different kinds of array forms possible in XMP i.e, unordered, ordered and alternative...">eArrayForm</a> indicating the type of array. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a57011f7b4cf194ef1a2e52011671b862"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a> AdobeXMPCore::IArrayNode_v1::GetArrayNodeAtIndex </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>index</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Get the node at the specified index as an array node, if possible. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>an object of type #sizet indicating the index of the node client is interested in. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>a shared pointer to const or non const #IArrayNode object containing node. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>In case no node exists at the given index an invalid shared pointer is returned. </dd>
+<dd>
+The index of an array is 1-based. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
+<li>a child exists at the given index but is not an array node. </li>
+</ul>
+</dd></dl>
+
+<p>Definition at line <a class="el" href="IArrayNode_8h_source.html#l00133">133</a> of file <a class="el" href="IArrayNode_8h_source.html">IArrayNode.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; {</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">auto</span> node = <a class="code" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7c2e3c217f7e1bb28504c40da474f01e">GetNodeAtIndex</a>( index );</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToArrayNode();</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a>();</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; }</div><div class="ttc" id="namespaceAdobeXMPCore_html_a4ea338a9eed923abf6aba47a27926a0f"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">AdobeXMPCore::spcIArrayNode</a></div><div class="ttdeci">shared_ptr&lt; const IArrayNode &gt; spcIArrayNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00114">XMPCoreFwdDeclarations.h:114</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IArrayNode__v1_html_a7c2e3c217f7e1bb28504c40da474f01e"><div class="ttname"><a href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7c2e3c217f7e1bb28504c40da474f01e">AdobeXMPCore::IArrayNode_v1::GetNodeAtIndex</a></div><div class="ttdeci">virtual spINode APICALL GetNodeAtIndex(sizet index)=0</div><div class="ttdoc">Get the node at the specified index. </div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="ac16b0614e51f8323585d653c0d36faf2"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a> AdobeXMPCore::IArrayNode_v1::GetArrayNodeAtIndex </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>index</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="IArrayNode_8h_source.html#l00139">139</a> of file <a class="el" href="IArrayNode_8h_source.html">IArrayNode.h</a>.</p>
+
+<p>References <a class="el" href="XMPCommonDefines_8h_source.html#l00117">__NOTHROW__</a>, <a class="el" href="namespaceAdobeXMPCore.html#a865ec7a2af5304ec42d443da038ae5b7">AdobeXMPCore::kIArrayNodeID()</a>, and <a class="el" href="XMP__Environment_8h_source.html#l00189">XMP_PRIVATE</a>.</p>
+<div class="fragment"><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; {</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">auto</span> node = <a class="code" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7c2e3c217f7e1bb28504c40da474f01e">GetNodeAtIndex</a>( index );</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToArrayNode();</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a>();</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; }</div><div class="ttc" id="namespaceAdobeXMPCore_html_a24e8e82d63d879d77408ce5c7e30c609"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">AdobeXMPCore::spIArrayNode</a></div><div class="ttdeci">shared_ptr&lt; IArrayNode &gt; spIArrayNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00113">XMPCoreFwdDeclarations.h:113</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IArrayNode__v1_html_a7c2e3c217f7e1bb28504c40da474f01e"><div class="ttname"><a href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7c2e3c217f7e1bb28504c40da474f01e">AdobeXMPCore::IArrayNode_v1::GetNodeAtIndex</a></div><div class="ttdeci">virtual spINode APICALL GetNodeAtIndex(sizet index)=0</div><div class="ttdoc">Get the node at the specified index. </div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="ad3748958964789cb3d20d5776b1157b5"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL AdobeXMPCore::IArrayNode_v1::GetChildNodeType </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Get the type of child nodes. </p>
+<dl class="section return"><dt>Returns</dt><dd>a value of type <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913" title="Indicates various types of node available in XMP Data Model like simple, array and structure...">eNodeType</a> indicating the type of child nodes array can hold. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>An empty array will return #<a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a68bac77fd8140a60490eb78f0b533e21" title="XMP Node of any type. ">INode_v1::kNTAll</a> indicating that right now it can hold any type of node. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a7c2e3c217f7e1bb28504c40da474f01e"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL AdobeXMPCore::IArrayNode_v1::GetNodeAtIndex </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>index</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Get the node at the specified index. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>an object of type #sizet indicating the index of the node client who is interested in. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to const or non const #INode object containing node. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>In case no node exists at the given index an invalid shared pointer is returned. </dd>
+<dd>
+The index of an array is 1-based. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ae3bf9368ff5fa36665e21911bbab98b5"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">spcINode</a> AdobeXMPCore::IArrayNode_v1::GetNodeAtIndex </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>index</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="IArrayNode_8h_source.html#l00072">72</a> of file <a class="el" href="IArrayNode_8h_source.html">IArrayNode.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> IArrayNode_v1 * <span class="keyword">&gt;</span>( this )-&gt;<a class="code" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7c2e3c217f7e1bb28504c40da474f01e">GetNodeAtIndex</a>( index );</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div><div class="ttc" id="classAdobeXMPCore_1_1IArrayNode__v1_html_a7c2e3c217f7e1bb28504c40da474f01e"><div class="ttname"><a href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7c2e3c217f7e1bb28504c40da474f01e">AdobeXMPCore::IArrayNode_v1::GetNodeAtIndex</a></div><div class="ttdeci">virtual spINode APICALL GetNodeAtIndex(sizet index)=0</div><div class="ttdoc">Get the node at the specified index. </div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="ab6cffa23c82a1dee98d634e8b4081510"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a> AdobeXMPCore::IArrayNode_v1::GetSimpleNodeAtIndex </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>index</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Get the node at the specified index as simple node, if possible. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>An object of type #sizet indicating the index of the node client is interested in. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to const or non const #ISimpleNode object containing node. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>In case no node exists at the given index an invalid shared pointer is returned. </dd>
+<dd>
+The index of an array is 1-based. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
+<li>a child exists at the given index but is not a simple node. </li>
+</ul>
+</dd></dl>
+
+<p>Definition at line <a class="el" href="IArrayNode_8h_source.html#l00087">87</a> of file <a class="el" href="IArrayNode_8h_source.html">IArrayNode.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">auto</span> node = <a class="code" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7c2e3c217f7e1bb28504c40da474f01e">GetNodeAtIndex</a>( index );</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToSimpleNode();</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a>();</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div><div class="ttc" id="namespaceAdobeXMPCore_html_a4cb671d44948c7505c33431ec12f6c1f"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">AdobeXMPCore::spcISimpleNode</a></div><div class="ttdeci">shared_ptr&lt; const ISimpleNode &gt; spcISimpleNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00078">XMPCoreFwdDeclarations.h:78</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IArrayNode__v1_html_a7c2e3c217f7e1bb28504c40da474f01e"><div class="ttname"><a href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7c2e3c217f7e1bb28504c40da474f01e">AdobeXMPCore::IArrayNode_v1::GetNodeAtIndex</a></div><div class="ttdeci">virtual spINode APICALL GetNodeAtIndex(sizet index)=0</div><div class="ttdoc">Get the node at the specified index. </div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a37ba080075f5158ffdffbb36437e2622"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a> AdobeXMPCore::IArrayNode_v1::GetSimpleNodeAtIndex </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>index</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="IArrayNode_8h_source.html#l00093">93</a> of file <a class="el" href="IArrayNode_8h_source.html">IArrayNode.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">auto</span> node = <a class="code" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7c2e3c217f7e1bb28504c40da474f01e">GetNodeAtIndex</a>( index );</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToSimpleNode();</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a>();</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; }</div><div class="ttc" id="namespaceAdobeXMPCore_html_ab20ecb8d094c1dd81cb278370b746343"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">AdobeXMPCore::spISimpleNode</a></div><div class="ttdeci">shared_ptr&lt; ISimpleNode &gt; spISimpleNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00077">XMPCoreFwdDeclarations.h:77</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IArrayNode__v1_html_a7c2e3c217f7e1bb28504c40da474f01e"><div class="ttname"><a href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7c2e3c217f7e1bb28504c40da474f01e">AdobeXMPCore::IArrayNode_v1::GetNodeAtIndex</a></div><div class="ttdeci">virtual spINode APICALL GetNodeAtIndex(sizet index)=0</div><div class="ttdoc">Get the node at the specified index. </div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="aabcee273a5efdaf57975f52f11ba8e85"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a> AdobeXMPCore::IArrayNode_v1::GetStructureNodeAtIndex </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>index</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Get the node at the specified index as structure node, if possible. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>An object of type #sizet indicating the index of the node client is interested in. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to const or non const #IStructureNode object containing node. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>In case no node exists at the given index an invalid shared pointer is returned. </dd>
+<dd>
+The index of an array is 1-based. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
+<li>a child exists at the given index but is not a structure node. </li>
+</ul>
+</dd></dl>
+
+<p>Definition at line <a class="el" href="IArrayNode_8h_source.html#l00110">110</a> of file <a class="el" href="IArrayNode_8h_source.html">IArrayNode.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">auto</span> node = <a class="code" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7c2e3c217f7e1bb28504c40da474f01e">GetNodeAtIndex</a>( index );</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToStructureNode();</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a>();</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div><div class="ttc" id="classAdobeXMPCore_1_1IArrayNode__v1_html_a7c2e3c217f7e1bb28504c40da474f01e"><div class="ttname"><a href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7c2e3c217f7e1bb28504c40da474f01e">AdobeXMPCore::IArrayNode_v1::GetNodeAtIndex</a></div><div class="ttdeci">virtual spINode APICALL GetNodeAtIndex(sizet index)=0</div><div class="ttdoc">Get the node at the specified index. </div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ab5807ab783087243a3676a19ad6f9b90"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">AdobeXMPCore::spcIStructureNode</a></div><div class="ttdeci">shared_ptr&lt; const IStructureNode &gt; spcIStructureNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00102">XMPCoreFwdDeclarations.h:102</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="aaf0ef3b97a41d1035f789dc3ab127bae"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a> AdobeXMPCore::IArrayNode_v1::GetStructureNodeAtIndex </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>index</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="IArrayNode_8h_source.html#l00116">116</a> of file <a class="el" href="IArrayNode_8h_source.html">IArrayNode.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">auto</span> node = <a class="code" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7c2e3c217f7e1bb28504c40da474f01e">GetNodeAtIndex</a>( index );</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToStructureNode();</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a>();</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; }</div><div class="ttc" id="namespaceAdobeXMPCore_html_a957c57fcbb47c704fc5c31cf36dcbde7"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">AdobeXMPCore::spIStructureNode</a></div><div class="ttdeci">shared_ptr&lt; IStructureNode &gt; spIStructureNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00101">XMPCoreFwdDeclarations.h:101</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IArrayNode__v1_html_a7c2e3c217f7e1bb28504c40da474f01e"><div class="ttname"><a href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7c2e3c217f7e1bb28504c40da474f01e">AdobeXMPCore::IArrayNode_v1::GetNodeAtIndex</a></div><div class="ttdeci">virtual spINode APICALL GetNodeAtIndex(sizet index)=0</div><div class="ttdoc">Get the node at the specified index. </div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="af206a6ae16faa9083b0c80b0becccde2"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCore::IArrayNode_v1::InsertNodeAtIndex </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;&#160;</td>
+ <td class="paramname"><em>node</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>index</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Inserts a given node at the specified index. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">node</td><td>Shared pointer to an object of #INode containing the node to be inserted at the specified index. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>An object of type sizet indicating the index where the node should be inserted. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section note"><dt>Note</dt><dd>The index of an array is 1-based. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in following cases:<ol type="1">
+<li>given node is invalid.</li>
+<li>type of given node is not same as other child items of the array node.</li>
+<li>given node is already a child of some other node.</li>
+<li>given index is less than 1 or greater than current child count + 1. </li>
+</ol>
+</dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a435be63553b76b568fc8a6f980f4eac6"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL AdobeXMPCore::IArrayNode_v1::RemoveNodeAtIndex </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>index</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Remove the node at the specified index. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>An object of type #sizet indicating the index from where the node should be removed. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section note"><dt>Note</dt><dd>The index of an array is 1-based. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to #INode object containing node which is removed from the tree. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>In case no node exists at the given index an invalid shared pointer is returned. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a484e351f788771cf4500bfe0a2b144ec"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL AdobeXMPCore::IArrayNode_v1::ReplaceNodeAtIndex </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;&#160;</td>
+ <td class="paramname"><em>node</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>index</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Replaces an existing node with the given node at the specified index. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">node</td><td>Shared pointer to an object of #INode containing the node to be inserted at the specified index. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>An object of type #sizet indicating the index from where the node should be replaced. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to the node replaced with the new node. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>The index of an array is 1-based. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in following cases:<ol type="1">
+<li>Given node is invalid.</li>
+<li>Type of given node is not same as other child items of the array node.</li>
+<li>Given node is already a child of some other node.</li>
+<li>Given index is less than 1 or greater than current child count.</li>
+<li>No node exists at the requested index. </li>
+</ol>
+</dd></dl>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/<a class="el" href="IArrayNode_8h_source.html">IArrayNode.h</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCore_1_1IArrayNode__v1.js b/docs/API/classAdobeXMPCore_1_1IArrayNode__v1.js
new file mode 100755
index 0000000..85fdc4a
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1IArrayNode__v1.js
@@ -0,0 +1,27 @@
+var classAdobeXMPCore_1_1IArrayNode__v1 =
+[
+ [ "eArrayForm", "classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3", [
+ [ "kAFNone", "classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3a9e94ffd1d41fc1770ea2430ddb6b0850", null ],
+ [ "kAFUnordered", "classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3afbd5e7a5cc72cd12eeec6e4ab370b29c", null ],
+ [ "kAFOrdered", "classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3ae739b09d3ac25faa60551f181c273163", null ],
+ [ "kAFAlternative", "classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3a76f68496b69df8d9ff018d0eb7cf214c", null ],
+ [ "kAFAll", "classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3a7dd5034acb7178341218ab2389bb45cf", null ]
+ ] ],
+ [ "~IArrayNode_v1", "classAdobeXMPCore_1_1IArrayNode__v1.html#ae72a477964eaa0590d7ee415e044bc02", null ],
+ [ "CreateAlternativeArrayNode", "classAdobeXMPCore_1_1IArrayNode__v1.html#afcb8012075f5c956139bff39f41bae47", null ],
+ [ "CreateOrderedArrayNode", "classAdobeXMPCore_1_1IArrayNode__v1.html#a6e9068b8048a29804fb9d567c6cc8952", null ],
+ [ "CreateUnorderedArrayNode", "classAdobeXMPCore_1_1IArrayNode__v1.html#a9b89618c3115efc948bd7fb49dfc570c", null ],
+ [ "GetArrayForm", "classAdobeXMPCore_1_1IArrayNode__v1.html#ae75dc043c5da4ab09b4700fcbfc065ec", null ],
+ [ "GetArrayNodeAtIndex", "classAdobeXMPCore_1_1IArrayNode__v1.html#a57011f7b4cf194ef1a2e52011671b862", null ],
+ [ "GetArrayNodeAtIndex", "classAdobeXMPCore_1_1IArrayNode__v1.html#ac16b0614e51f8323585d653c0d36faf2", null ],
+ [ "GetChildNodeType", "classAdobeXMPCore_1_1IArrayNode__v1.html#ad3748958964789cb3d20d5776b1157b5", null ],
+ [ "GetNodeAtIndex", "classAdobeXMPCore_1_1IArrayNode__v1.html#a7c2e3c217f7e1bb28504c40da474f01e", null ],
+ [ "GetNodeAtIndex", "classAdobeXMPCore_1_1IArrayNode__v1.html#ae3bf9368ff5fa36665e21911bbab98b5", null ],
+ [ "GetSimpleNodeAtIndex", "classAdobeXMPCore_1_1IArrayNode__v1.html#ab6cffa23c82a1dee98d634e8b4081510", null ],
+ [ "GetSimpleNodeAtIndex", "classAdobeXMPCore_1_1IArrayNode__v1.html#a37ba080075f5158ffdffbb36437e2622", null ],
+ [ "GetStructureNodeAtIndex", "classAdobeXMPCore_1_1IArrayNode__v1.html#aabcee273a5efdaf57975f52f11ba8e85", null ],
+ [ "GetStructureNodeAtIndex", "classAdobeXMPCore_1_1IArrayNode__v1.html#aaf0ef3b97a41d1035f789dc3ab127bae", null ],
+ [ "InsertNodeAtIndex", "classAdobeXMPCore_1_1IArrayNode__v1.html#af206a6ae16faa9083b0c80b0becccde2", null ],
+ [ "RemoveNodeAtIndex", "classAdobeXMPCore_1_1IArrayNode__v1.html#a435be63553b76b568fc8a6f980f4eac6", null ],
+ [ "ReplaceNodeAtIndex", "classAdobeXMPCore_1_1IArrayNode__v1.html#a484e351f788771cf4500bfe0a2b144ec", null ]
+]; \ No newline at end of file
diff --git a/docs/API/classAdobeXMPCore_1_1IArrayNode__v1.png b/docs/API/classAdobeXMPCore_1_1IArrayNode__v1.png
new file mode 100755
index 0000000..24dc447
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1IArrayNode__v1.png
Binary files differ
diff --git a/docs/API/classAdobeXMPCore_1_1IClientDOMParser__v1-members.html b/docs/API/classAdobeXMPCore_1_1IClientDOMParser__v1-members.html
new file mode 100755
index 0000000..8b6105b
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1IClientDOMParser__v1-members.html
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCore_1_1IClientDOMParser__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">AdobeXMPCore::IClientDOMParser_v1 Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html">AdobeXMPCore::IClientDOMParser_v1</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html#aaaf9b00cdda11d05f0a5206665096c11">AreKeysCaseSensitive</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html">AdobeXMPCore::IClientDOMParser_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html#a5df18f349ed7db99a4bb96660b0008b5">Initialize</a>(pIConfigurable configurationParameters)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html">AdobeXMPCore::IClientDOMParser_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html#a210d5b0bf473045c7f76d856f956d932">Parse</a>(const char *buffer, sizet bufferLength, pcIConfigurable configurationParameters, ReportErrorAndContinueFunctor proc)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html">AdobeXMPCore::IClientDOMParser_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html#a1860e905db03346c3c83f5a026008d03">Release</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html">AdobeXMPCore::IClientDOMParser_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html#a7d40872cc3ce6ac3b298709232399984">Validate</a>(const uint64 &amp;key, IConfigurable::eDataType dataType, const IConfigurable::CombinedDataValue &amp;dataValue)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html">AdobeXMPCore::IClientDOMParser_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html#ac9890eb0a1635872a2ed2f86544b0057">~IClientDOMParser_v1</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html">AdobeXMPCore::IClientDOMParser_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCore_1_1IClientDOMParser__v1.html b/docs/API/classAdobeXMPCore_1_1IClientDOMParser__v1.html
new file mode 100755
index 0000000..61aeeba
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1IClientDOMParser__v1.html
@@ -0,0 +1,325 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>AdobeXMPCore::IClientDOMParser_v1 Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCore_1_1IClientDOMParser__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="classAdobeXMPCore_1_1IClientDOMParser__v1-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">AdobeXMPCore::IClientDOMParser_v1 Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Version 1 of the interface that supports parsing by the client supplied parser of the XMP Data Model.
+ <a href="classAdobeXMPCore_1_1IClientDOMParser__v1.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="IClientDOMParser_8h_source.html">IClientDOMParser.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a210d5b0bf473045c7f76d856f956d932"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html#a210d5b0bf473045c7f76d856f956d932">Parse</a> (const char *buffer, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> bufferLength, <a class="el" href="namespaceAdobeXMPCommon.html#a394d772cfe78f1dbeba6059e7a3c65d6">pcIConfigurable</a> configurationParameters, <a class="el" href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html">ReportErrorAndContinueFunctor</a> proc)=0</td></tr>
+<tr class="memdesc:a210d5b0bf473045c7f76d856f956d932"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse the contents present in the buffer taking into account the configuration parameters. <a href="#a210d5b0bf473045c7f76d856f956d932">More...</a><br /></td></tr>
+<tr class="separator:a210d5b0bf473045c7f76d856f956d932"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaaf9b00cdda11d05f0a5206665096c11"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html#aaaf9b00cdda11d05f0a5206665096c11">AreKeysCaseSensitive</a> () const </td></tr>
+<tr class="memdesc:aaaf9b00cdda11d05f0a5206665096c11"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates whether object supports case sensitive keys or not. <a href="#aaaf9b00cdda11d05f0a5206665096c11">More...</a><br /></td></tr>
+<tr class="separator:aaaf9b00cdda11d05f0a5206665096c11"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5df18f349ed7db99a4bb96660b0008b5"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html#a5df18f349ed7db99a4bb96660b0008b5">Initialize</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a9befc7ddfe5977c8176eed763d9ce69e">pIConfigurable</a> configurationParameters)</td></tr>
+<tr class="memdesc:a5df18f349ed7db99a4bb96660b0008b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the default configuration parameters. <a href="#a5df18f349ed7db99a4bb96660b0008b5">More...</a><br /></td></tr>
+<tr class="separator:a5df18f349ed7db99a4bb96660b0008b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7d40872cc3ce6ac3b298709232399984"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42">eConfigurableErrorCode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html#a7d40872cc3ce6ac3b298709232399984">Validate</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1">IConfigurable::eDataType</a> dataType, const <a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html">IConfigurable::CombinedDataValue</a> &amp;dataValue)</td></tr>
+<tr class="memdesc:a7d40872cc3ce6ac3b298709232399984"><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate the data type and value for a parameter. <a href="#a7d40872cc3ce6ac3b298709232399984">More...</a><br /></td></tr>
+<tr class="separator:a7d40872cc3ce6ac3b298709232399984"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1860e905db03346c3c83f5a026008d03"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html#a1860e905db03346c3c83f5a026008d03">Release</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a1860e905db03346c3c83f5a026008d03"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the library when the object is no longer required by it and client can free up the resources or memory associated with the object. <a href="#a1860e905db03346c3c83f5a026008d03">More...</a><br /></td></tr>
+<tr class="separator:a1860e905db03346c3c83f5a026008d03"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:ac9890eb0a1635872a2ed2f86544b0057"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html#ac9890eb0a1635872a2ed2f86544b0057">~IClientDOMParser_v1</a> ()</td></tr>
+<tr class="separator:ac9890eb0a1635872a2ed2f86544b0057"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Version 1 of the interface that supports parsing by the client supplied parser of the XMP Data Model. </p>
+<p>Provides functions to parse the XMP Data Model. Thread safety is controllable by the client. </p>
+
+<p>Definition at line <a class="el" href="IClientDOMParser_8h_source.html#l00022">22</a> of file <a class="el" href="IClientDOMParser_8h_source.html">IClientDOMParser.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="ac9890eb0a1635872a2ed2f86544b0057"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual AdobeXMPCore::IClientDOMParser_v1::~IClientDOMParser_v1 </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Destructor </p>
+
+<p>Definition at line <a class="el" href="IClientDOMParser_8h_source.html#l00073">73</a> of file <a class="el" href="IClientDOMParser_8h_source.html">IClientDOMParser.h</a>.</p>
+
+<p>References <a class="el" href="XMPCommonDefines_8h_source.html#l00117">__NOTHROW__</a>, and <a class="el" href="XMPCommonDefines_8h_source.html#l00107">REQ_FRIEND_CLASS_DECLARATION</a>.</p>
+<div class="fragment"><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;{}</div></div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="aaaf9b00cdda11d05f0a5206665096c11"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual bool APICALL AdobeXMPCore::IClientDOMParser_v1::AreKeysCaseSensitive </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Indicates whether object supports case sensitive keys or not. </p>
+<dl class="section return"><dt>Returns</dt><dd>True in case object supports case sensitive keys, false otherwise. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Default implementation makes keys case insensitive. </dd></dl>
+
+<p>Definition at line <a class="el" href="IClientDOMParser_8h_source.html#l00042">42</a> of file <a class="el" href="IClientDOMParser_8h_source.html">IClientDOMParser.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{ <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div></div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a5df18f349ed7db99a4bb96660b0008b5"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCore::IClientDOMParser_v1::Initialize </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a9befc7ddfe5977c8176eed763d9ce69e">pIConfigurable</a>&#160;</td>
+ <td class="paramname"><em>configurationParameters</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Initialize the default configuration parameters. </p>
+<p>The object needs to fill the default configuration parameters supported by it. </p><dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">configurationParameters</td><td>an empty object of type #<a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html" title="Interface that allows to attach various key-value parameters to the underlying object. ">AdobeXMPCommon::IConfigurable</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section note"><dt>Note</dt><dd>default implementation does not fill anything in the configuration parameters. </dd></dl>
+
+<p>Definition at line <a class="el" href="IClientDOMParser_8h_source.html#l00050">50</a> of file <a class="el" href="IClientDOMParser_8h_source.html">IClientDOMParser.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{};</div></div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a210d5b0bf473045c7f76d856f956d932"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL AdobeXMPCore::IClientDOMParser_v1::Parse </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>buffer</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>bufferLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a394d772cfe78f1dbeba6059e7a3c65d6">pcIConfigurable</a>&#160;</td>
+ <td class="paramname"><em>configurationParameters</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html">ReportErrorAndContinueFunctor</a>&#160;</td>
+ <td class="paramname"><em>proc</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Parse the contents present in the buffer taking into account the configuration parameters. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">buffer</td><td>Pointer to a constant char buffer containing serialized XMP Data Model. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">bufferLength</td><td>Number of characters in buffer. In case name is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">configurationParameters</td><td>An object of type #<a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html" title="Interface that allows to attach various key-value parameters to the underlying object. ">AdobeXMPCommon::IConfigurable</a> containing all the configuration parameters requested by client to be taken care of while parsing. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">proc</td><td>A function pointer to be used by the parse operation to report back any encountered errors/warnings. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to #INode object containing all the parsed XMP Data Model. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a1860e905db03346c3c83f5a026008d03"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCore::IClientDOMParser_v1::Release </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Called by the library when the object is no longer required by it and client can free up the resources or memory associated with the object. </p>
+
+</div>
+</div>
+<a class="anchor" id="a7d40872cc3ce6ac3b298709232399984"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42">eConfigurableErrorCode</a> APICALL AdobeXMPCore::IClientDOMParser_v1::Validate </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;&#160;</td>
+ <td class="paramname"><em>key</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1">IConfigurable::eDataType</a>&#160;</td>
+ <td class="paramname"><em>dataType</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html">IConfigurable::CombinedDataValue</a> &amp;&#160;</td>
+ <td class="paramname"><em>dataValue</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Validate the data type and value for a parameter. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>An unsigned 64 bit integer value indicating the key. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">dataType</td><td>A value of type #<a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1" title="Indicates various types of parameter values. ">AdobeXMPCommon::IConfigurable::eDataType</a> indicating the type of value the parameter holds. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">dataValue</td><td>A value of #<a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html" title="A union data type to store all kind of values. ">AdobeXMPCommon::IConfigurable::CombinedDataValue</a> indicating the value the parameter holds. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>An error code in case there is something wrong with the combination, otherwise returns \ p0-#AdobeXMPCommon::eCECNone. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Default implementation validates all the keys + dataTypes + dataValue combinations. </dd></dl>
+
+<p>Definition at line <a class="el" href="IClientDOMParser_8h_source.html#l00060">60</a> of file <a class="el" href="IClientDOMParser_8h_source.html">IClientDOMParser.h</a>.</p>
+
+<p>References <a class="el" href="XMPCommonDefines_8h_source.html#l00117">__NOTHROW__</a>, and <a class="el" href="XMPCommonErrorCodes_8h_source.html#l00092">AdobeXMPCommon::kCECNone</a>.</p>
+<div class="fragment"><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; {</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a48a521a6e08fd24bef691efb926189f4">kCECNone</a>;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; }</div><div class="ttc" id="namespaceAdobeXMPCommon_html_a87fa911f1ea5a79801b7fe3530637c42a48a521a6e08fd24bef691efb926189f4"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a48a521a6e08fd24bef691efb926189f4">AdobeXMPCommon::kCECNone</a></div><div class="ttdoc">Indicates no error. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00092">XMPCommonErrorCodes.h:92</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/<a class="el" href="IClientDOMParser_8h_source.html">IClientDOMParser.h</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCore_1_1IClientDOMParser__v1.js b/docs/API/classAdobeXMPCore_1_1IClientDOMParser__v1.js
new file mode 100755
index 0000000..109e7ce
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1IClientDOMParser__v1.js
@@ -0,0 +1,9 @@
+var classAdobeXMPCore_1_1IClientDOMParser__v1 =
+[
+ [ "~IClientDOMParser_v1", "classAdobeXMPCore_1_1IClientDOMParser__v1.html#ac9890eb0a1635872a2ed2f86544b0057", null ],
+ [ "AreKeysCaseSensitive", "classAdobeXMPCore_1_1IClientDOMParser__v1.html#aaaf9b00cdda11d05f0a5206665096c11", null ],
+ [ "Initialize", "classAdobeXMPCore_1_1IClientDOMParser__v1.html#a5df18f349ed7db99a4bb96660b0008b5", null ],
+ [ "Parse", "classAdobeXMPCore_1_1IClientDOMParser__v1.html#a210d5b0bf473045c7f76d856f956d932", null ],
+ [ "Release", "classAdobeXMPCore_1_1IClientDOMParser__v1.html#a1860e905db03346c3c83f5a026008d03", null ],
+ [ "Validate", "classAdobeXMPCore_1_1IClientDOMParser__v1.html#a7d40872cc3ce6ac3b298709232399984", null ]
+]; \ No newline at end of file
diff --git a/docs/API/classAdobeXMPCore_1_1IClientDOMSerializer__v1-members.html b/docs/API/classAdobeXMPCore_1_1IClientDOMSerializer__v1-members.html
new file mode 100755
index 0000000..04310d6
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1IClientDOMSerializer__v1-members.html
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCore_1_1IClientDOMSerializer__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">AdobeXMPCore::IClientDOMSerializer_v1 Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html">AdobeXMPCore::IClientDOMSerializer_v1</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#aa6090a60c51266963005c2fce33ea760">AreKeysCaseSensitive</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html">AdobeXMPCore::IClientDOMSerializer_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#a370646890f776a587f0faff20d590059">Initialize</a>(pIConfigurable configurationParameters)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html">AdobeXMPCore::IClientDOMSerializer_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#a513bdaeb37f453787f46a5e855ac08ef">Release</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html">AdobeXMPCore::IClientDOMSerializer_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#a604822b9cacd9b1ebaba08e49513f778">Serialize</a>(const spINode &amp;node, const spcINameSpacePrefixMap &amp;nameSpacePrefixMap, pcIConfigurable configurationParameters, ReportErrorAndContinueFunctor functor, const spIUTF8String &amp;string)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html">AdobeXMPCore::IClientDOMSerializer_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#a5bcaa25de727ee1e8e9399dd963aa5c3">Validate</a>(const uint64 &amp;key, IConfigurable::eDataType dataType, const IConfigurable::CombinedDataValue &amp;dataValue)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html">AdobeXMPCore::IClientDOMSerializer_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#a58ff533c49dcfcf3374097aea70c1107">~IClientDOMSerializer_v1</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html">AdobeXMPCore::IClientDOMSerializer_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCore_1_1IClientDOMSerializer__v1.html b/docs/API/classAdobeXMPCore_1_1IClientDOMSerializer__v1.html
new file mode 100755
index 0000000..ccc4fd2
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1IClientDOMSerializer__v1.html
@@ -0,0 +1,331 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>AdobeXMPCore::IClientDOMSerializer_v1 Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCore_1_1IClientDOMSerializer__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="classAdobeXMPCore_1_1IClientDOMSerializer__v1-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">AdobeXMPCore::IClientDOMSerializer_v1 Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Version 1 of the interface that supports serializing by the client supplied serializer of the XMP Data Model.
+ <a href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="IClientDOMSerializer_8h_source.html">IClientDOMSerializer.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a604822b9cacd9b1ebaba08e49513f778"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#a604822b9cacd9b1ebaba08e49513f778">Serialize</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;node, const <a class="el" href="namespaceAdobeXMPCore.html#a22f9e572045a61aa3cfc629a0d877d72">spcINameSpacePrefixMap</a> &amp;nameSpacePrefixMap, <a class="el" href="namespaceAdobeXMPCommon.html#a394d772cfe78f1dbeba6059e7a3c65d6">pcIConfigurable</a> configurationParameters, <a class="el" href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html">ReportErrorAndContinueFunctor</a> functor, const <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> &amp;string)=0</td></tr>
+<tr class="memdesc:a604822b9cacd9b1ebaba08e49513f778"><td class="mdescLeft">&#160;</td><td class="mdescRight">Serialize the XMP Data Model taking into account the configuration parameters. <a href="#a604822b9cacd9b1ebaba08e49513f778">More...</a><br /></td></tr>
+<tr class="separator:a604822b9cacd9b1ebaba08e49513f778"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa6090a60c51266963005c2fce33ea760"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#aa6090a60c51266963005c2fce33ea760">AreKeysCaseSensitive</a> () const </td></tr>
+<tr class="memdesc:aa6090a60c51266963005c2fce33ea760"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates whether object supports case sensitive keys or not. <a href="#aa6090a60c51266963005c2fce33ea760">More...</a><br /></td></tr>
+<tr class="separator:aa6090a60c51266963005c2fce33ea760"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a370646890f776a587f0faff20d590059"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#a370646890f776a587f0faff20d590059">Initialize</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a9befc7ddfe5977c8176eed763d9ce69e">pIConfigurable</a> configurationParameters)</td></tr>
+<tr class="memdesc:a370646890f776a587f0faff20d590059"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the default configuration parameters. The object needs to fill the default configuration parameters supported by it. <a href="#a370646890f776a587f0faff20d590059">More...</a><br /></td></tr>
+<tr class="separator:a370646890f776a587f0faff20d590059"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5bcaa25de727ee1e8e9399dd963aa5c3"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42">eConfigurableErrorCode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#a5bcaa25de727ee1e8e9399dd963aa5c3">Validate</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1">IConfigurable::eDataType</a> dataType, const <a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html">IConfigurable::CombinedDataValue</a> &amp;dataValue)</td></tr>
+<tr class="memdesc:a5bcaa25de727ee1e8e9399dd963aa5c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate the data type and value for a parameter. <a href="#a5bcaa25de727ee1e8e9399dd963aa5c3">More...</a><br /></td></tr>
+<tr class="separator:a5bcaa25de727ee1e8e9399dd963aa5c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a513bdaeb37f453787f46a5e855ac08ef"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#a513bdaeb37f453787f46a5e855ac08ef">Release</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a513bdaeb37f453787f46a5e855ac08ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the library when the object is no longer required by it and client can free up the resources or memory associated with the object. <a href="#a513bdaeb37f453787f46a5e855ac08ef">More...</a><br /></td></tr>
+<tr class="separator:a513bdaeb37f453787f46a5e855ac08ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:a58ff533c49dcfcf3374097aea70c1107"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#a58ff533c49dcfcf3374097aea70c1107">~IClientDOMSerializer_v1</a> ()</td></tr>
+<tr class="separator:a58ff533c49dcfcf3374097aea70c1107"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Version 1 of the interface that supports serializing by the client supplied serializer of the XMP Data Model. </p>
+<p>Provides functions to serialize the XMP Data Model. Thread safety is controllable by the client. </p>
+
+<p>Definition at line <a class="el" href="IClientDOMSerializer_8h_source.html#l00025">25</a> of file <a class="el" href="IClientDOMSerializer_8h_source.html">IClientDOMSerializer.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a58ff533c49dcfcf3374097aea70c1107"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual AdobeXMPCore::IClientDOMSerializer_v1::~IClientDOMSerializer_v1 </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Destructor </p>
+
+<p>Definition at line <a class="el" href="IClientDOMSerializer_8h_source.html#l00077">77</a> of file <a class="el" href="IClientDOMSerializer_8h_source.html">IClientDOMSerializer.h</a>.</p>
+
+<p>References <a class="el" href="XMPCommonDefines_8h_source.html#l00117">__NOTHROW__</a>, and <a class="el" href="XMPCommonDefines_8h_source.html#l00107">REQ_FRIEND_CLASS_DECLARATION</a>.</p>
+<div class="fragment"><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;{}</div></div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="aa6090a60c51266963005c2fce33ea760"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual bool APICALL AdobeXMPCore::IClientDOMSerializer_v1::AreKeysCaseSensitive </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Indicates whether object supports case sensitive keys or not. </p>
+<dl class="section return"><dt>Returns</dt><dd>True in case object supports case sensitive keys, false otherwise. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Default implementation makes keys case insensitive. </dd></dl>
+
+<p>Definition at line <a class="el" href="IClientDOMSerializer_8h_source.html#l00046">46</a> of file <a class="el" href="IClientDOMSerializer_8h_source.html">IClientDOMSerializer.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{ <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div></div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a370646890f776a587f0faff20d590059"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCore::IClientDOMSerializer_v1::Initialize </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a9befc7ddfe5977c8176eed763d9ce69e">pIConfigurable</a>&#160;</td>
+ <td class="paramname"><em>configurationParameters</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Initializes the default configuration parameters. The object needs to fill the default configuration parameters supported by it. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">configurationParameters</td><td>An empty object of type <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html" title="Interface that allows to attach various key-value parameters to the underlying object. ">AdobeXMPCommon::IConfigurable</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section note"><dt>Note</dt><dd>Default implementation does not fill anything in the configuration parameters. </dd></dl>
+
+<p>Definition at line <a class="el" href="IClientDOMSerializer_8h_source.html#l00054">54</a> of file <a class="el" href="IClientDOMSerializer_8h_source.html">IClientDOMSerializer.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{};</div></div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a513bdaeb37f453787f46a5e855ac08ef"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCore::IClientDOMSerializer_v1::Release </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Called by the library when the object is no longer required by it and client can free up the resources or memory associated with the object. </p>
+
+</div>
+</div>
+<a class="anchor" id="a604822b9cacd9b1ebaba08e49513f778"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCore::IClientDOMSerializer_v1::Serialize </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;&#160;</td>
+ <td class="paramname"><em>node</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCore.html#a22f9e572045a61aa3cfc629a0d877d72">spcINameSpacePrefixMap</a> &amp;&#160;</td>
+ <td class="paramname"><em>nameSpacePrefixMap</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a394d772cfe78f1dbeba6059e7a3c65d6">pcIConfigurable</a>&#160;</td>
+ <td class="paramname"><em>configurationParameters</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html">ReportErrorAndContinueFunctor</a>&#160;</td>
+ <td class="paramname"><em>functor</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> &amp;&#160;</td>
+ <td class="paramname"><em>string</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Serialize the XMP Data Model taking into account the configuration parameters. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">node</td><td>The node to be serialized. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpacePrefixMap</td><td>An object of type #INameSpacePrefixMap which contains preferred prefixes for namespaces. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">configurationParameters</td><td>An object of type <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html" title="Interface that allows to attach various key-value parameters to the underlying object. ">AdobeXMPCommon::IConfigurable</a> containing all the configuration parameters requested by client to be taken care of while serializing. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">functor</td><td>A function object to be used by the serializing operation to report back any encountered errors/warnings. </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">string</td><td>A shared pointer to an IUTF8String object which should be filled with the serialized form of XMP Data Model. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a5bcaa25de727ee1e8e9399dd963aa5c3"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42">eConfigurableErrorCode</a> APICALL AdobeXMPCore::IClientDOMSerializer_v1::Validate </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;&#160;</td>
+ <td class="paramname"><em>key</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1">IConfigurable::eDataType</a>&#160;</td>
+ <td class="paramname"><em>dataType</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html">IConfigurable::CombinedDataValue</a> &amp;&#160;</td>
+ <td class="paramname"><em>dataValue</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Validate the data type and value for a parameter. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>An unsigned 64 bit integer value indicating the key. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">dataType</td><td>A value of type <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1" title="Indicates various types of parameter values. ">AdobeXMPCommon::IConfigurable::eDataType</a> indicating the type of value the parameter holds. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">dataValue</td><td>A value of #<a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html" title="A union data type to store all kind of values. ">AdobeXMPCommon::IConfigurable::CombinedDataValue</a> indicating the value the parameter holds. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>An error code in case there is something wrong with the combination, otherwise returns #AdobeXMPCommon::eCECNone. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Default implementation validates all the keys + dataTypes + dataValue combinations. </dd></dl>
+
+<p>Definition at line <a class="el" href="IClientDOMSerializer_8h_source.html#l00064">64</a> of file <a class="el" href="IClientDOMSerializer_8h_source.html">IClientDOMSerializer.h</a>.</p>
+
+<p>References <a class="el" href="XMPCommonDefines_8h_source.html#l00117">__NOTHROW__</a>, and <a class="el" href="XMPCommonErrorCodes_8h_source.html#l00092">AdobeXMPCommon::kCECNone</a>.</p>
+<div class="fragment"><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a48a521a6e08fd24bef691efb926189f4">kCECNone</a>;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div><div class="ttc" id="namespaceAdobeXMPCommon_html_a87fa911f1ea5a79801b7fe3530637c42a48a521a6e08fd24bef691efb926189f4"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a48a521a6e08fd24bef691efb926189f4">AdobeXMPCommon::kCECNone</a></div><div class="ttdoc">Indicates no error. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00092">XMPCommonErrorCodes.h:92</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/<a class="el" href="IClientDOMSerializer_8h_source.html">IClientDOMSerializer.h</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCore_1_1IClientDOMSerializer__v1.js b/docs/API/classAdobeXMPCore_1_1IClientDOMSerializer__v1.js
new file mode 100755
index 0000000..7dba854
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1IClientDOMSerializer__v1.js
@@ -0,0 +1,9 @@
+var classAdobeXMPCore_1_1IClientDOMSerializer__v1 =
+[
+ [ "~IClientDOMSerializer_v1", "classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#a58ff533c49dcfcf3374097aea70c1107", null ],
+ [ "AreKeysCaseSensitive", "classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#aa6090a60c51266963005c2fce33ea760", null ],
+ [ "Initialize", "classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#a370646890f776a587f0faff20d590059", null ],
+ [ "Release", "classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#a513bdaeb37f453787f46a5e855ac08ef", null ],
+ [ "Serialize", "classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#a604822b9cacd9b1ebaba08e49513f778", null ],
+ [ "Validate", "classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#a5bcaa25de727ee1e8e9399dd963aa5c3", null ]
+]; \ No newline at end of file
diff --git a/docs/API/classAdobeXMPCore_1_1ICompositeNode__v1-members.html b/docs/API/classAdobeXMPCore_1_1ICompositeNode__v1-members.html
new file mode 100755
index 0000000..5fa4b2a
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1ICompositeNode__v1-members.html
@@ -0,0 +1,131 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCore_1_1ICompositeNode__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">AdobeXMPCore::ICompositeNode_v1 Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a673b6b4d69b2c9d85f2fa440d413ace3">AcknowledgeChanges</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc">Acquire</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a6795e662d9daea5b88de08261488964b">AppendNode</a>(const spINode &amp;node)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#abf3323ce933f5336bc0f64955c0bdd11">ChildCount</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4b615b0eef081f3c23385f28728aa462">Clear</a>(bool contents=true, bool qualifiers=true)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2d613694adcedb569145aff06d0bc595">Clone</a>(bool ignoreEmptyNodes=false, bool ignoreNodesWithOnlyQualifiers=false) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#af180be62ecd26edf90df0fe3ea75941e">ConvertToArrayNode</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a0d67ad7708fb6f007ea1152b79e65f49">ConvertToArrayNode</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a08f9ed4dee6c899f65eb51e3d7f9858d">ConvertToMetadata</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a72dc534e1af718599ac185563a02612a">ConvertToMetadata</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aeb9797165d96d06998de79dd19a9f846">ConvertToSimpleNode</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ad8e7ef140cb5ff094789abfcc879c94b">ConvertToSimpleNode</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5ea317fcd59694184089a9774c866b22">ConvertToStructureNode</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ad5f62a4ae9a9630c8106a04bd0c2a0a3">ConvertToStructureNode</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a214bb1b5840dbd5576e764dd2220b261">DisableThreadSafety</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#afe35614cb88e2bdb32996cf4ac15b211">EnableThreadSafety</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> enum name</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a2e17bda06b20439a0076ea2fae68594d">GetArrayNodeAtPath</a>(const spcIPath &amp;path) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#aba3fc78fab746460b1e7e01fe2e004b6">GetArrayNodeAtPath</a>(const spcIPath &amp;path)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ab55c9dad49840d58a1c2c16b9f1962ad">GetArrayQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a2e68d1345ed6ca2e5d1bfada42b13f">GetArrayQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2447e6ea34adbe073a639c703015db90">GetIndex</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070">GetInterfacePointer</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a68350da5edc0668811b9bb890d5777b9">GetName</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2e8319347c3b01638027b4abbe72fda6">GetNameSpace</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a5c4cddddb0702e61d85cff16c5e72632">GetNodeAtPath</a>(const spcIPath &amp;path) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a0dd2a64d53b361b96bdfb597c5e35579">GetNodeAtPath</a>(const spcIPath &amp;path)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a6d9067d66571727b622ffccade5225f0">GetNodeType</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#ac5e3227436e3ee11d0df7f3a176402e0">GetNodeTypeAtPath</a>(const spcIPath &amp;path) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aee7e1f35ac174874234ba5e913a6bfaa">GetParent</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4533c1d11fc2d32c166c9ce05fe01b3c">GetParent</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a47da5e5605d69d6d6ced761e7c39d24f">GetParentNodeType</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a549f1adeea470827a6201b3b4c596f1e">GetPath</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a96a99fa56a2b088691ecad5a0cf6e54d">GetQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a7701069162b4f677026624a5f2b3f788">GetQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2866bcde949c37aeb72cdba8dddcac95">GetQualifierNodeType</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a93d1009b739d8a6c40ebbf4aa75051af">GetSimpleNodeAtPath</a>(const spcIPath &amp;path) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a42c91ca3eeded6302163a96903927445">GetSimpleNodeAtPath</a>(const spcIPath &amp;path)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a1524d74e397863cb9324838862f70d7b">GetSimpleQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2831fe03981afd9af12e775bda89361e">GetSimpleQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#ad6ca35dc12323a3a970066beb4c63e84">GetStructureNodeAtPath</a>(const spcIPath &amp;path) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a2abb6cdf40e6d4c91e30b736586e89dc">GetStructureNodeAtPath</a>(const spcIPath &amp;path)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a844a40cd69e0d87226ce1146d733edd6">GetStructureQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4fb3c837b8c28501b2e7a3376a2cf382">GetStructureQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ab78ba3aaadf4b0109e610505e753de50">HasChanged</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa288c34c9bccb73ae73b653f3c769ade">HasContent</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#adfd1ce7bd20268240769f8a6a405a8ee">HasQualifiers</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a39f5d9b31976e7a243d11152cd57260b">InsertNodeAtPath</a>(const spINode &amp;node, const spcIPath &amp;path)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a5e6dd9a58a288f20fd0a667a30a2ae">InsertQualifier</a>(const spINode &amp;node)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a3289deed9715f661f5f588dc38642baa">IsArrayItem</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5075ad988ba61e055b6ee6bbeaf25e25">IsEmpty</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a0d545f6b4b2b9760b63c902317c43a94">IsQualifierNode</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a261e2f6af96b75015e5f8318f32be7f9">IsThreadSafe</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a313df9421df168266a32592732c25d9f">Iterator</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#afa9e587b9293ff99d9f8b38b0cc07cad">Iterator</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a68bac77fd8140a60490eb78f0b533e21">kNTAll</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a60c6b4c3dfc99d8584866f5f18ff2610">kNTArray</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913aae32cc414cc7adaf3b2a1c375f2cb3bb">kNTNone</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a97e0c4fb69029d0d152c068c10736234">kNTSimple</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a7542b80b3b688cd3d210d62d12dbe471">kNTStructure</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#af898813d17af58fb1a828d92a74d7dd3">QualifiersCount</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a9972ca54948952083a930166448c05c0">QualifiersIterator</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa168f37bc38763df55fb1022d55886bd">QualifiersIterator</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3">Release</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a1c713f2e29d6d0e9d4a1ee800a679f06">RemoveNodeAtPath</a>(const spcIPath &amp;path)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a87f03e9924418ae5f7b6fa63def6eee8">RemoveQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a2c51c5296da4abb8fa5d5999f686602b">ReplaceNodeAtPath</a>(const spINode &amp;node, const spcIPath &amp;path)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a2692b8281984d9fe6de6c169332f2c">ReplaceQualifier</a>(const spINode &amp;node)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#afcb42109aed83c3b0c133bc413388037">AdobeXMPCommon::REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f">AdobeXMPCommon::IVersionable::REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a0f31eb9677c4af06288319e363c21ebc">AdobeXMPCommon::IThreadSafe::REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa087d2f94e42fdd5ece1bd22dfea66d5">SetName</a>(const char *name, sizet nameLength)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a55c6097b36412f9facc8a4cf7e898186">SetNameSpace</a>(const char *nameSpace, sizet nameSpaceLength)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a51af220e29b40e8520ae5765f28515bf">~ICompositeNode_v1</a>() __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#affdbed044179bbde65ffc28b20e28ecb">~INode_v1</a>() __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31">~ISharedObject</a>() __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCore_1_1ICompositeNode__v1.html b/docs/API/classAdobeXMPCore_1_1ICompositeNode__v1.html
new file mode 100755
index 0000000..f96fcac
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1ICompositeNode__v1.html
@@ -0,0 +1,906 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>AdobeXMPCore::ICompositeNode_v1 Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCore_1_1ICompositeNode__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classAdobeXMPCore_1_1ICompositeNode__v1-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">AdobeXMPCore::ICompositeNode_v1 Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Version1 of the interface that serves as a base interface to all composite types of nodes in the XMP DOM ( like Arrays and Structures ).
+ <a href="classAdobeXMPCore_1_1ICompositeNode__v1.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="ICompositeNode_8h_source.html">ICompositeNode.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for AdobeXMPCore::ICompositeNode_v1:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classAdobeXMPCore_1_1ICompositeNode__v1.png" usemap="#AdobeXMPCore::ICompositeNode_5Fv1_map" alt=""/>
+ <map id="AdobeXMPCore::ICompositeNode_5Fv1_map" name="AdobeXMPCore::ICompositeNode_v1_map">
+<area href="classAdobeXMPCore_1_1INode__v1.html" title="Version1 of the interface that serves as a base interface to all types of nodes in the XMP DOM..." alt="AdobeXMPCore::INode_v1" shape="rect" coords="233,56,456,80"/>
+<area href="classAdobeXMPCommon_1_1ISharedObject.html" title="Interface that serves as the base interface of all the externally exposed interfaces. " alt="AdobeXMPCommon::ISharedObject" shape="rect" coords="0,0,223,24"/>
+<area href="classAdobeXMPCommon_1_1IVersionable.html" title="Interface that serves as the base interface for all the externally exposed interfaces which needs to ..." alt="AdobeXMPCommon::IVersionable" shape="rect" coords="233,0,456,24"/>
+<area href="classAdobeXMPCommon_1_1IThreadSafe.html" title="Interface that serves as the base interface for all the externally exposed interfaces which needs to ..." alt="AdobeXMPCommon::IThreadSafe" shape="rect" coords="466,0,689,24"/>
+<area href="classAdobeXMPCore_1_1IArrayNode__v1.html" title="Version1 of the interface that represents an Array Node of XMP DOM. " alt="AdobeXMPCore::IArrayNode_v1" shape="rect" coords="116,168,339,192"/>
+<area href="classAdobeXMPCore_1_1IStructureNode__v1.html" title="Version1 of the interface that represents a structure Node of XMP DOM. " alt="AdobeXMPCore::IStructureNode_v1" shape="rect" coords="349,168,572,192"/>
+<area href="classAdobeXMPCore_1_1IMetadata__v1.html" title="Version1 of the interface that represents the whole xmp metadata for an asset. " alt="AdobeXMPCore::IMetadata_v1" shape="rect" coords="349,224,572,248"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:ac5e3227436e3ee11d0df7f3a176402e0"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#ac5e3227436e3ee11d0df7f3a176402e0">GetNodeTypeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path) const =0</td></tr>
+<tr class="memdesc:ac5e3227436e3ee11d0df7f3a176402e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the node type specified by the path relative to the composite node. <a href="#ac5e3227436e3ee11d0df7f3a176402e0">More...</a><br /></td></tr>
+<tr class="separator:ac5e3227436e3ee11d0df7f3a176402e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6795e662d9daea5b88de08261488964b"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a6795e662d9daea5b88de08261488964b">AppendNode</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;node)=0</td></tr>
+<tr class="memdesc:a6795e662d9daea5b88de08261488964b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends a given node as the child of the node. <a href="#a6795e662d9daea5b88de08261488964b">More...</a><br /></td></tr>
+<tr class="separator:a6795e662d9daea5b88de08261488964b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a39f5d9b31976e7a243d11152cd57260b"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a39f5d9b31976e7a243d11152cd57260b">InsertNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;node, const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path)=0</td></tr>
+<tr class="memdesc:a39f5d9b31976e7a243d11152cd57260b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inserts a given node at the path relative to the composite node. <a href="#a39f5d9b31976e7a243d11152cd57260b">More...</a><br /></td></tr>
+<tr class="separator:a39f5d9b31976e7a243d11152cd57260b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2c51c5296da4abb8fa5d5999f686602b"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a2c51c5296da4abb8fa5d5999f686602b">ReplaceNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;node, const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path)=0</td></tr>
+<tr class="memdesc:a2c51c5296da4abb8fa5d5999f686602b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replaces an existing node with the given node at the path relative to the composite node.. <a href="#a2c51c5296da4abb8fa5d5999f686602b">More...</a><br /></td></tr>
+<tr class="separator:a2c51c5296da4abb8fa5d5999f686602b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1c713f2e29d6d0e9d4a1ee800a679f06"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a1c713f2e29d6d0e9d4a1ee800a679f06">RemoveNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path)=0</td></tr>
+<tr class="memdesc:a1c713f2e29d6d0e9d4a1ee800a679f06"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes the node specified by the path relative to the composite node. <a href="#a1c713f2e29d6d0e9d4a1ee800a679f06">More...</a><br /></td></tr>
+<tr class="separator:a1c713f2e29d6d0e9d4a1ee800a679f06"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abf3323ce933f5336bc0f64955c0bdd11"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#abf3323ce933f5336bc0f64955c0bdd11">ChildCount</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:abf3323ce933f5336bc0f64955c0bdd11"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the count of child nodes of the composite node. <a href="#abf3323ce933f5336bc0f64955c0bdd11">More...</a><br /></td></tr>
+<tr class="separator:abf3323ce933f5336bc0f64955c0bdd11"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
+<tr class="memitem:a5c4cddddb0702e61d85cff16c5e72632"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">spcINode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a5c4cddddb0702e61d85cff16c5e72632">GetNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path) const </td></tr>
+<tr class="memdesc:a5c4cddddb0702e61d85cff16c5e72632"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the node specified by the path relative to the composite node. <a href="#a5c4cddddb0702e61d85cff16c5e72632">More...</a><br /></td></tr>
+<tr class="separator:a5c4cddddb0702e61d85cff16c5e72632"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0dd2a64d53b361b96bdfb597c5e35579"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a0dd2a64d53b361b96bdfb597c5e35579">GetNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path)=0</td></tr>
+<tr class="separator:a0dd2a64d53b361b96bdfb597c5e35579"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
+<tr class="memitem:a313df9421df168266a32592732c25d9f"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a5386a735d9eb66d5859e4657dfeebb7c">spINodeIterator</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a313df9421df168266a32592732c25d9f">Iterator</a> ()=0</td></tr>
+<tr class="memdesc:a313df9421df168266a32592732c25d9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get an iterator object to iterate over all the child nodes of the composite node. <a href="#a313df9421df168266a32592732c25d9f">More...</a><br /></td></tr>
+<tr class="separator:a313df9421df168266a32592732c25d9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afa9e587b9293ff99d9f8b38b0cc07cad"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab423c366f29043e79694f805bceddb56">spcINodeIterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#afa9e587b9293ff99d9f8b38b0cc07cad">Iterator</a> () const </td></tr>
+<tr class="separator:afa9e587b9293ff99d9f8b38b0cc07cad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
+<tr class="memitem:a93d1009b739d8a6c40ebbf4aa75051af"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a93d1009b739d8a6c40ebbf4aa75051af">GetSimpleNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path) const </td></tr>
+<tr class="memdesc:a93d1009b739d8a6c40ebbf4aa75051af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a simple node specified by the path relative to the node. <a href="#a93d1009b739d8a6c40ebbf4aa75051af">More...</a><br /></td></tr>
+<tr class="separator:a93d1009b739d8a6c40ebbf4aa75051af"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a42c91ca3eeded6302163a96903927445"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a42c91ca3eeded6302163a96903927445">GetSimpleNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path)</td></tr>
+<tr class="separator:a42c91ca3eeded6302163a96903927445"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCore_1_1INode__v1"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCore_1_1INode__v1')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td></tr>
+<tr class="memitem:a6d9067d66571727b622ffccade5225f0 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a6d9067d66571727b622ffccade5225f0">GetNodeType</a> () const =0</td></tr>
+<tr class="memdesc:a6d9067d66571727b622ffccade5225f0 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the node type of the node. <a href="#a6d9067d66571727b622ffccade5225f0">More...</a><br /></td></tr>
+<tr class="separator:a6d9067d66571727b622ffccade5225f0 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a47da5e5605d69d6d6ced761e7c39d24f inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a47da5e5605d69d6d6ced761e7c39d24f">GetParentNodeType</a> () const =0</td></tr>
+<tr class="memdesc:a47da5e5605d69d6d6ced761e7c39d24f inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the node type of the node's parent. <a href="#a47da5e5605d69d6d6ced761e7c39d24f">More...</a><br /></td></tr>
+<tr class="separator:a47da5e5605d69d6d6ced761e7c39d24f inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa087d2f94e42fdd5ece1bd22dfea66d5 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa087d2f94e42fdd5ece1bd22dfea66d5">SetName</a> (const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)=0</td></tr>
+<tr class="memdesc:aa087d2f94e42fdd5ece1bd22dfea66d5 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the local name of the node. <a href="#aa087d2f94e42fdd5ece1bd22dfea66d5">More...</a><br /></td></tr>
+<tr class="separator:aa087d2f94e42fdd5ece1bd22dfea66d5 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a68350da5edc0668811b9bb890d5777b9 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a68350da5edc0668811b9bb890d5777b9">GetName</a> () const =0</td></tr>
+<tr class="memdesc:a68350da5edc0668811b9bb890d5777b9 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the local name of the node. <a href="#a68350da5edc0668811b9bb890d5777b9">More...</a><br /></td></tr>
+<tr class="separator:a68350da5edc0668811b9bb890d5777b9 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a55c6097b36412f9facc8a4cf7e898186 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a55c6097b36412f9facc8a4cf7e898186">SetNameSpace</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength)=0</td></tr>
+<tr class="memdesc:a55c6097b36412f9facc8a4cf7e898186 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the name space of the node. <a href="#a55c6097b36412f9facc8a4cf7e898186">More...</a><br /></td></tr>
+<tr class="separator:a55c6097b36412f9facc8a4cf7e898186 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2e8319347c3b01638027b4abbe72fda6 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2e8319347c3b01638027b4abbe72fda6">GetNameSpace</a> () const =0</td></tr>
+<tr class="memdesc:a2e8319347c3b01638027b4abbe72fda6 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the name space of the node. <a href="#a2e8319347c3b01638027b4abbe72fda6">More...</a><br /></td></tr>
+<tr class="separator:a2e8319347c3b01638027b4abbe72fda6 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a549f1adeea470827a6201b3b4c596f1e inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aa54f5ed241da9437ad01c1047a199f56">spIPath</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a549f1adeea470827a6201b3b4c596f1e">GetPath</a> () const =0</td></tr>
+<tr class="memdesc:a549f1adeea470827a6201b3b4c596f1e inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the path of the node from the root of the metadata. <a href="#a549f1adeea470827a6201b3b4c596f1e">More...</a><br /></td></tr>
+<tr class="separator:a549f1adeea470827a6201b3b4c596f1e inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af898813d17af58fb1a828d92a74d7dd3 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#af898813d17af58fb1a828d92a74d7dd3">QualifiersCount</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:af898813d17af58fb1a828d92a74d7dd3 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the count of the qualifiers attached with the node. <a href="#af898813d17af58fb1a828d92a74d7dd3">More...</a><br /></td></tr>
+<tr class="separator:af898813d17af58fb1a828d92a74d7dd3 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2866bcde949c37aeb72cdba8dddcac95 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2866bcde949c37aeb72cdba8dddcac95">GetQualifierNodeType</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const =0</td></tr>
+<tr class="memdesc:a2866bcde949c37aeb72cdba8dddcac95 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the type of the node's qualifier having specified namespace and name. <a href="#a2866bcde949c37aeb72cdba8dddcac95">More...</a><br /></td></tr>
+<tr class="separator:a2866bcde949c37aeb72cdba8dddcac95 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a5e6dd9a58a288f20fd0a667a30a2ae inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a5e6dd9a58a288f20fd0a667a30a2ae">InsertQualifier</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;node)=0</td></tr>
+<tr class="memdesc:a5a5e6dd9a58a288f20fd0a667a30a2ae inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inserts a given qualifier node. <a href="#a5a5e6dd9a58a288f20fd0a667a30a2ae">More...</a><br /></td></tr>
+<tr class="separator:a5a5e6dd9a58a288f20fd0a667a30a2ae inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a2692b8281984d9fe6de6c169332f2c inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a2692b8281984d9fe6de6c169332f2c">ReplaceQualifier</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;node)=0</td></tr>
+<tr class="memdesc:a5a2692b8281984d9fe6de6c169332f2c inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replaces a given qualifier node. <a href="#a5a2692b8281984d9fe6de6c169332f2c">More...</a><br /></td></tr>
+<tr class="separator:a5a2692b8281984d9fe6de6c169332f2c inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a87f03e9924418ae5f7b6fa63def6eee8 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a87f03e9924418ae5f7b6fa63def6eee8">RemoveQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)=0</td></tr>
+<tr class="memdesc:a87f03e9924418ae5f7b6fa63def6eee8 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes the qualifier node with the specified nameSpace and name. <a href="#a87f03e9924418ae5f7b6fa63def6eee8">More...</a><br /></td></tr>
+<tr class="separator:a87f03e9924418ae5f7b6fa63def6eee8 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3289deed9715f661f5f588dc38642baa inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a3289deed9715f661f5f588dc38642baa">IsArrayItem</a> () const =0</td></tr>
+<tr class="memdesc:a3289deed9715f661f5f588dc38642baa inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates whether the node is a direct child of an array node. <a href="#a3289deed9715f661f5f588dc38642baa">More...</a><br /></td></tr>
+<tr class="separator:a3289deed9715f661f5f588dc38642baa inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0d545f6b4b2b9760b63c902317c43a94 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a0d545f6b4b2b9760b63c902317c43a94">IsQualifierNode</a> () const =0</td></tr>
+<tr class="memdesc:a0d545f6b4b2b9760b63c902317c43a94 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates whether the node is a qualifier node. <a href="#a0d545f6b4b2b9760b63c902317c43a94">More...</a><br /></td></tr>
+<tr class="separator:a0d545f6b4b2b9760b63c902317c43a94 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2447e6ea34adbe073a639c703015db90 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2447e6ea34adbe073a639c703015db90">GetIndex</a> () const =0</td></tr>
+<tr class="memdesc:a2447e6ea34adbe073a639c703015db90 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the index of the node in case it is an array item. <a href="#a2447e6ea34adbe073a639c703015db90">More...</a><br /></td></tr>
+<tr class="separator:a2447e6ea34adbe073a639c703015db90 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adfd1ce7bd20268240769f8a6a405a8ee inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#adfd1ce7bd20268240769f8a6a405a8ee">HasQualifiers</a> () const =0</td></tr>
+<tr class="memdesc:adfd1ce7bd20268240769f8a6a405a8ee inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates whether the node has any qualifiers associated with it. <a href="#adfd1ce7bd20268240769f8a6a405a8ee">More...</a><br /></td></tr>
+<tr class="separator:adfd1ce7bd20268240769f8a6a405a8ee inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa288c34c9bccb73ae73b653f3c769ade inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa288c34c9bccb73ae73b653f3c769ade">HasContent</a> () const =0</td></tr>
+<tr class="memdesc:aa288c34c9bccb73ae73b653f3c769ade inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether the node has any content or not. return A bool value indicating the presence of contents in the node apart from qualifiers. <a href="#aa288c34c9bccb73ae73b653f3c769ade">More...</a><br /></td></tr>
+<tr class="separator:aa288c34c9bccb73ae73b653f3c769ade inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5075ad988ba61e055b6ee6bbeaf25e25 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5075ad988ba61e055b6ee6bbeaf25e25">IsEmpty</a> () const =0</td></tr>
+<tr class="memdesc:a5075ad988ba61e055b6ee6bbeaf25e25 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether the node is empty. return A bool value indicating whether the contents and qualifiers of a node are empty. <a href="#a5075ad988ba61e055b6ee6bbeaf25e25">More...</a><br /></td></tr>
+<tr class="separator:a5075ad988ba61e055b6ee6bbeaf25e25 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab78ba3aaadf4b0109e610505e753de50 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ab78ba3aaadf4b0109e610505e753de50">HasChanged</a> () const =0</td></tr>
+<tr class="memdesc:ab78ba3aaadf4b0109e610505e753de50 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the status about any change done to the node or its children or qualifiers. returns a bool value indicating whether some changes have been performed on the node or its children or qualifiers. for a simple node, true will be returned in scenarios like when the node's value or qualifiers are modified. for an array node or a structure node, true will be returned in scenarios like when the node's children or the node's qualifiers are modified. <a href="#ab78ba3aaadf4b0109e610505e753de50">More...</a><br /></td></tr>
+<tr class="separator:ab78ba3aaadf4b0109e610505e753de50 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a673b6b4d69b2c9d85f2fa440d413ace3 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a673b6b4d69b2c9d85f2fa440d413ace3">AcknowledgeChanges</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a673b6b4d69b2c9d85f2fa440d413ace3 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Acknowledges that changes for the node and its children and qualifiers have been taken care of. for a simple node, changes that will be acknowledged in scenarios like when the node's value or node's qualifiers were modified. for an array node or a structure node, changes will be acknowledged in scenarios like when the node's children were or the node's qualifiers were modified. <a href="#a673b6b4d69b2c9d85f2fa440d413ace3">More...</a><br /></td></tr>
+<tr class="separator:a673b6b4d69b2c9d85f2fa440d413ace3 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4b615b0eef081f3c23385f28728aa462 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4b615b0eef081f3c23385f28728aa462">Clear</a> (bool contents=true, bool qualifiers=true)=0</td></tr>
+<tr class="memdesc:a4b615b0eef081f3c23385f28728aa462 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the contents of the node. <a href="#a4b615b0eef081f3c23385f28728aa462">More...</a><br /></td></tr>
+<tr class="separator:a4b615b0eef081f3c23385f28728aa462 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2d613694adcedb569145aff06d0bc595 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2d613694adcedb569145aff06d0bc595">Clone</a> (bool ignoreEmptyNodes=false, bool ignoreNodesWithOnlyQualifiers=false) const =0</td></tr>
+<tr class="memdesc:a2d613694adcedb569145aff06d0bc595 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual copy constructor. <a href="#a2d613694adcedb569145aff06d0bc595">More...</a><br /></td></tr>
+<tr class="separator:a2d613694adcedb569145aff06d0bc595 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aee7e1f35ac174874234ba5e913a6bfaa inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">spcINode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aee7e1f35ac174874234ba5e913a6bfaa">GetParent</a> () const </td></tr>
+<tr class="memdesc:aee7e1f35ac174874234ba5e913a6bfaa inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the parent node of the node. <a href="#aee7e1f35ac174874234ba5e913a6bfaa">More...</a><br /></td></tr>
+<tr class="separator:aee7e1f35ac174874234ba5e913a6bfaa inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4533c1d11fc2d32c166c9ce05fe01b3c inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4533c1d11fc2d32c166c9ce05fe01b3c">GetParent</a> ()=0</td></tr>
+<tr class="separator:a4533c1d11fc2d32c166c9ce05fe01b3c inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9972ca54948952083a930166448c05c0 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab423c366f29043e79694f805bceddb56">spcINodeIterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a9972ca54948952083a930166448c05c0">QualifiersIterator</a> () const </td></tr>
+<tr class="separator:a9972ca54948952083a930166448c05c0 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa168f37bc38763df55fb1022d55886bd inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a5386a735d9eb66d5859e4657dfeebb7c">spINodeIterator</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa168f37bc38763df55fb1022d55886bd">QualifiersIterator</a> ()=0</td></tr>
+<tr class="separator:aa168f37bc38763df55fb1022d55886bd inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a96a99fa56a2b088691ecad5a0cf6e54d inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">spcINode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a96a99fa56a2b088691ecad5a0cf6e54d">GetQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const </td></tr>
+<tr class="memdesc:a96a99fa56a2b088691ecad5a0cf6e54d inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the qualifier of the node having specified namespace and name. <a href="#a96a99fa56a2b088691ecad5a0cf6e54d">More...</a><br /></td></tr>
+<tr class="separator:a96a99fa56a2b088691ecad5a0cf6e54d inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7701069162b4f677026624a5f2b3f788 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a7701069162b4f677026624a5f2b3f788">GetQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)=0</td></tr>
+<tr class="separator:a7701069162b4f677026624a5f2b3f788 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1524d74e397863cb9324838862f70d7b inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a1524d74e397863cb9324838862f70d7b">GetSimpleQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const </td></tr>
+<tr class="memdesc:a1524d74e397863cb9324838862f70d7b inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the node's qualifier having specified name space and name as simple node. <a href="#a1524d74e397863cb9324838862f70d7b">More...</a><br /></td></tr>
+<tr class="separator:a1524d74e397863cb9324838862f70d7b inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2831fe03981afd9af12e775bda89361e inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2831fe03981afd9af12e775bda89361e">GetSimpleQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)</td></tr>
+<tr class="separator:a2831fe03981afd9af12e775bda89361e inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a844a40cd69e0d87226ce1146d733edd6 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a844a40cd69e0d87226ce1146d733edd6">GetStructureQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const </td></tr>
+<tr class="memdesc:a844a40cd69e0d87226ce1146d733edd6 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the node's qualifier having specified name space and name as structure node. <a href="#a844a40cd69e0d87226ce1146d733edd6">More...</a><br /></td></tr>
+<tr class="separator:a844a40cd69e0d87226ce1146d733edd6 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4fb3c837b8c28501b2e7a3376a2cf382 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4fb3c837b8c28501b2e7a3376a2cf382">GetStructureQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)</td></tr>
+<tr class="separator:a4fb3c837b8c28501b2e7a3376a2cf382 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab55c9dad49840d58a1c2c16b9f1962ad inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ab55c9dad49840d58a1c2c16b9f1962ad">GetArrayQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const </td></tr>
+<tr class="memdesc:ab55c9dad49840d58a1c2c16b9f1962ad inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the node's qualifier having specified name space and name as an array node. <a href="#ab55c9dad49840d58a1c2c16b9f1962ad">More...</a><br /></td></tr>
+<tr class="separator:ab55c9dad49840d58a1c2c16b9f1962ad inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a2e68d1345ed6ca2e5d1bfada42b13f inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a2e68d1345ed6ca2e5d1bfada42b13f">GetArrayQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)</td></tr>
+<tr class="separator:a5a2e68d1345ed6ca2e5d1bfada42b13f inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeb9797165d96d06998de79dd19a9f846 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aeb9797165d96d06998de79dd19a9f846">ConvertToSimpleNode</a> () const </td></tr>
+<tr class="memdesc:aeb9797165d96d06998de79dd19a9f846 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts Node to a simple node, if possible. <a href="#aeb9797165d96d06998de79dd19a9f846">More...</a><br /></td></tr>
+<tr class="separator:aeb9797165d96d06998de79dd19a9f846 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad8e7ef140cb5ff094789abfcc879c94b inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ad8e7ef140cb5ff094789abfcc879c94b">ConvertToSimpleNode</a> ()=0</td></tr>
+<tr class="separator:ad8e7ef140cb5ff094789abfcc879c94b inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5ea317fcd59694184089a9774c866b22 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5ea317fcd59694184089a9774c866b22">ConvertToStructureNode</a> () const </td></tr>
+<tr class="memdesc:a5ea317fcd59694184089a9774c866b22 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts Node to a structure node type, if possible. <a href="#a5ea317fcd59694184089a9774c866b22">More...</a><br /></td></tr>
+<tr class="separator:a5ea317fcd59694184089a9774c866b22 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad5f62a4ae9a9630c8106a04bd0c2a0a3 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ad5f62a4ae9a9630c8106a04bd0c2a0a3">ConvertToStructureNode</a> ()=0</td></tr>
+<tr class="separator:ad5f62a4ae9a9630c8106a04bd0c2a0a3 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af180be62ecd26edf90df0fe3ea75941e inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#af180be62ecd26edf90df0fe3ea75941e">ConvertToArrayNode</a> () const </td></tr>
+<tr class="memdesc:af180be62ecd26edf90df0fe3ea75941e inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts Node to an array node type, if possible. <a href="#af180be62ecd26edf90df0fe3ea75941e">More...</a><br /></td></tr>
+<tr class="separator:af180be62ecd26edf90df0fe3ea75941e inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0d67ad7708fb6f007ea1152b79e65f49 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a0d67ad7708fb6f007ea1152b79e65f49">ConvertToArrayNode</a> ()=0</td></tr>
+<tr class="separator:a0d67ad7708fb6f007ea1152b79e65f49 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a08f9ed4dee6c899f65eb51e3d7f9858d inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a1e81ce748e90e850d0a48b0b5943fce2">spcIMetadata</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a08f9ed4dee6c899f65eb51e3d7f9858d">ConvertToMetadata</a> () const </td></tr>
+<tr class="memdesc:a08f9ed4dee6c899f65eb51e3d7f9858d inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts Node to a metadata node type, if possible. <a href="#a08f9ed4dee6c899f65eb51e3d7f9858d">More...</a><br /></td></tr>
+<tr class="separator:a08f9ed4dee6c899f65eb51e3d7f9858d inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a72dc534e1af718599ac185563a02612a inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a7f1de39fd79aeac4402eba73cb1ffe82">spIMetadata</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a72dc534e1af718599ac185563a02612a">ConvertToMetadata</a> ()=0</td></tr>
+<tr class="separator:a72dc534e1af718599ac185563a02612a inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1ISharedObject')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td></tr>
+<tr class="memitem:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc">Acquire</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the clients of the object to indicate that he has acquired the shared ownership of the object. <a href="#ab90d4ec1fcd975a7ac62dcb866335cdc">More...</a><br /></td></tr>
+<tr class="separator:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3">Release</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the clients of the object to indicate he has released his shared ownership of the object. If this being the last client than this function should call Destroy to delete and release the memory. <a href="#abf5a54e09f87366170ea19c618f68bc3">More...</a><br /></td></tr>
+<tr class="separator:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
+<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
+<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a> ()</td></tr>
+<tr class="memdesc:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to an interface object implementing the requested version. <a href="#ad6539461695decfaea8a44798db51e54">More...</a><br /></td></tr>
+<tr class="separator:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
+<tr class="memitem:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> const requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070">GetInterfacePointer</a> () const </td></tr>
+<tr class="memdesc:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to a const interface object implementing the requested version. <a href="#ab93a940e2946c14a76ebbd9552cab070">More...</a><br /></td></tr>
+<tr class="separator:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1IThreadSafe')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td></tr>
+<tr class="memitem:afe35614cb88e2bdb32996cf4ac15b211 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#afe35614cb88e2bdb32996cf4ac15b211">EnableThreadSafety</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:afe35614cb88e2bdb32996cf4ac15b211 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables the thread safety on an object. <a href="#afe35614cb88e2bdb32996cf4ac15b211">More...</a><br /></td></tr>
+<tr class="separator:afe35614cb88e2bdb32996cf4ac15b211 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a214bb1b5840dbd5576e764dd2220b261 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a214bb1b5840dbd5576e764dd2220b261">DisableThreadSafety</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a214bb1b5840dbd5576e764dd2220b261 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disables the thread safety on an object. <a href="#a214bb1b5840dbd5576e764dd2220b261">More...</a><br /></td></tr>
+<tr class="separator:a214bb1b5840dbd5576e764dd2220b261 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a261e2f6af96b75015e5f8318f32be7f9 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a261e2f6af96b75015e5f8318f32be7f9">IsThreadSafe</a> () const =0</td></tr>
+<tr class="memdesc:a261e2f6af96b75015e5f8318f32be7f9 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Informs whether object can be used across multiple threads or not. <a href="#a261e2f6af96b75015e5f8318f32be7f9">More...</a><br /></td></tr>
+<tr class="separator:a261e2f6af96b75015e5f8318f32be7f9 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad6ca35dc12323a3a970066beb4c63e84"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#ad6ca35dc12323a3a970066beb4c63e84">GetStructureNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path) const </td></tr>
+<tr class="memdesc:ad6ca35dc12323a3a970066beb4c63e84"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a structure node specified by the path relative to the node. <a href="#ad6ca35dc12323a3a970066beb4c63e84">More...</a><br /></td></tr>
+<tr class="separator:ad6ca35dc12323a3a970066beb4c63e84"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2abb6cdf40e6d4c91e30b736586e89dc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a2abb6cdf40e6d4c91e30b736586e89dc">GetStructureNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path)</td></tr>
+<tr class="separator:a2abb6cdf40e6d4c91e30b736586e89dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2e17bda06b20439a0076ea2fae68594d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a2e17bda06b20439a0076ea2fae68594d">GetArrayNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path) const </td></tr>
+<tr class="memdesc:a2e17bda06b20439a0076ea2fae68594d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get an array node specified by the path relative to the node. <a href="#a2e17bda06b20439a0076ea2fae68594d">More...</a><br /></td></tr>
+<tr class="separator:a2e17bda06b20439a0076ea2fae68594d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aba3fc78fab746460b1e7e01fe2e004b6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#aba3fc78fab746460b1e7e01fe2e004b6">GetArrayNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path)</td></tr>
+<tr class="separator:aba3fc78fab746460b1e7e01fe2e004b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a51af220e29b40e8520ae5765f28515bf"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a51af220e29b40e8520ae5765f28515bf">~ICompositeNode_v1</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:a51af220e29b40e8520ae5765f28515bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pub_types_classAdobeXMPCore_1_1INode__v1"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classAdobeXMPCore_1_1INode__v1')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td></tr>
+<tr class="memitem:a46b01045c1addbc8f444bd21384b7913 inherit pub_types_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> { <br />
+&#160;&#160;<a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913aae32cc414cc7adaf3b2a1c375f2cb3bb">kNTNone</a> = 0,
+<a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a97e0c4fb69029d0d152c068c10736234">kNTSimple</a> = 1,
+<a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a60c6b4c3dfc99d8584866f5f18ff2610">kNTArray</a> = 1 &lt;&lt; 1,
+<a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a7542b80b3b688cd3d210d62d12dbe471">kNTStructure</a> = 1 &lt;&lt; 2,
+<br />
+&#160;&#160;<a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a68bac77fd8140a60490eb78f0b533e21">kNTAll</a> = kAllBits
+<br />
+ }<tr class="memdesc:a46b01045c1addbc8f444bd21384b7913"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates various types of node available in XMP Data Model like simple, array and structure. <a href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:a46b01045c1addbc8f444bd21384b7913 inherit pub_types_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCore_1_1INode__v1"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCore_1_1INode__v1')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td></tr>
+<tr class="memitem:affdbed044179bbde65ffc28b20e28ecb inherit pro_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#affdbed044179bbde65ffc28b20e28ecb">~INode_v1</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:affdbed044179bbde65ffc28b20e28ecb inherit pro_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1ISharedObject')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td></tr>
+<tr class="memitem:a5869ff89d0b7dd0a7b525401a1d57b31 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31">~ISharedObject</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="separator:a5869ff89d0b7dd0a7b525401a1d57b31 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afcb42109aed83c3b0c133bc413388037 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#afcb42109aed83c3b0c133bc413388037">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:afcb42109aed83c3b0c133bc413388037 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
+<tr class="memitem:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a> ()</td></tr>
+<tr class="separator:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1IThreadSafe"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1IThreadSafe')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td></tr>
+<tr class="memitem:a0f31eb9677c4af06288319e363c21ebc inherit pro_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a0f31eb9677c4af06288319e363c21ebc">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:a0f31eb9677c4af06288319e363c21ebc inherit pro_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Version1 of the interface that serves as a base interface to all composite types of nodes in the XMP DOM ( like Arrays and Structures ). </p>
+<p>Provides all the functions to get various properties of the composite node. </p><dl class="section attention"><dt>Attention</dt><dd>Support multi threading through locks but can be enabled/disabled by the client. By default every object created does not support multi-threading. </dd></dl>
+
+<p>Definition at line <a class="el" href="ICompositeNode_8h_source.html#l00025">25</a> of file <a class="el" href="ICompositeNode_8h_source.html">ICompositeNode.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a51af220e29b40e8520ae5765f28515bf"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual AdobeXMPCore::ICompositeNode_v1::~ICompositeNode_v1 </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Destructor </p>
+
+<p>Definition at line <a class="el" href="ICompositeNode_8h_source.html#l00257">257</a> of file <a class="el" href="ICompositeNode_8h_source.html">ICompositeNode.h</a>.</p>
+
+<p>References <a class="el" href="XMPCommonDefines_8h_source.html#l00117">__NOTHROW__</a>, and <a class="el" href="XMPCommonDefines_8h_source.html#l00107">REQ_FRIEND_CLASS_DECLARATION</a>.</p>
+<div class="fragment"><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;{}</div></div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a6795e662d9daea5b88de08261488964b"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCore::ICompositeNode_v1::AppendNode </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;&#160;</td>
+ <td class="paramname"><em>node</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Appends a given node as the child of the node. </p>
+<p>In case of array node it is appended at the last and in case of structure node qualified name of the node to be inserted determines its position. </p><dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">node</td><td>Shared pointer to an object of #AdobeXMPCore::INode containing the node to be appended as the last child. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section note"><dt>Note</dt><dd>This operation is not currently implemented for the ICompositeNode interface. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in following cases:<ol type="1">
+<li>provided node is invalid.</li>
+<li>type of given node is not same as other child items of the array node.</li>
+<li>given node is already a child of some other node.</li>
+<li>composite node already has a child node with the same qualified name in case of structure node. </li>
+</ol>
+</dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="abf3323ce933f5336bc0f64955c0bdd11"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL AdobeXMPCore::ICompositeNode_v1::ChildCount </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Get the count of child nodes of the composite node. </p>
+<dl class="section return"><dt>Returns</dt><dd>an object of type #<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a> containing the count of children of the node. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a2e17bda06b20439a0076ea2fae68594d"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a> AdobeXMPCore::ICompositeNode_v1::GetArrayNodeAtPath </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;&#160;</td>
+ <td class="paramname"><em>path</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Get an array node specified by the path relative to the node. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">path</td><td>Shared pointer to a const #AdobeXMPCore::IPath object containing the relative path from the node to the node client is interested in. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to const or non const #IArrayNode object containing node. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>In case no node exists at the given path an invalid shared pointer is returned. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
+<li>a node exists at the given path but is not an array node. </li>
+</ul>
+</dd></dl>
+
+<p>Definition at line <a class="el" href="ICompositeNode_8h_source.html#l00185">185</a> of file <a class="el" href="ICompositeNode_8h_source.html">ICompositeNode.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; {</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keyword">auto</span> node = <a class="code" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a5c4cddddb0702e61d85cff16c5e72632">GetNodeAtPath</a>( path );</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToArrayNode();</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a>();</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; }</div><div class="ttc" id="namespaceAdobeXMPCore_html_a4ea338a9eed923abf6aba47a27926a0f"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">AdobeXMPCore::spcIArrayNode</a></div><div class="ttdeci">shared_ptr&lt; const IArrayNode &gt; spcIArrayNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00114">XMPCoreFwdDeclarations.h:114</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1ICompositeNode__v1_html_a5c4cddddb0702e61d85cff16c5e72632"><div class="ttname"><a href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a5c4cddddb0702e61d85cff16c5e72632">AdobeXMPCore::ICompositeNode_v1::GetNodeAtPath</a></div><div class="ttdeci">XMP_PRIVATE spcINode GetNodeAtPath(const spcIPath &amp;path) const </div><div class="ttdoc">Get the node specified by the path relative to the composite node. </div><div class="ttdef"><b>Definition:</b> <a href="ICompositeNode_8h_source.html#l00047">ICompositeNode.h:47</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="aba3fc78fab746460b1e7e01fe2e004b6"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a> AdobeXMPCore::ICompositeNode_v1::GetArrayNodeAtPath </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;&#160;</td>
+ <td class="paramname"><em>path</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="ICompositeNode_8h_source.html#l00191">191</a> of file <a class="el" href="ICompositeNode_8h_source.html">ICompositeNode.h</a>.</p>
+
+<p>References <a class="el" href="namespaceAdobeXMPCore.html#a663e9a570224c4361f5ab883e32cf460">AdobeXMPCore::kICompositeNodeID()</a>, and <a class="el" href="XMP__Environment_8h_source.html#l00189">XMP_PRIVATE</a>.</p>
+<div class="fragment"><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; {</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keyword">auto</span> node = <a class="code" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a5c4cddddb0702e61d85cff16c5e72632">GetNodeAtPath</a>( path );</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToArrayNode();</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a>();</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; }</div><div class="ttc" id="namespaceAdobeXMPCore_html_a24e8e82d63d879d77408ce5c7e30c609"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">AdobeXMPCore::spIArrayNode</a></div><div class="ttdeci">shared_ptr&lt; IArrayNode &gt; spIArrayNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00113">XMPCoreFwdDeclarations.h:113</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1ICompositeNode__v1_html_a5c4cddddb0702e61d85cff16c5e72632"><div class="ttname"><a href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a5c4cddddb0702e61d85cff16c5e72632">AdobeXMPCore::ICompositeNode_v1::GetNodeAtPath</a></div><div class="ttdeci">XMP_PRIVATE spcINode GetNodeAtPath(const spcIPath &amp;path) const </div><div class="ttdoc">Get the node specified by the path relative to the composite node. </div><div class="ttdef"><b>Definition:</b> <a href="ICompositeNode_8h_source.html#l00047">ICompositeNode.h:47</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a5c4cddddb0702e61d85cff16c5e72632"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">spcINode</a> AdobeXMPCore::ICompositeNode_v1::GetNodeAtPath </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;&#160;</td>
+ <td class="paramname"><em>path</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Get the node specified by the path relative to the composite node. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">path</td><td>Shared pointer to a const #AdobeXMPCore::IPath object containing the relative path from the node to the node client is interested in. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to either a const or non const #AdobeXMPCore::INode object containing node. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>In case no node exists at the given path an invalid shared pointer is returned. </dd></dl>
+
+<p>Definition at line <a class="el" href="ICompositeNode_8h_source.html#l00047">47</a> of file <a class="el" href="ICompositeNode_8h_source.html">ICompositeNode.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> ICompositeNode_v1 * <span class="keyword">&gt;</span>( this )-&gt;<a class="code" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a5c4cddddb0702e61d85cff16c5e72632">GetNodeAtPath</a>( path );</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; }</div><div class="ttc" id="classAdobeXMPCore_1_1ICompositeNode__v1_html_a5c4cddddb0702e61d85cff16c5e72632"><div class="ttname"><a href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a5c4cddddb0702e61d85cff16c5e72632">AdobeXMPCore::ICompositeNode_v1::GetNodeAtPath</a></div><div class="ttdeci">XMP_PRIVATE spcINode GetNodeAtPath(const spcIPath &amp;path) const </div><div class="ttdoc">Get the node specified by the path relative to the composite node. </div><div class="ttdef"><b>Definition:</b> <a href="ICompositeNode_8h_source.html#l00047">ICompositeNode.h:47</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a0dd2a64d53b361b96bdfb597c5e35579"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL AdobeXMPCore::ICompositeNode_v1::GetNodeAtPath </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;&#160;</td>
+ <td class="paramname"><em>path</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac5e3227436e3ee11d0df7f3a176402e0"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL AdobeXMPCore::ICompositeNode_v1::GetNodeTypeAtPath </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;&#160;</td>
+ <td class="paramname"><em>path</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Get the node type specified by the path relative to the composite node. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">path</td><td>Shared pointer to a const #AdobeXMPCore::IPath object containing the relative path from the node to the node client is interested in. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The type of the node. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>In case no node exists at the given path a value #eNodeType::kNTNone is returned. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a93d1009b739d8a6c40ebbf4aa75051af"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a> AdobeXMPCore::ICompositeNode_v1::GetSimpleNodeAtPath </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;&#160;</td>
+ <td class="paramname"><em>path</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Get a simple node specified by the path relative to the node. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">path</td><td>Shared pointer to a const #AdobeXMPCore::IPath object containing the relative path from the node to the node client is interested in. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to const or non const #ISimpleNode object containing node. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>In case no node exists at the given path an invalid shared pointer is returned. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
+<li>a node exists at the given path but is not a simple node. </li>
+</ul>
+</dd></dl>
+
+<p>Definition at line <a class="el" href="ICompositeNode_8h_source.html#l00139">139</a> of file <a class="el" href="ICompositeNode_8h_source.html">ICompositeNode.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; {</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">auto</span> node = <a class="code" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a5c4cddddb0702e61d85cff16c5e72632">GetNodeAtPath</a>( path );</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToSimpleNode();</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a>();</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; }</div><div class="ttc" id="classAdobeXMPCore_1_1ICompositeNode__v1_html_a5c4cddddb0702e61d85cff16c5e72632"><div class="ttname"><a href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a5c4cddddb0702e61d85cff16c5e72632">AdobeXMPCore::ICompositeNode_v1::GetNodeAtPath</a></div><div class="ttdeci">XMP_PRIVATE spcINode GetNodeAtPath(const spcIPath &amp;path) const </div><div class="ttdoc">Get the node specified by the path relative to the composite node. </div><div class="ttdef"><b>Definition:</b> <a href="ICompositeNode_8h_source.html#l00047">ICompositeNode.h:47</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a4cb671d44948c7505c33431ec12f6c1f"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">AdobeXMPCore::spcISimpleNode</a></div><div class="ttdeci">shared_ptr&lt; const ISimpleNode &gt; spcISimpleNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00078">XMPCoreFwdDeclarations.h:78</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a42c91ca3eeded6302163a96903927445"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a> AdobeXMPCore::ICompositeNode_v1::GetSimpleNodeAtPath </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;&#160;</td>
+ <td class="paramname"><em>path</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="ICompositeNode_8h_source.html#l00145">145</a> of file <a class="el" href="ICompositeNode_8h_source.html">ICompositeNode.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; {</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keyword">auto</span> node = <a class="code" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a5c4cddddb0702e61d85cff16c5e72632">GetNodeAtPath</a>( path );</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToSimpleNode();</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a>();</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; }</div><div class="ttc" id="namespaceAdobeXMPCore_html_ab20ecb8d094c1dd81cb278370b746343"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">AdobeXMPCore::spISimpleNode</a></div><div class="ttdeci">shared_ptr&lt; ISimpleNode &gt; spISimpleNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00077">XMPCoreFwdDeclarations.h:77</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1ICompositeNode__v1_html_a5c4cddddb0702e61d85cff16c5e72632"><div class="ttname"><a href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a5c4cddddb0702e61d85cff16c5e72632">AdobeXMPCore::ICompositeNode_v1::GetNodeAtPath</a></div><div class="ttdeci">XMP_PRIVATE spcINode GetNodeAtPath(const spcIPath &amp;path) const </div><div class="ttdoc">Get the node specified by the path relative to the composite node. </div><div class="ttdef"><b>Definition:</b> <a href="ICompositeNode_8h_source.html#l00047">ICompositeNode.h:47</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="ad6ca35dc12323a3a970066beb4c63e84"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a> AdobeXMPCore::ICompositeNode_v1::GetStructureNodeAtPath </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;&#160;</td>
+ <td class="paramname"><em>path</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Get a structure node specified by the path relative to the node. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">path</td><td>Shared pointer to a const #AdobeXMPCore::IPath object containing the relative path from the node to the node client is interested in. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to const or non const #IStructureNode object containing node. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>In case no node exists at the given path an invalid shared pointer is returned. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
+<li>a node exists at the given path but is not a structure node. </li>
+</ul>
+</dd></dl>
+
+<p>Definition at line <a class="el" href="ICompositeNode_8h_source.html#l00162">162</a> of file <a class="el" href="ICompositeNode_8h_source.html">ICompositeNode.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; {</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">auto</span> node = <a class="code" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a5c4cddddb0702e61d85cff16c5e72632">GetNodeAtPath</a>( path );</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToStructureNode();</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a>();</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; }</div><div class="ttc" id="classAdobeXMPCore_1_1ICompositeNode__v1_html_a5c4cddddb0702e61d85cff16c5e72632"><div class="ttname"><a href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a5c4cddddb0702e61d85cff16c5e72632">AdobeXMPCore::ICompositeNode_v1::GetNodeAtPath</a></div><div class="ttdeci">XMP_PRIVATE spcINode GetNodeAtPath(const spcIPath &amp;path) const </div><div class="ttdoc">Get the node specified by the path relative to the composite node. </div><div class="ttdef"><b>Definition:</b> <a href="ICompositeNode_8h_source.html#l00047">ICompositeNode.h:47</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ab5807ab783087243a3676a19ad6f9b90"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">AdobeXMPCore::spcIStructureNode</a></div><div class="ttdeci">shared_ptr&lt; const IStructureNode &gt; spcIStructureNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00102">XMPCoreFwdDeclarations.h:102</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a2abb6cdf40e6d4c91e30b736586e89dc"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a> AdobeXMPCore::ICompositeNode_v1::GetStructureNodeAtPath </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;&#160;</td>
+ <td class="paramname"><em>path</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="ICompositeNode_8h_source.html#l00168">168</a> of file <a class="el" href="ICompositeNode_8h_source.html">ICompositeNode.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; {</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keyword">auto</span> node = <a class="code" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a5c4cddddb0702e61d85cff16c5e72632">GetNodeAtPath</a>( path );</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToStructureNode();</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a>();</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; }</div><div class="ttc" id="namespaceAdobeXMPCore_html_a957c57fcbb47c704fc5c31cf36dcbde7"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">AdobeXMPCore::spIStructureNode</a></div><div class="ttdeci">shared_ptr&lt; IStructureNode &gt; spIStructureNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00101">XMPCoreFwdDeclarations.h:101</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1ICompositeNode__v1_html_a5c4cddddb0702e61d85cff16c5e72632"><div class="ttname"><a href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a5c4cddddb0702e61d85cff16c5e72632">AdobeXMPCore::ICompositeNode_v1::GetNodeAtPath</a></div><div class="ttdeci">XMP_PRIVATE spcINode GetNodeAtPath(const spcIPath &amp;path) const </div><div class="ttdoc">Get the node specified by the path relative to the composite node. </div><div class="ttdef"><b>Definition:</b> <a href="ICompositeNode_8h_source.html#l00047">ICompositeNode.h:47</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a39f5d9b31976e7a243d11152cd57260b"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCore::ICompositeNode_v1::InsertNodeAtPath </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;&#160;</td>
+ <td class="paramname"><em>node</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;&#160;</td>
+ <td class="paramname"><em>path</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Inserts a given node at the path relative to the composite node. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">node</td><td>Shared pointer to an object of #AdobeXMPCore::INode containing the node to be inserted at the specified relative path. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">path</td><td>Shared pointer to a const #AdobeXMPCore::IPath object containing the relative path. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section note"><dt>Note</dt><dd>All the hierarchy of nodes is created if not present. </dd>
+<dd>
+This operation is not currently implemented for the ICompositeNode interface. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in following cases:<ol type="1">
+<li>given node is invalid.</li>
+<li>type of given node is not same as other child items of the array node.</li>
+<li>given node is already a child of some other node.</li>
+<li>given path is invalid or logically incorrect.</li>
+<li>type of given node is not suitable for the destination location.</li>
+<li>a node already exists at the specified path. </li>
+</ol>
+</dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a313df9421df168266a32592732c25d9f"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#a5386a735d9eb66d5859e4657dfeebb7c">spINodeIterator</a> APICALL AdobeXMPCore::ICompositeNode_v1::Iterator </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Get an iterator object to iterate over all the child nodes of the composite node. </p>
+<dl class="section return"><dt>Returns</dt><dd>a shared pointer to a const or non const #INodeIterator object. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="afa9e587b9293ff99d9f8b38b0cc07cad"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab423c366f29043e79694f805bceddb56">spcINodeIterator</a> AdobeXMPCore::ICompositeNode_v1::Iterator </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="ICompositeNode_8h_source.html#l00116">116</a> of file <a class="el" href="ICompositeNode_8h_source.html">ICompositeNode.h</a>.</p>
+
+<p>References <a class="el" href="XMPCommonDefines_8h_source.html#l00117">__NOTHROW__</a>.</p>
+<div class="fragment"><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> ICompositeNode_v1 * <span class="keyword">&gt;</span>( this )-&gt;<a class="code" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a313df9421df168266a32592732c25d9f">Iterator</a>();</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div><div class="ttc" id="classAdobeXMPCore_1_1ICompositeNode__v1_html_a313df9421df168266a32592732c25d9f"><div class="ttname"><a href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a313df9421df168266a32592732c25d9f">AdobeXMPCore::ICompositeNode_v1::Iterator</a></div><div class="ttdeci">virtual spINodeIterator APICALL Iterator()=0</div><div class="ttdoc">Get an iterator object to iterate over all the child nodes of the composite node. ...</div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a1c713f2e29d6d0e9d4a1ee800a679f06"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL AdobeXMPCore::ICompositeNode_v1::RemoveNodeAtPath </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;&#160;</td>
+ <td class="paramname"><em>path</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Removes the node specified by the path relative to the composite node. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">path</td><td>Shared pointer to a const #AdobeXMPCore::IPath object containing the relative path from the node to the node client is interested in. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to #AdobeXMPCore::INode object containing node which is removed from the tree. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>In case no node exists at the given path an invalid shared pointer is returned. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a2c51c5296da4abb8fa5d5999f686602b"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL AdobeXMPCore::ICompositeNode_v1::ReplaceNodeAtPath </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;&#160;</td>
+ <td class="paramname"><em>node</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;&#160;</td>
+ <td class="paramname"><em>path</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Replaces an existing node with the given node at the path relative to the composite node.. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">node</td><td>Shared pointer to an object of #AdobeXMPCore::INode. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">path</td><td>Shared pointer to a const #AdobeXMPCore::IPath object containing the relative path. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>a Shared pointer to the node being replaced. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>This operation is not currently implemented for the ICompositeNode interface. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in following cases:<ol type="1">
+<li>given node is invalid.</li>
+<li>type of given node is not same as other child items of the array node.</li>
+<li>given node is already a child of some other node.</li>
+<li>given index is less than 1 or greater than current child count.</li>
+<li>type of given node is not suitable for the destination location.</li>
+<li>no node exists at the specified path. </li>
+</ol>
+</dd></dl>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/<a class="el" href="ICompositeNode_8h_source.html">ICompositeNode.h</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCore_1_1ICompositeNode__v1.js b/docs/API/classAdobeXMPCore_1_1ICompositeNode__v1.js
new file mode 100755
index 0000000..5a6d9dd
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1ICompositeNode__v1.js
@@ -0,0 +1,20 @@
+var classAdobeXMPCore_1_1ICompositeNode__v1 =
+[
+ [ "~ICompositeNode_v1", "classAdobeXMPCore_1_1ICompositeNode__v1.html#a51af220e29b40e8520ae5765f28515bf", null ],
+ [ "AppendNode", "classAdobeXMPCore_1_1ICompositeNode__v1.html#a6795e662d9daea5b88de08261488964b", null ],
+ [ "ChildCount", "classAdobeXMPCore_1_1ICompositeNode__v1.html#abf3323ce933f5336bc0f64955c0bdd11", null ],
+ [ "GetArrayNodeAtPath", "classAdobeXMPCore_1_1ICompositeNode__v1.html#a2e17bda06b20439a0076ea2fae68594d", null ],
+ [ "GetArrayNodeAtPath", "classAdobeXMPCore_1_1ICompositeNode__v1.html#aba3fc78fab746460b1e7e01fe2e004b6", null ],
+ [ "GetNodeAtPath", "classAdobeXMPCore_1_1ICompositeNode__v1.html#a5c4cddddb0702e61d85cff16c5e72632", null ],
+ [ "GetNodeAtPath", "classAdobeXMPCore_1_1ICompositeNode__v1.html#a0dd2a64d53b361b96bdfb597c5e35579", null ],
+ [ "GetNodeTypeAtPath", "classAdobeXMPCore_1_1ICompositeNode__v1.html#ac5e3227436e3ee11d0df7f3a176402e0", null ],
+ [ "GetSimpleNodeAtPath", "classAdobeXMPCore_1_1ICompositeNode__v1.html#a93d1009b739d8a6c40ebbf4aa75051af", null ],
+ [ "GetSimpleNodeAtPath", "classAdobeXMPCore_1_1ICompositeNode__v1.html#a42c91ca3eeded6302163a96903927445", null ],
+ [ "GetStructureNodeAtPath", "classAdobeXMPCore_1_1ICompositeNode__v1.html#ad6ca35dc12323a3a970066beb4c63e84", null ],
+ [ "GetStructureNodeAtPath", "classAdobeXMPCore_1_1ICompositeNode__v1.html#a2abb6cdf40e6d4c91e30b736586e89dc", null ],
+ [ "InsertNodeAtPath", "classAdobeXMPCore_1_1ICompositeNode__v1.html#a39f5d9b31976e7a243d11152cd57260b", null ],
+ [ "Iterator", "classAdobeXMPCore_1_1ICompositeNode__v1.html#a313df9421df168266a32592732c25d9f", null ],
+ [ "Iterator", "classAdobeXMPCore_1_1ICompositeNode__v1.html#afa9e587b9293ff99d9f8b38b0cc07cad", null ],
+ [ "RemoveNodeAtPath", "classAdobeXMPCore_1_1ICompositeNode__v1.html#a1c713f2e29d6d0e9d4a1ee800a679f06", null ],
+ [ "ReplaceNodeAtPath", "classAdobeXMPCore_1_1ICompositeNode__v1.html#a2c51c5296da4abb8fa5d5999f686602b", null ]
+]; \ No newline at end of file
diff --git a/docs/API/classAdobeXMPCore_1_1ICompositeNode__v1.png b/docs/API/classAdobeXMPCore_1_1ICompositeNode__v1.png
new file mode 100755
index 0000000..b4619d7
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1ICompositeNode__v1.png
Binary files differ
diff --git a/docs/API/classAdobeXMPCore_1_1ICoreConfigurationManager__v1-members.html b/docs/API/classAdobeXMPCore_1_1ICoreConfigurationManager__v1-members.html
new file mode 100755
index 0000000..87ea720
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1ICoreConfigurationManager__v1-members.html
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">AdobeXMPCore::ICoreConfigurationManager_v1 Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html">AdobeXMPCore::ICoreConfigurationManager_v1</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc">Acquire</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html#acf69fdd4ec5c1eb47b6a41b052372504">DisableMultiThreading</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html">AdobeXMPCommon::IConfigurationManager_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html#a867de0412ef1c6baf40a35714edd3f9e">GetCoreConfigurationManager</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html">AdobeXMPCore::ICoreConfigurationManager_v1</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070">GetInterfacePointer</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html#a32c1e2b6af5182d30d298be95652a065">IsMultiThreaded</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html">AdobeXMPCommon::IConfigurationManager_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html#af078935e322f611a884061977d015d1d">RegisterErrorNotifier</a>(pIErrorNotifier_base clientErrorNotifier)=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html">AdobeXMPCommon::IConfigurationManager_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html#a4886e0ac409969583acccbe344489a85">RegisterMemoryAllocator</a>(pIMemoryAllocator memoryAllocator)=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html">AdobeXMPCommon::IConfigurationManager_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3">Release</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html#ad857109e294bdff85685fa0974020645">REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html">AdobeXMPCommon::IConfigurationManager_v1</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html#aab2f368cf6883a6cd92fe688a95516b5">~IConfigurationManager_v1</a>() __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html">AdobeXMPCommon::IConfigurationManager_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html#a16df3adfe25d46e47db70e02c1b8afd3">~ICoreConfigurationManager_v1</a>() __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html">AdobeXMPCore::ICoreConfigurationManager_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31">~ISharedObject</a>() __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html b/docs/API/classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html
new file mode 100755
index 0000000..bbd396e
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html
@@ -0,0 +1,193 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>AdobeXMPCore::ICoreConfigurationManager_v1 Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">AdobeXMPCore::ICoreConfigurationManager_v1 Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Version1 of the interface that represents configuration settings controllable by the client.
+ <a href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="ICoreConfigurationManager_8h_source.html">ICoreConfigurationManager.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for AdobeXMPCore::ICoreConfigurationManager_v1:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.png" usemap="#AdobeXMPCore::ICoreConfigurationManager_5Fv1_map" alt=""/>
+ <map id="AdobeXMPCore::ICoreConfigurationManager_5Fv1_map" name="AdobeXMPCore::ICoreConfigurationManager_v1_map">
+<area href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html" title="Version1 of the interface that represents configuration settings controllable by the client..." alt="AdobeXMPCommon::IConfigurationManager_v1" shape="rect" coords="150,56,440,80"/>
+<area href="classAdobeXMPCommon_1_1ISharedObject.html" title="Interface that serves as the base interface of all the externally exposed interfaces. " alt="AdobeXMPCommon::ISharedObject" shape="rect" coords="0,0,290,24"/>
+<area href="classAdobeXMPCommon_1_1IVersionable.html" title="Interface that serves as the base interface for all the externally exposed interfaces which needs to ..." alt="AdobeXMPCommon::IVersionable" shape="rect" coords="300,0,590,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr class="memitem:a867de0412ef1c6baf40a35714edd3f9e"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a123c6e847d41233c9e4ba6c64a650c7f">spICoreConfigurationManager</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html#a867de0412ef1c6baf40a35714edd3f9e">GetCoreConfigurationManager</a> ()</td></tr>
+<tr class="memdesc:a867de0412ef1c6baf40a35714edd3f9e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the configuration manager object associated with XMPCore library.. <a href="#a867de0412ef1c6baf40a35714edd3f9e">More...</a><br /></td></tr>
+<tr class="separator:a867de0412ef1c6baf40a35714edd3f9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:a16df3adfe25d46e47db70e02c1b8afd3"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html#a16df3adfe25d46e47db70e02c1b8afd3">~ICoreConfigurationManager_v1</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:a16df3adfe25d46e47db70e02c1b8afd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1IConfigurationManager__v1"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1IConfigurationManager__v1')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html">AdobeXMPCommon::IConfigurationManager_v1</a></td></tr>
+<tr class="memitem:ad857109e294bdff85685fa0974020645 inherit pro_methods_classAdobeXMPCommon_1_1IConfigurationManager__v1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html#ad857109e294bdff85685fa0974020645">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:ad857109e294bdff85685fa0974020645 inherit pro_methods_classAdobeXMPCommon_1_1IConfigurationManager__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1ISharedObject')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td></tr>
+<tr class="memitem:a5869ff89d0b7dd0a7b525401a1d57b31 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31">~ISharedObject</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="separator:a5869ff89d0b7dd0a7b525401a1d57b31 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afcb42109aed83c3b0c133bc413388037 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#afcb42109aed83c3b0c133bc413388037">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:afcb42109aed83c3b0c133bc413388037 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
+<tr class="memitem:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a> ()</td></tr>
+<tr class="separator:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1IConfigurationManager__v1"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1IConfigurationManager__v1')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html">AdobeXMPCommon::IConfigurationManager_v1</a></td></tr>
+<tr class="memitem:a4886e0ac409969583acccbe344489a85 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurationManager__v1"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html#a4886e0ac409969583acccbe344489a85">RegisterMemoryAllocator</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a605dcb5281a71a01673c81e6508f932f">pIMemoryAllocator</a> memoryAllocator)=0</td></tr>
+<tr class="memdesc:a4886e0ac409969583acccbe344489a85 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurationManager__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allows the client to plug in its own memory allocation procedures which will be used to allocate/deallocate memory from the heap. <a href="#a4886e0ac409969583acccbe344489a85">More...</a><br /></td></tr>
+<tr class="separator:a4886e0ac409969583acccbe344489a85 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurationManager__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af078935e322f611a884061977d015d1d inherit pub_methods_classAdobeXMPCommon_1_1IConfigurationManager__v1"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html#af078935e322f611a884061977d015d1d">RegisterErrorNotifier</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a4ad7bda9e1289b0bb93510402b6e86f9">pIErrorNotifier_base</a> clientErrorNotifier)=0</td></tr>
+<tr class="memdesc:af078935e322f611a884061977d015d1d inherit pub_methods_classAdobeXMPCommon_1_1IConfigurationManager__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allows the client to plug in its own error notification procedures which will be used to inform client about various warnings and errors. <a href="#af078935e322f611a884061977d015d1d">More...</a><br /></td></tr>
+<tr class="separator:af078935e322f611a884061977d015d1d inherit pub_methods_classAdobeXMPCommon_1_1IConfigurationManager__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acf69fdd4ec5c1eb47b6a41b052372504 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurationManager__v1"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html#acf69fdd4ec5c1eb47b6a41b052372504">DisableMultiThreading</a> ()=0</td></tr>
+<tr class="memdesc:acf69fdd4ec5c1eb47b6a41b052372504 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurationManager__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allows the client to disable the support for multi threading inside the library. By default library supports multi-threading. <a href="#acf69fdd4ec5c1eb47b6a41b052372504">More...</a><br /></td></tr>
+<tr class="separator:acf69fdd4ec5c1eb47b6a41b052372504 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurationManager__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a32c1e2b6af5182d30d298be95652a065 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurationManager__v1"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html#a32c1e2b6af5182d30d298be95652a065">IsMultiThreaded</a> () const =0</td></tr>
+<tr class="memdesc:a32c1e2b6af5182d30d298be95652a065 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurationManager__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether library supports multi threading or not. <a href="#a32c1e2b6af5182d30d298be95652a065">More...</a><br /></td></tr>
+<tr class="separator:a32c1e2b6af5182d30d298be95652a065 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurationManager__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aab2f368cf6883a6cd92fe688a95516b5 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurationManager__v1"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html#aab2f368cf6883a6cd92fe688a95516b5">~IConfigurationManager_v1</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:aab2f368cf6883a6cd92fe688a95516b5 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurationManager__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1ISharedObject')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td></tr>
+<tr class="memitem:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc">Acquire</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the clients of the object to indicate that he has acquired the shared ownership of the object. <a href="#ab90d4ec1fcd975a7ac62dcb866335cdc">More...</a><br /></td></tr>
+<tr class="separator:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3">Release</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the clients of the object to indicate he has released his shared ownership of the object. If this being the last client than this function should call Destroy to delete and release the memory. <a href="#abf5a54e09f87366170ea19c618f68bc3">More...</a><br /></td></tr>
+<tr class="separator:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
+<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
+<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a> ()</td></tr>
+<tr class="memdesc:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to an interface object implementing the requested version. <a href="#ad6539461695decfaea8a44798db51e54">More...</a><br /></td></tr>
+<tr class="separator:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
+<tr class="memitem:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> const requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070">GetInterfacePointer</a> () const </td></tr>
+<tr class="memdesc:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to a const interface object implementing the requested version. <a href="#ab93a940e2946c14a76ebbd9552cab070">More...</a><br /></td></tr>
+<tr class="separator:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Version1 of the interface that represents configuration settings controllable by the client. </p>
+<p>Provides functions through which client can plug in its own memory allocators, error notifiers. </p><dl class="section attention"><dt>Attention</dt><dd>Not Thread Safe as this functionality is generally used at the initialization phase. </dd></dl>
+
+<p>Definition at line <a class="el" href="ICoreConfigurationManager_8h_source.html#l00022">22</a> of file <a class="el" href="ICoreConfigurationManager_8h_source.html">ICoreConfigurationManager.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a16df3adfe25d46e47db70e02c1b8afd3"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual AdobeXMPCore::ICoreConfigurationManager_v1::~ICoreConfigurationManager_v1 </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Destructor </p>
+
+<p>Definition at line <a class="el" href="ICoreConfigurationManager_8h_source.html#l00094">94</a> of file <a class="el" href="ICoreConfigurationManager_8h_source.html">ICoreConfigurationManager.h</a>.</p>
+
+<p>References <a class="el" href="XMPCommonDefines_8h_source.html#l00107">REQ_FRIEND_CLASS_DECLARATION</a>.</p>
+<div class="fragment"><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;{}</div></div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a867de0412ef1c6baf40a35714edd3f9e"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a123c6e847d41233c9e4ba6c64a650c7f">spICoreConfigurationManager</a> AdobeXMPCore::ICoreConfigurationManager_v1::GetCoreConfigurationManager </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Get the configuration manager object associated with XMPCore library.. </p>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to an object of #ICoreConfigurationManager. </dd></dl>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/<a class="el" href="ICoreConfigurationManager_8h_source.html">ICoreConfigurationManager.h</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCore_1_1ICoreConfigurationManager__v1.js b/docs/API/classAdobeXMPCore_1_1ICoreConfigurationManager__v1.js
new file mode 100755
index 0000000..085682c
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1ICoreConfigurationManager__v1.js
@@ -0,0 +1,5 @@
+var classAdobeXMPCore_1_1ICoreConfigurationManager__v1 =
+[
+ [ "~ICoreConfigurationManager_v1", "classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html#a16df3adfe25d46e47db70e02c1b8afd3", null ],
+ [ "GetCoreConfigurationManager", "classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html#a867de0412ef1c6baf40a35714edd3f9e", null ]
+]; \ No newline at end of file
diff --git a/docs/API/classAdobeXMPCore_1_1ICoreConfigurationManager__v1.png b/docs/API/classAdobeXMPCore_1_1ICoreConfigurationManager__v1.png
new file mode 100755
index 0000000..05c4c70
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1ICoreConfigurationManager__v1.png
Binary files differ
diff --git a/docs/API/classAdobeXMPCore_1_1ICoreObjectFactory__v1-members.html b/docs/API/classAdobeXMPCore_1_1ICoreObjectFactory__v1-members.html
new file mode 100755
index 0000000..ea884de
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1ICoreObjectFactory__v1-members.html
@@ -0,0 +1,82 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCore_1_1ICoreObjectFactory__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">AdobeXMPCore::ICoreObjectFactory_v1 Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html">AdobeXMPCore::ICoreObjectFactory_v1</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a3bfacdef9fe44e03dbe826e5ab4d96a5">CreateArrayIndexPathSegment</a>(const char *nameSpace, sizet nameSpaceLength, sizet index, pcIError_base &amp;error) __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html">AdobeXMPCore::ICoreObjectFactory_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a483da62ca0b16df479b574ce159656a0">CreateArrayNode</a>(uint32 arrayForm, const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength, pcIError_base &amp;error) __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html">AdobeXMPCore::ICoreObjectFactory_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#ae86e711336af91dca23f4611b1f03724">CreateError</a>(uint32 domain, uint32 code, uint32 severity, pcIError_base &amp;error) __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html">AdobeXMPCommon::IObjectFactory_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a256fa057baeddc10da895731a2e24089">CreateMetadata</a>(pcIError_base &amp;error) __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html">AdobeXMPCore::ICoreObjectFactory_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#ae212c413d5ef30bdf35e2987f3752a8d">CreateNameSpacePrefixMap</a>(pcIError_base &amp;error) __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html">AdobeXMPCore::ICoreObjectFactory_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a385859faf85e5121f6e900da52fe7a51">CreatePath</a>(pcIError_base &amp;error) __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html">AdobeXMPCore::ICoreObjectFactory_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#adbaf560c74694b7ccdd6f26b2d320b35">CreatePropertyPathSegment</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength, pcIError_base &amp;error) __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html">AdobeXMPCore::ICoreObjectFactory_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#ae6c1338b3fc954aac0b3bb75a2f17d71">CreateQualifierPathSegment</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength, pcIError_base &amp;error) __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html">AdobeXMPCore::ICoreObjectFactory_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#ac7c3343a39a736921d804796a067acec">CreateQualifierSelectorPathSegment</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength, const char *value, sizet valueLength, pcIError_base &amp;error) __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html">AdobeXMPCore::ICoreObjectFactory_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a055e87d1002612143f5104c0e3613336">CreateSimpleNode</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength, const char *value, sizet valueLength, pcIError_base &amp;error) __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html">AdobeXMPCore::ICoreObjectFactory_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a6976b678d45b6e968eb7cf094c18bc24">CreateStructureNode</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength, pcIError_base &amp;error) __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html">AdobeXMPCore::ICoreObjectFactory_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#ae3e9eb977c305e48425654bec514f405">CreateUTF8String</a>(const char *buf, sizet count, pcIError_base &amp;error) __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html">AdobeXMPCommon::IObjectFactory_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a970dd5b32ca7601b29426a9384a64f56">DestroyCoreObjectFactory</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html">AdobeXMPCore::ICoreObjectFactory_v1</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a5c98e5f81eff5b0337347ef9416d2711">GetCoreConfigurationManager</a>(pcIError_base &amp;error) __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html">AdobeXMPCore::ICoreObjectFactory_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a6aecc832674b0e39a98cdde147fd84d9">GetCoreObjectFactory</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html">AdobeXMPCore::ICoreObjectFactory_v1</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#ac8eb0f7f78f5d0f21575a94c3f279926">GetDefaultNameSpacePrefixMap</a>(pcIError_base &amp;error) __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html">AdobeXMPCore::ICoreObjectFactory_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a9226dbf3ca7a02c871cacbe3b4865b6b">GetDOMImplementationRegistry</a>(pcIError_base &amp;error) __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html">AdobeXMPCore::ICoreObjectFactory_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#ab61b0ddca88dc76f0499d317f189b918">GetInterfaceID</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html">AdobeXMPCommon::IObjectFactory_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070">GetInterfacePointer</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#a81c25d76569a9249ab3c8a3e4490c73d">GetInterfaceVersion</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html">AdobeXMPCommon::IObjectFactory_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#a2dc282621cdfef44b424ac91efb965a1">MakeObjectFactory</a>(pIObjectFactory_base ptr)</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html">AdobeXMPCommon::IObjectFactory_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#aa906cf2b9efb958e49fd8c5122b8db96">MakeObjectFactory</a>(pcIObjectFactory_base ptr)</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html">AdobeXMPCommon::IObjectFactory_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a853dc2ebab4b052d6fb279b261fce2c7">ParsePath</a>(const char *path, sizet pathLength, pcINameSpacePrefixMap_base map, pcIError_base &amp;error) __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html">AdobeXMPCore::ICoreObjectFactory_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#a2f02bcd4eafa4d318197c39dd55d0957">REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html">AdobeXMPCommon::IObjectFactory_v1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a27a3f1ca72e364fa627aa71b52042da2">SetupCoreObjectFactory</a>(pICoreObjectFactory_base coreObjectFactory)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html">AdobeXMPCore::ICoreObjectFactory_v1</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a86ec61e722ad68c9f09e95a7ceaa4393">~ICoreObjectFactory_v1</a>() __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html">AdobeXMPCore::ICoreObjectFactory_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#a95fcbab435329d052ab42028da563c02">~IObjectFactory_v1</a>() __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html">AdobeXMPCommon::IObjectFactory_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCore_1_1ICoreObjectFactory__v1.html b/docs/API/classAdobeXMPCore_1_1ICoreObjectFactory__v1.html
new file mode 100755
index 0000000..8b4b24a
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1ICoreObjectFactory__v1.html
@@ -0,0 +1,1036 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>AdobeXMPCore::ICoreObjectFactory_v1 Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCore_1_1ICoreObjectFactory__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="classAdobeXMPCore_1_1ICoreObjectFactory__v1-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">AdobeXMPCore::ICoreObjectFactory_v1 Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Version1 of a interface that represents a factory to create various artifacts of XMP DOM like array, structure, path etc.
+ <a href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="ICoreObjectFactory_8h_source.html">ICoreObjectFactory.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for AdobeXMPCore::ICoreObjectFactory_v1:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classAdobeXMPCore_1_1ICoreObjectFactory__v1.png" usemap="#AdobeXMPCore::ICoreObjectFactory_5Fv1_map" alt=""/>
+ <map id="AdobeXMPCore::ICoreObjectFactory_5Fv1_map" name="AdobeXMPCore::ICoreObjectFactory_v1_map">
+<area href="classAdobeXMPCommon_1_1IObjectFactory__v1.html" title="Version1 of a interface that represents a factory to create various artifacts defined within AdobeXMP..." alt="AdobeXMPCommon::IObjectFactory_v1" shape="rect" coords="0,56,244,80"/>
+<area href="classAdobeXMPCommon_1_1IVersionable.html" title="Interface that serves as the base interface for all the externally exposed interfaces which needs to ..." alt="AdobeXMPCommon::IVersionable" shape="rect" coords="0,0,244,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:ae212c413d5ef30bdf35e2987f3752a8d"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#ad7423726463e791584bdeeb0a699c2d6">pINameSpacePrefixMap_base</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#ae212c413d5ef30bdf35e2987f3752a8d">CreateNameSpacePrefixMap</a> (<a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;error) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:ae212c413d5ef30bdf35e2987f3752a8d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an empty name space prefix map. <a href="#ae212c413d5ef30bdf35e2987f3752a8d">More...</a><br /></td></tr>
+<tr class="separator:ae212c413d5ef30bdf35e2987f3752a8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac8eb0f7f78f5d0f21575a94c3f279926"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#ad877a19389a4ba0dd5ef226470fd7f5b">pcINameSpacePrefixMap_base</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#ac8eb0f7f78f5d0f21575a94c3f279926">GetDefaultNameSpacePrefixMap</a> (<a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;error) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:ac8eb0f7f78f5d0f21575a94c3f279926"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides the default mapping of prefix string and nameSpace strings used by XMPCore. <a href="#ac8eb0f7f78f5d0f21575a94c3f279926">More...</a><br /></td></tr>
+<tr class="separator:ac8eb0f7f78f5d0f21575a94c3f279926"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adbaf560c74694b7ccdd6f26b2d320b35"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aa1d5ef746b351d46f0d9be2d53538d7b">pcIPathSegment_base</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#adbaf560c74694b7ccdd6f26b2d320b35">CreatePropertyPathSegment</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength, <a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;error) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:adbaf560c74694b7ccdd6f26b2d320b35"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a normal property path segment.These are essentially all properties (simple, struct and arrays). <a href="#adbaf560c74694b7ccdd6f26b2d320b35">More...</a><br /></td></tr>
+<tr class="separator:adbaf560c74694b7ccdd6f26b2d320b35"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3bfacdef9fe44e03dbe826e5ab4d96a5"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aa1d5ef746b351d46f0d9be2d53538d7b">pcIPathSegment_base</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a3bfacdef9fe44e03dbe826e5ab4d96a5">CreateArrayIndexPathSegment</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> index, <a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;error) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a3bfacdef9fe44e03dbe826e5ab4d96a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an array index path segment that denotes a specific element of an array. <a href="#a3bfacdef9fe44e03dbe826e5ab4d96a5">More...</a><br /></td></tr>
+<tr class="separator:a3bfacdef9fe44e03dbe826e5ab4d96a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae6c1338b3fc954aac0b3bb75a2f17d71"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aa1d5ef746b351d46f0d9be2d53538d7b">pcIPathSegment_base</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#ae6c1338b3fc954aac0b3bb75a2f17d71">CreateQualifierPathSegment</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength, <a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;error) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:ae6c1338b3fc954aac0b3bb75a2f17d71"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a Qualifier path segment, which behaves like a normal property. <a href="#ae6c1338b3fc954aac0b3bb75a2f17d71">More...</a><br /></td></tr>
+<tr class="separator:ae6c1338b3fc954aac0b3bb75a2f17d71"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac7c3343a39a736921d804796a067acec"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aa1d5ef746b351d46f0d9be2d53538d7b">pcIPathSegment_base</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#ac7c3343a39a736921d804796a067acec">CreateQualifierSelectorPathSegment</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength, const char *value, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> valueLength, <a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;error) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:ac7c3343a39a736921d804796a067acec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a path segment that selects a specific qualifier by its value. For example a specific language in a alternative array of languages. <a href="#ac7c3343a39a736921d804796a067acec">More...</a><br /></td></tr>
+<tr class="separator:ac7c3343a39a736921d804796a067acec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a385859faf85e5121f6e900da52fe7a51"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a8a912843a6b3779781ed27cde7e330d6">pIPath_base</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a385859faf85e5121f6e900da52fe7a51">CreatePath</a> (<a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;error) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a385859faf85e5121f6e900da52fe7a51"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an empty IPath object. <a href="#a385859faf85e5121f6e900da52fe7a51">More...</a><br /></td></tr>
+<tr class="separator:a385859faf85e5121f6e900da52fe7a51"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a853dc2ebab4b052d6fb279b261fce2c7"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a8a912843a6b3779781ed27cde7e330d6">pIPath_base</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a853dc2ebab4b052d6fb279b261fce2c7">ParsePath</a> (const char *path, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pathLength, <a class="el" href="namespaceAdobeXMPCore.html#ad877a19389a4ba0dd5ef226470fd7f5b">pcINameSpacePrefixMap_base</a> map, <a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;error) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a853dc2ebab4b052d6fb279b261fce2c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a path from a char buffer which contains the serialized path. <a href="#a853dc2ebab4b052d6fb279b261fce2c7">More...</a><br /></td></tr>
+<tr class="separator:a853dc2ebab4b052d6fb279b261fce2c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a055e87d1002612143f5104c0e3613336"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a14569c99ffc10ff405f51220851fbe36">pISimpleNode_base</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a055e87d1002612143f5104c0e3613336">CreateSimpleNode</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength, const char *value, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> valueLength, <a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;error) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a055e87d1002612143f5104c0e3613336"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a simple property node which is not part of any metadata document. <a href="#a055e87d1002612143f5104c0e3613336">More...</a><br /></td></tr>
+<tr class="separator:a055e87d1002612143f5104c0e3613336"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a483da62ca0b16df479b574ce159656a0"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a47468e9aeeb0e9d2541bccfbbaf916f7">pIArrayNode_base</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a483da62ca0b16df479b574ce159656a0">CreateArrayNode</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> arrayForm, const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength, <a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;error) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a483da62ca0b16df479b574ce159656a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an array node which is not part of any metadata document. <a href="#a483da62ca0b16df479b574ce159656a0">More...</a><br /></td></tr>
+<tr class="separator:a483da62ca0b16df479b574ce159656a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6976b678d45b6e968eb7cf094c18bc24"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#af51bfb0cbccc377fb76fbc7187eb3456">pIStructureNode_base</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a6976b678d45b6e968eb7cf094c18bc24">CreateStructureNode</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength, <a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;error) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a6976b678d45b6e968eb7cf094c18bc24"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a structure node which is not part of any metadata document. <a href="#a6976b678d45b6e968eb7cf094c18bc24">More...</a><br /></td></tr>
+<tr class="separator:a6976b678d45b6e968eb7cf094c18bc24"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a256fa057baeddc10da895731a2e24089"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aa6b155d7624638c88d2b64b551ef1b0c">pIMetadata_base</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a256fa057baeddc10da895731a2e24089">CreateMetadata</a> (<a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;error) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a256fa057baeddc10da895731a2e24089"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an empty IMetadata object. <a href="#a256fa057baeddc10da895731a2e24089">More...</a><br /></td></tr>
+<tr class="separator:a256fa057baeddc10da895731a2e24089"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9226dbf3ca7a02c871cacbe3b4865b6b"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#ae600077e4e41eec5ebb90fa7510b8b48">pIDOMImplementationRegistry_base</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a9226dbf3ca7a02c871cacbe3b4865b6b">GetDOMImplementationRegistry</a> (<a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;error) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a9226dbf3ca7a02c871cacbe3b4865b6b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides the reference to the database of Serializers and Parsers available with the library. <a href="#a9226dbf3ca7a02c871cacbe3b4865b6b">More...</a><br /></td></tr>
+<tr class="separator:a9226dbf3ca7a02c871cacbe3b4865b6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5c98e5f81eff5b0337347ef9416d2711"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a55c34a6f458c74682e542edd2a258686">pICoreConfigurationManager_base</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a5c98e5f81eff5b0337347ef9416d2711">GetCoreConfigurationManager</a> (<a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;error) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a5c98e5f81eff5b0337347ef9416d2711"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides access to the configuration manager of the library. <a href="#a5c98e5f81eff5b0337347ef9416d2711">More...</a><br /></td></tr>
+<tr class="separator:a5c98e5f81eff5b0337347ef9416d2711"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1IObjectFactory__v1"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1IObjectFactory__v1')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html">AdobeXMPCommon::IObjectFactory_v1</a></td></tr>
+<tr class="memitem:ae3e9eb977c305e48425654bec514f405 inherit pub_methods_classAdobeXMPCommon_1_1IObjectFactory__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a0430b250dd00621dcb9f32a3acb87b7f">pIUTF8String_base</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#ae3e9eb977c305e48425654bec514f405">CreateUTF8String</a> (const char *buf, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count, <a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;error) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:ae3e9eb977c305e48425654bec514f405 inherit pub_methods_classAdobeXMPCommon_1_1IObjectFactory__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an IUTF8String object. <a href="#ae3e9eb977c305e48425654bec514f405">More...</a><br /></td></tr>
+<tr class="separator:ae3e9eb977c305e48425654bec514f405 inherit pub_methods_classAdobeXMPCommon_1_1IObjectFactory__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae86e711336af91dca23f4611b1f03724 inherit pub_methods_classAdobeXMPCommon_1_1IObjectFactory__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a4e907810e5d5937b974343d279e0181d">pIError_base</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#ae86e711336af91dca23f4611b1f03724">CreateError</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> domain, <a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> code, <a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> severity, <a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;error) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:ae86e711336af91dca23f4611b1f03724 inherit pub_methods_classAdobeXMPCommon_1_1IObjectFactory__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an IError object. <a href="#ae86e711336af91dca23f4611b1f03724">More...</a><br /></td></tr>
+<tr class="separator:ae86e711336af91dca23f4611b1f03724 inherit pub_methods_classAdobeXMPCommon_1_1IObjectFactory__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a95fcbab435329d052ab42028da563c02 inherit pub_methods_classAdobeXMPCommon_1_1IObjectFactory__v1"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#a95fcbab435329d052ab42028da563c02">~IObjectFactory_v1</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:a95fcbab435329d052ab42028da563c02 inherit pub_methods_classAdobeXMPCommon_1_1IObjectFactory__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2f02bcd4eafa4d318197c39dd55d0957 inherit pub_methods_classAdobeXMPCommon_1_1IObjectFactory__v1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#a2f02bcd4eafa4d318197c39dd55d0957">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:a2f02bcd4eafa4d318197c39dd55d0957 inherit pub_methods_classAdobeXMPCommon_1_1IObjectFactory__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
+<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
+<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a> ()</td></tr>
+<tr class="memdesc:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to an interface object implementing the requested version. <a href="#ad6539461695decfaea8a44798db51e54">More...</a><br /></td></tr>
+<tr class="separator:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
+<tr class="memitem:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> const requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070">GetInterfacePointer</a> () const </td></tr>
+<tr class="memdesc:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to a const interface object implementing the requested version. <a href="#ab93a940e2946c14a76ebbd9552cab070">More...</a><br /></td></tr>
+<tr class="separator:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr class="memitem:a6aecc832674b0e39a98cdde147fd84d9"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ad925e271d292d0b0af1a24342391219d">pICoreObjectFactory</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a6aecc832674b0e39a98cdde147fd84d9">GetCoreObjectFactory</a> ()</td></tr>
+<tr class="memdesc:a6aecc832674b0e39a98cdde147fd84d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets an object of ICoreObjectFactory. <a href="#a6aecc832674b0e39a98cdde147fd84d9">More...</a><br /></td></tr>
+<tr class="separator:a6aecc832674b0e39a98cdde147fd84d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a970dd5b32ca7601b29426a9384a64f56"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a970dd5b32ca7601b29426a9384a64f56">DestroyCoreObjectFactory</a> ()</td></tr>
+<tr class="memdesc:a970dd5b32ca7601b29426a9384a64f56"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy everything related to core object factory. <a href="#a970dd5b32ca7601b29426a9384a64f56">More...</a><br /></td></tr>
+<tr class="separator:a970dd5b32ca7601b29426a9384a64f56"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
+<tr class="memitem:a27a3f1ca72e364fa627aa71b52042da2"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a27a3f1ca72e364fa627aa71b52042da2">SetupCoreObjectFactory</a> (<a class="el" href="namespaceAdobeXMPCore.html#ac062cb6e980601a1eedf6085cca9b850">pICoreObjectFactory_base</a> coreObjectFactory)</td></tr>
+<tr class="memdesc:a27a3f1ca72e364fa627aa71b52042da2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets up the core object factory. <a href="#a27a3f1ca72e364fa627aa71b52042da2">More...</a><br /></td></tr>
+<tr class="separator:a27a3f1ca72e364fa627aa71b52042da2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_static_methods_classAdobeXMPCommon_1_1IObjectFactory__v1"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classAdobeXMPCommon_1_1IObjectFactory__v1')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html">AdobeXMPCommon::IObjectFactory_v1</a></td></tr>
+<tr class="memitem:ab61b0ddca88dc76f0499d317f189b918 inherit pub_static_methods_classAdobeXMPCommon_1_1IObjectFactory__v1"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#ab61b0ddca88dc76f0499d317f189b918">GetInterfaceID</a> ()</td></tr>
+<tr class="memdesc:ab61b0ddca88dc76f0499d317f189b918 inherit pub_static_methods_classAdobeXMPCommon_1_1IObjectFactory__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the unique ID assigned to the interface. <a href="#ab61b0ddca88dc76f0499d317f189b918">More...</a><br /></td></tr>
+<tr class="separator:ab61b0ddca88dc76f0499d317f189b918 inherit pub_static_methods_classAdobeXMPCommon_1_1IObjectFactory__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a81c25d76569a9249ab3c8a3e4490c73d inherit pub_static_methods_classAdobeXMPCommon_1_1IObjectFactory__v1"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#a81c25d76569a9249ab3c8a3e4490c73d">GetInterfaceVersion</a> ()</td></tr>
+<tr class="memdesc:a81c25d76569a9249ab3c8a3e4490c73d inherit pub_static_methods_classAdobeXMPCommon_1_1IObjectFactory__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the version of the interface. <a href="#a81c25d76569a9249ab3c8a3e4490c73d">More...</a><br /></td></tr>
+<tr class="separator:a81c25d76569a9249ab3c8a3e4490c73d inherit pub_static_methods_classAdobeXMPCommon_1_1IObjectFactory__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2dc282621cdfef44b424ac91efb965a1 inherit pub_static_methods_classAdobeXMPCommon_1_1IObjectFactory__v1"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCommon.html#a0863cf1c24764306839671985373b93f">pIObjectFactory</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#a2dc282621cdfef44b424ac91efb965a1">MakeObjectFactory</a> (<a class="el" href="namespaceAdobeXMPCommon.html#adb1552a01da782d3f1c5ff00e49f48f8">pIObjectFactory_base</a> ptr)</td></tr>
+<tr class="separator:a2dc282621cdfef44b424ac91efb965a1 inherit pub_static_methods_classAdobeXMPCommon_1_1IObjectFactory__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa906cf2b9efb958e49fd8c5122b8db96 inherit pub_static_methods_classAdobeXMPCommon_1_1IObjectFactory__v1"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCommon.html#a272e32106a7573db514736bfb68a1673">pcIObjectFactory</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#aa906cf2b9efb958e49fd8c5122b8db96">MakeObjectFactory</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a8d7232279921e3ccaa69fe314052415b">pcIObjectFactory_base</a> ptr)</td></tr>
+<tr class="separator:aa906cf2b9efb958e49fd8c5122b8db96 inherit pub_static_methods_classAdobeXMPCommon_1_1IObjectFactory__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:a86ec61e722ad68c9f09e95a7ceaa4393"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a86ec61e722ad68c9f09e95a7ceaa4393">~ICoreObjectFactory_v1</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:a86ec61e722ad68c9f09e95a7ceaa4393"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
+<tr class="memitem:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a> ()</td></tr>
+<tr class="separator:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Version1 of a interface that represents a factory to create various artifacts of XMP DOM like array, structure, path etc. </p>
+<p>Provides all the functions to create instances of various artifacts of XMP DOM and return them as shared pointers to the clients. This is the interface through which clients of the library actually get access to all other interfaces. </p>
+
+<p>Definition at line <a class="el" href="ICoreObjectFactory_8h_source.html#l00025">25</a> of file <a class="el" href="ICoreObjectFactory_8h_source.html">ICoreObjectFactory.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a86ec61e722ad68c9f09e95a7ceaa4393"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual AdobeXMPCore::ICoreObjectFactory_v1::~ICoreObjectFactory_v1 </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Destructor </p>
+
+<p>Definition at line <a class="el" href="ICoreObjectFactory_8h_source.html#l00252">252</a> of file <a class="el" href="ICoreObjectFactory_8h_source.html">ICoreObjectFactory.h</a>.</p>
+
+<p>References <a class="el" href="XMPCommonDefines_8h_source.html#l00107">REQ_FRIEND_CLASS_DECLARATION</a>.</p>
+<div class="fragment"><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;{}</div></div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a3bfacdef9fe44e03dbe826e5ab4d96a5"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#aa1d5ef746b351d46f0d9be2d53538d7b">pcIPathSegment_base</a> APICALL AdobeXMPCore::ICoreObjectFactory_v1::CreateArrayIndexPathSegment </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>nameSpace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameSpaceLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>index</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;&#160;</td>
+ <td class="paramname"><em>error</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Creates an array index path segment that denotes a specific element of an array. </p>
+<p>Such segments do not have an own name and inherits the namespace from the Array property itself. </p><dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpace</td><td>Pointer to a constant char buffer containing name space URI of the property. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpaceLength</td><td>Number of characters in nameSpace. In case nameSpace is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>An object of type #AdobeXMP::sizet containting the index of the array element. </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">error</td><td>A reference to a pointer to const IError object which will be filled with the error object in case of any error. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A pointer to const #<a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html" title="Version1 of the interface that represents one segment in a path to a node into the XMP tree...">IPathSegment_v1</a>. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Throws #AdobeXMP::pcIError in case<ul>
+<li>pointers to const char buffers are NULL,</li>
+<li>their content is empty. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a483da62ca0b16df479b574ce159656a0"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#a47468e9aeeb0e9d2541bccfbbaf916f7">pIArrayNode_base</a> APICALL AdobeXMPCore::ICoreObjectFactory_v1::CreateArrayNode </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a>&#160;</td>
+ <td class="paramname"><em>arrayForm</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>nameSpace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameSpaceLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;&#160;</td>
+ <td class="paramname"><em>error</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Creates an array node which is not part of any metadata document. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">arrayForm</td><td>A value indicating the array type </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpace</td><td>Pointer to a constant char buffer containing name space URI of the array node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpaceLength</td><td>Number of characters in nameSpace. In case nameSpace is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Pointer to a constant char buffer containing local name of the array node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameLength</td><td>Number of characters in name. In case name is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">error</td><td>A reference to a pointer to const IError object which will be filled with the error object in case of any error. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A pointer to a #<a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html" title="Version1 of the interface that represents an Array Node of XMP DOM. ">IArrayNode_v1</a> object. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a256fa057baeddc10da895731a2e24089"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#aa6b155d7624638c88d2b64b551ef1b0c">pIMetadata_base</a> APICALL AdobeXMPCore::ICoreObjectFactory_v1::CreateMetadata </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;&#160;</td>
+ <td class="paramname"><em>error</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Creates an empty IMetadata object. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[out]</td><td class="paramname">error</td><td>A reference to a pointer to const IError object which will be filled with the error object in case of any error. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>a pointer to an empty #<a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html" title="Version1 of the interface that represents the whole xmp metadata for an asset. ">IMetadata_v1</a> object. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ae212c413d5ef30bdf35e2987f3752a8d"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#ad7423726463e791584bdeeb0a699c2d6">pINameSpacePrefixMap_base</a> APICALL AdobeXMPCore::ICoreObjectFactory_v1::CreateNameSpacePrefixMap </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;&#160;</td>
+ <td class="paramname"><em>error</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Creates an empty name space prefix map. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[out]</td><td class="paramname">error</td><td>A reference to a pointer to const IError object which will be filled with the error object in case of any error. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A pointer to an empty #<a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html" title="Version1 of the interface that represents map where each entry consists of prefix string as the key a...">INameSpacePrefixMap_v1</a> object. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a385859faf85e5121f6e900da52fe7a51"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#a8a912843a6b3779781ed27cde7e330d6">pIPath_base</a> APICALL AdobeXMPCore::ICoreObjectFactory_v1::CreatePath </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;&#160;</td>
+ <td class="paramname"><em>error</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Creates an empty IPath object. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[out]</td><td class="paramname">error</td><td>A reference to a pointer to const IError object which will be filled with the error object in case of any error. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A pointer to an empty #<a class="el" href="classAdobeXMPCore_1_1IPath__v1.html" title="Version1 of the interface that provides an easy iterative description of a specific path into the XMP...">IPath_v1</a> object </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="adbaf560c74694b7ccdd6f26b2d320b35"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#aa1d5ef746b351d46f0d9be2d53538d7b">pcIPathSegment_base</a> APICALL AdobeXMPCore::ICoreObjectFactory_v1::CreatePropertyPathSegment </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>nameSpace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameSpaceLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;&#160;</td>
+ <td class="paramname"><em>error</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Creates a normal property path segment.These are essentially all properties (simple, struct and arrays). </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpace</td><td>Pointer to a constant char buffer containing name space URI of the property. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpaceLength</td><td>Number of characters in nameSpace. In case nameSpace is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Pointer to a constant char buffer containing local name of the property. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameLength</td><td>Number of characters in name. In case name is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">error</td><td>A reference to a pointer to const IError object which will be filled with the error object in case of any error. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A pointer to const #<a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html" title="Version1 of the interface that represents one segment in a path to a node into the XMP tree...">IPathSegment_v1</a>. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ae6c1338b3fc954aac0b3bb75a2f17d71"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#aa1d5ef746b351d46f0d9be2d53538d7b">pcIPathSegment_base</a> APICALL AdobeXMPCore::ICoreObjectFactory_v1::CreateQualifierPathSegment </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>nameSpace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameSpaceLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;&#160;</td>
+ <td class="paramname"><em>error</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Creates a Qualifier path segment, which behaves like a normal property. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpace</td><td>Pointer to a constant char buffer containing name space URI of the property. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpaceLength</td><td>Number of characters in nameSpace. In case nameSpace is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Pointer to a constant char buffer containing local name of the property. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameLength</td><td>Number of characters in name. In case name is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">error</td><td>A reference to a pointer to const IError object which will be filled with the error object in case of any error. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A pointer to const #<a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html" title="Version1 of the interface that represents one segment in a path to a node into the XMP tree...">IPathSegment_v1</a>. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ac7c3343a39a736921d804796a067acec"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#aa1d5ef746b351d46f0d9be2d53538d7b">pcIPathSegment_base</a> APICALL AdobeXMPCore::ICoreObjectFactory_v1::CreateQualifierSelectorPathSegment </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>nameSpace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameSpaceLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>value</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>valueLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;&#160;</td>
+ <td class="paramname"><em>error</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Creates a path segment that selects a specific qualifier by its value. For example a specific language in a alternative array of languages. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpace</td><td>Pointer to a constant char buffer containing name space URI of the property. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpaceLength</td><td>Number of characters in nameSpace. In case nameSpace is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Pointer to a constant char buffer containing local name of the property. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameLength</td><td>Number of characters in name. In case name is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Pointer to a constant char buffer containing value of the language (xml:lang) </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">valueLength</td><td>Number of characters in value. In case value is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">error</td><td>A reference to a pointer to const IError object which will be filled with the error object in case of any error. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A pointer to const #<a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html" title="Version1 of the interface that represents one segment in a path to a node into the XMP tree...">IPathSegment_v1</a>. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a055e87d1002612143f5104c0e3613336"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#a14569c99ffc10ff405f51220851fbe36">pISimpleNode_base</a> APICALL AdobeXMPCore::ICoreObjectFactory_v1::CreateSimpleNode </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>nameSpace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameSpaceLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>value</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>valueLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;&#160;</td>
+ <td class="paramname"><em>error</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Creates a simple property node which is not part of any metadata document. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpace</td><td>Pointer to a constant char buffer containing name space URI of the simple node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpaceLength</td><td>Number of characters in nameSpace. In case nameSpace is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Pointer to a constant char buffer containing local name of the simple node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameLength</td><td>Number of characters in name. In case name is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Pointer to a constant char buffer containing value of the simple node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">valueLength</td><td>Number of characters in value. In case name is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">error</td><td>A reference to a pointer to const IError object which will be filled with the error object in case of any error. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A pointer to a #<a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html" title="Version1 of the interface that represents a Simple Property Node of XMP DOM. ">ISimpleNode_v1</a> object. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a6976b678d45b6e968eb7cf094c18bc24"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#af51bfb0cbccc377fb76fbc7187eb3456">pIStructureNode_base</a> APICALL AdobeXMPCore::ICoreObjectFactory_v1::CreateStructureNode </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>nameSpace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameSpaceLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;&#160;</td>
+ <td class="paramname"><em>error</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Creates a structure node which is not part of any metadata document. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpace</td><td>Pointer to a constant char buffer containing name space URI of the structure node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpaceLength</td><td>Number of characters in nameSpace. In case nameSpace is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Pointer to a constant char buffer containing local name of the structure node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameLength</td><td>Number of characters in name. In case name is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">error</td><td>A reference to a pointer to const IError object which will be filled with the error object in case of any error. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A pointer to a #<a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html" title="Version1 of the interface that represents a structure Node of XMP DOM. ">IStructureNode_v1</a> object. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a970dd5b32ca7601b29426a9384a64f56"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> void AdobeXMPCore::ICoreObjectFactory_v1::DestroyCoreObjectFactory </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Destroy everything related to core object factory. </p>
+
+</div>
+</div>
+<a class="anchor" id="a5c98e5f81eff5b0337347ef9416d2711"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#a55c34a6f458c74682e542edd2a258686">pICoreConfigurationManager_base</a> APICALL AdobeXMPCore::ICoreObjectFactory_v1::GetCoreConfigurationManager </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;&#160;</td>
+ <td class="paramname"><em>error</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Provides access to the configuration manager of the library. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[out]</td><td class="paramname">error</td><td>A reference to a pointer to const IError object which will be filled with the error object in case of any error. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A pointer to #ICoreConfigurationManager_base object. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a6aecc832674b0e39a98cdde147fd84d9"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ad925e271d292d0b0af1a24342391219d">pICoreObjectFactory</a> AdobeXMPCore::ICoreObjectFactory_v1::GetCoreObjectFactory </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Gets an object of ICoreObjectFactory. </p>
+<dl class="section return"><dt>Returns</dt><dd>A pointer to an ICoreObjectFactory object. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ac8eb0f7f78f5d0f21575a94c3f279926"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#ad877a19389a4ba0dd5ef226470fd7f5b">pcINameSpacePrefixMap_base</a> APICALL AdobeXMPCore::ICoreObjectFactory_v1::GetDefaultNameSpacePrefixMap </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;&#160;</td>
+ <td class="paramname"><em>error</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Provides the default mapping of prefix string and nameSpace strings used by XMPCore. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[out]</td><td class="paramname">error</td><td>A reference to a pointer to const IError object which will be filled with the error object in case of any error. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A pointer to const #<a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html" title="Version1 of the interface that represents map where each entry consists of prefix string as the key a...">INameSpacePrefixMap_v1</a> object containing all the mappings used as default by the XMPCore. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a9226dbf3ca7a02c871cacbe3b4865b6b"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#ae600077e4e41eec5ebb90fa7510b8b48">pIDOMImplementationRegistry_base</a> APICALL AdobeXMPCore::ICoreObjectFactory_v1::GetDOMImplementationRegistry </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;&#160;</td>
+ <td class="paramname"><em>error</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Provides the reference to the database of Serializers and Parsers available with the library. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[out]</td><td class="paramname">error</td><td>A reference to a pointer to const IError object which will be filled with the error object in case of any error. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>a pointer to #IDOMImplementationRegistry_base object containing all the entries for serailizers and parsers. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a853dc2ebab4b052d6fb279b261fce2c7"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#a8a912843a6b3779781ed27cde7e330d6">pIPath_base</a> APICALL AdobeXMPCore::ICoreObjectFactory_v1::ParsePath </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>path</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>pathLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCore.html#ad877a19389a4ba0dd5ef226470fd7f5b">pcINameSpacePrefixMap_base</a>&#160;</td>
+ <td class="paramname"><em>map</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;&#160;</td>
+ <td class="paramname"><em>error</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Creates a path from a char buffer which contains the serialized path. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">path</td><td>Pointer to a const char buffer containing serialized form of the path. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">pathLength</td><td>Number of characters in the path. In case path in null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">map</td><td>A pointer to a const #IXMPNameSpacePrefixMap_v1 object which will contain the mapping for nameSpaces to prefixes. </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">error</td><td>A reference to a pointer to const IError object which will be filled with the error object in case of any error. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A pointer to a #<a class="el" href="classAdobeXMPCore_1_1IPath__v1.html" title="Version1 of the interface that provides an easy iterative description of a specific path into the XMP...">IPath_v1</a> object. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a27a3f1ca72e364fa627aa71b52042da2"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> void AdobeXMPCore::ICoreObjectFactory_v1::SetupCoreObjectFactory </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCore.html#ac062cb6e980601a1eedf6085cca9b850">pICoreObjectFactory_base</a>&#160;</td>
+ <td class="paramname"><em>coreObjectFactory</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Sets up the core object factory. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">coreObjectFactory</td><td>A pointer to an #<a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html" title="Version1 of a interface that represents a factory to create various artifacts of XMP DOM like array...">ICoreObjectFactory_v1</a> object. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section note"><dt>Note</dt><dd>coreObjectFactory is an optional parameter and only required for clients who don't directly link with the library but want to use its functionality. </dd></dl>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/<a class="el" href="ICoreObjectFactory_8h_source.html">ICoreObjectFactory.h</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCore_1_1ICoreObjectFactory__v1.js b/docs/API/classAdobeXMPCore_1_1ICoreObjectFactory__v1.js
new file mode 100755
index 0000000..a774d6b
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1ICoreObjectFactory__v1.js
@@ -0,0 +1,21 @@
+var classAdobeXMPCore_1_1ICoreObjectFactory__v1 =
+[
+ [ "~ICoreObjectFactory_v1", "classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a86ec61e722ad68c9f09e95a7ceaa4393", null ],
+ [ "CreateArrayIndexPathSegment", "classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a3bfacdef9fe44e03dbe826e5ab4d96a5", null ],
+ [ "CreateArrayNode", "classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a483da62ca0b16df479b574ce159656a0", null ],
+ [ "CreateMetadata", "classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a256fa057baeddc10da895731a2e24089", null ],
+ [ "CreateNameSpacePrefixMap", "classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#ae212c413d5ef30bdf35e2987f3752a8d", null ],
+ [ "CreatePath", "classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a385859faf85e5121f6e900da52fe7a51", null ],
+ [ "CreatePropertyPathSegment", "classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#adbaf560c74694b7ccdd6f26b2d320b35", null ],
+ [ "CreateQualifierPathSegment", "classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#ae6c1338b3fc954aac0b3bb75a2f17d71", null ],
+ [ "CreateQualifierSelectorPathSegment", "classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#ac7c3343a39a736921d804796a067acec", null ],
+ [ "CreateSimpleNode", "classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a055e87d1002612143f5104c0e3613336", null ],
+ [ "CreateStructureNode", "classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a6976b678d45b6e968eb7cf094c18bc24", null ],
+ [ "DestroyCoreObjectFactory", "classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a970dd5b32ca7601b29426a9384a64f56", null ],
+ [ "GetCoreConfigurationManager", "classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a5c98e5f81eff5b0337347ef9416d2711", null ],
+ [ "GetCoreObjectFactory", "classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a6aecc832674b0e39a98cdde147fd84d9", null ],
+ [ "GetDefaultNameSpacePrefixMap", "classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#ac8eb0f7f78f5d0f21575a94c3f279926", null ],
+ [ "GetDOMImplementationRegistry", "classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a9226dbf3ca7a02c871cacbe3b4865b6b", null ],
+ [ "ParsePath", "classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a853dc2ebab4b052d6fb279b261fce2c7", null ],
+ [ "SetupCoreObjectFactory", "classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a27a3f1ca72e364fa627aa71b52042da2", null ]
+]; \ No newline at end of file
diff --git a/docs/API/classAdobeXMPCore_1_1ICoreObjectFactory__v1.png b/docs/API/classAdobeXMPCore_1_1ICoreObjectFactory__v1.png
new file mode 100755
index 0000000..394ed4d
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1ICoreObjectFactory__v1.png
Binary files differ
diff --git a/docs/API/classAdobeXMPCore_1_1IDOMImplementationRegistry__v1-members.html b/docs/API/classAdobeXMPCore_1_1IDOMImplementationRegistry__v1-members.html
new file mode 100755
index 0000000..e82972a
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1IDOMImplementationRegistry__v1-members.html
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">AdobeXMPCore::IDOMImplementationRegistry_v1 Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html">AdobeXMPCore::IDOMImplementationRegistry_v1</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc">Acquire</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html#a6b12abfcc01cea39851ac51977cb1562">GetDOMImplementationRegistry</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html">AdobeXMPCore::IDOMImplementationRegistry_v1</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070">GetInterfacePointer</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html#a07ba5caa2e3a47de4f35f2ee33fbf554">GetParser</a>(const char *key) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html">AdobeXMPCore::IDOMImplementationRegistry_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html#afa13c6385c515368135185b5f53814ad">GetSerializer</a>(const char *key) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html">AdobeXMPCore::IDOMImplementationRegistry_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html#a986a5bee0a91be4d115e6b7dd5a8974b">RegisterParser</a>(const char *key, pIClientDOMParser_base parser)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html">AdobeXMPCore::IDOMImplementationRegistry_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html#a9301ef751ffa40af95bbb95e19fb6c5f">RegisterSerializer</a>(const char *key, pIClientDOMSerializer_base serializer)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html">AdobeXMPCore::IDOMImplementationRegistry_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3">Release</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#afcb42109aed83c3b0c133bc413388037">AdobeXMPCommon::REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f">AdobeXMPCommon::IVersionable::REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html#a8fab4e8f7a4b6b652c623f58d7e3432b">~IDOMImplementationRegistry_v1</a>() __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html">AdobeXMPCore::IDOMImplementationRegistry_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31">~ISharedObject</a>() __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html b/docs/API/classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html
new file mode 100755
index 0000000..a23cf3f
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html
@@ -0,0 +1,353 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>AdobeXMPCore::IDOMImplementationRegistry_v1 Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">AdobeXMPCore::IDOMImplementationRegistry_v1 Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Version1 of the interface that serves as a database/registry of all the parsers and serializers available with the XMPCore library.
+ <a href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="IDOMImplementationRegistry_8h_source.html">IDOMImplementationRegistry.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for AdobeXMPCore::IDOMImplementationRegistry_v1:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.png" usemap="#AdobeXMPCore::IDOMImplementationRegistry_5Fv1_map" alt=""/>
+ <map id="AdobeXMPCore::IDOMImplementationRegistry_5Fv1_map" name="AdobeXMPCore::IDOMImplementationRegistry_v1_map">
+<area href="classAdobeXMPCommon_1_1ISharedObject.html" title="Interface that serves as the base interface of all the externally exposed interfaces. " alt="AdobeXMPCommon::ISharedObject" shape="rect" coords="0,0,293,24"/>
+<area href="classAdobeXMPCommon_1_1IVersionable.html" title="Interface that serves as the base interface for all the externally exposed interfaces which needs to ..." alt="AdobeXMPCommon::IVersionable" shape="rect" coords="303,0,596,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a07ba5caa2e3a47de4f35f2ee33fbf554"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a737ec082bb4e7f817b45e073337c0893">spIDOMParser</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html#a07ba5caa2e3a47de4f35f2ee33fbf554">GetParser</a> (const char *key) const =0</td></tr>
+<tr class="memdesc:a07ba5caa2e3a47de4f35f2ee33fbf554"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets a parser corresponding to the key and returns to the client for usage. <a href="#a07ba5caa2e3a47de4f35f2ee33fbf554">More...</a><br /></td></tr>
+<tr class="separator:a07ba5caa2e3a47de4f35f2ee33fbf554"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afa13c6385c515368135185b5f53814ad"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#af3525e619e07f58d7eb8247b56ddad21">spIDOMSerializer</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html#afa13c6385c515368135185b5f53814ad">GetSerializer</a> (const char *key) const =0</td></tr>
+<tr class="memdesc:afa13c6385c515368135185b5f53814ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets a serializer corresponding to the key and returns to the client for usage. <a href="#afa13c6385c515368135185b5f53814ad">More...</a><br /></td></tr>
+<tr class="separator:afa13c6385c515368135185b5f53814ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a986a5bee0a91be4d115e6b7dd5a8974b"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html#a986a5bee0a91be4d115e6b7dd5a8974b">RegisterParser</a> (const char *key, <a class="el" href="namespaceAdobeXMPCore.html#a9dd27d79138a3d399e48343b626cd3a9">pIClientDOMParser_base</a> parser)=0</td></tr>
+<tr class="memdesc:a986a5bee0a91be4d115e6b7dd5a8974b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Registers a parser with the database along with the key. <a href="#a986a5bee0a91be4d115e6b7dd5a8974b">More...</a><br /></td></tr>
+<tr class="separator:a986a5bee0a91be4d115e6b7dd5a8974b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9301ef751ffa40af95bbb95e19fb6c5f"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html#a9301ef751ffa40af95bbb95e19fb6c5f">RegisterSerializer</a> (const char *key, <a class="el" href="namespaceAdobeXMPCore.html#a2dfed76bf986f6fad861aa2323b28caf">pIClientDOMSerializer_base</a> serializer)=0</td></tr>
+<tr class="memdesc:a9301ef751ffa40af95bbb95e19fb6c5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Registers a serializer with the database along with the key. <a href="#a9301ef751ffa40af95bbb95e19fb6c5f">More...</a><br /></td></tr>
+<tr class="separator:a9301ef751ffa40af95bbb95e19fb6c5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1ISharedObject')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td></tr>
+<tr class="memitem:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc">Acquire</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the clients of the object to indicate that he has acquired the shared ownership of the object. <a href="#ab90d4ec1fcd975a7ac62dcb866335cdc">More...</a><br /></td></tr>
+<tr class="separator:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3">Release</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the clients of the object to indicate he has released his shared ownership of the object. If this being the last client than this function should call Destroy to delete and release the memory. <a href="#abf5a54e09f87366170ea19c618f68bc3">More...</a><br /></td></tr>
+<tr class="separator:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
+<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
+<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a> ()</td></tr>
+<tr class="memdesc:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to an interface object implementing the requested version. <a href="#ad6539461695decfaea8a44798db51e54">More...</a><br /></td></tr>
+<tr class="separator:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
+<tr class="memitem:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> const requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070">GetInterfacePointer</a> () const </td></tr>
+<tr class="memdesc:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to a const interface object implementing the requested version. <a href="#ab93a940e2946c14a76ebbd9552cab070">More...</a><br /></td></tr>
+<tr class="separator:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr class="memitem:a6b12abfcc01cea39851ac51977cb1562"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a197acc21ecf883449824a1e87a99586a">spIDOMImplementationRegistry</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html#a6b12abfcc01cea39851ac51977cb1562">GetDOMImplementationRegistry</a> ()</td></tr>
+<tr class="memdesc:a6b12abfcc01cea39851ac51977cb1562"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides the reference to the database of Serializers and Parsers available with the library. <a href="#a6b12abfcc01cea39851ac51977cb1562">More...</a><br /></td></tr>
+<tr class="separator:a6b12abfcc01cea39851ac51977cb1562"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:a8fab4e8f7a4b6b652c623f58d7e3432b"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html#a8fab4e8f7a4b6b652c623f58d7e3432b">~IDOMImplementationRegistry_v1</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:a8fab4e8f7a4b6b652c623f58d7e3432b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1ISharedObject')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td></tr>
+<tr class="memitem:a5869ff89d0b7dd0a7b525401a1d57b31 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31">~ISharedObject</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="separator:a5869ff89d0b7dd0a7b525401a1d57b31 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afcb42109aed83c3b0c133bc413388037 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#afcb42109aed83c3b0c133bc413388037">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:afcb42109aed83c3b0c133bc413388037 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
+<tr class="memitem:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a> ()</td></tr>
+<tr class="separator:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Version1 of the interface that serves as a database/registry of all the parsers and serializers available with the XMPCore library. </p>
+<p>Provides all the functions to</p><ol type="1">
+<li>get registered serializers and parsers from the database.</li>
+<li>add client defined serializers and parsers to the database. <dl class="section attention"><dt>Attention</dt><dd>Support multi threading if library is configured to support multi-threading by default. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>By default following keys are registered by default with the database by the library:</dd></dl>
+</li>
+<li>rdf </li>
+</ol>
+
+<p>Definition at line <a class="el" href="IDOMImplementationRegistry_8h_source.html#l00029">29</a> of file <a class="el" href="IDOMImplementationRegistry_8h_source.html">IDOMImplementationRegistry.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a8fab4e8f7a4b6b652c623f58d7e3432b"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual AdobeXMPCore::IDOMImplementationRegistry_v1::~IDOMImplementationRegistry_v1 </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Destructor </p>
+
+<p>Definition at line <a class="el" href="IDOMImplementationRegistry_8h_source.html#l00133">133</a> of file <a class="el" href="IDOMImplementationRegistry_8h_source.html">IDOMImplementationRegistry.h</a>.</p>
+
+<p>References <a class="el" href="XMPCommonDefines_8h_source.html#l00107">REQ_FRIEND_CLASS_DECLARATION</a>.</p>
+<div class="fragment"><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;{}</div></div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a6b12abfcc01cea39851ac51977cb1562"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a197acc21ecf883449824a1e87a99586a">spIDOMImplementationRegistry</a> AdobeXMPCore::IDOMImplementationRegistry_v1::GetDOMImplementationRegistry </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Provides the reference to the database of Serializers and Parsers available with the library. </p>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to #IDOMImplementationRegistry object containing all the entries for serailizers and parsers. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a07ba5caa2e3a47de4f35f2ee33fbf554"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#a737ec082bb4e7f817b45e073337c0893">spIDOMParser</a> APICALL AdobeXMPCore::IDOMImplementationRegistry_v1::GetParser </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>key</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Gets a parser corresponding to the key and returns to the client for usage. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>Pointer to a const NULL terminated char buffer containing key of the parser in the database. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to a #IDOMParser object. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>In case the key is not present in the database an invalid shared pointer will be returned. </dd>
+<dd>
+key is case sensitive. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="afa13c6385c515368135185b5f53814ad"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#af3525e619e07f58d7eb8247b56ddad21">spIDOMSerializer</a> APICALL AdobeXMPCore::IDOMImplementationRegistry_v1::GetSerializer </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>key</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Gets a serializer corresponding to the key and returns to the client for usage. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>Pointer to a const NULL terminated char buffer containing key of the serializer in the database. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to a #IDOMSerializer object. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>In case the key is not present in the database an invalid shared pointer will be returned. </dd>
+<dd>
+key is case sensitive. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a986a5bee0a91be4d115e6b7dd5a8974b"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual bool APICALL AdobeXMPCore::IDOMImplementationRegistry_v1::RegisterParser </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>key</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCore.html#a9dd27d79138a3d399e48343b626cd3a9">pIClientDOMParser_base</a>&#160;</td>
+ <td class="paramname"><em>parser</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Registers a parser with the database along with the key. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>Pointer to a const NULL terminated char buffer containing key of the parser to be used while registering. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">parser</td><td>A pointer to #IClientDOMParser object to be registered with the database </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>True in case parser is successfully registered, false otherwise like in case key is already registered. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a9301ef751ffa40af95bbb95e19fb6c5f"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual bool APICALL AdobeXMPCore::IDOMImplementationRegistry_v1::RegisterSerializer </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>key</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCore.html#a2dfed76bf986f6fad861aa2323b28caf">pIClientDOMSerializer_base</a>&#160;</td>
+ <td class="paramname"><em>serializer</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Registers a serializer with the database along with the key. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>Pointer to a const NULL terminated char buffer containing key of the serializer to be used while registering. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">serializer</td><td>A pointer to #IClientDOMSerializer object to be registered with the database. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>True in case serializer is successfully registered, false otherwise like in case key is already registered. </dd></dl>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/<a class="el" href="IDOMImplementationRegistry_8h_source.html">IDOMImplementationRegistry.h</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.js b/docs/API/classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.js
new file mode 100755
index 0000000..fe6fe95
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.js
@@ -0,0 +1,9 @@
+var classAdobeXMPCore_1_1IDOMImplementationRegistry__v1 =
+[
+ [ "~IDOMImplementationRegistry_v1", "classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html#a8fab4e8f7a4b6b652c623f58d7e3432b", null ],
+ [ "GetDOMImplementationRegistry", "classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html#a6b12abfcc01cea39851ac51977cb1562", null ],
+ [ "GetParser", "classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html#a07ba5caa2e3a47de4f35f2ee33fbf554", null ],
+ [ "GetSerializer", "classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html#afa13c6385c515368135185b5f53814ad", null ],
+ [ "RegisterParser", "classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html#a986a5bee0a91be4d115e6b7dd5a8974b", null ],
+ [ "RegisterSerializer", "classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html#a9301ef751ffa40af95bbb95e19fb6c5f", null ]
+]; \ No newline at end of file
diff --git a/docs/API/classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.png b/docs/API/classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.png
new file mode 100755
index 0000000..f146bd2
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.png
Binary files differ
diff --git a/docs/API/classAdobeXMPCore_1_1IDOMParser__v1-members.html b/docs/API/classAdobeXMPCore_1_1IDOMParser__v1-members.html
new file mode 100755
index 0000000..cfee54c
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1IDOMParser__v1-members.html
@@ -0,0 +1,103 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCore_1_1IDOMParser__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">AdobeXMPCore::IDOMParser_v1 Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html">AdobeXMPCore::IDOMParser_v1</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc">Acquire</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a0d771fa042d5c5b3cf015f567f8aea9f">Clone</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html">AdobeXMPCore::IDOMParser_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a932bf0b8f4396de0e29f6c165954e5dc">ConvertCharBufferToUint64</a>(const char *key)</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345">eActionType</a> enum name</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html">AdobeXMPCore::IDOMParser_v1</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1">eDataType</a> enum name</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad0e79a0e44353d08139358a56e8510fb">GetAllParameters</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a7e71691861d38ae351bdd42392b78af6">GetDataType</a>(const uint64 &amp;key) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070">GetInterfacePointer</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#adc0c0be10213808b04e9cef27a0efa4c">GetParameter</a>(const uint64 &amp;key, bool &amp;value) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a11b855a90f26dee8d87b70ee485e6ec3">GetParameter</a>(const uint64 &amp;key, uint64 &amp;value) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#af655f02a3941826182ea54a2eb012e0d">GetParameter</a>(const uint64 &amp;key, int64 &amp;value) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#abc8b38df0036ec164aa6c108cdee9a5e">GetParameter</a>(const uint64 &amp;key, double &amp;value) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a4c35becce65c3cb18075f4cac9d57609">GetParameter</a>(const uint64 &amp;key, char &amp;value) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a6115940df0fe3a07749cbf4a2bb0acbb">GetParameter</a>(const uint64 &amp;key, const char *&amp;value) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a99fb34ba1e27e2e6cadea3755284cee1">GetParameter</a>(const uint64 &amp;key, const void *&amp;value) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345a6ce0fb64b1a284951f50aacdf76e28b9">kATAppendAsChildren</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html">AdobeXMPCore::IDOMParser_v1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345a720d171caeb649caf22e27ed4a39bd15">kATAppendOrReplaceChildren</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html">AdobeXMPCore::IDOMParser_v1</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345a8fca6913cbd9d4f787e53fdcfb54f2bf">kATInsertAfter</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html">AdobeXMPCore::IDOMParser_v1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345aabbc604d77794e6cecedf1bdd947d252">kATInsertBefore</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html">AdobeXMPCore::IDOMParser_v1</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345a2adb910039a572f5e73dbb94f680ed18">kATReplace</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html">AdobeXMPCore::IDOMParser_v1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345ac19566553b38e9bf6c5361a8aa9bb181">kATReplaceChildren</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html">AdobeXMPCore::IDOMParser_v1</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1ac5217140bec2fb51971d31759f24b81a">kDTAll</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1abdf14ab0f7a234fc99bc476dc4212f4e">kDTBool</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a01da29c7d11b67856b0e9d5f3fe4cdb4">kDTChar</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a8d6faef7e1737835b5007987ed99c48d">kDTConstCharBuffer</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a242c98a52e8d324027a00ee6f66d4c39">kDTConstVoidPtr</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a11c2a544d5ac467b22d7d10098237efa">kDTDouble</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a5c57cf68bc47c55815b5bfc1146df0c3">kDTInt64</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a0233b4bacf60f59232fd3fc0dee50a27">kDTNone</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1ad24c2bb370f5fa12dee346051c13409e">kDTUint64</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#adc690f22fbc146bebb91366de7a8739e">Parse</a>(const char *buffer, sizet bufferLength)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html">AdobeXMPCore::IDOMParser_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#ad57596496a555684497ea918569df7d2">ParseWithSpecificAction</a>(const char *buffer, sizet bufferLength, eActionType actionType, spINode &amp;node)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html">AdobeXMPCore::IDOMParser_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3">Release</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a046edf1c0c7d4f994295207dea1242f7">RemoveParameter</a>(const uint64 &amp;key)=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#abb69da6d73e4b56c30e56b43f5a37b9b">AdobeXMPCommon::REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#afcb42109aed83c3b0c133bc413388037">AdobeXMPCommon::ISharedObject::REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f">AdobeXMPCommon::IVersionable::REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a174330a36f7e3d27cc0230698ff59313">SetParameter</a>(const uint64 &amp;key, bool value)=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#abc24d334364271934f6f8f1ac9051836">SetParameter</a>(const uint64 &amp;key, uint64 value)=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad248a17a9bc7ca1c189f353f62e829c4">SetParameter</a>(const uint64 &amp;key, int64 value)=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad3b3acdbd19e5860d3e5c5cdcffeb016">SetParameter</a>(const uint64 &amp;key, double value)=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a4f5a64d500f2fd8110f31a2b582e0759">SetParameter</a>(const uint64 &amp;key, char value)=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ae3de9436a04fcd5f6f8bd21fcc9a9edd">SetParameter</a>(const uint64 &amp;key, const char *value)=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a75784001a19ac899764807095e648c70">SetParameter</a>(const uint64 &amp;key, const void *value)=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a2a1e1d3f515d431478ec309fa9dcd977">Size</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a7c19f627db3d07e227e93a6a0e6b20ab">~IConfigurable</a>() __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a8cbde9bf86ebb4ef4a6968e39b601670">~IDOMParser_v1</a>() __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html">AdobeXMPCore::IDOMParser_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31">~ISharedObject</a>() __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCore_1_1IDOMParser__v1.html b/docs/API/classAdobeXMPCore_1_1IDOMParser__v1.html
new file mode 100755
index 0000000..6be7a33
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1IDOMParser__v1.html
@@ -0,0 +1,451 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>AdobeXMPCore::IDOMParser_v1 Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCore_1_1IDOMParser__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pub-types">Public Types</a> &#124;
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="classAdobeXMPCore_1_1IDOMParser__v1-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">AdobeXMPCore::IDOMParser_v1 Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Version 1 of the interface that supports parsing of the XMP Data Model.
+ <a href="classAdobeXMPCore_1_1IDOMParser__v1.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="IDOMParser_8h_source.html">IDOMParser.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for AdobeXMPCore::IDOMParser_v1:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classAdobeXMPCore_1_1IDOMParser__v1.png" usemap="#AdobeXMPCore::IDOMParser_5Fv1_map" alt=""/>
+ <map id="AdobeXMPCore::IDOMParser_5Fv1_map" name="AdobeXMPCore::IDOMParser_v1_map">
+<area href="classAdobeXMPCommon_1_1IConfigurable.html" title="Interface that allows to attach various key-value parameters to the underlying object. " alt="AdobeXMPCommon::IConfigurable" shape="rect" coords="0,0,212,24"/>
+<area href="classAdobeXMPCommon_1_1ISharedObject.html" title="Interface that serves as the base interface of all the externally exposed interfaces. " alt="AdobeXMPCommon::ISharedObject" shape="rect" coords="222,0,434,24"/>
+<area href="classAdobeXMPCommon_1_1IVersionable.html" title="Interface that serves as the base interface for all the externally exposed interfaces which needs to ..." alt="AdobeXMPCommon::IVersionable" shape="rect" coords="444,0,656,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr class="memitem:a9f311215532a5fa1d15a491fc7e71345"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345">eActionType</a> { <br />
+&#160;&#160;<a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345a6ce0fb64b1a284951f50aacdf76e28b9">kATAppendAsChildren</a> = 0,
+<a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345ac19566553b38e9bf6c5361a8aa9bb181">kATReplaceChildren</a> = 1,
+<a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345a720d171caeb649caf22e27ed4a39bd15">kATAppendOrReplaceChildren</a> = 2,
+<a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345aabbc604d77794e6cecedf1bdd947d252">kATInsertBefore</a> = 3,
+<br />
+&#160;&#160;<a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345a8fca6913cbd9d4f787e53fdcfb54f2bf">kATInsertAfter</a> = 4,
+<a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345a2adb910039a572f5e73dbb94f680ed18">kATReplace</a> = 5
+<br />
+ }<tr class="memdesc:a9f311215532a5fa1d15a491fc7e71345"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates various types of operations possible while parsing with some node as the context. <a href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:a9f311215532a5fa1d15a491fc7e71345"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_types_classAdobeXMPCommon_1_1IConfigurable"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classAdobeXMPCommon_1_1IConfigurable')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td></tr>
+<tr class="memitem:ad64e6ae45633298b7158be2b0dce79a1 inherit pub_types_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1">eDataType</a> { <br />
+&#160;&#160;<a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a0233b4bacf60f59232fd3fc0dee50a27">kDTNone</a> = 0,
+<a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1abdf14ab0f7a234fc99bc476dc4212f4e">kDTBool</a> = 1 &lt;&lt; 0,
+<a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1ad24c2bb370f5fa12dee346051c13409e">kDTUint64</a> = 1 &lt;&lt; 1,
+<a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a5c57cf68bc47c55815b5bfc1146df0c3">kDTInt64</a> = 1 &lt;&lt; 2,
+<br />
+&#160;&#160;<a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a01da29c7d11b67856b0e9d5f3fe4cdb4">kDTChar</a> = 1 &lt;&lt; 3,
+<a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a11c2a544d5ac467b22d7d10098237efa">kDTDouble</a> = 1 &lt;&lt; 4,
+<a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a8d6faef7e1737835b5007987ed99c48d">kDTConstCharBuffer</a> = 1 &lt;&lt; 5,
+<a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a242c98a52e8d324027a00ee6f66d4c39">kDTConstVoidPtr</a> = 1 &lt;&lt; 6,
+<br />
+&#160;&#160;<a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1ac5217140bec2fb51971d31759f24b81a">kDTAll</a> = 0xFFFFFFFF
+<br />
+ }<tr class="memdesc:ad64e6ae45633298b7158be2b0dce79a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates various types of parameter values. <a href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:ad64e6ae45633298b7158be2b0dce79a1 inherit pub_types_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:adc690f22fbc146bebb91366de7a8739e"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a7f1de39fd79aeac4402eba73cb1ffe82">spIMetadata</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#adc690f22fbc146bebb91366de7a8739e">Parse</a> (const char *buffer, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> bufferLength)=0</td></tr>
+<tr class="memdesc:adc690f22fbc146bebb91366de7a8739e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parses the buffer contents and creates an XMP DOM node. <a href="#adc690f22fbc146bebb91366de7a8739e">More...</a><br /></td></tr>
+<tr class="separator:adc690f22fbc146bebb91366de7a8739e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad57596496a555684497ea918569df7d2"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#ad57596496a555684497ea918569df7d2">ParseWithSpecificAction</a> (const char *buffer, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> bufferLength, <a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345">eActionType</a> actionType, <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;node)=0</td></tr>
+<tr class="memdesc:ad57596496a555684497ea918569df7d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse the buffer contents and populate the provided node . <a href="#ad57596496a555684497ea918569df7d2">More...</a><br /></td></tr>
+<tr class="separator:ad57596496a555684497ea918569df7d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0d771fa042d5c5b3cf015f567f8aea9f"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a737ec082bb4e7f817b45e073337c0893">spIDOMParser</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a0d771fa042d5c5b3cf015f567f8aea9f">Clone</a> () const =0</td></tr>
+<tr class="memdesc:a0d771fa042d5c5b3cf015f567f8aea9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual copy constructor. <a href="#a0d771fa042d5c5b3cf015f567f8aea9f">More...</a><br /></td></tr>
+<tr class="separator:a0d771fa042d5c5b3cf015f567f8aea9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1IConfigurable')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td></tr>
+<tr class="memitem:a046edf1c0c7d4f994295207dea1242f7 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a046edf1c0c7d4f994295207dea1242f7">RemoveParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key)=0</td></tr>
+<tr class="memdesc:a046edf1c0c7d4f994295207dea1242f7 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes a particular parameter if present. <a href="#a046edf1c0c7d4f994295207dea1242f7">More...</a><br /></td></tr>
+<tr class="separator:a046edf1c0c7d4f994295207dea1242f7 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad0e79a0e44353d08139358a56e8510fb inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">virtual std::vector&lt; <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &gt; APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad0e79a0e44353d08139358a56e8510fb">GetAllParameters</a> () const =0</td></tr>
+<tr class="memdesc:ad0e79a0e44353d08139358a56e8510fb inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get all the keys of the parameters associated with the object. <a href="#ad0e79a0e44353d08139358a56e8510fb">More...</a><br /></td></tr>
+<tr class="separator:ad0e79a0e44353d08139358a56e8510fb inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2a1e1d3f515d431478ec309fa9dcd977 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a2a1e1d3f515d431478ec309fa9dcd977">Size</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a2a1e1d3f515d431478ec309fa9dcd977 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of parameters associated with the object. <a href="#a2a1e1d3f515d431478ec309fa9dcd977">More...</a><br /></td></tr>
+<tr class="separator:a2a1e1d3f515d431478ec309fa9dcd977 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7e71691861d38ae351bdd42392b78af6 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1">eDataType</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a7e71691861d38ae351bdd42392b78af6">GetDataType</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key) const =0</td></tr>
+<tr class="memdesc:a7e71691861d38ae351bdd42392b78af6 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the value type of a particular parameter. <a href="#a7e71691861d38ae351bdd42392b78af6">More...</a><br /></td></tr>
+<tr class="separator:a7e71691861d38ae351bdd42392b78af6 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a174330a36f7e3d27cc0230698ff59313 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a174330a36f7e3d27cc0230698ff59313">SetParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, bool value)=0</td></tr>
+<tr class="memdesc:a174330a36f7e3d27cc0230698ff59313 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add/Change a value of a parameter. <a href="#a174330a36f7e3d27cc0230698ff59313">More...</a><br /></td></tr>
+<tr class="separator:a174330a36f7e3d27cc0230698ff59313 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abc24d334364271934f6f8f1ac9051836 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#abc24d334364271934f6f8f1ac9051836">SetParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> value)=0</td></tr>
+<tr class="separator:abc24d334364271934f6f8f1ac9051836 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad248a17a9bc7ca1c189f353f62e829c4 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad248a17a9bc7ca1c189f353f62e829c4">SetParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, <a class="el" href="namespaceAdobeXMPCommon.html#aee4f68e01de51c2cf1c1044ecafebc25">int64</a> value)=0</td></tr>
+<tr class="separator:ad248a17a9bc7ca1c189f353f62e829c4 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad3b3acdbd19e5860d3e5c5cdcffeb016 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad3b3acdbd19e5860d3e5c5cdcffeb016">SetParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, double value)=0</td></tr>
+<tr class="separator:ad3b3acdbd19e5860d3e5c5cdcffeb016 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4f5a64d500f2fd8110f31a2b582e0759 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a4f5a64d500f2fd8110f31a2b582e0759">SetParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, char value)=0</td></tr>
+<tr class="separator:a4f5a64d500f2fd8110f31a2b582e0759 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae3de9436a04fcd5f6f8bd21fcc9a9edd inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ae3de9436a04fcd5f6f8bd21fcc9a9edd">SetParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, const char *value)=0</td></tr>
+<tr class="separator:ae3de9436a04fcd5f6f8bd21fcc9a9edd inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a75784001a19ac899764807095e648c70 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a75784001a19ac899764807095e648c70">SetParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, const void *value)=0</td></tr>
+<tr class="separator:a75784001a19ac899764807095e648c70 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adc0c0be10213808b04e9cef27a0efa4c inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#adc0c0be10213808b04e9cef27a0efa4c">GetParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, bool &amp;value) const =0</td></tr>
+<tr class="memdesc:adc0c0be10213808b04e9cef27a0efa4c inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the value of a parameter if present. <a href="#adc0c0be10213808b04e9cef27a0efa4c">More...</a><br /></td></tr>
+<tr class="separator:adc0c0be10213808b04e9cef27a0efa4c inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a11b855a90f26dee8d87b70ee485e6ec3 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a11b855a90f26dee8d87b70ee485e6ec3">GetParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;value) const =0</td></tr>
+<tr class="separator:a11b855a90f26dee8d87b70ee485e6ec3 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af655f02a3941826182ea54a2eb012e0d inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#af655f02a3941826182ea54a2eb012e0d">GetParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, <a class="el" href="namespaceAdobeXMPCommon.html#aee4f68e01de51c2cf1c1044ecafebc25">int64</a> &amp;value) const =0</td></tr>
+<tr class="separator:af655f02a3941826182ea54a2eb012e0d inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abc8b38df0036ec164aa6c108cdee9a5e inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#abc8b38df0036ec164aa6c108cdee9a5e">GetParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, double &amp;value) const =0</td></tr>
+<tr class="separator:abc8b38df0036ec164aa6c108cdee9a5e inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4c35becce65c3cb18075f4cac9d57609 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a4c35becce65c3cb18075f4cac9d57609">GetParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, char &amp;value) const =0</td></tr>
+<tr class="separator:a4c35becce65c3cb18075f4cac9d57609 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6115940df0fe3a07749cbf4a2bb0acbb inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a6115940df0fe3a07749cbf4a2bb0acbb">GetParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, const char *&amp;value) const =0</td></tr>
+<tr class="separator:a6115940df0fe3a07749cbf4a2bb0acbb inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a99fb34ba1e27e2e6cadea3755284cee1 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a99fb34ba1e27e2e6cadea3755284cee1">GetParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, const void *&amp;value) const =0</td></tr>
+<tr class="separator:a99fb34ba1e27e2e6cadea3755284cee1 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1ISharedObject')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td></tr>
+<tr class="memitem:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc">Acquire</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the clients of the object to indicate that he has acquired the shared ownership of the object. <a href="#ab90d4ec1fcd975a7ac62dcb866335cdc">More...</a><br /></td></tr>
+<tr class="separator:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3">Release</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the clients of the object to indicate he has released his shared ownership of the object. If this being the last client than this function should call Destroy to delete and release the memory. <a href="#abf5a54e09f87366170ea19c618f68bc3">More...</a><br /></td></tr>
+<tr class="separator:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
+<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
+<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a> ()</td></tr>
+<tr class="memdesc:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to an interface object implementing the requested version. <a href="#ad6539461695decfaea8a44798db51e54">More...</a><br /></td></tr>
+<tr class="separator:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
+<tr class="memitem:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> const requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070">GetInterfacePointer</a> () const </td></tr>
+<tr class="memdesc:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to a const interface object implementing the requested version. <a href="#ab93a940e2946c14a76ebbd9552cab070">More...</a><br /></td></tr>
+<tr class="separator:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:a8cbde9bf86ebb4ef4a6968e39b601670"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a8cbde9bf86ebb4ef4a6968e39b601670">~IDOMParser_v1</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:a8cbde9bf86ebb4ef4a6968e39b601670"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1IConfigurable"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1IConfigurable')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td></tr>
+<tr class="memitem:a7c19f627db3d07e227e93a6a0e6b20ab inherit pro_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a7c19f627db3d07e227e93a6a0e6b20ab">~IConfigurable</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:a7c19f627db3d07e227e93a6a0e6b20ab inherit pro_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abb69da6d73e4b56c30e56b43f5a37b9b inherit pro_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#abb69da6d73e4b56c30e56b43f5a37b9b">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:abb69da6d73e4b56c30e56b43f5a37b9b inherit pro_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1ISharedObject')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td></tr>
+<tr class="memitem:a5869ff89d0b7dd0a7b525401a1d57b31 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31">~ISharedObject</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="separator:a5869ff89d0b7dd0a7b525401a1d57b31 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afcb42109aed83c3b0c133bc413388037 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#afcb42109aed83c3b0c133bc413388037">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:afcb42109aed83c3b0c133bc413388037 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
+<tr class="memitem:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a> ()</td></tr>
+<tr class="separator:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pub_static_methods_classAdobeXMPCommon_1_1IConfigurable"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classAdobeXMPCommon_1_1IConfigurable')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td></tr>
+<tr class="memitem:a932bf0b8f4396de0e29f6c165954e5dc inherit pub_static_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a932bf0b8f4396de0e29f6c165954e5dc">ConvertCharBufferToUint64</a> (const char *key)</td></tr>
+<tr class="memdesc:a932bf0b8f4396de0e29f6c165954e5dc inherit pub_static_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Utility function to convert character buffer ( maximum of 8 characters ) to uint64 representation. <a href="#a932bf0b8f4396de0e29f6c165954e5dc">More...</a><br /></td></tr>
+<tr class="separator:a932bf0b8f4396de0e29f6c165954e5dc inherit pub_static_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Version 1 of the interface that supports parsing of the XMP Data Model. </p>
+<p>Provides all functions to parse the buffer as well as to configure the parser. </p>
+
+<p>Definition at line <a class="el" href="IDOMParser_8h_source.html#l00024">24</a> of file <a class="el" href="IDOMParser_8h_source.html">IDOMParser.h</a>.</p>
+</div><h2 class="groupheader">Member Enumeration Documentation</h2>
+<a class="anchor" id="a9f311215532a5fa1d15a491fc7e71345"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345">AdobeXMPCore::IDOMParser_v1::eActionType</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Indicates various types of operations possible while parsing with some node as the context. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a9f311215532a5fa1d15a491fc7e71345a6ce0fb64b1a284951f50aacdf76e28b9"></a>kATAppendAsChildren&#160;</td><td class="fielddoc">
+<p>Append all the nodes parsed from the buffer as the child of the context node. </p>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
+<li>Context Node is invalid.</li>
+<li>Context Node is not array or structure node.</li>
+<li>Context Node is a structure node but a child node with the same qualified name is already present.</li>
+<li>Context Node is an array node but the type of any parsed node is not same as that of other existing nodes in the array. </li>
+</ul>
+</dd></dl>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a9f311215532a5fa1d15a491fc7e71345ac19566553b38e9bf6c5361a8aa9bb181"></a>kATReplaceChildren&#160;</td><td class="fielddoc">
+<p>Replaces the children of the context node with nodes parsed from the buffer. </p>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
+<li>Context Node is invalid.</li>
+<li>Context Node is not array or structure node.</li>
+<li>Context Node is a structure node but a child node with the same qualified name is not already present.</li>
+<li>Context Node is an array node but the type of all parsed nodes are not same. </li>
+</ul>
+</dd></dl>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a9f311215532a5fa1d15a491fc7e71345a720d171caeb649caf22e27ed4a39bd15"></a>kATAppendOrReplaceChildren&#160;</td><td class="fielddoc">
+<p>Either append all the nodes parsed from the buffer as the child/children of the context node. </p>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
+<li>Context Node is invalid.</li>
+<li>Context Node is not array or structure node.</li>
+<li>Context Node is an array node but the type of all parsed nodes are not same.</li>
+</ul>
+</dd></dl>
+<ul>
+<li>If a structure node is the parsed node, it is appended if it already not present, otherwise it is replaced.</li>
+<li>If an array node is the parsed node, it is appended if it already not present, otherwise it is removed. </li>
+</ul>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a9f311215532a5fa1d15a491fc7e71345aabbc604d77794e6cecedf1bdd947d252"></a>kATInsertBefore&#160;</td><td class="fielddoc">
+<p>Treats all the parsed nodes as the siblings of the context node and place them before the context node, if possible. </p>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
+<li>Context Node is invalid.</li>
+<li>parent of the Context Node is not an array node.</li>
+<li>The type of any parsed nodes is not same as that of other existing nodes in the array. </li>
+</ul>
+</dd></dl>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a9f311215532a5fa1d15a491fc7e71345a8fca6913cbd9d4f787e53fdcfb54f2bf"></a>kATInsertAfter&#160;</td><td class="fielddoc">
+<p>Treats all the parsed nodes as the siblings of the context node and place them after the context node, if possible. </p>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
+<li>Context Node is invalid.</li>
+<li>parent of the Context Node is not an array node.</li>
+<li>The type of any parsed nodes is not same as that of other existing nodes in the array. </li>
+</ul>
+</dd></dl>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a9f311215532a5fa1d15a491fc7e71345a2adb910039a572f5e73dbb94f680ed18"></a>kATReplace&#160;</td><td class="fielddoc">
+<p>Replaces the context node and insert the node parsed from the buffer in its place. </p>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
+<li>type of node returned after parsing in not of type which is compatible with the Context Node. </li>
+</ul>
+</dd></dl>
+</td></tr>
+</table>
+
+<p>Definition at line <a class="el" href="IDOMParser_8h_source.html#l00034">34</a> of file <a class="el" href="IDOMParser_8h_source.html">IDOMParser.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; {</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="code" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345a6ce0fb64b1a284951f50aacdf76e28b9">kATAppendAsChildren</a> = 0,</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="code" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345ac19566553b38e9bf6c5361a8aa9bb181">kATReplaceChildren</a> = 1,</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <a class="code" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345a720d171caeb649caf22e27ed4a39bd15">kATAppendOrReplaceChildren</a> = 2,</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345aabbc604d77794e6cecedf1bdd947d252">kATInsertBefore</a> = 3,</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <a class="code" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345a8fca6913cbd9d4f787e53fdcfb54f2bf">kATInsertAfter</a> = 4,</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345a2adb910039a572f5e73dbb94f680ed18">kATReplace</a> = 5,</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; } <a class="code" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345">eActionType</a>;</div><div class="ttc" id="classAdobeXMPCore_1_1IDOMParser__v1_html_a9f311215532a5fa1d15a491fc7e71345a2adb910039a572f5e73dbb94f680ed18"><div class="ttname"><a href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345a2adb910039a572f5e73dbb94f680ed18">AdobeXMPCore::IDOMParser_v1::kATReplace</a></div><div class="ttdoc">Replaces the context node and insert the node parsed from the buffer in its place. </div><div class="ttdef"><b>Definition:</b> <a href="IDOMParser_8h_source.html#l00079">IDOMParser.h:79</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IDOMParser__v1_html_a9f311215532a5fa1d15a491fc7e71345ac19566553b38e9bf6c5361a8aa9bb181"><div class="ttname"><a href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345ac19566553b38e9bf6c5361a8aa9bb181">AdobeXMPCore::IDOMParser_v1::kATReplaceChildren</a></div><div class="ttdoc">Replaces the children of the context node with nodes parsed from the buffer. </div><div class="ttdef"><b>Definition:</b> <a href="IDOMParser_8h_source.html#l00051">IDOMParser.h:51</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IDOMParser__v1_html_a9f311215532a5fa1d15a491fc7e71345a6ce0fb64b1a284951f50aacdf76e28b9"><div class="ttname"><a href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345a6ce0fb64b1a284951f50aacdf76e28b9">AdobeXMPCore::IDOMParser_v1::kATAppendAsChildren</a></div><div class="ttdoc">Append all the nodes parsed from the buffer as the child of the context node. </div><div class="ttdef"><b>Definition:</b> <a href="IDOMParser_8h_source.html#l00042">IDOMParser.h:42</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IDOMParser__v1_html_a9f311215532a5fa1d15a491fc7e71345a8fca6913cbd9d4f787e53fdcfb54f2bf"><div class="ttname"><a href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345a8fca6913cbd9d4f787e53fdcfb54f2bf">AdobeXMPCore::IDOMParser_v1::kATInsertAfter</a></div><div class="ttdoc">Treats all the parsed nodes as the siblings of the context node and place them after the context node...</div><div class="ttdef"><b>Definition:</b> <a href="IDOMParser_8h_source.html#l00074">IDOMParser.h:74</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IDOMParser__v1_html_a9f311215532a5fa1d15a491fc7e71345a720d171caeb649caf22e27ed4a39bd15"><div class="ttname"><a href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345a720d171caeb649caf22e27ed4a39bd15">AdobeXMPCore::IDOMParser_v1::kATAppendOrReplaceChildren</a></div><div class="ttdoc">Either append all the nodes parsed from the buffer as the child/children of the context node...</div><div class="ttdef"><b>Definition:</b> <a href="IDOMParser_8h_source.html#l00060">IDOMParser.h:60</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IDOMParser__v1_html_a9f311215532a5fa1d15a491fc7e71345"><div class="ttname"><a href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345">AdobeXMPCore::IDOMParser_v1::eActionType</a></div><div class="ttdeci">eActionType</div><div class="ttdoc">Indicates various types of operations possible while parsing with some node as the context...</div><div class="ttdef"><b>Definition:</b> <a href="IDOMParser_8h_source.html#l00034">IDOMParser.h:34</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IDOMParser__v1_html_a9f311215532a5fa1d15a491fc7e71345aabbc604d77794e6cecedf1bdd947d252"><div class="ttname"><a href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345aabbc604d77794e6cecedf1bdd947d252">AdobeXMPCore::IDOMParser_v1::kATInsertBefore</a></div><div class="ttdoc">Treats all the parsed nodes as the siblings of the context node and place them before the context nod...</div><div class="ttdef"><b>Definition:</b> <a href="IDOMParser_8h_source.html#l00067">IDOMParser.h:67</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a8cbde9bf86ebb4ef4a6968e39b601670"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual AdobeXMPCore::IDOMParser_v1::~IDOMParser_v1 </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Destructor </p>
+
+<p>Definition at line <a class="el" href="IDOMParser_8h_source.html#l00165">165</a> of file <a class="el" href="IDOMParser_8h_source.html">IDOMParser.h</a>.</p>
+
+<p>References <a class="el" href="XMPCommonDefines_8h_source.html#l00107">REQ_FRIEND_CLASS_DECLARATION</a>.</p>
+<div class="fragment"><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;{}</div></div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a0d771fa042d5c5b3cf015f567f8aea9f"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#a737ec082bb4e7f817b45e073337c0893">spIDOMParser</a> APICALL AdobeXMPCore::IDOMParser_v1::Clone </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Virtual copy constructor. </p>
+<p>Creates an exact replica of the object. </p><dl class="section return"><dt>Returns</dt><dd>A shared pointer to an object of #IDOMParser which is the exact replica of the current serializer. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="adc690f22fbc146bebb91366de7a8739e"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#a7f1de39fd79aeac4402eba73cb1ffe82">spIMetadata</a> APICALL AdobeXMPCore::IDOMParser_v1::Parse </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>buffer</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>bufferLength</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Parses the buffer contents and creates an XMP DOM node. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">buffer</td><td>Pointer to a constant char buffer containing serialized XMP Data Model. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">bufferLength</td><td>Number of characters in buffer. In case name is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to an object of #IMetadata containing all the information parsed from the buffer. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ad57596496a555684497ea918569df7d2"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCore::IDOMParser_v1::ParseWithSpecificAction </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>buffer</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>bufferLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345">eActionType</a>&#160;</td>
+ <td class="paramname"><em>actionType</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;&#160;</td>
+ <td class="paramname"><em>node</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Parse the buffer contents and populate the provided node . </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">buffer</td><td>Pointer to a constant char buffer containing serialized XMP Data Model. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">bufferLength</td><td>Number of characters in buffer. In case name is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">actionType</td><td>Value indicating how the parsed content and context node should be used. </td></tr>
+ <tr><td class="paramdir">[in,out]</td><td class="paramname">node</td><td>The context node to be used base on the actionType. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/<a class="el" href="IDOMParser_8h_source.html">IDOMParser.h</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCore_1_1IDOMParser__v1.js b/docs/API/classAdobeXMPCore_1_1IDOMParser__v1.js
new file mode 100755
index 0000000..1a58c4d
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1IDOMParser__v1.js
@@ -0,0 +1,15 @@
+var classAdobeXMPCore_1_1IDOMParser__v1 =
+[
+ [ "eActionType", "classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345", [
+ [ "kATAppendAsChildren", "classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345a6ce0fb64b1a284951f50aacdf76e28b9", null ],
+ [ "kATReplaceChildren", "classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345ac19566553b38e9bf6c5361a8aa9bb181", null ],
+ [ "kATAppendOrReplaceChildren", "classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345a720d171caeb649caf22e27ed4a39bd15", null ],
+ [ "kATInsertBefore", "classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345aabbc604d77794e6cecedf1bdd947d252", null ],
+ [ "kATInsertAfter", "classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345a8fca6913cbd9d4f787e53fdcfb54f2bf", null ],
+ [ "kATReplace", "classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345a2adb910039a572f5e73dbb94f680ed18", null ]
+ ] ],
+ [ "~IDOMParser_v1", "classAdobeXMPCore_1_1IDOMParser__v1.html#a8cbde9bf86ebb4ef4a6968e39b601670", null ],
+ [ "Clone", "classAdobeXMPCore_1_1IDOMParser__v1.html#a0d771fa042d5c5b3cf015f567f8aea9f", null ],
+ [ "Parse", "classAdobeXMPCore_1_1IDOMParser__v1.html#adc690f22fbc146bebb91366de7a8739e", null ],
+ [ "ParseWithSpecificAction", "classAdobeXMPCore_1_1IDOMParser__v1.html#ad57596496a555684497ea918569df7d2", null ]
+]; \ No newline at end of file
diff --git a/docs/API/classAdobeXMPCore_1_1IDOMParser__v1.png b/docs/API/classAdobeXMPCore_1_1IDOMParser__v1.png
new file mode 100755
index 0000000..972e036
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1IDOMParser__v1.png
Binary files differ
diff --git a/docs/API/classAdobeXMPCore_1_1IDOMSerializer__v1-members.html b/docs/API/classAdobeXMPCore_1_1IDOMSerializer__v1-members.html
new file mode 100755
index 0000000..e6a8f32
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1IDOMSerializer__v1-members.html
@@ -0,0 +1,95 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCore_1_1IDOMSerializer__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">AdobeXMPCore::IDOMSerializer_v1 Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html">AdobeXMPCore::IDOMSerializer_v1</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc">Acquire</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html#a4b8a7832e2dbbadfaed717723d3d20d3">Clone</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html">AdobeXMPCore::IDOMSerializer_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a932bf0b8f4396de0e29f6c165954e5dc">ConvertCharBufferToUint64</a>(const char *key)</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1">eDataType</a> enum name</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad0e79a0e44353d08139358a56e8510fb">GetAllParameters</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a7e71691861d38ae351bdd42392b78af6">GetDataType</a>(const uint64 &amp;key) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070">GetInterfacePointer</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#adc0c0be10213808b04e9cef27a0efa4c">GetParameter</a>(const uint64 &amp;key, bool &amp;value) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a11b855a90f26dee8d87b70ee485e6ec3">GetParameter</a>(const uint64 &amp;key, uint64 &amp;value) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#af655f02a3941826182ea54a2eb012e0d">GetParameter</a>(const uint64 &amp;key, int64 &amp;value) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#abc8b38df0036ec164aa6c108cdee9a5e">GetParameter</a>(const uint64 &amp;key, double &amp;value) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a4c35becce65c3cb18075f4cac9d57609">GetParameter</a>(const uint64 &amp;key, char &amp;value) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a6115940df0fe3a07749cbf4a2bb0acbb">GetParameter</a>(const uint64 &amp;key, const char *&amp;value) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a99fb34ba1e27e2e6cadea3755284cee1">GetParameter</a>(const uint64 &amp;key, const void *&amp;value) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1ac5217140bec2fb51971d31759f24b81a">kDTAll</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1abdf14ab0f7a234fc99bc476dc4212f4e">kDTBool</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a01da29c7d11b67856b0e9d5f3fe4cdb4">kDTChar</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a8d6faef7e1737835b5007987ed99c48d">kDTConstCharBuffer</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a242c98a52e8d324027a00ee6f66d4c39">kDTConstVoidPtr</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a11c2a544d5ac467b22d7d10098237efa">kDTDouble</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a5c57cf68bc47c55815b5bfc1146df0c3">kDTInt64</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a0233b4bacf60f59232fd3fc0dee50a27">kDTNone</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1ad24c2bb370f5fa12dee346051c13409e">kDTUint64</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3">Release</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a046edf1c0c7d4f994295207dea1242f7">RemoveParameter</a>(const uint64 &amp;key)=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#abb69da6d73e4b56c30e56b43f5a37b9b">AdobeXMPCommon::REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#afcb42109aed83c3b0c133bc413388037">AdobeXMPCommon::ISharedObject::REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f">AdobeXMPCommon::IVersionable::REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html#ac8e65d9aed0a6afc951e075178d81338">Serialize</a>(const spINode &amp;node, const spcINameSpacePrefixMap &amp;nameSpacePrefixMap=spcINameSpacePrefixMap())=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html">AdobeXMPCore::IDOMSerializer_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a174330a36f7e3d27cc0230698ff59313">SetParameter</a>(const uint64 &amp;key, bool value)=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#abc24d334364271934f6f8f1ac9051836">SetParameter</a>(const uint64 &amp;key, uint64 value)=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad248a17a9bc7ca1c189f353f62e829c4">SetParameter</a>(const uint64 &amp;key, int64 value)=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad3b3acdbd19e5860d3e5c5cdcffeb016">SetParameter</a>(const uint64 &amp;key, double value)=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a4f5a64d500f2fd8110f31a2b582e0759">SetParameter</a>(const uint64 &amp;key, char value)=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ae3de9436a04fcd5f6f8bd21fcc9a9edd">SetParameter</a>(const uint64 &amp;key, const char *value)=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a75784001a19ac899764807095e648c70">SetParameter</a>(const uint64 &amp;key, const void *value)=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a2a1e1d3f515d431478ec309fa9dcd977">Size</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a7c19f627db3d07e227e93a6a0e6b20ab">~IConfigurable</a>() __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html#a3631ef4b5bf7814d37f9582463d7d453">~IDOMSerializer_v1</a>() __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html">AdobeXMPCore::IDOMSerializer_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31">~ISharedObject</a>() __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCore_1_1IDOMSerializer__v1.html b/docs/API/classAdobeXMPCore_1_1IDOMSerializer__v1.html
new file mode 100755
index 0000000..71bf8d6
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1IDOMSerializer__v1.html
@@ -0,0 +1,290 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>AdobeXMPCore::IDOMSerializer_v1 Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCore_1_1IDOMSerializer__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="classAdobeXMPCore_1_1IDOMSerializer__v1-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">AdobeXMPCore::IDOMSerializer_v1 Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Version1 of the interface that represents an object that can serialize an XMP Data Model to a buffer. Provides the functions to serialize the XMP Data Model.
+ <a href="classAdobeXMPCore_1_1IDOMSerializer__v1.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="IDOMSerializer_8h_source.html">IDOMSerializer.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for AdobeXMPCore::IDOMSerializer_v1:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classAdobeXMPCore_1_1IDOMSerializer__v1.png" usemap="#AdobeXMPCore::IDOMSerializer_5Fv1_map" alt=""/>
+ <map id="AdobeXMPCore::IDOMSerializer_5Fv1_map" name="AdobeXMPCore::IDOMSerializer_v1_map">
+<area href="classAdobeXMPCommon_1_1IConfigurable.html" title="Interface that allows to attach various key-value parameters to the underlying object. " alt="AdobeXMPCommon::IConfigurable" shape="rect" coords="0,0,219,24"/>
+<area href="classAdobeXMPCommon_1_1ISharedObject.html" title="Interface that serves as the base interface of all the externally exposed interfaces. " alt="AdobeXMPCommon::ISharedObject" shape="rect" coords="229,0,448,24"/>
+<area href="classAdobeXMPCommon_1_1IVersionable.html" title="Interface that serves as the base interface for all the externally exposed interfaces which needs to ..." alt="AdobeXMPCommon::IVersionable" shape="rect" coords="458,0,677,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:ac8e65d9aed0a6afc951e075178d81338"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html#ac8e65d9aed0a6afc951e075178d81338">Serialize</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;node, const <a class="el" href="namespaceAdobeXMPCore.html#a22f9e572045a61aa3cfc629a0d877d72">spcINameSpacePrefixMap</a> &amp;nameSpacePrefixMap=<a class="el" href="namespaceAdobeXMPCore.html#a22f9e572045a61aa3cfc629a0d877d72">spcINameSpacePrefixMap</a>())=0</td></tr>
+<tr class="memdesc:ac8e65d9aed0a6afc951e075178d81338"><td class="mdescLeft">&#160;</td><td class="mdescRight">Serializes the given XMP Node into an IUTF8String object. <a href="#ac8e65d9aed0a6afc951e075178d81338">More...</a><br /></td></tr>
+<tr class="separator:ac8e65d9aed0a6afc951e075178d81338"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4b8a7832e2dbbadfaed717723d3d20d3"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#af3525e619e07f58d7eb8247b56ddad21">spIDOMSerializer</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html#a4b8a7832e2dbbadfaed717723d3d20d3">Clone</a> () const =0</td></tr>
+<tr class="memdesc:a4b8a7832e2dbbadfaed717723d3d20d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual copy constructor. Creates an exact replica of the object. <a href="#a4b8a7832e2dbbadfaed717723d3d20d3">More...</a><br /></td></tr>
+<tr class="separator:a4b8a7832e2dbbadfaed717723d3d20d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1IConfigurable')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td></tr>
+<tr class="memitem:a046edf1c0c7d4f994295207dea1242f7 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a046edf1c0c7d4f994295207dea1242f7">RemoveParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key)=0</td></tr>
+<tr class="memdesc:a046edf1c0c7d4f994295207dea1242f7 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes a particular parameter if present. <a href="#a046edf1c0c7d4f994295207dea1242f7">More...</a><br /></td></tr>
+<tr class="separator:a046edf1c0c7d4f994295207dea1242f7 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad0e79a0e44353d08139358a56e8510fb inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">virtual std::vector&lt; <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &gt; APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad0e79a0e44353d08139358a56e8510fb">GetAllParameters</a> () const =0</td></tr>
+<tr class="memdesc:ad0e79a0e44353d08139358a56e8510fb inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get all the keys of the parameters associated with the object. <a href="#ad0e79a0e44353d08139358a56e8510fb">More...</a><br /></td></tr>
+<tr class="separator:ad0e79a0e44353d08139358a56e8510fb inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2a1e1d3f515d431478ec309fa9dcd977 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a2a1e1d3f515d431478ec309fa9dcd977">Size</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a2a1e1d3f515d431478ec309fa9dcd977 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of parameters associated with the object. <a href="#a2a1e1d3f515d431478ec309fa9dcd977">More...</a><br /></td></tr>
+<tr class="separator:a2a1e1d3f515d431478ec309fa9dcd977 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7e71691861d38ae351bdd42392b78af6 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1">eDataType</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a7e71691861d38ae351bdd42392b78af6">GetDataType</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key) const =0</td></tr>
+<tr class="memdesc:a7e71691861d38ae351bdd42392b78af6 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the value type of a particular parameter. <a href="#a7e71691861d38ae351bdd42392b78af6">More...</a><br /></td></tr>
+<tr class="separator:a7e71691861d38ae351bdd42392b78af6 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a174330a36f7e3d27cc0230698ff59313 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a174330a36f7e3d27cc0230698ff59313">SetParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, bool value)=0</td></tr>
+<tr class="memdesc:a174330a36f7e3d27cc0230698ff59313 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add/Change a value of a parameter. <a href="#a174330a36f7e3d27cc0230698ff59313">More...</a><br /></td></tr>
+<tr class="separator:a174330a36f7e3d27cc0230698ff59313 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abc24d334364271934f6f8f1ac9051836 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#abc24d334364271934f6f8f1ac9051836">SetParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> value)=0</td></tr>
+<tr class="separator:abc24d334364271934f6f8f1ac9051836 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad248a17a9bc7ca1c189f353f62e829c4 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad248a17a9bc7ca1c189f353f62e829c4">SetParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, <a class="el" href="namespaceAdobeXMPCommon.html#aee4f68e01de51c2cf1c1044ecafebc25">int64</a> value)=0</td></tr>
+<tr class="separator:ad248a17a9bc7ca1c189f353f62e829c4 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad3b3acdbd19e5860d3e5c5cdcffeb016 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad3b3acdbd19e5860d3e5c5cdcffeb016">SetParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, double value)=0</td></tr>
+<tr class="separator:ad3b3acdbd19e5860d3e5c5cdcffeb016 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4f5a64d500f2fd8110f31a2b582e0759 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a4f5a64d500f2fd8110f31a2b582e0759">SetParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, char value)=0</td></tr>
+<tr class="separator:a4f5a64d500f2fd8110f31a2b582e0759 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae3de9436a04fcd5f6f8bd21fcc9a9edd inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ae3de9436a04fcd5f6f8bd21fcc9a9edd">SetParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, const char *value)=0</td></tr>
+<tr class="separator:ae3de9436a04fcd5f6f8bd21fcc9a9edd inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a75784001a19ac899764807095e648c70 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a75784001a19ac899764807095e648c70">SetParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, const void *value)=0</td></tr>
+<tr class="separator:a75784001a19ac899764807095e648c70 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adc0c0be10213808b04e9cef27a0efa4c inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#adc0c0be10213808b04e9cef27a0efa4c">GetParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, bool &amp;value) const =0</td></tr>
+<tr class="memdesc:adc0c0be10213808b04e9cef27a0efa4c inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the value of a parameter if present. <a href="#adc0c0be10213808b04e9cef27a0efa4c">More...</a><br /></td></tr>
+<tr class="separator:adc0c0be10213808b04e9cef27a0efa4c inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a11b855a90f26dee8d87b70ee485e6ec3 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a11b855a90f26dee8d87b70ee485e6ec3">GetParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;value) const =0</td></tr>
+<tr class="separator:a11b855a90f26dee8d87b70ee485e6ec3 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af655f02a3941826182ea54a2eb012e0d inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#af655f02a3941826182ea54a2eb012e0d">GetParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, <a class="el" href="namespaceAdobeXMPCommon.html#aee4f68e01de51c2cf1c1044ecafebc25">int64</a> &amp;value) const =0</td></tr>
+<tr class="separator:af655f02a3941826182ea54a2eb012e0d inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abc8b38df0036ec164aa6c108cdee9a5e inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#abc8b38df0036ec164aa6c108cdee9a5e">GetParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, double &amp;value) const =0</td></tr>
+<tr class="separator:abc8b38df0036ec164aa6c108cdee9a5e inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4c35becce65c3cb18075f4cac9d57609 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a4c35becce65c3cb18075f4cac9d57609">GetParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, char &amp;value) const =0</td></tr>
+<tr class="separator:a4c35becce65c3cb18075f4cac9d57609 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6115940df0fe3a07749cbf4a2bb0acbb inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a6115940df0fe3a07749cbf4a2bb0acbb">GetParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, const char *&amp;value) const =0</td></tr>
+<tr class="separator:a6115940df0fe3a07749cbf4a2bb0acbb inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a99fb34ba1e27e2e6cadea3755284cee1 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a99fb34ba1e27e2e6cadea3755284cee1">GetParameter</a> (const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> &amp;key, const void *&amp;value) const =0</td></tr>
+<tr class="separator:a99fb34ba1e27e2e6cadea3755284cee1 inherit pub_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1ISharedObject')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td></tr>
+<tr class="memitem:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc">Acquire</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the clients of the object to indicate that he has acquired the shared ownership of the object. <a href="#ab90d4ec1fcd975a7ac62dcb866335cdc">More...</a><br /></td></tr>
+<tr class="separator:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3">Release</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the clients of the object to indicate he has released his shared ownership of the object. If this being the last client than this function should call Destroy to delete and release the memory. <a href="#abf5a54e09f87366170ea19c618f68bc3">More...</a><br /></td></tr>
+<tr class="separator:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
+<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
+<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a> ()</td></tr>
+<tr class="memdesc:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to an interface object implementing the requested version. <a href="#ad6539461695decfaea8a44798db51e54">More...</a><br /></td></tr>
+<tr class="separator:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
+<tr class="memitem:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> const requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070">GetInterfacePointer</a> () const </td></tr>
+<tr class="memdesc:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to a const interface object implementing the requested version. <a href="#ab93a940e2946c14a76ebbd9552cab070">More...</a><br /></td></tr>
+<tr class="separator:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:a3631ef4b5bf7814d37f9582463d7d453"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html#a3631ef4b5bf7814d37f9582463d7d453">~IDOMSerializer_v1</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:a3631ef4b5bf7814d37f9582463d7d453"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1IConfigurable"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1IConfigurable')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td></tr>
+<tr class="memitem:a7c19f627db3d07e227e93a6a0e6b20ab inherit pro_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a7c19f627db3d07e227e93a6a0e6b20ab">~IConfigurable</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:a7c19f627db3d07e227e93a6a0e6b20ab inherit pro_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abb69da6d73e4b56c30e56b43f5a37b9b inherit pro_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#abb69da6d73e4b56c30e56b43f5a37b9b">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:abb69da6d73e4b56c30e56b43f5a37b9b inherit pro_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1ISharedObject')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td></tr>
+<tr class="memitem:a5869ff89d0b7dd0a7b525401a1d57b31 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31">~ISharedObject</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="separator:a5869ff89d0b7dd0a7b525401a1d57b31 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afcb42109aed83c3b0c133bc413388037 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#afcb42109aed83c3b0c133bc413388037">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:afcb42109aed83c3b0c133bc413388037 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
+<tr class="memitem:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a> ()</td></tr>
+<tr class="separator:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pub_types_classAdobeXMPCommon_1_1IConfigurable"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classAdobeXMPCommon_1_1IConfigurable')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td></tr>
+<tr class="memitem:ad64e6ae45633298b7158be2b0dce79a1 inherit pub_types_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1">eDataType</a> { <br />
+&#160;&#160;<a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a0233b4bacf60f59232fd3fc0dee50a27">kDTNone</a> = 0,
+<a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1abdf14ab0f7a234fc99bc476dc4212f4e">kDTBool</a> = 1 &lt;&lt; 0,
+<a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1ad24c2bb370f5fa12dee346051c13409e">kDTUint64</a> = 1 &lt;&lt; 1,
+<a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a5c57cf68bc47c55815b5bfc1146df0c3">kDTInt64</a> = 1 &lt;&lt; 2,
+<br />
+&#160;&#160;<a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a01da29c7d11b67856b0e9d5f3fe4cdb4">kDTChar</a> = 1 &lt;&lt; 3,
+<a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a11c2a544d5ac467b22d7d10098237efa">kDTDouble</a> = 1 &lt;&lt; 4,
+<a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a8d6faef7e1737835b5007987ed99c48d">kDTConstCharBuffer</a> = 1 &lt;&lt; 5,
+<a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a242c98a52e8d324027a00ee6f66d4c39">kDTConstVoidPtr</a> = 1 &lt;&lt; 6,
+<br />
+&#160;&#160;<a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1ac5217140bec2fb51971d31759f24b81a">kDTAll</a> = 0xFFFFFFFF
+<br />
+ }<tr class="memdesc:ad64e6ae45633298b7158be2b0dce79a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates various types of parameter values. <a href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:ad64e6ae45633298b7158be2b0dce79a1 inherit pub_types_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_static_methods_classAdobeXMPCommon_1_1IConfigurable"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classAdobeXMPCommon_1_1IConfigurable')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">AdobeXMPCommon::IConfigurable</a></td></tr>
+<tr class="memitem:a932bf0b8f4396de0e29f6c165954e5dc inherit pub_static_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a932bf0b8f4396de0e29f6c165954e5dc">ConvertCharBufferToUint64</a> (const char *key)</td></tr>
+<tr class="memdesc:a932bf0b8f4396de0e29f6c165954e5dc inherit pub_static_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Utility function to convert character buffer ( maximum of 8 characters ) to uint64 representation. <a href="#a932bf0b8f4396de0e29f6c165954e5dc">More...</a><br /></td></tr>
+<tr class="separator:a932bf0b8f4396de0e29f6c165954e5dc inherit pub_static_methods_classAdobeXMPCommon_1_1IConfigurable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Version1 of the interface that represents an object that can serialize an XMP Data Model to a buffer. Provides the functions to serialize the XMP Data Model. </p>
+
+<p>Definition at line <a class="el" href="IDOMSerializer_8h_source.html#l00023">23</a> of file <a class="el" href="IDOMSerializer_8h_source.html">IDOMSerializer.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a3631ef4b5bf7814d37f9582463d7d453"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual AdobeXMPCore::IDOMSerializer_v1::~IDOMSerializer_v1 </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Destructor </p>
+
+<p>Definition at line <a class="el" href="IDOMSerializer_8h_source.html#l00104">104</a> of file <a class="el" href="IDOMSerializer_8h_source.html">IDOMSerializer.h</a>.</p>
+
+<p>References <a class="el" href="XMPCommonDefines_8h_source.html#l00107">REQ_FRIEND_CLASS_DECLARATION</a>.</p>
+<div class="fragment"><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;{}</div></div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a4b8a7832e2dbbadfaed717723d3d20d3"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#af3525e619e07f58d7eb8247b56ddad21">spIDOMSerializer</a> APICALL AdobeXMPCore::IDOMSerializer_v1::Clone </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Virtual copy constructor. Creates an exact replica of the object. </p>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to an object of #IDOMSerializer which is the exact replica of the current serializer. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ac8e65d9aed0a6afc951e075178d81338"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL AdobeXMPCore::IDOMSerializer_v1::Serialize </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;&#160;</td>
+ <td class="paramname"><em>node</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCore.html#a22f9e572045a61aa3cfc629a0d877d72">spcINameSpacePrefixMap</a> &amp;&#160;</td>
+ <td class="paramname"><em>nameSpacePrefixMap</em> = <code><a class="el" href="namespaceAdobeXMPCore.html#a22f9e572045a61aa3cfc629a0d877d72">spcINameSpacePrefixMap</a>()</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Serializes the given XMP Node into an IUTF8String object. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">node</td><td>An object of type #INode which needs to be serialized. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpacePrefixMap</td><td>An object of type #INameSpacePrefixMap which contains preferred prefixes for namespaces. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>An object of #AdobeXMPCommon::IUTF8String type containing the serialized form of the node. </dd></dl>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/<a class="el" href="IDOMSerializer_8h_source.html">IDOMSerializer.h</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCore_1_1IDOMSerializer__v1.js b/docs/API/classAdobeXMPCore_1_1IDOMSerializer__v1.js
new file mode 100755
index 0000000..f4d4b17
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1IDOMSerializer__v1.js
@@ -0,0 +1,6 @@
+var classAdobeXMPCore_1_1IDOMSerializer__v1 =
+[
+ [ "~IDOMSerializer_v1", "classAdobeXMPCore_1_1IDOMSerializer__v1.html#a3631ef4b5bf7814d37f9582463d7d453", null ],
+ [ "Clone", "classAdobeXMPCore_1_1IDOMSerializer__v1.html#a4b8a7832e2dbbadfaed717723d3d20d3", null ],
+ [ "Serialize", "classAdobeXMPCore_1_1IDOMSerializer__v1.html#ac8e65d9aed0a6afc951e075178d81338", null ]
+]; \ No newline at end of file
diff --git a/docs/API/classAdobeXMPCore_1_1IDOMSerializer__v1.png b/docs/API/classAdobeXMPCore_1_1IDOMSerializer__v1.png
new file mode 100755
index 0000000..1809f40
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1IDOMSerializer__v1.png
Binary files differ
diff --git a/docs/API/classAdobeXMPCore_1_1IMetadata__v1-members.html b/docs/API/classAdobeXMPCore_1_1IMetadata__v1-members.html
new file mode 100755
index 0000000..08c8cdc
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1IMetadata__v1-members.html
@@ -0,0 +1,151 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCore_1_1IMetadata__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">AdobeXMPCore::IMetadata_v1 Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html">AdobeXMPCore::IMetadata_v1</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a673b6b4d69b2c9d85f2fa440d413ace3">AcknowledgeChanges</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc">Acquire</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a6795e662d9daea5b88de08261488964b">AppendNode</a>(const spINode &amp;node)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#abf3323ce933f5336bc0f64955c0bdd11">ChildCount</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4b615b0eef081f3c23385f28728aa462">Clear</a>(bool contents=true, bool qualifiers=true)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2d613694adcedb569145aff06d0bc595">Clone</a>(bool ignoreEmptyNodes=false, bool ignoreNodesWithOnlyQualifiers=false) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#af180be62ecd26edf90df0fe3ea75941e">ConvertToArrayNode</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a0d67ad7708fb6f007ea1152b79e65f49">ConvertToArrayNode</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a08f9ed4dee6c899f65eb51e3d7f9858d">ConvertToMetadata</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a72dc534e1af718599ac185563a02612a">ConvertToMetadata</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aeb9797165d96d06998de79dd19a9f846">ConvertToSimpleNode</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ad8e7ef140cb5ff094789abfcc879c94b">ConvertToSimpleNode</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5ea317fcd59694184089a9774c866b22">ConvertToStructureNode</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ad5f62a4ae9a9630c8106a04bd0c2a0a3">ConvertToStructureNode</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html#a114ea75cdd7e1101455af000e01ab17d">CreateMetadata</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html">AdobeXMPCore::IMetadata_v1</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#ab39f8d743ba67fc4e6a21b08b03fdde2">CreateStructureNode</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html">AdobeXMPCore::IStructureNode_v1</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html#a451bb5293ea38730bee99853b1d3237b">DisableFeature</a>(const char *key, sizet keyLength) const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html">AdobeXMPCore::IMetadata_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a214bb1b5840dbd5576e764dd2220b261">DisableThreadSafety</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html#a179a82bd3f38996331e9ee0bdee997b9">EnableFeature</a>(const char *key, sizet keyLength) const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html">AdobeXMPCore::IMetadata_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#afe35614cb88e2bdb32996cf4ac15b211">EnableThreadSafety</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> enum name</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html#a707b78542a91b833a6cf45be3516813c">GetAboutURI</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html">AdobeXMPCore::IMetadata_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a8ee43418308bf6f80d1fc90eb84f5db0">GetArrayNode</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html">AdobeXMPCore::IStructureNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#af8fe4c8e7c9a5262b1125aea6606fe2e">GetArrayNode</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html">AdobeXMPCore::IStructureNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a2e17bda06b20439a0076ea2fae68594d">GetArrayNodeAtPath</a>(const spcIPath &amp;path) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#aba3fc78fab746460b1e7e01fe2e004b6">GetArrayNodeAtPath</a>(const spcIPath &amp;path)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ab55c9dad49840d58a1c2c16b9f1962ad">GetArrayQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a2e68d1345ed6ca2e5d1bfada42b13f">GetArrayQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a1463dda9dea83f54c69ad72f105f5eff">GetChildNodeType</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html">AdobeXMPCore::IStructureNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2447e6ea34adbe073a639c703015db90">GetIndex</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070">GetInterfacePointer</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a68350da5edc0668811b9bb890d5777b9">GetName</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2e8319347c3b01638027b4abbe72fda6">GetNameSpace</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#afd94de430e29982143eb04315b954b24">GetNode</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html">AdobeXMPCore::IStructureNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#af5ce2401c3613c06ccb8b8fa69af4a1c">GetNode</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html">AdobeXMPCore::IStructureNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a5c4cddddb0702e61d85cff16c5e72632">GetNodeAtPath</a>(const spcIPath &amp;path) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a0dd2a64d53b361b96bdfb597c5e35579">GetNodeAtPath</a>(const spcIPath &amp;path)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a6d9067d66571727b622ffccade5225f0">GetNodeType</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#ac5e3227436e3ee11d0df7f3a176402e0">GetNodeTypeAtPath</a>(const spcIPath &amp;path) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aee7e1f35ac174874234ba5e913a6bfaa">GetParent</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4533c1d11fc2d32c166c9ce05fe01b3c">GetParent</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a47da5e5605d69d6d6ced761e7c39d24f">GetParentNodeType</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a549f1adeea470827a6201b3b4c596f1e">GetPath</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a96a99fa56a2b088691ecad5a0cf6e54d">GetQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a7701069162b4f677026624a5f2b3f788">GetQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2866bcde949c37aeb72cdba8dddcac95">GetQualifierNodeType</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#aaf000a83b1448eb8453f37fc42543ae7">GetSimpleNode</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html">AdobeXMPCore::IStructureNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a23ea406052e9201f3b35e59cc2b206a5">GetSimpleNode</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html">AdobeXMPCore::IStructureNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a93d1009b739d8a6c40ebbf4aa75051af">GetSimpleNodeAtPath</a>(const spcIPath &amp;path) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a42c91ca3eeded6302163a96903927445">GetSimpleNodeAtPath</a>(const spcIPath &amp;path)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a1524d74e397863cb9324838862f70d7b">GetSimpleQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2831fe03981afd9af12e775bda89361e">GetSimpleQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#ab815d3b2335f27dccc15472196696e08">GetStructureNode</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html">AdobeXMPCore::IStructureNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a9b380e96dca941b5f9c3143931f7f633">GetStructureNode</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html">AdobeXMPCore::IStructureNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#ad6ca35dc12323a3a970066beb4c63e84">GetStructureNodeAtPath</a>(const spcIPath &amp;path) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a2abb6cdf40e6d4c91e30b736586e89dc">GetStructureNodeAtPath</a>(const spcIPath &amp;path)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a844a40cd69e0d87226ce1146d733edd6">GetStructureQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4fb3c837b8c28501b2e7a3376a2cf382">GetStructureQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ab78ba3aaadf4b0109e610505e753de50">HasChanged</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa288c34c9bccb73ae73b653f3c769ade">HasContent</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#adfd1ce7bd20268240769f8a6a405a8ee">HasQualifiers</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a22d61015856c67f05237af9513e98ff7">InsertNode</a>(const spINode &amp;node)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html">AdobeXMPCore::IStructureNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a39f5d9b31976e7a243d11152cd57260b">InsertNodeAtPath</a>(const spINode &amp;node, const spcIPath &amp;path)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a5e6dd9a58a288f20fd0a667a30a2ae">InsertQualifier</a>(const spINode &amp;node)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a3289deed9715f661f5f588dc38642baa">IsArrayItem</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5075ad988ba61e055b6ee6bbeaf25e25">IsEmpty</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a0d545f6b4b2b9760b63c902317c43a94">IsQualifierNode</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a261e2f6af96b75015e5f8318f32be7f9">IsThreadSafe</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a313df9421df168266a32592732c25d9f">Iterator</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#afa9e587b9293ff99d9f8b38b0cc07cad">Iterator</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a68bac77fd8140a60490eb78f0b533e21">kNTAll</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a60c6b4c3dfc99d8584866f5f18ff2610">kNTArray</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913aae32cc414cc7adaf3b2a1c375f2cb3bb">kNTNone</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a97e0c4fb69029d0d152c068c10736234">kNTSimple</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a7542b80b3b688cd3d210d62d12dbe471">kNTStructure</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#af898813d17af58fb1a828d92a74d7dd3">QualifiersCount</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a9972ca54948952083a930166448c05c0">QualifiersIterator</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa168f37bc38763df55fb1022d55886bd">QualifiersIterator</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3">Release</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a25d8ec1ee8031cb693bb8c8a8102c8f8">RemoveNode</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html">AdobeXMPCore::IStructureNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a1c713f2e29d6d0e9d4a1ee800a679f06">RemoveNodeAtPath</a>(const spcIPath &amp;path)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a87f03e9924418ae5f7b6fa63def6eee8">RemoveQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a5764457c137c97a42af6ca156563e455">ReplaceNode</a>(const spINode &amp;node)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html">AdobeXMPCore::IStructureNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a2c51c5296da4abb8fa5d5999f686602b">ReplaceNodeAtPath</a>(const spINode &amp;node, const spcIPath &amp;path)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a2692b8281984d9fe6de6c169332f2c">ReplaceQualifier</a>(const spINode &amp;node)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#afcb42109aed83c3b0c133bc413388037">AdobeXMPCommon::REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f">AdobeXMPCommon::IVersionable::REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a0f31eb9677c4af06288319e363c21ebc">AdobeXMPCommon::IThreadSafe::REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html#a275726ca1831735fff14119b224f1028">SetAboutURI</a>(const char *uri, sizet uriLength) __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html">AdobeXMPCore::IMetadata_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa087d2f94e42fdd5ece1bd22dfea66d5">SetName</a>(const char *name, sizet nameLength)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a55c6097b36412f9facc8a4cf7e898186">SetNameSpace</a>(const char *nameSpace, sizet nameSpaceLength)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a51af220e29b40e8520ae5765f28515bf">~ICompositeNode_v1</a>() __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html#ada50f9f0415ce96ac1df948f510a3f75">~IMetadata_v1</a>() __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html">AdobeXMPCore::IMetadata_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#affdbed044179bbde65ffc28b20e28ecb">~INode_v1</a>() __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31">~ISharedObject</a>() __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a0cdcce18c6ebbb1764286e3e2456c694">~IStructureNode_v1</a>() __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html">AdobeXMPCore::IStructureNode_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCore_1_1IMetadata__v1.html b/docs/API/classAdobeXMPCore_1_1IMetadata__v1.html
new file mode 100755
index 0000000..af7a0b1
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1IMetadata__v1.html
@@ -0,0 +1,585 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>AdobeXMPCore::IMetadata_v1 Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCore_1_1IMetadata__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="classAdobeXMPCore_1_1IMetadata__v1-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">AdobeXMPCore::IMetadata_v1 Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Version1 of the interface that represents the whole xmp metadata for an asset.
+ <a href="classAdobeXMPCore_1_1IMetadata__v1.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="IMetadata_8h_source.html">IMetadata.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for AdobeXMPCore::IMetadata_v1:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classAdobeXMPCore_1_1IMetadata__v1.png" usemap="#AdobeXMPCore::IMetadata_5Fv1_map" alt=""/>
+ <map id="AdobeXMPCore::IMetadata_5Fv1_map" name="AdobeXMPCore::IMetadata_v1_map">
+<area href="classAdobeXMPCore_1_1IStructureNode__v1.html" title="Version1 of the interface that represents a structure Node of XMP DOM. " alt="AdobeXMPCore::IStructureNode_v1" shape="rect" coords="233,168,456,192"/>
+<area href="classAdobeXMPCore_1_1ICompositeNode__v1.html" title="Version1 of the interface that serves as a base interface to all composite types of nodes in the XMP ..." alt="AdobeXMPCore::ICompositeNode_v1" shape="rect" coords="233,112,456,136"/>
+<area href="classAdobeXMPCore_1_1INode__v1.html" title="Version1 of the interface that serves as a base interface to all types of nodes in the XMP DOM..." alt="AdobeXMPCore::INode_v1" shape="rect" coords="233,56,456,80"/>
+<area href="classAdobeXMPCommon_1_1ISharedObject.html" title="Interface that serves as the base interface of all the externally exposed interfaces. " alt="AdobeXMPCommon::ISharedObject" shape="rect" coords="0,0,223,24"/>
+<area href="classAdobeXMPCommon_1_1IVersionable.html" title="Interface that serves as the base interface for all the externally exposed interfaces which needs to ..." alt="AdobeXMPCommon::IVersionable" shape="rect" coords="233,0,456,24"/>
+<area href="classAdobeXMPCommon_1_1IThreadSafe.html" title="Interface that serves as the base interface for all the externally exposed interfaces which needs to ..." alt="AdobeXMPCommon::IThreadSafe" shape="rect" coords="466,0,689,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a707b78542a91b833a6cf45be3516813c"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html#a707b78542a91b833a6cf45be3516813c">GetAboutURI</a> () const =0</td></tr>
+<tr class="memdesc:a707b78542a91b833a6cf45be3516813c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the about URI string for the XMP metadata. <a href="#a707b78542a91b833a6cf45be3516813c">More...</a><br /></td></tr>
+<tr class="separator:a707b78542a91b833a6cf45be3516813c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a275726ca1831735fff14119b224f1028"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html#a275726ca1831735fff14119b224f1028">SetAboutURI</a> (const char *uri, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> uriLength) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a275726ca1831735fff14119b224f1028"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the about URI string for the XMP metadata. <a href="#a275726ca1831735fff14119b224f1028">More...</a><br /></td></tr>
+<tr class="separator:a275726ca1831735fff14119b224f1028"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a179a82bd3f38996331e9ee0bdee997b9"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html#a179a82bd3f38996331e9ee0bdee997b9">EnableFeature</a> (const char *key, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> keyLength) const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a179a82bd3f38996331e9ee0bdee997b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables support for a particular feature. <a href="#a179a82bd3f38996331e9ee0bdee997b9">More...</a><br /></td></tr>
+<tr class="separator:a179a82bd3f38996331e9ee0bdee997b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a451bb5293ea38730bee99853b1d3237b"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html#a451bb5293ea38730bee99853b1d3237b">DisableFeature</a> (const char *key, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> keyLength) const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a451bb5293ea38730bee99853b1d3237b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disables support for a particular feature. <a href="#a451bb5293ea38730bee99853b1d3237b">More...</a><br /></td></tr>
+<tr class="separator:a451bb5293ea38730bee99853b1d3237b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCore_1_1IStructureNode__v1"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCore_1_1IStructureNode__v1')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html">AdobeXMPCore::IStructureNode_v1</a></td></tr>
+<tr class="memitem:a1463dda9dea83f54c69ad72f105f5eff inherit pub_methods_classAdobeXMPCore_1_1IStructureNode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a1463dda9dea83f54c69ad72f105f5eff">GetChildNodeType</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const =0</td></tr>
+<tr class="memdesc:a1463dda9dea83f54c69ad72f105f5eff inherit pub_methods_classAdobeXMPCore_1_1IStructureNode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the type of the node's child having specified namespace and name. <a href="#a1463dda9dea83f54c69ad72f105f5eff">More...</a><br /></td></tr>
+<tr class="separator:a1463dda9dea83f54c69ad72f105f5eff inherit pub_methods_classAdobeXMPCore_1_1IStructureNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a22d61015856c67f05237af9513e98ff7 inherit pub_methods_classAdobeXMPCore_1_1IStructureNode__v1"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a22d61015856c67f05237af9513e98ff7">InsertNode</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;node)=0</td></tr>
+<tr class="memdesc:a22d61015856c67f05237af9513e98ff7 inherit pub_methods_classAdobeXMPCore_1_1IStructureNode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inserts a given node. <a href="#a22d61015856c67f05237af9513e98ff7">More...</a><br /></td></tr>
+<tr class="separator:a22d61015856c67f05237af9513e98ff7 inherit pub_methods_classAdobeXMPCore_1_1IStructureNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5764457c137c97a42af6ca156563e455 inherit pub_methods_classAdobeXMPCore_1_1IStructureNode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a5764457c137c97a42af6ca156563e455">ReplaceNode</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;node)=0</td></tr>
+<tr class="memdesc:a5764457c137c97a42af6ca156563e455 inherit pub_methods_classAdobeXMPCore_1_1IStructureNode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replaces a given node. <a href="#a5764457c137c97a42af6ca156563e455">More...</a><br /></td></tr>
+<tr class="separator:a5764457c137c97a42af6ca156563e455 inherit pub_methods_classAdobeXMPCore_1_1IStructureNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a25d8ec1ee8031cb693bb8c8a8102c8f8 inherit pub_methods_classAdobeXMPCore_1_1IStructureNode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a25d8ec1ee8031cb693bb8c8a8102c8f8">RemoveNode</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)=0</td></tr>
+<tr class="memdesc:a25d8ec1ee8031cb693bb8c8a8102c8f8 inherit pub_methods_classAdobeXMPCore_1_1IStructureNode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes the node with the specified nameSpace and name. <a href="#a25d8ec1ee8031cb693bb8c8a8102c8f8">More...</a><br /></td></tr>
+<tr class="separator:a25d8ec1ee8031cb693bb8c8a8102c8f8 inherit pub_methods_classAdobeXMPCore_1_1IStructureNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd94de430e29982143eb04315b954b24 inherit pub_methods_classAdobeXMPCore_1_1IStructureNode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">spcINode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#afd94de430e29982143eb04315b954b24">GetNode</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const </td></tr>
+<tr class="memdesc:afd94de430e29982143eb04315b954b24 inherit pub_methods_classAdobeXMPCore_1_1IStructureNode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the child of the node having specified namespace and name. <a href="#afd94de430e29982143eb04315b954b24">More...</a><br /></td></tr>
+<tr class="separator:afd94de430e29982143eb04315b954b24 inherit pub_methods_classAdobeXMPCore_1_1IStructureNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af5ce2401c3613c06ccb8b8fa69af4a1c inherit pub_methods_classAdobeXMPCore_1_1IStructureNode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#af5ce2401c3613c06ccb8b8fa69af4a1c">GetNode</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)=0</td></tr>
+<tr class="separator:af5ce2401c3613c06ccb8b8fa69af4a1c inherit pub_methods_classAdobeXMPCore_1_1IStructureNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaf000a83b1448eb8453f37fc42543ae7 inherit pub_methods_classAdobeXMPCore_1_1IStructureNode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#aaf000a83b1448eb8453f37fc42543ae7">GetSimpleNode</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const </td></tr>
+<tr class="memdesc:aaf000a83b1448eb8453f37fc42543ae7 inherit pub_methods_classAdobeXMPCore_1_1IStructureNode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the node's child having specified name space and name as simple node. <a href="#aaf000a83b1448eb8453f37fc42543ae7">More...</a><br /></td></tr>
+<tr class="separator:aaf000a83b1448eb8453f37fc42543ae7 inherit pub_methods_classAdobeXMPCore_1_1IStructureNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a23ea406052e9201f3b35e59cc2b206a5 inherit pub_methods_classAdobeXMPCore_1_1IStructureNode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a23ea406052e9201f3b35e59cc2b206a5">GetSimpleNode</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)</td></tr>
+<tr class="separator:a23ea406052e9201f3b35e59cc2b206a5 inherit pub_methods_classAdobeXMPCore_1_1IStructureNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab815d3b2335f27dccc15472196696e08 inherit pub_methods_classAdobeXMPCore_1_1IStructureNode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#ab815d3b2335f27dccc15472196696e08">GetStructureNode</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const </td></tr>
+<tr class="memdesc:ab815d3b2335f27dccc15472196696e08 inherit pub_methods_classAdobeXMPCore_1_1IStructureNode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the node's child having specified name space and name as structure node. <a href="#ab815d3b2335f27dccc15472196696e08">More...</a><br /></td></tr>
+<tr class="separator:ab815d3b2335f27dccc15472196696e08 inherit pub_methods_classAdobeXMPCore_1_1IStructureNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9b380e96dca941b5f9c3143931f7f633 inherit pub_methods_classAdobeXMPCore_1_1IStructureNode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a9b380e96dca941b5f9c3143931f7f633">GetStructureNode</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)</td></tr>
+<tr class="separator:a9b380e96dca941b5f9c3143931f7f633 inherit pub_methods_classAdobeXMPCore_1_1IStructureNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8ee43418308bf6f80d1fc90eb84f5db0 inherit pub_methods_classAdobeXMPCore_1_1IStructureNode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a8ee43418308bf6f80d1fc90eb84f5db0">GetArrayNode</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const </td></tr>
+<tr class="memdesc:a8ee43418308bf6f80d1fc90eb84f5db0 inherit pub_methods_classAdobeXMPCore_1_1IStructureNode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the node's child having specified name space and name as an array node. <a href="#a8ee43418308bf6f80d1fc90eb84f5db0">More...</a><br /></td></tr>
+<tr class="separator:a8ee43418308bf6f80d1fc90eb84f5db0 inherit pub_methods_classAdobeXMPCore_1_1IStructureNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af8fe4c8e7c9a5262b1125aea6606fe2e inherit pub_methods_classAdobeXMPCore_1_1IStructureNode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#af8fe4c8e7c9a5262b1125aea6606fe2e">GetArrayNode</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)</td></tr>
+<tr class="separator:af8fe4c8e7c9a5262b1125aea6606fe2e inherit pub_methods_classAdobeXMPCore_1_1IStructureNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td></tr>
+<tr class="memitem:ac5e3227436e3ee11d0df7f3a176402e0 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#ac5e3227436e3ee11d0df7f3a176402e0">GetNodeTypeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path) const =0</td></tr>
+<tr class="memdesc:ac5e3227436e3ee11d0df7f3a176402e0 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the node type specified by the path relative to the composite node. <a href="#ac5e3227436e3ee11d0df7f3a176402e0">More...</a><br /></td></tr>
+<tr class="separator:ac5e3227436e3ee11d0df7f3a176402e0 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6795e662d9daea5b88de08261488964b inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a6795e662d9daea5b88de08261488964b">AppendNode</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;node)=0</td></tr>
+<tr class="memdesc:a6795e662d9daea5b88de08261488964b inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends a given node as the child of the node. <a href="#a6795e662d9daea5b88de08261488964b">More...</a><br /></td></tr>
+<tr class="separator:a6795e662d9daea5b88de08261488964b inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a39f5d9b31976e7a243d11152cd57260b inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a39f5d9b31976e7a243d11152cd57260b">InsertNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;node, const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path)=0</td></tr>
+<tr class="memdesc:a39f5d9b31976e7a243d11152cd57260b inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inserts a given node at the path relative to the composite node. <a href="#a39f5d9b31976e7a243d11152cd57260b">More...</a><br /></td></tr>
+<tr class="separator:a39f5d9b31976e7a243d11152cd57260b inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2c51c5296da4abb8fa5d5999f686602b inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a2c51c5296da4abb8fa5d5999f686602b">ReplaceNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;node, const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path)=0</td></tr>
+<tr class="memdesc:a2c51c5296da4abb8fa5d5999f686602b inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replaces an existing node with the given node at the path relative to the composite node.. <a href="#a2c51c5296da4abb8fa5d5999f686602b">More...</a><br /></td></tr>
+<tr class="separator:a2c51c5296da4abb8fa5d5999f686602b inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1c713f2e29d6d0e9d4a1ee800a679f06 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a1c713f2e29d6d0e9d4a1ee800a679f06">RemoveNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path)=0</td></tr>
+<tr class="memdesc:a1c713f2e29d6d0e9d4a1ee800a679f06 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes the node specified by the path relative to the composite node. <a href="#a1c713f2e29d6d0e9d4a1ee800a679f06">More...</a><br /></td></tr>
+<tr class="separator:a1c713f2e29d6d0e9d4a1ee800a679f06 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abf3323ce933f5336bc0f64955c0bdd11 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#abf3323ce933f5336bc0f64955c0bdd11">ChildCount</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:abf3323ce933f5336bc0f64955c0bdd11 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the count of child nodes of the composite node. <a href="#abf3323ce933f5336bc0f64955c0bdd11">More...</a><br /></td></tr>
+<tr class="separator:abf3323ce933f5336bc0f64955c0bdd11 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5c4cddddb0702e61d85cff16c5e72632 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">spcINode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a5c4cddddb0702e61d85cff16c5e72632">GetNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path) const </td></tr>
+<tr class="memdesc:a5c4cddddb0702e61d85cff16c5e72632 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the node specified by the path relative to the composite node. <a href="#a5c4cddddb0702e61d85cff16c5e72632">More...</a><br /></td></tr>
+<tr class="separator:a5c4cddddb0702e61d85cff16c5e72632 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0dd2a64d53b361b96bdfb597c5e35579 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a0dd2a64d53b361b96bdfb597c5e35579">GetNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path)=0</td></tr>
+<tr class="separator:a0dd2a64d53b361b96bdfb597c5e35579 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a313df9421df168266a32592732c25d9f inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a5386a735d9eb66d5859e4657dfeebb7c">spINodeIterator</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a313df9421df168266a32592732c25d9f">Iterator</a> ()=0</td></tr>
+<tr class="memdesc:a313df9421df168266a32592732c25d9f inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get an iterator object to iterate over all the child nodes of the composite node. <a href="#a313df9421df168266a32592732c25d9f">More...</a><br /></td></tr>
+<tr class="separator:a313df9421df168266a32592732c25d9f inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afa9e587b9293ff99d9f8b38b0cc07cad inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab423c366f29043e79694f805bceddb56">spcINodeIterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#afa9e587b9293ff99d9f8b38b0cc07cad">Iterator</a> () const </td></tr>
+<tr class="separator:afa9e587b9293ff99d9f8b38b0cc07cad inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a93d1009b739d8a6c40ebbf4aa75051af inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a93d1009b739d8a6c40ebbf4aa75051af">GetSimpleNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path) const </td></tr>
+<tr class="memdesc:a93d1009b739d8a6c40ebbf4aa75051af inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a simple node specified by the path relative to the node. <a href="#a93d1009b739d8a6c40ebbf4aa75051af">More...</a><br /></td></tr>
+<tr class="separator:a93d1009b739d8a6c40ebbf4aa75051af inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a42c91ca3eeded6302163a96903927445 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a42c91ca3eeded6302163a96903927445">GetSimpleNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path)</td></tr>
+<tr class="separator:a42c91ca3eeded6302163a96903927445 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad6ca35dc12323a3a970066beb4c63e84 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#ad6ca35dc12323a3a970066beb4c63e84">GetStructureNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path) const </td></tr>
+<tr class="memdesc:ad6ca35dc12323a3a970066beb4c63e84 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a structure node specified by the path relative to the node. <a href="#ad6ca35dc12323a3a970066beb4c63e84">More...</a><br /></td></tr>
+<tr class="separator:ad6ca35dc12323a3a970066beb4c63e84 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2abb6cdf40e6d4c91e30b736586e89dc inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a2abb6cdf40e6d4c91e30b736586e89dc">GetStructureNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path)</td></tr>
+<tr class="separator:a2abb6cdf40e6d4c91e30b736586e89dc inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2e17bda06b20439a0076ea2fae68594d inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a2e17bda06b20439a0076ea2fae68594d">GetArrayNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path) const </td></tr>
+<tr class="memdesc:a2e17bda06b20439a0076ea2fae68594d inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get an array node specified by the path relative to the node. <a href="#a2e17bda06b20439a0076ea2fae68594d">More...</a><br /></td></tr>
+<tr class="separator:a2e17bda06b20439a0076ea2fae68594d inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aba3fc78fab746460b1e7e01fe2e004b6 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#aba3fc78fab746460b1e7e01fe2e004b6">GetArrayNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path)</td></tr>
+<tr class="separator:aba3fc78fab746460b1e7e01fe2e004b6 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCore_1_1INode__v1"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCore_1_1INode__v1')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td></tr>
+<tr class="memitem:a6d9067d66571727b622ffccade5225f0 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a6d9067d66571727b622ffccade5225f0">GetNodeType</a> () const =0</td></tr>
+<tr class="memdesc:a6d9067d66571727b622ffccade5225f0 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the node type of the node. <a href="#a6d9067d66571727b622ffccade5225f0">More...</a><br /></td></tr>
+<tr class="separator:a6d9067d66571727b622ffccade5225f0 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a47da5e5605d69d6d6ced761e7c39d24f inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a47da5e5605d69d6d6ced761e7c39d24f">GetParentNodeType</a> () const =0</td></tr>
+<tr class="memdesc:a47da5e5605d69d6d6ced761e7c39d24f inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the node type of the node's parent. <a href="#a47da5e5605d69d6d6ced761e7c39d24f">More...</a><br /></td></tr>
+<tr class="separator:a47da5e5605d69d6d6ced761e7c39d24f inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa087d2f94e42fdd5ece1bd22dfea66d5 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa087d2f94e42fdd5ece1bd22dfea66d5">SetName</a> (const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)=0</td></tr>
+<tr class="memdesc:aa087d2f94e42fdd5ece1bd22dfea66d5 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the local name of the node. <a href="#aa087d2f94e42fdd5ece1bd22dfea66d5">More...</a><br /></td></tr>
+<tr class="separator:aa087d2f94e42fdd5ece1bd22dfea66d5 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a68350da5edc0668811b9bb890d5777b9 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a68350da5edc0668811b9bb890d5777b9">GetName</a> () const =0</td></tr>
+<tr class="memdesc:a68350da5edc0668811b9bb890d5777b9 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the local name of the node. <a href="#a68350da5edc0668811b9bb890d5777b9">More...</a><br /></td></tr>
+<tr class="separator:a68350da5edc0668811b9bb890d5777b9 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a55c6097b36412f9facc8a4cf7e898186 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a55c6097b36412f9facc8a4cf7e898186">SetNameSpace</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength)=0</td></tr>
+<tr class="memdesc:a55c6097b36412f9facc8a4cf7e898186 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the name space of the node. <a href="#a55c6097b36412f9facc8a4cf7e898186">More...</a><br /></td></tr>
+<tr class="separator:a55c6097b36412f9facc8a4cf7e898186 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2e8319347c3b01638027b4abbe72fda6 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2e8319347c3b01638027b4abbe72fda6">GetNameSpace</a> () const =0</td></tr>
+<tr class="memdesc:a2e8319347c3b01638027b4abbe72fda6 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the name space of the node. <a href="#a2e8319347c3b01638027b4abbe72fda6">More...</a><br /></td></tr>
+<tr class="separator:a2e8319347c3b01638027b4abbe72fda6 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a549f1adeea470827a6201b3b4c596f1e inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aa54f5ed241da9437ad01c1047a199f56">spIPath</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a549f1adeea470827a6201b3b4c596f1e">GetPath</a> () const =0</td></tr>
+<tr class="memdesc:a549f1adeea470827a6201b3b4c596f1e inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the path of the node from the root of the metadata. <a href="#a549f1adeea470827a6201b3b4c596f1e">More...</a><br /></td></tr>
+<tr class="separator:a549f1adeea470827a6201b3b4c596f1e inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af898813d17af58fb1a828d92a74d7dd3 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#af898813d17af58fb1a828d92a74d7dd3">QualifiersCount</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:af898813d17af58fb1a828d92a74d7dd3 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the count of the qualifiers attached with the node. <a href="#af898813d17af58fb1a828d92a74d7dd3">More...</a><br /></td></tr>
+<tr class="separator:af898813d17af58fb1a828d92a74d7dd3 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2866bcde949c37aeb72cdba8dddcac95 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2866bcde949c37aeb72cdba8dddcac95">GetQualifierNodeType</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const =0</td></tr>
+<tr class="memdesc:a2866bcde949c37aeb72cdba8dddcac95 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the type of the node's qualifier having specified namespace and name. <a href="#a2866bcde949c37aeb72cdba8dddcac95">More...</a><br /></td></tr>
+<tr class="separator:a2866bcde949c37aeb72cdba8dddcac95 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a5e6dd9a58a288f20fd0a667a30a2ae inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a5e6dd9a58a288f20fd0a667a30a2ae">InsertQualifier</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;node)=0</td></tr>
+<tr class="memdesc:a5a5e6dd9a58a288f20fd0a667a30a2ae inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inserts a given qualifier node. <a href="#a5a5e6dd9a58a288f20fd0a667a30a2ae">More...</a><br /></td></tr>
+<tr class="separator:a5a5e6dd9a58a288f20fd0a667a30a2ae inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a2692b8281984d9fe6de6c169332f2c inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a2692b8281984d9fe6de6c169332f2c">ReplaceQualifier</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;node)=0</td></tr>
+<tr class="memdesc:a5a2692b8281984d9fe6de6c169332f2c inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replaces a given qualifier node. <a href="#a5a2692b8281984d9fe6de6c169332f2c">More...</a><br /></td></tr>
+<tr class="separator:a5a2692b8281984d9fe6de6c169332f2c inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a87f03e9924418ae5f7b6fa63def6eee8 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a87f03e9924418ae5f7b6fa63def6eee8">RemoveQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)=0</td></tr>
+<tr class="memdesc:a87f03e9924418ae5f7b6fa63def6eee8 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes the qualifier node with the specified nameSpace and name. <a href="#a87f03e9924418ae5f7b6fa63def6eee8">More...</a><br /></td></tr>
+<tr class="separator:a87f03e9924418ae5f7b6fa63def6eee8 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3289deed9715f661f5f588dc38642baa inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a3289deed9715f661f5f588dc38642baa">IsArrayItem</a> () const =0</td></tr>
+<tr class="memdesc:a3289deed9715f661f5f588dc38642baa inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates whether the node is a direct child of an array node. <a href="#a3289deed9715f661f5f588dc38642baa">More...</a><br /></td></tr>
+<tr class="separator:a3289deed9715f661f5f588dc38642baa inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0d545f6b4b2b9760b63c902317c43a94 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a0d545f6b4b2b9760b63c902317c43a94">IsQualifierNode</a> () const =0</td></tr>
+<tr class="memdesc:a0d545f6b4b2b9760b63c902317c43a94 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates whether the node is a qualifier node. <a href="#a0d545f6b4b2b9760b63c902317c43a94">More...</a><br /></td></tr>
+<tr class="separator:a0d545f6b4b2b9760b63c902317c43a94 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2447e6ea34adbe073a639c703015db90 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2447e6ea34adbe073a639c703015db90">GetIndex</a> () const =0</td></tr>
+<tr class="memdesc:a2447e6ea34adbe073a639c703015db90 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the index of the node in case it is an array item. <a href="#a2447e6ea34adbe073a639c703015db90">More...</a><br /></td></tr>
+<tr class="separator:a2447e6ea34adbe073a639c703015db90 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adfd1ce7bd20268240769f8a6a405a8ee inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#adfd1ce7bd20268240769f8a6a405a8ee">HasQualifiers</a> () const =0</td></tr>
+<tr class="memdesc:adfd1ce7bd20268240769f8a6a405a8ee inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates whether the node has any qualifiers associated with it. <a href="#adfd1ce7bd20268240769f8a6a405a8ee">More...</a><br /></td></tr>
+<tr class="separator:adfd1ce7bd20268240769f8a6a405a8ee inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa288c34c9bccb73ae73b653f3c769ade inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa288c34c9bccb73ae73b653f3c769ade">HasContent</a> () const =0</td></tr>
+<tr class="memdesc:aa288c34c9bccb73ae73b653f3c769ade inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether the node has any content or not. return A bool value indicating the presence of contents in the node apart from qualifiers. <a href="#aa288c34c9bccb73ae73b653f3c769ade">More...</a><br /></td></tr>
+<tr class="separator:aa288c34c9bccb73ae73b653f3c769ade inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5075ad988ba61e055b6ee6bbeaf25e25 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5075ad988ba61e055b6ee6bbeaf25e25">IsEmpty</a> () const =0</td></tr>
+<tr class="memdesc:a5075ad988ba61e055b6ee6bbeaf25e25 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether the node is empty. return A bool value indicating whether the contents and qualifiers of a node are empty. <a href="#a5075ad988ba61e055b6ee6bbeaf25e25">More...</a><br /></td></tr>
+<tr class="separator:a5075ad988ba61e055b6ee6bbeaf25e25 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab78ba3aaadf4b0109e610505e753de50 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ab78ba3aaadf4b0109e610505e753de50">HasChanged</a> () const =0</td></tr>
+<tr class="memdesc:ab78ba3aaadf4b0109e610505e753de50 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the status about any change done to the node or its children or qualifiers. returns a bool value indicating whether some changes have been performed on the node or its children or qualifiers. for a simple node, true will be returned in scenarios like when the node's value or qualifiers are modified. for an array node or a structure node, true will be returned in scenarios like when the node's children or the node's qualifiers are modified. <a href="#ab78ba3aaadf4b0109e610505e753de50">More...</a><br /></td></tr>
+<tr class="separator:ab78ba3aaadf4b0109e610505e753de50 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a673b6b4d69b2c9d85f2fa440d413ace3 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a673b6b4d69b2c9d85f2fa440d413ace3">AcknowledgeChanges</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a673b6b4d69b2c9d85f2fa440d413ace3 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Acknowledges that changes for the node and its children and qualifiers have been taken care of. for a simple node, changes that will be acknowledged in scenarios like when the node's value or node's qualifiers were modified. for an array node or a structure node, changes will be acknowledged in scenarios like when the node's children were or the node's qualifiers were modified. <a href="#a673b6b4d69b2c9d85f2fa440d413ace3">More...</a><br /></td></tr>
+<tr class="separator:a673b6b4d69b2c9d85f2fa440d413ace3 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4b615b0eef081f3c23385f28728aa462 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4b615b0eef081f3c23385f28728aa462">Clear</a> (bool contents=true, bool qualifiers=true)=0</td></tr>
+<tr class="memdesc:a4b615b0eef081f3c23385f28728aa462 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the contents of the node. <a href="#a4b615b0eef081f3c23385f28728aa462">More...</a><br /></td></tr>
+<tr class="separator:a4b615b0eef081f3c23385f28728aa462 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2d613694adcedb569145aff06d0bc595 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2d613694adcedb569145aff06d0bc595">Clone</a> (bool ignoreEmptyNodes=false, bool ignoreNodesWithOnlyQualifiers=false) const =0</td></tr>
+<tr class="memdesc:a2d613694adcedb569145aff06d0bc595 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual copy constructor. <a href="#a2d613694adcedb569145aff06d0bc595">More...</a><br /></td></tr>
+<tr class="separator:a2d613694adcedb569145aff06d0bc595 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aee7e1f35ac174874234ba5e913a6bfaa inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">spcINode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aee7e1f35ac174874234ba5e913a6bfaa">GetParent</a> () const </td></tr>
+<tr class="memdesc:aee7e1f35ac174874234ba5e913a6bfaa inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the parent node of the node. <a href="#aee7e1f35ac174874234ba5e913a6bfaa">More...</a><br /></td></tr>
+<tr class="separator:aee7e1f35ac174874234ba5e913a6bfaa inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4533c1d11fc2d32c166c9ce05fe01b3c inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4533c1d11fc2d32c166c9ce05fe01b3c">GetParent</a> ()=0</td></tr>
+<tr class="separator:a4533c1d11fc2d32c166c9ce05fe01b3c inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9972ca54948952083a930166448c05c0 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab423c366f29043e79694f805bceddb56">spcINodeIterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a9972ca54948952083a930166448c05c0">QualifiersIterator</a> () const </td></tr>
+<tr class="separator:a9972ca54948952083a930166448c05c0 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa168f37bc38763df55fb1022d55886bd inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a5386a735d9eb66d5859e4657dfeebb7c">spINodeIterator</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa168f37bc38763df55fb1022d55886bd">QualifiersIterator</a> ()=0</td></tr>
+<tr class="separator:aa168f37bc38763df55fb1022d55886bd inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a96a99fa56a2b088691ecad5a0cf6e54d inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">spcINode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a96a99fa56a2b088691ecad5a0cf6e54d">GetQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const </td></tr>
+<tr class="memdesc:a96a99fa56a2b088691ecad5a0cf6e54d inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the qualifier of the node having specified namespace and name. <a href="#a96a99fa56a2b088691ecad5a0cf6e54d">More...</a><br /></td></tr>
+<tr class="separator:a96a99fa56a2b088691ecad5a0cf6e54d inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7701069162b4f677026624a5f2b3f788 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a7701069162b4f677026624a5f2b3f788">GetQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)=0</td></tr>
+<tr class="separator:a7701069162b4f677026624a5f2b3f788 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1524d74e397863cb9324838862f70d7b inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a1524d74e397863cb9324838862f70d7b">GetSimpleQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const </td></tr>
+<tr class="memdesc:a1524d74e397863cb9324838862f70d7b inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the node's qualifier having specified name space and name as simple node. <a href="#a1524d74e397863cb9324838862f70d7b">More...</a><br /></td></tr>
+<tr class="separator:a1524d74e397863cb9324838862f70d7b inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2831fe03981afd9af12e775bda89361e inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2831fe03981afd9af12e775bda89361e">GetSimpleQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)</td></tr>
+<tr class="separator:a2831fe03981afd9af12e775bda89361e inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a844a40cd69e0d87226ce1146d733edd6 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a844a40cd69e0d87226ce1146d733edd6">GetStructureQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const </td></tr>
+<tr class="memdesc:a844a40cd69e0d87226ce1146d733edd6 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the node's qualifier having specified name space and name as structure node. <a href="#a844a40cd69e0d87226ce1146d733edd6">More...</a><br /></td></tr>
+<tr class="separator:a844a40cd69e0d87226ce1146d733edd6 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4fb3c837b8c28501b2e7a3376a2cf382 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4fb3c837b8c28501b2e7a3376a2cf382">GetStructureQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)</td></tr>
+<tr class="separator:a4fb3c837b8c28501b2e7a3376a2cf382 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab55c9dad49840d58a1c2c16b9f1962ad inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ab55c9dad49840d58a1c2c16b9f1962ad">GetArrayQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const </td></tr>
+<tr class="memdesc:ab55c9dad49840d58a1c2c16b9f1962ad inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the node's qualifier having specified name space and name as an array node. <a href="#ab55c9dad49840d58a1c2c16b9f1962ad">More...</a><br /></td></tr>
+<tr class="separator:ab55c9dad49840d58a1c2c16b9f1962ad inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a2e68d1345ed6ca2e5d1bfada42b13f inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a2e68d1345ed6ca2e5d1bfada42b13f">GetArrayQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)</td></tr>
+<tr class="separator:a5a2e68d1345ed6ca2e5d1bfada42b13f inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeb9797165d96d06998de79dd19a9f846 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aeb9797165d96d06998de79dd19a9f846">ConvertToSimpleNode</a> () const </td></tr>
+<tr class="memdesc:aeb9797165d96d06998de79dd19a9f846 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts Node to a simple node, if possible. <a href="#aeb9797165d96d06998de79dd19a9f846">More...</a><br /></td></tr>
+<tr class="separator:aeb9797165d96d06998de79dd19a9f846 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad8e7ef140cb5ff094789abfcc879c94b inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ad8e7ef140cb5ff094789abfcc879c94b">ConvertToSimpleNode</a> ()=0</td></tr>
+<tr class="separator:ad8e7ef140cb5ff094789abfcc879c94b inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5ea317fcd59694184089a9774c866b22 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5ea317fcd59694184089a9774c866b22">ConvertToStructureNode</a> () const </td></tr>
+<tr class="memdesc:a5ea317fcd59694184089a9774c866b22 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts Node to a structure node type, if possible. <a href="#a5ea317fcd59694184089a9774c866b22">More...</a><br /></td></tr>
+<tr class="separator:a5ea317fcd59694184089a9774c866b22 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad5f62a4ae9a9630c8106a04bd0c2a0a3 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ad5f62a4ae9a9630c8106a04bd0c2a0a3">ConvertToStructureNode</a> ()=0</td></tr>
+<tr class="separator:ad5f62a4ae9a9630c8106a04bd0c2a0a3 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af180be62ecd26edf90df0fe3ea75941e inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#af180be62ecd26edf90df0fe3ea75941e">ConvertToArrayNode</a> () const </td></tr>
+<tr class="memdesc:af180be62ecd26edf90df0fe3ea75941e inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts Node to an array node type, if possible. <a href="#af180be62ecd26edf90df0fe3ea75941e">More...</a><br /></td></tr>
+<tr class="separator:af180be62ecd26edf90df0fe3ea75941e inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0d67ad7708fb6f007ea1152b79e65f49 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a0d67ad7708fb6f007ea1152b79e65f49">ConvertToArrayNode</a> ()=0</td></tr>
+<tr class="separator:a0d67ad7708fb6f007ea1152b79e65f49 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a08f9ed4dee6c899f65eb51e3d7f9858d inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a1e81ce748e90e850d0a48b0b5943fce2">spcIMetadata</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a08f9ed4dee6c899f65eb51e3d7f9858d">ConvertToMetadata</a> () const </td></tr>
+<tr class="memdesc:a08f9ed4dee6c899f65eb51e3d7f9858d inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts Node to a metadata node type, if possible. <a href="#a08f9ed4dee6c899f65eb51e3d7f9858d">More...</a><br /></td></tr>
+<tr class="separator:a08f9ed4dee6c899f65eb51e3d7f9858d inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a72dc534e1af718599ac185563a02612a inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a7f1de39fd79aeac4402eba73cb1ffe82">spIMetadata</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a72dc534e1af718599ac185563a02612a">ConvertToMetadata</a> ()=0</td></tr>
+<tr class="separator:a72dc534e1af718599ac185563a02612a inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1ISharedObject')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td></tr>
+<tr class="memitem:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc">Acquire</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the clients of the object to indicate that he has acquired the shared ownership of the object. <a href="#ab90d4ec1fcd975a7ac62dcb866335cdc">More...</a><br /></td></tr>
+<tr class="separator:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3">Release</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the clients of the object to indicate he has released his shared ownership of the object. If this being the last client than this function should call Destroy to delete and release the memory. <a href="#abf5a54e09f87366170ea19c618f68bc3">More...</a><br /></td></tr>
+<tr class="separator:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
+<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
+<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a> ()</td></tr>
+<tr class="memdesc:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to an interface object implementing the requested version. <a href="#ad6539461695decfaea8a44798db51e54">More...</a><br /></td></tr>
+<tr class="separator:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
+<tr class="memitem:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> const requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070">GetInterfacePointer</a> () const </td></tr>
+<tr class="memdesc:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to a const interface object implementing the requested version. <a href="#ab93a940e2946c14a76ebbd9552cab070">More...</a><br /></td></tr>
+<tr class="separator:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1IThreadSafe')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td></tr>
+<tr class="memitem:afe35614cb88e2bdb32996cf4ac15b211 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#afe35614cb88e2bdb32996cf4ac15b211">EnableThreadSafety</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:afe35614cb88e2bdb32996cf4ac15b211 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables the thread safety on an object. <a href="#afe35614cb88e2bdb32996cf4ac15b211">More...</a><br /></td></tr>
+<tr class="separator:afe35614cb88e2bdb32996cf4ac15b211 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a214bb1b5840dbd5576e764dd2220b261 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a214bb1b5840dbd5576e764dd2220b261">DisableThreadSafety</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a214bb1b5840dbd5576e764dd2220b261 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disables the thread safety on an object. <a href="#a214bb1b5840dbd5576e764dd2220b261">More...</a><br /></td></tr>
+<tr class="separator:a214bb1b5840dbd5576e764dd2220b261 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a261e2f6af96b75015e5f8318f32be7f9 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a261e2f6af96b75015e5f8318f32be7f9">IsThreadSafe</a> () const =0</td></tr>
+<tr class="memdesc:a261e2f6af96b75015e5f8318f32be7f9 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Informs whether object can be used across multiple threads or not. <a href="#a261e2f6af96b75015e5f8318f32be7f9">More...</a><br /></td></tr>
+<tr class="separator:a261e2f6af96b75015e5f8318f32be7f9 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr class="memitem:a114ea75cdd7e1101455af000e01ab17d"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a7f1de39fd79aeac4402eba73cb1ffe82">spIMetadata</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html#a114ea75cdd7e1101455af000e01ab17d">CreateMetadata</a> ()</td></tr>
+<tr class="memdesc:a114ea75cdd7e1101455af000e01ab17d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an empty IMetadata object. <a href="#a114ea75cdd7e1101455af000e01ab17d">More...</a><br /></td></tr>
+<tr class="separator:a114ea75cdd7e1101455af000e01ab17d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_static_methods_classAdobeXMPCore_1_1IStructureNode__v1"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classAdobeXMPCore_1_1IStructureNode__v1')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html">AdobeXMPCore::IStructureNode_v1</a></td></tr>
+<tr class="memitem:ab39f8d743ba67fc4e6a21b08b03fdde2 inherit pub_static_methods_classAdobeXMPCore_1_1IStructureNode__v1"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#ab39f8d743ba67fc4e6a21b08b03fdde2">CreateStructureNode</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)</td></tr>
+<tr class="memdesc:ab39f8d743ba67fc4e6a21b08b03fdde2 inherit pub_static_methods_classAdobeXMPCore_1_1IStructureNode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a structure node which is not part of any metadata document. <a href="#ab39f8d743ba67fc4e6a21b08b03fdde2">More...</a><br /></td></tr>
+<tr class="separator:ab39f8d743ba67fc4e6a21b08b03fdde2 inherit pub_static_methods_classAdobeXMPCore_1_1IStructureNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:ada50f9f0415ce96ac1df948f510a3f75"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html#ada50f9f0415ce96ac1df948f510a3f75">~IMetadata_v1</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:ada50f9f0415ce96ac1df948f510a3f75"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCore_1_1IStructureNode__v1"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCore_1_1IStructureNode__v1')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html">AdobeXMPCore::IStructureNode_v1</a></td></tr>
+<tr class="memitem:a0cdcce18c6ebbb1764286e3e2456c694 inherit pro_methods_classAdobeXMPCore_1_1IStructureNode__v1"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a0cdcce18c6ebbb1764286e3e2456c694">~IStructureNode_v1</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:a0cdcce18c6ebbb1764286e3e2456c694 inherit pro_methods_classAdobeXMPCore_1_1IStructureNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCore_1_1ICompositeNode__v1')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td></tr>
+<tr class="memitem:a51af220e29b40e8520ae5765f28515bf inherit pro_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a51af220e29b40e8520ae5765f28515bf">~ICompositeNode_v1</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:a51af220e29b40e8520ae5765f28515bf inherit pro_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCore_1_1INode__v1"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCore_1_1INode__v1')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td></tr>
+<tr class="memitem:affdbed044179bbde65ffc28b20e28ecb inherit pro_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#affdbed044179bbde65ffc28b20e28ecb">~INode_v1</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:affdbed044179bbde65ffc28b20e28ecb inherit pro_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1ISharedObject')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td></tr>
+<tr class="memitem:a5869ff89d0b7dd0a7b525401a1d57b31 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31">~ISharedObject</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="separator:a5869ff89d0b7dd0a7b525401a1d57b31 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afcb42109aed83c3b0c133bc413388037 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#afcb42109aed83c3b0c133bc413388037">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:afcb42109aed83c3b0c133bc413388037 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
+<tr class="memitem:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a> ()</td></tr>
+<tr class="separator:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1IThreadSafe"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1IThreadSafe')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td></tr>
+<tr class="memitem:a0f31eb9677c4af06288319e363c21ebc inherit pro_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a0f31eb9677c4af06288319e363c21ebc">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:a0f31eb9677c4af06288319e363c21ebc inherit pro_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pub_types_classAdobeXMPCore_1_1INode__v1"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classAdobeXMPCore_1_1INode__v1')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td></tr>
+<tr class="memitem:a46b01045c1addbc8f444bd21384b7913 inherit pub_types_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> { <br />
+&#160;&#160;<a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913aae32cc414cc7adaf3b2a1c375f2cb3bb">kNTNone</a> = 0,
+<a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a97e0c4fb69029d0d152c068c10736234">kNTSimple</a> = 1,
+<a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a60c6b4c3dfc99d8584866f5f18ff2610">kNTArray</a> = 1 &lt;&lt; 1,
+<a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a7542b80b3b688cd3d210d62d12dbe471">kNTStructure</a> = 1 &lt;&lt; 2,
+<br />
+&#160;&#160;<a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a68bac77fd8140a60490eb78f0b533e21">kNTAll</a> = kAllBits
+<br />
+ }<tr class="memdesc:a46b01045c1addbc8f444bd21384b7913"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates various types of node available in XMP Data Model like simple, array and structure. <a href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:a46b01045c1addbc8f444bd21384b7913 inherit pub_types_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Version1 of the interface that represents the whole xmp metadata for an asset. </p>
+<p>Provides all the functions to add or remove nodes to and from metadata. </p><dl class="section attention"><dt>Attention</dt><dd>Support multi threading through locks but can be enabled/disabled by the client. By default every object created does not support multi-threading. </dd></dl>
+
+<p>Definition at line <a class="el" href="IMetadata_8h_source.html#l00024">24</a> of file <a class="el" href="IMetadata_8h_source.html">IMetadata.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="ada50f9f0415ce96ac1df948f510a3f75"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual AdobeXMPCore::IMetadata_v1::~IMetadata_v1 </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Destructor </p>
+
+<p>Definition at line <a class="el" href="IMetadata_8h_source.html#l00124">124</a> of file <a class="el" href="IMetadata_8h_source.html">IMetadata.h</a>.</p>
+
+<p>References <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a68350da5edc0668811b9bb890d5777b9">AdobeXMPCore::INode_v1::GetName()</a>, <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2e8319347c3b01638027b4abbe72fda6">AdobeXMPCore::INode_v1::GetNameSpace()</a>, <a class="el" href="INode_8h_source.html#l00073">AdobeXMPCore::INode_v1::GetParent()</a>, <a class="el" href="XMPCommonDefines_8h_source.html#l00107">REQ_FRIEND_CLASS_DECLARATION</a>, <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa087d2f94e42fdd5ece1bd22dfea66d5">AdobeXMPCore::INode_v1::SetName()</a>, and <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a55c6097b36412f9facc8a4cf7e898186">AdobeXMPCore::INode_v1::SetNameSpace()</a>.</p>
+<div class="fragment"><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;{}</div></div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a114ea75cdd7e1101455af000e01ab17d"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a7f1de39fd79aeac4402eba73cb1ffe82">spIMetadata</a> AdobeXMPCore::IMetadata_v1::CreateMetadata </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Creates an empty IMetadata object. </p>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to an empty #IMetadata object. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a451bb5293ea38730bee99853b1d3237b"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCore::IMetadata_v1::DisableFeature </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>key</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>keyLength</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Disables support for a particular feature. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>A const char buffer containing key for the feature. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">keyLength</td><td>Number of characters in key. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a179a82bd3f38996331e9ee0bdee997b9"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCore::IMetadata_v1::EnableFeature </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>key</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>keyLength</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Enables support for a particular feature. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>A const char buffer containing key for the feature. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">keyLength</td><td>Number of characters in key. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section note"><dt>Note</dt><dd>Following keys are supported:<ul>
+<li>alias Enable support for aliases on the metadata object. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a707b78542a91b833a6cf45be3516813c"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL AdobeXMPCore::IMetadata_v1::GetAboutURI </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Gets the about URI string for the XMP metadata. </p>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to const #AdobeXMPCommon::IUTF8String object containing URI string. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>By default this is an empty string. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a275726ca1831735fff14119b224f1028"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCore::IMetadata_v1::SetAboutURI </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>uri</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>uriLength</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Sets the about URI string for the XMP metadata. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">uri</td><td>Pointer to a constant char buffer containing uri string. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">uriLength</td><td>Number of characters in uri. In case name is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/<a class="el" href="IMetadata_8h_source.html">IMetadata.h</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCore_1_1IMetadata__v1.js b/docs/API/classAdobeXMPCore_1_1IMetadata__v1.js
new file mode 100755
index 0000000..c8e32eb
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1IMetadata__v1.js
@@ -0,0 +1,9 @@
+var classAdobeXMPCore_1_1IMetadata__v1 =
+[
+ [ "~IMetadata_v1", "classAdobeXMPCore_1_1IMetadata__v1.html#ada50f9f0415ce96ac1df948f510a3f75", null ],
+ [ "CreateMetadata", "classAdobeXMPCore_1_1IMetadata__v1.html#a114ea75cdd7e1101455af000e01ab17d", null ],
+ [ "DisableFeature", "classAdobeXMPCore_1_1IMetadata__v1.html#a451bb5293ea38730bee99853b1d3237b", null ],
+ [ "EnableFeature", "classAdobeXMPCore_1_1IMetadata__v1.html#a179a82bd3f38996331e9ee0bdee997b9", null ],
+ [ "GetAboutURI", "classAdobeXMPCore_1_1IMetadata__v1.html#a707b78542a91b833a6cf45be3516813c", null ],
+ [ "SetAboutURI", "classAdobeXMPCore_1_1IMetadata__v1.html#a275726ca1831735fff14119b224f1028", null ]
+]; \ No newline at end of file
diff --git a/docs/API/classAdobeXMPCore_1_1IMetadata__v1.png b/docs/API/classAdobeXMPCore_1_1IMetadata__v1.png
new file mode 100755
index 0000000..ac8e69c
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1IMetadata__v1.png
Binary files differ
diff --git a/docs/API/classAdobeXMPCore_1_1INameSpacePrefixMap__v1-members.html b/docs/API/classAdobeXMPCore_1_1INameSpacePrefixMap__v1-members.html
new file mode 100755
index 0000000..84873cd
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1INameSpacePrefixMap__v1-members.html
@@ -0,0 +1,79 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">AdobeXMPCore::INameSpacePrefixMap_v1 Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">AdobeXMPCore::INameSpacePrefixMap_v1</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc">Acquire</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a6ed5fd946dfad6406539562178b3caeb">Clear</a>() __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">AdobeXMPCore::INameSpacePrefixMap_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#ae30d56519a24afe9c22ae353fedbd8f7">Clone</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">AdobeXMPCore::INameSpacePrefixMap_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a722b12c77879087c26990650d99d3339">CreateNameSpacePrefixMap</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">AdobeXMPCore::INameSpacePrefixMap_v1</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a214bb1b5840dbd5576e764dd2220b261">DisableThreadSafety</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#afe35614cb88e2bdb32996cf4ac15b211">EnableThreadSafety</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a16669cda8f88d9af18a248919103df22">GetDefaultNameSpacePrefixMap</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">AdobeXMPCore::INameSpacePrefixMap_v1</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070">GetInterfacePointer</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a57a2ef1d7b5f9fb2429220becad03413">GetNameSpace</a>(const char *prefix, sizet prefixLength) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">AdobeXMPCore::INameSpacePrefixMap_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a5a6915e1bdfa1059f4ad690bcf14a342">GetPrefix</a>(const char *nameSpace, sizet nameSpaceLength) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">AdobeXMPCore::INameSpacePrefixMap_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a1cff14bbc35fabd9fff60706ebfe23e8">Insert</a>(const char *prefix, sizet prefixLength, const char *nameSpace, sizet nameSpaceLength)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">AdobeXMPCore::INameSpacePrefixMap_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a4ba4127d58b778c0148f853d7a60b8fe">IsEmpty</a>() const __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">AdobeXMPCore::INameSpacePrefixMap_v1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#ab6fe5421aa97518a85e87bba9f4bc3a6">IsNameSpacePresent</a>(const char *nameSpace, sizet nameSpaceLength) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">AdobeXMPCore::INameSpacePrefixMap_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a10caae18d32483ff4a5737c448f4f7c3">IsPrefixPresent</a>(const char *prefix, sizet prefixLength) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">AdobeXMPCore::INameSpacePrefixMap_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a261e2f6af96b75015e5f8318f32be7f9">IsThreadSafe</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3">Release</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#ab030c648e112799541eb3433967207c7">RemoveNameSpace</a>(const char *nameSpace, sizet nameSpaceLength)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">AdobeXMPCore::INameSpacePrefixMap_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#aa4575950788bfa70dee5fad2d851230e">RemovePrefix</a>(const char *prefix, sizet prefixLength)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">AdobeXMPCore::INameSpacePrefixMap_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#afcb42109aed83c3b0c133bc413388037">AdobeXMPCommon::REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f">AdobeXMPCommon::IVersionable::REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a0f31eb9677c4af06288319e363c21ebc">AdobeXMPCommon::IThreadSafe::REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a3dfd0d265952656c9b6641d8ce523e40">Size</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">AdobeXMPCore::INameSpacePrefixMap_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#aabfdffd2a782e83a627bbe1c687a922b">~INameSpacePrefixMap_v1</a>() __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">AdobeXMPCore::INameSpacePrefixMap_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31">~ISharedObject</a>() __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html b/docs/API/classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html
new file mode 100755
index 0000000..cfcf8b2
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html
@@ -0,0 +1,705 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>AdobeXMPCore::INameSpacePrefixMap_v1 Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">AdobeXMPCore::INameSpacePrefixMap_v1 Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Version1 of the interface that represents map where each entry consists of prefix string as the key and corresponding nameSpace string as its value.
+ <a href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="INameSpacePrefixMap_8h_source.html">INameSpacePrefixMap.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for AdobeXMPCore::INameSpacePrefixMap_v1:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.png" usemap="#AdobeXMPCore::INameSpacePrefixMap_5Fv1_map" alt=""/>
+ <map id="AdobeXMPCore::INameSpacePrefixMap_5Fv1_map" name="AdobeXMPCore::INameSpacePrefixMap_v1_map">
+<area href="classAdobeXMPCommon_1_1ISharedObject.html" title="Interface that serves as the base interface of all the externally exposed interfaces. " alt="AdobeXMPCommon::ISharedObject" shape="rect" coords="0,0,261,24"/>
+<area href="classAdobeXMPCommon_1_1IVersionable.html" title="Interface that serves as the base interface for all the externally exposed interfaces which needs to ..." alt="AdobeXMPCommon::IVersionable" shape="rect" coords="271,0,532,24"/>
+<area href="classAdobeXMPCommon_1_1IThreadSafe.html" title="Interface that serves as the base interface for all the externally exposed interfaces which needs to ..." alt="AdobeXMPCommon::IThreadSafe" shape="rect" coords="542,0,803,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a1cff14bbc35fabd9fff60706ebfe23e8"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a1cff14bbc35fabd9fff60706ebfe23e8">Insert</a> (const char *prefix, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> prefixLength, const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength)=0</td></tr>
+<tr class="memdesc:a1cff14bbc35fabd9fff60706ebfe23e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a new pair of prefix string and its corresponding nameSpace string or replace an existing entry. <a href="#a1cff14bbc35fabd9fff60706ebfe23e8">More...</a><br /></td></tr>
+<tr class="separator:a1cff14bbc35fabd9fff60706ebfe23e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa4575950788bfa70dee5fad2d851230e"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#aa4575950788bfa70dee5fad2d851230e">RemovePrefix</a> (const char *prefix, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> prefixLength)=0</td></tr>
+<tr class="memdesc:aa4575950788bfa70dee5fad2d851230e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Finds the prefix string in the map and removes an entry corresponding to it in the map. <a href="#aa4575950788bfa70dee5fad2d851230e">More...</a><br /></td></tr>
+<tr class="separator:aa4575950788bfa70dee5fad2d851230e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab030c648e112799541eb3433967207c7"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#ab030c648e112799541eb3433967207c7">RemoveNameSpace</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength)=0</td></tr>
+<tr class="memdesc:ab030c648e112799541eb3433967207c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Finds the nameSpace string in the map and removes an entry corresponding to it in the map. <a href="#ab030c648e112799541eb3433967207c7">More...</a><br /></td></tr>
+<tr class="separator:ab030c648e112799541eb3433967207c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a10caae18d32483ff4a5737c448f4f7c3"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a10caae18d32483ff4a5737c448f4f7c3">IsPrefixPresent</a> (const char *prefix, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> prefixLength) const =0</td></tr>
+<tr class="memdesc:a10caae18d32483ff4a5737c448f4f7c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks for the existence of a particular prefix in the map. <a href="#a10caae18d32483ff4a5737c448f4f7c3">More...</a><br /></td></tr>
+<tr class="separator:a10caae18d32483ff4a5737c448f4f7c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab6fe5421aa97518a85e87bba9f4bc3a6"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#ab6fe5421aa97518a85e87bba9f4bc3a6">IsNameSpacePresent</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength) const =0</td></tr>
+<tr class="memdesc:ab6fe5421aa97518a85e87bba9f4bc3a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks for the existence of a particular nameSpace in the map. <a href="#ab6fe5421aa97518a85e87bba9f4bc3a6">More...</a><br /></td></tr>
+<tr class="separator:ab6fe5421aa97518a85e87bba9f4bc3a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a57a2ef1d7b5f9fb2429220becad03413"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a57a2ef1d7b5f9fb2429220becad03413">GetNameSpace</a> (const char *prefix, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> prefixLength) const =0</td></tr>
+<tr class="memdesc:a57a2ef1d7b5f9fb2429220becad03413"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the nameSpace string corresponding to the prefix string. <a href="#a57a2ef1d7b5f9fb2429220becad03413">More...</a><br /></td></tr>
+<tr class="separator:a57a2ef1d7b5f9fb2429220becad03413"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a6915e1bdfa1059f4ad690bcf14a342"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a5a6915e1bdfa1059f4ad690bcf14a342">GetPrefix</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength) const =0</td></tr>
+<tr class="memdesc:a5a6915e1bdfa1059f4ad690bcf14a342"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the prefix string corresponding to the nameSpace string. <a href="#a5a6915e1bdfa1059f4ad690bcf14a342">More...</a><br /></td></tr>
+<tr class="separator:a5a6915e1bdfa1059f4ad690bcf14a342"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3dfd0d265952656c9b6641d8ce523e40"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a3dfd0d265952656c9b6641d8ce523e40">Size</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a3dfd0d265952656c9b6641d8ce523e40"><td class="mdescLeft">&#160;</td><td class="mdescRight">To get the total number of entries in the map. <a href="#a3dfd0d265952656c9b6641d8ce523e40">More...</a><br /></td></tr>
+<tr class="separator:a3dfd0d265952656c9b6641d8ce523e40"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4ba4127d58b778c0148f853d7a60b8fe"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a4ba4127d58b778c0148f853d7a60b8fe">IsEmpty</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="memdesc:a4ba4127d58b778c0148f853d7a60b8fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">To check whether the map is empty or not. <a href="#a4ba4127d58b778c0148f853d7a60b8fe">More...</a><br /></td></tr>
+<tr class="separator:a4ba4127d58b778c0148f853d7a60b8fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6ed5fd946dfad6406539562178b3caeb"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a6ed5fd946dfad6406539562178b3caeb">Clear</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a6ed5fd946dfad6406539562178b3caeb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear all the entries in the map. <a href="#a6ed5fd946dfad6406539562178b3caeb">More...</a><br /></td></tr>
+<tr class="separator:a6ed5fd946dfad6406539562178b3caeb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae30d56519a24afe9c22ae353fedbd8f7"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#ab17b1221c559007c5fbc73cf2c555c6c">spINameSpacePrefixMap</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#ae30d56519a24afe9c22ae353fedbd8f7">Clone</a> () const =0</td></tr>
+<tr class="memdesc:ae30d56519a24afe9c22ae353fedbd8f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual Copy Constructor. <a href="#ae30d56519a24afe9c22ae353fedbd8f7">More...</a><br /></td></tr>
+<tr class="separator:ae30d56519a24afe9c22ae353fedbd8f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1ISharedObject')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td></tr>
+<tr class="memitem:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc">Acquire</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the clients of the object to indicate that he has acquired the shared ownership of the object. <a href="#ab90d4ec1fcd975a7ac62dcb866335cdc">More...</a><br /></td></tr>
+<tr class="separator:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3">Release</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the clients of the object to indicate he has released his shared ownership of the object. If this being the last client than this function should call Destroy to delete and release the memory. <a href="#abf5a54e09f87366170ea19c618f68bc3">More...</a><br /></td></tr>
+<tr class="separator:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
+<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
+<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a> ()</td></tr>
+<tr class="memdesc:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to an interface object implementing the requested version. <a href="#ad6539461695decfaea8a44798db51e54">More...</a><br /></td></tr>
+<tr class="separator:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
+<tr class="memitem:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> const requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070">GetInterfacePointer</a> () const </td></tr>
+<tr class="memdesc:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to a const interface object implementing the requested version. <a href="#ab93a940e2946c14a76ebbd9552cab070">More...</a><br /></td></tr>
+<tr class="separator:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1IThreadSafe')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td></tr>
+<tr class="memitem:afe35614cb88e2bdb32996cf4ac15b211 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#afe35614cb88e2bdb32996cf4ac15b211">EnableThreadSafety</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:afe35614cb88e2bdb32996cf4ac15b211 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables the thread safety on an object. <a href="#afe35614cb88e2bdb32996cf4ac15b211">More...</a><br /></td></tr>
+<tr class="separator:afe35614cb88e2bdb32996cf4ac15b211 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a214bb1b5840dbd5576e764dd2220b261 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a214bb1b5840dbd5576e764dd2220b261">DisableThreadSafety</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a214bb1b5840dbd5576e764dd2220b261 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disables the thread safety on an object. <a href="#a214bb1b5840dbd5576e764dd2220b261">More...</a><br /></td></tr>
+<tr class="separator:a214bb1b5840dbd5576e764dd2220b261 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a261e2f6af96b75015e5f8318f32be7f9 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a261e2f6af96b75015e5f8318f32be7f9">IsThreadSafe</a> () const =0</td></tr>
+<tr class="memdesc:a261e2f6af96b75015e5f8318f32be7f9 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Informs whether object can be used across multiple threads or not. <a href="#a261e2f6af96b75015e5f8318f32be7f9">More...</a><br /></td></tr>
+<tr class="separator:a261e2f6af96b75015e5f8318f32be7f9 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr class="memitem:a16669cda8f88d9af18a248919103df22"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a22f9e572045a61aa3cfc629a0d877d72">spcINameSpacePrefixMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a16669cda8f88d9af18a248919103df22">GetDefaultNameSpacePrefixMap</a> ()</td></tr>
+<tr class="memdesc:a16669cda8f88d9af18a248919103df22"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides the default mapping of prefix string and nameSpace strings used by XMPCore. <a href="#a16669cda8f88d9af18a248919103df22">More...</a><br /></td></tr>
+<tr class="separator:a16669cda8f88d9af18a248919103df22"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a722b12c77879087c26990650d99d3339"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab17b1221c559007c5fbc73cf2c555c6c">spINameSpacePrefixMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a722b12c77879087c26990650d99d3339">CreateNameSpacePrefixMap</a> ()</td></tr>
+<tr class="memdesc:a722b12c77879087c26990650d99d3339"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an empty namespace - prefix map and returns it to the client as a shared pointer. <a href="#a722b12c77879087c26990650d99d3339">More...</a><br /></td></tr>
+<tr class="separator:a722b12c77879087c26990650d99d3339"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:aabfdffd2a782e83a627bbe1c687a922b"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#aabfdffd2a782e83a627bbe1c687a922b">~INameSpacePrefixMap_v1</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:aabfdffd2a782e83a627bbe1c687a922b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1ISharedObject')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td></tr>
+<tr class="memitem:a5869ff89d0b7dd0a7b525401a1d57b31 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31">~ISharedObject</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="separator:a5869ff89d0b7dd0a7b525401a1d57b31 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afcb42109aed83c3b0c133bc413388037 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#afcb42109aed83c3b0c133bc413388037">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:afcb42109aed83c3b0c133bc413388037 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
+<tr class="memitem:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a> ()</td></tr>
+<tr class="separator:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1IThreadSafe"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1IThreadSafe')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td></tr>
+<tr class="memitem:a0f31eb9677c4af06288319e363c21ebc inherit pro_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a0f31eb9677c4af06288319e363c21ebc">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:a0f31eb9677c4af06288319e363c21ebc inherit pro_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Version1 of the interface that represents map where each entry consists of prefix string as the key and corresponding nameSpace string as its value. </p>
+<p>Provides all the functions to get/set the entries inside the map. </p><dl class="section attention"><dt>Attention</dt><dd>Supports Multi-threading at object level through locks. </dd></dl>
+
+<p>Definition at line <a class="el" href="INameSpacePrefixMap_8h_source.html#l00026">26</a> of file <a class="el" href="INameSpacePrefixMap_8h_source.html">INameSpacePrefixMap.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="aabfdffd2a782e83a627bbe1c687a922b"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual AdobeXMPCore::INameSpacePrefixMap_v1::~INameSpacePrefixMap_v1 </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Destructor </p>
+
+<p>Definition at line <a class="el" href="INameSpacePrefixMap_8h_source.html#l00215">215</a> of file <a class="el" href="INameSpacePrefixMap_8h_source.html">INameSpacePrefixMap.h</a>.</p>
+
+<p>References <a class="el" href="XMPCommonDefines_8h_source.html#l00107">REQ_FRIEND_CLASS_DECLARATION</a>.</p>
+<div class="fragment"><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;{}</div></div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a6ed5fd946dfad6406539562178b3caeb"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCore::INameSpacePrefixMap_v1::Clear </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Clear all the entries in the map. </p>
+
+</div>
+</div>
+<a class="anchor" id="ae30d56519a24afe9c22ae353fedbd8f7"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#ab17b1221c559007c5fbc73cf2c555c6c">spINameSpacePrefixMap</a> APICALL AdobeXMPCore::INameSpacePrefixMap_v1::Clone </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Virtual Copy Constructor. </p>
+<p>Makes an another object which is exact replica of the existing object. </p>
+
+</div>
+</div>
+<a class="anchor" id="a722b12c77879087c26990650d99d3339"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab17b1221c559007c5fbc73cf2c555c6c">spINameSpacePrefixMap</a> AdobeXMPCore::INameSpacePrefixMap_v1::CreateNameSpacePrefixMap </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Creates an empty namespace - prefix map and returns it to the client as a shared pointer. </p>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to an empty INameSpacePrefixMap object. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a16669cda8f88d9af18a248919103df22"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a22f9e572045a61aa3cfc629a0d877d72">spcINameSpacePrefixMap</a> AdobeXMPCore::INameSpacePrefixMap_v1::GetDefaultNameSpacePrefixMap </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Provides the default mapping of prefix string and nameSpace strings used by XMPCore. </p>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to const INameSpacePrefixMap object containing all the mappings used as default by the XMPCore. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a57a2ef1d7b5f9fb2429220becad03413"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL AdobeXMPCore::INameSpacePrefixMap_v1::GetNameSpace </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>prefix</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>prefixLength</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Gets the nameSpace string corresponding to the prefix string. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">prefix</td><td>Pointer to a const char buffer containing prefix string. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">prefixLength</td><td>Number of characters in prefix. In case prefix is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to const #AdobeXMPCommon::IUTF8String object containing nameSpace string corresponding to prefix string if a mapping exists, otherwise invalid shared pointer is returned. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Raises warning in case of<ul>
+<li>prefix is null pointer, or</li>
+<li>prefixLength is 0. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a5a6915e1bdfa1059f4ad690bcf14a342"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL AdobeXMPCore::INameSpacePrefixMap_v1::GetPrefix </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>nameSpace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameSpaceLength</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Get the prefix string corresponding to the nameSpace string. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpace</td><td>Pointer to a constant char buffer containing nameSpace string. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpaceLength</td><td>Number of characters in nameSpace. In case nameSpace is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to const #AdobeXMPCommon::IUTF8String object containing prefix string corresponding to nameSpace string if a mapping exists, otherwise invalid shared pointer is returned. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Raises warning in case of<ul>
+<li>nameSpace is null pointer, or</li>
+<li>nameSpaceLength is 0. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a1cff14bbc35fabd9fff60706ebfe23e8"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual bool APICALL AdobeXMPCore::INameSpacePrefixMap_v1::Insert </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>prefix</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>prefixLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>nameSpace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameSpaceLength</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Adds a new pair of prefix string and its corresponding nameSpace string or replace an existing entry. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">prefix</td><td>Pointer to a constant char buffer containing prefix string. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">prefixLength</td><td>Number of characters in prefix. In case prefix is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpace</td><td>Pointer to a constant char buffer containing nameSpace string. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpaceLength</td><td>Number of characters in nameSpace. In case nameSpace is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A bool type object containing true in case operation was successful, false otherwise. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Raises warning in case of<ul>
+<li>prefix or nameSpace are null pointers</li>
+<li>prefixLength or nameSpaceLength is 0. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a4ba4127d58b778c0148f853d7a60b8fe"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool AdobeXMPCore::INameSpacePrefixMap_v1::IsEmpty </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>To check whether the map is empty or not. </p>
+<dl class="section return"><dt>Returns</dt><dd>True in case map is empty; false otherwise. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ab6fe5421aa97518a85e87bba9f4bc3a6"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual bool APICALL AdobeXMPCore::INameSpacePrefixMap_v1::IsNameSpacePresent </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>nameSpace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameSpaceLength</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Checks for the existence of a particular nameSpace in the map. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpace</td><td>Pointer to a constant char buffer containing nameSpace string. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpaceLength</td><td>Number of characters in nameSpace. In case nameSpace is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A bool type object containing true in case there is an entry present corresponding to the nameSpace string, otherwise false. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Raises warning in case of<ul>
+<li>nameSpace is null pointer, or</li>
+<li>nameSpaceLength is 0. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a10caae18d32483ff4a5737c448f4f7c3"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual bool APICALL AdobeXMPCore::INameSpacePrefixMap_v1::IsPrefixPresent </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>prefix</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>prefixLength</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Checks for the existence of a particular prefix in the map. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">prefix</td><td>Pointer to a const char buffer containing prefix string. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">prefixLength</td><td>Number of characters in prefix. In case prefix is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A bool type object containing true in case there is an entry present corresponding to the prefix string, otherwise false. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Raises warning in case of<ul>
+<li>prefix is null pointer, or</li>
+<li>prefixLength is 0. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ab030c648e112799541eb3433967207c7"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual bool APICALL AdobeXMPCore::INameSpacePrefixMap_v1::RemoveNameSpace </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>nameSpace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameSpaceLength</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Finds the nameSpace string in the map and removes an entry corresponding to it in the map. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpace</td><td>Pointer to a constant char buffer containing nameSpace string. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpaceLength</td><td>Number of characters in nameSpace. In case nameSpace is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A bool type object containing true in case entry was found and then deleted from the map, false otherwise. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Raises warning in case of<ul>
+<li>nameSpace is null pointer, or</li>
+<li>nameSpaceLength is 0. </li>
+</ul>
+</dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Throws <a class="el" href="namespaceAdobeXMPCommon.html#a0e0c89c232b777fb332e0ddc10b65fc2">AdobeXMPCommon::pcIError</a> in case of failure in removing or searching process. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="aa4575950788bfa70dee5fad2d851230e"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual bool APICALL AdobeXMPCore::INameSpacePrefixMap_v1::RemovePrefix </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>prefix</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>prefixLength</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Finds the prefix string in the map and removes an entry corresponding to it in the map. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">prefix</td><td>Pointer to a const char buffer containing prefix string. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">prefixLength</td><td>Number of characters in prefix. In case prefix is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A bool type object containing true in case entry was found and then deleted from the map, false otherwise. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Raises warning in case of<ul>
+<li>prefix is null pointer, or</li>
+<li>prefixLength is 0. </li>
+</ul>
+</dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Throws <a class="el" href="namespaceAdobeXMPCommon.html#a0e0c89c232b777fb332e0ddc10b65fc2">AdobeXMPCommon::pcIError</a> in case of failure in removing or searching process. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a3dfd0d265952656c9b6641d8ce523e40"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL AdobeXMPCore::INameSpacePrefixMap_v1::Size </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>To get the total number of entries in the map. </p>
+<dl class="section return"><dt>Returns</dt><dd>An object of type #<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a> containing the count of entries in the map. </dd></dl>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/<a class="el" href="INameSpacePrefixMap_8h_source.html">INameSpacePrefixMap.h</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCore_1_1INameSpacePrefixMap__v1.js b/docs/API/classAdobeXMPCore_1_1INameSpacePrefixMap__v1.js
new file mode 100755
index 0000000..6716ed0
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1INameSpacePrefixMap__v1.js
@@ -0,0 +1,17 @@
+var classAdobeXMPCore_1_1INameSpacePrefixMap__v1 =
+[
+ [ "~INameSpacePrefixMap_v1", "classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#aabfdffd2a782e83a627bbe1c687a922b", null ],
+ [ "Clear", "classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a6ed5fd946dfad6406539562178b3caeb", null ],
+ [ "Clone", "classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#ae30d56519a24afe9c22ae353fedbd8f7", null ],
+ [ "CreateNameSpacePrefixMap", "classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a722b12c77879087c26990650d99d3339", null ],
+ [ "GetDefaultNameSpacePrefixMap", "classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a16669cda8f88d9af18a248919103df22", null ],
+ [ "GetNameSpace", "classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a57a2ef1d7b5f9fb2429220becad03413", null ],
+ [ "GetPrefix", "classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a5a6915e1bdfa1059f4ad690bcf14a342", null ],
+ [ "Insert", "classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a1cff14bbc35fabd9fff60706ebfe23e8", null ],
+ [ "IsEmpty", "classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a4ba4127d58b778c0148f853d7a60b8fe", null ],
+ [ "IsNameSpacePresent", "classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#ab6fe5421aa97518a85e87bba9f4bc3a6", null ],
+ [ "IsPrefixPresent", "classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a10caae18d32483ff4a5737c448f4f7c3", null ],
+ [ "RemoveNameSpace", "classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#ab030c648e112799541eb3433967207c7", null ],
+ [ "RemovePrefix", "classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#aa4575950788bfa70dee5fad2d851230e", null ],
+ [ "Size", "classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a3dfd0d265952656c9b6641d8ce523e40", null ]
+]; \ No newline at end of file
diff --git a/docs/API/classAdobeXMPCore_1_1INameSpacePrefixMap__v1.png b/docs/API/classAdobeXMPCore_1_1INameSpacePrefixMap__v1.png
new file mode 100755
index 0000000..de7b937
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1INameSpacePrefixMap__v1.png
Binary files differ
diff --git a/docs/API/classAdobeXMPCore_1_1INodeIterator__v1-members.html b/docs/API/classAdobeXMPCore_1_1INodeIterator__v1-members.html
new file mode 100755
index 0000000..77d5808
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1INodeIterator__v1-members.html
@@ -0,0 +1,73 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCore_1_1INodeIterator__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">AdobeXMPCore::INodeIterator_v1 Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html">AdobeXMPCore::INodeIterator_v1</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc">Acquire</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html#ad9a22d79ead6cc79fb5bd4da858e99ce">GetArrayNode</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html">AdobeXMPCore::INodeIterator_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html#a0b15b5a46f9bbd0a522c95a0fe5a8210">GetArrayNode</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html">AdobeXMPCore::INodeIterator_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070">GetInterfacePointer</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html#a14aecd54a26e8a4a87f8ec0a347f1757">GetNode</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html">AdobeXMPCore::INodeIterator_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html#a9ddc75f7ef4005df31c505d319b2b534">GetNode</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html">AdobeXMPCore::INodeIterator_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html#a43c25618c112c18848e352e73de1dce9">GetNodeType</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html">AdobeXMPCore::INodeIterator_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html#a7a99393cbe890dd34062e969fe57d704">GetSimpleNode</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html">AdobeXMPCore::INodeIterator_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html#ade5c1340391031ffccef4ba9122845c0">GetSimpleNode</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html">AdobeXMPCore::INodeIterator_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html#aeb5758def29eb45d016205f8c2f3349f">GetStructureNode</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html">AdobeXMPCore::INodeIterator_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html#af2a3dac600bde63b628fc701fbce6db2">GetStructureNode</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html">AdobeXMPCore::INodeIterator_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html#a6aac63804dfbdbd0a85440da48eb8bb3">Next</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html">AdobeXMPCore::INodeIterator_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html#a38521f687591c9b57da1b7426d6e33d8">Next</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html">AdobeXMPCore::INodeIterator_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3">Release</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#afcb42109aed83c3b0c133bc413388037">AdobeXMPCommon::REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f">AdobeXMPCommon::IVersionable::REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html#aebc78681e60a09759ce7ab820716a0a2">~INodeIterator_v1</a>() __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html">AdobeXMPCore::INodeIterator_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31">~ISharedObject</a>() __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCore_1_1INodeIterator__v1.html b/docs/API/classAdobeXMPCore_1_1INodeIterator__v1.html
new file mode 100755
index 0000000..9387734
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1INodeIterator__v1.html
@@ -0,0 +1,490 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>AdobeXMPCore::INodeIterator_v1 Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCore_1_1INodeIterator__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="classAdobeXMPCore_1_1INodeIterator__v1-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">AdobeXMPCore::INodeIterator_v1 Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Interface that represents an iterator over the mutable children of a XMP DOM Node.
+ <a href="classAdobeXMPCore_1_1INodeIterator__v1.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="INodeIterator_8h_source.html">INodeIterator.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for AdobeXMPCore::INodeIterator_v1:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classAdobeXMPCore_1_1INodeIterator__v1.png" usemap="#AdobeXMPCore::INodeIterator_5Fv1_map" alt=""/>
+ <map id="AdobeXMPCore::INodeIterator_5Fv1_map" name="AdobeXMPCore::INodeIterator_v1_map">
+<area href="classAdobeXMPCommon_1_1ISharedObject.html" title="Interface that serves as the base interface of all the externally exposed interfaces. " alt="AdobeXMPCommon::ISharedObject" shape="rect" coords="0,0,212,24"/>
+<area href="classAdobeXMPCommon_1_1IVersionable.html" title="Interface that serves as the base interface for all the externally exposed interfaces which needs to ..." alt="AdobeXMPCommon::IVersionable" shape="rect" coords="222,0,434,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a43c25618c112c18848e352e73de1dce9"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">INode_v1::eNodeType</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html#a43c25618c112c18848e352e73de1dce9">GetNodeType</a> () const =0</td></tr>
+<tr class="memdesc:a43c25618c112c18848e352e73de1dce9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the type of the node currently pointed by the iterator. <a href="#a43c25618c112c18848e352e73de1dce9">More...</a><br /></td></tr>
+<tr class="separator:a43c25618c112c18848e352e73de1dce9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeb5758def29eb45d016205f8c2f3349f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html#aeb5758def29eb45d016205f8c2f3349f">GetStructureNode</a> ()</td></tr>
+<tr class="memdesc:aeb5758def29eb45d016205f8c2f3349f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the iterator's currently pointed node as structure node, if possible. <a href="#aeb5758def29eb45d016205f8c2f3349f">More...</a><br /></td></tr>
+<tr class="separator:aeb5758def29eb45d016205f8c2f3349f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af2a3dac600bde63b628fc701fbce6db2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html#af2a3dac600bde63b628fc701fbce6db2">GetStructureNode</a> () const </td></tr>
+<tr class="separator:af2a3dac600bde63b628fc701fbce6db2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad9a22d79ead6cc79fb5bd4da858e99ce"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html#ad9a22d79ead6cc79fb5bd4da858e99ce">GetArrayNode</a> ()</td></tr>
+<tr class="memdesc:ad9a22d79ead6cc79fb5bd4da858e99ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the iterator's currently pointed node as an array node, if possible. <a href="#ad9a22d79ead6cc79fb5bd4da858e99ce">More...</a><br /></td></tr>
+<tr class="separator:ad9a22d79ead6cc79fb5bd4da858e99ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0b15b5a46f9bbd0a522c95a0fe5a8210"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html#a0b15b5a46f9bbd0a522c95a0fe5a8210">GetArrayNode</a> () const </td></tr>
+<tr class="separator:a0b15b5a46f9bbd0a522c95a0fe5a8210"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
+<tr class="memitem:a14aecd54a26e8a4a87f8ec0a347f1757"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html#a14aecd54a26e8a4a87f8ec0a347f1757">GetNode</a> ()=0</td></tr>
+<tr class="memdesc:a14aecd54a26e8a4a87f8ec0a347f1757"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the node currently pointed by the iterator. <a href="#a14aecd54a26e8a4a87f8ec0a347f1757">More...</a><br /></td></tr>
+<tr class="separator:a14aecd54a26e8a4a87f8ec0a347f1757"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9ddc75f7ef4005df31c505d319b2b534"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">spcINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html#a9ddc75f7ef4005df31c505d319b2b534">GetNode</a> () const </td></tr>
+<tr class="separator:a9ddc75f7ef4005df31c505d319b2b534"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
+<tr class="memitem:a7a99393cbe890dd34062e969fe57d704"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html#a7a99393cbe890dd34062e969fe57d704">GetSimpleNode</a> ()</td></tr>
+<tr class="memdesc:a7a99393cbe890dd34062e969fe57d704"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the iterator's currently pointed node as simple node, if possible. <a href="#a7a99393cbe890dd34062e969fe57d704">More...</a><br /></td></tr>
+<tr class="separator:a7a99393cbe890dd34062e969fe57d704"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ade5c1340391031ffccef4ba9122845c0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html#ade5c1340391031ffccef4ba9122845c0">GetSimpleNode</a> () const </td></tr>
+<tr class="separator:ade5c1340391031ffccef4ba9122845c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
+<tr class="memitem:a6aac63804dfbdbd0a85440da48eb8bb3"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a5386a735d9eb66d5859e4657dfeebb7c">spINodeIterator</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html#a6aac63804dfbdbd0a85440da48eb8bb3">Next</a> ()=0</td></tr>
+<tr class="memdesc:a6aac63804dfbdbd0a85440da48eb8bb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Advances iterator by one position. <a href="#a6aac63804dfbdbd0a85440da48eb8bb3">More...</a><br /></td></tr>
+<tr class="separator:a6aac63804dfbdbd0a85440da48eb8bb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a38521f687591c9b57da1b7426d6e33d8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab423c366f29043e79694f805bceddb56">spcINodeIterator</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html#a38521f687591c9b57da1b7426d6e33d8">Next</a> () const </td></tr>
+<tr class="separator:a38521f687591c9b57da1b7426d6e33d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1ISharedObject')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td></tr>
+<tr class="memitem:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc">Acquire</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the clients of the object to indicate that he has acquired the shared ownership of the object. <a href="#ab90d4ec1fcd975a7ac62dcb866335cdc">More...</a><br /></td></tr>
+<tr class="separator:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3">Release</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the clients of the object to indicate he has released his shared ownership of the object. If this being the last client than this function should call Destroy to delete and release the memory. <a href="#abf5a54e09f87366170ea19c618f68bc3">More...</a><br /></td></tr>
+<tr class="separator:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
+<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
+<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a> ()</td></tr>
+<tr class="memdesc:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to an interface object implementing the requested version. <a href="#ad6539461695decfaea8a44798db51e54">More...</a><br /></td></tr>
+<tr class="separator:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
+<tr class="memitem:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> const requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070">GetInterfacePointer</a> () const </td></tr>
+<tr class="memdesc:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to a const interface object implementing the requested version. <a href="#ab93a940e2946c14a76ebbd9552cab070">More...</a><br /></td></tr>
+<tr class="separator:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:aebc78681e60a09759ce7ab820716a0a2"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html#aebc78681e60a09759ce7ab820716a0a2">~INodeIterator_v1</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:aebc78681e60a09759ce7ab820716a0a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1ISharedObject')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td></tr>
+<tr class="memitem:a5869ff89d0b7dd0a7b525401a1d57b31 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31">~ISharedObject</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="separator:a5869ff89d0b7dd0a7b525401a1d57b31 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afcb42109aed83c3b0c133bc413388037 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#afcb42109aed83c3b0c133bc413388037">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:afcb42109aed83c3b0c133bc413388037 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
+<tr class="memitem:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a> ()</td></tr>
+<tr class="separator:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Interface that represents an iterator over the mutable children of a XMP DOM Node. </p>
+<dl class="section note"><dt>Note</dt><dd>Iterators are valid as long as their are no changes performed on the node. In case there are some changes performed on the node then the behavior is undefined. </dd></dl>
+
+<p>Definition at line <a class="el" href="INodeIterator_8h_source.html#l00026">26</a> of file <a class="el" href="INodeIterator_8h_source.html">INodeIterator.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="aebc78681e60a09759ce7ab820716a0a2"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual AdobeXMPCore::INodeIterator_v1::~INodeIterator_v1 </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Destructor </p>
+
+<p>Definition at line <a class="el" href="INodeIterator_8h_source.html#l00177">177</a> of file <a class="el" href="INodeIterator_8h_source.html">INodeIterator.h</a>.</p>
+
+<p>References <a class="el" href="XMPCommonDefines_8h_source.html#l00107">REQ_FRIEND_CLASS_DECLARATION</a>.</p>
+<div class="fragment"><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;{}</div></div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="ad9a22d79ead6cc79fb5bd4da858e99ce"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a> AdobeXMPCore::INodeIterator_v1::GetArrayNode </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Gets the iterator's currently pointed node as an array node, if possible. </p>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to a const or non const object of type #IArrayNode. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
+<li>iterator's currently pointed node is valid but is not an array node. </li>
+</ul>
+</dd></dl>
+<dl class="section note"><dt>Note</dt><dd>In case iterator has gone beyond its limit, an invalid shared pointer is returned. </dd></dl>
+
+<p>Definition at line <a class="el" href="INodeIterator_8h_source.html#l00094">94</a> of file <a class="el" href="INodeIterator_8h_source.html">INodeIterator.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">auto</span> node = <a class="code" href="classAdobeXMPCore_1_1INodeIterator__v1.html#a14aecd54a26e8a4a87f8ec0a347f1757">GetNode</a>();</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToArrayNode();</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a>();</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div><div class="ttc" id="namespaceAdobeXMPCore_html_a24e8e82d63d879d77408ce5c7e30c609"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">AdobeXMPCore::spIArrayNode</a></div><div class="ttdeci">shared_ptr&lt; IArrayNode &gt; spIArrayNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00113">XMPCoreFwdDeclarations.h:113</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INodeIterator__v1_html_a14aecd54a26e8a4a87f8ec0a347f1757"><div class="ttname"><a href="classAdobeXMPCore_1_1INodeIterator__v1.html#a14aecd54a26e8a4a87f8ec0a347f1757">AdobeXMPCore::INodeIterator_v1::GetNode</a></div><div class="ttdeci">virtual spINode APICALL GetNode()=0</div><div class="ttdoc">Gets the node currently pointed by the iterator. </div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a0b15b5a46f9bbd0a522c95a0fe5a8210"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a> AdobeXMPCore::INodeIterator_v1::GetArrayNode </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="INodeIterator_8h_source.html#l00100">100</a> of file <a class="el" href="INodeIterator_8h_source.html">INodeIterator.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; {</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> INodeIterator * <span class="keyword">&gt;</span>( this )-&gt;<a class="code" href="classAdobeXMPCore_1_1INodeIterator__v1.html#ad9a22d79ead6cc79fb5bd4da858e99ce">GetArrayNode</a>();</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div><div class="ttc" id="classAdobeXMPCore_1_1INodeIterator__v1_html_ad9a22d79ead6cc79fb5bd4da858e99ce"><div class="ttname"><a href="classAdobeXMPCore_1_1INodeIterator__v1.html#ad9a22d79ead6cc79fb5bd4da858e99ce">AdobeXMPCore::INodeIterator_v1::GetArrayNode</a></div><div class="ttdeci">XMP_PRIVATE spIArrayNode GetArrayNode()</div><div class="ttdoc">Gets the iterator&amp;#39;s currently pointed node as an array node, if possible. </div><div class="ttdef"><b>Definition:</b> <a href="INodeIterator_8h_source.html#l00094">INodeIterator.h:94</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a14aecd54a26e8a4a87f8ec0a347f1757"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL AdobeXMPCore::INodeIterator_v1::GetNode </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Gets the node currently pointed by the iterator. </p>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to a const or non const object of type #INode. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>In case iterator has gone beyond its limit, an invalid shared pointer is returned </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a9ddc75f7ef4005df31c505d319b2b534"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">spcINode</a> APICALL AdobeXMPCore::INodeIterator_v1::GetNode </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="INodeIterator_8h_source.html#l00045">45</a> of file <a class="el" href="INodeIterator_8h_source.html">INodeIterator.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; {</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> INodeIterator * <span class="keyword">&gt;</span>( this )-&gt;<a class="code" href="classAdobeXMPCore_1_1INodeIterator__v1.html#a14aecd54a26e8a4a87f8ec0a347f1757">GetNode</a>();</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; };</div><div class="ttc" id="classAdobeXMPCore_1_1INodeIterator__v1_html_a14aecd54a26e8a4a87f8ec0a347f1757"><div class="ttname"><a href="classAdobeXMPCore_1_1INodeIterator__v1.html#a14aecd54a26e8a4a87f8ec0a347f1757">AdobeXMPCore::INodeIterator_v1::GetNode</a></div><div class="ttdeci">virtual spINode APICALL GetNode()=0</div><div class="ttdoc">Gets the node currently pointed by the iterator. </div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a43c25618c112c18848e352e73de1dce9"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">INode_v1::eNodeType</a> APICALL AdobeXMPCore::INodeIterator_v1::GetNodeType </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Gets the type of the node currently pointed by the iterator. </p>
+<dl class="section return"><dt>Returns</dt><dd>A value of type #<a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913" title="Indicates various types of node available in XMP Data Model like simple, array and structure...">INode_v1::eNodeType</a> indicating the type of the node currently pointed by the iterator. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a7a99393cbe890dd34062e969fe57d704"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a> AdobeXMPCore::INodeIterator_v1::GetSimpleNode </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Gets the iterator's currently pointed node as simple node, if possible. </p>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to a const or non const object of type #ISimpleNode. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
+<li>iterator's currently pointed node is valid but is not a simple node. </li>
+</ul>
+</dd></dl>
+<dl class="section note"><dt>Note</dt><dd>In case iterator has gone beyond its limit, an invalid shared pointer is returned. </dd></dl>
+
+<p>Definition at line <a class="el" href="INodeIterator_8h_source.html#l00058">58</a> of file <a class="el" href="INodeIterator_8h_source.html">INodeIterator.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; {</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">auto</span> node = <a class="code" href="classAdobeXMPCore_1_1INodeIterator__v1.html#a14aecd54a26e8a4a87f8ec0a347f1757">GetNode</a>();</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToSimpleNode();</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a>();</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; }</div><div class="ttc" id="namespaceAdobeXMPCore_html_ab20ecb8d094c1dd81cb278370b746343"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">AdobeXMPCore::spISimpleNode</a></div><div class="ttdeci">shared_ptr&lt; ISimpleNode &gt; spISimpleNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00077">XMPCoreFwdDeclarations.h:77</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INodeIterator__v1_html_a14aecd54a26e8a4a87f8ec0a347f1757"><div class="ttname"><a href="classAdobeXMPCore_1_1INodeIterator__v1.html#a14aecd54a26e8a4a87f8ec0a347f1757">AdobeXMPCore::INodeIterator_v1::GetNode</a></div><div class="ttdeci">virtual spINode APICALL GetNode()=0</div><div class="ttdoc">Gets the node currently pointed by the iterator. </div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="ade5c1340391031ffccef4ba9122845c0"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a> AdobeXMPCore::INodeIterator_v1::GetSimpleNode </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="INodeIterator_8h_source.html#l00064">64</a> of file <a class="el" href="INodeIterator_8h_source.html">INodeIterator.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> INodeIterator * <span class="keyword">&gt;</span>( this )-&gt;<a class="code" href="classAdobeXMPCore_1_1INodeIterator__v1.html#a7a99393cbe890dd34062e969fe57d704">GetSimpleNode</a>();</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div><div class="ttc" id="classAdobeXMPCore_1_1INodeIterator__v1_html_a7a99393cbe890dd34062e969fe57d704"><div class="ttname"><a href="classAdobeXMPCore_1_1INodeIterator__v1.html#a7a99393cbe890dd34062e969fe57d704">AdobeXMPCore::INodeIterator_v1::GetSimpleNode</a></div><div class="ttdeci">XMP_PRIVATE spISimpleNode GetSimpleNode()</div><div class="ttdoc">Gets the iterator&amp;#39;s currently pointed node as simple node, if possible. </div><div class="ttdef"><b>Definition:</b> <a href="INodeIterator_8h_source.html#l00058">INodeIterator.h:58</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="aeb5758def29eb45d016205f8c2f3349f"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a> AdobeXMPCore::INodeIterator_v1::GetStructureNode </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Gets the iterator's currently pointed node as structure node, if possible. </p>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to a const or non const object of type #IStructureNode. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
+<li>iterator's currently pointed node is valid but is not a structure node. </li>
+</ul>
+</dd></dl>
+<dl class="section note"><dt>Note</dt><dd>In case iterator has gone beyond its limit, an invalid shared pointer is returned. </dd></dl>
+
+<p>Definition at line <a class="el" href="INodeIterator_8h_source.html#l00076">76</a> of file <a class="el" href="INodeIterator_8h_source.html">INodeIterator.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">auto</span> node = <a class="code" href="classAdobeXMPCore_1_1INodeIterator__v1.html#a14aecd54a26e8a4a87f8ec0a347f1757">GetNode</a>();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToStructureNode();</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a>();</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div><div class="ttc" id="namespaceAdobeXMPCore_html_a957c57fcbb47c704fc5c31cf36dcbde7"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">AdobeXMPCore::spIStructureNode</a></div><div class="ttdeci">shared_ptr&lt; IStructureNode &gt; spIStructureNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00101">XMPCoreFwdDeclarations.h:101</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INodeIterator__v1_html_a14aecd54a26e8a4a87f8ec0a347f1757"><div class="ttname"><a href="classAdobeXMPCore_1_1INodeIterator__v1.html#a14aecd54a26e8a4a87f8ec0a347f1757">AdobeXMPCore::INodeIterator_v1::GetNode</a></div><div class="ttdeci">virtual spINode APICALL GetNode()=0</div><div class="ttdoc">Gets the node currently pointed by the iterator. </div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="af2a3dac600bde63b628fc701fbce6db2"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a> AdobeXMPCore::INodeIterator_v1::GetStructureNode </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="INodeIterator_8h_source.html#l00082">82</a> of file <a class="el" href="INodeIterator_8h_source.html">INodeIterator.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> INodeIterator * <span class="keyword">&gt;</span>( this )-&gt;<a class="code" href="classAdobeXMPCore_1_1INodeIterator__v1.html#aeb5758def29eb45d016205f8c2f3349f">GetStructureNode</a>();</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div><div class="ttc" id="classAdobeXMPCore_1_1INodeIterator__v1_html_aeb5758def29eb45d016205f8c2f3349f"><div class="ttname"><a href="classAdobeXMPCore_1_1INodeIterator__v1.html#aeb5758def29eb45d016205f8c2f3349f">AdobeXMPCore::INodeIterator_v1::GetStructureNode</a></div><div class="ttdeci">XMP_PRIVATE spIStructureNode GetStructureNode()</div><div class="ttdoc">Gets the iterator&amp;#39;s currently pointed node as structure node, if possible. </div><div class="ttdef"><b>Definition:</b> <a href="INodeIterator_8h_source.html#l00076">INodeIterator.h:76</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a6aac63804dfbdbd0a85440da48eb8bb3"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#a5386a735d9eb66d5859e4657dfeebb7c">spINodeIterator</a> APICALL AdobeXMPCore::INodeIterator_v1::Next </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Advances iterator by one position. </p>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to a const or non object of type #INodeIterator. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Returned shared pointer is invalid in case the current node is the last one. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a38521f687591c9b57da1b7426d6e33d8"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab423c366f29043e79694f805bceddb56">spcINodeIterator</a> APICALL AdobeXMPCore::INodeIterator_v1::Next </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="INodeIterator_8h_source.html#l00112">112</a> of file <a class="el" href="INodeIterator_8h_source.html">INodeIterator.h</a>.</p>
+
+<p>References <a class="el" href="XMPCommonDefines_8h_source.html#l00117">__NOTHROW__</a>, <a class="el" href="namespaceAdobeXMPCore.html#afb1db1e3afd3cb409aab3c32435b506b">AdobeXMPCore::kINodeIteratorID()</a>, and <a class="el" href="XMP__Environment_8h_source.html#l00189">XMP_PRIVATE</a>.</p>
+<div class="fragment"><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; {</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> INodeIterator * <span class="keyword">&gt;</span>( this )-&gt;<a class="code" href="classAdobeXMPCore_1_1INodeIterator__v1.html#a6aac63804dfbdbd0a85440da48eb8bb3">Next</a>();</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div><div class="ttc" id="classAdobeXMPCore_1_1INodeIterator__v1_html_a6aac63804dfbdbd0a85440da48eb8bb3"><div class="ttname"><a href="classAdobeXMPCore_1_1INodeIterator__v1.html#a6aac63804dfbdbd0a85440da48eb8bb3">AdobeXMPCore::INodeIterator_v1::Next</a></div><div class="ttdeci">virtual spINodeIterator APICALL Next()=0</div><div class="ttdoc">Advances iterator by one position. </div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/<a class="el" href="INodeIterator_8h_source.html">INodeIterator.h</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCore_1_1INodeIterator__v1.js b/docs/API/classAdobeXMPCore_1_1INodeIterator__v1.js
new file mode 100755
index 0000000..60857cb
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1INodeIterator__v1.js
@@ -0,0 +1,15 @@
+var classAdobeXMPCore_1_1INodeIterator__v1 =
+[
+ [ "~INodeIterator_v1", "classAdobeXMPCore_1_1INodeIterator__v1.html#aebc78681e60a09759ce7ab820716a0a2", null ],
+ [ "GetArrayNode", "classAdobeXMPCore_1_1INodeIterator__v1.html#ad9a22d79ead6cc79fb5bd4da858e99ce", null ],
+ [ "GetArrayNode", "classAdobeXMPCore_1_1INodeIterator__v1.html#a0b15b5a46f9bbd0a522c95a0fe5a8210", null ],
+ [ "GetNode", "classAdobeXMPCore_1_1INodeIterator__v1.html#a14aecd54a26e8a4a87f8ec0a347f1757", null ],
+ [ "GetNode", "classAdobeXMPCore_1_1INodeIterator__v1.html#a9ddc75f7ef4005df31c505d319b2b534", null ],
+ [ "GetNodeType", "classAdobeXMPCore_1_1INodeIterator__v1.html#a43c25618c112c18848e352e73de1dce9", null ],
+ [ "GetSimpleNode", "classAdobeXMPCore_1_1INodeIterator__v1.html#a7a99393cbe890dd34062e969fe57d704", null ],
+ [ "GetSimpleNode", "classAdobeXMPCore_1_1INodeIterator__v1.html#ade5c1340391031ffccef4ba9122845c0", null ],
+ [ "GetStructureNode", "classAdobeXMPCore_1_1INodeIterator__v1.html#aeb5758def29eb45d016205f8c2f3349f", null ],
+ [ "GetStructureNode", "classAdobeXMPCore_1_1INodeIterator__v1.html#af2a3dac600bde63b628fc701fbce6db2", null ],
+ [ "Next", "classAdobeXMPCore_1_1INodeIterator__v1.html#a6aac63804dfbdbd0a85440da48eb8bb3", null ],
+ [ "Next", "classAdobeXMPCore_1_1INodeIterator__v1.html#a38521f687591c9b57da1b7426d6e33d8", null ]
+]; \ No newline at end of file
diff --git a/docs/API/classAdobeXMPCore_1_1INodeIterator__v1.png b/docs/API/classAdobeXMPCore_1_1INodeIterator__v1.png
new file mode 100755
index 0000000..d2f16af
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1INodeIterator__v1.png
Binary files differ
diff --git a/docs/API/classAdobeXMPCore_1_1INode__v1-members.html b/docs/API/classAdobeXMPCore_1_1INode__v1-members.html
new file mode 100755
index 0000000..fbfbbc3
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1INode__v1-members.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCore_1_1INode__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">AdobeXMPCore::INode_v1 Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a673b6b4d69b2c9d85f2fa440d413ace3">AcknowledgeChanges</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc">Acquire</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4b615b0eef081f3c23385f28728aa462">Clear</a>(bool contents=true, bool qualifiers=true)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2d613694adcedb569145aff06d0bc595">Clone</a>(bool ignoreEmptyNodes=false, bool ignoreNodesWithOnlyQualifiers=false) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#af180be62ecd26edf90df0fe3ea75941e">ConvertToArrayNode</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a0d67ad7708fb6f007ea1152b79e65f49">ConvertToArrayNode</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a08f9ed4dee6c899f65eb51e3d7f9858d">ConvertToMetadata</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a72dc534e1af718599ac185563a02612a">ConvertToMetadata</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aeb9797165d96d06998de79dd19a9f846">ConvertToSimpleNode</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ad8e7ef140cb5ff094789abfcc879c94b">ConvertToSimpleNode</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5ea317fcd59694184089a9774c866b22">ConvertToStructureNode</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ad5f62a4ae9a9630c8106a04bd0c2a0a3">ConvertToStructureNode</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a214bb1b5840dbd5576e764dd2220b261">DisableThreadSafety</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#afe35614cb88e2bdb32996cf4ac15b211">EnableThreadSafety</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> enum name</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ab55c9dad49840d58a1c2c16b9f1962ad">GetArrayQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a2e68d1345ed6ca2e5d1bfada42b13f">GetArrayQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2447e6ea34adbe073a639c703015db90">GetIndex</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070">GetInterfacePointer</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a68350da5edc0668811b9bb890d5777b9">GetName</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2e8319347c3b01638027b4abbe72fda6">GetNameSpace</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a6d9067d66571727b622ffccade5225f0">GetNodeType</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aee7e1f35ac174874234ba5e913a6bfaa">GetParent</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4533c1d11fc2d32c166c9ce05fe01b3c">GetParent</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a47da5e5605d69d6d6ced761e7c39d24f">GetParentNodeType</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a549f1adeea470827a6201b3b4c596f1e">GetPath</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a96a99fa56a2b088691ecad5a0cf6e54d">GetQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a7701069162b4f677026624a5f2b3f788">GetQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2866bcde949c37aeb72cdba8dddcac95">GetQualifierNodeType</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a1524d74e397863cb9324838862f70d7b">GetSimpleQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2831fe03981afd9af12e775bda89361e">GetSimpleQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a844a40cd69e0d87226ce1146d733edd6">GetStructureQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4fb3c837b8c28501b2e7a3376a2cf382">GetStructureQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ab78ba3aaadf4b0109e610505e753de50">HasChanged</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa288c34c9bccb73ae73b653f3c769ade">HasContent</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#adfd1ce7bd20268240769f8a6a405a8ee">HasQualifiers</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a5e6dd9a58a288f20fd0a667a30a2ae">InsertQualifier</a>(const spINode &amp;node)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a3289deed9715f661f5f588dc38642baa">IsArrayItem</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5075ad988ba61e055b6ee6bbeaf25e25">IsEmpty</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a0d545f6b4b2b9760b63c902317c43a94">IsQualifierNode</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a261e2f6af96b75015e5f8318f32be7f9">IsThreadSafe</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a68bac77fd8140a60490eb78f0b533e21">kNTAll</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a60c6b4c3dfc99d8584866f5f18ff2610">kNTArray</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913aae32cc414cc7adaf3b2a1c375f2cb3bb">kNTNone</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a97e0c4fb69029d0d152c068c10736234">kNTSimple</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a7542b80b3b688cd3d210d62d12dbe471">kNTStructure</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#af898813d17af58fb1a828d92a74d7dd3">QualifiersCount</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a9972ca54948952083a930166448c05c0">QualifiersIterator</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa168f37bc38763df55fb1022d55886bd">QualifiersIterator</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3">Release</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a87f03e9924418ae5f7b6fa63def6eee8">RemoveQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a2692b8281984d9fe6de6c169332f2c">ReplaceQualifier</a>(const spINode &amp;node)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#afcb42109aed83c3b0c133bc413388037">AdobeXMPCommon::REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f">AdobeXMPCommon::IVersionable::REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a0f31eb9677c4af06288319e363c21ebc">AdobeXMPCommon::IThreadSafe::REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa087d2f94e42fdd5ece1bd22dfea66d5">SetName</a>(const char *name, sizet nameLength)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a55c6097b36412f9facc8a4cf7e898186">SetNameSpace</a>(const char *nameSpace, sizet nameSpaceLength)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#affdbed044179bbde65ffc28b20e28ecb">~INode_v1</a>() __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31">~ISharedObject</a>() __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCore_1_1INode__v1.html b/docs/API/classAdobeXMPCore_1_1INode__v1.html
new file mode 100755
index 0000000..96dba2f
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1INode__v1.html
@@ -0,0 +1,1870 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>AdobeXMPCore::INode_v1 Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCore_1_1INode__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pub-types">Public Types</a> &#124;
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="classAdobeXMPCore_1_1INode__v1-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">AdobeXMPCore::INode_v1 Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Version1 of the interface that serves as a base interface to all types of nodes in the XMP DOM.
+ <a href="classAdobeXMPCore_1_1INode__v1.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="INode_8h_source.html">INode.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for AdobeXMPCore::INode_v1:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classAdobeXMPCore_1_1INode__v1.png" usemap="#AdobeXMPCore::INode_5Fv1_map" alt=""/>
+ <map id="AdobeXMPCore::INode_5Fv1_map" name="AdobeXMPCore::INode_v1_map">
+<area href="classAdobeXMPCommon_1_1ISharedObject.html" title="Interface that serves as the base interface of all the externally exposed interfaces. " alt="AdobeXMPCommon::ISharedObject" shape="rect" coords="0,0,223,24"/>
+<area href="classAdobeXMPCommon_1_1IVersionable.html" title="Interface that serves as the base interface for all the externally exposed interfaces which needs to ..." alt="AdobeXMPCommon::IVersionable" shape="rect" coords="233,0,456,24"/>
+<area href="classAdobeXMPCommon_1_1IThreadSafe.html" title="Interface that serves as the base interface for all the externally exposed interfaces which needs to ..." alt="AdobeXMPCommon::IThreadSafe" shape="rect" coords="466,0,689,24"/>
+<area href="classAdobeXMPCore_1_1ICompositeNode__v1.html" title="Version1 of the interface that serves as a base interface to all composite types of nodes in the XMP ..." alt="AdobeXMPCore::ICompositeNode_v1" shape="rect" coords="116,112,339,136"/>
+<area href="classAdobeXMPCore_1_1ISimpleNode__v1.html" title="Version1 of the interface that represents a Simple Property Node of XMP DOM. " alt="AdobeXMPCore::ISimpleNode_v1" shape="rect" coords="349,112,572,136"/>
+<area href="classAdobeXMPCore_1_1IArrayNode__v1.html" title="Version1 of the interface that represents an Array Node of XMP DOM. " alt="AdobeXMPCore::IArrayNode_v1" shape="rect" coords="0,168,223,192"/>
+<area href="classAdobeXMPCore_1_1IStructureNode__v1.html" title="Version1 of the interface that represents a structure Node of XMP DOM. " alt="AdobeXMPCore::IStructureNode_v1" shape="rect" coords="233,168,456,192"/>
+<area href="classAdobeXMPCore_1_1IMetadata__v1.html" title="Version1 of the interface that represents the whole xmp metadata for an asset. " alt="AdobeXMPCore::IMetadata_v1" shape="rect" coords="233,224,456,248"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr class="memitem:a46b01045c1addbc8f444bd21384b7913"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> { <br />
+&#160;&#160;<a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913aae32cc414cc7adaf3b2a1c375f2cb3bb">kNTNone</a> = 0,
+<a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a97e0c4fb69029d0d152c068c10736234">kNTSimple</a> = 1,
+<a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a60c6b4c3dfc99d8584866f5f18ff2610">kNTArray</a> = 1 &lt;&lt; 1,
+<a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a7542b80b3b688cd3d210d62d12dbe471">kNTStructure</a> = 1 &lt;&lt; 2,
+<br />
+&#160;&#160;<a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a68bac77fd8140a60490eb78f0b533e21">kNTAll</a> = kAllBits
+<br />
+ }<tr class="memdesc:a46b01045c1addbc8f444bd21384b7913"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates various types of node available in XMP Data Model like simple, array and structure. <a href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:a46b01045c1addbc8f444bd21384b7913"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a6d9067d66571727b622ffccade5225f0"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a6d9067d66571727b622ffccade5225f0">GetNodeType</a> () const =0</td></tr>
+<tr class="memdesc:a6d9067d66571727b622ffccade5225f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the node type of the node. <a href="#a6d9067d66571727b622ffccade5225f0">More...</a><br /></td></tr>
+<tr class="separator:a6d9067d66571727b622ffccade5225f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a47da5e5605d69d6d6ced761e7c39d24f"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a47da5e5605d69d6d6ced761e7c39d24f">GetParentNodeType</a> () const =0</td></tr>
+<tr class="memdesc:a47da5e5605d69d6d6ced761e7c39d24f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the node type of the node's parent. <a href="#a47da5e5605d69d6d6ced761e7c39d24f">More...</a><br /></td></tr>
+<tr class="separator:a47da5e5605d69d6d6ced761e7c39d24f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa087d2f94e42fdd5ece1bd22dfea66d5"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa087d2f94e42fdd5ece1bd22dfea66d5">SetName</a> (const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)=0</td></tr>
+<tr class="memdesc:aa087d2f94e42fdd5ece1bd22dfea66d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the local name of the node. <a href="#aa087d2f94e42fdd5ece1bd22dfea66d5">More...</a><br /></td></tr>
+<tr class="separator:aa087d2f94e42fdd5ece1bd22dfea66d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a68350da5edc0668811b9bb890d5777b9"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a68350da5edc0668811b9bb890d5777b9">GetName</a> () const =0</td></tr>
+<tr class="memdesc:a68350da5edc0668811b9bb890d5777b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the local name of the node. <a href="#a68350da5edc0668811b9bb890d5777b9">More...</a><br /></td></tr>
+<tr class="separator:a68350da5edc0668811b9bb890d5777b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a55c6097b36412f9facc8a4cf7e898186"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a55c6097b36412f9facc8a4cf7e898186">SetNameSpace</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength)=0</td></tr>
+<tr class="memdesc:a55c6097b36412f9facc8a4cf7e898186"><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the name space of the node. <a href="#a55c6097b36412f9facc8a4cf7e898186">More...</a><br /></td></tr>
+<tr class="separator:a55c6097b36412f9facc8a4cf7e898186"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2e8319347c3b01638027b4abbe72fda6"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2e8319347c3b01638027b4abbe72fda6">GetNameSpace</a> () const =0</td></tr>
+<tr class="memdesc:a2e8319347c3b01638027b4abbe72fda6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the name space of the node. <a href="#a2e8319347c3b01638027b4abbe72fda6">More...</a><br /></td></tr>
+<tr class="separator:a2e8319347c3b01638027b4abbe72fda6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a549f1adeea470827a6201b3b4c596f1e"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aa54f5ed241da9437ad01c1047a199f56">spIPath</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a549f1adeea470827a6201b3b4c596f1e">GetPath</a> () const =0</td></tr>
+<tr class="memdesc:a549f1adeea470827a6201b3b4c596f1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the path of the node from the root of the metadata. <a href="#a549f1adeea470827a6201b3b4c596f1e">More...</a><br /></td></tr>
+<tr class="separator:a549f1adeea470827a6201b3b4c596f1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af898813d17af58fb1a828d92a74d7dd3"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#af898813d17af58fb1a828d92a74d7dd3">QualifiersCount</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:af898813d17af58fb1a828d92a74d7dd3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the count of the qualifiers attached with the node. <a href="#af898813d17af58fb1a828d92a74d7dd3">More...</a><br /></td></tr>
+<tr class="separator:af898813d17af58fb1a828d92a74d7dd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2866bcde949c37aeb72cdba8dddcac95"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2866bcde949c37aeb72cdba8dddcac95">GetQualifierNodeType</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const =0</td></tr>
+<tr class="memdesc:a2866bcde949c37aeb72cdba8dddcac95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the type of the node's qualifier having specified namespace and name. <a href="#a2866bcde949c37aeb72cdba8dddcac95">More...</a><br /></td></tr>
+<tr class="separator:a2866bcde949c37aeb72cdba8dddcac95"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a5e6dd9a58a288f20fd0a667a30a2ae"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a5e6dd9a58a288f20fd0a667a30a2ae">InsertQualifier</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;node)=0</td></tr>
+<tr class="memdesc:a5a5e6dd9a58a288f20fd0a667a30a2ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inserts a given qualifier node. <a href="#a5a5e6dd9a58a288f20fd0a667a30a2ae">More...</a><br /></td></tr>
+<tr class="separator:a5a5e6dd9a58a288f20fd0a667a30a2ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a2692b8281984d9fe6de6c169332f2c"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a2692b8281984d9fe6de6c169332f2c">ReplaceQualifier</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;node)=0</td></tr>
+<tr class="memdesc:a5a2692b8281984d9fe6de6c169332f2c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replaces a given qualifier node. <a href="#a5a2692b8281984d9fe6de6c169332f2c">More...</a><br /></td></tr>
+<tr class="separator:a5a2692b8281984d9fe6de6c169332f2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a87f03e9924418ae5f7b6fa63def6eee8"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a87f03e9924418ae5f7b6fa63def6eee8">RemoveQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)=0</td></tr>
+<tr class="memdesc:a87f03e9924418ae5f7b6fa63def6eee8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes the qualifier node with the specified nameSpace and name. <a href="#a87f03e9924418ae5f7b6fa63def6eee8">More...</a><br /></td></tr>
+<tr class="separator:a87f03e9924418ae5f7b6fa63def6eee8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3289deed9715f661f5f588dc38642baa"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a3289deed9715f661f5f588dc38642baa">IsArrayItem</a> () const =0</td></tr>
+<tr class="memdesc:a3289deed9715f661f5f588dc38642baa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates whether the node is a direct child of an array node. <a href="#a3289deed9715f661f5f588dc38642baa">More...</a><br /></td></tr>
+<tr class="separator:a3289deed9715f661f5f588dc38642baa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0d545f6b4b2b9760b63c902317c43a94"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a0d545f6b4b2b9760b63c902317c43a94">IsQualifierNode</a> () const =0</td></tr>
+<tr class="memdesc:a0d545f6b4b2b9760b63c902317c43a94"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates whether the node is a qualifier node. <a href="#a0d545f6b4b2b9760b63c902317c43a94">More...</a><br /></td></tr>
+<tr class="separator:a0d545f6b4b2b9760b63c902317c43a94"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2447e6ea34adbe073a639c703015db90"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2447e6ea34adbe073a639c703015db90">GetIndex</a> () const =0</td></tr>
+<tr class="memdesc:a2447e6ea34adbe073a639c703015db90"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the index of the node in case it is an array item. <a href="#a2447e6ea34adbe073a639c703015db90">More...</a><br /></td></tr>
+<tr class="separator:a2447e6ea34adbe073a639c703015db90"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adfd1ce7bd20268240769f8a6a405a8ee"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#adfd1ce7bd20268240769f8a6a405a8ee">HasQualifiers</a> () const =0</td></tr>
+<tr class="memdesc:adfd1ce7bd20268240769f8a6a405a8ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates whether the node has any qualifiers associated with it. <a href="#adfd1ce7bd20268240769f8a6a405a8ee">More...</a><br /></td></tr>
+<tr class="separator:adfd1ce7bd20268240769f8a6a405a8ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa288c34c9bccb73ae73b653f3c769ade"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa288c34c9bccb73ae73b653f3c769ade">HasContent</a> () const =0</td></tr>
+<tr class="memdesc:aa288c34c9bccb73ae73b653f3c769ade"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether the node has any content or not. return A bool value indicating the presence of contents in the node apart from qualifiers. <a href="#aa288c34c9bccb73ae73b653f3c769ade">More...</a><br /></td></tr>
+<tr class="separator:aa288c34c9bccb73ae73b653f3c769ade"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5075ad988ba61e055b6ee6bbeaf25e25"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5075ad988ba61e055b6ee6bbeaf25e25">IsEmpty</a> () const =0</td></tr>
+<tr class="memdesc:a5075ad988ba61e055b6ee6bbeaf25e25"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether the node is empty. return A bool value indicating whether the contents and qualifiers of a node are empty. <a href="#a5075ad988ba61e055b6ee6bbeaf25e25">More...</a><br /></td></tr>
+<tr class="separator:a5075ad988ba61e055b6ee6bbeaf25e25"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab78ba3aaadf4b0109e610505e753de50"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ab78ba3aaadf4b0109e610505e753de50">HasChanged</a> () const =0</td></tr>
+<tr class="memdesc:ab78ba3aaadf4b0109e610505e753de50"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the status about any change done to the node or its children or qualifiers. returns a bool value indicating whether some changes have been performed on the node or its children or qualifiers. for a simple node, true will be returned in scenarios like when the node's value or qualifiers are modified. for an array node or a structure node, true will be returned in scenarios like when the node's children or the node's qualifiers are modified. <a href="#ab78ba3aaadf4b0109e610505e753de50">More...</a><br /></td></tr>
+<tr class="separator:ab78ba3aaadf4b0109e610505e753de50"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a673b6b4d69b2c9d85f2fa440d413ace3"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a673b6b4d69b2c9d85f2fa440d413ace3">AcknowledgeChanges</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a673b6b4d69b2c9d85f2fa440d413ace3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Acknowledges that changes for the node and its children and qualifiers have been taken care of. for a simple node, changes that will be acknowledged in scenarios like when the node's value or node's qualifiers were modified. for an array node or a structure node, changes will be acknowledged in scenarios like when the node's children were or the node's qualifiers were modified. <a href="#a673b6b4d69b2c9d85f2fa440d413ace3">More...</a><br /></td></tr>
+<tr class="separator:a673b6b4d69b2c9d85f2fa440d413ace3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4b615b0eef081f3c23385f28728aa462"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4b615b0eef081f3c23385f28728aa462">Clear</a> (bool contents=true, bool qualifiers=true)=0</td></tr>
+<tr class="memdesc:a4b615b0eef081f3c23385f28728aa462"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the contents of the node. <a href="#a4b615b0eef081f3c23385f28728aa462">More...</a><br /></td></tr>
+<tr class="separator:a4b615b0eef081f3c23385f28728aa462"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2d613694adcedb569145aff06d0bc595"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2d613694adcedb569145aff06d0bc595">Clone</a> (bool ignoreEmptyNodes=false, bool ignoreNodesWithOnlyQualifiers=false) const =0</td></tr>
+<tr class="memdesc:a2d613694adcedb569145aff06d0bc595"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual copy constructor. <a href="#a2d613694adcedb569145aff06d0bc595">More...</a><br /></td></tr>
+<tr class="separator:a2d613694adcedb569145aff06d0bc595"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
+<tr class="memitem:aee7e1f35ac174874234ba5e913a6bfaa"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">spcINode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aee7e1f35ac174874234ba5e913a6bfaa">GetParent</a> () const </td></tr>
+<tr class="memdesc:aee7e1f35ac174874234ba5e913a6bfaa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the parent node of the node. <a href="#aee7e1f35ac174874234ba5e913a6bfaa">More...</a><br /></td></tr>
+<tr class="separator:aee7e1f35ac174874234ba5e913a6bfaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4533c1d11fc2d32c166c9ce05fe01b3c"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4533c1d11fc2d32c166c9ce05fe01b3c">GetParent</a> ()=0</td></tr>
+<tr class="separator:a4533c1d11fc2d32c166c9ce05fe01b3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
+<tr class="memitem:a9972ca54948952083a930166448c05c0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab423c366f29043e79694f805bceddb56">spcINodeIterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a9972ca54948952083a930166448c05c0">QualifiersIterator</a> () const </td></tr>
+<tr class="separator:a9972ca54948952083a930166448c05c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa168f37bc38763df55fb1022d55886bd"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a5386a735d9eb66d5859e4657dfeebb7c">spINodeIterator</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa168f37bc38763df55fb1022d55886bd">QualifiersIterator</a> ()=0</td></tr>
+<tr class="separator:aa168f37bc38763df55fb1022d55886bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
+<tr class="memitem:a96a99fa56a2b088691ecad5a0cf6e54d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">spcINode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a96a99fa56a2b088691ecad5a0cf6e54d">GetQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const </td></tr>
+<tr class="memdesc:a96a99fa56a2b088691ecad5a0cf6e54d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the qualifier of the node having specified namespace and name. <a href="#a96a99fa56a2b088691ecad5a0cf6e54d">More...</a><br /></td></tr>
+<tr class="separator:a96a99fa56a2b088691ecad5a0cf6e54d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7701069162b4f677026624a5f2b3f788"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a7701069162b4f677026624a5f2b3f788">GetQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)=0</td></tr>
+<tr class="separator:a7701069162b4f677026624a5f2b3f788"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
+<tr class="memitem:a1524d74e397863cb9324838862f70d7b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a1524d74e397863cb9324838862f70d7b">GetSimpleQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const </td></tr>
+<tr class="memdesc:a1524d74e397863cb9324838862f70d7b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the node's qualifier having specified name space and name as simple node. <a href="#a1524d74e397863cb9324838862f70d7b">More...</a><br /></td></tr>
+<tr class="separator:a1524d74e397863cb9324838862f70d7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2831fe03981afd9af12e775bda89361e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2831fe03981afd9af12e775bda89361e">GetSimpleQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)</td></tr>
+<tr class="separator:a2831fe03981afd9af12e775bda89361e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
+<tr class="memitem:a844a40cd69e0d87226ce1146d733edd6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a844a40cd69e0d87226ce1146d733edd6">GetStructureQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const </td></tr>
+<tr class="memdesc:a844a40cd69e0d87226ce1146d733edd6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the node's qualifier having specified name space and name as structure node. <a href="#a844a40cd69e0d87226ce1146d733edd6">More...</a><br /></td></tr>
+<tr class="separator:a844a40cd69e0d87226ce1146d733edd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4fb3c837b8c28501b2e7a3376a2cf382"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4fb3c837b8c28501b2e7a3376a2cf382">GetStructureQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)</td></tr>
+<tr class="separator:a4fb3c837b8c28501b2e7a3376a2cf382"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
+<tr class="memitem:ab55c9dad49840d58a1c2c16b9f1962ad"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ab55c9dad49840d58a1c2c16b9f1962ad">GetArrayQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const </td></tr>
+<tr class="memdesc:ab55c9dad49840d58a1c2c16b9f1962ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the node's qualifier having specified name space and name as an array node. <a href="#ab55c9dad49840d58a1c2c16b9f1962ad">More...</a><br /></td></tr>
+<tr class="separator:ab55c9dad49840d58a1c2c16b9f1962ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a2e68d1345ed6ca2e5d1bfada42b13f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a2e68d1345ed6ca2e5d1bfada42b13f">GetArrayQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)</td></tr>
+<tr class="separator:a5a2e68d1345ed6ca2e5d1bfada42b13f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
+<tr class="memitem:aeb9797165d96d06998de79dd19a9f846"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aeb9797165d96d06998de79dd19a9f846">ConvertToSimpleNode</a> () const </td></tr>
+<tr class="memdesc:aeb9797165d96d06998de79dd19a9f846"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts Node to a simple node, if possible. <a href="#aeb9797165d96d06998de79dd19a9f846">More...</a><br /></td></tr>
+<tr class="separator:aeb9797165d96d06998de79dd19a9f846"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad8e7ef140cb5ff094789abfcc879c94b"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ad8e7ef140cb5ff094789abfcc879c94b">ConvertToSimpleNode</a> ()=0</td></tr>
+<tr class="separator:ad8e7ef140cb5ff094789abfcc879c94b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
+<tr class="memitem:a5ea317fcd59694184089a9774c866b22"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5ea317fcd59694184089a9774c866b22">ConvertToStructureNode</a> () const </td></tr>
+<tr class="memdesc:a5ea317fcd59694184089a9774c866b22"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts Node to a structure node type, if possible. <a href="#a5ea317fcd59694184089a9774c866b22">More...</a><br /></td></tr>
+<tr class="separator:a5ea317fcd59694184089a9774c866b22"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad5f62a4ae9a9630c8106a04bd0c2a0a3"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ad5f62a4ae9a9630c8106a04bd0c2a0a3">ConvertToStructureNode</a> ()=0</td></tr>
+<tr class="separator:ad5f62a4ae9a9630c8106a04bd0c2a0a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
+<tr class="memitem:af180be62ecd26edf90df0fe3ea75941e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#af180be62ecd26edf90df0fe3ea75941e">ConvertToArrayNode</a> () const </td></tr>
+<tr class="memdesc:af180be62ecd26edf90df0fe3ea75941e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts Node to an array node type, if possible. <a href="#af180be62ecd26edf90df0fe3ea75941e">More...</a><br /></td></tr>
+<tr class="separator:af180be62ecd26edf90df0fe3ea75941e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0d67ad7708fb6f007ea1152b79e65f49"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a0d67ad7708fb6f007ea1152b79e65f49">ConvertToArrayNode</a> ()=0</td></tr>
+<tr class="separator:a0d67ad7708fb6f007ea1152b79e65f49"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
+<tr class="memitem:a08f9ed4dee6c899f65eb51e3d7f9858d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a1e81ce748e90e850d0a48b0b5943fce2">spcIMetadata</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a08f9ed4dee6c899f65eb51e3d7f9858d">ConvertToMetadata</a> () const </td></tr>
+<tr class="memdesc:a08f9ed4dee6c899f65eb51e3d7f9858d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts Node to a metadata node type, if possible. <a href="#a08f9ed4dee6c899f65eb51e3d7f9858d">More...</a><br /></td></tr>
+<tr class="separator:a08f9ed4dee6c899f65eb51e3d7f9858d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a72dc534e1af718599ac185563a02612a"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a7f1de39fd79aeac4402eba73cb1ffe82">spIMetadata</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a72dc534e1af718599ac185563a02612a">ConvertToMetadata</a> ()=0</td></tr>
+<tr class="separator:a72dc534e1af718599ac185563a02612a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1ISharedObject')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td></tr>
+<tr class="memitem:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc">Acquire</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the clients of the object to indicate that he has acquired the shared ownership of the object. <a href="#ab90d4ec1fcd975a7ac62dcb866335cdc">More...</a><br /></td></tr>
+<tr class="separator:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3">Release</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the clients of the object to indicate he has released his shared ownership of the object. If this being the last client than this function should call Destroy to delete and release the memory. <a href="#abf5a54e09f87366170ea19c618f68bc3">More...</a><br /></td></tr>
+<tr class="separator:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
+<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
+<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a> ()</td></tr>
+<tr class="memdesc:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to an interface object implementing the requested version. <a href="#ad6539461695decfaea8a44798db51e54">More...</a><br /></td></tr>
+<tr class="separator:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
+<tr class="memitem:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> const requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070">GetInterfacePointer</a> () const </td></tr>
+<tr class="memdesc:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to a const interface object implementing the requested version. <a href="#ab93a940e2946c14a76ebbd9552cab070">More...</a><br /></td></tr>
+<tr class="separator:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1IThreadSafe')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td></tr>
+<tr class="memitem:afe35614cb88e2bdb32996cf4ac15b211 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#afe35614cb88e2bdb32996cf4ac15b211">EnableThreadSafety</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:afe35614cb88e2bdb32996cf4ac15b211 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables the thread safety on an object. <a href="#afe35614cb88e2bdb32996cf4ac15b211">More...</a><br /></td></tr>
+<tr class="separator:afe35614cb88e2bdb32996cf4ac15b211 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a214bb1b5840dbd5576e764dd2220b261 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a214bb1b5840dbd5576e764dd2220b261">DisableThreadSafety</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a214bb1b5840dbd5576e764dd2220b261 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disables the thread safety on an object. <a href="#a214bb1b5840dbd5576e764dd2220b261">More...</a><br /></td></tr>
+<tr class="separator:a214bb1b5840dbd5576e764dd2220b261 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a261e2f6af96b75015e5f8318f32be7f9 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a261e2f6af96b75015e5f8318f32be7f9">IsThreadSafe</a> () const =0</td></tr>
+<tr class="memdesc:a261e2f6af96b75015e5f8318f32be7f9 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Informs whether object can be used across multiple threads or not. <a href="#a261e2f6af96b75015e5f8318f32be7f9">More...</a><br /></td></tr>
+<tr class="separator:a261e2f6af96b75015e5f8318f32be7f9 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:affdbed044179bbde65ffc28b20e28ecb"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#affdbed044179bbde65ffc28b20e28ecb">~INode_v1</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:affdbed044179bbde65ffc28b20e28ecb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1ISharedObject')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td></tr>
+<tr class="memitem:a5869ff89d0b7dd0a7b525401a1d57b31 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31">~ISharedObject</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="separator:a5869ff89d0b7dd0a7b525401a1d57b31 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afcb42109aed83c3b0c133bc413388037 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#afcb42109aed83c3b0c133bc413388037">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:afcb42109aed83c3b0c133bc413388037 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
+<tr class="memitem:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a> ()</td></tr>
+<tr class="separator:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1IThreadSafe"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1IThreadSafe')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td></tr>
+<tr class="memitem:a0f31eb9677c4af06288319e363c21ebc inherit pro_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a0f31eb9677c4af06288319e363c21ebc">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:a0f31eb9677c4af06288319e363c21ebc inherit pro_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Version1 of the interface that serves as a base interface to all types of nodes in the XMP DOM. </p>
+<p>Provides all the functions to get various properties of the node. </p><dl class="section attention"><dt>Attention</dt><dd>Support multi threading through locks but can be enabled/disabled by the client. By default every object created does not support multi-threading. </dd></dl>
+
+<p>Definition at line <a class="el" href="INode_8h_source.html#l00026">26</a> of file <a class="el" href="INode_8h_source.html">INode.h</a>.</p>
+</div><h2 class="groupheader">Member Enumeration Documentation</h2>
+<a class="anchor" id="a46b01045c1addbc8f444bd21384b7913"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">AdobeXMPCore::INode_v1::eNodeType</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Indicates various types of node available in XMP Data Model like simple, array and structure. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a46b01045c1addbc8f444bd21384b7913aae32cc414cc7adaf3b2a1c375f2cb3bb"></a>kNTNone&#160;</td><td class="fielddoc">
+<p>Indicates none, to be used as invalid type. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a46b01045c1addbc8f444bd21384b7913a97e0c4fb69029d0d152c068c10736234"></a>kNTSimple&#160;</td><td class="fielddoc">
+<p>XMP Node is of Simple Node type (key value pair). </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a46b01045c1addbc8f444bd21384b7913a60c6b4c3dfc99d8584866f5f18ff2610"></a>kNTArray&#160;</td><td class="fielddoc">
+<p>XMP Node is of Array type. Indexing start from 1. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a46b01045c1addbc8f444bd21384b7913a7542b80b3b688cd3d210d62d12dbe471"></a>kNTStructure&#160;</td><td class="fielddoc">
+<p>XMP Node is of structure type. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a46b01045c1addbc8f444bd21384b7913a68bac77fd8140a60490eb78f0b533e21"></a>kNTAll&#160;</td><td class="fielddoc">
+<p>XMP Node of any type. </p>
+</td></tr>
+</table>
+
+<p>Definition at line <a class="el" href="INode_8h_source.html#l00036">36</a> of file <a class="el" href="INode_8h_source.html">INode.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; {</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913aae32cc414cc7adaf3b2a1c375f2cb3bb">kNTNone</a> = 0,</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a97e0c4fb69029d0d152c068c10736234">kNTSimple</a> = 1,</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a60c6b4c3dfc99d8584866f5f18ff2610">kNTArray</a> = 1 &lt;&lt; 1,</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a7542b80b3b688cd3d210d62d12dbe471">kNTStructure</a> = 1 &lt;&lt; 2,</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a68bac77fd8140a60490eb78f0b533e21">kNTAll</a> = <a class="code" href="namespaceAdobeXMPCommon.html#a3e31c8b25cbf95c42b8e439071bdf865">kAllBits</a></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; } <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a>;</div><div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_a46b01045c1addbc8f444bd21384b7913a68bac77fd8140a60490eb78f0b533e21"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a68bac77fd8140a60490eb78f0b533e21">AdobeXMPCore::INode_v1::kNTAll</a></div><div class="ttdoc">XMP Node of any type. </div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00050">INode.h:50</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a3e31c8b25cbf95c42b8e439071bdf865"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a3e31c8b25cbf95c42b8e439071bdf865">AdobeXMPCommon::kAllBits</a></div><div class="ttdeci">static const uint32 kAllBits(0xFFFFFFFF)</div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_a46b01045c1addbc8f444bd21384b7913aae32cc414cc7adaf3b2a1c375f2cb3bb"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913aae32cc414cc7adaf3b2a1c375f2cb3bb">AdobeXMPCore::INode_v1::kNTNone</a></div><div class="ttdoc">Indicates none, to be used as invalid type. </div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00038">INode.h:38</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_a46b01045c1addbc8f444bd21384b7913a7542b80b3b688cd3d210d62d12dbe471"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a7542b80b3b688cd3d210d62d12dbe471">AdobeXMPCore::INode_v1::kNTStructure</a></div><div class="ttdoc">XMP Node is of structure type. </div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00047">INode.h:47</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_a46b01045c1addbc8f444bd21384b7913a60c6b4c3dfc99d8584866f5f18ff2610"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a60c6b4c3dfc99d8584866f5f18ff2610">AdobeXMPCore::INode_v1::kNTArray</a></div><div class="ttdoc">XMP Node is of Array type. Indexing start from 1. </div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00044">INode.h:44</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_a46b01045c1addbc8f444bd21384b7913"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">AdobeXMPCore::INode_v1::eNodeType</a></div><div class="ttdeci">eNodeType</div><div class="ttdoc">Indicates various types of node available in XMP Data Model like simple, array and structure...</div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00036">INode.h:36</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_a46b01045c1addbc8f444bd21384b7913a97e0c4fb69029d0d152c068c10736234"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a97e0c4fb69029d0d152c068c10736234">AdobeXMPCore::INode_v1::kNTSimple</a></div><div class="ttdoc">XMP Node is of Simple Node type (key value pair). </div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00041">INode.h:41</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="affdbed044179bbde65ffc28b20e28ecb"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual AdobeXMPCore::INode_v1::~INode_v1 </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Destructor </p>
+
+<p>Definition at line <a class="el" href="INode_8h_source.html#l00447">447</a> of file <a class="el" href="INode_8h_source.html">INode.h</a>.</p>
+
+<p>References <a class="el" href="XMPCommonDefines_8h_source.html#l00117">__NOTHROW__</a>, and <a class="el" href="XMPCommonDefines_8h_source.html#l00107">REQ_FRIEND_CLASS_DECLARATION</a>.</p>
+<div class="fragment"><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;{}</div></div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a673b6b4d69b2c9d85f2fa440d413ace3"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCore::INode_v1::AcknowledgeChanges </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Acknowledges that changes for the node and its children and qualifiers have been taken care of. for a simple node, changes that will be acknowledged in scenarios like when the node's value or node's qualifiers were modified. for an array node or a structure node, changes will be acknowledged in scenarios like when the node's children were or the node's qualifiers were modified. </p>
+
+</div>
+</div>
+<a class="anchor" id="a4b615b0eef081f3c23385f28728aa462"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCore::INode_v1::Clear </td>
+ <td>(</td>
+ <td class="paramtype">bool&#160;</td>
+ <td class="paramname"><em>contents</em> = <code>true</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">bool&#160;</td>
+ <td class="paramname"><em>qualifiers</em> = <code>true</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Clear the contents of the node. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">contents</td><td>A bool value controlling whether contents of the node should be cleared or not. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">qualifiers</td><td>A bool value controlling whether qualifiers of the node should be cleared or not. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a2d613694adcedb569145aff06d0bc595"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL AdobeXMPCore::INode_v1::Clone </td>
+ <td>(</td>
+ <td class="paramtype">bool&#160;</td>
+ <td class="paramname"><em>ignoreEmptyNodes</em> = <code>false</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">bool&#160;</td>
+ <td class="paramname"><em>ignoreNodesWithOnlyQualifiers</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Virtual copy constructor. </p>
+<p>Clones the node creating an exact replica of the node which is not part of any metadata tree. </p><dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">ignoreEmptyNodes</td><td>A bool value controlling whether to clone empty nodes or not. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">ignoreNodesWithOnlyQualifiers</td><td>A bool value controlling whether presence of only qualifiers should mark node as non empty. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to newly created replica of the node. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="af180be62ecd26edf90df0fe3ea75941e"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a> AdobeXMPCore::INode_v1::ConvertToArrayNode </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Converts Node to an array node type, if possible. </p>
+<dl class="section return"><dt>Returns</dt><dd>Shared pointer to const or non const IArrayNode object. An empty array node is thrown in case actual node is not an array node. </dd></dl>
+
+<p>Definition at line <a class="el" href="INode_8h_source.html#l00361">361</a> of file <a class="el" href="INode_8h_source.html">INode.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; {</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> INode_v1 * <span class="keyword">&gt;</span>( this )-&gt;<a class="code" href="classAdobeXMPCore_1_1INode__v1.html#af180be62ecd26edf90df0fe3ea75941e">ConvertToArrayNode</a>();</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; }</div><div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_af180be62ecd26edf90df0fe3ea75941e"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#af180be62ecd26edf90df0fe3ea75941e">AdobeXMPCore::INode_v1::ConvertToArrayNode</a></div><div class="ttdeci">XMP_PRIVATE spcIArrayNode ConvertToArrayNode() const </div><div class="ttdoc">Converts Node to an array node type, if possible. </div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00361">INode.h:361</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a0d67ad7708fb6f007ea1152b79e65f49"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a> APICALL AdobeXMPCore::INode_v1::ConvertToArrayNode </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a08f9ed4dee6c899f65eb51e3d7f9858d"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a1e81ce748e90e850d0a48b0b5943fce2">spcIMetadata</a> AdobeXMPCore::INode_v1::ConvertToMetadata </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Converts Node to a metadata node type, if possible. </p>
+<dl class="section return"><dt>Returns</dt><dd>Shared pointer to const or non const IMetadata object. An empty metadata node is thrown in case actual node is not a metadata node. </dd></dl>
+
+<p>Definition at line <a class="el" href="INode_8h_source.html#l00372">372</a> of file <a class="el" href="INode_8h_source.html">INode.h</a>.</p>
+
+<p>References <a class="el" href="namespaceAdobeXMPCore.html#ae76eb0e35e0e35e5b476b6fecc6e3603">AdobeXMPCore::kINodeID()</a>, and <a class="el" href="XMP__Environment_8h_source.html#l00189">XMP_PRIVATE</a>.</p>
+<div class="fragment"><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; {</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> INode_v1 * <span class="keyword">&gt;</span>( this )-&gt;<a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a08f9ed4dee6c899f65eb51e3d7f9858d">ConvertToMetadata</a>();</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; }</div><div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_a08f9ed4dee6c899f65eb51e3d7f9858d"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a08f9ed4dee6c899f65eb51e3d7f9858d">AdobeXMPCore::INode_v1::ConvertToMetadata</a></div><div class="ttdeci">XMP_PRIVATE spcIMetadata ConvertToMetadata() const </div><div class="ttdoc">Converts Node to a metadata node type, if possible. </div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00372">INode.h:372</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a72dc534e1af718599ac185563a02612a"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#a7f1de39fd79aeac4402eba73cb1ffe82">spIMetadata</a> APICALL AdobeXMPCore::INode_v1::ConvertToMetadata </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aeb9797165d96d06998de79dd19a9f846"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a> AdobeXMPCore::INode_v1::ConvertToSimpleNode </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Converts Node to a simple node, if possible. </p>
+<dl class="section return"><dt>Returns</dt><dd>Shared pointer to const or non const ISimpleNode object. An empty simple node is thrown in case actual node is not a simple node. </dd></dl>
+
+<p>Definition at line <a class="el" href="INode_8h_source.html#l00339">339</a> of file <a class="el" href="INode_8h_source.html">INode.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; {</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> INode_v1 * <span class="keyword">&gt;</span>( this )-&gt;<a class="code" href="classAdobeXMPCore_1_1INode__v1.html#aeb9797165d96d06998de79dd19a9f846">ConvertToSimpleNode</a>();</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; }</div><div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_aeb9797165d96d06998de79dd19a9f846"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#aeb9797165d96d06998de79dd19a9f846">AdobeXMPCore::INode_v1::ConvertToSimpleNode</a></div><div class="ttdeci">XMP_PRIVATE spcISimpleNode ConvertToSimpleNode() const </div><div class="ttdoc">Converts Node to a simple node, if possible. </div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00339">INode.h:339</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="ad8e7ef140cb5ff094789abfcc879c94b"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a> APICALL AdobeXMPCore::INode_v1::ConvertToSimpleNode </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5ea317fcd59694184089a9774c866b22"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a> AdobeXMPCore::INode_v1::ConvertToStructureNode </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Converts Node to a structure node type, if possible. </p>
+<dl class="section return"><dt>Returns</dt><dd>Shared pointer to const or non const IStructureNode object. An empty structure node is thrown in case actual node is not a structure node. </dd></dl>
+
+<p>Definition at line <a class="el" href="INode_8h_source.html#l00350">350</a> of file <a class="el" href="INode_8h_source.html">INode.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; {</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> INode_v1 * <span class="keyword">&gt;</span>( this )-&gt;<a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a5ea317fcd59694184089a9774c866b22">ConvertToStructureNode</a>();</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; }</div><div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_a5ea317fcd59694184089a9774c866b22"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a5ea317fcd59694184089a9774c866b22">AdobeXMPCore::INode_v1::ConvertToStructureNode</a></div><div class="ttdeci">XMP_PRIVATE spcIStructureNode ConvertToStructureNode() const </div><div class="ttdoc">Converts Node to a structure node type, if possible. </div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00350">INode.h:350</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="ad5f62a4ae9a9630c8106a04bd0c2a0a3"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a> APICALL AdobeXMPCore::INode_v1::ConvertToStructureNode </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab55c9dad49840d58a1c2c16b9f1962ad"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a> AdobeXMPCore::INode_v1::GetArrayQualifier </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>nameSpace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameSpaceLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameLength</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Get the node's qualifier having specified name space and name as an array node. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpace</td><td>Pointer to a constant char buffer containing name space URI of the qualifier node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpaceLength</td><td>Number of characters in nameSpace. In case nameSpace is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Pointer to a constant char buffer containing local name of the qualifier node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameLength</td><td>Number of characters in name. In case name is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to const or non const #ISimpleNode object containing qualifier. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>In case no qualifier exists with the specified nameSpace and name combination then an invalid shared pointer is returned. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
+<li>a qualifier exists with the specified nameSpace and name combination but is not an array node. </li>
+</ul>
+</dd></dl>
+
+<p>Definition at line <a class="el" href="INode_8h_source.html#l00229">229</a> of file <a class="el" href="INode_8h_source.html">INode.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; {</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keyword">auto</span> node = <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a96a99fa56a2b088691ecad5a0cf6e54d">GetQualifier</a>( nameSpace, nameSpaceLength, name, nameLength );</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToArrayNode();</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a>();</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; }</div><div class="ttc" id="namespaceAdobeXMPCore_html_a4ea338a9eed923abf6aba47a27926a0f"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">AdobeXMPCore::spcIArrayNode</a></div><div class="ttdeci">shared_ptr&lt; const IArrayNode &gt; spcIArrayNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00114">XMPCoreFwdDeclarations.h:114</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_a96a99fa56a2b088691ecad5a0cf6e54d"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a96a99fa56a2b088691ecad5a0cf6e54d">AdobeXMPCore::INode_v1::GetQualifier</a></div><div class="ttdeci">XMP_PRIVATE spcINode GetQualifier(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </div><div class="ttdoc">Gets the qualifier of the node having specified namespace and name. </div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00158">INode.h:158</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a5a2e68d1345ed6ca2e5d1bfada42b13f"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a> AdobeXMPCore::INode_v1::GetArrayQualifier </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>nameSpace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameSpaceLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameLength</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="INode_8h_source.html#l00235">235</a> of file <a class="el" href="INode_8h_source.html">INode.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; {</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keyword">auto</span> node = <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a96a99fa56a2b088691ecad5a0cf6e54d">GetQualifier</a>( nameSpace, nameSpaceLength, name, nameLength );</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToArrayNode();</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a>();</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; }</div><div class="ttc" id="namespaceAdobeXMPCore_html_a24e8e82d63d879d77408ce5c7e30c609"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">AdobeXMPCore::spIArrayNode</a></div><div class="ttdeci">shared_ptr&lt; IArrayNode &gt; spIArrayNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00113">XMPCoreFwdDeclarations.h:113</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_a96a99fa56a2b088691ecad5a0cf6e54d"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a96a99fa56a2b088691ecad5a0cf6e54d">AdobeXMPCore::INode_v1::GetQualifier</a></div><div class="ttdeci">XMP_PRIVATE spcINode GetQualifier(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </div><div class="ttdoc">Gets the qualifier of the node having specified namespace and name. </div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00158">INode.h:158</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a2447e6ea34adbe073a639c703015db90"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL AdobeXMPCore::INode_v1::GetIndex </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Returns the index of the node in case it is an array item. </p>
+<dl class="section return"><dt>Returns</dt><dd>The index of the node, in case it is an array item, otherwise returns 0. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a68350da5edc0668811b9bb890d5777b9"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL AdobeXMPCore::INode_v1::GetName </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Gets the local name of the node. </p>
+<dl class="section return"><dt>Returns</dt><dd>a shared pointer to const #AdobeXMPCommon::IUTF8String representing the name of the node. </dd></dl>
+
+<p>Referenced by <a class="el" href="IMetadata_8h_source.html#l00124">AdobeXMPCore::IMetadata_v1::~IMetadata_v1()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2e8319347c3b01638027b4abbe72fda6"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL AdobeXMPCore::INode_v1::GetNameSpace </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Gets the name space of the node. </p>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to const #AdobeXMPCommon::IUTF8String representing the name space of the node. </dd></dl>
+
+<p>Referenced by <a class="el" href="IMetadata_8h_source.html#l00124">AdobeXMPCore::IMetadata_v1::~IMetadata_v1()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6d9067d66571727b622ffccade5225f0"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL AdobeXMPCore::INode_v1::GetNodeType </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Gets the node type of the node. </p>
+<dl class="section return"><dt>Returns</dt><dd>An object of type #eNodeType indicating the type of the node. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="aee7e1f35ac174874234ba5e913a6bfaa"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">spcINode</a> AdobeXMPCore::INode_v1::GetParent </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Gets the parent node of the node. </p>
+<dl class="section return"><dt>Returns</dt><dd>Either a const or non const pointer to INode interface. </dd>
+<dd>
+A shared pointer to either a const or non const #AdobeXMPCore::INode representing the parent of the node. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Returns an invalid shared pointer in case the node is a root node or it is not part of tree. </dd></dl>
+
+<p>Definition at line <a class="el" href="INode_8h_source.html#l00073">73</a> of file <a class="el" href="INode_8h_source.html">INode.h</a>.</p>
+
+<p>References <a class="el" href="XMPCommonDefines_8h_source.html#l00117">__NOTHROW__</a>.</p>
+
+<p>Referenced by <a class="el" href="IMetadata_8h_source.html#l00124">AdobeXMPCore::IMetadata_v1::~IMetadata_v1()</a>.</p>
+<div class="fragment"><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; {</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> INode_v1 * <span class="keyword">&gt;</span>( this )-&gt;<a class="code" href="classAdobeXMPCore_1_1INode__v1.html#aee7e1f35ac174874234ba5e913a6bfaa">GetParent</a>();</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; }</div><div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_aee7e1f35ac174874234ba5e913a6bfaa"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#aee7e1f35ac174874234ba5e913a6bfaa">AdobeXMPCore::INode_v1::GetParent</a></div><div class="ttdeci">XMP_PRIVATE spcINode GetParent() const </div><div class="ttdoc">Gets the parent node of the node. </div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00073">INode.h:73</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a4533c1d11fc2d32c166c9ce05fe01b3c"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL AdobeXMPCore::INode_v1::GetParent </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a47da5e5605d69d6d6ced761e7c39d24f"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL AdobeXMPCore::INode_v1::GetParentNodeType </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Gets the node type of the node's parent. </p>
+<dl class="section return"><dt>Returns</dt><dd>An object of type #eNodeType indicating the type of the node. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>#eNodeType::kNTNone is returned in case node has no parent. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a549f1adeea470827a6201b3b4c596f1e"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#aa54f5ed241da9437ad01c1047a199f56">spIPath</a> APICALL AdobeXMPCore::INode_v1::GetPath </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Gets the path of the node from the root of the metadata. </p>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to #AdobeXMPCore::IPath representing the path of the node. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a96a99fa56a2b088691ecad5a0cf6e54d"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">spcINode</a> AdobeXMPCore::INode_v1::GetQualifier </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>nameSpace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameSpaceLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameLength</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Gets the qualifier of the node having specified namespace and name. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpace</td><td>Pointer to a constant char buffer containing name space URI of the qualifier node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpaceLength</td><td>Number of characters in nameSpace. In case nameSpace is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Pointer to a constant char buffer containing local name of the qualifier node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameLength</td><td>Number of characters in name. In case name is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to either a const or const qualifier node. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>In case no qualifier exists with the specified nameSpace and name combination then an invalid shared pointer is returned. </dd></dl>
+
+<p>Definition at line <a class="el" href="INode_8h_source.html#l00158">158</a> of file <a class="el" href="INode_8h_source.html">INode.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; {</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> INode_v1 * <span class="keyword">&gt;</span>( this )-&gt;<a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a96a99fa56a2b088691ecad5a0cf6e54d">GetQualifier</a>( nameSpace, nameSpaceLength, name, nameLength );</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; }</div><div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_a96a99fa56a2b088691ecad5a0cf6e54d"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a96a99fa56a2b088691ecad5a0cf6e54d">AdobeXMPCore::INode_v1::GetQualifier</a></div><div class="ttdeci">XMP_PRIVATE spcINode GetQualifier(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </div><div class="ttdoc">Gets the qualifier of the node having specified namespace and name. </div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00158">INode.h:158</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a7701069162b4f677026624a5f2b3f788"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL AdobeXMPCore::INode_v1::GetQualifier </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>nameSpace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameSpaceLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameLength</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2866bcde949c37aeb72cdba8dddcac95"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL AdobeXMPCore::INode_v1::GetQualifierNodeType </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>nameSpace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameSpaceLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameLength</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Gets the type of the node's qualifier having specified namespace and name. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpace</td><td>Pointer to a constant char buffer containing name space URI of the qualifier node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpaceLength</td><td>Number of characters in nameSpace. In case nameSpace is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Pointer to a constant char buffer containing local name of the qualifier node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameLength</td><td>Number of characters in name. In case name is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>An object of type #eNodeType indicating the type of the node's qualifier. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>In case no qualifier exists with the specified nameSpace and name combination then an #eNodeType::kNTNode is returned. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a1524d74e397863cb9324838862f70d7b"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a> AdobeXMPCore::INode_v1::GetSimpleQualifier </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>nameSpace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameSpaceLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameLength</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Get the node's qualifier having specified name space and name as simple node. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpace</td><td>Pointer to a constant char buffer containing name space URI of the qualifier node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpaceLength</td><td>Number of characters in nameSpace. In case nameSpace is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Pointer to a constant char buffer containing local name of the qualifier node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameLength</td><td>Number of characters in name. In case name is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to const or non const #ISimpleNode object containing qualifier. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>In case no qualifier exists with the specified nameSpace and name combination then an invalid shared pointer is returned. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
+<li>a qualifier exists with the specified nameSpace and name combination but is not a simple node. </li>
+</ul>
+</dd></dl>
+
+<p>Definition at line <a class="el" href="INode_8h_source.html#l00177">177</a> of file <a class="el" href="INode_8h_source.html">INode.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; {</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keyword">auto</span> node = <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a96a99fa56a2b088691ecad5a0cf6e54d">GetQualifier</a>( nameSpace, nameSpaceLength, name, nameLength );</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToSimpleNode();</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a>();</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; }</div><div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_a96a99fa56a2b088691ecad5a0cf6e54d"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a96a99fa56a2b088691ecad5a0cf6e54d">AdobeXMPCore::INode_v1::GetQualifier</a></div><div class="ttdeci">XMP_PRIVATE spcINode GetQualifier(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </div><div class="ttdoc">Gets the qualifier of the node having specified namespace and name. </div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00158">INode.h:158</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a4cb671d44948c7505c33431ec12f6c1f"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">AdobeXMPCore::spcISimpleNode</a></div><div class="ttdeci">shared_ptr&lt; const ISimpleNode &gt; spcISimpleNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00078">XMPCoreFwdDeclarations.h:78</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a2831fe03981afd9af12e775bda89361e"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a> AdobeXMPCore::INode_v1::GetSimpleQualifier </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>nameSpace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameSpaceLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameLength</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="INode_8h_source.html#l00183">183</a> of file <a class="el" href="INode_8h_source.html">INode.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; {</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keyword">auto</span> node = <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a96a99fa56a2b088691ecad5a0cf6e54d">GetQualifier</a>( nameSpace, nameSpaceLength, name, nameLength );</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToSimpleNode();</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a>();</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; }</div><div class="ttc" id="namespaceAdobeXMPCore_html_ab20ecb8d094c1dd81cb278370b746343"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">AdobeXMPCore::spISimpleNode</a></div><div class="ttdeci">shared_ptr&lt; ISimpleNode &gt; spISimpleNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00077">XMPCoreFwdDeclarations.h:77</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_a96a99fa56a2b088691ecad5a0cf6e54d"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a96a99fa56a2b088691ecad5a0cf6e54d">AdobeXMPCore::INode_v1::GetQualifier</a></div><div class="ttdeci">XMP_PRIVATE spcINode GetQualifier(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </div><div class="ttdoc">Gets the qualifier of the node having specified namespace and name. </div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00158">INode.h:158</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a844a40cd69e0d87226ce1146d733edd6"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a> AdobeXMPCore::INode_v1::GetStructureQualifier </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>nameSpace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameSpaceLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameLength</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Get the node's qualifier having specified name space and name as structure node. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpace</td><td>Pointer to a constant char buffer containing name space URI of the qualifier node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpaceLength</td><td>Number of characters in nameSpace. In case nameSpace is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Pointer to a constant char buffer containing local name of the qualifier node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameLength</td><td>Number of characters in name. In case name is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to const or non const #IStructureNode object containing qualifier. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>In case no qualifier exists with the specified nameSpace and name combination then an invalid shared pointer is returned. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
+<li>a qualifier exists with the specified nameSpace and name combination but is not a structure node. </li>
+</ul>
+</dd></dl>
+
+<p>Definition at line <a class="el" href="INode_8h_source.html#l00203">203</a> of file <a class="el" href="INode_8h_source.html">INode.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; {</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keyword">auto</span> node = <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a96a99fa56a2b088691ecad5a0cf6e54d">GetQualifier</a>( nameSpace, nameSpaceLength, name, nameLength );</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToStructureNode();</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a>();</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; }</div><div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_a96a99fa56a2b088691ecad5a0cf6e54d"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a96a99fa56a2b088691ecad5a0cf6e54d">AdobeXMPCore::INode_v1::GetQualifier</a></div><div class="ttdeci">XMP_PRIVATE spcINode GetQualifier(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </div><div class="ttdoc">Gets the qualifier of the node having specified namespace and name. </div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00158">INode.h:158</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ab5807ab783087243a3676a19ad6f9b90"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">AdobeXMPCore::spcIStructureNode</a></div><div class="ttdeci">shared_ptr&lt; const IStructureNode &gt; spcIStructureNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00102">XMPCoreFwdDeclarations.h:102</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a4fb3c837b8c28501b2e7a3376a2cf382"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a> AdobeXMPCore::INode_v1::GetStructureQualifier </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>nameSpace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameSpaceLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameLength</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="INode_8h_source.html#l00209">209</a> of file <a class="el" href="INode_8h_source.html">INode.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; {</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keyword">auto</span> node = <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a96a99fa56a2b088691ecad5a0cf6e54d">GetQualifier</a>( nameSpace, nameSpaceLength, name, nameLength );</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToStructureNode();</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a>();</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; }</div><div class="ttc" id="namespaceAdobeXMPCore_html_a957c57fcbb47c704fc5c31cf36dcbde7"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">AdobeXMPCore::spIStructureNode</a></div><div class="ttdeci">shared_ptr&lt; IStructureNode &gt; spIStructureNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00101">XMPCoreFwdDeclarations.h:101</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_a96a99fa56a2b088691ecad5a0cf6e54d"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a96a99fa56a2b088691ecad5a0cf6e54d">AdobeXMPCore::INode_v1::GetQualifier</a></div><div class="ttdeci">XMP_PRIVATE spcINode GetQualifier(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </div><div class="ttdoc">Gets the qualifier of the node having specified namespace and name. </div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00158">INode.h:158</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="ab78ba3aaadf4b0109e610505e753de50"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual bool APICALL AdobeXMPCore::INode_v1::HasChanged </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Returns the status about any change done to the node or its children or qualifiers. returns a bool value indicating whether some changes have been performed on the node or its children or qualifiers. for a simple node, true will be returned in scenarios like when the node's value or qualifiers are modified. for an array node or a structure node, true will be returned in scenarios like when the node's children or the node's qualifiers are modified. </p>
+
+</div>
+</div>
+<a class="anchor" id="aa288c34c9bccb73ae73b653f3c769ade"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual bool APICALL AdobeXMPCore::INode_v1::HasContent </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Returns whether the node has any content or not. return A bool value indicating the presence of contents in the node apart from qualifiers. </p>
+
+</div>
+</div>
+<a class="anchor" id="adfd1ce7bd20268240769f8a6a405a8ee"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual bool APICALL AdobeXMPCore::INode_v1::HasQualifiers </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Indicates whether the node has any qualifiers associated with it. </p>
+<dl class="section return"><dt>Returns</dt><dd>A bool value; true in case the node has any qualifier associated with it, false otherwise. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a5a5e6dd9a58a288f20fd0a667a30a2ae"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCore::INode_v1::InsertQualifier </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;&#160;</td>
+ <td class="paramname"><em>node</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Inserts a given qualifier node. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">node</td><td>Shared pointer to an object of #AdobeXMPCore::INode representing the qualifier node to be inserted. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in following cases:<ul>
+<li>given qualifier node is invalid.</li>
+<li>given qualifier node is already a child of some other node.</li>
+<li>there exists a qualifier node with the same nameSpace and name combination.</li>
+<li>parent or any ancestor node is a qualifier node. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a3289deed9715f661f5f588dc38642baa"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual bool APICALL AdobeXMPCore::INode_v1::IsArrayItem </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Indicates whether the node is a direct child of an array node. </p>
+<dl class="section return"><dt>Returns</dt><dd>A bool value; true in case the node is a direct child of an array node, false otherwise. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a5075ad988ba61e055b6ee6bbeaf25e25"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual bool APICALL AdobeXMPCore::INode_v1::IsEmpty </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Returns whether the node is empty. return A bool value indicating whether the contents and qualifiers of a node are empty. </p>
+
+</div>
+</div>
+<a class="anchor" id="a0d545f6b4b2b9760b63c902317c43a94"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual bool APICALL AdobeXMPCore::INode_v1::IsQualifierNode </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Indicates whether the node is a qualifier node. </p>
+<dl class="section return"><dt>Returns</dt><dd>A bool value; true in case the node is a qualifier node, false otherwise. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="af898813d17af58fb1a828d92a74d7dd3"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL AdobeXMPCore::INode_v1::QualifiersCount </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Gets the count of the qualifiers attached with the node. </p>
+<dl class="section return"><dt>Returns</dt><dd>An object of type #<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a> containing the count of qualifiers attached with the node. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a9972ca54948952083a930166448c05c0"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab423c366f29043e79694f805bceddb56">spcINodeIterator</a> AdobeXMPCore::INode_v1::QualifiersIterator </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Get an iterator object to iterate over all the qualifier nodes attached to the composite node. </p><dl class="section return"><dt>Returns</dt><dd>A shared pointer to a const or non const #INodeIterator object. </dd></dl>
+
+<p>Definition at line <a class="el" href="INode_8h_source.html#l00130">130</a> of file <a class="el" href="INode_8h_source.html">INode.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; {</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> INode_v1 * <span class="keyword">&gt;</span>( this )-&gt;<a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a9972ca54948952083a930166448c05c0">QualifiersIterator</a>();</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; }</div><div class="ttc" id="classAdobeXMPCore_1_1INode__v1_html_a9972ca54948952083a930166448c05c0"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a9972ca54948952083a930166448c05c0">AdobeXMPCore::INode_v1::QualifiersIterator</a></div><div class="ttdeci">XMP_PRIVATE spcINodeIterator QualifiersIterator() const </div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00130">INode.h:130</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="aa168f37bc38763df55fb1022d55886bd"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#a5386a735d9eb66d5859e4657dfeebb7c">spINodeIterator</a> APICALL AdobeXMPCore::INode_v1::QualifiersIterator </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a87f03e9924418ae5f7b6fa63def6eee8"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL AdobeXMPCore::INode_v1::RemoveQualifier </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>nameSpace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameSpaceLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameLength</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Removes the qualifier node with the specified nameSpace and name. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpace</td><td>Pointer to a constant char buffer containing name space URI of the qualifier node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpaceLength</td><td>Number of characters in nameSpace. In case nameSpace is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Pointer to a constant char buffer containing local name of the qualifier node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameLength</td><td>Number of characters in name. In case name is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to #AdobeXMPCore::INode object representing qualifier node which is removed from the node. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>In case no qualifier node exists at the given index an invalid shared pointer is returned. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a5a2692b8281984d9fe6de6c169332f2c"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL AdobeXMPCore::INode_v1::ReplaceQualifier </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;&#160;</td>
+ <td class="paramname"><em>node</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Replaces a given qualifier node. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">node</td><td>Shared pointer to an object of #AdobeXMPCore::INode representing the qualifier node to be inserted. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to a qualifier node which is being replaced. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in following cases:<ol type="1">
+<li>given qualifier node is invalid.</li>
+<li>given qualifier node is already a child of some other node.</li>
+<li>there exists no qualifier node with the same nameSpace and name combination. </li>
+</ol>
+</dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Warning is raised in case the type of the old existing node is not same as that of new node. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="aa087d2f94e42fdd5ece1bd22dfea66d5"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCore::INode_v1::SetName </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameLength</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Changes the local name of the node. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Pointer to a constant char buffer containing local name of the node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameLength</td><td>Number of characters in name. In case name is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error can be thrown in case<ul>
+<li>name is NULL pointer or its contents are empty</li>
+<li>name is not valid XML property name.</li>
+<li>Sibling with the same combination of name and nameSpace is present. </li>
+</ul>
+</dd></dl>
+
+<p>Referenced by <a class="el" href="IMetadata_8h_source.html#l00124">AdobeXMPCore::IMetadata_v1::~IMetadata_v1()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a55c6097b36412f9facc8a4cf7e898186"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCore::INode_v1::SetNameSpace </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>nameSpace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameSpaceLength</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Changes the name space of the node. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpace</td><td>Pointer to a constant char buffer containing name space URI of the node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpaceLength</td><td>Number of characters in nameSpace. In case nameSpace is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error can be thrown in case<ul>
+<li>nameSpace is NULL pointer or its contents are empty</li>
+<li>Sibling with the same combination of name and nameSpace is present. </li>
+</ul>
+</dd></dl>
+
+<p>Referenced by <a class="el" href="IMetadata_8h_source.html#l00124">AdobeXMPCore::IMetadata_v1::~IMetadata_v1()</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/<a class="el" href="INode_8h_source.html">INode.h</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCore_1_1INode__v1.js b/docs/API/classAdobeXMPCore_1_1INode__v1.js
new file mode 100755
index 0000000..872df2b
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1INode__v1.js
@@ -0,0 +1,53 @@
+var classAdobeXMPCore_1_1INode__v1 =
+[
+ [ "eNodeType", "classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913", [
+ [ "kNTNone", "classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913aae32cc414cc7adaf3b2a1c375f2cb3bb", null ],
+ [ "kNTSimple", "classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a97e0c4fb69029d0d152c068c10736234", null ],
+ [ "kNTArray", "classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a60c6b4c3dfc99d8584866f5f18ff2610", null ],
+ [ "kNTStructure", "classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a7542b80b3b688cd3d210d62d12dbe471", null ],
+ [ "kNTAll", "classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a68bac77fd8140a60490eb78f0b533e21", null ]
+ ] ],
+ [ "~INode_v1", "classAdobeXMPCore_1_1INode__v1.html#affdbed044179bbde65ffc28b20e28ecb", null ],
+ [ "AcknowledgeChanges", "classAdobeXMPCore_1_1INode__v1.html#a673b6b4d69b2c9d85f2fa440d413ace3", null ],
+ [ "Clear", "classAdobeXMPCore_1_1INode__v1.html#a4b615b0eef081f3c23385f28728aa462", null ],
+ [ "Clone", "classAdobeXMPCore_1_1INode__v1.html#a2d613694adcedb569145aff06d0bc595", null ],
+ [ "ConvertToArrayNode", "classAdobeXMPCore_1_1INode__v1.html#af180be62ecd26edf90df0fe3ea75941e", null ],
+ [ "ConvertToArrayNode", "classAdobeXMPCore_1_1INode__v1.html#a0d67ad7708fb6f007ea1152b79e65f49", null ],
+ [ "ConvertToMetadata", "classAdobeXMPCore_1_1INode__v1.html#a08f9ed4dee6c899f65eb51e3d7f9858d", null ],
+ [ "ConvertToMetadata", "classAdobeXMPCore_1_1INode__v1.html#a72dc534e1af718599ac185563a02612a", null ],
+ [ "ConvertToSimpleNode", "classAdobeXMPCore_1_1INode__v1.html#aeb9797165d96d06998de79dd19a9f846", null ],
+ [ "ConvertToSimpleNode", "classAdobeXMPCore_1_1INode__v1.html#ad8e7ef140cb5ff094789abfcc879c94b", null ],
+ [ "ConvertToStructureNode", "classAdobeXMPCore_1_1INode__v1.html#a5ea317fcd59694184089a9774c866b22", null ],
+ [ "ConvertToStructureNode", "classAdobeXMPCore_1_1INode__v1.html#ad5f62a4ae9a9630c8106a04bd0c2a0a3", null ],
+ [ "GetArrayQualifier", "classAdobeXMPCore_1_1INode__v1.html#ab55c9dad49840d58a1c2c16b9f1962ad", null ],
+ [ "GetArrayQualifier", "classAdobeXMPCore_1_1INode__v1.html#a5a2e68d1345ed6ca2e5d1bfada42b13f", null ],
+ [ "GetIndex", "classAdobeXMPCore_1_1INode__v1.html#a2447e6ea34adbe073a639c703015db90", null ],
+ [ "GetName", "classAdobeXMPCore_1_1INode__v1.html#a68350da5edc0668811b9bb890d5777b9", null ],
+ [ "GetNameSpace", "classAdobeXMPCore_1_1INode__v1.html#a2e8319347c3b01638027b4abbe72fda6", null ],
+ [ "GetNodeType", "classAdobeXMPCore_1_1INode__v1.html#a6d9067d66571727b622ffccade5225f0", null ],
+ [ "GetParent", "classAdobeXMPCore_1_1INode__v1.html#aee7e1f35ac174874234ba5e913a6bfaa", null ],
+ [ "GetParent", "classAdobeXMPCore_1_1INode__v1.html#a4533c1d11fc2d32c166c9ce05fe01b3c", null ],
+ [ "GetParentNodeType", "classAdobeXMPCore_1_1INode__v1.html#a47da5e5605d69d6d6ced761e7c39d24f", null ],
+ [ "GetPath", "classAdobeXMPCore_1_1INode__v1.html#a549f1adeea470827a6201b3b4c596f1e", null ],
+ [ "GetQualifier", "classAdobeXMPCore_1_1INode__v1.html#a96a99fa56a2b088691ecad5a0cf6e54d", null ],
+ [ "GetQualifier", "classAdobeXMPCore_1_1INode__v1.html#a7701069162b4f677026624a5f2b3f788", null ],
+ [ "GetQualifierNodeType", "classAdobeXMPCore_1_1INode__v1.html#a2866bcde949c37aeb72cdba8dddcac95", null ],
+ [ "GetSimpleQualifier", "classAdobeXMPCore_1_1INode__v1.html#a1524d74e397863cb9324838862f70d7b", null ],
+ [ "GetSimpleQualifier", "classAdobeXMPCore_1_1INode__v1.html#a2831fe03981afd9af12e775bda89361e", null ],
+ [ "GetStructureQualifier", "classAdobeXMPCore_1_1INode__v1.html#a844a40cd69e0d87226ce1146d733edd6", null ],
+ [ "GetStructureQualifier", "classAdobeXMPCore_1_1INode__v1.html#a4fb3c837b8c28501b2e7a3376a2cf382", null ],
+ [ "HasChanged", "classAdobeXMPCore_1_1INode__v1.html#ab78ba3aaadf4b0109e610505e753de50", null ],
+ [ "HasContent", "classAdobeXMPCore_1_1INode__v1.html#aa288c34c9bccb73ae73b653f3c769ade", null ],
+ [ "HasQualifiers", "classAdobeXMPCore_1_1INode__v1.html#adfd1ce7bd20268240769f8a6a405a8ee", null ],
+ [ "InsertQualifier", "classAdobeXMPCore_1_1INode__v1.html#a5a5e6dd9a58a288f20fd0a667a30a2ae", null ],
+ [ "IsArrayItem", "classAdobeXMPCore_1_1INode__v1.html#a3289deed9715f661f5f588dc38642baa", null ],
+ [ "IsEmpty", "classAdobeXMPCore_1_1INode__v1.html#a5075ad988ba61e055b6ee6bbeaf25e25", null ],
+ [ "IsQualifierNode", "classAdobeXMPCore_1_1INode__v1.html#a0d545f6b4b2b9760b63c902317c43a94", null ],
+ [ "QualifiersCount", "classAdobeXMPCore_1_1INode__v1.html#af898813d17af58fb1a828d92a74d7dd3", null ],
+ [ "QualifiersIterator", "classAdobeXMPCore_1_1INode__v1.html#a9972ca54948952083a930166448c05c0", null ],
+ [ "QualifiersIterator", "classAdobeXMPCore_1_1INode__v1.html#aa168f37bc38763df55fb1022d55886bd", null ],
+ [ "RemoveQualifier", "classAdobeXMPCore_1_1INode__v1.html#a87f03e9924418ae5f7b6fa63def6eee8", null ],
+ [ "ReplaceQualifier", "classAdobeXMPCore_1_1INode__v1.html#a5a2692b8281984d9fe6de6c169332f2c", null ],
+ [ "SetName", "classAdobeXMPCore_1_1INode__v1.html#aa087d2f94e42fdd5ece1bd22dfea66d5", null ],
+ [ "SetNameSpace", "classAdobeXMPCore_1_1INode__v1.html#a55c6097b36412f9facc8a4cf7e898186", null ]
+]; \ No newline at end of file
diff --git a/docs/API/classAdobeXMPCore_1_1INode__v1.png b/docs/API/classAdobeXMPCore_1_1INode__v1.png
new file mode 100755
index 0000000..d2ce3d7
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1INode__v1.png
Binary files differ
diff --git a/docs/API/classAdobeXMPCore_1_1IPathSegment__v1-members.html b/docs/API/classAdobeXMPCore_1_1IPathSegment__v1-members.html
new file mode 100755
index 0000000..9bd4258
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1IPathSegment__v1-members.html
@@ -0,0 +1,78 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCore_1_1IPathSegment__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">AdobeXMPCore::IPathSegment_v1 Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html">AdobeXMPCore::IPathSegment_v1</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc">Acquire</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#ab94dc022fdf9edad3423c8f281f95674">CreateArrayIndexPathSegment</a>(const char *nameSpace, sizet nameSpaceLength, sizet index)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html">AdobeXMPCore::IPathSegment_v1</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a78df7478295fed763eadac0cefb79e1b">CreatePropertyPathSegment</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html">AdobeXMPCore::IPathSegment_v1</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a49da0c0bed14c7afb07d263570f09221">CreateQualifierPathSegment</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html">AdobeXMPCore::IPathSegment_v1</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a854506c44a7acfc0246709a6cd74638d">CreateQualifierSelectorPathSegment</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength, const char *value, sizet valueLength)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html">AdobeXMPCore::IPathSegment_v1</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9">ePathSegmentType</a> enum name</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html">AdobeXMPCore::IPathSegment_v1</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a6552774db8039b1ddc02491fc82b2699">GetIndex</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html">AdobeXMPCore::IPathSegment_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070">GetInterfacePointer</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a9c7e02cccca4d74467483ab442871376">GetName</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html">AdobeXMPCore::IPathSegment_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#ae6726749b73c1c99caa05e65138f9a64">GetNameSpace</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html">AdobeXMPCore::IPathSegment_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a0febe9ac58c1a2a3e0a573f1bb9c25c3">GetType</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html">AdobeXMPCore::IPathSegment_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#abc957b6cdedc2b4feb8943b42d2d3fe9">GetValue</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html">AdobeXMPCore::IPathSegment_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9a6c99b2ecc364a71db39b2e9ff0a94880">kPSTAll</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html">AdobeXMPCore::IPathSegment_v1</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9ae86feb38a46c4fb2ecb35bb651dca161">kPSTArrayIndex</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html">AdobeXMPCore::IPathSegment_v1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9ab178c4df00dc4b10c7c5937d82499a84">kPSTNone</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html">AdobeXMPCore::IPathSegment_v1</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9ac351f884bf338c15a4a619e89216e2b9">kPSTProperty</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html">AdobeXMPCore::IPathSegment_v1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9a8d1e54d4a1f97847f03eb7ff36c263a7">kPSTQualifier</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html">AdobeXMPCore::IPathSegment_v1</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9a2eb4a4d89f26c720eb393eb56997ba09">kPSTQualifierSelector</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html">AdobeXMPCore::IPathSegment_v1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3">Release</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#afcb42109aed83c3b0c133bc413388037">AdobeXMPCommon::REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f">AdobeXMPCommon::IVersionable::REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a1ef63ec40233a30d4ec9f165e5332a43">~IPathSegment_v1</a>() __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html">AdobeXMPCore::IPathSegment_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31">~ISharedObject</a>() __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCore_1_1IPathSegment__v1.html b/docs/API/classAdobeXMPCore_1_1IPathSegment__v1.html
new file mode 100755
index 0000000..5a304cd
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1IPathSegment__v1.html
@@ -0,0 +1,623 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>AdobeXMPCore::IPathSegment_v1 Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCore_1_1IPathSegment__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pub-types">Public Types</a> &#124;
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="classAdobeXMPCore_1_1IPathSegment__v1-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">AdobeXMPCore::IPathSegment_v1 Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Version1 of the interface that represents one segment in a path to a node into the XMP tree.
+ <a href="classAdobeXMPCore_1_1IPathSegment__v1.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="IPathSegment_8h_source.html">IPathSegment.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for AdobeXMPCore::IPathSegment_v1:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classAdobeXMPCore_1_1IPathSegment__v1.png" usemap="#AdobeXMPCore::IPathSegment_5Fv1_map" alt=""/>
+ <map id="AdobeXMPCore::IPathSegment_5Fv1_map" name="AdobeXMPCore::IPathSegment_v1_map">
+<area href="classAdobeXMPCommon_1_1ISharedObject.html" title="Interface that serves as the base interface of all the externally exposed interfaces. " alt="AdobeXMPCommon::ISharedObject" shape="rect" coords="0,0,212,24"/>
+<area href="classAdobeXMPCommon_1_1IVersionable.html" title="Interface that serves as the base interface for all the externally exposed interfaces which needs to ..." alt="AdobeXMPCommon::IVersionable" shape="rect" coords="222,0,434,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr class="memitem:a8a9f850adf6f3f510298df13896b76b9"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9">ePathSegmentType</a> { <br />
+&#160;&#160;<a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9ab178c4df00dc4b10c7c5937d82499a84">kPSTNone</a> = 0,
+<a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9ac351f884bf338c15a4a619e89216e2b9">kPSTProperty</a> = 1,
+<a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9ae86feb38a46c4fb2ecb35bb651dca161">kPSTArrayIndex</a> = 1 &lt;&lt; 1,
+<a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9a8d1e54d4a1f97847f03eb7ff36c263a7">kPSTQualifier</a> = 1 &lt;&lt; 2,
+<br />
+&#160;&#160;<a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9a2eb4a4d89f26c720eb393eb56997ba09">kPSTQualifierSelector</a> = 1 &lt;&lt; 3,
+<a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9a6c99b2ecc364a71db39b2e9ff0a94880">kPSTAll</a> = kAllBits
+<br />
+ }<tr class="memdesc:a8a9f850adf6f3f510298df13896b76b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">This enumeration represents the types of a path segment. <a href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:a8a9f850adf6f3f510298df13896b76b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:ae6726749b73c1c99caa05e65138f9a64"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#ae6726749b73c1c99caa05e65138f9a64">GetNameSpace</a> () const =0</td></tr>
+<tr class="memdesc:ae6726749b73c1c99caa05e65138f9a64"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the name space of the path segment. <a href="#ae6726749b73c1c99caa05e65138f9a64">More...</a><br /></td></tr>
+<tr class="separator:ae6726749b73c1c99caa05e65138f9a64"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9c7e02cccca4d74467483ab442871376"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a9c7e02cccca4d74467483ab442871376">GetName</a> () const =0</td></tr>
+<tr class="memdesc:a9c7e02cccca4d74467483ab442871376"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the name of the path segment. <a href="#a9c7e02cccca4d74467483ab442871376">More...</a><br /></td></tr>
+<tr class="separator:a9c7e02cccca4d74467483ab442871376"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0febe9ac58c1a2a3e0a573f1bb9c25c3"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9">ePathSegmentType</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a0febe9ac58c1a2a3e0a573f1bb9c25c3">GetType</a> () const =0</td></tr>
+<tr class="memdesc:a0febe9ac58c1a2a3e0a573f1bb9c25c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the type of the path segment. <a href="#a0febe9ac58c1a2a3e0a573f1bb9c25c3">More...</a><br /></td></tr>
+<tr class="separator:a0febe9ac58c1a2a3e0a573f1bb9c25c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6552774db8039b1ddc02491fc82b2699"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a6552774db8039b1ddc02491fc82b2699">GetIndex</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a6552774db8039b1ddc02491fc82b2699"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the index of the array type path segment. <a href="#a6552774db8039b1ddc02491fc82b2699">More...</a><br /></td></tr>
+<tr class="separator:a6552774db8039b1ddc02491fc82b2699"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abc957b6cdedc2b4feb8943b42d2d3fe9"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#abc957b6cdedc2b4feb8943b42d2d3fe9">GetValue</a> () const =0</td></tr>
+<tr class="memdesc:abc957b6cdedc2b4feb8943b42d2d3fe9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the value of the qualifier type path segment. <a href="#abc957b6cdedc2b4feb8943b42d2d3fe9">More...</a><br /></td></tr>
+<tr class="separator:abc957b6cdedc2b4feb8943b42d2d3fe9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1ISharedObject')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td></tr>
+<tr class="memitem:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc">Acquire</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the clients of the object to indicate that he has acquired the shared ownership of the object. <a href="#ab90d4ec1fcd975a7ac62dcb866335cdc">More...</a><br /></td></tr>
+<tr class="separator:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3">Release</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the clients of the object to indicate he has released his shared ownership of the object. If this being the last client than this function should call Destroy to delete and release the memory. <a href="#abf5a54e09f87366170ea19c618f68bc3">More...</a><br /></td></tr>
+<tr class="separator:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
+<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
+<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a> ()</td></tr>
+<tr class="memdesc:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to an interface object implementing the requested version. <a href="#ad6539461695decfaea8a44798db51e54">More...</a><br /></td></tr>
+<tr class="separator:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
+<tr class="memitem:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> const requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070">GetInterfacePointer</a> () const </td></tr>
+<tr class="memdesc:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to a const interface object implementing the requested version. <a href="#ab93a940e2946c14a76ebbd9552cab070">More...</a><br /></td></tr>
+<tr class="separator:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr class="memitem:a78df7478295fed763eadac0cefb79e1b"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a98ce40154ef1c1d92f2077c8211f2a9c">spcIPathSegment</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a78df7478295fed763eadac0cefb79e1b">CreatePropertyPathSegment</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)</td></tr>
+<tr class="memdesc:a78df7478295fed763eadac0cefb79e1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a normal property path segment.These are essentially all properties (simple, struct and arrays). <a href="#a78df7478295fed763eadac0cefb79e1b">More...</a><br /></td></tr>
+<tr class="separator:a78df7478295fed763eadac0cefb79e1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab94dc022fdf9edad3423c8f281f95674"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a98ce40154ef1c1d92f2077c8211f2a9c">spcIPathSegment</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#ab94dc022fdf9edad3423c8f281f95674">CreateArrayIndexPathSegment</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> index)</td></tr>
+<tr class="memdesc:ab94dc022fdf9edad3423c8f281f95674"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an array index path segment that denotes a specific element of an array. <a href="#ab94dc022fdf9edad3423c8f281f95674">More...</a><br /></td></tr>
+<tr class="separator:ab94dc022fdf9edad3423c8f281f95674"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a49da0c0bed14c7afb07d263570f09221"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a98ce40154ef1c1d92f2077c8211f2a9c">spcIPathSegment</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a49da0c0bed14c7afb07d263570f09221">CreateQualifierPathSegment</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)</td></tr>
+<tr class="memdesc:a49da0c0bed14c7afb07d263570f09221"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a Qualifier path segment, which behaves like a normal property. <a href="#a49da0c0bed14c7afb07d263570f09221">More...</a><br /></td></tr>
+<tr class="separator:a49da0c0bed14c7afb07d263570f09221"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a854506c44a7acfc0246709a6cd74638d"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a98ce40154ef1c1d92f2077c8211f2a9c">spcIPathSegment</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a854506c44a7acfc0246709a6cd74638d">CreateQualifierSelectorPathSegment</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength, const char *value, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> valueLength)</td></tr>
+<tr class="memdesc:a854506c44a7acfc0246709a6cd74638d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a path segment that selects a specific qualifier by its value. For example a specific language in a alternative array of languages. <a href="#a854506c44a7acfc0246709a6cd74638d">More...</a><br /></td></tr>
+<tr class="separator:a854506c44a7acfc0246709a6cd74638d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:a1ef63ec40233a30d4ec9f165e5332a43"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a1ef63ec40233a30d4ec9f165e5332a43">~IPathSegment_v1</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:a1ef63ec40233a30d4ec9f165e5332a43"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1ISharedObject')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td></tr>
+<tr class="memitem:a5869ff89d0b7dd0a7b525401a1d57b31 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31">~ISharedObject</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="separator:a5869ff89d0b7dd0a7b525401a1d57b31 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afcb42109aed83c3b0c133bc413388037 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#afcb42109aed83c3b0c133bc413388037">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:afcb42109aed83c3b0c133bc413388037 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
+<tr class="memitem:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a> ()</td></tr>
+<tr class="separator:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Version1 of the interface that represents one segment in a path to a node into the XMP tree. </p>
+<p>Provides all the functions to access properties of the path segment and factory functions to create various kinds of path segments. </p><dl class="section attention"><dt>Attention</dt><dd>Not thread safe and not required as only read only access is provided to client. </dd></dl>
+
+<p>Definition at line <a class="el" href="IPathSegment_8h_source.html#l00024">24</a> of file <a class="el" href="IPathSegment_8h_source.html">IPathSegment.h</a>.</p>
+</div><h2 class="groupheader">Member Enumeration Documentation</h2>
+<a class="anchor" id="a8a9f850adf6f3f510298df13896b76b9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9">AdobeXMPCore::IPathSegment_v1::ePathSegmentType</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>This enumeration represents the types of a path segment. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a8a9f850adf6f3f510298df13896b76b9ab178c4df00dc4b10c7c5937d82499a84"></a>kPSTNone&#160;</td><td class="fielddoc">
+<p>None type. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a8a9f850adf6f3f510298df13896b76b9ac351f884bf338c15a4a619e89216e2b9"></a>kPSTProperty&#160;</td><td class="fielddoc">
+<p>Any property that consists of namespace and a localName. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a8a9f850adf6f3f510298df13896b76b9ae86feb38a46c4fb2ecb35bb651dca161"></a>kPSTArrayIndex&#160;</td><td class="fielddoc">
+<p>An array index which does not have a namespace or localName itself. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a8a9f850adf6f3f510298df13896b76b9a8d1e54d4a1f97847f03eb7ff36c263a7"></a>kPSTQualifier&#160;</td><td class="fielddoc">
+<p>A qualifier of a property, also consists of namespace and localName. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a8a9f850adf6f3f510298df13896b76b9a2eb4a4d89f26c720eb393eb56997ba09"></a>kPSTQualifierSelector&#160;</td><td class="fielddoc">
+<p>Selects a specific qualifier by its value (e.g. specific language) </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a8a9f850adf6f3f510298df13896b76b9a6c99b2ecc364a71db39b2e9ff0a94880"></a>kPSTAll&#160;</td><td class="fielddoc">
+<p>Represents all property types. </p>
+</td></tr>
+</table>
+
+<p>Definition at line <a class="el" href="IPathSegment_8h_source.html#l00033">33</a> of file <a class="el" href="IPathSegment_8h_source.html">IPathSegment.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; {</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <a class="code" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9ab178c4df00dc4b10c7c5937d82499a84">kPSTNone</a> = 0,</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <a class="code" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9ac351f884bf338c15a4a619e89216e2b9">kPSTProperty</a> = 1,</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; </div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="code" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9ae86feb38a46c4fb2ecb35bb651dca161">kPSTArrayIndex</a> = 1 &lt;&lt; 1,</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; </div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <a class="code" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9a8d1e54d4a1f97847f03eb7ff36c263a7">kPSTQualifier</a> = 1 &lt;&lt; 2,</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; </div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <a class="code" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9a2eb4a4d89f26c720eb393eb56997ba09">kPSTQualifierSelector</a> = 1 &lt;&lt; 3,</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <a class="code" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9a6c99b2ecc364a71db39b2e9ff0a94880">kPSTAll</a> = <a class="code" href="namespaceAdobeXMPCommon.html#a3e31c8b25cbf95c42b8e439071bdf865">kAllBits</a></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; } <a class="code" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9">ePathSegmentType</a>;</div><div class="ttc" id="classAdobeXMPCore_1_1IPathSegment__v1_html_a8a9f850adf6f3f510298df13896b76b9ae86feb38a46c4fb2ecb35bb651dca161"><div class="ttname"><a href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9ae86feb38a46c4fb2ecb35bb651dca161">AdobeXMPCore::IPathSegment_v1::kPSTArrayIndex</a></div><div class="ttdoc">An array index which does not have a namespace or localName itself. </div><div class="ttdef"><b>Definition:</b> <a href="IPathSegment_8h_source.html#l00041">IPathSegment.h:41</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IPathSegment__v1_html_a8a9f850adf6f3f510298df13896b76b9a8d1e54d4a1f97847f03eb7ff36c263a7"><div class="ttname"><a href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9a8d1e54d4a1f97847f03eb7ff36c263a7">AdobeXMPCore::IPathSegment_v1::kPSTQualifier</a></div><div class="ttdoc">A qualifier of a property, also consists of namespace and localName. </div><div class="ttdef"><b>Definition:</b> <a href="IPathSegment_8h_source.html#l00044">IPathSegment.h:44</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IPathSegment__v1_html_a8a9f850adf6f3f510298df13896b76b9a6c99b2ecc364a71db39b2e9ff0a94880"><div class="ttname"><a href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9a6c99b2ecc364a71db39b2e9ff0a94880">AdobeXMPCore::IPathSegment_v1::kPSTAll</a></div><div class="ttdoc">Represents all property types. </div><div class="ttdef"><b>Definition:</b> <a href="IPathSegment_8h_source.html#l00050">IPathSegment.h:50</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IPathSegment__v1_html_a8a9f850adf6f3f510298df13896b76b9ac351f884bf338c15a4a619e89216e2b9"><div class="ttname"><a href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9ac351f884bf338c15a4a619e89216e2b9">AdobeXMPCore::IPathSegment_v1::kPSTProperty</a></div><div class="ttdoc">Any property that consists of namespace and a localName. </div><div class="ttdef"><b>Definition:</b> <a href="IPathSegment_8h_source.html#l00038">IPathSegment.h:38</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a3e31c8b25cbf95c42b8e439071bdf865"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a3e31c8b25cbf95c42b8e439071bdf865">AdobeXMPCommon::kAllBits</a></div><div class="ttdeci">static const uint32 kAllBits(0xFFFFFFFF)</div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IPathSegment__v1_html_a8a9f850adf6f3f510298df13896b76b9"><div class="ttname"><a href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9">AdobeXMPCore::IPathSegment_v1::ePathSegmentType</a></div><div class="ttdeci">ePathSegmentType</div><div class="ttdoc">This enumeration represents the types of a path segment. </div><div class="ttdef"><b>Definition:</b> <a href="IPathSegment_8h_source.html#l00033">IPathSegment.h:33</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IPathSegment__v1_html_a8a9f850adf6f3f510298df13896b76b9a2eb4a4d89f26c720eb393eb56997ba09"><div class="ttname"><a href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9a2eb4a4d89f26c720eb393eb56997ba09">AdobeXMPCore::IPathSegment_v1::kPSTQualifierSelector</a></div><div class="ttdoc">Selects a specific qualifier by its value (e.g. specific language) </div><div class="ttdef"><b>Definition:</b> <a href="IPathSegment_8h_source.html#l00047">IPathSegment.h:47</a></div></div>
+<div class="ttc" id="classAdobeXMPCore_1_1IPathSegment__v1_html_a8a9f850adf6f3f510298df13896b76b9ab178c4df00dc4b10c7c5937d82499a84"><div class="ttname"><a href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9ab178c4df00dc4b10c7c5937d82499a84">AdobeXMPCore::IPathSegment_v1::kPSTNone</a></div><div class="ttdoc">None type. </div><div class="ttdef"><b>Definition:</b> <a href="IPathSegment_8h_source.html#l00035">IPathSegment.h:35</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a1ef63ec40233a30d4ec9f165e5332a43"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual AdobeXMPCore::IPathSegment_v1::~IPathSegment_v1 </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Destructor </p>
+
+<p>Definition at line <a class="el" href="IPathSegment_8h_source.html#l00208">208</a> of file <a class="el" href="IPathSegment_8h_source.html">IPathSegment.h</a>.</p>
+
+<p>References <a class="el" href="XMPCommonDefines_8h_source.html#l00107">REQ_FRIEND_CLASS_DECLARATION</a>.</p>
+<div class="fragment"><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;{}</div></div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="ab94dc022fdf9edad3423c8f281f95674"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a98ce40154ef1c1d92f2077c8211f2a9c">spcIPathSegment</a> AdobeXMPCore::IPathSegment_v1::CreateArrayIndexPathSegment </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>nameSpace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameSpaceLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>index</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Creates an array index path segment that denotes a specific element of an array. </p>
+<p>Such segments do not have an own name and inherits the namespace from the Array property itself. </p><dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpace</td><td>Pointer to a constant char buffer containing name space URI of the property. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpaceLength</td><td>Number of characters in nameSpace. In case nameSpace is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>An object of type #AdobeXMP::sizet containting the index of the array element. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to const #IPathSegment. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Throws #AdobeXMP::pcIError in case<ul>
+<li>pointers to const char buffers are NULL,</li>
+<li>their content is empty. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a78df7478295fed763eadac0cefb79e1b"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a98ce40154ef1c1d92f2077c8211f2a9c">spcIPathSegment</a> AdobeXMPCore::IPathSegment_v1::CreatePropertyPathSegment </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>nameSpace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameSpaceLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameLength</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Creates a normal property path segment.These are essentially all properties (simple, struct and arrays). </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpace</td><td>Pointer to a constant char buffer containing name space URI of the property. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpaceLength</td><td>Number of characters in nameSpace. In case nameSpace is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Pointer to a constant char buffer containing local name of the property. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameLength</td><td>Number of characters in name. In case name is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to const #IPathSegment. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Throws #<a class="el" href="namespaceAdobeXMPCommon.html#a0e0c89c232b777fb332e0ddc10b65fc2">AdobeXMPCommon::pcIError</a> in case<ul>
+<li>pointers to const char buffers are NULL,</li>
+<li>their content is empty. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a49da0c0bed14c7afb07d263570f09221"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a98ce40154ef1c1d92f2077c8211f2a9c">spcIPathSegment</a> AdobeXMPCore::IPathSegment_v1::CreateQualifierPathSegment </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>nameSpace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameSpaceLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameLength</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Creates a Qualifier path segment, which behaves like a normal property. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpace</td><td>Pointer to a constant char buffer containing name space URI of the property. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpaceLength</td><td>Number of characters in nameSpace. In case nameSpace is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Pointer to a constant char buffer containing local name of the property. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameLength</td><td>Number of characters in name. In case name is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to const #IPathSegment. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Throws #<a class="el" href="namespaceAdobeXMPCommon.html#a0e0c89c232b777fb332e0ddc10b65fc2">AdobeXMPCommon::pcIError</a> in case<ul>
+<li>pointers to const char buffers are NULL,</li>
+<li>their content is empty. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a854506c44a7acfc0246709a6cd74638d"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a98ce40154ef1c1d92f2077c8211f2a9c">spcIPathSegment</a> AdobeXMPCore::IPathSegment_v1::CreateQualifierSelectorPathSegment </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>nameSpace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameSpaceLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>value</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>valueLength</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Creates a path segment that selects a specific qualifier by its value. For example a specific language in a alternative array of languages. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpace</td><td>Pointer to a constant char buffer containing name space URI of the property. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpaceLength</td><td>Number of characters in nameSpace. In case nameSpace is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Pointer to a constant char buffer containing local name of the property. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameLength</td><td>Number of characters in name. In case name is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Pointer to a constant char buffer containing value of the language (xml:lang) </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">valueLength</td><td>Number of characters in value. In case value is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to const #IPathSegment. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Throws <a class="el" href="namespaceAdobeXMPCommon.html#a0e0c89c232b777fb332e0ddc10b65fc2">AdobeXMPCommon::pcIError</a> in case<ul>
+<li>pointers to const char buffers are NULL,</li>
+<li>their content is empty. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a6552774db8039b1ddc02491fc82b2699"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL AdobeXMPCore::IPathSegment_v1::GetIndex </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Gets the index of the array type path segment. </p>
+<dl class="section return"><dt>Returns</dt><dd>An objet of type #<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a> object representing index of the array type path segment. In case path segment is not of type kPSTArrayIndex, it returns #<a class="el" href="namespaceAdobeXMPCommon.html#a509d67aa4eb5b6a31db63f448d2a2343">AdobeXMPCommon::kMaxSize</a>. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a9c7e02cccca4d74467483ab442871376"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL AdobeXMPCore::IPathSegment_v1::GetName </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Gets the name of the path segment. </p>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to const #AdobeXMPCommon::IUTF8String object containing name of the path segment. In case path segment has no name space, an invalid shared pointer is returned. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ae6726749b73c1c99caa05e65138f9a64"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL AdobeXMPCore::IPathSegment_v1::GetNameSpace </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Gets the name space of the path segment. </p>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to const #AdobeXMPCommon::IUTF8String object representing namespace of the path segment. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a0febe9ac58c1a2a3e0a573f1bb9c25c3"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9">ePathSegmentType</a> APICALL AdobeXMPCore::IPathSegment_v1::GetType </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Gets the type of the path segment. </p>
+<dl class="section return"><dt>Returns</dt><dd>An object of type #ePathSegmentType representing type of the path segment. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="abc957b6cdedc2b4feb8943b42d2d3fe9"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL AdobeXMPCore::IPathSegment_v1::GetValue </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Gets the value of the qualifier type path segment. </p>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to const #AdobeXMP::IUTF8String object representing value of the qualifier type path segment. In case path segment is not of type kPSTQualifier an invalid shared pointer is returned. </dd></dl>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/<a class="el" href="IPathSegment_8h_source.html">IPathSegment.h</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCore_1_1IPathSegment__v1.js b/docs/API/classAdobeXMPCore_1_1IPathSegment__v1.js
new file mode 100755
index 0000000..cb83fa5
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1IPathSegment__v1.js
@@ -0,0 +1,21 @@
+var classAdobeXMPCore_1_1IPathSegment__v1 =
+[
+ [ "ePathSegmentType", "classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9", [
+ [ "kPSTNone", "classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9ab178c4df00dc4b10c7c5937d82499a84", null ],
+ [ "kPSTProperty", "classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9ac351f884bf338c15a4a619e89216e2b9", null ],
+ [ "kPSTArrayIndex", "classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9ae86feb38a46c4fb2ecb35bb651dca161", null ],
+ [ "kPSTQualifier", "classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9a8d1e54d4a1f97847f03eb7ff36c263a7", null ],
+ [ "kPSTQualifierSelector", "classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9a2eb4a4d89f26c720eb393eb56997ba09", null ],
+ [ "kPSTAll", "classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9a6c99b2ecc364a71db39b2e9ff0a94880", null ]
+ ] ],
+ [ "~IPathSegment_v1", "classAdobeXMPCore_1_1IPathSegment__v1.html#a1ef63ec40233a30d4ec9f165e5332a43", null ],
+ [ "CreateArrayIndexPathSegment", "classAdobeXMPCore_1_1IPathSegment__v1.html#ab94dc022fdf9edad3423c8f281f95674", null ],
+ [ "CreatePropertyPathSegment", "classAdobeXMPCore_1_1IPathSegment__v1.html#a78df7478295fed763eadac0cefb79e1b", null ],
+ [ "CreateQualifierPathSegment", "classAdobeXMPCore_1_1IPathSegment__v1.html#a49da0c0bed14c7afb07d263570f09221", null ],
+ [ "CreateQualifierSelectorPathSegment", "classAdobeXMPCore_1_1IPathSegment__v1.html#a854506c44a7acfc0246709a6cd74638d", null ],
+ [ "GetIndex", "classAdobeXMPCore_1_1IPathSegment__v1.html#a6552774db8039b1ddc02491fc82b2699", null ],
+ [ "GetName", "classAdobeXMPCore_1_1IPathSegment__v1.html#a9c7e02cccca4d74467483ab442871376", null ],
+ [ "GetNameSpace", "classAdobeXMPCore_1_1IPathSegment__v1.html#ae6726749b73c1c99caa05e65138f9a64", null ],
+ [ "GetType", "classAdobeXMPCore_1_1IPathSegment__v1.html#a0febe9ac58c1a2a3e0a573f1bb9c25c3", null ],
+ [ "GetValue", "classAdobeXMPCore_1_1IPathSegment__v1.html#abc957b6cdedc2b4feb8943b42d2d3fe9", null ]
+]; \ No newline at end of file
diff --git a/docs/API/classAdobeXMPCore_1_1IPathSegment__v1.png b/docs/API/classAdobeXMPCore_1_1IPathSegment__v1.png
new file mode 100755
index 0000000..68477c4
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1IPathSegment__v1.png
Binary files differ
diff --git a/docs/API/classAdobeXMPCore_1_1IPath__v1-members.html b/docs/API/classAdobeXMPCore_1_1IPath__v1-members.html
new file mode 100755
index 0000000..8c003cf
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1IPath__v1-members.html
@@ -0,0 +1,73 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCore_1_1IPath__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">AdobeXMPCore::IPath_v1 Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classAdobeXMPCore_1_1IPath__v1.html">AdobeXMPCore::IPath_v1</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc">Acquire</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#ad11a65bed658401f8cfcd41387e2b8a6">AppendPathSegment</a>(const spcIPathSegment &amp;segment)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPath__v1.html">AdobeXMPCore::IPath_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#af056942f9dba913762b258cb5b422300">Clear</a>() __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPath__v1.html">AdobeXMPCore::IPath_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#a054e7cb641a72c7d3e7f35ef1225c6f4">Clone</a>(sizet startingIndex=1, sizet countOfSegments=kMaxSize) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPath__v1.html">AdobeXMPCore::IPath_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#a0da106657f48b1c8859e31de357015d4">CreatePath</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPath__v1.html">AdobeXMPCore::IPath_v1</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070">GetInterfacePointer</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#a7c7c78fcf2aac3af21c3803cb72b0afc">GetPathSegment</a>(sizet index) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPath__v1.html">AdobeXMPCore::IPath_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#ac6b2215fb0cf7e14d96915bcbdd6d5c8">IsEmpty</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPath__v1.html">AdobeXMPCore::IPath_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#a64165b6024ea00ea1cc1c13bd6708a44">ParsePath</a>(const char *path, sizet pathLength, const spcINameSpacePrefixMap &amp;map)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPath__v1.html">AdobeXMPCore::IPath_v1</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#a75c08c101e11f3059d7bff2fde6e6817">RegisterNameSpacePrefixMap</a>(const spcINameSpacePrefixMap &amp;map)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPath__v1.html">AdobeXMPCore::IPath_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3">Release</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#a7de20abb4af96e274ef5476a1e718d77">RemovePathSegment</a>(sizet index)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPath__v1.html">AdobeXMPCore::IPath_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#afcb42109aed83c3b0c133bc413388037">AdobeXMPCommon::REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f">AdobeXMPCommon::IVersionable::REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#ad5920be57f3243c5601ad214e3b1e0c1">Serialize</a>(const spcINameSpacePrefixMap &amp;map=spcINameSpacePrefixMap()) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPath__v1.html">AdobeXMPCore::IPath_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#a6a0bc65d535aabdfd52608b29270c558">Size</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPath__v1.html">AdobeXMPCore::IPath_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#ad2d1a79e6c8e270c1cb9acee09e7881e">~IPath_v1</a>() __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IPath__v1.html">AdobeXMPCore::IPath_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31">~ISharedObject</a>() __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCore_1_1IPath__v1.html b/docs/API/classAdobeXMPCore_1_1IPath__v1.html
new file mode 100755
index 0000000..a84d36d
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1IPath__v1.html
@@ -0,0 +1,573 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>AdobeXMPCore::IPath_v1 Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCore_1_1IPath__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="classAdobeXMPCore_1_1IPath__v1-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">AdobeXMPCore::IPath_v1 Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Version1 of the interface that provides an easy iterative description of a specific path into the XMP tree.
+ <a href="classAdobeXMPCore_1_1IPath__v1.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="IPath_8h_source.html">IPath.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for AdobeXMPCore::IPath_v1:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classAdobeXMPCore_1_1IPath__v1.png" usemap="#AdobeXMPCore::IPath_5Fv1_map" alt=""/>
+ <map id="AdobeXMPCore::IPath_5Fv1_map" name="AdobeXMPCore::IPath_v1_map">
+<area href="classAdobeXMPCommon_1_1ISharedObject.html" title="Interface that serves as the base interface of all the externally exposed interfaces. " alt="AdobeXMPCommon::ISharedObject" shape="rect" coords="0,0,212,24"/>
+<area href="classAdobeXMPCommon_1_1IVersionable.html" title="Interface that serves as the base interface for all the externally exposed interfaces which needs to ..." alt="AdobeXMPCommon::IVersionable" shape="rect" coords="222,0,434,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a75c08c101e11f3059d7bff2fde6e6817"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a22f9e572045a61aa3cfc629a0d877d72">spcINameSpacePrefixMap</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#a75c08c101e11f3059d7bff2fde6e6817">RegisterNameSpacePrefixMap</a> (const <a class="el" href="namespaceAdobeXMPCore.html#a22f9e572045a61aa3cfc629a0d877d72">spcINameSpacePrefixMap</a> &amp;map)=0</td></tr>
+<tr class="memdesc:a75c08c101e11f3059d7bff2fde6e6817"><td class="mdescLeft">&#160;</td><td class="mdescRight">Registers a map of namespace and prefix with the object. This map will be used during serialization and parsing. <a href="#a75c08c101e11f3059d7bff2fde6e6817">More...</a><br /></td></tr>
+<tr class="separator:a75c08c101e11f3059d7bff2fde6e6817"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad5920be57f3243c5601ad214e3b1e0c1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#ad5920be57f3243c5601ad214e3b1e0c1">Serialize</a> (const <a class="el" href="namespaceAdobeXMPCore.html#a22f9e572045a61aa3cfc629a0d877d72">spcINameSpacePrefixMap</a> &amp;map=<a class="el" href="namespaceAdobeXMPCore.html#a22f9e572045a61aa3cfc629a0d877d72">spcINameSpacePrefixMap</a>()) const =0</td></tr>
+<tr class="memdesc:ad5920be57f3243c5601ad214e3b1e0c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Serializes the IPath object to a utf8 string representation. This will produce either a long form of the path using the full namespace strings or short form of the path using the prefix for the namespace. <a href="#ad5920be57f3243c5601ad214e3b1e0c1">More...</a><br /></td></tr>
+<tr class="separator:ad5920be57f3243c5601ad214e3b1e0c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad11a65bed658401f8cfcd41387e2b8a6"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#ad11a65bed658401f8cfcd41387e2b8a6">AppendPathSegment</a> (const <a class="el" href="namespaceAdobeXMPCore.html#a98ce40154ef1c1d92f2077c8211f2a9c">spcIPathSegment</a> &amp;segment)=0</td></tr>
+<tr class="memdesc:ad11a65bed658401f8cfcd41387e2b8a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends a path segment to the path. <a href="#ad11a65bed658401f8cfcd41387e2b8a6">More...</a><br /></td></tr>
+<tr class="separator:ad11a65bed658401f8cfcd41387e2b8a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7de20abb4af96e274ef5476a1e718d77"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a98ce40154ef1c1d92f2077c8211f2a9c">spcIPathSegment</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#a7de20abb4af96e274ef5476a1e718d77">RemovePathSegment</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> index)=0</td></tr>
+<tr class="memdesc:a7de20abb4af96e274ef5476a1e718d77"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes a path segment from the path. <a href="#a7de20abb4af96e274ef5476a1e718d77">More...</a><br /></td></tr>
+<tr class="separator:a7de20abb4af96e274ef5476a1e718d77"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7c7c78fcf2aac3af21c3803cb72b0afc"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a98ce40154ef1c1d92f2077c8211f2a9c">spcIPathSegment</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#a7c7c78fcf2aac3af21c3803cb72b0afc">GetPathSegment</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> index) const =0</td></tr>
+<tr class="memdesc:a7c7c78fcf2aac3af21c3803cb72b0afc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the path segment at a particular index in the path. <a href="#a7c7c78fcf2aac3af21c3803cb72b0afc">More...</a><br /></td></tr>
+<tr class="separator:a7c7c78fcf2aac3af21c3803cb72b0afc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6a0bc65d535aabdfd52608b29270c558"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#a6a0bc65d535aabdfd52608b29270c558">Size</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a6a0bc65d535aabdfd52608b29270c558"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the number of the path segments in the path. <a href="#a6a0bc65d535aabdfd52608b29270c558">More...</a><br /></td></tr>
+<tr class="separator:a6a0bc65d535aabdfd52608b29270c558"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac6b2215fb0cf7e14d96915bcbdd6d5c8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#ac6b2215fb0cf7e14d96915bcbdd6d5c8">IsEmpty</a> () const </td></tr>
+<tr class="memdesc:ac6b2215fb0cf7e14d96915bcbdd6d5c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">To check whether path is empty or not. <a href="#ac6b2215fb0cf7e14d96915bcbdd6d5c8">More...</a><br /></td></tr>
+<tr class="separator:ac6b2215fb0cf7e14d96915bcbdd6d5c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af056942f9dba913762b258cb5b422300"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#af056942f9dba913762b258cb5b422300">Clear</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:af056942f9dba913762b258cb5b422300"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears the path by removing all the path segments from it. <a href="#af056942f9dba913762b258cb5b422300">More...</a><br /></td></tr>
+<tr class="separator:af056942f9dba913762b258cb5b422300"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a054e7cb641a72c7d3e7f35ef1225c6f4"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aa54f5ed241da9437ad01c1047a199f56">spIPath</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#a054e7cb641a72c7d3e7f35ef1225c6f4">Clone</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> startingIndex=1, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> countOfSegments=kMaxSize) const =0</td></tr>
+<tr class="memdesc:a054e7cb641a72c7d3e7f35ef1225c6f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets a new path having a selected range of path segments. <a href="#a054e7cb641a72c7d3e7f35ef1225c6f4">More...</a><br /></td></tr>
+<tr class="separator:a054e7cb641a72c7d3e7f35ef1225c6f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1ISharedObject')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td></tr>
+<tr class="memitem:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc">Acquire</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the clients of the object to indicate that he has acquired the shared ownership of the object. <a href="#ab90d4ec1fcd975a7ac62dcb866335cdc">More...</a><br /></td></tr>
+<tr class="separator:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3">Release</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the clients of the object to indicate he has released his shared ownership of the object. If this being the last client than this function should call Destroy to delete and release the memory. <a href="#abf5a54e09f87366170ea19c618f68bc3">More...</a><br /></td></tr>
+<tr class="separator:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
+<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
+<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a> ()</td></tr>
+<tr class="memdesc:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to an interface object implementing the requested version. <a href="#ad6539461695decfaea8a44798db51e54">More...</a><br /></td></tr>
+<tr class="separator:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
+<tr class="memitem:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> const requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070">GetInterfacePointer</a> () const </td></tr>
+<tr class="memdesc:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to a const interface object implementing the requested version. <a href="#ab93a940e2946c14a76ebbd9552cab070">More...</a><br /></td></tr>
+<tr class="separator:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr class="memitem:a0da106657f48b1c8859e31de357015d4"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#aa54f5ed241da9437ad01c1047a199f56">spIPath</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#a0da106657f48b1c8859e31de357015d4">CreatePath</a> ()</td></tr>
+<tr class="memdesc:a0da106657f48b1c8859e31de357015d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an empty IPath object. <a href="#a0da106657f48b1c8859e31de357015d4">More...</a><br /></td></tr>
+<tr class="separator:a0da106657f48b1c8859e31de357015d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a64165b6024ea00ea1cc1c13bd6708a44"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#aa54f5ed241da9437ad01c1047a199f56">spIPath</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#a64165b6024ea00ea1cc1c13bd6708a44">ParsePath</a> (const char *path, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> pathLength, const <a class="el" href="namespaceAdobeXMPCore.html#a22f9e572045a61aa3cfc629a0d877d72">spcINameSpacePrefixMap</a> &amp;map)</td></tr>
+<tr class="memdesc:a64165b6024ea00ea1cc1c13bd6708a44"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a path from a char buffer which contains the serialized path. <a href="#a64165b6024ea00ea1cc1c13bd6708a44">More...</a><br /></td></tr>
+<tr class="separator:a64165b6024ea00ea1cc1c13bd6708a44"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:ad2d1a79e6c8e270c1cb9acee09e7881e"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#ad2d1a79e6c8e270c1cb9acee09e7881e">~IPath_v1</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:ad2d1a79e6c8e270c1cb9acee09e7881e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1ISharedObject')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td></tr>
+<tr class="memitem:a5869ff89d0b7dd0a7b525401a1d57b31 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31">~ISharedObject</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="separator:a5869ff89d0b7dd0a7b525401a1d57b31 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afcb42109aed83c3b0c133bc413388037 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#afcb42109aed83c3b0c133bc413388037">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:afcb42109aed83c3b0c133bc413388037 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
+<tr class="memitem:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a> ()</td></tr>
+<tr class="separator:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Version1 of the interface that provides an easy iterative description of a specific path into the XMP tree. </p>
+<p>Path consists of multiple path segments in an order and each #IPathSegment represents one segment of the path into the XMP tree. Provides all the functions to create path and get the various properties of a path. </p><dl class="section attention"><dt>Attention</dt><dd>Do not support multi-threading. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Index in the path are 1-based. </dd></dl>
+
+<p>Definition at line <a class="el" href="IPath_8h_source.html#l00026">26</a> of file <a class="el" href="IPath_8h_source.html">IPath.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="ad2d1a79e6c8e270c1cb9acee09e7881e"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual AdobeXMPCore::IPath_v1::~IPath_v1 </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Destructor </p>
+
+<p>Definition at line <a class="el" href="IPath_8h_source.html#l00192">192</a> of file <a class="el" href="IPath_8h_source.html">IPath.h</a>.</p>
+
+<p>References <a class="el" href="XMPCommonDefines_8h_source.html#l00107">REQ_FRIEND_CLASS_DECLARATION</a>.</p>
+<div class="fragment"><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;{}</div></div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="ad11a65bed658401f8cfcd41387e2b8a6"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCore::IPath_v1::AppendPathSegment </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCore.html#a98ce40154ef1c1d92f2077c8211f2a9c">spcIPathSegment</a> &amp;&#160;</td>
+ <td class="paramname"><em>segment</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Appends a path segment to the path. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">segment</td><td>A shared pointer to a const #AdobeXMPCore::IPathSegment object. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
+<li>segment is not a valid shared pointer. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="af056942f9dba913762b258cb5b422300"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCore::IPath_v1::Clear </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Clears the path by removing all the path segments from it. </p>
+
+</div>
+</div>
+<a class="anchor" id="a054e7cb641a72c7d3e7f35ef1225c6f4"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#aa54f5ed241da9437ad01c1047a199f56">spIPath</a> APICALL AdobeXMPCore::IPath_v1::Clone </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>startingIndex</em> = <code>1</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>countOfSegments</em> = <code>kMaxSize</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Gets a new path having a selected range of path segments. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">startingIndex</td><td>Indicates the starting index of the path segment to be part of the returned path object. Default value is 1. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">countOfSegments</td><td>Indicates the count of the path segments to be part of the returned path object starting from startingIndex. Default value is #<a class="el" href="namespaceAdobeXMPCommon.html#a509d67aa4eb5b6a31db63f448d2a2343">AdobeXMPCommon::kMaxSize</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section note"><dt>Note</dt><dd>In case countOfSegments is more than the number of segments available in the path object starting from the starting index then internally it is truncated to the number of path segments available. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
+<li>startingIndex is more than the count of segments in the object. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a0da106657f48b1c8859e31de357015d4"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#aa54f5ed241da9437ad01c1047a199f56">spIPath</a> AdobeXMPCore::IPath_v1::CreatePath </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Creates an empty IPath object. </p>
+<dl class="section return"><dt>Returns</dt><dd>a shared pointer to an empty IPath object </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a7c7c78fcf2aac3af21c3803cb72b0afc"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#a98ce40154ef1c1d92f2077c8211f2a9c">spcIPathSegment</a> APICALL AdobeXMPCore::IPath_v1::GetPathSegment </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>index</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Gets the path segment at a particular index in the path. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>Indicates the index for the path segment in the path. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to a const path segment. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case -index is out of bounds. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ac6b2215fb0cf7e14d96915bcbdd6d5c8"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> bool AdobeXMPCore::IPath_v1::IsEmpty </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>To check whether path is empty or not. </p>
+<dl class="section return"><dt>Returns</dt><dd>A bool object indicating true in case the path is empty (no path segment) </dd></dl>
+
+<p>Definition at line <a class="el" href="IPath_8h_source.html#l00089">89</a> of file <a class="el" href="IPath_8h_source.html">IPath.h</a>.</p>
+
+<p>References <a class="el" href="namespaceAdobeXMPCore.html#a169bb4bbf2a32d4201625eca17bde615">AdobeXMPCore::kIPathID()</a>, <a class="el" href="namespaceAdobeXMPCommon.html#a509d67aa4eb5b6a31db63f448d2a2343">AdobeXMPCommon::kMaxSize()</a>, and <a class="el" href="XMP__Environment_8h_source.html#l00189">XMP_PRIVATE</a>.</p>
+<div class="fragment"><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classAdobeXMPCore_1_1IPath__v1.html#a6a0bc65d535aabdfd52608b29270c558">Size</a>() == 0;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div><div class="ttc" id="classAdobeXMPCore_1_1IPath__v1_html_a6a0bc65d535aabdfd52608b29270c558"><div class="ttname"><a href="classAdobeXMPCore_1_1IPath__v1.html#a6a0bc65d535aabdfd52608b29270c558">AdobeXMPCore::IPath_v1::Size</a></div><div class="ttdeci">virtual sizet APICALL Size() const __NOTHROW__=0</div><div class="ttdoc">Gets the number of the path segments in the path. </div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a64165b6024ea00ea1cc1c13bd6708a44"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#aa54f5ed241da9437ad01c1047a199f56">spIPath</a> AdobeXMPCore::IPath_v1::ParsePath </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>path</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>pathLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCore.html#a22f9e572045a61aa3cfc629a0d877d72">spcINameSpacePrefixMap</a> &amp;&#160;</td>
+ <td class="paramname"><em>map</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Creates a path from a char buffer which contains the serialized path. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">path</td><td>Pointer to a const char buffer containing serialized form of the path. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">pathLength</td><td>Number of characters in the path. In case path in null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">map</td><td>A shared pointer to a const #AdobeXMPCore::IXMPNameSpacePrefixMap object which will contain the mapping from nameSpaces to prefixes. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to a #AdobeXMPCore::IPath object. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>In case the serializedPath is NULL or the contents are empty then it will result in an empty path. </dd>
+<dd>
+This operation is currently not implemented for the IPath interface. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
+<li>no mapping exists for a prefix to name space.</li>
+<li>path contains invalid data. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a75c08c101e11f3059d7bff2fde6e6817"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#a22f9e572045a61aa3cfc629a0d877d72">spcINameSpacePrefixMap</a> APICALL AdobeXMPCore::IPath_v1::RegisterNameSpacePrefixMap </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCore.html#a22f9e572045a61aa3cfc629a0d877d72">spcINameSpacePrefixMap</a> &amp;&#160;</td>
+ <td class="paramname"><em>map</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Registers a map of namespace and prefix with the object. This map will be used during serialization and parsing. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">map</td><td>A shared pointer of an object #AdobeXMPCore::INameSpacePrefixMap. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to the const map registered previously with the object. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a7de20abb4af96e274ef5476a1e718d77"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#a98ce40154ef1c1d92f2077c8211f2a9c">spcIPathSegment</a> APICALL AdobeXMPCore::IPath_v1::RemovePathSegment </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>index</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Removes a path segment from the path. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>Indicates the index of the path segment to be removed. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to the const path segment removed. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
+<li>index is out of bounds. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ad5920be57f3243c5601ad214e3b1e0c1"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> APICALL AdobeXMPCore::IPath_v1::Serialize </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCore.html#a22f9e572045a61aa3cfc629a0d877d72">spcINameSpacePrefixMap</a> &amp;&#160;</td>
+ <td class="paramname"><em>map</em> = <code><a class="el" href="namespaceAdobeXMPCore.html#a22f9e572045a61aa3cfc629a0d877d72">spcINameSpacePrefixMap</a>()</code></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Serializes the IPath object to a utf8 string representation. This will produce either a long form of the path using the full namespace strings or short form of the path using the prefix for the namespace. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">map</td><td>A shared pointer to a const #AdobeXMPCore::INameSpacePrefixMap object which can contain the mapping for nameSpaces to prefixes. They will take precedence over the map registered with the object. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shard pointer to #AdobeXMPCommon::IUTF8String object containing serialized form of path. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>In case map is not a valid shared pointer all the mappings will be picked from the map registered with the object. If neither a map is registered nor it is provided in the arguments then it will serialize to long form of the path. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error will be thrown in case<ul>
+<li>no prefix exists for a namespace used in the path. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a6a0bc65d535aabdfd52608b29270c558"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL AdobeXMPCore::IPath_v1::Size </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Gets the number of the path segments in the path. </p>
+<dl class="section return"><dt>Returns</dt><dd>The count of the path segments in the path. </dd></dl>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/<a class="el" href="IPath_8h_source.html">IPath.h</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCore_1_1IPath__v1.js b/docs/API/classAdobeXMPCore_1_1IPath__v1.js
new file mode 100755
index 0000000..38ddb66
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1IPath__v1.js
@@ -0,0 +1,15 @@
+var classAdobeXMPCore_1_1IPath__v1 =
+[
+ [ "~IPath_v1", "classAdobeXMPCore_1_1IPath__v1.html#ad2d1a79e6c8e270c1cb9acee09e7881e", null ],
+ [ "AppendPathSegment", "classAdobeXMPCore_1_1IPath__v1.html#ad11a65bed658401f8cfcd41387e2b8a6", null ],
+ [ "Clear", "classAdobeXMPCore_1_1IPath__v1.html#af056942f9dba913762b258cb5b422300", null ],
+ [ "Clone", "classAdobeXMPCore_1_1IPath__v1.html#a054e7cb641a72c7d3e7f35ef1225c6f4", null ],
+ [ "CreatePath", "classAdobeXMPCore_1_1IPath__v1.html#a0da106657f48b1c8859e31de357015d4", null ],
+ [ "GetPathSegment", "classAdobeXMPCore_1_1IPath__v1.html#a7c7c78fcf2aac3af21c3803cb72b0afc", null ],
+ [ "IsEmpty", "classAdobeXMPCore_1_1IPath__v1.html#ac6b2215fb0cf7e14d96915bcbdd6d5c8", null ],
+ [ "ParsePath", "classAdobeXMPCore_1_1IPath__v1.html#a64165b6024ea00ea1cc1c13bd6708a44", null ],
+ [ "RegisterNameSpacePrefixMap", "classAdobeXMPCore_1_1IPath__v1.html#a75c08c101e11f3059d7bff2fde6e6817", null ],
+ [ "RemovePathSegment", "classAdobeXMPCore_1_1IPath__v1.html#a7de20abb4af96e274ef5476a1e718d77", null ],
+ [ "Serialize", "classAdobeXMPCore_1_1IPath__v1.html#ad5920be57f3243c5601ad214e3b1e0c1", null ],
+ [ "Size", "classAdobeXMPCore_1_1IPath__v1.html#a6a0bc65d535aabdfd52608b29270c558", null ]
+]; \ No newline at end of file
diff --git a/docs/API/classAdobeXMPCore_1_1IPath__v1.png b/docs/API/classAdobeXMPCore_1_1IPath__v1.png
new file mode 100755
index 0000000..a732b1f
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1IPath__v1.png
Binary files differ
diff --git a/docs/API/classAdobeXMPCore_1_1ISimpleNode__v1-members.html b/docs/API/classAdobeXMPCore_1_1ISimpleNode__v1-members.html
new file mode 100755
index 0000000..79d044d
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1ISimpleNode__v1-members.html
@@ -0,0 +1,120 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCore_1_1ISimpleNode__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">AdobeXMPCore::ISimpleNode_v1 Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html">AdobeXMPCore::ISimpleNode_v1</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a673b6b4d69b2c9d85f2fa440d413ace3">AcknowledgeChanges</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc">Acquire</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4b615b0eef081f3c23385f28728aa462">Clear</a>(bool contents=true, bool qualifiers=true)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2d613694adcedb569145aff06d0bc595">Clone</a>(bool ignoreEmptyNodes=false, bool ignoreNodesWithOnlyQualifiers=false) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#af180be62ecd26edf90df0fe3ea75941e">ConvertToArrayNode</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a0d67ad7708fb6f007ea1152b79e65f49">ConvertToArrayNode</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a08f9ed4dee6c899f65eb51e3d7f9858d">ConvertToMetadata</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a72dc534e1af718599ac185563a02612a">ConvertToMetadata</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aeb9797165d96d06998de79dd19a9f846">ConvertToSimpleNode</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ad8e7ef140cb5ff094789abfcc879c94b">ConvertToSimpleNode</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5ea317fcd59694184089a9774c866b22">ConvertToStructureNode</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ad5f62a4ae9a9630c8106a04bd0c2a0a3">ConvertToStructureNode</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html#a9221d195ce7d207b65652008666e04d6">CreateSimpleNode</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength, const char *value=NULL, sizet valueLength=AdobeXMPCommon::npos)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html">AdobeXMPCore::ISimpleNode_v1</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a214bb1b5840dbd5576e764dd2220b261">DisableThreadSafety</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#afe35614cb88e2bdb32996cf4ac15b211">EnableThreadSafety</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> enum name</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ab55c9dad49840d58a1c2c16b9f1962ad">GetArrayQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a2e68d1345ed6ca2e5d1bfada42b13f">GetArrayQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2447e6ea34adbe073a639c703015db90">GetIndex</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070">GetInterfacePointer</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a68350da5edc0668811b9bb890d5777b9">GetName</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2e8319347c3b01638027b4abbe72fda6">GetNameSpace</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a6d9067d66571727b622ffccade5225f0">GetNodeType</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aee7e1f35ac174874234ba5e913a6bfaa">GetParent</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4533c1d11fc2d32c166c9ce05fe01b3c">GetParent</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a47da5e5605d69d6d6ced761e7c39d24f">GetParentNodeType</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a549f1adeea470827a6201b3b4c596f1e">GetPath</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a96a99fa56a2b088691ecad5a0cf6e54d">GetQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a7701069162b4f677026624a5f2b3f788">GetQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2866bcde949c37aeb72cdba8dddcac95">GetQualifierNodeType</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a1524d74e397863cb9324838862f70d7b">GetSimpleQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2831fe03981afd9af12e775bda89361e">GetSimpleQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a844a40cd69e0d87226ce1146d733edd6">GetStructureQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4fb3c837b8c28501b2e7a3376a2cf382">GetStructureQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html#a92d0fc99b2af5ef28027e693f9b37964">GetValue</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html">AdobeXMPCore::ISimpleNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ab78ba3aaadf4b0109e610505e753de50">HasChanged</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa288c34c9bccb73ae73b653f3c769ade">HasContent</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#adfd1ce7bd20268240769f8a6a405a8ee">HasQualifiers</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a5e6dd9a58a288f20fd0a667a30a2ae">InsertQualifier</a>(const spINode &amp;node)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a3289deed9715f661f5f588dc38642baa">IsArrayItem</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5075ad988ba61e055b6ee6bbeaf25e25">IsEmpty</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a0d545f6b4b2b9760b63c902317c43a94">IsQualifierNode</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a261e2f6af96b75015e5f8318f32be7f9">IsThreadSafe</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html#a6164e2541b1245d43f1e21b94f75e20c">IsURIType</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html">AdobeXMPCore::ISimpleNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a68bac77fd8140a60490eb78f0b533e21">kNTAll</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a60c6b4c3dfc99d8584866f5f18ff2610">kNTArray</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913aae32cc414cc7adaf3b2a1c375f2cb3bb">kNTNone</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a97e0c4fb69029d0d152c068c10736234">kNTSimple</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a7542b80b3b688cd3d210d62d12dbe471">kNTStructure</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#af898813d17af58fb1a828d92a74d7dd3">QualifiersCount</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a9972ca54948952083a930166448c05c0">QualifiersIterator</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa168f37bc38763df55fb1022d55886bd">QualifiersIterator</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3">Release</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a87f03e9924418ae5f7b6fa63def6eee8">RemoveQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a2692b8281984d9fe6de6c169332f2c">ReplaceQualifier</a>(const spINode &amp;node)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#afcb42109aed83c3b0c133bc413388037">AdobeXMPCommon::REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f">AdobeXMPCommon::IVersionable::REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a0f31eb9677c4af06288319e363c21ebc">AdobeXMPCommon::IThreadSafe::REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa087d2f94e42fdd5ece1bd22dfea66d5">SetName</a>(const char *name, sizet nameLength)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a55c6097b36412f9facc8a4cf7e898186">SetNameSpace</a>(const char *nameSpace, sizet nameSpaceLength)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html#a8781cf6bb583b419cf5fcaf6cf311bd2">SetURIType</a>(bool isURI)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html">AdobeXMPCore::ISimpleNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html#a0391485cf8c432ba03874d4329c5510e">SetValue</a>(const char *value, sizet valueLength)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html">AdobeXMPCore::ISimpleNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#affdbed044179bbde65ffc28b20e28ecb">~INode_v1</a>() __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31">~ISharedObject</a>() __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html#a12de1bae1dcb7c8302044df2b4fddb02">~ISimpleNode_v1</a>() __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html">AdobeXMPCore::ISimpleNode_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCore_1_1ISimpleNode__v1.html b/docs/API/classAdobeXMPCore_1_1ISimpleNode__v1.html
new file mode 100755
index 0000000..7035a9f
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1ISimpleNode__v1.html
@@ -0,0 +1,516 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>AdobeXMPCore::ISimpleNode_v1 Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCore_1_1ISimpleNode__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="classAdobeXMPCore_1_1ISimpleNode__v1-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">AdobeXMPCore::ISimpleNode_v1 Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Version1 of the interface that represents a Simple Property Node of XMP DOM.
+ <a href="classAdobeXMPCore_1_1ISimpleNode__v1.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="ISimpleNode_8h_source.html">ISimpleNode.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for AdobeXMPCore::ISimpleNode_v1:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classAdobeXMPCore_1_1ISimpleNode__v1.png" usemap="#AdobeXMPCore::ISimpleNode_5Fv1_map" alt=""/>
+ <map id="AdobeXMPCore::ISimpleNode_5Fv1_map" name="AdobeXMPCore::ISimpleNode_v1_map">
+<area href="classAdobeXMPCore_1_1INode__v1.html" title="Version1 of the interface that serves as a base interface to all types of nodes in the XMP DOM..." alt="AdobeXMPCore::INode_v1" shape="rect" coords="222,56,434,80"/>
+<area href="classAdobeXMPCommon_1_1ISharedObject.html" title="Interface that serves as the base interface of all the externally exposed interfaces. " alt="AdobeXMPCommon::ISharedObject" shape="rect" coords="0,0,212,24"/>
+<area href="classAdobeXMPCommon_1_1IVersionable.html" title="Interface that serves as the base interface for all the externally exposed interfaces which needs to ..." alt="AdobeXMPCommon::IVersionable" shape="rect" coords="222,0,434,24"/>
+<area href="classAdobeXMPCommon_1_1IThreadSafe.html" title="Interface that serves as the base interface for all the externally exposed interfaces which needs to ..." alt="AdobeXMPCommon::IThreadSafe" shape="rect" coords="444,0,656,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a92d0fc99b2af5ef28027e693f9b37964"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html#a92d0fc99b2af5ef28027e693f9b37964">GetValue</a> () const =0</td></tr>
+<tr class="memdesc:a92d0fc99b2af5ef28027e693f9b37964"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the value of the simple property node. <a href="#a92d0fc99b2af5ef28027e693f9b37964">More...</a><br /></td></tr>
+<tr class="separator:a92d0fc99b2af5ef28027e693f9b37964"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0391485cf8c432ba03874d4329c5510e"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html#a0391485cf8c432ba03874d4329c5510e">SetValue</a> (const char *value, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> valueLength)=0</td></tr>
+<tr class="memdesc:a0391485cf8c432ba03874d4329c5510e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the value string of the simple property node. <a href="#a0391485cf8c432ba03874d4329c5510e">More...</a><br /></td></tr>
+<tr class="separator:a0391485cf8c432ba03874d4329c5510e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6164e2541b1245d43f1e21b94f75e20c"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html#a6164e2541b1245d43f1e21b94f75e20c">IsURIType</a> () const =0</td></tr>
+<tr class="memdesc:a6164e2541b1245d43f1e21b94f75e20c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates whether the simple property node is of URI type. <a href="#a6164e2541b1245d43f1e21b94f75e20c">More...</a><br /></td></tr>
+<tr class="separator:a6164e2541b1245d43f1e21b94f75e20c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8781cf6bb583b419cf5fcaf6cf311bd2"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html#a8781cf6bb583b419cf5fcaf6cf311bd2">SetURIType</a> (bool isURI)=0</td></tr>
+<tr class="memdesc:a8781cf6bb583b419cf5fcaf6cf311bd2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Controls whether the type of simple property node should be of IsURI type or not. <a href="#a8781cf6bb583b419cf5fcaf6cf311bd2">More...</a><br /></td></tr>
+<tr class="separator:a8781cf6bb583b419cf5fcaf6cf311bd2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCore_1_1INode__v1"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCore_1_1INode__v1')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td></tr>
+<tr class="memitem:a6d9067d66571727b622ffccade5225f0 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a6d9067d66571727b622ffccade5225f0">GetNodeType</a> () const =0</td></tr>
+<tr class="memdesc:a6d9067d66571727b622ffccade5225f0 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the node type of the node. <a href="#a6d9067d66571727b622ffccade5225f0">More...</a><br /></td></tr>
+<tr class="separator:a6d9067d66571727b622ffccade5225f0 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a47da5e5605d69d6d6ced761e7c39d24f inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a47da5e5605d69d6d6ced761e7c39d24f">GetParentNodeType</a> () const =0</td></tr>
+<tr class="memdesc:a47da5e5605d69d6d6ced761e7c39d24f inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the node type of the node's parent. <a href="#a47da5e5605d69d6d6ced761e7c39d24f">More...</a><br /></td></tr>
+<tr class="separator:a47da5e5605d69d6d6ced761e7c39d24f inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa087d2f94e42fdd5ece1bd22dfea66d5 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa087d2f94e42fdd5ece1bd22dfea66d5">SetName</a> (const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)=0</td></tr>
+<tr class="memdesc:aa087d2f94e42fdd5ece1bd22dfea66d5 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the local name of the node. <a href="#aa087d2f94e42fdd5ece1bd22dfea66d5">More...</a><br /></td></tr>
+<tr class="separator:aa087d2f94e42fdd5ece1bd22dfea66d5 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a68350da5edc0668811b9bb890d5777b9 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a68350da5edc0668811b9bb890d5777b9">GetName</a> () const =0</td></tr>
+<tr class="memdesc:a68350da5edc0668811b9bb890d5777b9 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the local name of the node. <a href="#a68350da5edc0668811b9bb890d5777b9">More...</a><br /></td></tr>
+<tr class="separator:a68350da5edc0668811b9bb890d5777b9 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a55c6097b36412f9facc8a4cf7e898186 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a55c6097b36412f9facc8a4cf7e898186">SetNameSpace</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength)=0</td></tr>
+<tr class="memdesc:a55c6097b36412f9facc8a4cf7e898186 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the name space of the node. <a href="#a55c6097b36412f9facc8a4cf7e898186">More...</a><br /></td></tr>
+<tr class="separator:a55c6097b36412f9facc8a4cf7e898186 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2e8319347c3b01638027b4abbe72fda6 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2e8319347c3b01638027b4abbe72fda6">GetNameSpace</a> () const =0</td></tr>
+<tr class="memdesc:a2e8319347c3b01638027b4abbe72fda6 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the name space of the node. <a href="#a2e8319347c3b01638027b4abbe72fda6">More...</a><br /></td></tr>
+<tr class="separator:a2e8319347c3b01638027b4abbe72fda6 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a549f1adeea470827a6201b3b4c596f1e inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aa54f5ed241da9437ad01c1047a199f56">spIPath</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a549f1adeea470827a6201b3b4c596f1e">GetPath</a> () const =0</td></tr>
+<tr class="memdesc:a549f1adeea470827a6201b3b4c596f1e inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the path of the node from the root of the metadata. <a href="#a549f1adeea470827a6201b3b4c596f1e">More...</a><br /></td></tr>
+<tr class="separator:a549f1adeea470827a6201b3b4c596f1e inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af898813d17af58fb1a828d92a74d7dd3 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#af898813d17af58fb1a828d92a74d7dd3">QualifiersCount</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:af898813d17af58fb1a828d92a74d7dd3 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the count of the qualifiers attached with the node. <a href="#af898813d17af58fb1a828d92a74d7dd3">More...</a><br /></td></tr>
+<tr class="separator:af898813d17af58fb1a828d92a74d7dd3 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2866bcde949c37aeb72cdba8dddcac95 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2866bcde949c37aeb72cdba8dddcac95">GetQualifierNodeType</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const =0</td></tr>
+<tr class="memdesc:a2866bcde949c37aeb72cdba8dddcac95 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the type of the node's qualifier having specified namespace and name. <a href="#a2866bcde949c37aeb72cdba8dddcac95">More...</a><br /></td></tr>
+<tr class="separator:a2866bcde949c37aeb72cdba8dddcac95 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a5e6dd9a58a288f20fd0a667a30a2ae inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a5e6dd9a58a288f20fd0a667a30a2ae">InsertQualifier</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;node)=0</td></tr>
+<tr class="memdesc:a5a5e6dd9a58a288f20fd0a667a30a2ae inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inserts a given qualifier node. <a href="#a5a5e6dd9a58a288f20fd0a667a30a2ae">More...</a><br /></td></tr>
+<tr class="separator:a5a5e6dd9a58a288f20fd0a667a30a2ae inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a2692b8281984d9fe6de6c169332f2c inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a2692b8281984d9fe6de6c169332f2c">ReplaceQualifier</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;node)=0</td></tr>
+<tr class="memdesc:a5a2692b8281984d9fe6de6c169332f2c inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replaces a given qualifier node. <a href="#a5a2692b8281984d9fe6de6c169332f2c">More...</a><br /></td></tr>
+<tr class="separator:a5a2692b8281984d9fe6de6c169332f2c inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a87f03e9924418ae5f7b6fa63def6eee8 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a87f03e9924418ae5f7b6fa63def6eee8">RemoveQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)=0</td></tr>
+<tr class="memdesc:a87f03e9924418ae5f7b6fa63def6eee8 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes the qualifier node with the specified nameSpace and name. <a href="#a87f03e9924418ae5f7b6fa63def6eee8">More...</a><br /></td></tr>
+<tr class="separator:a87f03e9924418ae5f7b6fa63def6eee8 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3289deed9715f661f5f588dc38642baa inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a3289deed9715f661f5f588dc38642baa">IsArrayItem</a> () const =0</td></tr>
+<tr class="memdesc:a3289deed9715f661f5f588dc38642baa inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates whether the node is a direct child of an array node. <a href="#a3289deed9715f661f5f588dc38642baa">More...</a><br /></td></tr>
+<tr class="separator:a3289deed9715f661f5f588dc38642baa inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0d545f6b4b2b9760b63c902317c43a94 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a0d545f6b4b2b9760b63c902317c43a94">IsQualifierNode</a> () const =0</td></tr>
+<tr class="memdesc:a0d545f6b4b2b9760b63c902317c43a94 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates whether the node is a qualifier node. <a href="#a0d545f6b4b2b9760b63c902317c43a94">More...</a><br /></td></tr>
+<tr class="separator:a0d545f6b4b2b9760b63c902317c43a94 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2447e6ea34adbe073a639c703015db90 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2447e6ea34adbe073a639c703015db90">GetIndex</a> () const =0</td></tr>
+<tr class="memdesc:a2447e6ea34adbe073a639c703015db90 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the index of the node in case it is an array item. <a href="#a2447e6ea34adbe073a639c703015db90">More...</a><br /></td></tr>
+<tr class="separator:a2447e6ea34adbe073a639c703015db90 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adfd1ce7bd20268240769f8a6a405a8ee inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#adfd1ce7bd20268240769f8a6a405a8ee">HasQualifiers</a> () const =0</td></tr>
+<tr class="memdesc:adfd1ce7bd20268240769f8a6a405a8ee inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates whether the node has any qualifiers associated with it. <a href="#adfd1ce7bd20268240769f8a6a405a8ee">More...</a><br /></td></tr>
+<tr class="separator:adfd1ce7bd20268240769f8a6a405a8ee inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa288c34c9bccb73ae73b653f3c769ade inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa288c34c9bccb73ae73b653f3c769ade">HasContent</a> () const =0</td></tr>
+<tr class="memdesc:aa288c34c9bccb73ae73b653f3c769ade inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether the node has any content or not. return A bool value indicating the presence of contents in the node apart from qualifiers. <a href="#aa288c34c9bccb73ae73b653f3c769ade">More...</a><br /></td></tr>
+<tr class="separator:aa288c34c9bccb73ae73b653f3c769ade inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5075ad988ba61e055b6ee6bbeaf25e25 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5075ad988ba61e055b6ee6bbeaf25e25">IsEmpty</a> () const =0</td></tr>
+<tr class="memdesc:a5075ad988ba61e055b6ee6bbeaf25e25 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether the node is empty. return A bool value indicating whether the contents and qualifiers of a node are empty. <a href="#a5075ad988ba61e055b6ee6bbeaf25e25">More...</a><br /></td></tr>
+<tr class="separator:a5075ad988ba61e055b6ee6bbeaf25e25 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab78ba3aaadf4b0109e610505e753de50 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ab78ba3aaadf4b0109e610505e753de50">HasChanged</a> () const =0</td></tr>
+<tr class="memdesc:ab78ba3aaadf4b0109e610505e753de50 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the status about any change done to the node or its children or qualifiers. returns a bool value indicating whether some changes have been performed on the node or its children or qualifiers. for a simple node, true will be returned in scenarios like when the node's value or qualifiers are modified. for an array node or a structure node, true will be returned in scenarios like when the node's children or the node's qualifiers are modified. <a href="#ab78ba3aaadf4b0109e610505e753de50">More...</a><br /></td></tr>
+<tr class="separator:ab78ba3aaadf4b0109e610505e753de50 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a673b6b4d69b2c9d85f2fa440d413ace3 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a673b6b4d69b2c9d85f2fa440d413ace3">AcknowledgeChanges</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a673b6b4d69b2c9d85f2fa440d413ace3 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Acknowledges that changes for the node and its children and qualifiers have been taken care of. for a simple node, changes that will be acknowledged in scenarios like when the node's value or node's qualifiers were modified. for an array node or a structure node, changes will be acknowledged in scenarios like when the node's children were or the node's qualifiers were modified. <a href="#a673b6b4d69b2c9d85f2fa440d413ace3">More...</a><br /></td></tr>
+<tr class="separator:a673b6b4d69b2c9d85f2fa440d413ace3 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4b615b0eef081f3c23385f28728aa462 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4b615b0eef081f3c23385f28728aa462">Clear</a> (bool contents=true, bool qualifiers=true)=0</td></tr>
+<tr class="memdesc:a4b615b0eef081f3c23385f28728aa462 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the contents of the node. <a href="#a4b615b0eef081f3c23385f28728aa462">More...</a><br /></td></tr>
+<tr class="separator:a4b615b0eef081f3c23385f28728aa462 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2d613694adcedb569145aff06d0bc595 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2d613694adcedb569145aff06d0bc595">Clone</a> (bool ignoreEmptyNodes=false, bool ignoreNodesWithOnlyQualifiers=false) const =0</td></tr>
+<tr class="memdesc:a2d613694adcedb569145aff06d0bc595 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual copy constructor. <a href="#a2d613694adcedb569145aff06d0bc595">More...</a><br /></td></tr>
+<tr class="separator:a2d613694adcedb569145aff06d0bc595 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aee7e1f35ac174874234ba5e913a6bfaa inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">spcINode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aee7e1f35ac174874234ba5e913a6bfaa">GetParent</a> () const </td></tr>
+<tr class="memdesc:aee7e1f35ac174874234ba5e913a6bfaa inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the parent node of the node. <a href="#aee7e1f35ac174874234ba5e913a6bfaa">More...</a><br /></td></tr>
+<tr class="separator:aee7e1f35ac174874234ba5e913a6bfaa inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4533c1d11fc2d32c166c9ce05fe01b3c inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4533c1d11fc2d32c166c9ce05fe01b3c">GetParent</a> ()=0</td></tr>
+<tr class="separator:a4533c1d11fc2d32c166c9ce05fe01b3c inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9972ca54948952083a930166448c05c0 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab423c366f29043e79694f805bceddb56">spcINodeIterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a9972ca54948952083a930166448c05c0">QualifiersIterator</a> () const </td></tr>
+<tr class="separator:a9972ca54948952083a930166448c05c0 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa168f37bc38763df55fb1022d55886bd inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a5386a735d9eb66d5859e4657dfeebb7c">spINodeIterator</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa168f37bc38763df55fb1022d55886bd">QualifiersIterator</a> ()=0</td></tr>
+<tr class="separator:aa168f37bc38763df55fb1022d55886bd inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a96a99fa56a2b088691ecad5a0cf6e54d inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">spcINode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a96a99fa56a2b088691ecad5a0cf6e54d">GetQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const </td></tr>
+<tr class="memdesc:a96a99fa56a2b088691ecad5a0cf6e54d inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the qualifier of the node having specified namespace and name. <a href="#a96a99fa56a2b088691ecad5a0cf6e54d">More...</a><br /></td></tr>
+<tr class="separator:a96a99fa56a2b088691ecad5a0cf6e54d inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7701069162b4f677026624a5f2b3f788 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a7701069162b4f677026624a5f2b3f788">GetQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)=0</td></tr>
+<tr class="separator:a7701069162b4f677026624a5f2b3f788 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1524d74e397863cb9324838862f70d7b inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a1524d74e397863cb9324838862f70d7b">GetSimpleQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const </td></tr>
+<tr class="memdesc:a1524d74e397863cb9324838862f70d7b inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the node's qualifier having specified name space and name as simple node. <a href="#a1524d74e397863cb9324838862f70d7b">More...</a><br /></td></tr>
+<tr class="separator:a1524d74e397863cb9324838862f70d7b inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2831fe03981afd9af12e775bda89361e inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2831fe03981afd9af12e775bda89361e">GetSimpleQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)</td></tr>
+<tr class="separator:a2831fe03981afd9af12e775bda89361e inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a844a40cd69e0d87226ce1146d733edd6 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a844a40cd69e0d87226ce1146d733edd6">GetStructureQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const </td></tr>
+<tr class="memdesc:a844a40cd69e0d87226ce1146d733edd6 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the node's qualifier having specified name space and name as structure node. <a href="#a844a40cd69e0d87226ce1146d733edd6">More...</a><br /></td></tr>
+<tr class="separator:a844a40cd69e0d87226ce1146d733edd6 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4fb3c837b8c28501b2e7a3376a2cf382 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4fb3c837b8c28501b2e7a3376a2cf382">GetStructureQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)</td></tr>
+<tr class="separator:a4fb3c837b8c28501b2e7a3376a2cf382 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab55c9dad49840d58a1c2c16b9f1962ad inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ab55c9dad49840d58a1c2c16b9f1962ad">GetArrayQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const </td></tr>
+<tr class="memdesc:ab55c9dad49840d58a1c2c16b9f1962ad inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the node's qualifier having specified name space and name as an array node. <a href="#ab55c9dad49840d58a1c2c16b9f1962ad">More...</a><br /></td></tr>
+<tr class="separator:ab55c9dad49840d58a1c2c16b9f1962ad inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a2e68d1345ed6ca2e5d1bfada42b13f inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a2e68d1345ed6ca2e5d1bfada42b13f">GetArrayQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)</td></tr>
+<tr class="separator:a5a2e68d1345ed6ca2e5d1bfada42b13f inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeb9797165d96d06998de79dd19a9f846 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aeb9797165d96d06998de79dd19a9f846">ConvertToSimpleNode</a> () const </td></tr>
+<tr class="memdesc:aeb9797165d96d06998de79dd19a9f846 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts Node to a simple node, if possible. <a href="#aeb9797165d96d06998de79dd19a9f846">More...</a><br /></td></tr>
+<tr class="separator:aeb9797165d96d06998de79dd19a9f846 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad8e7ef140cb5ff094789abfcc879c94b inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ad8e7ef140cb5ff094789abfcc879c94b">ConvertToSimpleNode</a> ()=0</td></tr>
+<tr class="separator:ad8e7ef140cb5ff094789abfcc879c94b inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5ea317fcd59694184089a9774c866b22 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5ea317fcd59694184089a9774c866b22">ConvertToStructureNode</a> () const </td></tr>
+<tr class="memdesc:a5ea317fcd59694184089a9774c866b22 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts Node to a structure node type, if possible. <a href="#a5ea317fcd59694184089a9774c866b22">More...</a><br /></td></tr>
+<tr class="separator:a5ea317fcd59694184089a9774c866b22 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad5f62a4ae9a9630c8106a04bd0c2a0a3 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ad5f62a4ae9a9630c8106a04bd0c2a0a3">ConvertToStructureNode</a> ()=0</td></tr>
+<tr class="separator:ad5f62a4ae9a9630c8106a04bd0c2a0a3 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af180be62ecd26edf90df0fe3ea75941e inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#af180be62ecd26edf90df0fe3ea75941e">ConvertToArrayNode</a> () const </td></tr>
+<tr class="memdesc:af180be62ecd26edf90df0fe3ea75941e inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts Node to an array node type, if possible. <a href="#af180be62ecd26edf90df0fe3ea75941e">More...</a><br /></td></tr>
+<tr class="separator:af180be62ecd26edf90df0fe3ea75941e inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0d67ad7708fb6f007ea1152b79e65f49 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a0d67ad7708fb6f007ea1152b79e65f49">ConvertToArrayNode</a> ()=0</td></tr>
+<tr class="separator:a0d67ad7708fb6f007ea1152b79e65f49 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a08f9ed4dee6c899f65eb51e3d7f9858d inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a1e81ce748e90e850d0a48b0b5943fce2">spcIMetadata</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a08f9ed4dee6c899f65eb51e3d7f9858d">ConvertToMetadata</a> () const </td></tr>
+<tr class="memdesc:a08f9ed4dee6c899f65eb51e3d7f9858d inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts Node to a metadata node type, if possible. <a href="#a08f9ed4dee6c899f65eb51e3d7f9858d">More...</a><br /></td></tr>
+<tr class="separator:a08f9ed4dee6c899f65eb51e3d7f9858d inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a72dc534e1af718599ac185563a02612a inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a7f1de39fd79aeac4402eba73cb1ffe82">spIMetadata</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a72dc534e1af718599ac185563a02612a">ConvertToMetadata</a> ()=0</td></tr>
+<tr class="separator:a72dc534e1af718599ac185563a02612a inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1ISharedObject')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td></tr>
+<tr class="memitem:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc">Acquire</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the clients of the object to indicate that he has acquired the shared ownership of the object. <a href="#ab90d4ec1fcd975a7ac62dcb866335cdc">More...</a><br /></td></tr>
+<tr class="separator:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3">Release</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the clients of the object to indicate he has released his shared ownership of the object. If this being the last client than this function should call Destroy to delete and release the memory. <a href="#abf5a54e09f87366170ea19c618f68bc3">More...</a><br /></td></tr>
+<tr class="separator:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
+<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
+<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a> ()</td></tr>
+<tr class="memdesc:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to an interface object implementing the requested version. <a href="#ad6539461695decfaea8a44798db51e54">More...</a><br /></td></tr>
+<tr class="separator:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
+<tr class="memitem:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> const requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070">GetInterfacePointer</a> () const </td></tr>
+<tr class="memdesc:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to a const interface object implementing the requested version. <a href="#ab93a940e2946c14a76ebbd9552cab070">More...</a><br /></td></tr>
+<tr class="separator:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1IThreadSafe')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td></tr>
+<tr class="memitem:afe35614cb88e2bdb32996cf4ac15b211 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#afe35614cb88e2bdb32996cf4ac15b211">EnableThreadSafety</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:afe35614cb88e2bdb32996cf4ac15b211 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables the thread safety on an object. <a href="#afe35614cb88e2bdb32996cf4ac15b211">More...</a><br /></td></tr>
+<tr class="separator:afe35614cb88e2bdb32996cf4ac15b211 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a214bb1b5840dbd5576e764dd2220b261 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a214bb1b5840dbd5576e764dd2220b261">DisableThreadSafety</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a214bb1b5840dbd5576e764dd2220b261 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disables the thread safety on an object. <a href="#a214bb1b5840dbd5576e764dd2220b261">More...</a><br /></td></tr>
+<tr class="separator:a214bb1b5840dbd5576e764dd2220b261 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a261e2f6af96b75015e5f8318f32be7f9 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a261e2f6af96b75015e5f8318f32be7f9">IsThreadSafe</a> () const =0</td></tr>
+<tr class="memdesc:a261e2f6af96b75015e5f8318f32be7f9 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Informs whether object can be used across multiple threads or not. <a href="#a261e2f6af96b75015e5f8318f32be7f9">More...</a><br /></td></tr>
+<tr class="separator:a261e2f6af96b75015e5f8318f32be7f9 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr class="memitem:a9221d195ce7d207b65652008666e04d6"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html#a9221d195ce7d207b65652008666e04d6">CreateSimpleNode</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength, const char *value=NULL, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> valueLength=<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>)</td></tr>
+<tr class="memdesc:a9221d195ce7d207b65652008666e04d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a simple property node which is not part of any metadata document. <a href="#a9221d195ce7d207b65652008666e04d6">More...</a><br /></td></tr>
+<tr class="separator:a9221d195ce7d207b65652008666e04d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:a12de1bae1dcb7c8302044df2b4fddb02"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html#a12de1bae1dcb7c8302044df2b4fddb02">~ISimpleNode_v1</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:a12de1bae1dcb7c8302044df2b4fddb02"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCore_1_1INode__v1"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCore_1_1INode__v1')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td></tr>
+<tr class="memitem:affdbed044179bbde65ffc28b20e28ecb inherit pro_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#affdbed044179bbde65ffc28b20e28ecb">~INode_v1</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:affdbed044179bbde65ffc28b20e28ecb inherit pro_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1ISharedObject')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td></tr>
+<tr class="memitem:a5869ff89d0b7dd0a7b525401a1d57b31 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31">~ISharedObject</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="separator:a5869ff89d0b7dd0a7b525401a1d57b31 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afcb42109aed83c3b0c133bc413388037 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#afcb42109aed83c3b0c133bc413388037">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:afcb42109aed83c3b0c133bc413388037 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
+<tr class="memitem:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a> ()</td></tr>
+<tr class="separator:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1IThreadSafe"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1IThreadSafe')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td></tr>
+<tr class="memitem:a0f31eb9677c4af06288319e363c21ebc inherit pro_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a0f31eb9677c4af06288319e363c21ebc">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:a0f31eb9677c4af06288319e363c21ebc inherit pro_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pub_types_classAdobeXMPCore_1_1INode__v1"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classAdobeXMPCore_1_1INode__v1')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td></tr>
+<tr class="memitem:a46b01045c1addbc8f444bd21384b7913 inherit pub_types_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> { <br />
+&#160;&#160;<a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913aae32cc414cc7adaf3b2a1c375f2cb3bb">kNTNone</a> = 0,
+<a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a97e0c4fb69029d0d152c068c10736234">kNTSimple</a> = 1,
+<a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a60c6b4c3dfc99d8584866f5f18ff2610">kNTArray</a> = 1 &lt;&lt; 1,
+<a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a7542b80b3b688cd3d210d62d12dbe471">kNTStructure</a> = 1 &lt;&lt; 2,
+<br />
+&#160;&#160;<a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a68bac77fd8140a60490eb78f0b533e21">kNTAll</a> = kAllBits
+<br />
+ }<tr class="memdesc:a46b01045c1addbc8f444bd21384b7913"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates various types of node available in XMP Data Model like simple, array and structure. <a href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:a46b01045c1addbc8f444bd21384b7913 inherit pub_types_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Version1 of the interface that represents a Simple Property Node of XMP DOM. </p>
+<p>Provides all the functions to get and set various properties of the simple node. </p><dl class="section attention"><dt>Attention</dt><dd>Support multi threading through locks but can be enabled/disabled by the client. By default every object created does not support multi-threading. </dd></dl>
+
+<p>Definition at line <a class="el" href="ISimpleNode_8h_source.html#l00023">23</a> of file <a class="el" href="ISimpleNode_8h_source.html">ISimpleNode.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a12de1bae1dcb7c8302044df2b4fddb02"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual AdobeXMPCore::ISimpleNode_v1::~ISimpleNode_v1 </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Destructor </p>
+
+<p>Definition at line <a class="el" href="ISimpleNode_8h_source.html#l00133">133</a> of file <a class="el" href="ISimpleNode_8h_source.html">ISimpleNode.h</a>.</p>
+
+<p>References <a class="el" href="XMPCommonDefines_8h_source.html#l00107">REQ_FRIEND_CLASS_DECLARATION</a>.</p>
+<div class="fragment"><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;{}</div></div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a9221d195ce7d207b65652008666e04d6"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a> AdobeXMPCore::ISimpleNode_v1::CreateSimpleNode </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>nameSpace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameSpaceLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>value</em> = <code>NULL</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>valueLength</em> = <code><a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a></code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Creates a simple property node which is not part of any metadata document. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpace</td><td>Pointer to a constant char buffer containing name space URI of the simple node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpaceLength</td><td>Number of characters in nameSpace. In case nameSpace is null terminated set it to <a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Pointer to a constant char buffer containing local name of the simple node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameLength</td><td>Number of characters in name. In case name is null terminated set it to <a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Pointer to a constant char buffer containing value of the simple node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">valueLength</td><td>Number of characters in value. In case name is null terminated set it to <a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to a AdobeXMPCore::ISimpleNode object. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
+<li>nameSpace or name are NULL pointers, or</li>
+<li>their contents are empty. </li>
+</ul>
+</dd></dl>
+<dl class="section note"><dt>Note</dt><dd>In case the value is a null pointer or its contents are empty than the value is set to empty string. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a92d0fc99b2af5ef28027e693f9b37964"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL AdobeXMPCore::ISimpleNode_v1::GetValue </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Gets the value of the simple property node. </p>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to const AdobeXMPCommon::IUTF8String object containing value string of the simple property node. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a6164e2541b1245d43f1e21b94f75e20c"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual bool APICALL AdobeXMPCore::ISimpleNode_v1::IsURIType </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Indicates whether the simple property node is of URI type. </p>
+<dl class="section return"><dt>Returns</dt><dd>A bool value; true in case the simple node is of URI type, false otherwise. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a8781cf6bb583b419cf5fcaf6cf311bd2"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCore::ISimpleNode_v1::SetURIType </td>
+ <td>(</td>
+ <td class="paramtype">bool&#160;</td>
+ <td class="paramname"><em>isURI</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Controls whether the type of simple property node should be of IsURI type or not. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">isURI</td><td>A bool value controlling the IsURI type of the simple property node </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a0391485cf8c432ba03874d4329c5510e"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCore::ISimpleNode_v1::SetValue </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>value</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>valueLength</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Changes the value string of the simple property node. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Pointer to a constant char buffer containing value of the simple node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">valueLength</td><td>Number of characters in value. In case name is null terminated set it to <a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section note"><dt>Note</dt><dd>In case the value is null pointer or its contents are empty than the value is set to empty string. </dd></dl>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/<a class="el" href="ISimpleNode_8h_source.html">ISimpleNode.h</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCore_1_1ISimpleNode__v1.js b/docs/API/classAdobeXMPCore_1_1ISimpleNode__v1.js
new file mode 100755
index 0000000..df9fa71
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1ISimpleNode__v1.js
@@ -0,0 +1,9 @@
+var classAdobeXMPCore_1_1ISimpleNode__v1 =
+[
+ [ "~ISimpleNode_v1", "classAdobeXMPCore_1_1ISimpleNode__v1.html#a12de1bae1dcb7c8302044df2b4fddb02", null ],
+ [ "CreateSimpleNode", "classAdobeXMPCore_1_1ISimpleNode__v1.html#a9221d195ce7d207b65652008666e04d6", null ],
+ [ "GetValue", "classAdobeXMPCore_1_1ISimpleNode__v1.html#a92d0fc99b2af5ef28027e693f9b37964", null ],
+ [ "IsURIType", "classAdobeXMPCore_1_1ISimpleNode__v1.html#a6164e2541b1245d43f1e21b94f75e20c", null ],
+ [ "SetURIType", "classAdobeXMPCore_1_1ISimpleNode__v1.html#a8781cf6bb583b419cf5fcaf6cf311bd2", null ],
+ [ "SetValue", "classAdobeXMPCore_1_1ISimpleNode__v1.html#a0391485cf8c432ba03874d4329c5510e", null ]
+]; \ No newline at end of file
diff --git a/docs/API/classAdobeXMPCore_1_1ISimpleNode__v1.png b/docs/API/classAdobeXMPCore_1_1ISimpleNode__v1.png
new file mode 100755
index 0000000..81cccb1
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1ISimpleNode__v1.png
Binary files differ
diff --git a/docs/API/classAdobeXMPCore_1_1IStructureNode__v1-members.html b/docs/API/classAdobeXMPCore_1_1IStructureNode__v1-members.html
new file mode 100755
index 0000000..6e22397
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1IStructureNode__v1-members.html
@@ -0,0 +1,145 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCore_1_1IStructureNode__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">AdobeXMPCore::IStructureNode_v1 Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html">AdobeXMPCore::IStructureNode_v1</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a673b6b4d69b2c9d85f2fa440d413ace3">AcknowledgeChanges</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc">Acquire</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a6795e662d9daea5b88de08261488964b">AppendNode</a>(const spINode &amp;node)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#abf3323ce933f5336bc0f64955c0bdd11">ChildCount</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4b615b0eef081f3c23385f28728aa462">Clear</a>(bool contents=true, bool qualifiers=true)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2d613694adcedb569145aff06d0bc595">Clone</a>(bool ignoreEmptyNodes=false, bool ignoreNodesWithOnlyQualifiers=false) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#af180be62ecd26edf90df0fe3ea75941e">ConvertToArrayNode</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a0d67ad7708fb6f007ea1152b79e65f49">ConvertToArrayNode</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a08f9ed4dee6c899f65eb51e3d7f9858d">ConvertToMetadata</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a72dc534e1af718599ac185563a02612a">ConvertToMetadata</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aeb9797165d96d06998de79dd19a9f846">ConvertToSimpleNode</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ad8e7ef140cb5ff094789abfcc879c94b">ConvertToSimpleNode</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5ea317fcd59694184089a9774c866b22">ConvertToStructureNode</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ad5f62a4ae9a9630c8106a04bd0c2a0a3">ConvertToStructureNode</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#ab39f8d743ba67fc4e6a21b08b03fdde2">CreateStructureNode</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html">AdobeXMPCore::IStructureNode_v1</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a214bb1b5840dbd5576e764dd2220b261">DisableThreadSafety</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#afe35614cb88e2bdb32996cf4ac15b211">EnableThreadSafety</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> enum name</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a8ee43418308bf6f80d1fc90eb84f5db0">GetArrayNode</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html">AdobeXMPCore::IStructureNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#af8fe4c8e7c9a5262b1125aea6606fe2e">GetArrayNode</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html">AdobeXMPCore::IStructureNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a2e17bda06b20439a0076ea2fae68594d">GetArrayNodeAtPath</a>(const spcIPath &amp;path) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#aba3fc78fab746460b1e7e01fe2e004b6">GetArrayNodeAtPath</a>(const spcIPath &amp;path)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ab55c9dad49840d58a1c2c16b9f1962ad">GetArrayQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a2e68d1345ed6ca2e5d1bfada42b13f">GetArrayQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a1463dda9dea83f54c69ad72f105f5eff">GetChildNodeType</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html">AdobeXMPCore::IStructureNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2447e6ea34adbe073a639c703015db90">GetIndex</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070">GetInterfacePointer</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a68350da5edc0668811b9bb890d5777b9">GetName</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2e8319347c3b01638027b4abbe72fda6">GetNameSpace</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#afd94de430e29982143eb04315b954b24">GetNode</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html">AdobeXMPCore::IStructureNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#af5ce2401c3613c06ccb8b8fa69af4a1c">GetNode</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html">AdobeXMPCore::IStructureNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a5c4cddddb0702e61d85cff16c5e72632">GetNodeAtPath</a>(const spcIPath &amp;path) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a0dd2a64d53b361b96bdfb597c5e35579">GetNodeAtPath</a>(const spcIPath &amp;path)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a6d9067d66571727b622ffccade5225f0">GetNodeType</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#ac5e3227436e3ee11d0df7f3a176402e0">GetNodeTypeAtPath</a>(const spcIPath &amp;path) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aee7e1f35ac174874234ba5e913a6bfaa">GetParent</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4533c1d11fc2d32c166c9ce05fe01b3c">GetParent</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a47da5e5605d69d6d6ced761e7c39d24f">GetParentNodeType</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a549f1adeea470827a6201b3b4c596f1e">GetPath</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a96a99fa56a2b088691ecad5a0cf6e54d">GetQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a7701069162b4f677026624a5f2b3f788">GetQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2866bcde949c37aeb72cdba8dddcac95">GetQualifierNodeType</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#aaf000a83b1448eb8453f37fc42543ae7">GetSimpleNode</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html">AdobeXMPCore::IStructureNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a23ea406052e9201f3b35e59cc2b206a5">GetSimpleNode</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html">AdobeXMPCore::IStructureNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a93d1009b739d8a6c40ebbf4aa75051af">GetSimpleNodeAtPath</a>(const spcIPath &amp;path) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a42c91ca3eeded6302163a96903927445">GetSimpleNodeAtPath</a>(const spcIPath &amp;path)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a1524d74e397863cb9324838862f70d7b">GetSimpleQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2831fe03981afd9af12e775bda89361e">GetSimpleQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#ab815d3b2335f27dccc15472196696e08">GetStructureNode</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html">AdobeXMPCore::IStructureNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a9b380e96dca941b5f9c3143931f7f633">GetStructureNode</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html">AdobeXMPCore::IStructureNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#ad6ca35dc12323a3a970066beb4c63e84">GetStructureNodeAtPath</a>(const spcIPath &amp;path) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a2abb6cdf40e6d4c91e30b736586e89dc">GetStructureNodeAtPath</a>(const spcIPath &amp;path)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a844a40cd69e0d87226ce1146d733edd6">GetStructureQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4fb3c837b8c28501b2e7a3376a2cf382">GetStructureQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ab78ba3aaadf4b0109e610505e753de50">HasChanged</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa288c34c9bccb73ae73b653f3c769ade">HasContent</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#adfd1ce7bd20268240769f8a6a405a8ee">HasQualifiers</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a22d61015856c67f05237af9513e98ff7">InsertNode</a>(const spINode &amp;node)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html">AdobeXMPCore::IStructureNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a39f5d9b31976e7a243d11152cd57260b">InsertNodeAtPath</a>(const spINode &amp;node, const spcIPath &amp;path)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a5e6dd9a58a288f20fd0a667a30a2ae">InsertQualifier</a>(const spINode &amp;node)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a3289deed9715f661f5f588dc38642baa">IsArrayItem</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5075ad988ba61e055b6ee6bbeaf25e25">IsEmpty</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a0d545f6b4b2b9760b63c902317c43a94">IsQualifierNode</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a261e2f6af96b75015e5f8318f32be7f9">IsThreadSafe</a>() const =0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a313df9421df168266a32592732c25d9f">Iterator</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#afa9e587b9293ff99d9f8b38b0cc07cad">Iterator</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a68bac77fd8140a60490eb78f0b533e21">kNTAll</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a60c6b4c3dfc99d8584866f5f18ff2610">kNTArray</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913aae32cc414cc7adaf3b2a1c375f2cb3bb">kNTNone</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a97e0c4fb69029d0d152c068c10736234">kNTSimple</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a7542b80b3b688cd3d210d62d12dbe471">kNTStructure</a> enum value</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#af898813d17af58fb1a828d92a74d7dd3">QualifiersCount</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a9972ca54948952083a930166448c05c0">QualifiersIterator</a>() const </td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa168f37bc38763df55fb1022d55886bd">QualifiersIterator</a>()=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3">Release</a>() const __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a25d8ec1ee8031cb693bb8c8a8102c8f8">RemoveNode</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html">AdobeXMPCore::IStructureNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a1c713f2e29d6d0e9d4a1ee800a679f06">RemoveNodeAtPath</a>(const spcIPath &amp;path)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a87f03e9924418ae5f7b6fa63def6eee8">RemoveQualifier</a>(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a5764457c137c97a42af6ca156563e455">ReplaceNode</a>(const spINode &amp;node)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html">AdobeXMPCore::IStructureNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a2c51c5296da4abb8fa5d5999f686602b">ReplaceNodeAtPath</a>(const spINode &amp;node, const spcIPath &amp;path)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a2692b8281984d9fe6de6c169332f2c">ReplaceQualifier</a>(const spINode &amp;node)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#afcb42109aed83c3b0c133bc413388037">AdobeXMPCommon::REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f">AdobeXMPCommon::IVersionable::REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a0f31eb9677c4af06288319e363c21ebc">AdobeXMPCommon::IThreadSafe::REQ_FRIEND_CLASS_DECLARATION</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa087d2f94e42fdd5ece1bd22dfea66d5">SetName</a>(const char *name, sizet nameLength)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a55c6097b36412f9facc8a4cf7e898186">SetNameSpace</a>(const char *nameSpace, sizet nameSpaceLength)=0</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a51af220e29b40e8520ae5765f28515bf">~ICompositeNode_v1</a>() __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#affdbed044179bbde65ffc28b20e28ecb">~INode_v1</a>() __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31">~ISharedObject</a>() __NOTHROW__=0</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a0cdcce18c6ebbb1764286e3e2456c694">~IStructureNode_v1</a>() __NOTHROW__</td><td class="entry"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html">AdobeXMPCore::IStructureNode_v1</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a>()</td><td class="entry"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCore_1_1IStructureNode__v1.html b/docs/API/classAdobeXMPCore_1_1IStructureNode__v1.html
new file mode 100755
index 0000000..577fdf2
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1IStructureNode__v1.html
@@ -0,0 +1,1103 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>AdobeXMPCore::IStructureNode_v1 Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classAdobeXMPCore_1_1IStructureNode__v1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="classAdobeXMPCore_1_1IStructureNode__v1-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">AdobeXMPCore::IStructureNode_v1 Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Version1 of the interface that represents a structure Node of XMP DOM.
+ <a href="classAdobeXMPCore_1_1IStructureNode__v1.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="IStructureNode_8h_source.html">IStructureNode.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for AdobeXMPCore::IStructureNode_v1:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classAdobeXMPCore_1_1IStructureNode__v1.png" usemap="#AdobeXMPCore::IStructureNode_5Fv1_map" alt=""/>
+ <map id="AdobeXMPCore::IStructureNode_5Fv1_map" name="AdobeXMPCore::IStructureNode_v1_map">
+<area href="classAdobeXMPCore_1_1ICompositeNode__v1.html" title="Version1 of the interface that serves as a base interface to all composite types of nodes in the XMP ..." alt="AdobeXMPCore::ICompositeNode_v1" shape="rect" coords="233,112,456,136"/>
+<area href="classAdobeXMPCore_1_1INode__v1.html" title="Version1 of the interface that serves as a base interface to all types of nodes in the XMP DOM..." alt="AdobeXMPCore::INode_v1" shape="rect" coords="233,56,456,80"/>
+<area href="classAdobeXMPCommon_1_1ISharedObject.html" title="Interface that serves as the base interface of all the externally exposed interfaces. " alt="AdobeXMPCommon::ISharedObject" shape="rect" coords="0,0,223,24"/>
+<area href="classAdobeXMPCommon_1_1IVersionable.html" title="Interface that serves as the base interface for all the externally exposed interfaces which needs to ..." alt="AdobeXMPCommon::IVersionable" shape="rect" coords="233,0,456,24"/>
+<area href="classAdobeXMPCommon_1_1IThreadSafe.html" title="Interface that serves as the base interface for all the externally exposed interfaces which needs to ..." alt="AdobeXMPCommon::IThreadSafe" shape="rect" coords="466,0,689,24"/>
+<area href="classAdobeXMPCore_1_1IMetadata__v1.html" title="Version1 of the interface that represents the whole xmp metadata for an asset. " alt="AdobeXMPCore::IMetadata_v1" shape="rect" coords="233,224,456,248"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a1463dda9dea83f54c69ad72f105f5eff"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a1463dda9dea83f54c69ad72f105f5eff">GetChildNodeType</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const =0</td></tr>
+<tr class="memdesc:a1463dda9dea83f54c69ad72f105f5eff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the type of the node's child having specified namespace and name. <a href="#a1463dda9dea83f54c69ad72f105f5eff">More...</a><br /></td></tr>
+<tr class="separator:a1463dda9dea83f54c69ad72f105f5eff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a22d61015856c67f05237af9513e98ff7"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a22d61015856c67f05237af9513e98ff7">InsertNode</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;node)=0</td></tr>
+<tr class="memdesc:a22d61015856c67f05237af9513e98ff7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inserts a given node. <a href="#a22d61015856c67f05237af9513e98ff7">More...</a><br /></td></tr>
+<tr class="separator:a22d61015856c67f05237af9513e98ff7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5764457c137c97a42af6ca156563e455"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a5764457c137c97a42af6ca156563e455">ReplaceNode</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;node)=0</td></tr>
+<tr class="memdesc:a5764457c137c97a42af6ca156563e455"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replaces a given node. <a href="#a5764457c137c97a42af6ca156563e455">More...</a><br /></td></tr>
+<tr class="separator:a5764457c137c97a42af6ca156563e455"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a25d8ec1ee8031cb693bb8c8a8102c8f8"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a25d8ec1ee8031cb693bb8c8a8102c8f8">RemoveNode</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)=0</td></tr>
+<tr class="memdesc:a25d8ec1ee8031cb693bb8c8a8102c8f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes the node with the specified nameSpace and name. <a href="#a25d8ec1ee8031cb693bb8c8a8102c8f8">More...</a><br /></td></tr>
+<tr class="separator:a25d8ec1ee8031cb693bb8c8a8102c8f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
+<tr class="memitem:afd94de430e29982143eb04315b954b24"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">spcINode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#afd94de430e29982143eb04315b954b24">GetNode</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const </td></tr>
+<tr class="memdesc:afd94de430e29982143eb04315b954b24"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the child of the node having specified namespace and name. <a href="#afd94de430e29982143eb04315b954b24">More...</a><br /></td></tr>
+<tr class="separator:afd94de430e29982143eb04315b954b24"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af5ce2401c3613c06ccb8b8fa69af4a1c"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#af5ce2401c3613c06ccb8b8fa69af4a1c">GetNode</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)=0</td></tr>
+<tr class="separator:af5ce2401c3613c06ccb8b8fa69af4a1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
+<tr class="memitem:aaf000a83b1448eb8453f37fc42543ae7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#aaf000a83b1448eb8453f37fc42543ae7">GetSimpleNode</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const </td></tr>
+<tr class="memdesc:aaf000a83b1448eb8453f37fc42543ae7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the node's child having specified name space and name as simple node. <a href="#aaf000a83b1448eb8453f37fc42543ae7">More...</a><br /></td></tr>
+<tr class="separator:aaf000a83b1448eb8453f37fc42543ae7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a23ea406052e9201f3b35e59cc2b206a5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a23ea406052e9201f3b35e59cc2b206a5">GetSimpleNode</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)</td></tr>
+<tr class="separator:a23ea406052e9201f3b35e59cc2b206a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
+<tr class="memitem:ab815d3b2335f27dccc15472196696e08"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#ab815d3b2335f27dccc15472196696e08">GetStructureNode</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const </td></tr>
+<tr class="memdesc:ab815d3b2335f27dccc15472196696e08"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the node's child having specified name space and name as structure node. <a href="#ab815d3b2335f27dccc15472196696e08">More...</a><br /></td></tr>
+<tr class="separator:ab815d3b2335f27dccc15472196696e08"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9b380e96dca941b5f9c3143931f7f633"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a9b380e96dca941b5f9c3143931f7f633">GetStructureNode</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)</td></tr>
+<tr class="separator:a9b380e96dca941b5f9c3143931f7f633"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
+<tr class="memitem:a8ee43418308bf6f80d1fc90eb84f5db0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a8ee43418308bf6f80d1fc90eb84f5db0">GetArrayNode</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const </td></tr>
+<tr class="memdesc:a8ee43418308bf6f80d1fc90eb84f5db0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the node's child having specified name space and name as an array node. <a href="#a8ee43418308bf6f80d1fc90eb84f5db0">More...</a><br /></td></tr>
+<tr class="separator:a8ee43418308bf6f80d1fc90eb84f5db0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af8fe4c8e7c9a5262b1125aea6606fe2e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#af8fe4c8e7c9a5262b1125aea6606fe2e">GetArrayNode</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)</td></tr>
+<tr class="separator:af8fe4c8e7c9a5262b1125aea6606fe2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td></tr>
+<tr class="memitem:ac5e3227436e3ee11d0df7f3a176402e0 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#ac5e3227436e3ee11d0df7f3a176402e0">GetNodeTypeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path) const =0</td></tr>
+<tr class="memdesc:ac5e3227436e3ee11d0df7f3a176402e0 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the node type specified by the path relative to the composite node. <a href="#ac5e3227436e3ee11d0df7f3a176402e0">More...</a><br /></td></tr>
+<tr class="separator:ac5e3227436e3ee11d0df7f3a176402e0 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6795e662d9daea5b88de08261488964b inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a6795e662d9daea5b88de08261488964b">AppendNode</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;node)=0</td></tr>
+<tr class="memdesc:a6795e662d9daea5b88de08261488964b inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends a given node as the child of the node. <a href="#a6795e662d9daea5b88de08261488964b">More...</a><br /></td></tr>
+<tr class="separator:a6795e662d9daea5b88de08261488964b inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a39f5d9b31976e7a243d11152cd57260b inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a39f5d9b31976e7a243d11152cd57260b">InsertNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;node, const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path)=0</td></tr>
+<tr class="memdesc:a39f5d9b31976e7a243d11152cd57260b inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inserts a given node at the path relative to the composite node. <a href="#a39f5d9b31976e7a243d11152cd57260b">More...</a><br /></td></tr>
+<tr class="separator:a39f5d9b31976e7a243d11152cd57260b inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2c51c5296da4abb8fa5d5999f686602b inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a2c51c5296da4abb8fa5d5999f686602b">ReplaceNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;node, const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path)=0</td></tr>
+<tr class="memdesc:a2c51c5296da4abb8fa5d5999f686602b inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replaces an existing node with the given node at the path relative to the composite node.. <a href="#a2c51c5296da4abb8fa5d5999f686602b">More...</a><br /></td></tr>
+<tr class="separator:a2c51c5296da4abb8fa5d5999f686602b inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1c713f2e29d6d0e9d4a1ee800a679f06 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a1c713f2e29d6d0e9d4a1ee800a679f06">RemoveNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path)=0</td></tr>
+<tr class="memdesc:a1c713f2e29d6d0e9d4a1ee800a679f06 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes the node specified by the path relative to the composite node. <a href="#a1c713f2e29d6d0e9d4a1ee800a679f06">More...</a><br /></td></tr>
+<tr class="separator:a1c713f2e29d6d0e9d4a1ee800a679f06 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abf3323ce933f5336bc0f64955c0bdd11 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#abf3323ce933f5336bc0f64955c0bdd11">ChildCount</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:abf3323ce933f5336bc0f64955c0bdd11 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the count of child nodes of the composite node. <a href="#abf3323ce933f5336bc0f64955c0bdd11">More...</a><br /></td></tr>
+<tr class="separator:abf3323ce933f5336bc0f64955c0bdd11 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5c4cddddb0702e61d85cff16c5e72632 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">spcINode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a5c4cddddb0702e61d85cff16c5e72632">GetNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path) const </td></tr>
+<tr class="memdesc:a5c4cddddb0702e61d85cff16c5e72632 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the node specified by the path relative to the composite node. <a href="#a5c4cddddb0702e61d85cff16c5e72632">More...</a><br /></td></tr>
+<tr class="separator:a5c4cddddb0702e61d85cff16c5e72632 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0dd2a64d53b361b96bdfb597c5e35579 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a0dd2a64d53b361b96bdfb597c5e35579">GetNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path)=0</td></tr>
+<tr class="separator:a0dd2a64d53b361b96bdfb597c5e35579 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a313df9421df168266a32592732c25d9f inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a5386a735d9eb66d5859e4657dfeebb7c">spINodeIterator</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a313df9421df168266a32592732c25d9f">Iterator</a> ()=0</td></tr>
+<tr class="memdesc:a313df9421df168266a32592732c25d9f inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get an iterator object to iterate over all the child nodes of the composite node. <a href="#a313df9421df168266a32592732c25d9f">More...</a><br /></td></tr>
+<tr class="separator:a313df9421df168266a32592732c25d9f inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afa9e587b9293ff99d9f8b38b0cc07cad inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab423c366f29043e79694f805bceddb56">spcINodeIterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#afa9e587b9293ff99d9f8b38b0cc07cad">Iterator</a> () const </td></tr>
+<tr class="separator:afa9e587b9293ff99d9f8b38b0cc07cad inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a93d1009b739d8a6c40ebbf4aa75051af inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a93d1009b739d8a6c40ebbf4aa75051af">GetSimpleNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path) const </td></tr>
+<tr class="memdesc:a93d1009b739d8a6c40ebbf4aa75051af inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a simple node specified by the path relative to the node. <a href="#a93d1009b739d8a6c40ebbf4aa75051af">More...</a><br /></td></tr>
+<tr class="separator:a93d1009b739d8a6c40ebbf4aa75051af inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a42c91ca3eeded6302163a96903927445 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a42c91ca3eeded6302163a96903927445">GetSimpleNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path)</td></tr>
+<tr class="separator:a42c91ca3eeded6302163a96903927445 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad6ca35dc12323a3a970066beb4c63e84 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#ad6ca35dc12323a3a970066beb4c63e84">GetStructureNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path) const </td></tr>
+<tr class="memdesc:ad6ca35dc12323a3a970066beb4c63e84 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a structure node specified by the path relative to the node. <a href="#ad6ca35dc12323a3a970066beb4c63e84">More...</a><br /></td></tr>
+<tr class="separator:ad6ca35dc12323a3a970066beb4c63e84 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2abb6cdf40e6d4c91e30b736586e89dc inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a2abb6cdf40e6d4c91e30b736586e89dc">GetStructureNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path)</td></tr>
+<tr class="separator:a2abb6cdf40e6d4c91e30b736586e89dc inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2e17bda06b20439a0076ea2fae68594d inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a2e17bda06b20439a0076ea2fae68594d">GetArrayNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path) const </td></tr>
+<tr class="memdesc:a2e17bda06b20439a0076ea2fae68594d inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get an array node specified by the path relative to the node. <a href="#a2e17bda06b20439a0076ea2fae68594d">More...</a><br /></td></tr>
+<tr class="separator:a2e17bda06b20439a0076ea2fae68594d inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aba3fc78fab746460b1e7e01fe2e004b6 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#aba3fc78fab746460b1e7e01fe2e004b6">GetArrayNodeAtPath</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a> &amp;path)</td></tr>
+<tr class="separator:aba3fc78fab746460b1e7e01fe2e004b6 inherit pub_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCore_1_1INode__v1"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCore_1_1INode__v1')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td></tr>
+<tr class="memitem:a6d9067d66571727b622ffccade5225f0 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a6d9067d66571727b622ffccade5225f0">GetNodeType</a> () const =0</td></tr>
+<tr class="memdesc:a6d9067d66571727b622ffccade5225f0 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the node type of the node. <a href="#a6d9067d66571727b622ffccade5225f0">More...</a><br /></td></tr>
+<tr class="separator:a6d9067d66571727b622ffccade5225f0 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a47da5e5605d69d6d6ced761e7c39d24f inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a47da5e5605d69d6d6ced761e7c39d24f">GetParentNodeType</a> () const =0</td></tr>
+<tr class="memdesc:a47da5e5605d69d6d6ced761e7c39d24f inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the node type of the node's parent. <a href="#a47da5e5605d69d6d6ced761e7c39d24f">More...</a><br /></td></tr>
+<tr class="separator:a47da5e5605d69d6d6ced761e7c39d24f inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa087d2f94e42fdd5ece1bd22dfea66d5 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa087d2f94e42fdd5ece1bd22dfea66d5">SetName</a> (const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)=0</td></tr>
+<tr class="memdesc:aa087d2f94e42fdd5ece1bd22dfea66d5 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the local name of the node. <a href="#aa087d2f94e42fdd5ece1bd22dfea66d5">More...</a><br /></td></tr>
+<tr class="separator:aa087d2f94e42fdd5ece1bd22dfea66d5 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a68350da5edc0668811b9bb890d5777b9 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a68350da5edc0668811b9bb890d5777b9">GetName</a> () const =0</td></tr>
+<tr class="memdesc:a68350da5edc0668811b9bb890d5777b9 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the local name of the node. <a href="#a68350da5edc0668811b9bb890d5777b9">More...</a><br /></td></tr>
+<tr class="separator:a68350da5edc0668811b9bb890d5777b9 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a55c6097b36412f9facc8a4cf7e898186 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a55c6097b36412f9facc8a4cf7e898186">SetNameSpace</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength)=0</td></tr>
+<tr class="memdesc:a55c6097b36412f9facc8a4cf7e898186 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the name space of the node. <a href="#a55c6097b36412f9facc8a4cf7e898186">More...</a><br /></td></tr>
+<tr class="separator:a55c6097b36412f9facc8a4cf7e898186 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2e8319347c3b01638027b4abbe72fda6 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2e8319347c3b01638027b4abbe72fda6">GetNameSpace</a> () const =0</td></tr>
+<tr class="memdesc:a2e8319347c3b01638027b4abbe72fda6 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the name space of the node. <a href="#a2e8319347c3b01638027b4abbe72fda6">More...</a><br /></td></tr>
+<tr class="separator:a2e8319347c3b01638027b4abbe72fda6 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a549f1adeea470827a6201b3b4c596f1e inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aa54f5ed241da9437ad01c1047a199f56">spIPath</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a549f1adeea470827a6201b3b4c596f1e">GetPath</a> () const =0</td></tr>
+<tr class="memdesc:a549f1adeea470827a6201b3b4c596f1e inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the path of the node from the root of the metadata. <a href="#a549f1adeea470827a6201b3b4c596f1e">More...</a><br /></td></tr>
+<tr class="separator:a549f1adeea470827a6201b3b4c596f1e inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af898813d17af58fb1a828d92a74d7dd3 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#af898813d17af58fb1a828d92a74d7dd3">QualifiersCount</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:af898813d17af58fb1a828d92a74d7dd3 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the count of the qualifiers attached with the node. <a href="#af898813d17af58fb1a828d92a74d7dd3">More...</a><br /></td></tr>
+<tr class="separator:af898813d17af58fb1a828d92a74d7dd3 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2866bcde949c37aeb72cdba8dddcac95 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2866bcde949c37aeb72cdba8dddcac95">GetQualifierNodeType</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const =0</td></tr>
+<tr class="memdesc:a2866bcde949c37aeb72cdba8dddcac95 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the type of the node's qualifier having specified namespace and name. <a href="#a2866bcde949c37aeb72cdba8dddcac95">More...</a><br /></td></tr>
+<tr class="separator:a2866bcde949c37aeb72cdba8dddcac95 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a5e6dd9a58a288f20fd0a667a30a2ae inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a5e6dd9a58a288f20fd0a667a30a2ae">InsertQualifier</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;node)=0</td></tr>
+<tr class="memdesc:a5a5e6dd9a58a288f20fd0a667a30a2ae inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inserts a given qualifier node. <a href="#a5a5e6dd9a58a288f20fd0a667a30a2ae">More...</a><br /></td></tr>
+<tr class="separator:a5a5e6dd9a58a288f20fd0a667a30a2ae inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a2692b8281984d9fe6de6c169332f2c inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a2692b8281984d9fe6de6c169332f2c">ReplaceQualifier</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;node)=0</td></tr>
+<tr class="memdesc:a5a2692b8281984d9fe6de6c169332f2c inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replaces a given qualifier node. <a href="#a5a2692b8281984d9fe6de6c169332f2c">More...</a><br /></td></tr>
+<tr class="separator:a5a2692b8281984d9fe6de6c169332f2c inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a87f03e9924418ae5f7b6fa63def6eee8 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a87f03e9924418ae5f7b6fa63def6eee8">RemoveQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)=0</td></tr>
+<tr class="memdesc:a87f03e9924418ae5f7b6fa63def6eee8 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes the qualifier node with the specified nameSpace and name. <a href="#a87f03e9924418ae5f7b6fa63def6eee8">More...</a><br /></td></tr>
+<tr class="separator:a87f03e9924418ae5f7b6fa63def6eee8 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3289deed9715f661f5f588dc38642baa inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a3289deed9715f661f5f588dc38642baa">IsArrayItem</a> () const =0</td></tr>
+<tr class="memdesc:a3289deed9715f661f5f588dc38642baa inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates whether the node is a direct child of an array node. <a href="#a3289deed9715f661f5f588dc38642baa">More...</a><br /></td></tr>
+<tr class="separator:a3289deed9715f661f5f588dc38642baa inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0d545f6b4b2b9760b63c902317c43a94 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a0d545f6b4b2b9760b63c902317c43a94">IsQualifierNode</a> () const =0</td></tr>
+<tr class="memdesc:a0d545f6b4b2b9760b63c902317c43a94 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates whether the node is a qualifier node. <a href="#a0d545f6b4b2b9760b63c902317c43a94">More...</a><br /></td></tr>
+<tr class="separator:a0d545f6b4b2b9760b63c902317c43a94 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2447e6ea34adbe073a639c703015db90 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2447e6ea34adbe073a639c703015db90">GetIndex</a> () const =0</td></tr>
+<tr class="memdesc:a2447e6ea34adbe073a639c703015db90 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the index of the node in case it is an array item. <a href="#a2447e6ea34adbe073a639c703015db90">More...</a><br /></td></tr>
+<tr class="separator:a2447e6ea34adbe073a639c703015db90 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adfd1ce7bd20268240769f8a6a405a8ee inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#adfd1ce7bd20268240769f8a6a405a8ee">HasQualifiers</a> () const =0</td></tr>
+<tr class="memdesc:adfd1ce7bd20268240769f8a6a405a8ee inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates whether the node has any qualifiers associated with it. <a href="#adfd1ce7bd20268240769f8a6a405a8ee">More...</a><br /></td></tr>
+<tr class="separator:adfd1ce7bd20268240769f8a6a405a8ee inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa288c34c9bccb73ae73b653f3c769ade inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa288c34c9bccb73ae73b653f3c769ade">HasContent</a> () const =0</td></tr>
+<tr class="memdesc:aa288c34c9bccb73ae73b653f3c769ade inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether the node has any content or not. return A bool value indicating the presence of contents in the node apart from qualifiers. <a href="#aa288c34c9bccb73ae73b653f3c769ade">More...</a><br /></td></tr>
+<tr class="separator:aa288c34c9bccb73ae73b653f3c769ade inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5075ad988ba61e055b6ee6bbeaf25e25 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5075ad988ba61e055b6ee6bbeaf25e25">IsEmpty</a> () const =0</td></tr>
+<tr class="memdesc:a5075ad988ba61e055b6ee6bbeaf25e25 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether the node is empty. return A bool value indicating whether the contents and qualifiers of a node are empty. <a href="#a5075ad988ba61e055b6ee6bbeaf25e25">More...</a><br /></td></tr>
+<tr class="separator:a5075ad988ba61e055b6ee6bbeaf25e25 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab78ba3aaadf4b0109e610505e753de50 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ab78ba3aaadf4b0109e610505e753de50">HasChanged</a> () const =0</td></tr>
+<tr class="memdesc:ab78ba3aaadf4b0109e610505e753de50 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the status about any change done to the node or its children or qualifiers. returns a bool value indicating whether some changes have been performed on the node or its children or qualifiers. for a simple node, true will be returned in scenarios like when the node's value or qualifiers are modified. for an array node or a structure node, true will be returned in scenarios like when the node's children or the node's qualifiers are modified. <a href="#ab78ba3aaadf4b0109e610505e753de50">More...</a><br /></td></tr>
+<tr class="separator:ab78ba3aaadf4b0109e610505e753de50 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a673b6b4d69b2c9d85f2fa440d413ace3 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a673b6b4d69b2c9d85f2fa440d413ace3">AcknowledgeChanges</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a673b6b4d69b2c9d85f2fa440d413ace3 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Acknowledges that changes for the node and its children and qualifiers have been taken care of. for a simple node, changes that will be acknowledged in scenarios like when the node's value or node's qualifiers were modified. for an array node or a structure node, changes will be acknowledged in scenarios like when the node's children were or the node's qualifiers were modified. <a href="#a673b6b4d69b2c9d85f2fa440d413ace3">More...</a><br /></td></tr>
+<tr class="separator:a673b6b4d69b2c9d85f2fa440d413ace3 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4b615b0eef081f3c23385f28728aa462 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4b615b0eef081f3c23385f28728aa462">Clear</a> (bool contents=true, bool qualifiers=true)=0</td></tr>
+<tr class="memdesc:a4b615b0eef081f3c23385f28728aa462 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the contents of the node. <a href="#a4b615b0eef081f3c23385f28728aa462">More...</a><br /></td></tr>
+<tr class="separator:a4b615b0eef081f3c23385f28728aa462 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2d613694adcedb569145aff06d0bc595 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2d613694adcedb569145aff06d0bc595">Clone</a> (bool ignoreEmptyNodes=false, bool ignoreNodesWithOnlyQualifiers=false) const =0</td></tr>
+<tr class="memdesc:a2d613694adcedb569145aff06d0bc595 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual copy constructor. <a href="#a2d613694adcedb569145aff06d0bc595">More...</a><br /></td></tr>
+<tr class="separator:a2d613694adcedb569145aff06d0bc595 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aee7e1f35ac174874234ba5e913a6bfaa inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">spcINode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aee7e1f35ac174874234ba5e913a6bfaa">GetParent</a> () const </td></tr>
+<tr class="memdesc:aee7e1f35ac174874234ba5e913a6bfaa inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the parent node of the node. <a href="#aee7e1f35ac174874234ba5e913a6bfaa">More...</a><br /></td></tr>
+<tr class="separator:aee7e1f35ac174874234ba5e913a6bfaa inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4533c1d11fc2d32c166c9ce05fe01b3c inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4533c1d11fc2d32c166c9ce05fe01b3c">GetParent</a> ()=0</td></tr>
+<tr class="separator:a4533c1d11fc2d32c166c9ce05fe01b3c inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9972ca54948952083a930166448c05c0 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab423c366f29043e79694f805bceddb56">spcINodeIterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a9972ca54948952083a930166448c05c0">QualifiersIterator</a> () const </td></tr>
+<tr class="separator:a9972ca54948952083a930166448c05c0 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa168f37bc38763df55fb1022d55886bd inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a5386a735d9eb66d5859e4657dfeebb7c">spINodeIterator</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa168f37bc38763df55fb1022d55886bd">QualifiersIterator</a> ()=0</td></tr>
+<tr class="separator:aa168f37bc38763df55fb1022d55886bd inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a96a99fa56a2b088691ecad5a0cf6e54d inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">spcINode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a96a99fa56a2b088691ecad5a0cf6e54d">GetQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const </td></tr>
+<tr class="memdesc:a96a99fa56a2b088691ecad5a0cf6e54d inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the qualifier of the node having specified namespace and name. <a href="#a96a99fa56a2b088691ecad5a0cf6e54d">More...</a><br /></td></tr>
+<tr class="separator:a96a99fa56a2b088691ecad5a0cf6e54d inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7701069162b4f677026624a5f2b3f788 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a7701069162b4f677026624a5f2b3f788">GetQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)=0</td></tr>
+<tr class="separator:a7701069162b4f677026624a5f2b3f788 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1524d74e397863cb9324838862f70d7b inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a1524d74e397863cb9324838862f70d7b">GetSimpleQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const </td></tr>
+<tr class="memdesc:a1524d74e397863cb9324838862f70d7b inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the node's qualifier having specified name space and name as simple node. <a href="#a1524d74e397863cb9324838862f70d7b">More...</a><br /></td></tr>
+<tr class="separator:a1524d74e397863cb9324838862f70d7b inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2831fe03981afd9af12e775bda89361e inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2831fe03981afd9af12e775bda89361e">GetSimpleQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)</td></tr>
+<tr class="separator:a2831fe03981afd9af12e775bda89361e inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a844a40cd69e0d87226ce1146d733edd6 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a844a40cd69e0d87226ce1146d733edd6">GetStructureQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const </td></tr>
+<tr class="memdesc:a844a40cd69e0d87226ce1146d733edd6 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the node's qualifier having specified name space and name as structure node. <a href="#a844a40cd69e0d87226ce1146d733edd6">More...</a><br /></td></tr>
+<tr class="separator:a844a40cd69e0d87226ce1146d733edd6 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4fb3c837b8c28501b2e7a3376a2cf382 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4fb3c837b8c28501b2e7a3376a2cf382">GetStructureQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)</td></tr>
+<tr class="separator:a4fb3c837b8c28501b2e7a3376a2cf382 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab55c9dad49840d58a1c2c16b9f1962ad inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ab55c9dad49840d58a1c2c16b9f1962ad">GetArrayQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const </td></tr>
+<tr class="memdesc:ab55c9dad49840d58a1c2c16b9f1962ad inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the node's qualifier having specified name space and name as an array node. <a href="#ab55c9dad49840d58a1c2c16b9f1962ad">More...</a><br /></td></tr>
+<tr class="separator:ab55c9dad49840d58a1c2c16b9f1962ad inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a2e68d1345ed6ca2e5d1bfada42b13f inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a2e68d1345ed6ca2e5d1bfada42b13f">GetArrayQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)</td></tr>
+<tr class="separator:a5a2e68d1345ed6ca2e5d1bfada42b13f inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeb9797165d96d06998de79dd19a9f846 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aeb9797165d96d06998de79dd19a9f846">ConvertToSimpleNode</a> () const </td></tr>
+<tr class="memdesc:aeb9797165d96d06998de79dd19a9f846 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts Node to a simple node, if possible. <a href="#aeb9797165d96d06998de79dd19a9f846">More...</a><br /></td></tr>
+<tr class="separator:aeb9797165d96d06998de79dd19a9f846 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad8e7ef140cb5ff094789abfcc879c94b inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ad8e7ef140cb5ff094789abfcc879c94b">ConvertToSimpleNode</a> ()=0</td></tr>
+<tr class="separator:ad8e7ef140cb5ff094789abfcc879c94b inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5ea317fcd59694184089a9774c866b22 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5ea317fcd59694184089a9774c866b22">ConvertToStructureNode</a> () const </td></tr>
+<tr class="memdesc:a5ea317fcd59694184089a9774c866b22 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts Node to a structure node type, if possible. <a href="#a5ea317fcd59694184089a9774c866b22">More...</a><br /></td></tr>
+<tr class="separator:a5ea317fcd59694184089a9774c866b22 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad5f62a4ae9a9630c8106a04bd0c2a0a3 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ad5f62a4ae9a9630c8106a04bd0c2a0a3">ConvertToStructureNode</a> ()=0</td></tr>
+<tr class="separator:ad5f62a4ae9a9630c8106a04bd0c2a0a3 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af180be62ecd26edf90df0fe3ea75941e inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#af180be62ecd26edf90df0fe3ea75941e">ConvertToArrayNode</a> () const </td></tr>
+<tr class="memdesc:af180be62ecd26edf90df0fe3ea75941e inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts Node to an array node type, if possible. <a href="#af180be62ecd26edf90df0fe3ea75941e">More...</a><br /></td></tr>
+<tr class="separator:af180be62ecd26edf90df0fe3ea75941e inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0d67ad7708fb6f007ea1152b79e65f49 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a0d67ad7708fb6f007ea1152b79e65f49">ConvertToArrayNode</a> ()=0</td></tr>
+<tr class="separator:a0d67ad7708fb6f007ea1152b79e65f49 inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a08f9ed4dee6c899f65eb51e3d7f9858d inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a1e81ce748e90e850d0a48b0b5943fce2">spcIMetadata</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a08f9ed4dee6c899f65eb51e3d7f9858d">ConvertToMetadata</a> () const </td></tr>
+<tr class="memdesc:a08f9ed4dee6c899f65eb51e3d7f9858d inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts Node to a metadata node type, if possible. <a href="#a08f9ed4dee6c899f65eb51e3d7f9858d">More...</a><br /></td></tr>
+<tr class="separator:a08f9ed4dee6c899f65eb51e3d7f9858d inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a72dc534e1af718599ac185563a02612a inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a7f1de39fd79aeac4402eba73cb1ffe82">spIMetadata</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a72dc534e1af718599ac185563a02612a">ConvertToMetadata</a> ()=0</td></tr>
+<tr class="separator:a72dc534e1af718599ac185563a02612a inherit pub_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1ISharedObject')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td></tr>
+<tr class="memitem:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc">Acquire</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the clients of the object to indicate that he has acquired the shared ownership of the object. <a href="#ab90d4ec1fcd975a7ac62dcb866335cdc">More...</a><br /></td></tr>
+<tr class="separator:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3">Release</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the clients of the object to indicate he has released his shared ownership of the object. If this being the last client than this function should call Destroy to delete and release the memory. <a href="#abf5a54e09f87366170ea19c618f68bc3">More...</a><br /></td></tr>
+<tr class="separator:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
+<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
+<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a> ()</td></tr>
+<tr class="memdesc:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to an interface object implementing the requested version. <a href="#ad6539461695decfaea8a44798db51e54">More...</a><br /></td></tr>
+<tr class="separator:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
+<tr class="memitem:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> const requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070">GetInterfacePointer</a> () const </td></tr>
+<tr class="memdesc:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to a const interface object implementing the requested version. <a href="#ab93a940e2946c14a76ebbd9552cab070">More...</a><br /></td></tr>
+<tr class="separator:ab93a940e2946c14a76ebbd9552cab070 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1IThreadSafe')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td></tr>
+<tr class="memitem:afe35614cb88e2bdb32996cf4ac15b211 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#afe35614cb88e2bdb32996cf4ac15b211">EnableThreadSafety</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:afe35614cb88e2bdb32996cf4ac15b211 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables the thread safety on an object. <a href="#afe35614cb88e2bdb32996cf4ac15b211">More...</a><br /></td></tr>
+<tr class="separator:afe35614cb88e2bdb32996cf4ac15b211 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a214bb1b5840dbd5576e764dd2220b261 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a214bb1b5840dbd5576e764dd2220b261">DisableThreadSafety</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="memdesc:a214bb1b5840dbd5576e764dd2220b261 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disables the thread safety on an object. <a href="#a214bb1b5840dbd5576e764dd2220b261">More...</a><br /></td></tr>
+<tr class="separator:a214bb1b5840dbd5576e764dd2220b261 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a261e2f6af96b75015e5f8318f32be7f9 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a261e2f6af96b75015e5f8318f32be7f9">IsThreadSafe</a> () const =0</td></tr>
+<tr class="memdesc:a261e2f6af96b75015e5f8318f32be7f9 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Informs whether object can be used across multiple threads or not. <a href="#a261e2f6af96b75015e5f8318f32be7f9">More...</a><br /></td></tr>
+<tr class="separator:a261e2f6af96b75015e5f8318f32be7f9 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr class="memitem:ab39f8d743ba67fc4e6a21b08b03fdde2"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#ab39f8d743ba67fc4e6a21b08b03fdde2">CreateStructureNode</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)</td></tr>
+<tr class="memdesc:ab39f8d743ba67fc4e6a21b08b03fdde2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a structure node which is not part of any metadata document. <a href="#ab39f8d743ba67fc4e6a21b08b03fdde2">More...</a><br /></td></tr>
+<tr class="separator:ab39f8d743ba67fc4e6a21b08b03fdde2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:a0cdcce18c6ebbb1764286e3e2456c694"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a0cdcce18c6ebbb1764286e3e2456c694">~IStructureNode_v1</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:a0cdcce18c6ebbb1764286e3e2456c694"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCore_1_1ICompositeNode__v1')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">AdobeXMPCore::ICompositeNode_v1</a></td></tr>
+<tr class="memitem:a51af220e29b40e8520ae5765f28515bf inherit pro_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a51af220e29b40e8520ae5765f28515bf">~ICompositeNode_v1</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:a51af220e29b40e8520ae5765f28515bf inherit pro_methods_classAdobeXMPCore_1_1ICompositeNode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCore_1_1INode__v1"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCore_1_1INode__v1')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td></tr>
+<tr class="memitem:affdbed044179bbde65ffc28b20e28ecb inherit pro_methods_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#affdbed044179bbde65ffc28b20e28ecb">~INode_v1</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:affdbed044179bbde65ffc28b20e28ecb inherit pro_methods_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1ISharedObject')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td></tr>
+<tr class="memitem:a5869ff89d0b7dd0a7b525401a1d57b31 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31">~ISharedObject</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
+<tr class="separator:a5869ff89d0b7dd0a7b525401a1d57b31 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afcb42109aed83c3b0c133bc413388037 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#afcb42109aed83c3b0c133bc413388037">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:afcb42109aed83c3b0c133bc413388037 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
+<tr class="memitem:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a> ()</td></tr>
+<tr class="separator:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1IThreadSafe"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1IThreadSafe')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td></tr>
+<tr class="memitem:a0f31eb9677c4af06288319e363c21ebc inherit pro_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a0f31eb9677c4af06288319e363c21ebc">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
+<tr class="separator:a0f31eb9677c4af06288319e363c21ebc inherit pro_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pub_types_classAdobeXMPCore_1_1INode__v1"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classAdobeXMPCore_1_1INode__v1')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classAdobeXMPCore_1_1INode__v1.html">AdobeXMPCore::INode_v1</a></td></tr>
+<tr class="memitem:a46b01045c1addbc8f444bd21384b7913 inherit pub_types_classAdobeXMPCore_1_1INode__v1"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> { <br />
+&#160;&#160;<a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913aae32cc414cc7adaf3b2a1c375f2cb3bb">kNTNone</a> = 0,
+<a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a97e0c4fb69029d0d152c068c10736234">kNTSimple</a> = 1,
+<a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a60c6b4c3dfc99d8584866f5f18ff2610">kNTArray</a> = 1 &lt;&lt; 1,
+<a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a7542b80b3b688cd3d210d62d12dbe471">kNTStructure</a> = 1 &lt;&lt; 2,
+<br />
+&#160;&#160;<a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a68bac77fd8140a60490eb78f0b533e21">kNTAll</a> = kAllBits
+<br />
+ }<tr class="memdesc:a46b01045c1addbc8f444bd21384b7913"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates various types of node available in XMP Data Model like simple, array and structure. <a href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:a46b01045c1addbc8f444bd21384b7913 inherit pub_types_classAdobeXMPCore_1_1INode__v1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Version1 of the interface that represents a structure Node of XMP DOM. </p>
+<p>Provides all the functions to get and set various properties of the structure node. </p><dl class="section attention"><dt>Attention</dt><dd>Support multi threading through locks but can be enabled/disabled by the client. By default every object created does not support multi-threading. </dd></dl>
+
+<p>Definition at line <a class="el" href="IStructureNode_8h_source.html#l00023">23</a> of file <a class="el" href="IStructureNode_8h_source.html">IStructureNode.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a0cdcce18c6ebbb1764286e3e2456c694"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual AdobeXMPCore::IStructureNode_v1::~IStructureNode_v1 </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Destructor </p>
+
+<p>Definition at line <a class="el" href="IStructureNode_8h_source.html#l00241">241</a> of file <a class="el" href="IStructureNode_8h_source.html">IStructureNode.h</a>.</p>
+
+<p>References <a class="el" href="XMPCommonDefines_8h_source.html#l00117">__NOTHROW__</a>, and <a class="el" href="XMPCommonDefines_8h_source.html#l00107">REQ_FRIEND_CLASS_DECLARATION</a>.</p>
+<div class="fragment"><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;{}</div></div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="ab39f8d743ba67fc4e6a21b08b03fdde2"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a> AdobeXMPCore::IStructureNode_v1::CreateStructureNode </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>nameSpace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameSpaceLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameLength</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Creates a structure node which is not part of any metadata document. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpace</td><td>Pointer to a constant char buffer containing name space URI of the structure node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpaceLength</td><td>Number of characters in nameSpace. In case nameSpace is null terminated set it to <a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Pointer to a constant char buffer containing local name of the structure node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameLength</td><td>Number of characters in name. In case name is null terminated set it to <a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to a AdobeXMPCore::IStructureNode object. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in the following cases:<ol type="1">
+<li>nameSpace is NULL or its contents are empty.</li>
+<li>name is NULL or its contents are empty. </li>
+</ol>
+</dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a8ee43418308bf6f80d1fc90eb84f5db0"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a> AdobeXMPCore::IStructureNode_v1::GetArrayNode </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>nameSpace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameSpaceLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameLength</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Gets the node's child having specified name space and name as an array node. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpace</td><td>Pointer to a constant char buffer containing name space URI of the child node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpaceLength</td><td>Number of characters in nameSpace. In case nameSpace is null terminated set it to <a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Pointer to a constant char buffer containing local name of the child node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameLength</td><td>Number of characters in name. In case name is null terminated set it to <a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to const or non const ISimpleNode object containing child. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>In case no child exists with the specified nameSpace and name combination then an invalid shared pointer is returned. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
+<li>a child exists with the specified nameSpace and name combination but is not an array node. </li>
+</ul>
+</dd></dl>
+
+<p>Definition at line <a class="el" href="IStructureNode_8h_source.html#l00122">122</a> of file <a class="el" href="IStructureNode_8h_source.html">IStructureNode.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keyword">auto</span> node = <a class="code" href="classAdobeXMPCore_1_1IStructureNode__v1.html#afd94de430e29982143eb04315b954b24">GetNode</a>( nameSpace, nameSpaceLength, name, nameLength );</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToArrayNode();</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a>();</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; }</div><div class="ttc" id="classAdobeXMPCore_1_1IStructureNode__v1_html_afd94de430e29982143eb04315b954b24"><div class="ttname"><a href="classAdobeXMPCore_1_1IStructureNode__v1.html#afd94de430e29982143eb04315b954b24">AdobeXMPCore::IStructureNode_v1::GetNode</a></div><div class="ttdeci">XMP_PRIVATE spcINode GetNode(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </div><div class="ttdoc">Gets the child of the node having specified namespace and name. </div><div class="ttdef"><b>Definition:</b> <a href="IStructureNode_8h_source.html#l00051">IStructureNode.h:51</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a4ea338a9eed923abf6aba47a27926a0f"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">AdobeXMPCore::spcIArrayNode</a></div><div class="ttdeci">shared_ptr&lt; const IArrayNode &gt; spcIArrayNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00114">XMPCoreFwdDeclarations.h:114</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="af8fe4c8e7c9a5262b1125aea6606fe2e"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a> AdobeXMPCore::IStructureNode_v1::GetArrayNode </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>nameSpace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameSpaceLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameLength</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="IStructureNode_8h_source.html#l00128">128</a> of file <a class="el" href="IStructureNode_8h_source.html">IStructureNode.h</a>.</p>
+
+<p>References <a class="el" href="XMPCommonDefines_8h_source.html#l00117">__NOTHROW__</a>, <a class="el" href="namespaceAdobeXMPCore.html#a099de3a79749ee161daf59313861702e">AdobeXMPCore::kIStructureNodeID()</a>, and <a class="el" href="XMP__Environment_8h_source.html#l00189">XMP_PRIVATE</a>.</p>
+<div class="fragment"><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">auto</span> node = <a class="code" href="classAdobeXMPCore_1_1IStructureNode__v1.html#afd94de430e29982143eb04315b954b24">GetNode</a>( nameSpace, nameSpaceLength, name, nameLength );</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToArrayNode();</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a>();</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; }</div><div class="ttc" id="classAdobeXMPCore_1_1IStructureNode__v1_html_afd94de430e29982143eb04315b954b24"><div class="ttname"><a href="classAdobeXMPCore_1_1IStructureNode__v1.html#afd94de430e29982143eb04315b954b24">AdobeXMPCore::IStructureNode_v1::GetNode</a></div><div class="ttdeci">XMP_PRIVATE spcINode GetNode(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </div><div class="ttdoc">Gets the child of the node having specified namespace and name. </div><div class="ttdef"><b>Definition:</b> <a href="IStructureNode_8h_source.html#l00051">IStructureNode.h:51</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a24e8e82d63d879d77408ce5c7e30c609"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">AdobeXMPCore::spIArrayNode</a></div><div class="ttdeci">shared_ptr&lt; IArrayNode &gt; spIArrayNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00113">XMPCoreFwdDeclarations.h:113</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a1463dda9dea83f54c69ad72f105f5eff"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL AdobeXMPCore::IStructureNode_v1::GetChildNodeType </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>nameSpace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameSpaceLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameLength</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Gets the type of the node's child having specified namespace and name. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpace</td><td>Pointer to a constant char buffer containing name space URI of the child node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpaceLength</td><td>Number of characters in nameSpace. In case nameSpace is null terminated set it to <a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Pointer to a constant char buffer containing local name of the child node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameLength</td><td>Number of characters in name. In case name is null terminated set it to <a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>An object of type <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913" title="Indicates various types of node available in XMP Data Model like simple, array and structure...">eNodeType</a> indicating the type of the node's child. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>In case no child exists with the specified nameSpace and name combination then an eNodeType::kNTNone is returned. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="afd94de430e29982143eb04315b954b24"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">spcINode</a> AdobeXMPCore::IStructureNode_v1::GetNode </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>nameSpace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameSpaceLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameLength</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Gets the child of the node having specified namespace and name. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpace</td><td>Pointer to a constant char buffer containing name space URI of the child node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpaceLength</td><td>Number of characters in nameSpace. In case nameSpace is null terminated set it to <a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Pointer to a constant char buffer containing local name of the child node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameLength</td><td>Number of characters in name. In case name is null terminated set it to <a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to either a const or const child node. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>In case no child exists with the specified nameSpace and name combination then an invalid shared pointer is returned. </dd></dl>
+
+<p>Definition at line <a class="el" href="IStructureNode_8h_source.html#l00051">51</a> of file <a class="el" href="IStructureNode_8h_source.html">IStructureNode.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; {</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> IStructureNode_v1 * <span class="keyword">&gt;</span>( this )-&gt;<a class="code" href="classAdobeXMPCore_1_1IStructureNode__v1.html#afd94de430e29982143eb04315b954b24">GetNode</a>( nameSpace, nameSpaceLength, name, nameLength );</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; }</div><div class="ttc" id="classAdobeXMPCore_1_1IStructureNode__v1_html_afd94de430e29982143eb04315b954b24"><div class="ttname"><a href="classAdobeXMPCore_1_1IStructureNode__v1.html#afd94de430e29982143eb04315b954b24">AdobeXMPCore::IStructureNode_v1::GetNode</a></div><div class="ttdeci">XMP_PRIVATE spcINode GetNode(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </div><div class="ttdoc">Gets the child of the node having specified namespace and name. </div><div class="ttdef"><b>Definition:</b> <a href="IStructureNode_8h_source.html#l00051">IStructureNode.h:51</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="af5ce2401c3613c06ccb8b8fa69af4a1c"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL AdobeXMPCore::IStructureNode_v1::GetNode </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>nameSpace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameSpaceLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameLength</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aaf000a83b1448eb8453f37fc42543ae7"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a> AdobeXMPCore::IStructureNode_v1::GetSimpleNode </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>nameSpace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameSpaceLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameLength</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Gets the node's child having specified name space and name as simple node. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpace</td><td>Pointer to a constant char buffer containing name space URI of the child node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpaceLength</td><td>Number of characters in nameSpace. In case nameSpace is null terminated set it to <a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Pointer to a constant char buffer containing local name of the child node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameLength</td><td>Number of characters in name. In case name is null terminated set it to <a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to const or non const ISimpleNode object containing child. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>In case no child exists with the specified nameSpace and name combination then an invalid shared pointer is returned. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
+<li>a child exists with the specified nameSpace and name combination but is not a simple node. </li>
+</ul>
+</dd></dl>
+
+<p>Definition at line <a class="el" href="IStructureNode_8h_source.html#l00070">70</a> of file <a class="el" href="IStructureNode_8h_source.html">IStructureNode.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; {</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">auto</span> node = <a class="code" href="classAdobeXMPCore_1_1IStructureNode__v1.html#afd94de430e29982143eb04315b954b24">GetNode</a>( nameSpace, nameSpaceLength, name, nameLength );</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToSimpleNode();</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a>();</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div><div class="ttc" id="classAdobeXMPCore_1_1IStructureNode__v1_html_afd94de430e29982143eb04315b954b24"><div class="ttname"><a href="classAdobeXMPCore_1_1IStructureNode__v1.html#afd94de430e29982143eb04315b954b24">AdobeXMPCore::IStructureNode_v1::GetNode</a></div><div class="ttdeci">XMP_PRIVATE spcINode GetNode(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </div><div class="ttdoc">Gets the child of the node having specified namespace and name. </div><div class="ttdef"><b>Definition:</b> <a href="IStructureNode_8h_source.html#l00051">IStructureNode.h:51</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a4cb671d44948c7505c33431ec12f6c1f"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">AdobeXMPCore::spcISimpleNode</a></div><div class="ttdeci">shared_ptr&lt; const ISimpleNode &gt; spcISimpleNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00078">XMPCoreFwdDeclarations.h:78</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a23ea406052e9201f3b35e59cc2b206a5"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a> AdobeXMPCore::IStructureNode_v1::GetSimpleNode </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>nameSpace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameSpaceLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameLength</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="IStructureNode_8h_source.html#l00076">76</a> of file <a class="el" href="IStructureNode_8h_source.html">IStructureNode.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">auto</span> node = <a class="code" href="classAdobeXMPCore_1_1IStructureNode__v1.html#afd94de430e29982143eb04315b954b24">GetNode</a>( nameSpace, nameSpaceLength, name, nameLength );</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToSimpleNode();</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a>();</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div><div class="ttc" id="classAdobeXMPCore_1_1IStructureNode__v1_html_afd94de430e29982143eb04315b954b24"><div class="ttname"><a href="classAdobeXMPCore_1_1IStructureNode__v1.html#afd94de430e29982143eb04315b954b24">AdobeXMPCore::IStructureNode_v1::GetNode</a></div><div class="ttdeci">XMP_PRIVATE spcINode GetNode(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </div><div class="ttdoc">Gets the child of the node having specified namespace and name. </div><div class="ttdef"><b>Definition:</b> <a href="IStructureNode_8h_source.html#l00051">IStructureNode.h:51</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ab20ecb8d094c1dd81cb278370b746343"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">AdobeXMPCore::spISimpleNode</a></div><div class="ttdeci">shared_ptr&lt; ISimpleNode &gt; spISimpleNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00077">XMPCoreFwdDeclarations.h:77</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="ab815d3b2335f27dccc15472196696e08"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a> AdobeXMPCore::IStructureNode_v1::GetStructureNode </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>nameSpace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameSpaceLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameLength</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Gets the node's child having specified name space and name as structure node. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpace</td><td>Pointer to a constant char buffer containing name space URI of the child node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpaceLength</td><td>Number of characters in nameSpace. In case nameSpace is null terminated set it to <a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Pointer to a constant char buffer containing local name of the child node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameLength</td><td>Number of characters in name. In case name is null terminated set it to <a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to const or non const IStructureNode object containing child. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>In case no child exists with the specified nameSpace and name combination then an invalid shared pointer is returned. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
+<li>a child exists with the specified nameSpace and name combination but is not a structure node. </li>
+</ul>
+</dd></dl>
+
+<p>Definition at line <a class="el" href="IStructureNode_8h_source.html#l00096">96</a> of file <a class="el" href="IStructureNode_8h_source.html">IStructureNode.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">auto</span> node = <a class="code" href="classAdobeXMPCore_1_1IStructureNode__v1.html#afd94de430e29982143eb04315b954b24">GetNode</a>( nameSpace, nameSpaceLength, name, nameLength );</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToStructureNode();</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a>();</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; }</div><div class="ttc" id="classAdobeXMPCore_1_1IStructureNode__v1_html_afd94de430e29982143eb04315b954b24"><div class="ttname"><a href="classAdobeXMPCore_1_1IStructureNode__v1.html#afd94de430e29982143eb04315b954b24">AdobeXMPCore::IStructureNode_v1::GetNode</a></div><div class="ttdeci">XMP_PRIVATE spcINode GetNode(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </div><div class="ttdoc">Gets the child of the node having specified namespace and name. </div><div class="ttdef"><b>Definition:</b> <a href="IStructureNode_8h_source.html#l00051">IStructureNode.h:51</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ab5807ab783087243a3676a19ad6f9b90"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">AdobeXMPCore::spcIStructureNode</a></div><div class="ttdeci">shared_ptr&lt; const IStructureNode &gt; spcIStructureNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00102">XMPCoreFwdDeclarations.h:102</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a9b380e96dca941b5f9c3143931f7f633"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a> AdobeXMPCore::IStructureNode_v1::GetStructureNode </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>nameSpace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameSpaceLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameLength</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="IStructureNode_8h_source.html#l00102">102</a> of file <a class="el" href="IStructureNode_8h_source.html">IStructureNode.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; {</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">auto</span> node = <a class="code" href="classAdobeXMPCore_1_1IStructureNode__v1.html#afd94de430e29982143eb04315b954b24">GetNode</a>( nameSpace, nameSpaceLength, name, nameLength );</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToStructureNode();</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a>();</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; }</div><div class="ttc" id="classAdobeXMPCore_1_1IStructureNode__v1_html_afd94de430e29982143eb04315b954b24"><div class="ttname"><a href="classAdobeXMPCore_1_1IStructureNode__v1.html#afd94de430e29982143eb04315b954b24">AdobeXMPCore::IStructureNode_v1::GetNode</a></div><div class="ttdeci">XMP_PRIVATE spcINode GetNode(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const </div><div class="ttdoc">Gets the child of the node having specified namespace and name. </div><div class="ttdef"><b>Definition:</b> <a href="IStructureNode_8h_source.html#l00051">IStructureNode.h:51</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_a957c57fcbb47c704fc5c31cf36dcbde7"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">AdobeXMPCore::spIStructureNode</a></div><div class="ttdeci">shared_ptr&lt; IStructureNode &gt; spIStructureNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00101">XMPCoreFwdDeclarations.h:101</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a22d61015856c67f05237af9513e98ff7"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void APICALL AdobeXMPCore::IStructureNode_v1::InsertNode </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;&#160;</td>
+ <td class="paramname"><em>node</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Inserts a given node. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">node</td><td>Shared pointer to an object of AdobeXMPCore::INode containing the node to be inserted. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in following cases:<ol type="1">
+<li>given node is invalid.</li>
+<li>given node is already a child of some other node.</li>
+<li>there exists a node with the same nameSpace and name combination. </li>
+</ol>
+</dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a25d8ec1ee8031cb693bb8c8a8102c8f8"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL AdobeXMPCore::IStructureNode_v1::RemoveNode </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>nameSpace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameSpaceLength</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>nameLength</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Removes the node with the specified nameSpace and name. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpace</td><td>Pointer to a constant char buffer containing name space URI of the child node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameSpaceLength</td><td>Number of characters in nameSpace. In case nameSpace is null terminated set it to <a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Pointer to a constant char buffer containing local name of the child node. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">nameLength</td><td>Number of characters in name. In case name is null terminated set it to <a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to AdobeXMPCore::INode object containing node which is removed from the tree. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>In case no node exists with the given nameSpace and name combination an invalid shared pointer is returned. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a5764457c137c97a42af6ca156563e455"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL AdobeXMPCore::IStructureNode_v1::ReplaceNode </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;&#160;</td>
+ <td class="paramname"><em>node</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Replaces a given node. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">node</td><td>Shared pointer to an object of AdobeXMPCore::INode. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A shared pointer to the node being replaced. </dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in following cases:<ol type="1">
+<li>given node is invalid.</li>
+<li>given node is already a child of some other node.</li>
+<li>there exists no node with the same nameSpace and name combination. </li>
+</ol>
+</dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Type of the old existing node may/may not be same as that of new node. </dd></dl>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces/<a class="el" href="IStructureNode_8h_source.html">IStructureNode.h</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classAdobeXMPCore_1_1IStructureNode__v1.js b/docs/API/classAdobeXMPCore_1_1IStructureNode__v1.js
new file mode 100755
index 0000000..afdf554
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1IStructureNode__v1.js
@@ -0,0 +1,17 @@
+var classAdobeXMPCore_1_1IStructureNode__v1 =
+[
+ [ "~IStructureNode_v1", "classAdobeXMPCore_1_1IStructureNode__v1.html#a0cdcce18c6ebbb1764286e3e2456c694", null ],
+ [ "CreateStructureNode", "classAdobeXMPCore_1_1IStructureNode__v1.html#ab39f8d743ba67fc4e6a21b08b03fdde2", null ],
+ [ "GetArrayNode", "classAdobeXMPCore_1_1IStructureNode__v1.html#a8ee43418308bf6f80d1fc90eb84f5db0", null ],
+ [ "GetArrayNode", "classAdobeXMPCore_1_1IStructureNode__v1.html#af8fe4c8e7c9a5262b1125aea6606fe2e", null ],
+ [ "GetChildNodeType", "classAdobeXMPCore_1_1IStructureNode__v1.html#a1463dda9dea83f54c69ad72f105f5eff", null ],
+ [ "GetNode", "classAdobeXMPCore_1_1IStructureNode__v1.html#afd94de430e29982143eb04315b954b24", null ],
+ [ "GetNode", "classAdobeXMPCore_1_1IStructureNode__v1.html#af5ce2401c3613c06ccb8b8fa69af4a1c", null ],
+ [ "GetSimpleNode", "classAdobeXMPCore_1_1IStructureNode__v1.html#aaf000a83b1448eb8453f37fc42543ae7", null ],
+ [ "GetSimpleNode", "classAdobeXMPCore_1_1IStructureNode__v1.html#a23ea406052e9201f3b35e59cc2b206a5", null ],
+ [ "GetStructureNode", "classAdobeXMPCore_1_1IStructureNode__v1.html#ab815d3b2335f27dccc15472196696e08", null ],
+ [ "GetStructureNode", "classAdobeXMPCore_1_1IStructureNode__v1.html#a9b380e96dca941b5f9c3143931f7f633", null ],
+ [ "InsertNode", "classAdobeXMPCore_1_1IStructureNode__v1.html#a22d61015856c67f05237af9513e98ff7", null ],
+ [ "RemoveNode", "classAdobeXMPCore_1_1IStructureNode__v1.html#a25d8ec1ee8031cb693bb8c8a8102c8f8", null ],
+ [ "ReplaceNode", "classAdobeXMPCore_1_1IStructureNode__v1.html#a5764457c137c97a42af6ca156563e455", null ]
+]; \ No newline at end of file
diff --git a/docs/API/classAdobeXMPCore_1_1IStructureNode__v1.png b/docs/API/classAdobeXMPCore_1_1IStructureNode__v1.png
new file mode 100755
index 0000000..5349f3f
--- /dev/null
+++ b/docs/API/classAdobeXMPCore_1_1IStructureNode__v1.png
Binary files differ
diff --git a/docs/API/classTXMPFiles-members.html b/docs/API/classTXMPFiles-members.html
index bd68eab..a8095bc 100644..100755
--- a/docs/API/classTXMPFiles-members.html
+++ b/docs/API/classTXMPFiles-members.html
@@ -1,108 +1,93 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: Member List</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
- <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
- <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classTXMPFiles.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">TXMPFiles&lt; tStringObj &gt; Member List</div> </div>
+</div><!--header-->
<div class="contents">
-<h1>TXMPFiles&lt; tStringObj &gt; Member List</h1>This is the complete list of members for <a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a>, including all inherited members.<table>
- <tr class="memlist"><td><a class="el" href="classTXMPFiles.html#a29a11a1539d6300da3fb4c7e9ea02bb6">CanPutXMP</a>(const SXMPMeta &amp;xmpObj)</td><td><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPFiles.html#a1d3f32c2b95659ada198775e2f67c808">CanPutXMP</a>(const tStringObj &amp;xmpPacket)</td><td><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPFiles.html#a2303dfcc00f108bda202600e3da9c109">CanPutXMP</a>(XMP_StringPtr xmpPacket, XMP_StringLen xmpLength=kXMP_UseNullTermination)</td><td><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPFiles.html#a07b7c4b44fb0e0a7d115ddd5ba22f926">CheckFileFormat</a>(XMP_StringPtr filePath)</td><td><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPFiles.html#a7f505664c41d7304fb757d6009b0751c">CheckPackageFormat</a>(XMP_StringPtr folderPath)</td><td><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927">CloseFile</a>(XMP_OptionBits closeFlags=0)</td><td><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPFiles.html#a03e6c681e827666690f0e5567b0b2a8a">GetAssociatedResources</a>(XMP_StringPtr filePath, std::vector&lt; tStringObj &gt; *resourceList, XMP_FileFormat format=kXMP_UnknownFile, XMP_OptionBits options=0)</td><td><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPFiles.html#af9931d081cb19f98c81e41786030765b">GetFileInfo</a>(tStringObj *filePath=0, XMP_OptionBits *openFlags=0, XMP_FileFormat *format=0, XMP_OptionBits *handlerFlags=0)</td><td><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPFiles.html#a0de588c4b98086206b3a5d737012106d">GetFileModDate</a>(XMP_StringPtr filePath, XMP_DateTime *modDate, XMP_FileFormat *format=0, XMP_OptionBits options=0)</td><td><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPFiles.html#acb9e16a1477ec67fa6da6d736a9bc131">GetFormatInfo</a>(XMP_FileFormat format, XMP_OptionBits *handlerFlags=0)</td><td><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPFiles.html#a311fc36fdf7270fe05b1c531cdbbd009">GetInternalRef</a>()</td><td><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPFiles.html#a6e521c034728b59ab55213a9d8203d1e">GetVersionInfo</a>(XMP_VersionInfo *versionInfo)</td><td><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPFiles.html#a42ca0bbc5ac66a8de1710e03a7ff17b3">GetXMP</a>(SXMPMeta *xmpObj=0, tStringObj *xmpPacket=0, XMP_PacketInfo *packetInfo=0)</td><td><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPFiles.html#a0874bbbf41c9490abfb613bfe297327d">Initialize</a>()</td><td><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPFiles.html#a794e1830a84a6328eaa1995ba5aa6874">Initialize</a>(XMP_OptionBits options)</td><td><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPFiles.html#abf0defebf7ca7d2cba7aed3c5dc107df">Initialize</a>(const char *pluginFolder, const char *plugins=NULL)</td><td><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPFiles.html#acc4b3bc2109fa98b4083df0d974f7dfb">Initialize</a>(XMP_OptionBits options, const char *pluginFolder, const char *plugins=NULL)</td><td><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPFiles.html#a6dfa135d53143d45e5ff22efa554398e">IsMetadataWritable</a>(XMP_StringPtr filePath, bool *writable, XMP_FileFormat format=kXMP_UnknownFile, XMP_OptionBits options=0)</td><td><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb">OpenFile</a>(XMP_StringPtr filePath, XMP_FileFormat format=kXMP_UnknownFile, XMP_OptionBits openFlags=0)</td><td><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPFiles.html#acfef1688f3a62e2f465bb3a27da7b4ac">OpenFile</a>(const tStringObj &amp;filePath, XMP_FileFormat format=kXMP_UnknownFile, XMP_OptionBits openFlags=0)</td><td><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPFiles.html#a3f1483fcc92860460d3772216dfaef81">operator=</a>(const TXMPFiles&lt; tStringObj &gt; &amp;rhs)</td><td><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPFiles.html#ad3f7babdc07c7de0d0cd9a3362b4710a">PutXMP</a>(const SXMPMeta &amp;xmpObj)</td><td><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPFiles.html#ada77eab74c3440659db3122f6ec8b7f4">PutXMP</a>(const tStringObj &amp;xmpPacket)</td><td><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPFiles.html#a502ed01119e0421413e773f4f42683ec">PutXMP</a>(XMP_StringPtr xmpPacket, XMP_StringLen xmpLength=kXMP_UseNullTermination)</td><td><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPFiles.html#a8e37b25dd1cba1e9a3f45037022717f2">ResetErrorCallbackLimit</a>(XMP_Uns32 limit=1)</td><td><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPFiles.html#a7b86c130fdbd54b5ac158ec3fee93777">SetAbortProc</a>(XMP_AbortProc abortProc, void *abortArg)</td><td><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPFiles.html#accc6c1cef9f124f6c5ed360251aa5aa7">SetDefaultErrorCallback</a>(XMPFiles_ErrorCallbackProc proc, void *context=0, XMP_Uns32 limit=1)</td><td><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPFiles.html#a83335ee20bb3ea543c8c86a5757a7753">SetDefaultProgressCallback</a>(XMP_ProgressReportProc proc, void *context=0, float interval=1.0, bool sendStartStop=false)</td><td><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPFiles.html#a43a98633a0090fb4ade76edf24302ab1">SetErrorCallback</a>(XMPFiles_ErrorCallbackProc proc, void *context=0, XMP_Uns32 limit=1)</td><td><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPFiles.html#aa283e2a1c16918c86148446859ed1a2d">SetProgressCallback</a>(XMP_ProgressReportProc proc, void *context=0, float interval=1.0, bool sendStartStop=false)</td><td><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPFiles.html#a1e8de80c252b60b332dc4bc524139fd8">Terminate</a>()</td><td><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPFiles.html#a14f01e38454178578fd25fff6024fd54">TXMPFiles</a>()</td><td><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPFiles.html#a36abe01988d4ca3939138e871c7b75e7">TXMPFiles</a>(XMP_StringPtr filePath, XMP_FileFormat format=kXMP_UnknownFile, XMP_OptionBits openFlags=0)</td><td><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPFiles.html#af540b3ea689a6d7381dca4f52132a4ac">TXMPFiles</a>(const tStringObj &amp;filePath, XMP_FileFormat format=kXMP_UnknownFile, XMP_OptionBits openFlags=0)</td><td><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPFiles.html#acf343fb6771b482ca72d467233a6f920">TXMPFiles</a>(const TXMPFiles&lt; tStringObj &gt; &amp;original)</td><td><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPFiles.html#ad986c7b2e2d82eaef6cf6a33e9d09b65">TXMPFiles</a>(XMPFilesRef xmpFilesObj)</td><td><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPFiles.html#a5eaa92724cc82d933a32eff9c4636739">~TXMPFiles</a>()</td><td><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td><code> [virtual]</code></td></tr>
-</table></div>
+
+<p>This is the complete list of members for <a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPFiles.html#a29a11a1539d6300da3fb4c7e9ea02bb6">CanPutXMP</a>(const SXMPMeta &amp;xmpObj)</td><td class="entry"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPFiles.html#a1d3f32c2b95659ada198775e2f67c808">CanPutXMP</a>(const tStringObj &amp;xmpPacket)</td><td class="entry"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPFiles.html#a2303dfcc00f108bda202600e3da9c109">CanPutXMP</a>(XMP_StringPtr xmpPacket, XMP_StringLen xmpLength=kXMP_UseNullTermination)</td><td class="entry"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPFiles.html#a07b7c4b44fb0e0a7d115ddd5ba22f926">CheckFileFormat</a>(XMP_StringPtr filePath)</td><td class="entry"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPFiles.html#a7f505664c41d7304fb757d6009b0751c">CheckPackageFormat</a>(XMP_StringPtr folderPath)</td><td class="entry"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927">CloseFile</a>(XMP_OptionBits closeFlags=0)</td><td class="entry"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPFiles.html#a03e6c681e827666690f0e5567b0b2a8a">GetAssociatedResources</a>(XMP_StringPtr filePath, std::vector&lt; tStringObj &gt; *resourceList, XMP_FileFormat format=kXMP_UnknownFile, XMP_OptionBits options=0)</td><td class="entry"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPFiles.html#af9931d081cb19f98c81e41786030765b">GetFileInfo</a>(tStringObj *filePath=0, XMP_OptionBits *openFlags=0, XMP_FileFormat *format=0, XMP_OptionBits *handlerFlags=0)</td><td class="entry"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPFiles.html#a0de588c4b98086206b3a5d737012106d">GetFileModDate</a>(XMP_StringPtr filePath, XMP_DateTime *modDate, XMP_FileFormat *format=0, XMP_OptionBits options=0)</td><td class="entry"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPFiles.html#acb9e16a1477ec67fa6da6d736a9bc131">GetFormatInfo</a>(XMP_FileFormat format, XMP_OptionBits *handlerFlags=0)</td><td class="entry"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPFiles.html#a311fc36fdf7270fe05b1c531cdbbd009">GetInternalRef</a>()</td><td class="entry"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPFiles.html#a6e521c034728b59ab55213a9d8203d1e">GetVersionInfo</a>(XMP_VersionInfo *versionInfo)</td><td class="entry"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPFiles.html#a42ca0bbc5ac66a8de1710e03a7ff17b3">GetXMP</a>(SXMPMeta *xmpObj=0, tStringObj *xmpPacket=0, XMP_PacketInfo *packetInfo=0)</td><td class="entry"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPFiles.html#a0874bbbf41c9490abfb613bfe297327d">Initialize</a>()</td><td class="entry"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPFiles.html#a794e1830a84a6328eaa1995ba5aa6874">Initialize</a>(XMP_OptionBits options)</td><td class="entry"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPFiles.html#abf0defebf7ca7d2cba7aed3c5dc107df">Initialize</a>(const char *pluginFolder, const char *plugins=NULL)</td><td class="entry"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPFiles.html#acc4b3bc2109fa98b4083df0d974f7dfb">Initialize</a>(XMP_OptionBits options, const char *pluginFolder, const char *plugins=NULL)</td><td class="entry"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPFiles.html#a6dfa135d53143d45e5ff22efa554398e">IsMetadataWritable</a>(XMP_StringPtr filePath, bool *writable, XMP_FileFormat format=kXMP_UnknownFile, XMP_OptionBits options=0)</td><td class="entry"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb">OpenFile</a>(XMP_StringPtr filePath, XMP_FileFormat format=kXMP_UnknownFile, XMP_OptionBits openFlags=0)</td><td class="entry"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPFiles.html#acfef1688f3a62e2f465bb3a27da7b4ac">OpenFile</a>(const tStringObj &amp;filePath, XMP_FileFormat format=kXMP_UnknownFile, XMP_OptionBits openFlags=0)</td><td class="entry"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPFiles.html#a3f1483fcc92860460d3772216dfaef81">operator=</a>(const TXMPFiles&lt; tStringObj &gt; &amp;rhs)</td><td class="entry"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPFiles.html#ad3f7babdc07c7de0d0cd9a3362b4710a">PutXMP</a>(const SXMPMeta &amp;xmpObj)</td><td class="entry"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPFiles.html#ada77eab74c3440659db3122f6ec8b7f4">PutXMP</a>(const tStringObj &amp;xmpPacket)</td><td class="entry"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPFiles.html#a502ed01119e0421413e773f4f42683ec">PutXMP</a>(XMP_StringPtr xmpPacket, XMP_StringLen xmpLength=kXMP_UseNullTermination)</td><td class="entry"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPFiles.html#a8e37b25dd1cba1e9a3f45037022717f2">ResetErrorCallbackLimit</a>(XMP_Uns32 limit=1)</td><td class="entry"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPFiles.html#a7b86c130fdbd54b5ac158ec3fee93777">SetAbortProc</a>(XMP_AbortProc abortProc, void *abortArg)</td><td class="entry"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPFiles.html#ae403e54b9cc5df0f59d79e31cce84e3f">SetClientString</a>(void *clientPtr, XMP_StringPtr valuePtr, XMP_StringLen valueLen)</td><td class="entry"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">private</span><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPFiles.html#afd30a5ad1765a9288e7f6ef118255a73">SetClientStringVector</a>(void *clientPtr, XMP_StringPtr *arrayPtr, XMP_Uns32 stringCount)</td><td class="entry"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">private</span><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPFiles.html#accc6c1cef9f124f6c5ed360251aa5aa7">SetDefaultErrorCallback</a>(XMPFiles_ErrorCallbackProc proc, void *context=0, XMP_Uns32 limit=1)</td><td class="entry"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPFiles.html#a83335ee20bb3ea543c8c86a5757a7753">SetDefaultProgressCallback</a>(XMP_ProgressReportProc proc, void *context=0, float interval=1.0, bool sendStartStop=false)</td><td class="entry"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPFiles.html#a43a98633a0090fb4ade76edf24302ab1">SetErrorCallback</a>(XMPFiles_ErrorCallbackProc proc, void *context=0, XMP_Uns32 limit=1)</td><td class="entry"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPFiles.html#aa283e2a1c16918c86148446859ed1a2d">SetProgressCallback</a>(XMP_ProgressReportProc proc, void *context=0, float interval=1.0, bool sendStartStop=false)</td><td class="entry"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPFiles.html#a1e8de80c252b60b332dc4bc524139fd8">Terminate</a>()</td><td class="entry"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPFiles.html#a14f01e38454178578fd25fff6024fd54">TXMPFiles</a>()</td><td class="entry"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPFiles.html#a36abe01988d4ca3939138e871c7b75e7">TXMPFiles</a>(XMP_StringPtr filePath, XMP_FileFormat format=kXMP_UnknownFile, XMP_OptionBits openFlags=0)</td><td class="entry"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPFiles.html#af540b3ea689a6d7381dca4f52132a4ac">TXMPFiles</a>(const tStringObj &amp;filePath, XMP_FileFormat format=kXMP_UnknownFile, XMP_OptionBits openFlags=0)</td><td class="entry"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPFiles.html#acf343fb6771b482ca72d467233a6f920">TXMPFiles</a>(const TXMPFiles&lt; tStringObj &gt; &amp;original)</td><td class="entry"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPFiles.html#ad986c7b2e2d82eaef6cf6a33e9d09b65">TXMPFiles</a>(XMPFilesRef xmpFilesObj)</td><td class="entry"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPFiles.html#a5977d8094086a7c2bfa9abe03af2265c">xmpFilesRef</a></td><td class="entry"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPFiles.html#a5eaa92724cc82d933a32eff9c4636739">~TXMPFiles</a>()</td><td class="entry"><a class="el" href="classTXMPFiles.html">TXMPFiles&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
</body>
</html>
diff --git a/docs/API/classTXMPFiles.html b/docs/API/classTXMPFiles.html
index 7767162..55eafa6 100644..100755
--- a/docs/API/classTXMPFiles.html
+++ b/docs/API/classTXMPFiles.html
@@ -1,212 +1,283 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: TXMPFiles&lt; tStringObj &gt; Class Template Reference</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
+<title>TXMPFiles&lt; tStringObj &gt; Class Template Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
- <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
- <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classTXMPFiles.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pri-static-methods">Static Private Member Functions</a> &#124;
+<a href="#pri-attribs">Private Attributes</a> &#124;
+<a href="classTXMPFiles-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">TXMPFiles&lt; tStringObj &gt; Class Template Reference</div> </div>
+</div><!--header-->
<div class="contents">
-<h1>TXMPFiles&lt; tStringObj &gt; Class Template Reference</h1><!-- doxytag: class="TXMPFiles" -->
+
<p>API for access to the main (document-level) metadata in a file.
-<a href="#_details">More...</a></p>
+ <a href="classTXMPFiles.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="TXMPFiles_8hpp_source.html">TXMPFiles.hpp</a>&gt;</code></p>
-
-<p><a href="classTXMPFiles-members.html">List of all members.</a></p>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">Constructors and destructor</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp9f50e6f946106b24d825e99ea17f1027"></a> The default constructor initializes an object that is associated with no file. The alternate constructors call <code><a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb" title="OpenFile() opens a file for metadata access.">OpenFile()</a></code>. </p>
+<tr><td colspan="2"><div class="groupText"><p>The default constructor initializes an object that is associated with no file. The alternate constructors call <code><a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb" title="OpenFile() opens a file for metadata access. ">OpenFile()</a></code>. </p>
</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a14f01e38454178578fd25fff6024fd54"></a><!-- doxytag: member="TXMPFiles::TXMPFiles" ref="a14f01e38454178578fd25fff6024fd54" args="()" -->
-&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a14f01e38454178578fd25fff6024fd54">TXMPFiles</a> ()</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default constructor initializes an object that is associated with no file. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a5eaa92724cc82d933a32eff9c4636739">~TXMPFiles</a> () throw ()</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destructor; typical virtual destructor. <a href="#a5eaa92724cc82d933a32eff9c4636739"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a36abe01988d4ca3939138e871c7b75e7">TXMPFiles</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> filePath, <a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> format=kXMP_UnknownFile, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> openFlags=0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Alternate constructor associates the new <code>XMPFiles</code> object with a specific file. <a href="#a36abe01988d4ca3939138e871c7b75e7"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#af540b3ea689a6d7381dca4f52132a4ac">TXMPFiles</a> (const tStringObj &amp;filePath, <a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> format=kXMP_UnknownFile, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> openFlags=0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Alternate constructor associates the new <code>XMPFiles</code> object with a specific file, using a string object. <a href="#af540b3ea689a6d7381dca4f52132a4ac"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#acf343fb6771b482ca72d467233a6f920">TXMPFiles</a> (const <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt; &amp;original)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Copy constructor. <a href="#acf343fb6771b482ca72d467233a6f920"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a3f1483fcc92860460d3772216dfaef81">operator=</a> (const <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt; &amp;rhs)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Assignment operator. <a href="#a3f1483fcc92860460d3772216dfaef81"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#ad986c7b2e2d82eaef6cf6a33e9d09b65">TXMPFiles</a> (<a class="el" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a> xmpFilesObj)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reconstructs a <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file.">TXMPFiles</a></code> object from an internal reference. <a href="#ad986c7b2e2d82eaef6cf6a33e9d09b65"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a311fc36fdf7270fe05b1c531cdbbd009">GetInternalRef</a> ()</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classTXMPFiles.html#a311fc36fdf7270fe05b1c531cdbbd009" title="GetInternalRef() retrieves an internal reference that can be safely passed across...">GetInternalRef()</a> retrieves an internal reference that can be safely passed across DLL boundaries and reconstructed. <a href="#a311fc36fdf7270fe05b1c531cdbbd009"></a><br/></td></tr>
+<tr class="memitem:a14f01e38454178578fd25fff6024fd54"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a14f01e38454178578fd25fff6024fd54">TXMPFiles</a> ()</td></tr>
+<tr class="memdesc:a14f01e38454178578fd25fff6024fd54"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor initializes an object that is associated with no file. <a href="#a14f01e38454178578fd25fff6024fd54">More...</a><br /></td></tr>
+<tr class="separator:a14f01e38454178578fd25fff6024fd54"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5eaa92724cc82d933a32eff9c4636739"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a5eaa92724cc82d933a32eff9c4636739">~TXMPFiles</a> () throw ()</td></tr>
+<tr class="memdesc:a5eaa92724cc82d933a32eff9c4636739"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor; typical virtual destructor. <a href="#a5eaa92724cc82d933a32eff9c4636739">More...</a><br /></td></tr>
+<tr class="separator:a5eaa92724cc82d933a32eff9c4636739"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a36abe01988d4ca3939138e871c7b75e7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a36abe01988d4ca3939138e871c7b75e7">TXMPFiles</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> filePath, <a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> format=<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719">kXMP_UnknownFile</a>, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> openFlags=0)</td></tr>
+<tr class="memdesc:a36abe01988d4ca3939138e871c7b75e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Alternate constructor associates the new <code>XMPFiles</code> object with a specific file. <a href="#a36abe01988d4ca3939138e871c7b75e7">More...</a><br /></td></tr>
+<tr class="separator:a36abe01988d4ca3939138e871c7b75e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af540b3ea689a6d7381dca4f52132a4ac"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#af540b3ea689a6d7381dca4f52132a4ac">TXMPFiles</a> (const tStringObj &amp;filePath, <a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> format=<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719">kXMP_UnknownFile</a>, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> openFlags=0)</td></tr>
+<tr class="memdesc:af540b3ea689a6d7381dca4f52132a4ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Alternate constructor associates the new <code>XMPFiles</code> object with a specific file, using a string object. <a href="#af540b3ea689a6d7381dca4f52132a4ac">More...</a><br /></td></tr>
+<tr class="separator:af540b3ea689a6d7381dca4f52132a4ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acf343fb6771b482ca72d467233a6f920"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#acf343fb6771b482ca72d467233a6f920">TXMPFiles</a> (const <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt; &amp;original)</td></tr>
+<tr class="memdesc:acf343fb6771b482ca72d467233a6f920"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <a href="#acf343fb6771b482ca72d467233a6f920">More...</a><br /></td></tr>
+<tr class="separator:acf343fb6771b482ca72d467233a6f920"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3f1483fcc92860460d3772216dfaef81"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a3f1483fcc92860460d3772216dfaef81">operator=</a> (const <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt; &amp;rhs)</td></tr>
+<tr class="memdesc:a3f1483fcc92860460d3772216dfaef81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assignment operator. <a href="#a3f1483fcc92860460d3772216dfaef81">More...</a><br /></td></tr>
+<tr class="separator:a3f1483fcc92860460d3772216dfaef81"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad986c7b2e2d82eaef6cf6a33e9d09b65"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#ad986c7b2e2d82eaef6cf6a33e9d09b65">TXMPFiles</a> (<a class="el" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a> xmpFilesObj)</td></tr>
+<tr class="memdesc:ad986c7b2e2d82eaef6cf6a33e9d09b65"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reconstructs a <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file. ">TXMPFiles</a></code> object from an internal reference. <a href="#ad986c7b2e2d82eaef6cf6a33e9d09b65">More...</a><br /></td></tr>
+<tr class="separator:ad986c7b2e2d82eaef6cf6a33e9d09b65"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a311fc36fdf7270fe05b1c531cdbbd009"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a311fc36fdf7270fe05b1c531cdbbd009">GetInternalRef</a> ()</td></tr>
+<tr class="memdesc:a311fc36fdf7270fe05b1c531cdbbd009"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classTXMPFiles.html#a311fc36fdf7270fe05b1c531cdbbd009" title="GetInternalRef() retrieves an internal reference that can be safely passed across DLL boundaries and ...">GetInternalRef()</a> retrieves an internal reference that can be safely passed across DLL boundaries and reconstructed. <a href="#a311fc36fdf7270fe05b1c531cdbbd009">More...</a><br /></td></tr>
+<tr class="separator:a311fc36fdf7270fe05b1c531cdbbd009"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Accessing metadata</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp3ba55d9475ea0ae60516525ec20c5167"></a> These functions allow you to retrieve XMP metadata from open files, so that you can use the <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta</a></code> API to manipulate it. The <code><a class="el" href="classTXMPFiles.html#ad3f7babdc07c7de0d0cd9a3362b4710a" title="PutXMP() updates the XMP metadata in this object without writing out the file.">PutXMP()</a></code> functions update the XMP packet in memory. Changed XMP is not actually written out to the file until the file is closed. </p>
+<tr><td colspan="2"><div class="groupText"><p>These functions allow you to retrieve XMP metadata from open files, so that you can use the <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services. ">TXMPMeta</a></code> API to manipulate it. The <code><a class="el" href="classTXMPFiles.html#ad3f7babdc07c7de0d0cd9a3362b4710a" title="PutXMP() updates the XMP metadata in this object without writing out the file. ">PutXMP()</a></code> functions update the XMP packet in memory. Changed XMP is not actually written out to the file until the file is closed. </p>
</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a42ca0bbc5ac66a8de1710e03a7ff17b3">GetXMP</a> (SXMPMeta *xmpObj=0, tStringObj *xmpPacket=0, <a class="el" href="structXMP__PacketInfo.html">XMP_PacketInfo</a> *packetInfo=0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPFiles.html#a42ca0bbc5ac66a8de1710e03a7ff17b3" title="GetXMP() retrieves the XMP metadata from an open file.">GetXMP()</a></code> retrieves the XMP metadata from an open file. <a href="#a42ca0bbc5ac66a8de1710e03a7ff17b3"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#ad3f7babdc07c7de0d0cd9a3362b4710a">PutXMP</a> (const SXMPMeta &amp;xmpObj)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPFiles.html#ad3f7babdc07c7de0d0cd9a3362b4710a" title="PutXMP() updates the XMP metadata in this object without writing out the file.">PutXMP()</a></code> updates the XMP metadata in this object without writing out the file. <a href="#ad3f7babdc07c7de0d0cd9a3362b4710a"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#ada77eab74c3440659db3122f6ec8b7f4">PutXMP</a> (const tStringObj &amp;xmpPacket)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPFiles.html#ad3f7babdc07c7de0d0cd9a3362b4710a" title="PutXMP() updates the XMP metadata in this object without writing out the file.">PutXMP()</a></code> updates the XMP metadata in this object without writing out the file, using a string object for input. <a href="#ada77eab74c3440659db3122f6ec8b7f4"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a502ed01119e0421413e773f4f42683ec">PutXMP</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> xmpPacket, <a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> xmpLength=kXMP_UseNullTermination)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPFiles.html#ad3f7babdc07c7de0d0cd9a3362b4710a" title="PutXMP() updates the XMP metadata in this object without writing out the file.">PutXMP()</a></code> updates the XMP metadata in this object without writing out the file, <a href="#a502ed01119e0421413e773f4f42683ec"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a29a11a1539d6300da3fb4c7e9ea02bb6">CanPutXMP</a> (const SXMPMeta &amp;xmpObj)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPFiles.html#a29a11a1539d6300da3fb4c7e9ea02bb6" title="CanPutXMP() reports whether this file can be updated with a specific XMP packet.">CanPutXMP()</a></code> reports whether this file can be updated with a specific XMP packet. <a href="#a29a11a1539d6300da3fb4c7e9ea02bb6"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a1d3f32c2b95659ada198775e2f67c808">CanPutXMP</a> (const tStringObj &amp;xmpPacket)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPFiles.html#a29a11a1539d6300da3fb4c7e9ea02bb6" title="CanPutXMP() reports whether this file can be updated with a specific XMP packet.">CanPutXMP()</a></code> reports whether this file can be updated with a specific XMP packet, passed in a string object. <a href="#a1d3f32c2b95659ada198775e2f67c808"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a2303dfcc00f108bda202600e3da9c109">CanPutXMP</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> xmpPacket, <a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> xmpLength=kXMP_UseNullTermination)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPFiles.html#a29a11a1539d6300da3fb4c7e9ea02bb6" title="CanPutXMP() reports whether this file can be updated with a specific XMP packet.">CanPutXMP()</a></code> reports whether this file can be updated with a specific XMP packet, passed in a string object. <a href="#a2303dfcc00f108bda202600e3da9c109"></a><br/></td></tr>
-<tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr>
+<tr class="memitem:a42ca0bbc5ac66a8de1710e03a7ff17b3"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a42ca0bbc5ac66a8de1710e03a7ff17b3">GetXMP</a> (SXMPMeta *xmpObj=0, tStringObj *xmpPacket=0, <a class="el" href="structXMP__PacketInfo.html">XMP_PacketInfo</a> *packetInfo=0)</td></tr>
+<tr class="memdesc:a42ca0bbc5ac66a8de1710e03a7ff17b3"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPFiles.html#a42ca0bbc5ac66a8de1710e03a7ff17b3" title="GetXMP() retrieves the XMP metadata from an open file. ">GetXMP()</a></code> retrieves the XMP metadata from an open file. <a href="#a42ca0bbc5ac66a8de1710e03a7ff17b3">More...</a><br /></td></tr>
+<tr class="separator:a42ca0bbc5ac66a8de1710e03a7ff17b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad3f7babdc07c7de0d0cd9a3362b4710a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#ad3f7babdc07c7de0d0cd9a3362b4710a">PutXMP</a> (const SXMPMeta &amp;xmpObj)</td></tr>
+<tr class="memdesc:ad3f7babdc07c7de0d0cd9a3362b4710a"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPFiles.html#ad3f7babdc07c7de0d0cd9a3362b4710a" title="PutXMP() updates the XMP metadata in this object without writing out the file. ">PutXMP()</a></code> updates the XMP metadata in this object without writing out the file. <a href="#ad3f7babdc07c7de0d0cd9a3362b4710a">More...</a><br /></td></tr>
+<tr class="separator:ad3f7babdc07c7de0d0cd9a3362b4710a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ada77eab74c3440659db3122f6ec8b7f4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#ada77eab74c3440659db3122f6ec8b7f4">PutXMP</a> (const tStringObj &amp;xmpPacket)</td></tr>
+<tr class="memdesc:ada77eab74c3440659db3122f6ec8b7f4"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPFiles.html#ad3f7babdc07c7de0d0cd9a3362b4710a" title="PutXMP() updates the XMP metadata in this object without writing out the file. ">PutXMP()</a></code> updates the XMP metadata in this object without writing out the file, using a string object for input. <a href="#ada77eab74c3440659db3122f6ec8b7f4">More...</a><br /></td></tr>
+<tr class="separator:ada77eab74c3440659db3122f6ec8b7f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a502ed01119e0421413e773f4f42683ec"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a502ed01119e0421413e773f4f42683ec">PutXMP</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> xmpPacket, <a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> xmpLength=<a class="el" href="XMP__Const_8h.html#a8283c9596c03b6d626d5a2b7a90e23ab">kXMP_UseNullTermination</a>)</td></tr>
+<tr class="memdesc:a502ed01119e0421413e773f4f42683ec"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPFiles.html#ad3f7babdc07c7de0d0cd9a3362b4710a" title="PutXMP() updates the XMP metadata in this object without writing out the file. ">PutXMP()</a></code> updates the XMP metadata in this object without writing out the file, <a href="#a502ed01119e0421413e773f4f42683ec">More...</a><br /></td></tr>
+<tr class="separator:a502ed01119e0421413e773f4f42683ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a29a11a1539d6300da3fb4c7e9ea02bb6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a29a11a1539d6300da3fb4c7e9ea02bb6">CanPutXMP</a> (const SXMPMeta &amp;xmpObj)</td></tr>
+<tr class="memdesc:a29a11a1539d6300da3fb4c7e9ea02bb6"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPFiles.html#a29a11a1539d6300da3fb4c7e9ea02bb6" title="CanPutXMP() reports whether this file can be updated with a specific XMP packet. ">CanPutXMP()</a></code> reports whether this file can be updated with a specific XMP packet. <a href="#a29a11a1539d6300da3fb4c7e9ea02bb6">More...</a><br /></td></tr>
+<tr class="separator:a29a11a1539d6300da3fb4c7e9ea02bb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1d3f32c2b95659ada198775e2f67c808"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a1d3f32c2b95659ada198775e2f67c808">CanPutXMP</a> (const tStringObj &amp;xmpPacket)</td></tr>
+<tr class="memdesc:a1d3f32c2b95659ada198775e2f67c808"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPFiles.html#a29a11a1539d6300da3fb4c7e9ea02bb6" title="CanPutXMP() reports whether this file can be updated with a specific XMP packet. ">CanPutXMP()</a></code> reports whether this file can be updated with a specific XMP packet, passed in a string object. <a href="#a1d3f32c2b95659ada198775e2f67c808">More...</a><br /></td></tr>
+<tr class="separator:a1d3f32c2b95659ada198775e2f67c808"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2303dfcc00f108bda202600e3da9c109"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a2303dfcc00f108bda202600e3da9c109">CanPutXMP</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> xmpPacket, <a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> xmpLength=<a class="el" href="XMP__Const_8h.html#a8283c9596c03b6d626d5a2b7a90e23ab">kXMP_UseNullTermination</a>)</td></tr>
+<tr class="memdesc:a2303dfcc00f108bda202600e3da9c109"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPFiles.html#a29a11a1539d6300da3fb4c7e9ea02bb6" title="CanPutXMP() reports whether this file can be updated with a specific XMP packet. ">CanPutXMP()</a></code> reports whether this file can be updated with a specific XMP packet, passed in a string object. <a href="#a2303dfcc00f108bda202600e3da9c109">More...</a><br /></td></tr>
+<tr class="separator:a2303dfcc00f108bda202600e3da9c109"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">Initialization and termination</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp9dc126b6914be34103027a21c1233dfa"></a> A <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file.">TXMPFiles</a></code> object must be initialized before use and can be terminated when done. </p>
+<tr><td colspan="2"><div class="groupText"><p>A <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file. ">TXMPFiles</a></code> object must be initialized before use and can be terminated when done. </p>
</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a6e521c034728b59ab55213a9d8203d1e">GetVersionInfo</a> (<a class="el" href="structXMP__VersionInfo.html">XMP_VersionInfo</a> *versionInfo)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPFiles.html#a6e521c034728b59ab55213a9d8203d1e" title="GetVersionInfo() retrieves version information for the XMPFiles component.">GetVersionInfo()</a></code> retrieves version information for the XMPFiles component. <a href="#a6e521c034728b59ab55213a9d8203d1e"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a0874bbbf41c9490abfb613bfe297327d">Initialize</a> ()</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initializes the XMPFiles library; must be called before creating an <code>SXMPFiles</code> object. <a href="#a0874bbbf41c9490abfb613bfe297327d"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a794e1830a84a6328eaa1995ba5aa6874">Initialize</a> (<a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initializes the XMPFiles library; must be called before creating an <code>SXMPFiles</code> object. <a href="#a794e1830a84a6328eaa1995ba5aa6874"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#abf0defebf7ca7d2cba7aed3c5dc107df">Initialize</a> (const char *pluginFolder, const char *plugins=NULL)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initializes the XMPFiles library; must be called before creating an <code>SXMPFiles</code> object. <a href="#abf0defebf7ca7d2cba7aed3c5dc107df"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#acc4b3bc2109fa98b4083df0d974f7dfb">Initialize</a> (<a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, const char *pluginFolder, const char *plugins=NULL)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initializes the XMPFiles library; must be called before creating an <code>SXMPFiles</code> object. <a href="#acc4b3bc2109fa98b4083df0d974f7dfb"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a1e8de80c252b60b332dc4bc524139fd8">Terminate</a> ()</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Terminates use of the XMPFiles library. <a href="#a1e8de80c252b60b332dc4bc524139fd8"></a><br/></td></tr>
+<tr class="memitem:a6e521c034728b59ab55213a9d8203d1e"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a6e521c034728b59ab55213a9d8203d1e">GetVersionInfo</a> (<a class="el" href="structXMP__VersionInfo.html">XMP_VersionInfo</a> *versionInfo)</td></tr>
+<tr class="memdesc:a6e521c034728b59ab55213a9d8203d1e"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPFiles.html#a6e521c034728b59ab55213a9d8203d1e" title="GetVersionInfo() retrieves version information for the XMPFiles component. ">GetVersionInfo()</a></code> retrieves version information for the XMPFiles component. <a href="#a6e521c034728b59ab55213a9d8203d1e">More...</a><br /></td></tr>
+<tr class="separator:a6e521c034728b59ab55213a9d8203d1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0874bbbf41c9490abfb613bfe297327d"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a0874bbbf41c9490abfb613bfe297327d">Initialize</a> ()</td></tr>
+<tr class="memdesc:a0874bbbf41c9490abfb613bfe297327d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the XMPFiles library; must be called before creating an <code>SXMPFiles</code> object. <a href="#a0874bbbf41c9490abfb613bfe297327d">More...</a><br /></td></tr>
+<tr class="separator:a0874bbbf41c9490abfb613bfe297327d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a794e1830a84a6328eaa1995ba5aa6874"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a794e1830a84a6328eaa1995ba5aa6874">Initialize</a> (<a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options)</td></tr>
+<tr class="memdesc:a794e1830a84a6328eaa1995ba5aa6874"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the XMPFiles library; must be called before creating an <code>SXMPFiles</code> object. <a href="#a794e1830a84a6328eaa1995ba5aa6874">More...</a><br /></td></tr>
+<tr class="separator:a794e1830a84a6328eaa1995ba5aa6874"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abf0defebf7ca7d2cba7aed3c5dc107df"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#abf0defebf7ca7d2cba7aed3c5dc107df">Initialize</a> (const char *pluginFolder, const char *plugins=NULL)</td></tr>
+<tr class="memdesc:abf0defebf7ca7d2cba7aed3c5dc107df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the XMPFiles library; must be called before creating an <code>SXMPFiles</code> object. <a href="#abf0defebf7ca7d2cba7aed3c5dc107df">More...</a><br /></td></tr>
+<tr class="separator:abf0defebf7ca7d2cba7aed3c5dc107df"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acc4b3bc2109fa98b4083df0d974f7dfb"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#acc4b3bc2109fa98b4083df0d974f7dfb">Initialize</a> (<a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, const char *pluginFolder, const char *plugins=NULL)</td></tr>
+<tr class="memdesc:acc4b3bc2109fa98b4083df0d974f7dfb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the XMPFiles library; must be called before creating an <code>SXMPFiles</code> object. <a href="#acc4b3bc2109fa98b4083df0d974f7dfb">More...</a><br /></td></tr>
+<tr class="separator:acc4b3bc2109fa98b4083df0d974f7dfb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1e8de80c252b60b332dc4bc524139fd8"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a1e8de80c252b60b332dc4bc524139fd8">Terminate</a> ()</td></tr>
+<tr class="memdesc:a1e8de80c252b60b332dc4bc524139fd8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Terminates use of the XMPFiles library. <a href="#a1e8de80c252b60b332dc4bc524139fd8">More...</a><br /></td></tr>
+<tr class="separator:a1e8de80c252b60b332dc4bc524139fd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">File handler information</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp529938e0909910356e9a3257c7178cbf"></a> Call this static function from the concrete class, <code>SXMPFiles</code>, to obtain information about the file handlers for the XMPFiles component. </p>
+<tr><td colspan="2"><div class="groupText"><p>Call this static function from the concrete class, <code>SXMPFiles</code>, to obtain information about the file handlers for the XMPFiles component. </p>
</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">*static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#acb9e16a1477ec67fa6da6d736a9bc131">GetFormatInfo</a> (<a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> format, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *handlerFlags=0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classTXMPFiles.html#acb9e16a1477ec67fa6da6d736a9bc131" title="GetFormatInfo() reports what features are supported for a specific file format.">GetFormatInfo()</a> reports what features are supported for a specific file format. <a href="#acb9e16a1477ec67fa6da6d736a9bc131"></a><br/></td></tr>
-<tr><td colspan="2"><h2>File operations</h2></td></tr>
-<tr><td colspan="2"><p><a class="anchor" id="amgrpea9298288a22f5c5f166a17c556b9a13"></a> These functions allow you to open, close, and query files. </p>
-<br/><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a07b7c4b44fb0e0a7d115ddd5ba22f926">CheckFileFormat</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> filePath)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPFiles.html#a07b7c4b44fb0e0a7d115ddd5ba22f926" title="CheckFileFormat() tries to determine the format of a file.">CheckFileFormat()</a></code> tries to determine the format of a file. <a href="#a07b7c4b44fb0e0a7d115ddd5ba22f926"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a7f505664c41d7304fb757d6009b0751c">CheckPackageFormat</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> folderPath)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPFiles.html#a7f505664c41d7304fb757d6009b0751c" title="CheckPackageFormat() tries to determine the format of a &quot;package&quot; folder...">CheckPackageFormat()</a></code> tries to determine the format of a "package" folder. <a href="#a7f505664c41d7304fb757d6009b0751c"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a0de588c4b98086206b3a5d737012106d">GetFileModDate</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> filePath, <a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *modDate, <a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> *format=0, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPFiles.html#a0de588c4b98086206b3a5d737012106d" title="GetFileModDate() returns the last modification date of all files that are returned...">GetFileModDate()</a></code> returns the last modification date of all files that are returned by <code><a class="el" href="classTXMPFiles.html#a03e6c681e827666690f0e5567b0b2a8a" title="GetAssociatedResources() returns a list of files and folders associated to filePath...">GetAssociatedResources()</a></code> <a href="#a0de588c4b98086206b3a5d737012106d"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a03e6c681e827666690f0e5567b0b2a8a">GetAssociatedResources</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> filePath, std::vector&lt; tStringObj &gt; *resourceList, <a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> format=kXMP_UnknownFile, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPFiles.html#a03e6c681e827666690f0e5567b0b2a8a" title="GetAssociatedResources() returns a list of files and folders associated to filePath...">GetAssociatedResources()</a></code> returns a list of files and folders associated to filePath. <a href="#a03e6c681e827666690f0e5567b0b2a8a"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a6dfa135d53143d45e5ff22efa554398e">IsMetadataWritable</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> filePath, bool *writable, <a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> format=kXMP_UnknownFile, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPFiles.html#a6dfa135d53143d45e5ff22efa554398e" title="IsMetadataWritable() returns true if metadata can be updated for the given media...">IsMetadataWritable()</a></code> returns true if metadata can be updated for the given media path. <a href="#a6dfa135d53143d45e5ff22efa554398e"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb">OpenFile</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> filePath, <a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> format=kXMP_UnknownFile, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> openFlags=0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb" title="OpenFile() opens a file for metadata access.">OpenFile()</a></code> opens a file for metadata access. <a href="#afcd21cfe5d6f13c648c5541e161919cb"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#acfef1688f3a62e2f465bb3a27da7b4ac">OpenFile</a> (const tStringObj &amp;filePath, <a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> format=kXMP_UnknownFile, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> openFlags=0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb" title="OpenFile() opens a file for metadata access.">OpenFile()</a></code> opens a file for metadata access, using a string object <a href="#acfef1688f3a62e2f465bb3a27da7b4ac"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927">CloseFile</a> (<a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> closeFlags=0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927" title="CloseFile() explicitly closes an opened file.">CloseFile()</a> explicitly closes an opened file. <a href="#aeca89170c7aa3e2d56e30bff04dd7927"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#af9931d081cb19f98c81e41786030765b">GetFileInfo</a> (tStringObj *filePath=0, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *openFlags=0, <a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> *format=0, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *handlerFlags=0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPFiles.html#af9931d081cb19f98c81e41786030765b" title="GetFileInfo() retrieves basic information about an opened file.">GetFileInfo()</a></code> retrieves basic information about an opened file. <a href="#af9931d081cb19f98c81e41786030765b"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a7b86c130fdbd54b5ac158ec3fee93777">SetAbortProc</a> (<a class="el" href="XMP__Const_8h.html#aa2738ce2fca7f1809b12834b1b5e2d0e">XMP_AbortProc</a> abortProc, void *abortArg)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPFiles.html#a7b86c130fdbd54b5ac158ec3fee93777" title="SetAbortProc() registers a callback function used to check for a user-signaled abort...">SetAbortProc()</a></code> registers a callback function used to check for a user-signaled abort. <a href="#a7b86c130fdbd54b5ac158ec3fee93777"></a><br/></td></tr>
-<tr><td colspan="2"><h2>Progress notifications</h2></td></tr>
-<tr><td colspan="2"><p><a class="anchor" id="amgrp89f625ebe0c163ac32fbbb1a4dd476f3"></a> These functions allow track the progress of file operations. Initially only file updates are tracked, these all occur within calls to SXMPFiles::CloseFile. There are no plans to track other operations at this time. Tracking support must be added to specific file handlers, there are no guarantees about which handlers will have support. To simplify the logic only file writes will be estimated and measured. </p>
-<br/><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a83335ee20bb3ea543c8c86a5757a7753">SetDefaultProgressCallback</a> (<a class="el" href="XMP__Const_8h.html#af18be2d0c8accad813e0d8962da24b4e">XMP_ProgressReportProc</a> proc, void *context=0, float interval=1.0, bool sendStartStop=false)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPFiles.html#a83335ee20bb3ea543c8c86a5757a7753" title="SetDefaultProgressCallback() sets a global default for progress tracking. This is...">SetDefaultProgressCallback()</a></code> sets a global default for progress tracking. This is used as a default for XMPFiles (library) objects created after the default is set. This does not affect the callback for new SXMPFiles (client) objects with an existing XMPFiles object. <a href="#a83335ee20bb3ea543c8c86a5757a7753"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#aa283e2a1c16918c86148446859ed1a2d">SetProgressCallback</a> (<a class="el" href="XMP__Const_8h.html#af18be2d0c8accad813e0d8962da24b4e">XMP_ProgressReportProc</a> proc, void *context=0, float interval=1.0, bool sendStartStop=false)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPFiles.html#aa283e2a1c16918c86148446859ed1a2d" title="SetProgressCallback() sets the progress notification callback for the associated...">SetProgressCallback()</a></code> sets the progress notification callback for the associated XMPFiles (library) object. <a href="#aa283e2a1c16918c86148446859ed1a2d"></a><br/></td></tr>
-<tr><td colspan="2"><h2>Error notifications</h2></td></tr>
-<tr><td colspan="2"><p><a class="anchor" id="amgrpb9b1c1c0b1b4992a1cbdde7ae0d6e01a"></a> From the beginning through version 5.5, XMP Toolkit errors result in throwing an <code><a class="el" href="classXMP__Error.html" title="XMP Toolkit error, associates an error code with a descriptive error string.">XMP_Error</a></code> exception. For the most part exceptions were thrown early and thus API calls aborted as soon as an error was detected. Starting in version 5.5, support has been added for notifications of errors arising in calls to <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file.">TXMPFiles</a></code> functions.</p>
+<tr class="memitem:acb9e16a1477ec67fa6da6d736a9bc131"><td class="memItemLeft" align="right" valign="top">*static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#acb9e16a1477ec67fa6da6d736a9bc131">GetFormatInfo</a> (<a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> format, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *handlerFlags=0)</td></tr>
+<tr class="memdesc:acb9e16a1477ec67fa6da6d736a9bc131"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classTXMPFiles.html#acb9e16a1477ec67fa6da6d736a9bc131" title="GetFormatInfo() reports what features are supported for a specific file format. ">GetFormatInfo()</a> reports what features are supported for a specific file format. <a href="#acb9e16a1477ec67fa6da6d736a9bc131">More...</a><br /></td></tr>
+<tr class="separator:acb9e16a1477ec67fa6da6d736a9bc131"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-static-methods"></a>
+Static Private Member Functions</h2></td></tr>
+<tr class="memitem:ae403e54b9cc5df0f59d79e31cce84e3f"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#ae403e54b9cc5df0f59d79e31cce84e3f">SetClientString</a> (void *clientPtr, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> valuePtr, <a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> valueLen)</td></tr>
+<tr class="separator:ae403e54b9cc5df0f59d79e31cce84e3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd30a5ad1765a9288e7f6ef118255a73"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#afd30a5ad1765a9288e7f6ef118255a73">SetClientStringVector</a> (void *clientPtr, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> *arrayPtr, XMP_Uns32 stringCount)</td></tr>
+<tr class="separator:afd30a5ad1765a9288e7f6ef118255a73"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
+Private Attributes</h2></td></tr>
+<tr class="memitem:a5977d8094086a7c2bfa9abe03af2265c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a5977d8094086a7c2bfa9abe03af2265c">xmpFilesRef</a></td></tr>
+<tr class="separator:a5977d8094086a7c2bfa9abe03af2265c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
+File operations</h2></td></tr>
+<tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrpea9298288a22f5c5f166a17c556b9a13"></a>These functions allow you to open, close, and query files. </p>
+</td></tr>
+<tr class="memitem:a07b7c4b44fb0e0a7d115ddd5ba22f926"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a07b7c4b44fb0e0a7d115ddd5ba22f926">CheckFileFormat</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> filePath)</td></tr>
+<tr class="memdesc:a07b7c4b44fb0e0a7d115ddd5ba22f926"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPFiles.html#a07b7c4b44fb0e0a7d115ddd5ba22f926" title="CheckFileFormat() tries to determine the format of a file. ">CheckFileFormat()</a></code> tries to determine the format of a file. <a href="#a07b7c4b44fb0e0a7d115ddd5ba22f926">More...</a><br /></td></tr>
+<tr class="separator:a07b7c4b44fb0e0a7d115ddd5ba22f926"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7f505664c41d7304fb757d6009b0751c"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a7f505664c41d7304fb757d6009b0751c">CheckPackageFormat</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> folderPath)</td></tr>
+<tr class="memdesc:a7f505664c41d7304fb757d6009b0751c"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPFiles.html#a7f505664c41d7304fb757d6009b0751c" title="CheckPackageFormat() tries to determine the format of a &quot;package&quot; folder. ">CheckPackageFormat()</a></code> tries to determine the format of a "package" folder. <a href="#a7f505664c41d7304fb757d6009b0751c">More...</a><br /></td></tr>
+<tr class="separator:a7f505664c41d7304fb757d6009b0751c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0de588c4b98086206b3a5d737012106d"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a0de588c4b98086206b3a5d737012106d">GetFileModDate</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> filePath, <a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *modDate, <a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> *format=0, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
+<tr class="memdesc:a0de588c4b98086206b3a5d737012106d"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPFiles.html#a0de588c4b98086206b3a5d737012106d" title="GetFileModDate() returns the last modification date of all files that are returned by GetAssociatedRe...">GetFileModDate()</a></code> returns the last modification date of all files that are returned by <code><a class="el" href="classTXMPFiles.html#a03e6c681e827666690f0e5567b0b2a8a" title="GetAssociatedResources() returns a list of files and folders associated to filePath. ">GetAssociatedResources()</a></code> <a href="#a0de588c4b98086206b3a5d737012106d">More...</a><br /></td></tr>
+<tr class="separator:a0de588c4b98086206b3a5d737012106d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a03e6c681e827666690f0e5567b0b2a8a"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a03e6c681e827666690f0e5567b0b2a8a">GetAssociatedResources</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> filePath, std::vector&lt; tStringObj &gt; *resourceList, <a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> format=<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719">kXMP_UnknownFile</a>, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
+<tr class="memdesc:a03e6c681e827666690f0e5567b0b2a8a"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPFiles.html#a03e6c681e827666690f0e5567b0b2a8a" title="GetAssociatedResources() returns a list of files and folders associated to filePath. ">GetAssociatedResources()</a></code> returns a list of files and folders associated to filePath. <a href="#a03e6c681e827666690f0e5567b0b2a8a">More...</a><br /></td></tr>
+<tr class="separator:a03e6c681e827666690f0e5567b0b2a8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6dfa135d53143d45e5ff22efa554398e"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a6dfa135d53143d45e5ff22efa554398e">IsMetadataWritable</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> filePath, bool *writable, <a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> format=<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719">kXMP_UnknownFile</a>, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
+<tr class="memdesc:a6dfa135d53143d45e5ff22efa554398e"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPFiles.html#a6dfa135d53143d45e5ff22efa554398e" title="IsMetadataWritable() returns true if metadata can be updated for the given media path. ">IsMetadataWritable()</a></code> returns true if metadata can be updated for the given media path. <a href="#a6dfa135d53143d45e5ff22efa554398e">More...</a><br /></td></tr>
+<tr class="separator:a6dfa135d53143d45e5ff22efa554398e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afcd21cfe5d6f13c648c5541e161919cb"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb">OpenFile</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> filePath, <a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> format=<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719">kXMP_UnknownFile</a>, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> openFlags=0)</td></tr>
+<tr class="memdesc:afcd21cfe5d6f13c648c5541e161919cb"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb" title="OpenFile() opens a file for metadata access. ">OpenFile()</a></code> opens a file for metadata access. <a href="#afcd21cfe5d6f13c648c5541e161919cb">More...</a><br /></td></tr>
+<tr class="separator:afcd21cfe5d6f13c648c5541e161919cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acfef1688f3a62e2f465bb3a27da7b4ac"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#acfef1688f3a62e2f465bb3a27da7b4ac">OpenFile</a> (const tStringObj &amp;filePath, <a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> format=<a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719">kXMP_UnknownFile</a>, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> openFlags=0)</td></tr>
+<tr class="memdesc:acfef1688f3a62e2f465bb3a27da7b4ac"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb" title="OpenFile() opens a file for metadata access. ">OpenFile()</a></code> opens a file for metadata access, using a string object <a href="#acfef1688f3a62e2f465bb3a27da7b4ac">More...</a><br /></td></tr>
+<tr class="separator:acfef1688f3a62e2f465bb3a27da7b4ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeca89170c7aa3e2d56e30bff04dd7927"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927">CloseFile</a> (<a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> closeFlags=0)</td></tr>
+<tr class="memdesc:aeca89170c7aa3e2d56e30bff04dd7927"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927" title="CloseFile() explicitly closes an opened file. ">CloseFile()</a> explicitly closes an opened file. <a href="#aeca89170c7aa3e2d56e30bff04dd7927">More...</a><br /></td></tr>
+<tr class="separator:aeca89170c7aa3e2d56e30bff04dd7927"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af9931d081cb19f98c81e41786030765b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#af9931d081cb19f98c81e41786030765b">GetFileInfo</a> (tStringObj *filePath=0, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *openFlags=0, <a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> *format=0, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *handlerFlags=0)</td></tr>
+<tr class="memdesc:af9931d081cb19f98c81e41786030765b"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPFiles.html#af9931d081cb19f98c81e41786030765b" title="GetFileInfo() retrieves basic information about an opened file. ">GetFileInfo()</a></code> retrieves basic information about an opened file. <a href="#af9931d081cb19f98c81e41786030765b">More...</a><br /></td></tr>
+<tr class="separator:af9931d081cb19f98c81e41786030765b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7b86c130fdbd54b5ac158ec3fee93777"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a7b86c130fdbd54b5ac158ec3fee93777">SetAbortProc</a> (<a class="el" href="XMP__Const_8h.html#ac2434559f67332b9d23021b894da838c">XMP_AbortProc</a> abortProc, void *abortArg)</td></tr>
+<tr class="memdesc:a7b86c130fdbd54b5ac158ec3fee93777"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPFiles.html#a7b86c130fdbd54b5ac158ec3fee93777" title="SetAbortProc() registers a callback function used to check for a user-signaled abort. ">SetAbortProc()</a></code> registers a callback function used to check for a user-signaled abort. <a href="#a7b86c130fdbd54b5ac158ec3fee93777">More...</a><br /></td></tr>
+<tr class="separator:a7b86c130fdbd54b5ac158ec3fee93777"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
+Progress notifications</h2></td></tr>
+<tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrp89f625ebe0c163ac32fbbb1a4dd476f3"></a>These functions allow track the progress of file operations. Initially only file updates are tracked, these all occur within calls to SXMPFiles::CloseFile. There are no plans to track other operations at this time. Tracking support must be added to specific file handlers, there are no guarantees about which handlers will have support. To simplify the logic only file writes will be estimated and measured. </p>
+</td></tr>
+<tr class="memitem:a83335ee20bb3ea543c8c86a5757a7753"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a83335ee20bb3ea543c8c86a5757a7753">SetDefaultProgressCallback</a> (<a class="el" href="XMP__Const_8h.html#a01973e700ac2ba7f3debef340ccaa663">XMP_ProgressReportProc</a> proc, void *context=0, float interval=1.0, bool sendStartStop=false)</td></tr>
+<tr class="memdesc:a83335ee20bb3ea543c8c86a5757a7753"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPFiles.html#a83335ee20bb3ea543c8c86a5757a7753" title="SetDefaultProgressCallback() sets a global default for progress tracking. This is used as a default f...">SetDefaultProgressCallback()</a></code> sets a global default for progress tracking. This is used as a default for XMPFiles (library) objects created after the default is set. This does not affect the callback for new SXMPFiles (client) objects with an existing XMPFiles object. <a href="#a83335ee20bb3ea543c8c86a5757a7753">More...</a><br /></td></tr>
+<tr class="separator:a83335ee20bb3ea543c8c86a5757a7753"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa283e2a1c16918c86148446859ed1a2d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#aa283e2a1c16918c86148446859ed1a2d">SetProgressCallback</a> (<a class="el" href="XMP__Const_8h.html#a01973e700ac2ba7f3debef340ccaa663">XMP_ProgressReportProc</a> proc, void *context=0, float interval=1.0, bool sendStartStop=false)</td></tr>
+<tr class="memdesc:aa283e2a1c16918c86148446859ed1a2d"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPFiles.html#aa283e2a1c16918c86148446859ed1a2d" title="SetProgressCallback() sets the progress notification callback for the associated XMPFiles (library) o...">SetProgressCallback()</a></code> sets the progress notification callback for the associated XMPFiles (library) object. <a href="#aa283e2a1c16918c86148446859ed1a2d">More...</a><br /></td></tr>
+<tr class="separator:aa283e2a1c16918c86148446859ed1a2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
+Error notifications</h2></td></tr>
+<tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrpb9b1c1c0b1b4992a1cbdde7ae0d6e01a"></a>From the beginning through version 5.5, XMP Toolkit errors result in throwing an <code><a class="el" href="classXMP__Error.html" title="XMP Toolkit error, associates an error code with a descriptive error string. ">XMP_Error</a></code> exception. For the most part exceptions were thrown early and thus API calls aborted as soon as an error was detected. Starting in version 5.5, support has been added for notifications of errors arising in calls to <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file. ">TXMPFiles</a></code> functions.</p>
<p>A client can register an error notification callback function for a <code>TXMPFile</code> object. This can be done as a global default or individually to each object. The global default applies to all objects created after it is registered. Within the object there is no difference between the global default or explicitly registered callback. The callback function returns a <code>bool</code> value indicating if recovery should be attempted (true) or an exception thrown (false). If no callback is registered, a best effort at recovery and continuation will be made with an exception thrown if recovery is not possible.</p>
-<p>The number of notifications delivered for a given <a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file.">TXMPFiles</a> object can be limited. This is intended to reduce chatter from multiple or cascading errors. The limit is set when the callback function is registered. This limits the number of notifications of the highest severity delivered or less. If a higher severity error occurs, the counting starts again. The limit and counting can be reset at any time, see <code>ResetErrorCallbackLimit</code>. </p>
-<br/><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#accc6c1cef9f124f6c5ed360251aa5aa7">SetDefaultErrorCallback</a> (<a class="el" href="XMP__Const_8h.html#aaceb0287e961c16649487db026bcfc61">XMPFiles_ErrorCallbackProc</a> proc, void *context=0, XMP_Uns32 limit=1)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classTXMPFiles.html#accc6c1cef9f124f6c5ed360251aa5aa7" title="SetDefaultErrorCallback() registers a global default error notification callback...">SetDefaultErrorCallback()</a> registers a global default error notification callback. <a href="#accc6c1cef9f124f6c5ed360251aa5aa7"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a43a98633a0090fb4ade76edf24302ab1">SetErrorCallback</a> (<a class="el" href="XMP__Const_8h.html#aaceb0287e961c16649487db026bcfc61">XMPFiles_ErrorCallbackProc</a> proc, void *context=0, XMP_Uns32 limit=1)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classTXMPFiles.html#a43a98633a0090fb4ade76edf24302ab1" title="SetErrorCallback() registers an error notification callback.">SetErrorCallback()</a> registers an error notification callback. <a href="#a43a98633a0090fb4ade76edf24302ab1"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a8e37b25dd1cba1e9a3f45037022717f2">ResetErrorCallbackLimit</a> (XMP_Uns32 limit=1)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classTXMPFiles.html#a8e37b25dd1cba1e9a3f45037022717f2" title="ResetErrorCallbackLimit() resets the error notification limit and counting. It has...">ResetErrorCallbackLimit()</a> resets the error notification limit and counting. It has no effect if an error notification callback function is not registered. <a href="#a8e37b25dd1cba1e9a3f45037022717f2"></a><br/></td></tr>
+<p>The number of notifications delivered for a given <a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file. ">TXMPFiles</a> object can be limited. This is intended to reduce chatter from multiple or cascading errors. The limit is set when the callback function is registered. This limits the number of notifications of the highest severity delivered or less. If a higher severity error occurs, the counting starts again. The limit and counting can be reset at any time, see <code>ResetErrorCallbackLimit</code>. </p>
+</td></tr>
+<tr class="memitem:accc6c1cef9f124f6c5ed360251aa5aa7"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#accc6c1cef9f124f6c5ed360251aa5aa7">SetDefaultErrorCallback</a> (<a class="el" href="XMP__Const_8h.html#a7bed3dd93335821e5afa0ac2b07a9640">XMPFiles_ErrorCallbackProc</a> proc, void *context=0, XMP_Uns32 limit=1)</td></tr>
+<tr class="memdesc:accc6c1cef9f124f6c5ed360251aa5aa7"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classTXMPFiles.html#accc6c1cef9f124f6c5ed360251aa5aa7" title="SetDefaultErrorCallback() registers a global default error notification callback. ...">SetDefaultErrorCallback()</a> registers a global default error notification callback. <a href="#accc6c1cef9f124f6c5ed360251aa5aa7">More...</a><br /></td></tr>
+<tr class="separator:accc6c1cef9f124f6c5ed360251aa5aa7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a43a98633a0090fb4ade76edf24302ab1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a43a98633a0090fb4ade76edf24302ab1">SetErrorCallback</a> (<a class="el" href="XMP__Const_8h.html#a7bed3dd93335821e5afa0ac2b07a9640">XMPFiles_ErrorCallbackProc</a> proc, void *context=0, XMP_Uns32 limit=1)</td></tr>
+<tr class="memdesc:a43a98633a0090fb4ade76edf24302ab1"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classTXMPFiles.html#a43a98633a0090fb4ade76edf24302ab1" title="SetErrorCallback() registers an error notification callback. ">SetErrorCallback()</a> registers an error notification callback. <a href="#a43a98633a0090fb4ade76edf24302ab1">More...</a><br /></td></tr>
+<tr class="separator:a43a98633a0090fb4ade76edf24302ab1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8e37b25dd1cba1e9a3f45037022717f2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPFiles.html#a8e37b25dd1cba1e9a3f45037022717f2">ResetErrorCallbackLimit</a> (XMP_Uns32 limit=1)</td></tr>
+<tr class="memdesc:a8e37b25dd1cba1e9a3f45037022717f2"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classTXMPFiles.html#a8e37b25dd1cba1e9a3f45037022717f2" title="ResetErrorCallbackLimit() resets the error notification limit and counting. It has no effect if an er...">ResetErrorCallbackLimit()</a> resets the error notification limit and counting. It has no effect if an error notification callback function is not registered. <a href="#a8e37b25dd1cba1e9a3f45037022717f2">More...</a><br /></td></tr>
+<tr class="separator:a8e37b25dd1cba1e9a3f45037022717f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
-<hr/><a name="_details"></a><h2>Detailed Description</h2>
-<h3>template&lt;class tStringObj&gt;<br/>
- class TXMPFiles&lt; tStringObj &gt;</h3>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><h3>template&lt;class tStringObj&gt;<br />
+class TXMPFiles&lt; tStringObj &gt;</h3>
<p>API for access to the main (document-level) metadata in a file. </p>
-<p><code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file.">TXMPFiles</a></code> is a template class that provides the API for the Adobe XMP Toolkit's XMPFiles component. This provides convenient access to the main, or document level, XMP for a file. Use it to obtain metadata from a file, which you can then manipulate with the XMP Core component (the classes <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta</a></code>, <code><a class="el" href="classTXMPUtils.html" title="API for access to the XMP Toolkit utility services.">TXMPUtils</a></code>, and <code><a class="el" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services.">TXMPIterator</a></code>); and to write new or changed metadata back out to a file.</p>
+<p><code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file. ">TXMPFiles</a></code> is a template class that provides the API for the Adobe XMP Toolkit's XMPFiles component. This provides convenient access to the main, or document level, XMP for a file. Use it to obtain metadata from a file, which you can then manipulate with the XMP Core component (the classes <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services. ">TXMPMeta</a></code>, <code><a class="el" href="classTXMPUtils.html" title="API for access to the XMP Toolkit utility services. ">TXMPUtils</a></code>, and <code><a class="el" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services. ">TXMPIterator</a></code>); and to write new or changed metadata back out to a file.</p>
<p>The functions allow you to open a file, read and write the metadata, then close the file. While open, portions of the file might be maintained in RAM data structures. Memory usage can vary considerably depending onfile format and access options.</p>
<p>A file can be opened for read-only or read-write access, with typical exclusion for both modes. Errors result in the throw of an <code>XMPError</code> exception.</p>
-<p><code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file.">TXMPFiles</a></code> is the template class. It must be instantiated with a string class such as <code>std::string</code>. Read the Toolkit Overview for information about the overall architecture of the XMP API, and the documentation for <code>XMP.hpp</code> for specific instantiation instructions.</p>
+<p><code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file. ">TXMPFiles</a></code> is the template class. It must be instantiated with a string class such as <code>std::string</code>. Read the Toolkit Overview for information about the overall architecture of the XMP API, and the documentation for <code><a class="el" href="XMP_8hpp.html" title="Overall header file for the XMP Toolkit. ">XMP.hpp</a></code> for specific instantiation instructions.</p>
<p>Access these functions through the concrete class, <code>SXMPFiles</code>. </p>
-<hr/><h2>Constructor &amp; Destructor Documentation</h2>
-<a class="anchor" id="a5eaa92724cc82d933a32eff9c4636739"></a><!-- doxytag: member="TXMPFiles::~TXMPFiles" ref="a5eaa92724cc82d933a32eff9c4636739" args="()" -->
+
+<p>Definition at line <a class="el" href="TXMPFiles_8hpp_source.html#l00067">67</a> of file <a class="el" href="TXMPFiles_8hpp_source.html">TXMPFiles.hpp</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a14f01e38454178578fd25fff6024fd54"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj&gt; </div>
<table class="memname">
<tr>
- <td class="memname">virtual <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt;::~<a class="el" href="classTXMPFiles.html">TXMPFiles</a> </td>
+ <td class="memname"><a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt;::<a class="el" href="classTXMPFiles.html">TXMPFiles</a> </td>
<td>(</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td> throw ()<code> [virtual]</code></td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
</tr>
</table>
+</div><div class="memdoc">
+
+<p>Default constructor initializes an object that is associated with no file. </p>
+
</div>
-<div class="memdoc">
+</div>
+<a class="anchor" id="a5eaa92724cc82d933a32eff9c4636739"></a>
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class tStringObj&gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt;::~<a class="el" href="classTXMPFiles.html">TXMPFiles</a> </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td align="right">throw </td><td>(</td><td colspan="2"></td>
+ </tr>
+ <tr>
+ <td align="right"></td><td>)</td><td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
<p>Destructor; typical virtual destructor. </p>
-<p>The destructor does not call <code><a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927" title="CloseFile() explicitly closes an opened file.">CloseFile()</a></code>; pending updates are lost when the destructor is run.</p>
-<dl class="see"><dt><b>See also:</b></dt><dd><code><a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb" title="OpenFile() opens a file for metadata access.">OpenFile()</a></code>, <code><a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927" title="CloseFile() explicitly closes an opened file.">CloseFile()</a></code> </dd></dl>
+<p>The destructor does not call <code><a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927" title="CloseFile() explicitly closes an opened file. ">CloseFile()</a></code>; pending updates are lost when the destructor is run.</p>
+<dl class="section see"><dt>See also</dt><dd><code><a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb" title="OpenFile() opens a file for metadata access. ">OpenFile()</a></code>, <code><a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927" title="CloseFile() explicitly closes an opened file. ">CloseFile()</a></code> </dd></dl>
</div>
</div>
-<a class="anchor" id="a36abe01988d4ca3939138e871c7b75e7"></a><!-- doxytag: member="TXMPFiles::TXMPFiles" ref="a36abe01988d4ca3939138e871c7b75e7" args="(XMP_StringPtr filePath, XMP_FileFormat format=kXMP_UnknownFile, XMP_OptionBits openFlags=0)" -->
+<a class="anchor" id="a36abe01988d4ca3939138e871c7b75e7"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -215,54 +286,53 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname"><a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt;::<a class="el" href="classTXMPFiles.html">TXMPFiles</a> </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>filePath</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>filePath</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a>&nbsp;</td>
- <td class="paramname"> <em>format</em> = <code>kXMP_UnknownFile</code>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a>&#160;</td>
+ <td class="paramname"><em>format</em> = <code><a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719">kXMP_UnknownFile</a></code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>openFlags</em> = <code>0</code></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>openFlags</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>Alternate constructor associates the new <code>XMPFiles</code> object with a specific file. </p>
-<p>Calls <code><a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb" title="OpenFile() opens a file for metadata access.">OpenFile()</a></code> to open the specified file after performing a default construct.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>filePath</em>&nbsp;</td><td>The path for the file, specified as a nul-terminated UTF-8 string.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>format</em>&nbsp;</td><td>A format hint for the file, if known.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>openFlags</em>&nbsp;</td><td>Options for how the file is to be opened (for read or read/write, for example). Use a logical OR of these bit-flag constants:</td></tr>
+<p>Calls <code><a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb" title="OpenFile() opens a file for metadata access. ">OpenFile()</a></code> to open the specified file after performing a default construct.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">filePath</td><td>The path for the file, specified as a nul-terminated UTF-8 string.</td></tr>
+ <tr><td class="paramname">format</td><td>A format hint for the file, if known.</td></tr>
+ <tr><td class="paramname">openFlags</td><td>Options for how the file is to be opened (for read or read/write, for example). Use a logical OR of these bit-flag constants:</td></tr>
</table>
</dd>
</dl>
<ul>
-<li><code><a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa4c61ec4ed571dbc5f1832ff6772320d2" title="Open for read-only access.">kXMPFiles_OpenForRead</a></code> </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa91fa388b3888bcb6a68615537b66a49b" title="Open for reading and writing.">kXMPFiles_OpenForUpdate</a></code> </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaa58279b2b1311242e7374117f455bb96" title="Only the XMP is wanted, allows space/time optimizations.">kXMPFiles_OpenOnlyXMP</a></code> </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa0bef4db2ecdaf82a85df9e9d417aab18" title="Be strict about only attempting to use the designated file handler, no fallback to...">kXMPFiles_OpenStrictly</a></code> </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaf6332435c7fc89cb0b7381e13fe43646" title="Require the use of a smart handler.">kXMPFiles_OpenUseSmartHandler</a></code> </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa77b47c63e579b28cbd25083ceb58c285" title="Force packet scanning, do not use a smart handler.">kXMPFiles_OpenUsePacketScanning</a></code> </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa77f34b1873bb2584feabe26a2c8f1182" title="Only packet scan files &quot;known&quot; to need scanning.">kXMPFiles_OpenLimitedScanning</a></code> </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa4c61ec4ed571dbc5f1832ff6772320d2" title="Open for read-only access. ">kXMPFiles_OpenForRead</a></code> </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa91fa388b3888bcb6a68615537b66a49b" title="Open for reading and writing. ">kXMPFiles_OpenForUpdate</a></code> </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaa58279b2b1311242e7374117f455bb96" title="Only the XMP is wanted, allows space/time optimizations. ">kXMPFiles_OpenOnlyXMP</a></code> </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa0bef4db2ecdaf82a85df9e9d417aab18" title="Be strict about only attempting to use the designated file handler, no fallback to other handlers...">kXMPFiles_OpenStrictly</a></code> </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaf6332435c7fc89cb0b7381e13fe43646" title="Require the use of a smart handler. ">kXMPFiles_OpenUseSmartHandler</a></code> </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa77b47c63e579b28cbd25083ceb58c285" title="Force packet scanning, do not use a smart handler. ">kXMPFiles_OpenUsePacketScanning</a></code> </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa77f34b1873bb2584feabe26a2c8f1182" title="Only packet scan files &quot;known&quot; to need scanning. ">kXMPFiles_OpenLimitedScanning</a></code> </li>
</ul>
-<dl class="return"><dt><b>Returns:</b></dt><dd>The new <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file.">TXMPFiles</a></code> object. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>The new <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file. ">TXMPFiles</a></code> object. </dd></dl>
</div>
</div>
-<a class="anchor" id="af540b3ea689a6d7381dca4f52132a4ac"></a><!-- doxytag: member="TXMPFiles::TXMPFiles" ref="af540b3ea689a6d7381dca4f52132a4ac" args="(const tStringObj &amp;filePath, XMP_FileFormat format=kXMP_UnknownFile, XMP_OptionBits openFlags=0)" -->
+<a class="anchor" id="af540b3ea689a6d7381dca4f52132a4ac"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -271,36 +341,35 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname"><a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt;::<a class="el" href="classTXMPFiles.html">TXMPFiles</a> </td>
<td>(</td>
- <td class="paramtype">const tStringObj &amp;&nbsp;</td>
- <td class="paramname"> <em>filePath</em>, </td>
+ <td class="paramtype">const tStringObj &amp;&#160;</td>
+ <td class="paramname"><em>filePath</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a>&nbsp;</td>
- <td class="paramname"> <em>format</em> = <code>kXMP_UnknownFile</code>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a>&#160;</td>
+ <td class="paramname"><em>format</em> = <code><a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719">kXMP_UnknownFile</a></code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>openFlags</em> = <code>0</code></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>openFlags</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>Alternate constructor associates the new <code>XMPFiles</code> object with a specific file, using a string object. </p>
<p>Overloads the basic form of the function, allowing you to pass a string object for the file path. It is otherwise identical; see details in the canonical form. </p>
</div>
</div>
-<a class="anchor" id="acf343fb6771b482ca72d467233a6f920"></a><!-- doxytag: member="TXMPFiles::TXMPFiles" ref="acf343fb6771b482ca72d467233a6f920" args="(const TXMPFiles&lt; tStringObj &gt; &amp;original)" -->
+<a class="anchor" id="acf343fb6771b482ca72d467233a6f920"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -309,28 +378,26 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname"><a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt;::<a class="el" href="classTXMPFiles.html">TXMPFiles</a> </td>
<td>(</td>
- <td class="paramtype">const <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt; &amp;&nbsp;</td>
- <td class="paramname"> <em>original</em></td>
- <td>&nbsp;)&nbsp;</td>
+ <td class="paramtype">const <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt; &amp;&#160;</td>
+ <td class="paramname"><em>original</em></td><td>)</td>
<td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>Copy constructor. </p>
<p>Increments an internal reference count but does not perform a deep copy.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>original</em>&nbsp;</td><td>The existing <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file.">TXMPFiles</a></code> object to copy.</td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">original</td><td>The existing <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file. ">TXMPFiles</a></code> object to copy.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>The new <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file.">TXMPFiles</a></code> object. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>The new <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file. ">TXMPFiles</a></code> object. </dd></dl>
</div>
</div>
-<a class="anchor" id="ad986c7b2e2d82eaef6cf6a33e9d09b65"></a><!-- doxytag: member="TXMPFiles::TXMPFiles" ref="ad986c7b2e2d82eaef6cf6a33e9d09b65" args="(XMPFilesRef xmpFilesObj)" -->
+<a class="anchor" id="ad986c7b2e2d82eaef6cf6a33e9d09b65"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -339,29 +406,27 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname"><a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt;::<a class="el" href="classTXMPFiles.html">TXMPFiles</a> </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a>&nbsp;</td>
- <td class="paramname"> <em>xmpFilesObj</em></td>
- <td>&nbsp;)&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a>&#160;</td>
+ <td class="paramname"><em>xmpFilesObj</em></td><td>)</td>
<td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p>Reconstructs a <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file.">TXMPFiles</a></code> object from an internal reference. </p>
-<p>This constructor creates a new <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file.">TXMPFiles</a></code> object that refers to the underlying reference object of an existing <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file.">TXMPFiles</a></code> object. Use to safely pass <code>SXMPFiles</code> references across DLL boundaries.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>xmpFilesObj</em>&nbsp;</td><td>The underlying reference object, obtained from some other XMP object with <code><a class="el" href="classTXMPFiles.html#a311fc36fdf7270fe05b1c531cdbbd009" title="GetInternalRef() retrieves an internal reference that can be safely passed across...">TXMPFiles::GetInternalRef()</a></code>.</td></tr>
+<p>Reconstructs a <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file. ">TXMPFiles</a></code> object from an internal reference. </p>
+<p>This constructor creates a new <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file. ">TXMPFiles</a></code> object that refers to the underlying reference object of an existing <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file. ">TXMPFiles</a></code> object. Use to safely pass <code>SXMPFiles</code> references across DLL boundaries.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">xmpFilesObj</td><td>The underlying reference object, obtained from some other XMP object with <code><a class="el" href="classTXMPFiles.html#a311fc36fdf7270fe05b1c531cdbbd009" title="GetInternalRef() retrieves an internal reference that can be safely passed across DLL boundaries and ...">TXMPFiles::GetInternalRef()</a></code>.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>The new object. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>The new object. </dd></dl>
</div>
</div>
-<hr/><h2>Member Function Documentation</h2>
-<a class="anchor" id="a2303dfcc00f108bda202600e3da9c109"></a><!-- doxytag: member="TXMPFiles::CanPutXMP" ref="a2303dfcc00f108bda202600e3da9c109" args="(XMP_StringPtr xmpPacket, XMP_StringLen xmpLength=kXMP_UseNullTermination)" -->
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a29a11a1539d6300da3fb4c7e9ea02bb6"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -370,37 +435,39 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">bool <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt;::CanPutXMP </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>xmpPacket</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramtype">const SXMPMeta &amp;&#160;</td>
+ <td class="paramname"><em>xmpObj</em></td><td>)</td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a>&nbsp;</td>
- <td class="paramname"> <em>xmpLength</em> = <code>kXMP_UseNullTermination</code></td><td>&nbsp;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPFiles.html#a29a11a1539d6300da3fb4c7e9ea02bb6" title="CanPutXMP() reports whether this file can be updated with a specific XMP packet.">CanPutXMP()</a></code> reports whether this file can be updated with a specific XMP packet, passed in a string object. </p>
-<p>Overloads the basic form of the function, allowing you to pass the metadata as a string object instead of an XMP object. It is otherwise identical; see details in the canonical form.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>xmpPacket</em>&nbsp;</td><td>The proposed new metadata as a <code>const char *</code> string containing an XMP packet.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>xmpLength</em>&nbsp;</td><td>Optional. The number of bytes in the string. If not supplied, the string is assumed to be nul-terminated. </td></tr>
+<p><code><a class="el" href="classTXMPFiles.html#a29a11a1539d6300da3fb4c7e9ea02bb6" title="CanPutXMP() reports whether this file can be updated with a specific XMP packet. ">CanPutXMP()</a></code> reports whether this file can be updated with a specific XMP packet. </p>
+<p>Use to determine if the file can probably be updated with a given set of XMP metadata. This depends on the size of the packet, the options with which the file was opened, and the capabilities of the handler for the file format. The function obtains the length of the serialized packet for the provided XMP, but does not keep it or modify it, and does not cause the file to be written when closed. This is implemented roughly as follows:</p>
+<pre>
+bool CanPutXMP ( XMP_StringPtr xmpPacket )
+{
+ XMP_FileFormat format;
+ this-&gt;GetFileInfo ( 0, &amp;format, 0 );</pre><pre> XMP_OptionBits formatFlags;
+ GetFormatInfo ( format, &amp;formatFlags );</pre><pre> if ( (formatFlags &amp; kXMPFiles_CanInjectXMP) &amp;&amp; (formatFlags &amp; kXMPFiles_CanExpand) ) return true;</pre><pre> <a class="el" href="structXMP__PacketInfo.html" title="XMP packet description. ">XMP_PacketInfo</a> packetInfo;
+ bool hasXMP = this-&gt;GetXMP ( 0, 0, &amp;packetInfo );</pre><pre> if ( ! hasXMP ) {
+ if ( formatFlags &amp; kXMPFiles_CanInjectXMP ) return true;
+ } else {
+ if ( (formatFlags &amp; kXMPFiles_CanExpand) ||
+ (packetInfo.length &gt;= strlen(xmpPacket)) ) return true;
+ }
+ return false;
+}
+</pre><dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">xmpObj</td><td>The proposed new metadata as an XMP object. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="a1d3f32c2b95659ada198775e2f67c808"></a><!-- doxytag: member="TXMPFiles::CanPutXMP" ref="a1d3f32c2b95659ada198775e2f67c808" args="(const tStringObj &amp;xmpPacket)" -->
+<a class="anchor" id="a1d3f32c2b95659ada198775e2f67c808"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -409,27 +476,25 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">bool <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt;::CanPutXMP </td>
<td>(</td>
- <td class="paramtype">const tStringObj &amp;&nbsp;</td>
- <td class="paramname"> <em>xmpPacket</em></td>
- <td>&nbsp;)&nbsp;</td>
+ <td class="paramtype">const tStringObj &amp;&#160;</td>
+ <td class="paramname"><em>xmpPacket</em></td><td>)</td>
<td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPFiles.html#a29a11a1539d6300da3fb4c7e9ea02bb6" title="CanPutXMP() reports whether this file can be updated with a specific XMP packet.">CanPutXMP()</a></code> reports whether this file can be updated with a specific XMP packet, passed in a string object. </p>
+<p><code><a class="el" href="classTXMPFiles.html#a29a11a1539d6300da3fb4c7e9ea02bb6" title="CanPutXMP() reports whether this file can be updated with a specific XMP packet. ">CanPutXMP()</a></code> reports whether this file can be updated with a specific XMP packet, passed in a string object. </p>
<p>Overloads the basic form of the function, allowing you to pass the metadata as a string object instead of an XMP object. It is otherwise identical; see details in the canonical form.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>xmpPacket</em>&nbsp;</td><td>The proposed new metadata as a string object containing an XMP packet. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">xmpPacket</td><td>The proposed new metadata as a string object containing an XMP packet. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="a29a11a1539d6300da3fb4c7e9ea02bb6"></a><!-- doxytag: member="TXMPFiles::CanPutXMP" ref="a29a11a1539d6300da3fb4c7e9ea02bb6" args="(const SXMPMeta &amp;xmpObj)" -->
+<a class="anchor" id="a2303dfcc00f108bda202600e3da9c109"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -438,101 +503,108 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">bool <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt;::CanPutXMP </td>
<td>(</td>
- <td class="paramtype">const SXMPMeta &amp;&nbsp;</td>
- <td class="paramname"> <em>xmpObj</em></td>
- <td>&nbsp;)&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>xmpPacket</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a>&#160;</td>
+ <td class="paramname"><em>xmpLength</em> = <code><a class="el" href="XMP__Const_8h.html#a8283c9596c03b6d626d5a2b7a90e23ab">kXMP_UseNullTermination</a></code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPFiles.html#a29a11a1539d6300da3fb4c7e9ea02bb6" title="CanPutXMP() reports whether this file can be updated with a specific XMP packet.">CanPutXMP()</a></code> reports whether this file can be updated with a specific XMP packet. </p>
-<p>Use to determine if the file can probably be updated with a given set of XMP metadata. This depends on the size of the packet, the options with which the file was opened, and the capabilities of the handler for the file format. The function obtains the length of the serialized packet for the provided XMP, but does not keep it or modify it, and does not cause the file to be written when closed. This is implemented roughly as follows:</p>
-<pre>
- bool CanPutXMP ( XMP_StringPtr xmpPacket )
- {
- XMP_FileFormat format;
- this-&gt;GetFileInfo ( 0, &amp;format, 0 );</pre><pre> XMP_OptionBits formatFlags;
- GetFormatInfo ( format, &amp;formatFlags );</pre><pre> if ( (formatFlags &amp; kXMPFiles_CanInjectXMP) &amp;&amp; (formatFlags &amp; kXMPFiles_CanExpand) ) return true;</pre><pre> <a class="el" href="structXMP__PacketInfo.html" title="XMP packet description.">XMP_PacketInfo</a> packetInfo;
- bool hasXMP = this-&gt;GetXMP ( 0, 0, &amp;packetInfo );</pre><pre> if ( ! hasXMP ) {
- if ( formatFlags &amp; kXMPFiles_CanInjectXMP ) return true;
- } else {
- if ( (formatFlags &amp; kXMPFiles_CanExpand) ||
- (packetInfo.length &gt;= strlen(xmpPacket)) ) return true;
- }
- return false;
- }
- </pre><dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>xmpObj</em>&nbsp;</td><td>The proposed new metadata as an XMP object. </td></tr>
+<p><code><a class="el" href="classTXMPFiles.html#a29a11a1539d6300da3fb4c7e9ea02bb6" title="CanPutXMP() reports whether this file can be updated with a specific XMP packet. ">CanPutXMP()</a></code> reports whether this file can be updated with a specific XMP packet, passed in a string object. </p>
+<p>Overloads the basic form of the function, allowing you to pass the metadata as a string object instead of an XMP object. It is otherwise identical; see details in the canonical form.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">xmpPacket</td><td>The proposed new metadata as a <code>const char *</code> string containing an XMP packet.</td></tr>
+ <tr><td class="paramname">xmpLength</td><td>Optional. The number of bytes in the string. If not supplied, the string is assumed to be nul-terminated. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="a07b7c4b44fb0e0a7d115ddd5ba22f926"></a><!-- doxytag: member="TXMPFiles::CheckFileFormat" ref="a07b7c4b44fb0e0a7d115ddd5ba22f926" args="(XMP_StringPtr filePath)" -->
+<a class="anchor" id="a07b7c4b44fb0e0a7d115ddd5ba22f926"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj&gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt;::CheckFileFormat </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>filePath</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td><code> [static]</code></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>filePath</em></td><td>)</td>
+ <td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPFiles.html#a07b7c4b44fb0e0a7d115ddd5ba22f926" title="CheckFileFormat() tries to determine the format of a file.">CheckFileFormat()</a></code> tries to determine the format of a file. </p>
-<p>Tries to determine the format of a file, returning an <code><a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e" title="Type for file format identification constants. See kXMP_PDFFile and following.">XMP_FileFormat</a></code> value. Uses the same logic as <code><a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb" title="OpenFile() opens a file for metadata access.">OpenFile()</a></code> to select a smart handler.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>filePath</em>&nbsp;</td><td>The path for the file, appropriate for the local operating system. Passed as a nul-terminated UTF-8 string. The path is the same as would be passed to <code>OpenFile</code>.</td></tr>
+<p><code><a class="el" href="classTXMPFiles.html#a07b7c4b44fb0e0a7d115ddd5ba22f926" title="CheckFileFormat() tries to determine the format of a file. ">CheckFileFormat()</a></code> tries to determine the format of a file. </p>
+<p>Tries to determine the format of a file, returning an <code><a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e" title="Type for file format identification constants. See kXMP_PDFFile and following. ">XMP_FileFormat</a></code> value. Uses the same logic as <code><a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb" title="OpenFile() opens a file for metadata access. ">OpenFile()</a></code> to select a smart handler.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">filePath</td><td>The path for the file, appropriate for the local operating system. Passed as a nul-terminated UTF-8 string. The path is the same as would be passed to <code>OpenFile</code>.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>The file's format if a smart handler would be selected by <code><a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb" title="OpenFile() opens a file for metadata access.">OpenFile()</a></code>, otherwise <code><a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719" title="Unknown file format constant: &#39; &#39;.">kXMP_UnknownFile</a></code>. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>The file's format if a smart handler would be selected by <code><a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb" title="OpenFile() opens a file for metadata access. ">OpenFile()</a></code>, otherwise <code><a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719" title="Unknown file format constant: &#39; &#39;. ">kXMP_UnknownFile</a></code>. </dd></dl>
</div>
</div>
-<a class="anchor" id="a7f505664c41d7304fb757d6009b0751c"></a><!-- doxytag: member="TXMPFiles::CheckPackageFormat" ref="a7f505664c41d7304fb757d6009b0751c" args="(XMP_StringPtr folderPath)" -->
+<a class="anchor" id="a7f505664c41d7304fb757d6009b0751c"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj&gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt;::CheckPackageFormat </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>folderPath</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td><code> [static]</code></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>folderPath</em></td><td>)</td>
+ <td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPFiles.html#a7f505664c41d7304fb757d6009b0751c" title="CheckPackageFormat() tries to determine the format of a &quot;package&quot; folder...">CheckPackageFormat()</a></code> tries to determine the format of a "package" folder. </p>
-<p>Tries to determine the format of a package, given the name of the top-level folder. Returns an <code><a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e" title="Type for file format identification constants. See kXMP_PDFFile and following.">XMP_FileFormat</a></code> value. Examples of recognized packages include the video formats P2, XDCAM, or Sony HDV. These packages contain collections of "clips", stored as multiple files in specific subfolders.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>folderPath</em>&nbsp;</td><td>The path for the top-level folder, appropriate for the local operating system. Passed as a nul-terminated UTF-8 string. This is not the same path you would pass to <code><a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb" title="OpenFile() opens a file for metadata access.">OpenFile()</a></code>. For example, the top-level path for a package might be ".../MyMovie", while the path to a file you wish to open would be ".../MyMovie/SomeClip".</td></tr>
+<p><code><a class="el" href="classTXMPFiles.html#a7f505664c41d7304fb757d6009b0751c" title="CheckPackageFormat() tries to determine the format of a &quot;package&quot; folder. ">CheckPackageFormat()</a></code> tries to determine the format of a "package" folder. </p>
+<p>Tries to determine the format of a package, given the name of the top-level folder. Returns an <code><a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e" title="Type for file format identification constants. See kXMP_PDFFile and following. ">XMP_FileFormat</a></code> value. Examples of recognized packages include the video formats P2, XDCAM, or Sony HDV. These packages contain collections of "clips", stored as multiple files in specific subfolders.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">folderPath</td><td>The path for the top-level folder, appropriate for the local operating system. Passed as a nul-terminated UTF-8 string. This is not the same path you would pass to <code><a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb" title="OpenFile() opens a file for metadata access. ">OpenFile()</a></code>. For example, the top-level path for a package might be ".../MyMovie", while the path to a file you wish to open would be ".../MyMovie/SomeClip".</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>The package's format if it can be determined, otherwise <code><a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719" title="Unknown file format constant: &#39; &#39;.">kXMP_UnknownFile</a></code>. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>The package's format if it can be determined, otherwise <code><a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719" title="Unknown file format constant: &#39; &#39;. ">kXMP_UnknownFile</a></code>. </dd></dl>
</div>
</div>
-<a class="anchor" id="aeca89170c7aa3e2d56e30bff04dd7927"></a><!-- doxytag: member="TXMPFiles::CloseFile" ref="aeca89170c7aa3e2d56e30bff04dd7927" args="(XMP_OptionBits closeFlags=0)" -->
+<a class="anchor" id="aeca89170c7aa3e2d56e30bff04dd7927"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -541,86 +613,90 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">void <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt;::CloseFile </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>closeFlags</em> = <code>0</code></td>
- <td>&nbsp;)&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>closeFlags</em> = <code>0</code></td><td>)</td>
<td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927" title="CloseFile() explicitly closes an opened file.">CloseFile()</a> explicitly closes an opened file. </p>
+<p><a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927" title="CloseFile() explicitly closes an opened file. ">CloseFile()</a> explicitly closes an opened file. </p>
<p>Performs any necessary output to the file and closes it. Files that are opened for update are written to only when closing.</p>
-<p>If the file is opened for read-only access (passing <code><a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa4c61ec4ed571dbc5f1832ff6772320d2" title="Open for read-only access.">kXMPFiles_OpenForRead</a></code>), the disk file is closed immediately after reading the data from it; the <code>XMPFiles</code> object, however, remains in the open state. You must call <code><a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927" title="CloseFile() explicitly closes an opened file.">CloseFile()</a></code> when finished using it. Other methods, such as <code><a class="el" href="classTXMPFiles.html#a42ca0bbc5ac66a8de1710e03a7ff17b3" title="GetXMP() retrieves the XMP metadata from an open file.">GetXMP()</a></code>, can only be used between the <code><a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb" title="OpenFile() opens a file for metadata access.">OpenFile()</a></code> and <code><a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927" title="CloseFile() explicitly closes an opened file.">CloseFile()</a></code> calls. The <code>XMPFiles</code> destructor does not call <code><a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927" title="CloseFile() explicitly closes an opened file.">CloseFile()</a></code>; if you call it without closing, any pending updates are lost.</p>
-<p>If the file is opened for update (passing <code><a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa91fa388b3888bcb6a68615537b66a49b" title="Open for reading and writing.">kXMPFiles_OpenForUpdate</a></code>), the disk file remains open until <code><a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927" title="CloseFile() explicitly closes an opened file.">CloseFile()</a></code> is called. The disk file is only updated once, when <code><a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927" title="CloseFile() explicitly closes an opened file.">CloseFile()</a></code> is called, regardless of how many calls are made to <code><a class="el" href="classTXMPFiles.html#ad3f7babdc07c7de0d0cd9a3362b4710a" title="PutXMP() updates the XMP metadata in this object without writing out the file.">PutXMP()</a></code>.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>closeFlags</em>&nbsp;</td><td>Option flags for optional closing actions. This bit-flag constant is defined:</td></tr>
+<p>If the file is opened for read-only access (passing <code><a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa4c61ec4ed571dbc5f1832ff6772320d2" title="Open for read-only access. ">kXMPFiles_OpenForRead</a></code>), the disk file is closed immediately after reading the data from it; the <code>XMPFiles</code> object, however, remains in the open state. You must call <code><a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927" title="CloseFile() explicitly closes an opened file. ">CloseFile()</a></code> when finished using it. Other methods, such as <code><a class="el" href="classTXMPFiles.html#a42ca0bbc5ac66a8de1710e03a7ff17b3" title="GetXMP() retrieves the XMP metadata from an open file. ">GetXMP()</a></code>, can only be used between the <code><a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb" title="OpenFile() opens a file for metadata access. ">OpenFile()</a></code> and <code><a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927" title="CloseFile() explicitly closes an opened file. ">CloseFile()</a></code> calls. The <code>XMPFiles</code> destructor does not call <code><a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927" title="CloseFile() explicitly closes an opened file. ">CloseFile()</a></code>; if you call it without closing, any pending updates are lost.</p>
+<p>If the file is opened for update (passing <code><a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa91fa388b3888bcb6a68615537b66a49b" title="Open for reading and writing. ">kXMPFiles_OpenForUpdate</a></code>), the disk file remains open until <code><a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927" title="CloseFile() explicitly closes an opened file. ">CloseFile()</a></code> is called. The disk file is only updated once, when <code><a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927" title="CloseFile() explicitly closes an opened file. ">CloseFile()</a></code> is called, regardless of how many calls are made to <code><a class="el" href="classTXMPFiles.html#ad3f7babdc07c7de0d0cd9a3362b4710a" title="PutXMP() updates the XMP metadata in this object without writing out the file. ">PutXMP()</a></code>.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">closeFlags</td><td>Option flags for optional closing actions. This bit-flag constant is defined:</td></tr>
</table>
</dd>
</dl>
<ul>
-<li><code><a class="el" href="XMP__Const_8h.html#a6b7b47dd702d9e331586d485013fd1eaadbf8d744f355ef9800a4ec44325baf54" title="Write into a temporary file and swap for crash safety.">kXMPFiles_UpdateSafely</a></code> - Write into a temporary file then swap for crash safety. </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a6b7b47dd702d9e331586d485013fd1eaadbf8d744f355ef9800a4ec44325baf54" title="Write into a temporary file and swap for crash safety. ">kXMPFiles_UpdateSafely</a></code> - Write into a temporary file then swap for crash safety. </li>
</ul>
</div>
</div>
-<a class="anchor" id="a03e6c681e827666690f0e5567b0b2a8a"></a><!-- doxytag: member="TXMPFiles::GetAssociatedResources" ref="a03e6c681e827666690f0e5567b0b2a8a" args="(XMP_StringPtr filePath, std::vector&lt; tStringObj &gt; *resourceList, XMP_FileFormat format=kXMP_UnknownFile, XMP_OptionBits options=0)" -->
+<a class="anchor" id="a03e6c681e827666690f0e5567b0b2a8a"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj&gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static bool <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt;::GetAssociatedResources </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>filePath</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>filePath</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">std::vector&lt; tStringObj &gt; *&nbsp;</td>
- <td class="paramname"> <em>resourceList</em>, </td>
+ <td class="paramtype">std::vector&lt; tStringObj &gt; *&#160;</td>
+ <td class="paramname"><em>resourceList</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a>&nbsp;</td>
- <td class="paramname"> <em>format</em> = <code>kXMP_UnknownFile</code>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a>&#160;</td>
+ <td class="paramname"><em>format</em> = <code><a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719">kXMP_UnknownFile</a></code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>options</em> = <code>0</code></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td><code> [static]</code></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
-
-<p><code><a class="el" href="classTXMPFiles.html#a03e6c681e827666690f0e5567b0b2a8a" title="GetAssociatedResources() returns a list of files and folders associated to filePath...">GetAssociatedResources()</a></code> returns a list of files and folders associated to filePath. </p>
-<p><code>GetAssociatedResources</code> is provided to locate all files that are associated to the given filePath such as sidecar-based XMP or folder-based video packages.If a smart handler can be selected (not fallback packet scanning) then a list of file/folder paths is returned for the related files that can be safely copied/imported to a different location, keeping intact metadata(XMP and non-XMP),content and the necessary folder structure of the format. The necessary folder structure here is the structure that is needed to uniquely identify a folder-based format.The filePath and format parameters are exactly as would be used for OpenFile. In the simple embedded XMP case just one path is returned. In the simple sidecar case one or two paths will be returned, one if there is no sidecar XMP and two if sidecar XMP exists. For folder-based handlers paths to all associated files is returned, including the files and folders necessary to identify the format.In general, all the returned paths are existent.In case of folder based video formats the first associated resource in the resourceList is the root folder.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>filePath</em>&nbsp;</td><td>A path exactly as would be passed to <code>OpenFile</code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>resourceList</em>&nbsp;</td><td>Address of a vector of strings to receive all associated resource paths.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>format</em>&nbsp;</td><td>A format hint as would be passed to <code>OpenFile</code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>An optional set of option flags. The only defined one is <code>kXMPFiles_ForceGivenHandler</code>, used to shortcut the handler selection logic if the caller is certain of the format.</td></tr>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p><code><a class="el" href="classTXMPFiles.html#a03e6c681e827666690f0e5567b0b2a8a" title="GetAssociatedResources() returns a list of files and folders associated to filePath. ">GetAssociatedResources()</a></code> returns a list of files and folders associated to filePath. </p>
+<p><code>GetAssociatedResources</code> is provided to locate all files that are associated to the given filePath such as sidecar-based XMP or folder-based video packages.If a smart handler can be selected (not fallback packet scanning) then a list of file/folder paths is returned for the related files that can be safely copied/imported to a different location, keeping intact metadata(XMP and non-XMP),content and the necessary folder structure of the format. The necessary folder structure here is the structure that is needed to uniquely identify a folder-based format.The filePath and format parameters are exactly as would be used for OpenFile. In the simple embedded XMP case just one path is returned. In the simple sidecar case one or two paths will be returned, one if there is no sidecar XMP and two if sidecar XMP exists. For folder-based handlers paths to all associated files is returned, including the files and folders necessary to identify the format.In general, all the returned paths are existent.In case of folder based video formats the first associated resource in the resourceList is the root folder. </p><dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">filePath</td><td>A path exactly as would be passed to <code>OpenFile</code>.</td></tr>
+ <tr><td class="paramname">resourceList</td><td>Address of a vector of strings to receive all associated resource paths.</td></tr>
+ <tr><td class="paramname">format</td><td>A format hint as would be passed to <code>OpenFile</code>.</td></tr>
+ <tr><td class="paramname">options</td><td>An optional set of option flags. The only defined one is <code>kXMPFiles_ForceGivenHandler</code>, used to shortcut the handler selection logic if the caller is certain of the format.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>Returns true if the file path is valid to select a smart handler, false for an invalid path or if fallback packet scanning would be selected. Can also return false for unexpected errors that prevent knowledge of the file usage. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>Returns true if the file path is valid to select a smart handler, false for an invalid path or if fallback packet scanning would be selected. Can also return false for unexpected errors that prevent knowledge of the file usage. </dd></dl>
</div>
</div>
-<a class="anchor" id="af9931d081cb19f98c81e41786030765b"></a><!-- doxytag: member="TXMPFiles::GetFileInfo" ref="af9931d081cb19f98c81e41786030765b" args="(tStringObj *filePath=0, XMP_OptionBits *openFlags=0, XMP_FileFormat *format=0, XMP_OptionBits *handlerFlags=0)" -->
+<a class="anchor" id="af9931d081cb19f98c81e41786030765b"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -629,155 +705,168 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">bool <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt;::GetFileInfo </td>
<td>(</td>
- <td class="paramtype">tStringObj *&nbsp;</td>
- <td class="paramname"> <em>filePath</em> = <code>0</code>, </td>
+ <td class="paramtype">tStringObj *&#160;</td>
+ <td class="paramname"><em>filePath</em> = <code>0</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&nbsp;</td>
- <td class="paramname"> <em>openFlags</em> = <code>0</code>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&#160;</td>
+ <td class="paramname"><em>openFlags</em> = <code>0</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> *&nbsp;</td>
- <td class="paramname"> <em>format</em> = <code>0</code>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> *&#160;</td>
+ <td class="paramname"><em>format</em> = <code>0</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&nbsp;</td>
- <td class="paramname"> <em>handlerFlags</em> = <code>0</code></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&#160;</td>
+ <td class="paramname"><em>handlerFlags</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
-
-<p><code><a class="el" href="classTXMPFiles.html#af9931d081cb19f98c81e41786030765b" title="GetFileInfo() retrieves basic information about an opened file.">GetFileInfo()</a></code> retrieves basic information about an opened file. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>filePath</em>&nbsp;</td><td>[out] A buffer in which to return the path passed to <code><a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb" title="OpenFile() opens a file for metadata access.">OpenFile()</a></code>. Can be null if value is not wanted.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>openFlags</em>&nbsp;</td><td>[out] A buffer in which to return the option flags passed to <code><a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb" title="OpenFile() opens a file for metadata access.">OpenFile()</a></code>. Can be null if value is not wanted.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>format</em>&nbsp;</td><td>[out] A buffer in which to return the file format. Can be null if value is not wanted. </td></tr>
- <tr><td valign="top"></td><td valign="top"><em>handlerFlags</em>&nbsp;</td><td>[out] A buffer in which to return the handler's capability flags. Can be null if value is not wanted.</td></tr>
+</div><div class="memdoc">
+
+<p><code><a class="el" href="classTXMPFiles.html#af9931d081cb19f98c81e41786030765b" title="GetFileInfo() retrieves basic information about an opened file. ">GetFileInfo()</a></code> retrieves basic information about an opened file. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">filePath</td><td>[out] A buffer in which to return the path passed to <code><a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb" title="OpenFile() opens a file for metadata access. ">OpenFile()</a></code>. Can be null if value is not wanted.</td></tr>
+ <tr><td class="paramname">openFlags</td><td>[out] A buffer in which to return the option flags passed to <code><a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb" title="OpenFile() opens a file for metadata access. ">OpenFile()</a></code>. Can be null if value is not wanted.</td></tr>
+ <tr><td class="paramname">format</td><td>[out] A buffer in which to return the file format. Can be null if value is not wanted. </td></tr>
+ <tr><td class="paramname">handlerFlags</td><td>[out] A buffer in which to return the handler's capability flags. Can be null if value is not wanted.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>True if the file object is in the open state; that is, <code><a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb" title="OpenFile() opens a file for metadata access.">OpenFile()</a></code> has been called but <code><a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927" title="CloseFile() explicitly closes an opened file.">CloseFile()</a></code> has not. False otherwise. Even if the file object is open, the actual disk file might be closed in the host file-system sense; see <code><a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb" title="OpenFile() opens a file for metadata access.">OpenFile()</a></code>. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>True if the file object is in the open state; that is, <code><a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb" title="OpenFile() opens a file for metadata access. ">OpenFile()</a></code> has been called but <code><a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927" title="CloseFile() explicitly closes an opened file. ">CloseFile()</a></code> has not. False otherwise. Even if the file object is open, the actual disk file might be closed in the host file-system sense; see <code><a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb" title="OpenFile() opens a file for metadata access. ">OpenFile()</a></code>. </dd></dl>
</div>
</div>
-<a class="anchor" id="a0de588c4b98086206b3a5d737012106d"></a><!-- doxytag: member="TXMPFiles::GetFileModDate" ref="a0de588c4b98086206b3a5d737012106d" args="(XMP_StringPtr filePath, XMP_DateTime *modDate, XMP_FileFormat *format=0, XMP_OptionBits options=0)" -->
+<a class="anchor" id="a0de588c4b98086206b3a5d737012106d"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj&gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static bool <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt;::GetFileModDate </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>filePath</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>filePath</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *&nbsp;</td>
- <td class="paramname"> <em>modDate</em>, </td>
+ <td class="paramtype"><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *&#160;</td>
+ <td class="paramname"><em>modDate</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> *&nbsp;</td>
- <td class="paramname"> <em>format</em> = <code>0</code>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> *&#160;</td>
+ <td class="paramname"><em>format</em> = <code>0</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>options</em> = <code>0</code></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td><code> [static]</code></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPFiles.html#a0de588c4b98086206b3a5d737012106d" title="GetFileModDate() returns the last modification date of all files that are returned...">GetFileModDate()</a></code> returns the last modification date of all files that are returned by <code><a class="el" href="classTXMPFiles.html#a03e6c681e827666690f0e5567b0b2a8a" title="GetAssociatedResources() returns a list of files and folders associated to filePath...">GetAssociatedResources()</a></code> </p>
+<p><code><a class="el" href="classTXMPFiles.html#a0de588c4b98086206b3a5d737012106d" title="GetFileModDate() returns the last modification date of all files that are returned by GetAssociatedRe...">GetFileModDate()</a></code> returns the last modification date of all files that are returned by <code><a class="el" href="classTXMPFiles.html#a03e6c681e827666690f0e5567b0b2a8a" title="GetAssociatedResources() returns a list of files and folders associated to filePath. ">GetAssociatedResources()</a></code> </p>
<p>Returns the most recent O/S file modification date of all associated files. In the typical case of a single file containing embedded XMP, returned date value is the modification date of the same file. For sidecar and folder based video packages, returned date value is the modification date of that associated file which was updated last.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>filePath</em>&nbsp;</td><td>A path exactly as would be passed to <code>OpenFile</code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>modDate</em>&nbsp;</td><td>A required pointer to return the last modification date.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>format</em>&nbsp;</td><td>A format hint as would be passed to <code>OpenFile</code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>An optional set of option flags. The only defined one is <code>kXMPFiles_ForceGivenHandler</code>, used to shortcut the handler selection logic if the caller is certain of the format.</td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">filePath</td><td>A path exactly as would be passed to <code>OpenFile</code>.</td></tr>
+ <tr><td class="paramname">modDate</td><td>A required pointer to return the last modification date.</td></tr>
+ <tr><td class="paramname">format</td><td>A format hint as would be passed to <code>OpenFile</code>.</td></tr>
+ <tr><td class="paramname">options</td><td>An optional set of option flags. The only defined one is <code>kXMPFiles_ForceGivenHandler</code>, used to shortcut the handler selection logic if the caller is certain of the format.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>Returns true if the file path is valid to select a smart handler, false for an invalid path or if fallback packet scanning would be selected. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>Returns true if the file path is valid to select a smart handler, false for an invalid path or if fallback packet scanning would be selected. </dd></dl>
</div>
</div>
-<a class="anchor" id="acb9e16a1477ec67fa6da6d736a9bc131"></a><!-- doxytag: member="TXMPFiles::GetFormatInfo" ref="acb9e16a1477ec67fa6da6d736a9bc131" args="(XMP_FileFormat format, XMP_OptionBits *handlerFlags=0)" -->
+<a class="anchor" id="acb9e16a1477ec67fa6da6d736a9bc131"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj&gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">* static bool <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt;::GetFormatInfo </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a>&nbsp;</td>
- <td class="paramname"> <em>format</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a>&#160;</td>
+ <td class="paramname"><em>format</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&nbsp;</td>
- <td class="paramname"> <em>handlerFlags</em> = <code>0</code></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&#160;</td>
+ <td class="paramname"><em>handlerFlags</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td><code> [static]</code></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p><a class="el" href="classTXMPFiles.html#acb9e16a1477ec67fa6da6d736a9bc131" title="GetFormatInfo() reports what features are supported for a specific file format.">GetFormatInfo()</a> reports what features are supported for a specific file format. </p>
+<p><a class="el" href="classTXMPFiles.html#acb9e16a1477ec67fa6da6d736a9bc131" title="GetFormatInfo() reports what features are supported for a specific file format. ">GetFormatInfo()</a> reports what features are supported for a specific file format. </p>
<p>The file handlers for different file formats vary considerably in what features they support. Support depends on both the general capabilities of the format and the implementation of the handler for that format.</p>
<p>This function is static; make the call directly from the concrete class (<code>SXMPFiles</code>).</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>format</em>&nbsp;</td><td>The file format whose support flags are desired.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>handlerFlags</em>&nbsp;</td><td>[out] A buffer in which to return a logical OR of option bit flags. The following constants are defined:</td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">format</td><td>The file format whose support flags are desired.</td></tr>
+ <tr><td class="paramname">handlerFlags</td><td>[out] A buffer in which to return a logical OR of option bit flags. The following constants are defined:</td></tr>
</table>
</dd>
</dl>
<ul>
-<li><code><a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea23a3eb2a5e95292036a93ad6666fa388" title="Can inject first-time XMP into an existing file.">kXMPFiles_CanInjectXMP</a></code> - Can inject first-time XMP into an existing file. </li>
-<li><code><a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea126c9cc056f6569c424431edbcb9521c" title="Can expand XMP or other metadata in an existing file.">kXMPFiles_CanExpand</a></code> - Can expand XMP or other metadata in an existing file. </li>
-<li><code><a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea8957f1ef358b4ab3a1df519903f2ae07" title="Can copy one file to another, writing new metadata.">kXMPFiles_CanRewrite</a></code> - Can copy one file to another, writing new metadata (as in SaveAs) </li>
-<li><code><a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceafc2bc7cfdd28a326788d563ec0357694" title="Supports reconciliation between XMP and other forms.">kXMPFiles_CanReconcile</a></code> - Supports reconciliation between XMP and other forms. </li>
-<li><code><a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea4a183c3ec4994cf09993e5b31dee9733" title="Allows access to just the XMP, ignoring other forms.">kXMPFiles_AllowsOnlyXMP</a></code> - Allows access to just the XMP, ignoring other forms. This is only meaningful if <code><a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceafc2bc7cfdd28a326788d563ec0357694" title="Supports reconciliation between XMP and other forms.">kXMPFiles_CanReconcile</a></code> is set. </li>
-<li><code><a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceadb116eed738d1fcdfe4ab9c1635e08ea" title="File handler returns raw XMP packet information.">kXMPFiles_ReturnsRawPacket</a></code> - File handler returns raw XMP packet information and string.</li>
+<li><code><a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea23a3eb2a5e95292036a93ad6666fa388" title="Can inject first-time XMP into an existing file. ">kXMPFiles_CanInjectXMP</a></code> - Can inject first-time XMP into an existing file. </li>
+<li><code><a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea126c9cc056f6569c424431edbcb9521c" title="Can expand XMP or other metadata in an existing file. ">kXMPFiles_CanExpand</a></code> - Can expand XMP or other metadata in an existing file. </li>
+<li><code><a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea8957f1ef358b4ab3a1df519903f2ae07" title="Can copy one file to another, writing new metadata. ">kXMPFiles_CanRewrite</a></code> - Can copy one file to another, writing new metadata (as in SaveAs) </li>
+<li><code><a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceafc2bc7cfdd28a326788d563ec0357694" title="Supports reconciliation between XMP and other forms. ">kXMPFiles_CanReconcile</a></code> - Supports reconciliation between XMP and other forms. </li>
+<li><code><a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea4a183c3ec4994cf09993e5b31dee9733" title="Allows access to just the XMP, ignoring other forms. ">kXMPFiles_AllowsOnlyXMP</a></code> - Allows access to just the XMP, ignoring other forms. This is only meaningful if <code><a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceafc2bc7cfdd28a326788d563ec0357694" title="Supports reconciliation between XMP and other forms. ">kXMPFiles_CanReconcile</a></code> is set. </li>
+<li><code><a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceadb116eed738d1fcdfe4ab9c1635e08ea" title="File handler returns raw XMP packet information. ">kXMPFiles_ReturnsRawPacket</a></code> - File handler returns raw XMP packet information and string.</li>
</ul>
-<p>Even if <code><a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceadb116eed738d1fcdfe4ab9c1635e08ea" title="File handler returns raw XMP packet information.">kXMPFiles_ReturnsRawPacket</a></code> is set, the returned packet information might have an offset of -1 to indicate an unknown offset. While all file handlers should be able to return the raw packet, some might not know the offset of the packet within the file. This is typical in cases where external libraries are used. These cases might not even allow return of the raw packet.</p>
-<dl class="return"><dt><b>Returns:</b></dt><dd>True if the format has explicit "smart" support, false if the format is handled by the default packet scanning plus heuristics. </dd></dl>
+<p>Even if <code><a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceadb116eed738d1fcdfe4ab9c1635e08ea" title="File handler returns raw XMP packet information. ">kXMPFiles_ReturnsRawPacket</a></code> is set, the returned packet information might have an offset of -1 to indicate an unknown offset. While all file handlers should be able to return the raw packet, some might not know the offset of the packet within the file. This is typical in cases where external libraries are used. These cases might not even allow return of the raw packet.</p>
+<dl class="section return"><dt>Returns</dt><dd>True if the format has explicit "smart" support, false if the format is handled by the default packet scanning plus heuristics. </dd></dl>
</div>
</div>
-<a class="anchor" id="a311fc36fdf7270fe05b1c531cdbbd009"></a><!-- doxytag: member="TXMPFiles::GetInternalRef" ref="a311fc36fdf7270fe05b1c531cdbbd009" args="()" -->
+<a class="anchor" id="a311fc36fdf7270fe05b1c531cdbbd009"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -786,51 +875,55 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname"><a class="el" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a> <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt;::GetInternalRef </td>
<td>(</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
+ <td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><a class="el" href="classTXMPFiles.html#a311fc36fdf7270fe05b1c531cdbbd009" title="GetInternalRef() retrieves an internal reference that can be safely passed across...">GetInternalRef()</a> retrieves an internal reference that can be safely passed across DLL boundaries and reconstructed. </p>
-<p>Use with the reconstruction constructor to safely pass <code>SXMPFiles</code> references across DLL boundaries where the clients might have used different string types when instantiating <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file.">TXMPFiles</a></code>.</p>
-<dl class="return"><dt><b>Returns:</b></dt><dd>The internal reference.</dd></dl>
-<dl class="see"><dt><b>See also:</b></dt><dd><code><a class="el" href="classTXMPMeta.html#afbfebded0b85b08bd9c5ba0d7dae07e0" title="Retrieves an internal reference that can be safely passed across DLL boundaries and...">TXMPMeta::GetInternalRef()</a></code> for usage. </dd></dl>
+<p><a class="el" href="classTXMPFiles.html#a311fc36fdf7270fe05b1c531cdbbd009" title="GetInternalRef() retrieves an internal reference that can be safely passed across DLL boundaries and ...">GetInternalRef()</a> retrieves an internal reference that can be safely passed across DLL boundaries and reconstructed. </p>
+<p>Use with the reconstruction constructor to safely pass <code>SXMPFiles</code> references across DLL boundaries where the clients might have used different string types when instantiating <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file. ">TXMPFiles</a></code>.</p>
+<dl class="section return"><dt>Returns</dt><dd>The internal reference.</dd></dl>
+<dl class="section see"><dt>See also</dt><dd><code><a class="el" href="classTXMPMeta.html#afbfebded0b85b08bd9c5ba0d7dae07e0" title="Retrieves an internal reference that can be safely passed across DLL boundaries and reconstructed...">TXMPMeta::GetInternalRef()</a></code> for usage. </dd></dl>
</div>
</div>
-<a class="anchor" id="a6e521c034728b59ab55213a9d8203d1e"></a><!-- doxytag: member="TXMPFiles::GetVersionInfo" ref="a6e521c034728b59ab55213a9d8203d1e" args="(XMP_VersionInfo *versionInfo)" -->
+<a class="anchor" id="a6e521c034728b59ab55213a9d8203d1e"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj&gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt;::GetVersionInfo </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="structXMP__VersionInfo.html">XMP_VersionInfo</a> *&nbsp;</td>
- <td class="paramname"> <em>versionInfo</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td><code> [static]</code></td>
+ <td class="paramtype"><a class="el" href="structXMP__VersionInfo.html">XMP_VersionInfo</a> *&#160;</td>
+ <td class="paramname"><em>versionInfo</em></td><td>)</td>
+ <td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPFiles.html#a6e521c034728b59ab55213a9d8203d1e" title="GetVersionInfo() retrieves version information for the XMPFiles component.">GetVersionInfo()</a></code> retrieves version information for the XMPFiles component. </p>
-<p>Can be called before <code><a class="el" href="classTXMPFiles.html#a0874bbbf41c9490abfb613bfe297327d" title="Initializes the XMPFiles library; must be called before creating an SXMPFiles object...">Initialize()</a></code>. This function is static; make the call directly from the concrete class (<code>SXMPFiles</code>).</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>versionInfo</em>&nbsp;</td><td>[out] A buffer in which to return the version information. </td></tr>
+<p><code><a class="el" href="classTXMPFiles.html#a6e521c034728b59ab55213a9d8203d1e" title="GetVersionInfo() retrieves version information for the XMPFiles component. ">GetVersionInfo()</a></code> retrieves version information for the XMPFiles component. </p>
+<p>Can be called before <code><a class="el" href="classTXMPFiles.html#a0874bbbf41c9490abfb613bfe297327d" title="Initializes the XMPFiles library; must be called before creating an SXMPFiles object. ">Initialize()</a></code>. This function is static; make the call directly from the concrete class (<code>SXMPFiles</code>).</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">versionInfo</td><td>[out] A buffer in which to return the version information. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="a42ca0bbc5ac66a8de1710e03a7ff17b3"></a><!-- doxytag: member="TXMPFiles::GetXMP" ref="a42ca0bbc5ac66a8de1710e03a7ff17b3" args="(SXMPMeta *xmpObj=0, tStringObj *xmpPacket=0, XMP_PacketInfo *packetInfo=0)" -->
+<a class="anchor" id="a42ca0bbc5ac66a8de1710e03a7ff17b3"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -839,246 +932,278 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">bool <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt;::GetXMP </td>
<td>(</td>
- <td class="paramtype">SXMPMeta *&nbsp;</td>
- <td class="paramname"> <em>xmpObj</em> = <code>0</code>, </td>
+ <td class="paramtype">SXMPMeta *&#160;</td>
+ <td class="paramname"><em>xmpObj</em> = <code>0</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tStringObj *&nbsp;</td>
- <td class="paramname"> <em>xmpPacket</em> = <code>0</code>, </td>
+ <td class="paramtype">tStringObj *&#160;</td>
+ <td class="paramname"><em>xmpPacket</em> = <code>0</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="structXMP__PacketInfo.html">XMP_PacketInfo</a> *&nbsp;</td>
- <td class="paramname"> <em>packetInfo</em> = <code>0</code></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="structXMP__PacketInfo.html">XMP_PacketInfo</a> *&#160;</td>
+ <td class="paramname"><em>packetInfo</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPFiles.html#a42ca0bbc5ac66a8de1710e03a7ff17b3" title="GetXMP() retrieves the XMP metadata from an open file.">GetXMP()</a></code> retrieves the XMP metadata from an open file. </p>
+<p><code><a class="el" href="classTXMPFiles.html#a42ca0bbc5ac66a8de1710e03a7ff17b3" title="GetXMP() retrieves the XMP metadata from an open file. ">GetXMP()</a></code> retrieves the XMP metadata from an open file. </p>
<p>The function reports whether XMP is present in the file; you can choose to retrieve any or all of the parsed XMP, the raw XMP packet,or information about the raw XMP packet. The options provided when the file was opened determine if reconciliation is done with other forms of metadata.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>xmpObj</em>&nbsp;</td><td>[out] An XMP object in which to return the parsed XMP metadata. Can be null.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>xmpPacket</em>&nbsp;</td><td>[out] An string object in which to return the raw XMP packet as stored in the file. Can be null. The encoding of the packet is given in the <code>packetInfo</code>. Returns an empty string if the low level file handler does not provide the raw packet.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>packetInfo</em>&nbsp;</td><td>[out] An string object in which to return the location and form of the raw XMP in the file. <code><a class="el" href="structXMP__PacketInfo.html#a039ce6665fe8e08d922a46f266799f75" title="Character format using the values kXMP_Char8Bit, kXMP_Char16BitBig, etc.">XMP_PacketInfo::charForm</a></code> and <code><a class="el" href="structXMP__PacketInfo.html#a66845c1d5f3f9f36a1543a7322bd7bd1" title="True if there is a packet wrapper and the trailer says writeable by dumb packet scanners...">XMP_PacketInfo::writeable</a></code> reflect the raw XMP in the file. The parsed XMP property values are always UTF-8. The writeable flag is taken from the packet trailer; it applies only to "format ignorant" writing. The <code><a class="el" href="structXMP__PacketInfo.html" title="XMP packet description.">XMP_PacketInfo</a></code> structure always reflects the state of the XMP in the file. The offset, length, and character form do not change as a result of calling <code><a class="el" href="classTXMPFiles.html#ad3f7babdc07c7de0d0cd9a3362b4710a" title="PutXMP() updates the XMP metadata in this object without writing out the file.">PutXMP()</a></code> unless the file is also written. Some file handlers might not return location or contents of the raw packet string. To determine whether one does, check the <code><a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceadb116eed738d1fcdfe4ab9c1635e08ea" title="File handler returns raw XMP packet information.">kXMPFiles_ReturnsRawPacket</a></code> bit returned by <code><a class="el" href="classTXMPFiles.html#acb9e16a1477ec67fa6da6d736a9bc131" title="GetFormatInfo() reports what features are supported for a specific file format.">GetFormatInfo()</a></code>. If the low-level file handler does not provide the raw packet location, <code><a class="el" href="structXMP__PacketInfo.html#a20f65fcfd0f3658ab93ff441a9d61d2c" title="Packet offset in the file in bytes, -1 if unknown.">XMP_PacketInfo::offset</a></code> and <code><a class="el" href="structXMP__PacketInfo.html#af526c582b66e24553f2d4b11eb714a44" title="Packet length in the file in bytes, -1 if unknown.">XMP_PacketInfo::length</a></code> are both 0, <code><a class="el" href="structXMP__PacketInfo.html#a039ce6665fe8e08d922a46f266799f75" title="Character format using the values kXMP_Char8Bit, kXMP_Char16BitBig, etc.">XMP_PacketInfo::charForm</a></code> is UTF-8, and <code><a class="el" href="structXMP__PacketInfo.html#a66845c1d5f3f9f36a1543a7322bd7bd1" title="True if there is a packet wrapper and the trailer says writeable by dumb packet scanners...">XMP_PacketInfo::writeable</a></code> is false.</td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">xmpObj</td><td>[out] An XMP object in which to return the parsed XMP metadata. Can be null.</td></tr>
+ <tr><td class="paramname">xmpPacket</td><td>[out] An string object in which to return the raw XMP packet as stored in the file. Can be null. The encoding of the packet is given in the <code>packetInfo</code>. Returns an empty string if the low level file handler does not provide the raw packet.</td></tr>
+ <tr><td class="paramname">packetInfo</td><td>[out] An string object in which to return the location and form of the raw XMP in the file. <code><a class="el" href="structXMP__PacketInfo.html#a039ce6665fe8e08d922a46f266799f75" title="Character format using the values kXMP_Char8Bit, kXMP_Char16BitBig, etc. ">XMP_PacketInfo::charForm</a></code> and <code><a class="el" href="structXMP__PacketInfo.html#a66845c1d5f3f9f36a1543a7322bd7bd1" title="True if there is a packet wrapper and the trailer says writeable by dumb packet scanners. ">XMP_PacketInfo::writeable</a></code> reflect the raw XMP in the file. The parsed XMP property values are always UTF-8. The writeable flag is taken from the packet trailer; it applies only to "format ignorant" writing. The <code><a class="el" href="structXMP__PacketInfo.html" title="XMP packet description. ">XMP_PacketInfo</a></code> structure always reflects the state of the XMP in the file. The offset, length, and character form do not change as a result of calling <code><a class="el" href="classTXMPFiles.html#ad3f7babdc07c7de0d0cd9a3362b4710a" title="PutXMP() updates the XMP metadata in this object without writing out the file. ">PutXMP()</a></code> unless the file is also written. Some file handlers might not return location or contents of the raw packet string. To determine whether one does, check the <code><a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceadb116eed738d1fcdfe4ab9c1635e08ea" title="File handler returns raw XMP packet information. ">kXMPFiles_ReturnsRawPacket</a></code> bit returned by <code><a class="el" href="classTXMPFiles.html#acb9e16a1477ec67fa6da6d736a9bc131" title="GetFormatInfo() reports what features are supported for a specific file format. ">GetFormatInfo()</a></code>. If the low-level file handler does not provide the raw packet location, <code><a class="el" href="structXMP__PacketInfo.html#a20f65fcfd0f3658ab93ff441a9d61d2c" title="Packet offset in the file in bytes, -1 if unknown. ">XMP_PacketInfo::offset</a></code> and <code><a class="el" href="structXMP__PacketInfo.html#af526c582b66e24553f2d4b11eb714a44" title="Packet length in the file in bytes, -1 if unknown. ">XMP_PacketInfo::length</a></code> are both 0, <code><a class="el" href="structXMP__PacketInfo.html#a039ce6665fe8e08d922a46f266799f75" title="Character format using the values kXMP_Char8Bit, kXMP_Char16BitBig, etc. ">XMP_PacketInfo::charForm</a></code> is UTF-8, and <code><a class="el" href="structXMP__PacketInfo.html#a66845c1d5f3f9f36a1543a7322bd7bd1" title="True if there is a packet wrapper and the trailer says writeable by dumb packet scanners. ">XMP_PacketInfo::writeable</a></code> is false.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>True if the file has XMP, false otherwise. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>True if the file has XMP, false otherwise. </dd></dl>
</div>
</div>
-<a class="anchor" id="acc4b3bc2109fa98b4083df0d974f7dfb"></a><!-- doxytag: member="TXMPFiles::Initialize" ref="acc4b3bc2109fa98b4083df0d974f7dfb" args="(XMP_OptionBits options, const char *pluginFolder, const char *plugins=NULL)" -->
+<a class="anchor" id="a0874bbbf41c9490abfb613bfe297327d"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj&gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static bool <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt;::Initialize </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>options</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramname"></td><td>)</td>
<td></td>
- <td class="paramtype">const char *&nbsp;</td>
- <td class="paramname"> <em>pluginFolder</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const char *&nbsp;</td>
- <td class="paramname"> <em>plugins</em> = <code>NULL</code></td><td>&nbsp;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td><td><code> [static]</code></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
<p>Initializes the XMPFiles library; must be called before creating an <code>SXMPFiles</code> object. </p>
-<p>This overload of <a class="el" href="classTXMPFiles.html#a794e1830a84a6328eaa1995ba5aa6874" title="Initializes the XMPFiles library; must be called before creating an SXMPFiles object...">TXMPFiles::Initialize( XMP_OptionBits options )</a> accepts plugin directory and name of the plug-ins as a comma separated list to load the file handler plug-ins. If plugins == NULL, then all plug-ins present in the plug-in directory will be loaded.</p>
-<p>The main action is to activate the available smart file handlers. Must be called before using any methods except <code><a class="el" href="classTXMPFiles.html#a6e521c034728b59ab55213a9d8203d1e" title="GetVersionInfo() retrieves version information for the XMPFiles component.">GetVersionInfo()</a></code>.</p>
+<p>The main action is to activate the available smart file handlers. Must be called before using any methods except <code><a class="el" href="classTXMPFiles.html#a6e521c034728b59ab55213a9d8203d1e" title="GetVersionInfo() retrieves version information for the XMPFiles component. ">GetVersionInfo()</a></code>.</p>
<p>This function is static; make the call directly from the concrete class (<code>SXMPFiles</code>).</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>Option flags to control the initialization actions. </td></tr>
- <tr><td valign="top"></td><td valign="top"><em>pluginFolder</em>&nbsp;</td><td>Pugin directorty to load the file handler plug-ins. </td></tr>
- <tr><td valign="top"></td><td valign="top"><em>plugins</em>&nbsp;</td><td>Comma sepearted list of plug-ins which should be loaded from the plug-in directory. If plugin == NULL, then all plug-ins availbale in the plug-in directory will be loaded.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>True on success. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>True on success. </dd></dl>
</div>
</div>
-<a class="anchor" id="abf0defebf7ca7d2cba7aed3c5dc107df"></a><!-- doxytag: member="TXMPFiles::Initialize" ref="abf0defebf7ca7d2cba7aed3c5dc107df" args="(const char *pluginFolder, const char *plugins=NULL)" -->
+<a class="anchor" id="a794e1830a84a6328eaa1995ba5aa6874"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj&gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static bool <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt;::Initialize </td>
<td>(</td>
- <td class="paramtype">const char *&nbsp;</td>
- <td class="paramname"> <em>pluginFolder</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const char *&nbsp;</td>
- <td class="paramname"> <em>plugins</em> = <code>NULL</code></td><td>&nbsp;</td>
- </tr>
- <tr>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td><td><code> [static]</code></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
<p>Initializes the XMPFiles library; must be called before creating an <code>SXMPFiles</code> object. </p>
-<p>This overload of <a class="el" href="classTXMPFiles.html#a0874bbbf41c9490abfb613bfe297327d" title="Initializes the XMPFiles library; must be called before creating an SXMPFiles object...">TXMPFiles::Initialize()</a> accepts plugin directory and name of the plug-ins as a comma separated list to load the file handler plug-ins. If plugins == NULL, then all plug-ins present in the plug-in directory will be loaded.</p>
-<p>The main action is to activate the available smart file handlers. Must be called before using any methods except <code><a class="el" href="classTXMPFiles.html#a6e521c034728b59ab55213a9d8203d1e" title="GetVersionInfo() retrieves version information for the XMPFiles component.">GetVersionInfo()</a></code>.</p>
+<p>This overload of <a class="el" href="classTXMPFiles.html#a0874bbbf41c9490abfb613bfe297327d" title="Initializes the XMPFiles library; must be called before creating an SXMPFiles object. ">TXMPFiles::Initialize()</a> accepts option bits to customize the initialization actions. At this time no option is defined.</p>
+<p>The main action is to activate the available smart file handlers. Must be called before using any methods except <code><a class="el" href="classTXMPFiles.html#a6e521c034728b59ab55213a9d8203d1e" title="GetVersionInfo() retrieves version information for the XMPFiles component. ">GetVersionInfo()</a></code>.</p>
<p>This function is static; make the call directly from the concrete class (<code>SXMPFiles</code>).</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>pluginFolder</em>&nbsp;</td><td>Pugin directorty to load the file handler plug-ins. </td></tr>
- <tr><td valign="top"></td><td valign="top"><em>plugins</em>&nbsp;</td><td>Comma sepearted list of plug-ins which should be loaded from the plug-in directory. If plugin == NULL, then all plug-ins availbale in the plug-in directory will be loaded.</td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">options</td><td>Option flags to control the initialization actions.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>True on success. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>True on success. </dd></dl>
</div>
</div>
-<a class="anchor" id="a794e1830a84a6328eaa1995ba5aa6874"></a><!-- doxytag: member="TXMPFiles::Initialize" ref="a794e1830a84a6328eaa1995ba5aa6874" args="(XMP_OptionBits options)" -->
+<a class="anchor" id="abf0defebf7ca7d2cba7aed3c5dc107df"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj&gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static bool <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt;::Initialize </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>options</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td><code> [static]</code></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>pluginFolder</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>plugins</em> = <code>NULL</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
<p>Initializes the XMPFiles library; must be called before creating an <code>SXMPFiles</code> object. </p>
-<p>This overload of <a class="el" href="classTXMPFiles.html#a0874bbbf41c9490abfb613bfe297327d" title="Initializes the XMPFiles library; must be called before creating an SXMPFiles object...">TXMPFiles::Initialize()</a> accepts option bits to customize the initialization actions. At this time no option is defined.</p>
-<p>The main action is to activate the available smart file handlers. Must be called before using any methods except <code><a class="el" href="classTXMPFiles.html#a6e521c034728b59ab55213a9d8203d1e" title="GetVersionInfo() retrieves version information for the XMPFiles component.">GetVersionInfo()</a></code>.</p>
+<p>This overload of <a class="el" href="classTXMPFiles.html#a0874bbbf41c9490abfb613bfe297327d" title="Initializes the XMPFiles library; must be called before creating an SXMPFiles object. ">TXMPFiles::Initialize()</a> accepts plugin directory and name of the plug-ins as a comma separated list to load the file handler plug-ins. If plugins == NULL, then all plug-ins present in the plug-in directory will be loaded.</p>
+<p>The main action is to activate the available smart file handlers. Must be called before using any methods except <code><a class="el" href="classTXMPFiles.html#a6e521c034728b59ab55213a9d8203d1e" title="GetVersionInfo() retrieves version information for the XMPFiles component. ">GetVersionInfo()</a></code>.</p>
<p>This function is static; make the call directly from the concrete class (<code>SXMPFiles</code>).</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>Option flags to control the initialization actions.</td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">pluginFolder</td><td>Pugin directorty to load the file handler plug-ins. </td></tr>
+ <tr><td class="paramname">plugins</td><td>Comma sepearted list of plug-ins which should be loaded from the plug-in directory. If plugin == NULL, then all plug-ins availbale in the plug-in directory will be loaded.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>True on success. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>True on success. </dd></dl>
</div>
</div>
-<a class="anchor" id="a0874bbbf41c9490abfb613bfe297327d"></a><!-- doxytag: member="TXMPFiles::Initialize" ref="a0874bbbf41c9490abfb613bfe297327d" args="()" -->
+<a class="anchor" id="acc4b3bc2109fa98b4083df0d974f7dfb"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj&gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static bool <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt;::Initialize </td>
<td>(</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td><code> [static]</code></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>pluginFolder</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>plugins</em> = <code>NULL</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
<p>Initializes the XMPFiles library; must be called before creating an <code>SXMPFiles</code> object. </p>
-<p>The main action is to activate the available smart file handlers. Must be called before using any methods except <code><a class="el" href="classTXMPFiles.html#a6e521c034728b59ab55213a9d8203d1e" title="GetVersionInfo() retrieves version information for the XMPFiles component.">GetVersionInfo()</a></code>.</p>
+<p>This overload of <a class="el" href="classTXMPFiles.html#a794e1830a84a6328eaa1995ba5aa6874" title="Initializes the XMPFiles library; must be called before creating an SXMPFiles object. ">TXMPFiles::Initialize( XMP_OptionBits options )</a> accepts plugin directory and name of the plug-ins as a comma separated list to load the file handler plug-ins. If plugins == NULL, then all plug-ins present in the plug-in directory will be loaded.</p>
+<p>The main action is to activate the available smart file handlers. Must be called before using any methods except <code><a class="el" href="classTXMPFiles.html#a6e521c034728b59ab55213a9d8203d1e" title="GetVersionInfo() retrieves version information for the XMPFiles component. ">GetVersionInfo()</a></code>.</p>
<p>This function is static; make the call directly from the concrete class (<code>SXMPFiles</code>).</p>
-<dl class="return"><dt><b>Returns:</b></dt><dd>True on success. </dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">options</td><td>Option flags to control the initialization actions. </td></tr>
+ <tr><td class="paramname">pluginFolder</td><td>Pugin directorty to load the file handler plug-ins. </td></tr>
+ <tr><td class="paramname">plugins</td><td>Comma sepearted list of plug-ins which should be loaded from the plug-in directory. If plugin == NULL, then all plug-ins availbale in the plug-in directory will be loaded.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>True on success. </dd></dl>
</div>
</div>
-<a class="anchor" id="a6dfa135d53143d45e5ff22efa554398e"></a><!-- doxytag: member="TXMPFiles::IsMetadataWritable" ref="a6dfa135d53143d45e5ff22efa554398e" args="(XMP_StringPtr filePath, bool *writable, XMP_FileFormat format=kXMP_UnknownFile, XMP_OptionBits options=0)" -->
+<a class="anchor" id="a6dfa135d53143d45e5ff22efa554398e"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj&gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static bool <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt;::IsMetadataWritable </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>filePath</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>filePath</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">bool *&nbsp;</td>
- <td class="paramname"> <em>writable</em>, </td>
+ <td class="paramtype">bool *&#160;</td>
+ <td class="paramname"><em>writable</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a>&nbsp;</td>
- <td class="paramname"> <em>format</em> = <code>kXMP_UnknownFile</code>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a>&#160;</td>
+ <td class="paramname"><em>format</em> = <code><a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719">kXMP_UnknownFile</a></code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>options</em> = <code>0</code></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td><code> [static]</code></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPFiles.html#a6dfa135d53143d45e5ff22efa554398e" title="IsMetadataWritable() returns true if metadata can be updated for the given media...">IsMetadataWritable()</a></code> returns true if metadata can be updated for the given media path. </p>
+<p><code><a class="el" href="classTXMPFiles.html#a6dfa135d53143d45e5ff22efa554398e" title="IsMetadataWritable() returns true if metadata can be updated for the given media path. ">IsMetadataWritable()</a></code> returns true if metadata can be updated for the given media path. </p>
<p><code>IsMetadataWritable</code> is provided to check if metadata can be updated or written to the format.In the case of folder-based video formats only if all the metadata files can be written to, true is returned.In other words, false is returned for a partial-write state of metadata files in folder-based media formats.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>filePath</em>&nbsp;</td><td>A path exactly as would be passed to <code>OpenFile</code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>writable</em>&nbsp;</td><td>A pointer to the result flag. Is true if the metadata can be updated in the format, otherwise false.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>format</em>&nbsp;</td><td>A format hint as would be passed to <code>OpenFile</code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>An optional set of option flags. The only defined one is <code>kXMPFiles_ForceGivenHandler</code>, used to shortcut the handler selection logic if the caller is certain of the format.</td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">filePath</td><td>A path exactly as would be passed to <code>OpenFile</code>.</td></tr>
+ <tr><td class="paramname">writable</td><td>A pointer to the result flag. Is true if the metadata can be updated in the format, otherwise false.</td></tr>
+ <tr><td class="paramname">format</td><td>A format hint as would be passed to <code>OpenFile</code>.</td></tr>
+ <tr><td class="paramname">options</td><td>An optional set of option flags. The only defined one is <code>kXMPFiles_ForceGivenHandler</code>, used to shortcut the handler selection logic if the caller is certain of the format.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>Returns true if the file path is valid to select a smart handler, false for an invalid path or if fallback packet scanning would be selected. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>Returns true if the file path is valid to select a smart handler, false for an invalid path or if fallback packet scanning would be selected. </dd></dl>
</div>
</div>
-<a class="anchor" id="acfef1688f3a62e2f465bb3a27da7b4ac"></a><!-- doxytag: member="TXMPFiles::OpenFile" ref="acfef1688f3a62e2f465bb3a27da7b4ac" args="(const tStringObj &amp;filePath, XMP_FileFormat format=kXMP_UnknownFile, XMP_OptionBits openFlags=0)" -->
+<a class="anchor" id="afcd21cfe5d6f13c648c5541e161919cb"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -1087,36 +1212,56 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">bool <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt;::OpenFile </td>
<td>(</td>
- <td class="paramtype">const tStringObj &amp;&nbsp;</td>
- <td class="paramname"> <em>filePath</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>filePath</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a>&nbsp;</td>
- <td class="paramname"> <em>format</em> = <code>kXMP_UnknownFile</code>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a>&#160;</td>
+ <td class="paramname"><em>format</em> = <code><a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719">kXMP_UnknownFile</a></code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>openFlags</em> = <code>0</code></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>openFlags</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
-
-<p><code><a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb" title="OpenFile() opens a file for metadata access.">OpenFile()</a></code> opens a file for metadata access, using a string object </p>
-<p>Overloads the basic form of the function, allowing you to pass a string object for the file path. It is otherwise identical; see details in the canonical form. </p>
+</div><div class="memdoc">
+
+<p><code><a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb" title="OpenFile() opens a file for metadata access. ">OpenFile()</a></code> opens a file for metadata access. </p>
+<p>Opens a file for the requested forms of metadata access. Opening the file at a minimum causes the raw XMP packet to be read from the file. If the file handler supports legacy metadata reconciliation then legacy metadata is also read, unless <code><a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaa58279b2b1311242e7374117f455bb96" title="Only the XMP is wanted, allows space/time optimizations. ">kXMPFiles_OpenOnlyXMP</a></code> is passed.</p>
+<p>If the file is opened for read-only access (passing <code><a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa4c61ec4ed571dbc5f1832ff6772320d2" title="Open for read-only access. ">kXMPFiles_OpenForRead</a></code>), the disk file is closed immediately after reading the data from it; the <code>XMPFiles</code> object, however, remains in the open state. You must call <code><a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927" title="CloseFile() explicitly closes an opened file. ">CloseFile()</a></code> when finished using it. Other methods, such as <code><a class="el" href="classTXMPFiles.html#a42ca0bbc5ac66a8de1710e03a7ff17b3" title="GetXMP() retrieves the XMP metadata from an open file. ">GetXMP()</a></code>, can only be used between the <code><a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb" title="OpenFile() opens a file for metadata access. ">OpenFile()</a></code> and <code><a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927" title="CloseFile() explicitly closes an opened file. ">CloseFile()</a></code> calls. The <code>XMPFiles</code> destructor does not call <code><a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927" title="CloseFile() explicitly closes an opened file. ">CloseFile()</a></code>; if you call it without closing, any pending updates are lost.</p>
+<p>If the file is opened for update (passing <code><a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa91fa388b3888bcb6a68615537b66a49b" title="Open for reading and writing. ">kXMPFiles_OpenForUpdate</a></code>), the disk file remains open until <code><a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927" title="CloseFile() explicitly closes an opened file. ">CloseFile()</a></code> is called. The disk file is only updated once, when <code><a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927" title="CloseFile() explicitly closes an opened file. ">CloseFile()</a></code> is called, regardless of how many calls are made to <code><a class="el" href="classTXMPFiles.html#ad3f7babdc07c7de0d0cd9a3362b4710a" title="PutXMP() updates the XMP metadata in this object without writing out the file. ">PutXMP()</a></code>.</p>
+<p>Typically, the XMP is not parsed and legacy reconciliation is not performed until <code><a class="el" href="classTXMPFiles.html#a42ca0bbc5ac66a8de1710e03a7ff17b3" title="GetXMP() retrieves the XMP metadata from an open file. ">GetXMP()</a></code> is called, but this is not guaranteed. Specific file handlers might do earlier parsing of the XMP. Delayed parsing and early disk file close for read-only access are optimizations to help clients implementing file browsers, so that they can access the file briefly and possibly display a thumbnail, then postpone more expensive XMP processing until later.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">filePath</td><td>The path for the file, appropriate for the local operating system. Passed as a nul-terminated UTF-8 string.</td></tr>
+ <tr><td class="paramname">format</td><td>The format of the file. If the format is unknown (<code><a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719" title="Unknown file format constant: &#39; &#39;. ">kXMP_UnknownFile</a></code>) the format is determined from the file content. The first handler to check is guessed from the file's extension. Passing a specific format value is generally just a hint about what file handler to try first (instead of the one based on the extension). If <code><a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa0bef4db2ecdaf82a85df9e9d417aab18" title="Be strict about only attempting to use the designated file handler, no fallback to other handlers...">kXMPFiles_OpenStrictly</a></code> is set, then any format other than <code><a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719" title="Unknown file format constant: &#39; &#39;. ">kXMP_UnknownFile</a></code> requires that the file actually be that format; otherwise an exception is thrown.</td></tr>
+ <tr><td class="paramname">openFlags</td><td>A set of option flags that describe the desired access. By default (zero) the file is opened for read-only access and the format handler decides on the level of reconciliation that will be performed. A logical OR of these bit-flag constants:</td></tr>
+ </table>
+ </dd>
+</dl>
+<ul>
+<li><code><a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa4c61ec4ed571dbc5f1832ff6772320d2" title="Open for read-only access. ">kXMPFiles_OpenForRead</a></code> - Open for read-only access. </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa91fa388b3888bcb6a68615537b66a49b" title="Open for reading and writing. ">kXMPFiles_OpenForUpdate</a></code> - Open for reading and writing. </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaa58279b2b1311242e7374117f455bb96" title="Only the XMP is wanted, allows space/time optimizations. ">kXMPFiles_OpenOnlyXMP</a></code> - Only the XMP is wanted, no reconciliation. </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa0bef4db2ecdaf82a85df9e9d417aab18" title="Be strict about only attempting to use the designated file handler, no fallback to other handlers...">kXMPFiles_OpenStrictly</a></code> - Be strict about locating XMP and reconciling with other forms. By default, a best effort is made to locate the correct XMP and to reconcile XMP with other forms (if reconciliation is done). This option forces stricter rules, resulting in exceptions for errors. The definition of strictness is specific to each handler, there might be no difference. </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaf6332435c7fc89cb0b7381e13fe43646" title="Require the use of a smart handler. ">kXMPFiles_OpenUseSmartHandler</a></code> - Require the use of a smart handler. </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa77b47c63e579b28cbd25083ceb58c285" title="Force packet scanning, do not use a smart handler. ">kXMPFiles_OpenUsePacketScanning</a></code> - Force packet scanning, do not use a smart handler. </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaf5f2ebd401758a14dc52c5ee403303b5" title="When updating a file, spend the effort necessary to optimize file layout. ">kXMPFiles_OptimizeFileLayout</a></code> - When updating a file, spend the effort necessary to optimize file layout. <dl class="section return"><dt>Returns</dt><dd>True if the file is succesfully opened and attached to a file handler. False for anticipated problems, such as passing <code><a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaf6332435c7fc89cb0b7381e13fe43646" title="Require the use of a smart handler. ">kXMPFiles_OpenUseSmartHandler</a></code> but not having an appropriate smart handler. Throws an exception for serious problems. </dd></dl>
+</li>
+</ul>
</div>
</div>
-<a class="anchor" id="afcd21cfe5d6f13c648c5541e161919cb"></a><!-- doxytag: member="TXMPFiles::OpenFile" ref="afcd21cfe5d6f13c648c5541e161919cb" args="(XMP_StringPtr filePath, XMP_FileFormat format=kXMP_UnknownFile, XMP_OptionBits openFlags=0)" -->
+<a class="anchor" id="acfef1688f3a62e2f465bb3a27da7b4ac"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -1125,57 +1270,35 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">bool <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt;::OpenFile </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>filePath</em>, </td>
+ <td class="paramtype">const tStringObj &amp;&#160;</td>
+ <td class="paramname"><em>filePath</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a>&nbsp;</td>
- <td class="paramname"> <em>format</em> = <code>kXMP_UnknownFile</code>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a>&#160;</td>
+ <td class="paramname"><em>format</em> = <code><a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719">kXMP_UnknownFile</a></code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>openFlags</em> = <code>0</code></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>openFlags</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
-
-<p><code><a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb" title="OpenFile() opens a file for metadata access.">OpenFile()</a></code> opens a file for metadata access. </p>
-<p>Opens a file for the requested forms of metadata access. Opening the file at a minimum causes the raw XMP packet to be read from the file. If the file handler supports legacy metadata reconciliation then legacy metadata is also read, unless <code><a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaa58279b2b1311242e7374117f455bb96" title="Only the XMP is wanted, allows space/time optimizations.">kXMPFiles_OpenOnlyXMP</a></code> is passed.</p>
-<p>If the file is opened for read-only access (passing <code><a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa4c61ec4ed571dbc5f1832ff6772320d2" title="Open for read-only access.">kXMPFiles_OpenForRead</a></code>), the disk file is closed immediately after reading the data from it; the <code>XMPFiles</code> object, however, remains in the open state. You must call <code><a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927" title="CloseFile() explicitly closes an opened file.">CloseFile()</a></code> when finished using it. Other methods, such as <code><a class="el" href="classTXMPFiles.html#a42ca0bbc5ac66a8de1710e03a7ff17b3" title="GetXMP() retrieves the XMP metadata from an open file.">GetXMP()</a></code>, can only be used between the <code><a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb" title="OpenFile() opens a file for metadata access.">OpenFile()</a></code> and <code><a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927" title="CloseFile() explicitly closes an opened file.">CloseFile()</a></code> calls. The <code>XMPFiles</code> destructor does not call <code><a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927" title="CloseFile() explicitly closes an opened file.">CloseFile()</a></code>; if you call it without closing, any pending updates are lost.</p>
-<p>If the file is opened for update (passing <code><a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa91fa388b3888bcb6a68615537b66a49b" title="Open for reading and writing.">kXMPFiles_OpenForUpdate</a></code>), the disk file remains open until <code><a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927" title="CloseFile() explicitly closes an opened file.">CloseFile()</a></code> is called. The disk file is only updated once, when <code><a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927" title="CloseFile() explicitly closes an opened file.">CloseFile()</a></code> is called, regardless of how many calls are made to <code><a class="el" href="classTXMPFiles.html#ad3f7babdc07c7de0d0cd9a3362b4710a" title="PutXMP() updates the XMP metadata in this object without writing out the file.">PutXMP()</a></code>.</p>
-<p>Typically, the XMP is not parsed and legacy reconciliation is not performed until <code><a class="el" href="classTXMPFiles.html#a42ca0bbc5ac66a8de1710e03a7ff17b3" title="GetXMP() retrieves the XMP metadata from an open file.">GetXMP()</a></code> is called, but this is not guaranteed. Specific file handlers might do earlier parsing of the XMP. Delayed parsing and early disk file close for read-only access are optimizations to help clients implementing file browsers, so that they can access the file briefly and possibly display a thumbnail, then postpone more expensive XMP processing until later.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>filePath</em>&nbsp;</td><td>The path for the file, appropriate for the local operating system. Passed as a nul-terminated UTF-8 string.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>format</em>&nbsp;</td><td>The format of the file. If the format is unknown (<code><a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719" title="Unknown file format constant: &#39; &#39;.">kXMP_UnknownFile</a></code>) the format is determined from the file content. The first handler to check is guessed from the file's extension. Passing a specific format value is generally just a hint about what file handler to try first (instead of the one based on the extension). If <code><a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa0bef4db2ecdaf82a85df9e9d417aab18" title="Be strict about only attempting to use the designated file handler, no fallback to...">kXMPFiles_OpenStrictly</a></code> is set, then any format other than <code><a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719" title="Unknown file format constant: &#39; &#39;.">kXMP_UnknownFile</a></code> requires that the file actually be that format; otherwise an exception is thrown.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>openFlags</em>&nbsp;</td><td>A set of option flags that describe the desired access. By default (zero) the file is opened for read-only access and the format handler decides on the level of reconciliation that will be performed. A logical OR of these bit-flag constants:</td></tr>
- </table>
- </dd>
-</dl>
-<ul>
-<li><code><a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa4c61ec4ed571dbc5f1832ff6772320d2" title="Open for read-only access.">kXMPFiles_OpenForRead</a></code> - Open for read-only access. </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa91fa388b3888bcb6a68615537b66a49b" title="Open for reading and writing.">kXMPFiles_OpenForUpdate</a></code> - Open for reading and writing. </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaa58279b2b1311242e7374117f455bb96" title="Only the XMP is wanted, allows space/time optimizations.">kXMPFiles_OpenOnlyXMP</a></code> - Only the XMP is wanted, no reconciliation. </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa0bef4db2ecdaf82a85df9e9d417aab18" title="Be strict about only attempting to use the designated file handler, no fallback to...">kXMPFiles_OpenStrictly</a></code> - Be strict about locating XMP and reconciling with other forms. By default, a best effort is made to locate the correct XMP and to reconcile XMP with other forms (if reconciliation is done). This option forces stricter rules, resulting in exceptions for errors. The definition of strictness is specific to each handler, there might be no difference. </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaf6332435c7fc89cb0b7381e13fe43646" title="Require the use of a smart handler.">kXMPFiles_OpenUseSmartHandler</a></code> - Require the use of a smart handler. </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa77b47c63e579b28cbd25083ceb58c285" title="Force packet scanning, do not use a smart handler.">kXMPFiles_OpenUsePacketScanning</a></code> - Force packet scanning, do not use a smart handler. </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaf5f2ebd401758a14dc52c5ee403303b5" title="When updating a file, spend the effort necessary to optimize file layout.">kXMPFiles_OptimizeFileLayout</a></code> - When updating a file, spend the effort necessary to optimize file layout.</li>
-</ul>
-<dl class="return"><dt><b>Returns:</b></dt><dd>True if the file is succesfully opened and attached to a file handler. False for anticipated problems, such as passing <code><a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaf6332435c7fc89cb0b7381e13fe43646" title="Require the use of a smart handler.">kXMPFiles_OpenUseSmartHandler</a></code> but not having an appropriate smart handler. Throws an exception for serious problems. </dd></dl>
+</div><div class="memdoc">
+
+<p><code><a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb" title="OpenFile() opens a file for metadata access. ">OpenFile()</a></code> opens a file for metadata access, using a string object </p>
+<p>Overloads the basic form of the function, allowing you to pass a string object for the file path. It is otherwise identical; see details in the canonical form. </p>
</div>
</div>
-<a class="anchor" id="a3f1483fcc92860460d3772216dfaef81"></a><!-- doxytag: member="TXMPFiles::operator=" ref="a3f1483fcc92860460d3772216dfaef81" args="(const TXMPFiles&lt; tStringObj &gt; &amp;rhs)" -->
+<a class="anchor" id="a3f1483fcc92860460d3772216dfaef81"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -1184,27 +1307,25 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">void <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt;::operator= </td>
<td>(</td>
- <td class="paramtype">const <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt; &amp;&nbsp;</td>
- <td class="paramname"> <em>rhs</em></td>
- <td>&nbsp;)&nbsp;</td>
+ <td class="paramtype">const <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt; &amp;&#160;</td>
+ <td class="paramname"><em>rhs</em></td><td>)</td>
<td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>Assignment operator. </p>
<p>Increments an internal reference count but does not perform a deep copy.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>rhs</em>&nbsp;</td><td>The existing <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file.">TXMPFiles</a></code> object. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">rhs</td><td>The existing <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file. ">TXMPFiles</a></code> object. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="a502ed01119e0421413e773f4f42683ec"></a><!-- doxytag: member="TXMPFiles::PutXMP" ref="a502ed01119e0421413e773f4f42683ec" args="(XMP_StringPtr xmpPacket, XMP_StringLen xmpLength=kXMP_UseNullTermination)" -->
+<a class="anchor" id="ad3f7babdc07c7de0d0cd9a3362b4710a"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -1213,37 +1334,25 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">void <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt;::PutXMP </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>xmpPacket</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramtype">const SXMPMeta &amp;&#160;</td>
+ <td class="paramname"><em>xmpObj</em></td><td>)</td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a>&nbsp;</td>
- <td class="paramname"> <em>xmpLength</em> = <code>kXMP_UseNullTermination</code></td><td>&nbsp;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPFiles.html#ad3f7babdc07c7de0d0cd9a3362b4710a" title="PutXMP() updates the XMP metadata in this object without writing out the file.">PutXMP()</a></code> updates the XMP metadata in this object without writing out the file, </p>
-<p>using a string object and optional length. Overloads the basic form of the function, allowing you to pass the metadata as a string object instead of an XMP object. It is otherwise identical; see details in the canonical form.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>xmpPacket</em>&nbsp;</td><td>The new metadata as a <code>const char *</code> string containing an XMP packet.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>xmpLength</em>&nbsp;</td><td>Optional. The number of bytes in the string. If not supplied, the string is assumed to be nul-terminated. </td></tr>
+<p><code><a class="el" href="classTXMPFiles.html#ad3f7babdc07c7de0d0cd9a3362b4710a" title="PutXMP() updates the XMP metadata in this object without writing out the file. ">PutXMP()</a></code> updates the XMP metadata in this object without writing out the file. </p>
+<p>This function supplies new XMP for the file. However, the disk file is not written until the object is closed with <code><a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927" title="CloseFile() explicitly closes an opened file. ">CloseFile()</a></code>. The options provided when the file was opened determine if reconciliation is done with other forms of metadata.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">xmpObj</td><td>The new metadata as an XMP object. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="ada77eab74c3440659db3122f6ec8b7f4"></a><!-- doxytag: member="TXMPFiles::PutXMP" ref="ada77eab74c3440659db3122f6ec8b7f4" args="(const tStringObj &amp;xmpPacket)" -->
+<a class="anchor" id="ada77eab74c3440659db3122f6ec8b7f4"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -1252,27 +1361,25 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">void <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt;::PutXMP </td>
<td>(</td>
- <td class="paramtype">const tStringObj &amp;&nbsp;</td>
- <td class="paramname"> <em>xmpPacket</em></td>
- <td>&nbsp;)&nbsp;</td>
+ <td class="paramtype">const tStringObj &amp;&#160;</td>
+ <td class="paramname"><em>xmpPacket</em></td><td>)</td>
<td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPFiles.html#ad3f7babdc07c7de0d0cd9a3362b4710a" title="PutXMP() updates the XMP metadata in this object without writing out the file.">PutXMP()</a></code> updates the XMP metadata in this object without writing out the file, using a string object for input. </p>
+<p><code><a class="el" href="classTXMPFiles.html#ad3f7babdc07c7de0d0cd9a3362b4710a" title="PutXMP() updates the XMP metadata in this object without writing out the file. ">PutXMP()</a></code> updates the XMP metadata in this object without writing out the file, using a string object for input. </p>
<p>Overloads the basic form of the function, allowing you to pass the metadata as a string object instead of an XMP object. It is otherwise identical; see details in the canonical form.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>xmpPacket</em>&nbsp;</td><td>The new metadata as a string object containing a complete XMP packet. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">xmpPacket</td><td>The new metadata as a string object containing a complete XMP packet. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="ad3f7babdc07c7de0d0cd9a3362b4710a"></a><!-- doxytag: member="TXMPFiles::PutXMP" ref="ad3f7babdc07c7de0d0cd9a3362b4710a" args="(const SXMPMeta &amp;xmpObj)" -->
+<a class="anchor" id="a502ed01119e0421413e773f4f42683ec"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -1281,27 +1388,36 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">void <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt;::PutXMP </td>
<td>(</td>
- <td class="paramtype">const SXMPMeta &amp;&nbsp;</td>
- <td class="paramname"> <em>xmpObj</em></td>
- <td>&nbsp;)&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>xmpPacket</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a>&#160;</td>
+ <td class="paramname"><em>xmpLength</em> = <code><a class="el" href="XMP__Const_8h.html#a8283c9596c03b6d626d5a2b7a90e23ab">kXMP_UseNullTermination</a></code>&#160;</td>
+ </tr>
+ <tr>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPFiles.html#ad3f7babdc07c7de0d0cd9a3362b4710a" title="PutXMP() updates the XMP metadata in this object without writing out the file.">PutXMP()</a></code> updates the XMP metadata in this object without writing out the file. </p>
-<p>This function supplies new XMP for the file. However, the disk file is not written until the object is closed with <code><a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927" title="CloseFile() explicitly closes an opened file.">CloseFile()</a></code>. The options provided when the file was opened determine if reconciliation is done with other forms of metadata.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>xmpObj</em>&nbsp;</td><td>The new metadata as an XMP object. </td></tr>
+<p><code><a class="el" href="classTXMPFiles.html#ad3f7babdc07c7de0d0cd9a3362b4710a" title="PutXMP() updates the XMP metadata in this object without writing out the file. ">PutXMP()</a></code> updates the XMP metadata in this object without writing out the file, </p>
+<p>using a string object and optional length. Overloads the basic form of the function, allowing you to pass the metadata as a string object instead of an XMP object. It is otherwise identical; see details in the canonical form.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">xmpPacket</td><td>The new metadata as a <code>const char *</code> string containing an XMP packet.</td></tr>
+ <tr><td class="paramname">xmpLength</td><td>Optional. The number of bytes in the string. If not supplied, the string is assumed to be nul-terminated. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="a8e37b25dd1cba1e9a3f45037022717f2"></a><!-- doxytag: member="TXMPFiles::ResetErrorCallbackLimit" ref="a8e37b25dd1cba1e9a3f45037022717f2" args="(XMP_Uns32 limit=1)" -->
+<a class="anchor" id="a8e37b25dd1cba1e9a3f45037022717f2"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -1310,26 +1426,24 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">void <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt;::ResetErrorCallbackLimit </td>
<td>(</td>
- <td class="paramtype">XMP_Uns32&nbsp;</td>
- <td class="paramname"> <em>limit</em> = <code>1</code></td>
- <td>&nbsp;)&nbsp;</td>
+ <td class="paramtype">XMP_Uns32&#160;</td>
+ <td class="paramname"><em>limit</em> = <code>1</code></td><td>)</td>
<td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><a class="el" href="classTXMPFiles.html#a8e37b25dd1cba1e9a3f45037022717f2" title="ResetErrorCallbackLimit() resets the error notification limit and counting. It has...">ResetErrorCallbackLimit()</a> resets the error notification limit and counting. It has no effect if an error notification callback function is not registered. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>limit</em>&nbsp;</td><td>A limit on the number of notifications to be delivered. </td></tr>
+<p><a class="el" href="classTXMPFiles.html#a8e37b25dd1cba1e9a3f45037022717f2" title="ResetErrorCallbackLimit() resets the error notification limit and counting. It has no effect if an er...">ResetErrorCallbackLimit()</a> resets the error notification limit and counting. It has no effect if an error notification callback function is not registered. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">limit</td><td>A limit on the number of notifications to be delivered. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="a7b86c130fdbd54b5ac158ec3fee93777"></a><!-- doxytag: member="TXMPFiles::SetAbortProc" ref="a7b86c130fdbd54b5ac158ec3fee93777" args="(XMP_AbortProc abortProc, void *abortArg)" -->
+<a class="anchor" id="a7b86c130fdbd54b5ac158ec3fee93777"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -1338,134 +1452,231 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">void <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt;::SetAbortProc </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aa2738ce2fca7f1809b12834b1b5e2d0e">XMP_AbortProc</a>&nbsp;</td>
- <td class="paramname"> <em>abortProc</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ac2434559f67332b9d23021b894da838c">XMP_AbortProc</a>&#160;</td>
+ <td class="paramname"><em>abortProc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">void *&nbsp;</td>
- <td class="paramname"> <em>abortArg</em></td><td>&nbsp;</td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>abortArg</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPFiles.html#a7b86c130fdbd54b5ac158ec3fee93777" title="SetAbortProc() registers a callback function used to check for a user-signaled abort...">SetAbortProc()</a></code> registers a callback function used to check for a user-signaled abort. </p>
+<p><code><a class="el" href="classTXMPFiles.html#a7b86c130fdbd54b5ac158ec3fee93777" title="SetAbortProc() registers a callback function used to check for a user-signaled abort. ">SetAbortProc()</a></code> registers a callback function used to check for a user-signaled abort. </p>
<p>The specified procedure is called periodically to allow a user to cancel time-consuming operations. The callback function should return true to signal an abort, which results in an exception being thrown.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>abortProc</em>&nbsp;</td><td>The callback function.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>abortArg</em>&nbsp;</td><td>A pointer to caller-defined data to pass to the callback function. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">abortProc</td><td>The callback function.</td></tr>
+ <tr><td class="paramname">abortArg</td><td>A pointer to caller-defined data to pass to the callback function. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="accc6c1cef9f124f6c5ed360251aa5aa7"></a><!-- doxytag: member="TXMPFiles::SetDefaultErrorCallback" ref="accc6c1cef9f124f6c5ed360251aa5aa7" args="(XMPFiles_ErrorCallbackProc proc, void *context=0, XMP_Uns32 limit=1)" -->
+<a class="anchor" id="ae403e54b9cc5df0f59d79e31cce84e3f"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj&gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
- <td class="memname">static void <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt;::SetDefaultErrorCallback </td>
+ <td class="memname">static void <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt;::SetClientString </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aaceb0287e961c16649487db026bcfc61">XMPFiles_ErrorCallbackProc</a>&nbsp;</td>
- <td class="paramname"> <em>proc</em>, </td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>clientPtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">void *&nbsp;</td>
- <td class="paramname"> <em>context</em> = <code>0</code>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>valuePtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">XMP_Uns32&nbsp;</td>
- <td class="paramname"> <em>limit</em> = <code>1</code></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a>&#160;</td>
+ <td class="paramname"><em>valueLen</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td><code> [static]</code></td>
+ <td></td><td></td>
</tr>
</table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
</div>
-<div class="memdoc">
+<a class="anchor" id="afd30a5ad1765a9288e7f6ef118255a73"></a>
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class tStringObj&gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static void <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt;::SetClientStringVector </td>
+ <td>(</td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>clientPtr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> *&#160;</td>
+ <td class="paramname"><em>arrayPtr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">XMP_Uns32&#160;</td>
+ <td class="paramname"><em>stringCount</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p><a class="el" href="classTXMPFiles.html#accc6c1cef9f124f6c5ed360251aa5aa7" title="SetDefaultErrorCallback() registers a global default error notification callback...">SetDefaultErrorCallback()</a> registers a global default error notification callback. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>proc</em>&nbsp;</td><td>The client's callback function.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>Client-provided context for the callback.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>limit</em>&nbsp;</td><td>A limit on the number of notifications to be delivered. </td></tr>
+</div>
+</div>
+<a class="anchor" id="accc6c1cef9f124f6c5ed360251aa5aa7"></a>
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class tStringObj&gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static void <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt;::SetDefaultErrorCallback </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a7bed3dd93335821e5afa0ac2b07a9640">XMPFiles_ErrorCallbackProc</a>&#160;</td>
+ <td class="paramname"><em>proc</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>context</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">XMP_Uns32&#160;</td>
+ <td class="paramname"><em>limit</em> = <code>1</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p><a class="el" href="classTXMPFiles.html#accc6c1cef9f124f6c5ed360251aa5aa7" title="SetDefaultErrorCallback() registers a global default error notification callback. ...">SetDefaultErrorCallback()</a> registers a global default error notification callback. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">proc</td><td>The client's callback function.</td></tr>
+ <tr><td class="paramname">context</td><td>Client-provided context for the callback.</td></tr>
+ <tr><td class="paramname">limit</td><td>A limit on the number of notifications to be delivered. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="a83335ee20bb3ea543c8c86a5757a7753"></a><!-- doxytag: member="TXMPFiles::SetDefaultProgressCallback" ref="a83335ee20bb3ea543c8c86a5757a7753" args="(XMP_ProgressReportProc proc, void *context=0, float interval=1.0, bool sendStartStop=false)" -->
+<a class="anchor" id="a83335ee20bb3ea543c8c86a5757a7753"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj&gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt;::SetDefaultProgressCallback </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#af18be2d0c8accad813e0d8962da24b4e">XMP_ProgressReportProc</a>&nbsp;</td>
- <td class="paramname"> <em>proc</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a01973e700ac2ba7f3debef340ccaa663">XMP_ProgressReportProc</a>&#160;</td>
+ <td class="paramname"><em>proc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">void *&nbsp;</td>
- <td class="paramname"> <em>context</em> = <code>0</code>, </td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>context</em> = <code>0</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">float&nbsp;</td>
- <td class="paramname"> <em>interval</em> = <code>1.0</code>, </td>
+ <td class="paramtype">float&#160;</td>
+ <td class="paramname"><em>interval</em> = <code>1.0</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">bool&nbsp;</td>
- <td class="paramname"> <em>sendStartStop</em> = <code>false</code></td><td>&nbsp;</td>
+ <td class="paramtype">bool&#160;</td>
+ <td class="paramname"><em>sendStartStop</em> = <code>false</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td><code> [static]</code></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
-
-<p><code><a class="el" href="classTXMPFiles.html#a83335ee20bb3ea543c8c86a5757a7753" title="SetDefaultProgressCallback() sets a global default for progress tracking. This is...">SetDefaultProgressCallback()</a></code> sets a global default for progress tracking. This is used as a default for XMPFiles (library) objects created after the default is set. This does not affect the callback for new SXMPFiles (client) objects with an existing XMPFiles object. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>proc</em>&nbsp;</td><td>The client's callback function. Can be zero to disable notifications.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A pointer used to carry client-private context.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>interval</em>&nbsp;</td><td>The desired number of seconds between notifications. Ideally the first notification is sent after this interval, then at each following multiple of this interval.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>sendStartStop</em>&nbsp;</td><td>A Boolean value indicating if initial and final notifications are wanted in addition to those at the reporting intervals. </td></tr>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p><code><a class="el" href="classTXMPFiles.html#a83335ee20bb3ea543c8c86a5757a7753" title="SetDefaultProgressCallback() sets a global default for progress tracking. This is used as a default f...">SetDefaultProgressCallback()</a></code> sets a global default for progress tracking. This is used as a default for XMPFiles (library) objects created after the default is set. This does not affect the callback for new SXMPFiles (client) objects with an existing XMPFiles object. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">proc</td><td>The client's callback function. Can be zero to disable notifications.</td></tr>
+ <tr><td class="paramname">context</td><td>A pointer used to carry client-private context.</td></tr>
+ <tr><td class="paramname">interval</td><td>The desired number of seconds between notifications. Ideally the first notification is sent after this interval, then at each following multiple of this interval.</td></tr>
+ <tr><td class="paramname">sendStartStop</td><td>A Boolean value indicating if initial and final notifications are wanted in addition to those at the reporting intervals. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="a43a98633a0090fb4ade76edf24302ab1"></a><!-- doxytag: member="TXMPFiles::SetErrorCallback" ref="a43a98633a0090fb4ade76edf24302ab1" args="(XMPFiles_ErrorCallbackProc proc, void *context=0, XMP_Uns32 limit=1)" -->
+<a class="anchor" id="a43a98633a0090fb4ade76edf24302ab1"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -1474,43 +1685,42 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">void <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt;::SetErrorCallback </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aaceb0287e961c16649487db026bcfc61">XMPFiles_ErrorCallbackProc</a>&nbsp;</td>
- <td class="paramname"> <em>proc</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a7bed3dd93335821e5afa0ac2b07a9640">XMPFiles_ErrorCallbackProc</a>&#160;</td>
+ <td class="paramname"><em>proc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">void *&nbsp;</td>
- <td class="paramname"> <em>context</em> = <code>0</code>, </td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>context</em> = <code>0</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">XMP_Uns32&nbsp;</td>
- <td class="paramname"> <em>limit</em> = <code>1</code></td><td>&nbsp;</td>
+ <td class="paramtype">XMP_Uns32&#160;</td>
+ <td class="paramname"><em>limit</em> = <code>1</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
-
-<p><a class="el" href="classTXMPFiles.html#a43a98633a0090fb4ade76edf24302ab1" title="SetErrorCallback() registers an error notification callback.">SetErrorCallback()</a> registers an error notification callback. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>proc</em>&nbsp;</td><td>The client's callback function.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>Client-provided context for the callback.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>limit</em>&nbsp;</td><td>A limit on the number of notifications to be delivered. </td></tr>
+</div><div class="memdoc">
+
+<p><a class="el" href="classTXMPFiles.html#a43a98633a0090fb4ade76edf24302ab1" title="SetErrorCallback() registers an error notification callback. ">SetErrorCallback()</a> registers an error notification callback. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">proc</td><td>The client's callback function.</td></tr>
+ <tr><td class="paramname">context</td><td>Client-provided context for the callback.</td></tr>
+ <tr><td class="paramname">limit</td><td>A limit on the number of notifications to be delivered. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="aa283e2a1c16918c86148446859ed1a2d"></a><!-- doxytag: member="TXMPFiles::SetProgressCallback" ref="aa283e2a1c16918c86148446859ed1a2d" args="(XMP_ProgressReportProc proc, void *context=0, float interval=1.0, bool sendStartStop=false)" -->
+<a class="anchor" id="aa283e2a1c16918c86148446859ed1a2d"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -1519,65 +1729,70 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">void <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt;::SetProgressCallback </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#af18be2d0c8accad813e0d8962da24b4e">XMP_ProgressReportProc</a>&nbsp;</td>
- <td class="paramname"> <em>proc</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a01973e700ac2ba7f3debef340ccaa663">XMP_ProgressReportProc</a>&#160;</td>
+ <td class="paramname"><em>proc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">void *&nbsp;</td>
- <td class="paramname"> <em>context</em> = <code>0</code>, </td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>context</em> = <code>0</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">float&nbsp;</td>
- <td class="paramname"> <em>interval</em> = <code>1.0</code>, </td>
+ <td class="paramtype">float&#160;</td>
+ <td class="paramname"><em>interval</em> = <code>1.0</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">bool&nbsp;</td>
- <td class="paramname"> <em>sendStartStop</em> = <code>false</code></td><td>&nbsp;</td>
+ <td class="paramtype">bool&#160;</td>
+ <td class="paramname"><em>sendStartStop</em> = <code>false</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
-
-<p><code><a class="el" href="classTXMPFiles.html#aa283e2a1c16918c86148446859ed1a2d" title="SetProgressCallback() sets the progress notification callback for the associated...">SetProgressCallback()</a></code> sets the progress notification callback for the associated XMPFiles (library) object. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>proc</em>&nbsp;</td><td>The client's callback function. Can be zero to disable notifications.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A pointer used to carry client-private context.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>interval</em>&nbsp;</td><td>The desired number of seconds between notifications. Ideally the first notification is sent after this interval, then at each following multiple of this interval.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>sendStartStop</em>&nbsp;</td><td>A Boolean value indicating if initial and final notifications are wanted in addition to those at the reporting intervals. </td></tr>
+</div><div class="memdoc">
+
+<p><code><a class="el" href="classTXMPFiles.html#aa283e2a1c16918c86148446859ed1a2d" title="SetProgressCallback() sets the progress notification callback for the associated XMPFiles (library) o...">SetProgressCallback()</a></code> sets the progress notification callback for the associated XMPFiles (library) object. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">proc</td><td>The client's callback function. Can be zero to disable notifications.</td></tr>
+ <tr><td class="paramname">context</td><td>A pointer used to carry client-private context.</td></tr>
+ <tr><td class="paramname">interval</td><td>The desired number of seconds between notifications. Ideally the first notification is sent after this interval, then at each following multiple of this interval.</td></tr>
+ <tr><td class="paramname">sendStartStop</td><td>A Boolean value indicating if initial and final notifications are wanted in addition to those at the reporting intervals. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="a1e8de80c252b60b332dc4bc524139fd8"></a><!-- doxytag: member="TXMPFiles::Terminate" ref="a1e8de80c252b60b332dc4bc524139fd8" args="()" -->
+<a class="anchor" id="a1e8de80c252b60b332dc4bc524139fd8"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj&gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt;::Terminate </td>
<td>(</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td><code> [static]</code></td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
<p>Terminates use of the XMPFiles library. </p>
<p>Optional. Deallocates global data structures created by intialization. Its main action is to deallocate heap-allocated global storage, for the benefit of client leak checkers.</p>
@@ -1585,11 +1800,37 @@ template&lt;class tStringObj&gt; </div>
</div>
</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a class="anchor" id="a5977d8094086a7c2bfa9abe03af2265c"></a>
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class tStringObj&gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a> <a class="el" href="classTXMPFiles.html">TXMPFiles</a>&lt; tStringObj &gt;::xmpFilesRef</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="TXMPFiles_8hpp_source.html#l00844">844</a> of file <a class="el" href="TXMPFiles_8hpp_source.html">TXMPFiles.hpp</a>.</p>
+
+</div>
+</div>
<hr/>The documentation for this class was generated from the following file:<ul>
-<li><a class="el" href="TXMPFiles_8hpp_source.html">TXMPFiles.hpp</a></li>
+<li>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/<a class="el" href="TXMPFiles_8hpp_source.html">TXMPFiles.hpp</a></li>
</ul>
-</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
</body>
</html>
diff --git a/docs/API/classTXMPFiles.js b/docs/API/classTXMPFiles.js
new file mode 100755
index 0000000..728af1b
--- /dev/null
+++ b/docs/API/classTXMPFiles.js
@@ -0,0 +1,43 @@
+var classTXMPFiles =
+[
+ [ "TXMPFiles", "classTXMPFiles.html#a14f01e38454178578fd25fff6024fd54", null ],
+ [ "~TXMPFiles", "classTXMPFiles.html#a5eaa92724cc82d933a32eff9c4636739", null ],
+ [ "TXMPFiles", "classTXMPFiles.html#a36abe01988d4ca3939138e871c7b75e7", null ],
+ [ "TXMPFiles", "classTXMPFiles.html#af540b3ea689a6d7381dca4f52132a4ac", null ],
+ [ "TXMPFiles", "classTXMPFiles.html#acf343fb6771b482ca72d467233a6f920", null ],
+ [ "TXMPFiles", "classTXMPFiles.html#ad986c7b2e2d82eaef6cf6a33e9d09b65", null ],
+ [ "CanPutXMP", "classTXMPFiles.html#a29a11a1539d6300da3fb4c7e9ea02bb6", null ],
+ [ "CanPutXMP", "classTXMPFiles.html#a1d3f32c2b95659ada198775e2f67c808", null ],
+ [ "CanPutXMP", "classTXMPFiles.html#a2303dfcc00f108bda202600e3da9c109", null ],
+ [ "CheckFileFormat", "classTXMPFiles.html#a07b7c4b44fb0e0a7d115ddd5ba22f926", null ],
+ [ "CheckPackageFormat", "classTXMPFiles.html#a7f505664c41d7304fb757d6009b0751c", null ],
+ [ "CloseFile", "classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927", null ],
+ [ "GetAssociatedResources", "classTXMPFiles.html#a03e6c681e827666690f0e5567b0b2a8a", null ],
+ [ "GetFileInfo", "classTXMPFiles.html#af9931d081cb19f98c81e41786030765b", null ],
+ [ "GetFileModDate", "classTXMPFiles.html#a0de588c4b98086206b3a5d737012106d", null ],
+ [ "GetFormatInfo", "classTXMPFiles.html#acb9e16a1477ec67fa6da6d736a9bc131", null ],
+ [ "GetInternalRef", "classTXMPFiles.html#a311fc36fdf7270fe05b1c531cdbbd009", null ],
+ [ "GetVersionInfo", "classTXMPFiles.html#a6e521c034728b59ab55213a9d8203d1e", null ],
+ [ "GetXMP", "classTXMPFiles.html#a42ca0bbc5ac66a8de1710e03a7ff17b3", null ],
+ [ "Initialize", "classTXMPFiles.html#a0874bbbf41c9490abfb613bfe297327d", null ],
+ [ "Initialize", "classTXMPFiles.html#a794e1830a84a6328eaa1995ba5aa6874", null ],
+ [ "Initialize", "classTXMPFiles.html#abf0defebf7ca7d2cba7aed3c5dc107df", null ],
+ [ "Initialize", "classTXMPFiles.html#acc4b3bc2109fa98b4083df0d974f7dfb", null ],
+ [ "IsMetadataWritable", "classTXMPFiles.html#a6dfa135d53143d45e5ff22efa554398e", null ],
+ [ "OpenFile", "classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb", null ],
+ [ "OpenFile", "classTXMPFiles.html#acfef1688f3a62e2f465bb3a27da7b4ac", null ],
+ [ "operator=", "classTXMPFiles.html#a3f1483fcc92860460d3772216dfaef81", null ],
+ [ "PutXMP", "classTXMPFiles.html#ad3f7babdc07c7de0d0cd9a3362b4710a", null ],
+ [ "PutXMP", "classTXMPFiles.html#ada77eab74c3440659db3122f6ec8b7f4", null ],
+ [ "PutXMP", "classTXMPFiles.html#a502ed01119e0421413e773f4f42683ec", null ],
+ [ "ResetErrorCallbackLimit", "classTXMPFiles.html#a8e37b25dd1cba1e9a3f45037022717f2", null ],
+ [ "SetAbortProc", "classTXMPFiles.html#a7b86c130fdbd54b5ac158ec3fee93777", null ],
+ [ "SetClientString", "classTXMPFiles.html#ae403e54b9cc5df0f59d79e31cce84e3f", null ],
+ [ "SetClientStringVector", "classTXMPFiles.html#afd30a5ad1765a9288e7f6ef118255a73", null ],
+ [ "SetDefaultErrorCallback", "classTXMPFiles.html#accc6c1cef9f124f6c5ed360251aa5aa7", null ],
+ [ "SetDefaultProgressCallback", "classTXMPFiles.html#a83335ee20bb3ea543c8c86a5757a7753", null ],
+ [ "SetErrorCallback", "classTXMPFiles.html#a43a98633a0090fb4ade76edf24302ab1", null ],
+ [ "SetProgressCallback", "classTXMPFiles.html#aa283e2a1c16918c86148446859ed1a2d", null ],
+ [ "Terminate", "classTXMPFiles.html#a1e8de80c252b60b332dc4bc524139fd8", null ],
+ [ "xmpFilesRef", "classTXMPFiles.html#a5977d8094086a7c2bfa9abe03af2265c", null ]
+]; \ No newline at end of file
diff --git a/docs/API/classTXMPIterator-members.html b/docs/API/classTXMPIterator-members.html
index 6d3a56f..fcd06c6 100644..100755
--- a/docs/API/classTXMPIterator-members.html
+++ b/docs/API/classTXMPIterator-members.html
@@ -1,80 +1,65 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: Member List</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
- <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
- <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classTXMPIterator.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">TXMPIterator&lt; tStringObj &gt; Member List</div> </div>
+</div><!--header-->
<div class="contents">
-<h1>TXMPIterator&lt; tStringObj &gt; Member List</h1>This is the complete list of members for <a class="el" href="classTXMPIterator.html">TXMPIterator&lt; tStringObj &gt;</a>, including all inherited members.<table>
- <tr class="memlist"><td><a class="el" href="classTXMPIterator.html#a124a1dd1ab3ff0d236e4d4b967dafcd9">Next</a>(tStringObj *schemaNS=0, tStringObj *propPath=0, tStringObj *propValue=0, XMP_OptionBits *options=0)</td><td><a class="el" href="classTXMPIterator.html">TXMPIterator&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPIterator.html#ad767d731320d3f4c997c6ce9f7f8fa63">operator=</a>(const TXMPIterator&lt; tStringObj &gt; &amp;rhs)</td><td><a class="el" href="classTXMPIterator.html">TXMPIterator&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPIterator.html#a30b4d78974b347e4fcd275f1f65a61b2">Skip</a>(XMP_OptionBits options)</td><td><a class="el" href="classTXMPIterator.html">TXMPIterator&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPIterator.html#a88e855c18b2b15f7b8a5ccf3b9398352">TXMPIterator</a>(const TXMPIterator&lt; tStringObj &gt; &amp;original)</td><td><a class="el" href="classTXMPIterator.html">TXMPIterator&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPIterator.html#a5c1bd03e776a91cbb6fd02991fe08e1b">TXMPIterator</a>(const TXMPMeta&lt; tStringObj &gt; &amp;xmpObj, XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_OptionBits options=0)</td><td><a class="el" href="classTXMPIterator.html">TXMPIterator&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPIterator.html#a3aab7b2ddd84f25e024d7c3e66161cac">TXMPIterator</a>(const TXMPMeta&lt; tStringObj &gt; &amp;xmpObj, XMP_StringPtr schemaNS, XMP_OptionBits options=0)</td><td><a class="el" href="classTXMPIterator.html">TXMPIterator&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPIterator.html#ab0965286a8cabeafc92fdc52f643003f">TXMPIterator</a>(const TXMPMeta&lt; tStringObj &gt; &amp;xmpObj, XMP_OptionBits options=0)</td><td><a class="el" href="classTXMPIterator.html">TXMPIterator&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPIterator.html#a6b2b7a3d6359aec216adf32bdf7fb140">TXMPIterator</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_OptionBits options)</td><td><a class="el" href="classTXMPIterator.html">TXMPIterator&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPIterator.html#a911554533e8a3f09ab8870bd54462196">~TXMPIterator</a>()</td><td><a class="el" href="classTXMPIterator.html">TXMPIterator&lt; tStringObj &gt;</a></td><td><code> [virtual]</code></td></tr>
-</table></div>
+
+<p>This is the complete list of members for <a class="el" href="classTXMPIterator.html">TXMPIterator&lt; tStringObj &gt;</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPIterator.html#aeecf240d827e33c8b1d7040a99dc7600">iterRef</a></td><td class="entry"><a class="el" href="classTXMPIterator.html">TXMPIterator&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPIterator.html#a124a1dd1ab3ff0d236e4d4b967dafcd9">Next</a>(tStringObj *schemaNS=0, tStringObj *propPath=0, tStringObj *propValue=0, XMP_OptionBits *options=0)</td><td class="entry"><a class="el" href="classTXMPIterator.html">TXMPIterator&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPIterator.html#ad767d731320d3f4c997c6ce9f7f8fa63">operator=</a>(const TXMPIterator&lt; tStringObj &gt; &amp;rhs)</td><td class="entry"><a class="el" href="classTXMPIterator.html">TXMPIterator&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPIterator.html#a9a59621f2961ee11b164d82c8c3c0295">SetClientString</a>(void *clientPtr, XMP_StringPtr valuePtr, XMP_StringLen valueLen)</td><td class="entry"><a class="el" href="classTXMPIterator.html">TXMPIterator&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">private</span><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPIterator.html#a30b4d78974b347e4fcd275f1f65a61b2">Skip</a>(XMP_OptionBits options)</td><td class="entry"><a class="el" href="classTXMPIterator.html">TXMPIterator&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPIterator.html#a88e855c18b2b15f7b8a5ccf3b9398352">TXMPIterator</a>(const TXMPIterator&lt; tStringObj &gt; &amp;original)</td><td class="entry"><a class="el" href="classTXMPIterator.html">TXMPIterator&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPIterator.html#a5c1bd03e776a91cbb6fd02991fe08e1b">TXMPIterator</a>(const TXMPMeta&lt; tStringObj &gt; &amp;xmpObj, XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_OptionBits options=0)</td><td class="entry"><a class="el" href="classTXMPIterator.html">TXMPIterator&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPIterator.html#a3aab7b2ddd84f25e024d7c3e66161cac">TXMPIterator</a>(const TXMPMeta&lt; tStringObj &gt; &amp;xmpObj, XMP_StringPtr schemaNS, XMP_OptionBits options=0)</td><td class="entry"><a class="el" href="classTXMPIterator.html">TXMPIterator&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPIterator.html#ab0965286a8cabeafc92fdc52f643003f">TXMPIterator</a>(const TXMPMeta&lt; tStringObj &gt; &amp;xmpObj, XMP_OptionBits options=0)</td><td class="entry"><a class="el" href="classTXMPIterator.html">TXMPIterator&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPIterator.html#a6b2b7a3d6359aec216adf32bdf7fb140">TXMPIterator</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_OptionBits options)</td><td class="entry"><a class="el" href="classTXMPIterator.html">TXMPIterator&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPIterator.html#af96460ad80e55b76214c48375fda05d7">TXMPIterator</a>()</td><td class="entry"><a class="el" href="classTXMPIterator.html">TXMPIterator&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPIterator.html#a911554533e8a3f09ab8870bd54462196">~TXMPIterator</a>()</td><td class="entry"><a class="el" href="classTXMPIterator.html">TXMPIterator&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
</body>
</html>
diff --git a/docs/API/classTXMPIterator.html b/docs/API/classTXMPIterator.html
index 269b722..ed71de4 100644..100755
--- a/docs/API/classTXMPIterator.html
+++ b/docs/API/classTXMPIterator.html
@@ -1,108 +1,114 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: TXMPIterator&lt; tStringObj &gt; Class Template Reference</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
+<title>TXMPIterator&lt; tStringObj &gt; Class Template Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
- <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
- <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classTXMPIterator.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pri-methods">Private Member Functions</a> &#124;
+<a href="#pri-static-methods">Static Private Member Functions</a> &#124;
+<a href="#pri-attribs">Private Attributes</a> &#124;
+<a href="classTXMPIterator-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">TXMPIterator&lt; tStringObj &gt; Class Template Reference</div> </div>
+</div><!--header-->
<div class="contents">
-<h1>TXMPIterator&lt; tStringObj &gt; Class Template Reference</h1><!-- doxytag: class="TXMPIterator" -->
+
<p>API for access to the XMP Toolkit iteration services.
-<a href="#_details">More...</a></p>
+ <a href="classTXMPIterator.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="TXMPIterator_8hpp_source.html">TXMPIterator.hpp</a>&gt;</code></p>
-
-<p><a href="classTXMPIterator-members.html">List of all members.</a></p>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPIterator.html#ad767d731320d3f4c997c6ce9f7f8fa63">operator=</a> (const <a class="el" href="classTXMPIterator.html">TXMPIterator</a>&lt; tStringObj &gt; &amp;rhs)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Assignment operator, assigns the internal ref and increments the ref count. <a href="#ad767d731320d3f4c997c6ce9f7f8fa63"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPIterator.html#a88e855c18b2b15f7b8a5ccf3b9398352">TXMPIterator</a> (const <a class="el" href="classTXMPIterator.html">TXMPIterator</a>&lt; tStringObj &gt; &amp;original)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Copy constructor, creates a client object refering to the same internal object. <a href="#a88e855c18b2b15f7b8a5ccf3b9398352"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPIterator.html#a5c1bd03e776a91cbb6fd02991fe08e1b">TXMPIterator</a> (const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;xmpObj, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs an iterator for properties within a schema in an XMP object. <a href="#a5c1bd03e776a91cbb6fd02991fe08e1b"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPIterator.html#a3aab7b2ddd84f25e024d7c3e66161cac">TXMPIterator</a> (const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;xmpObj, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs an iterator for a subtree of properties within an XMP object. <a href="#a3aab7b2ddd84f25e024d7c3e66161cac"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPIterator.html#ab0965286a8cabeafc92fdc52f643003f">TXMPIterator</a> (const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;xmpObj, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs an iterator for the entire data tree within an XMP object. <a href="#ab0965286a8cabeafc92fdc52f643003f"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6b2b7a3d6359aec216adf32bdf7fb140"></a><!-- doxytag: member="TXMPIterator::TXMPIterator" ref="a6b2b7a3d6359aec216adf32bdf7fb140" args="(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_OptionBits options)" -->
-&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPIterator.html#a6b2b7a3d6359aec216adf32bdf7fb140">TXMPIterator</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs an iterator for the global tables of the XMP toolkit. Not implemented. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a911554533e8a3f09ab8870bd54462196"></a><!-- doxytag: member="TXMPIterator::~TXMPIterator" ref="a911554533e8a3f09ab8870bd54462196" args="()" -->
-virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPIterator.html#a911554533e8a3f09ab8870bd54462196">~TXMPIterator</a> () throw ()</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destructor, typical virtual destructor. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPIterator.html#a124a1dd1ab3ff0d236e4d4b967dafcd9">Next</a> (tStringObj *schemaNS=0, tStringObj *propPath=0, tStringObj *propValue=0, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *options=0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPIterator.html#a124a1dd1ab3ff0d236e4d4b967dafcd9" title="Next() visits the next node in the iteration.">Next()</a></code> visits the next node in the iteration. <a href="#a124a1dd1ab3ff0d236e4d4b967dafcd9"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPIterator.html#a30b4d78974b347e4fcd275f1f65a61b2">Skip</a> (<a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPIterator.html#a30b4d78974b347e4fcd275f1f65a61b2" title="Skip() skips some portion of the remaining iterations.">Skip()</a></code> skips some portion of the remaining iterations. <a href="#a30b4d78974b347e4fcd275f1f65a61b2"></a><br/></td></tr>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:ad767d731320d3f4c997c6ce9f7f8fa63"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPIterator.html#ad767d731320d3f4c997c6ce9f7f8fa63">operator=</a> (const <a class="el" href="classTXMPIterator.html">TXMPIterator</a>&lt; tStringObj &gt; &amp;rhs)</td></tr>
+<tr class="memdesc:ad767d731320d3f4c997c6ce9f7f8fa63"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assignment operator, assigns the internal ref and increments the ref count. <a href="#ad767d731320d3f4c997c6ce9f7f8fa63">More...</a><br /></td></tr>
+<tr class="separator:ad767d731320d3f4c997c6ce9f7f8fa63"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a88e855c18b2b15f7b8a5ccf3b9398352"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPIterator.html#a88e855c18b2b15f7b8a5ccf3b9398352">TXMPIterator</a> (const <a class="el" href="classTXMPIterator.html">TXMPIterator</a>&lt; tStringObj &gt; &amp;original)</td></tr>
+<tr class="memdesc:a88e855c18b2b15f7b8a5ccf3b9398352"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor, creates a client object refering to the same internal object. <a href="#a88e855c18b2b15f7b8a5ccf3b9398352">More...</a><br /></td></tr>
+<tr class="separator:a88e855c18b2b15f7b8a5ccf3b9398352"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5c1bd03e776a91cbb6fd02991fe08e1b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPIterator.html#a5c1bd03e776a91cbb6fd02991fe08e1b">TXMPIterator</a> (const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;xmpObj, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
+<tr class="memdesc:a5c1bd03e776a91cbb6fd02991fe08e1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an iterator for properties within a schema in an XMP object. <a href="#a5c1bd03e776a91cbb6fd02991fe08e1b">More...</a><br /></td></tr>
+<tr class="separator:a5c1bd03e776a91cbb6fd02991fe08e1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3aab7b2ddd84f25e024d7c3e66161cac"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPIterator.html#a3aab7b2ddd84f25e024d7c3e66161cac">TXMPIterator</a> (const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;xmpObj, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
+<tr class="memdesc:a3aab7b2ddd84f25e024d7c3e66161cac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an iterator for a subtree of properties within an XMP object. <a href="#a3aab7b2ddd84f25e024d7c3e66161cac">More...</a><br /></td></tr>
+<tr class="separator:a3aab7b2ddd84f25e024d7c3e66161cac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab0965286a8cabeafc92fdc52f643003f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPIterator.html#ab0965286a8cabeafc92fdc52f643003f">TXMPIterator</a> (const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;xmpObj, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
+<tr class="memdesc:ab0965286a8cabeafc92fdc52f643003f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an iterator for the entire data tree within an XMP object. <a href="#ab0965286a8cabeafc92fdc52f643003f">More...</a><br /></td></tr>
+<tr class="separator:ab0965286a8cabeafc92fdc52f643003f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6b2b7a3d6359aec216adf32bdf7fb140"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPIterator.html#a6b2b7a3d6359aec216adf32bdf7fb140">TXMPIterator</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options)</td></tr>
+<tr class="memdesc:a6b2b7a3d6359aec216adf32bdf7fb140"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an iterator for the global tables of the XMP toolkit. Not implemented. <a href="#a6b2b7a3d6359aec216adf32bdf7fb140">More...</a><br /></td></tr>
+<tr class="separator:a6b2b7a3d6359aec216adf32bdf7fb140"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a911554533e8a3f09ab8870bd54462196"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPIterator.html#a911554533e8a3f09ab8870bd54462196">~TXMPIterator</a> () throw ()</td></tr>
+<tr class="memdesc:a911554533e8a3f09ab8870bd54462196"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor, typical virtual destructor. <a href="#a911554533e8a3f09ab8870bd54462196">More...</a><br /></td></tr>
+<tr class="separator:a911554533e8a3f09ab8870bd54462196"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a124a1dd1ab3ff0d236e4d4b967dafcd9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPIterator.html#a124a1dd1ab3ff0d236e4d4b967dafcd9">Next</a> (tStringObj *schemaNS=0, tStringObj *propPath=0, tStringObj *propValue=0, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *options=0)</td></tr>
+<tr class="memdesc:a124a1dd1ab3ff0d236e4d4b967dafcd9"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPIterator.html#a124a1dd1ab3ff0d236e4d4b967dafcd9" title="Next() visits the next node in the iteration. ">Next()</a></code> visits the next node in the iteration. <a href="#a124a1dd1ab3ff0d236e4d4b967dafcd9">More...</a><br /></td></tr>
+<tr class="separator:a124a1dd1ab3ff0d236e4d4b967dafcd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a30b4d78974b347e4fcd275f1f65a61b2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPIterator.html#a30b4d78974b347e4fcd275f1f65a61b2">Skip</a> (<a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options)</td></tr>
+<tr class="memdesc:a30b4d78974b347e4fcd275f1f65a61b2"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPIterator.html#a30b4d78974b347e4fcd275f1f65a61b2" title="Skip() skips some portion of the remaining iterations. ">Skip()</a></code> skips some portion of the remaining iterations. <a href="#a30b4d78974b347e4fcd275f1f65a61b2">More...</a><br /></td></tr>
+<tr class="separator:a30b4d78974b347e4fcd275f1f65a61b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
+Private Member Functions</h2></td></tr>
+<tr class="memitem:af96460ad80e55b76214c48375fda05d7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPIterator.html#af96460ad80e55b76214c48375fda05d7">TXMPIterator</a> ()</td></tr>
+<tr class="separator:af96460ad80e55b76214c48375fda05d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-static-methods"></a>
+Static Private Member Functions</h2></td></tr>
+<tr class="memitem:a9a59621f2961ee11b164d82c8c3c0295"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPIterator.html#a9a59621f2961ee11b164d82c8c3c0295">SetClientString</a> (void *clientPtr, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> valuePtr, <a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> valueLen)</td></tr>
+<tr class="separator:a9a59621f2961ee11b164d82c8c3c0295"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
+Private Attributes</h2></td></tr>
+<tr class="memitem:aeecf240d827e33c8b1d7040a99dc7600"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Const_8h.html#a6ade57a30fb1e40d6aa9695c440fc3d2">XMPIteratorRef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPIterator.html#aeecf240d827e33c8b1d7040a99dc7600">iterRef</a></td></tr>
+<tr class="separator:aeecf240d827e33c8b1d7040a99dc7600"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
-<hr/><a name="_details"></a><h2>Detailed Description</h2>
-<h3>template&lt;class tStringObj&gt;<br/>
- class TXMPIterator&lt; tStringObj &gt;</h3>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><h3>template&lt;class tStringObj&gt;<br />
+class TXMPIterator&lt; tStringObj &gt;</h3>
<p>API for access to the XMP Toolkit iteration services. </p>
-<p><code><a class="el" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services.">TXMPIterator</a></code> provides a uniform means to iterate over the schema and properties within an XMP object. <code><a class="el" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services.">TXMPIterator</a></code> is a template class which must be instantiated with a string class such as <code>std::string</code>. See the instructions in XMP.hpp, and the Overview for a discussion of the overall architecture of the XMP API. Access these functions through the concrete class, <code>SXMPIterator</code>.</p>
-<dl class="note"><dt><b>Note:</b></dt><dd>Only XMP object iteration is currently available. Future development may include iteration over global tables, such as registered namespaces.</dd></dl>
-<p>To understand how iteration works, you should have a thorough understanding of the XMP data tree, as described in the XMP Specification Part 1. You might also find it helpful to create some complex XMP and examine the output of <code><a class="el" href="classTXMPMeta.html#a466fa349c9765f39ca6b1450908e769f" title="DumpObject() outputs the content of an XMP object to a callback handler for debugging...">TXMPMeta::DumpObject()</a></code>.</p>
+<p><code><a class="el" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services. ">TXMPIterator</a></code> provides a uniform means to iterate over the schema and properties within an XMP object. <code><a class="el" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services. ">TXMPIterator</a></code> is a template class which must be instantiated with a string class such as <code>std::string</code>. See the instructions in <a class="el" href="XMP_8hpp.html" title="Overall header file for the XMP Toolkit. ">XMP.hpp</a>, and the Overview for a discussion of the overall architecture of the XMP API. Access these functions through the concrete class, <code>SXMPIterator</code>.</p>
+<dl class="section note"><dt>Note</dt><dd>Only XMP object iteration is currently available. Future development may include iteration over global tables, such as registered namespaces.</dd></dl>
+<p>To understand how iteration works, you should have a thorough understanding of the XMP data tree, as described in the XMP Specification Part 1. You might also find it helpful to create some complex XMP and examine the output of <code><a class="el" href="classTXMPMeta.html#a466fa349c9765f39ca6b1450908e769f" title="DumpObject() outputs the content of an XMP object to a callback handler for debugging. ">TXMPMeta::DumpObject()</a></code>.</p>
<ul>
-<li>The top of the XMP data tree is a single root node. This does not explicitly appear in the dump and is never visited by an iterator; that is, it is never returned from <code><a class="el" href="classTXMPIterator.html#a124a1dd1ab3ff0d236e4d4b967dafcd9" title="Next() visits the next node in the iteration.">TXMPIterator::Next()</a></code>.</li>
+<li>The top of the XMP data tree is a single root node. This does not explicitly appear in the dump and is never visited by an iterator; that is, it is never returned from <code><a class="el" href="classTXMPIterator.html#a124a1dd1ab3ff0d236e4d4b967dafcd9" title="Next() visits the next node in the iteration. ">TXMPIterator::Next()</a></code>.</li>
</ul>
<ul>
<li>Beneath the root are schema nodes; these collect the top-level properties in the same namespace. They are created and destroyed implicitly.</li>
@@ -110,17 +116,19 @@ virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="c
<ul>
<li>Beneath the schema nodes are the property nodes. The nodes below a property node depend on its type (simple, struct, or array) and whether it has qualifiers.</li>
</ul>
-<p>A <code><a class="el" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services.">TXMPIterator</a></code> constructor defines a starting point for the iteration, and options that control how it proceeds. By default, iteration starts at the root and visits all nodes beneath it in a depth-first manner. The root node iteself is not visited; the first visited node is a schema node. You can provide a schema name or property path to select a different starting node. By default, this visits the named root node first then all nodes beneath it in a depth-first manner.</p>
-<p>The function <code><a class="el" href="classTXMPIterator.html#a124a1dd1ab3ff0d236e4d4b967dafcd9" title="Next() visits the next node in the iteration.">TXMPIterator::Next()</a></code> delivers the schema URI, path, and option flags for the node being visited. If the node is simple, it also delivers the value. Qualifiers for this node are visited next. The fields of a struct or items of an array are visited after the qualifiers of the parent.</p>
+<p>A <code><a class="el" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services. ">TXMPIterator</a></code> constructor defines a starting point for the iteration, and options that control how it proceeds. By default, iteration starts at the root and visits all nodes beneath it in a depth-first manner. The root node iteself is not visited; the first visited node is a schema node. You can provide a schema name or property path to select a different starting node. By default, this visits the named root node first then all nodes beneath it in a depth-first manner.</p>
+<p>The function <code><a class="el" href="classTXMPIterator.html#a124a1dd1ab3ff0d236e4d4b967dafcd9" title="Next() visits the next node in the iteration. ">TXMPIterator::Next()</a></code> delivers the schema URI, path, and option flags for the node being visited. If the node is simple, it also delivers the value. Qualifiers for this node are visited next. The fields of a struct or items of an array are visited after the qualifiers of the parent.</p>
<p>You can specify options when contructing the iteration object to control how the iteration is performed.</p>
<ul>
-<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635ab26e1a38d1d0343fcc5bdaab1b60e3ed" title="Just do the immediate children of the root, default is subtree.">kXMP_IterJustChildren</a></code> - Visit just the immediate children of the root. Skip the root itself and all nodes below the immediate children. This omits the qualifiers of the immediate children, the qualifier nodes being below what they qualify. </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a4589f99b5b4a55e785e3baf4fe1d9b19" title="Just do the leaf nodes, default is all nodes in the subtree.">kXMP_IterJustLeafNodes</a></code> - Visit just the leaf property nodes and their qualifiers. </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635acf22e638f4144bcec8207b2ab69bb344" title="Return just the leaf part of the path, default is the full path.">kXMP_IterJustLeafName</a></code> - Return just the leaf component of the node names. The default is to return the full path name. </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a1b91947105ae68c48c5d5e36aa70d101" title="Omit all qualifiers.">kXMP_IterOmitQualifiers</a></code> - Do not visit the qualifiers of a node. </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635ab26e1a38d1d0343fcc5bdaab1b60e3ed" title="Just do the immediate children of the root, default is subtree. ">kXMP_IterJustChildren</a></code> - Visit just the immediate children of the root. Skip the root itself and all nodes below the immediate children. This omits the qualifiers of the immediate children, the qualifier nodes being below what they qualify. </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a4589f99b5b4a55e785e3baf4fe1d9b19" title="Just do the leaf nodes, default is all nodes in the subtree. ">kXMP_IterJustLeafNodes</a></code> - Visit just the leaf property nodes and their qualifiers. </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635acf22e638f4144bcec8207b2ab69bb344" title="Return just the leaf part of the path, default is the full path. ">kXMP_IterJustLeafName</a></code> - Return just the leaf component of the node names. The default is to return the full path name. </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a1b91947105ae68c48c5d5e36aa70d101" title="Omit all qualifiers. ">kXMP_IterOmitQualifiers</a></code> - Do not visit the qualifiers of a node. </li>
</ul>
-<hr/><h2>Constructor &amp; Destructor Documentation</h2>
-<a class="anchor" id="a88e855c18b2b15f7b8a5ccf3b9398352"></a><!-- doxytag: member="TXMPIterator::TXMPIterator" ref="a88e855c18b2b15f7b8a5ccf3b9398352" args="(const TXMPIterator&lt; tStringObj &gt; &amp;original)" -->
+
+<p>Definition at line <a class="el" href="TXMPIterator_8hpp_source.html#l00079">79</a> of file <a class="el" href="TXMPIterator_8hpp_source.html">TXMPIterator.hpp</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a88e855c18b2b15f7b8a5ccf3b9398352"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -129,27 +137,25 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname"><a class="el" href="classTXMPIterator.html">TXMPIterator</a>&lt; tStringObj &gt;::<a class="el" href="classTXMPIterator.html">TXMPIterator</a> </td>
<td>(</td>
- <td class="paramtype">const <a class="el" href="classTXMPIterator.html">TXMPIterator</a>&lt; tStringObj &gt; &amp;&nbsp;</td>
- <td class="paramname"> <em>original</em></td>
- <td>&nbsp;)&nbsp;</td>
+ <td class="paramtype">const <a class="el" href="classTXMPIterator.html">TXMPIterator</a>&lt; tStringObj &gt; &amp;&#160;</td>
+ <td class="paramname"><em>original</em></td><td>)</td>
<td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>Copy constructor, creates a client object refering to the same internal object. </p>
<p>Creates a new client iterator that refers to the same underlying iterator as an existing object.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>original</em>&nbsp;</td><td>An existing iteration object to copy. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">original</td><td>An existing iteration object to copy. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="a5c1bd03e776a91cbb6fd02991fe08e1b"></a><!-- doxytag: member="TXMPIterator::TXMPIterator" ref="a5c1bd03e776a91cbb6fd02991fe08e1b" args="(const TXMPMeta&lt; tStringObj &gt; &amp;xmpObj, XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_OptionBits options=0)" -->
+<a class="anchor" id="a5c1bd03e776a91cbb6fd02991fe08e1b"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -158,59 +164,57 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname"><a class="el" href="classTXMPIterator.html">TXMPIterator</a>&lt; tStringObj &gt;::<a class="el" href="classTXMPIterator.html">TXMPIterator</a> </td>
<td>(</td>
- <td class="paramtype">const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;&nbsp;</td>
- <td class="paramname"> <em>xmpObj</em>, </td>
+ <td class="paramtype">const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;&#160;</td>
+ <td class="paramname"><em>xmpObj</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>propName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>options</em> = <code>0</code></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>Constructs an iterator for properties within a schema in an XMP object. </p>
<p>See the class description for the general operation of an XMP object iterator. Overloaded forms are provided to iterate the entire data tree, a subtree rooted at a specific node, or properties within a specific schema.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>xmpObj</em>&nbsp;</td><td>The XMP object over which to iterate.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>Optional schema namespace URI to restrict the iteration. To visit all of the schema, pass 0 or the empty string "".</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>propName</em>&nbsp;</td><td>Optional property name to restrict the iteration. May be an arbitrary path expression. If provided, a schema URI must also be provided. To visit all properties, pass 0 or the empty string "".</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>Option flags to control the iteration. A logical OR of these bit flag constants: </p>
-<ul>
-<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635ab26e1a38d1d0343fcc5bdaab1b60e3ed" title="Just do the immediate children of the root, default is subtree.">kXMP_IterJustChildren</a></code> - Visit only the immediate children of the root; default visits subtrees. </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a4589f99b5b4a55e785e3baf4fe1d9b19" title="Just do the leaf nodes, default is all nodes in the subtree.">kXMP_IterJustLeafNodes</a></code> - Visit only the leaf nodes; default visits all nodes. </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635acf22e638f4144bcec8207b2ab69bb344" title="Return just the leaf part of the path, default is the full path.">kXMP_IterJustLeafName</a></code> - Return just the leaf part of the path; default returns the full path. </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a1b91947105ae68c48c5d5e36aa70d101" title="Omit all qualifiers.">kXMP_IterOmitQualifiers</a></code> - Omit all qualifiers.</li>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">xmpObj</td><td>The XMP object over which to iterate.</td></tr>
+ <tr><td class="paramname">schemaNS</td><td>Optional schema namespace URI to restrict the iteration. To visit all of the schema, pass 0 or the empty string "".</td></tr>
+ <tr><td class="paramname">propName</td><td>Optional property name to restrict the iteration. May be an arbitrary path expression. If provided, a schema URI must also be provided. To visit all properties, pass 0 or the empty string "".</td></tr>
+ <tr><td class="paramname">options</td><td>Option flags to control the iteration. A logical OR of these bit flag constants: <ul>
+<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635ab26e1a38d1d0343fcc5bdaab1b60e3ed" title="Just do the immediate children of the root, default is subtree. ">kXMP_IterJustChildren</a></code> - Visit only the immediate children of the root; default visits subtrees. </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a4589f99b5b4a55e785e3baf4fe1d9b19" title="Just do the leaf nodes, default is all nodes in the subtree. ">kXMP_IterJustLeafNodes</a></code> - Visit only the leaf nodes; default visits all nodes. </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635acf22e638f4144bcec8207b2ab69bb344" title="Return just the leaf part of the path, default is the full path. ">kXMP_IterJustLeafName</a></code> - Return just the leaf part of the path; default returns the full path. </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a1b91947105ae68c48c5d5e36aa70d101" title="Omit all qualifiers. ">kXMP_IterOmitQualifiers</a></code> - Omit all qualifiers.</li>
</ul>
</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>The new <a class="el" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services.">TXMPIterator</a> object. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>The new <a class="el" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services. ">TXMPIterator</a> object. </dd></dl>
</div>
</div>
-<a class="anchor" id="a3aab7b2ddd84f25e024d7c3e66161cac"></a><!-- doxytag: member="TXMPIterator::TXMPIterator" ref="a3aab7b2ddd84f25e024d7c3e66161cac" args="(const TXMPMeta&lt; tStringObj &gt; &amp;xmpObj, XMP_StringPtr schemaNS, XMP_OptionBits options=0)" -->
+<a class="anchor" id="a3aab7b2ddd84f25e024d7c3e66161cac"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -219,52 +223,50 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname"><a class="el" href="classTXMPIterator.html">TXMPIterator</a>&lt; tStringObj &gt;::<a class="el" href="classTXMPIterator.html">TXMPIterator</a> </td>
<td>(</td>
- <td class="paramtype">const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;&nbsp;</td>
- <td class="paramname"> <em>xmpObj</em>, </td>
+ <td class="paramtype">const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;&#160;</td>
+ <td class="paramname"><em>xmpObj</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>options</em> = <code>0</code></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>Constructs an iterator for a subtree of properties within an XMP object. </p>
<p>See the class description for the general operation of an XMP object iterator. Overloaded forms are provided to iterate the entire data tree, a subtree rooted at a specific node, or properties within a specific schema.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>xmpObj</em>&nbsp;</td><td>The XMP object over which to iterate.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>Optional schema namespace URI to restrict the iteration. To visit all of the schema, pass 0 or the empty string "".</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>Option flags to control the iteration. A logical OR of these bit flag constants: </p>
-<ul>
-<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635ab26e1a38d1d0343fcc5bdaab1b60e3ed" title="Just do the immediate children of the root, default is subtree.">kXMP_IterJustChildren</a></code> - Visit only the immediate children of the root; default visits subtrees. </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a4589f99b5b4a55e785e3baf4fe1d9b19" title="Just do the leaf nodes, default is all nodes in the subtree.">kXMP_IterJustLeafNodes</a></code> - Visit only the leaf nodes; default visits all nodes. </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635acf22e638f4144bcec8207b2ab69bb344" title="Return just the leaf part of the path, default is the full path.">kXMP_IterJustLeafName</a></code> - Return just the leaf part of the path; default returns the full path. </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a1b91947105ae68c48c5d5e36aa70d101" title="Omit all qualifiers.">kXMP_IterOmitQualifiers</a></code> - Omit all qualifiers.</li>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">xmpObj</td><td>The XMP object over which to iterate.</td></tr>
+ <tr><td class="paramname">schemaNS</td><td>Optional schema namespace URI to restrict the iteration. To visit all of the schema, pass 0 or the empty string "".</td></tr>
+ <tr><td class="paramname">options</td><td>Option flags to control the iteration. A logical OR of these bit flag constants: <ul>
+<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635ab26e1a38d1d0343fcc5bdaab1b60e3ed" title="Just do the immediate children of the root, default is subtree. ">kXMP_IterJustChildren</a></code> - Visit only the immediate children of the root; default visits subtrees. </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a4589f99b5b4a55e785e3baf4fe1d9b19" title="Just do the leaf nodes, default is all nodes in the subtree. ">kXMP_IterJustLeafNodes</a></code> - Visit only the leaf nodes; default visits all nodes. </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635acf22e638f4144bcec8207b2ab69bb344" title="Return just the leaf part of the path, default is the full path. ">kXMP_IterJustLeafName</a></code> - Return just the leaf part of the path; default returns the full path. </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a1b91947105ae68c48c5d5e36aa70d101" title="Omit all qualifiers. ">kXMP_IterOmitQualifiers</a></code> - Omit all qualifiers.</li>
</ul>
</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>The new <a class="el" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services.">TXMPIterator</a> object. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>The new <a class="el" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services. ">TXMPIterator</a> object. </dd></dl>
</div>
</div>
-<a class="anchor" id="ab0965286a8cabeafc92fdc52f643003f"></a><!-- doxytag: member="TXMPIterator::TXMPIterator" ref="ab0965286a8cabeafc92fdc52f643003f" args="(const TXMPMeta&lt; tStringObj &gt; &amp;xmpObj, XMP_OptionBits options=0)" -->
+<a class="anchor" id="ab0965286a8cabeafc92fdc52f643003f"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -273,46 +275,138 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname"><a class="el" href="classTXMPIterator.html">TXMPIterator</a>&lt; tStringObj &gt;::<a class="el" href="classTXMPIterator.html">TXMPIterator</a> </td>
<td>(</td>
- <td class="paramtype">const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;&nbsp;</td>
- <td class="paramname"> <em>xmpObj</em>, </td>
+ <td class="paramtype">const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;&#160;</td>
+ <td class="paramname"><em>xmpObj</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>options</em> = <code>0</code></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>Constructs an iterator for the entire data tree within an XMP object. </p>
<p>See the class description for the general operation of an XMP object iterator. Overloaded forms are provided to iterate the entire data tree, a subtree rooted at a specific node, or properties within a specific schema.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>xmpObj</em>&nbsp;</td><td>The XMP object over which to iterate.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>Option flags to control the iteration. A logical OR of these bit flag constants: </p>
-<ul>
-<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635ab26e1a38d1d0343fcc5bdaab1b60e3ed" title="Just do the immediate children of the root, default is subtree.">kXMP_IterJustChildren</a></code> - Visit only the immediate children of the root; default visits subtrees. </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a4589f99b5b4a55e785e3baf4fe1d9b19" title="Just do the leaf nodes, default is all nodes in the subtree.">kXMP_IterJustLeafNodes</a></code> - Visit only the leaf nodes; default visits all nodes. </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635acf22e638f4144bcec8207b2ab69bb344" title="Return just the leaf part of the path, default is the full path.">kXMP_IterJustLeafName</a></code> - Return just the leaf part of the path; default returns the full path. </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a1b91947105ae68c48c5d5e36aa70d101" title="Omit all qualifiers.">kXMP_IterOmitQualifiers</a></code> - Omit all qualifiers.</li>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">xmpObj</td><td>The XMP object over which to iterate.</td></tr>
+ <tr><td class="paramname">options</td><td>Option flags to control the iteration. A logical OR of these bit flag constants: <ul>
+<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635ab26e1a38d1d0343fcc5bdaab1b60e3ed" title="Just do the immediate children of the root, default is subtree. ">kXMP_IterJustChildren</a></code> - Visit only the immediate children of the root; default visits subtrees. </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a4589f99b5b4a55e785e3baf4fe1d9b19" title="Just do the leaf nodes, default is all nodes in the subtree. ">kXMP_IterJustLeafNodes</a></code> - Visit only the leaf nodes; default visits all nodes. </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635acf22e638f4144bcec8207b2ab69bb344" title="Return just the leaf part of the path, default is the full path. ">kXMP_IterJustLeafName</a></code> - Return just the leaf part of the path; default returns the full path. </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a1b91947105ae68c48c5d5e36aa70d101" title="Omit all qualifiers. ">kXMP_IterOmitQualifiers</a></code> - Omit all qualifiers.</li>
</ul>
</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>The new <code><a class="el" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services.">TXMPIterator</a></code> object. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>The new <code><a class="el" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services. ">TXMPIterator</a></code> object. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a6b2b7a3d6359aec216adf32bdf7fb140"></a>
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class tStringObj&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classTXMPIterator.html">TXMPIterator</a>&lt; tStringObj &gt;::<a class="el" href="classTXMPIterator.html">TXMPIterator</a> </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Constructs an iterator for the global tables of the XMP toolkit. Not implemented. </p>
</div>
</div>
-<hr/><h2>Member Function Documentation</h2>
-<a class="anchor" id="a124a1dd1ab3ff0d236e4d4b967dafcd9"></a><!-- doxytag: member="TXMPIterator::Next" ref="a124a1dd1ab3ff0d236e4d4b967dafcd9" args="(tStringObj *schemaNS=0, tStringObj *propPath=0, tStringObj *propValue=0, XMP_OptionBits *options=0)" -->
+<a class="anchor" id="a911554533e8a3f09ab8870bd54462196"></a>
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class tStringObj&gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="classTXMPIterator.html">TXMPIterator</a>&lt; tStringObj &gt;::~<a class="el" href="classTXMPIterator.html">TXMPIterator</a> </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td align="right">throw </td><td>(</td><td colspan="2"></td>
+ </tr>
+ <tr>
+ <td align="right"></td><td>)</td><td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Destructor, typical virtual destructor. </p>
+
+</div>
+</div>
+<a class="anchor" id="af96460ad80e55b76214c48375fda05d7"></a>
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class tStringObj&gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classTXMPIterator.html">TXMPIterator</a>&lt; tStringObj &gt;::<a class="el" href="classTXMPIterator.html">TXMPIterator</a> </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a124a1dd1ab3ff0d236e4d4b967dafcd9"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -321,52 +415,51 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">bool <a class="el" href="classTXMPIterator.html">TXMPIterator</a>&lt; tStringObj &gt;::Next </td>
<td>(</td>
- <td class="paramtype">tStringObj *&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em> = <code>0</code>, </td>
+ <td class="paramtype">tStringObj *&#160;</td>
+ <td class="paramname"><em>schemaNS</em> = <code>0</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tStringObj *&nbsp;</td>
- <td class="paramname"> <em>propPath</em> = <code>0</code>, </td>
+ <td class="paramtype">tStringObj *&#160;</td>
+ <td class="paramname"><em>propPath</em> = <code>0</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tStringObj *&nbsp;</td>
- <td class="paramname"> <em>propValue</em> = <code>0</code>, </td>
+ <td class="paramtype">tStringObj *&#160;</td>
+ <td class="paramname"><em>propValue</em> = <code>0</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&nbsp;</td>
- <td class="paramname"> <em>options</em> = <code>0</code></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&#160;</td>
+ <td class="paramname"><em>options</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPIterator.html#a124a1dd1ab3ff0d236e4d4b967dafcd9" title="Next() visits the next node in the iteration.">Next()</a></code> visits the next node in the iteration. </p>
+<p><code><a class="el" href="classTXMPIterator.html#a124a1dd1ab3ff0d236e4d4b967dafcd9" title="Next() visits the next node in the iteration. ">Next()</a></code> visits the next node in the iteration. </p>
<p>Proceeds to the next node according to the options specified on creation of this object, and delivers the schema URI, path, and option flags for the node being visited. If the node is simple, it also delivers the value.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>[out] A string object in which to return the assigned the schema namespace URI of the current property. Can be null if the value is not wanted.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>propPath</em>&nbsp;</td><td>[out] A string object in which to return the XPath name of the current property. Can be null if the value is not wanted.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>propValue</em>&nbsp;</td><td>[out] A string object in which to return the value of the current property. Can be null if the value is not wanted.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>[out] A buffer in which to return the flags describing the current property, which are a logical OR of <code><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a></code> bit-flag constants.</td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">schemaNS</td><td>[out] A string object in which to return the assigned the schema namespace URI of the current property. Can be null if the value is not wanted.</td></tr>
+ <tr><td class="paramname">propPath</td><td>[out] A string object in which to return the XPath name of the current property. Can be null if the value is not wanted.</td></tr>
+ <tr><td class="paramname">propValue</td><td>[out] A string object in which to return the value of the current property. Can be null if the value is not wanted.</td></tr>
+ <tr><td class="paramname">options</td><td>[out] A buffer in which to return the flags describing the current property, which are a logical OR of <code><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. ">XMP_OptionBits</a></code> bit-flag constants.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>True if there was another node to visit, false if the iteration is complete. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>True if there was another node to visit, false if the iteration is complete. </dd></dl>
</div>
</div>
-<a class="anchor" id="ad767d731320d3f4c997c6ce9f7f8fa63"></a><!-- doxytag: member="TXMPIterator::operator=" ref="ad767d731320d3f4c997c6ce9f7f8fa63" args="(const TXMPIterator&lt; tStringObj &gt; &amp;rhs)" -->
+<a class="anchor" id="ad767d731320d3f4c997c6ce9f7f8fa63"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -375,51 +468,88 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">void <a class="el" href="classTXMPIterator.html">TXMPIterator</a>&lt; tStringObj &gt;::operator= </td>
<td>(</td>
- <td class="paramtype">const <a class="el" href="classTXMPIterator.html">TXMPIterator</a>&lt; tStringObj &gt; &amp;&nbsp;</td>
- <td class="paramname"> <em>rhs</em></td>
- <td>&nbsp;)&nbsp;</td>
+ <td class="paramtype">const <a class="el" href="classTXMPIterator.html">TXMPIterator</a>&lt; tStringObj &gt; &amp;&#160;</td>
+ <td class="paramname"><em>rhs</em></td><td>)</td>
<td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>Assignment operator, assigns the internal ref and increments the ref count. </p>
<p>Assigns the internal reference from an existing object and increments the reference count on the underlying internal XMP iterator.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>rhs</em>&nbsp;</td><td>An existing iteration object. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">rhs</td><td>An existing iteration object. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="a30b4d78974b347e4fcd275f1f65a61b2"></a><!-- doxytag: member="TXMPIterator::Skip" ref="a30b4d78974b347e4fcd275f1f65a61b2" args="(XMP_OptionBits options)" -->
+<a class="anchor" id="a9a59621f2961ee11b164d82c8c3c0295"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj&gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
- <td class="memname">void <a class="el" href="classTXMPIterator.html">TXMPIterator</a>&lt; tStringObj &gt;::Skip </td>
+ <td class="memname">static void <a class="el" href="classTXMPIterator.html">TXMPIterator</a>&lt; tStringObj &gt;::SetClientString </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>options</em></td>
- <td>&nbsp;)&nbsp;</td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>clientPtr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>valuePtr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a>&#160;</td>
+ <td class="paramname"><em>valueLen</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
</div>
-<div class="memdoc">
+</div>
+<a class="anchor" id="a30b4d78974b347e4fcd275f1f65a61b2"></a>
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class tStringObj&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="classTXMPIterator.html">TXMPIterator</a>&lt; tStringObj &gt;::Skip </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPIterator.html#a30b4d78974b347e4fcd275f1f65a61b2" title="Skip() skips some portion of the remaining iterations.">Skip()</a></code> skips some portion of the remaining iterations. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>Option flags to control the iteration, a logical OR of these bit-flag constants: </p>
-<ul>
-<li><code><a class="el" href="XMP__Const_8h.html#a0411cd49bb5b71852cecd93bcbf0ca2dab0b540cd3841f411471a827f833c606e" title="Skip the subtree below the current node.">kXMP_IterSkipSubtree</a></code> - Skip the subtree below the current node. </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a0411cd49bb5b71852cecd93bcbf0ca2da2537b4b8db838f85b47988b198cd2a12" title="Skip the subtree below and remaining siblings of the current node.">kXMP_IterSkipSiblings</a></code> - Skip the subtree below and remaining siblings of the current node. </li>
+<p><code><a class="el" href="classTXMPIterator.html#a30b4d78974b347e4fcd275f1f65a61b2" title="Skip() skips some portion of the remaining iterations. ">Skip()</a></code> skips some portion of the remaining iterations. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">options</td><td>Option flags to control the iteration, a logical OR of these bit-flag constants: <ul>
+<li><code><a class="el" href="XMP__Const_8h.html#a0411cd49bb5b71852cecd93bcbf0ca2dab0b540cd3841f411471a827f833c606e" title="Skip the subtree below the current node. ">kXMP_IterSkipSubtree</a></code> - Skip the subtree below the current node. </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a0411cd49bb5b71852cecd93bcbf0ca2da2537b4b8db838f85b47988b198cd2a12" title="Skip the subtree below and remaining siblings of the current node. ">kXMP_IterSkipSiblings</a></code> - Skip the subtree below and remaining siblings of the current node. </li>
</ul>
</td></tr>
</table>
@@ -428,11 +558,37 @@ template&lt;class tStringObj&gt; </div>
</div>
</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a class="anchor" id="aeecf240d827e33c8b1d7040a99dc7600"></a>
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class tStringObj&gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Const_8h.html#a6ade57a30fb1e40d6aa9695c440fc3d2">XMPIteratorRef</a> <a class="el" href="classTXMPIterator.html">TXMPIterator</a>&lt; tStringObj &gt;::iterRef</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="TXMPIterator_8hpp_source.html#l00225">225</a> of file <a class="el" href="TXMPIterator_8hpp_source.html">TXMPIterator.hpp</a>.</p>
+
+</div>
+</div>
<hr/>The documentation for this class was generated from the following file:<ul>
-<li><a class="el" href="TXMPIterator_8hpp_source.html">TXMPIterator.hpp</a></li>
+<li>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/<a class="el" href="TXMPIterator_8hpp_source.html">TXMPIterator.hpp</a></li>
</ul>
-</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
</body>
</html>
diff --git a/docs/API/classTXMPIterator.js b/docs/API/classTXMPIterator.js
new file mode 100755
index 0000000..2f0afbd
--- /dev/null
+++ b/docs/API/classTXMPIterator.js
@@ -0,0 +1,15 @@
+var classTXMPIterator =
+[
+ [ "TXMPIterator", "classTXMPIterator.html#a88e855c18b2b15f7b8a5ccf3b9398352", null ],
+ [ "TXMPIterator", "classTXMPIterator.html#a5c1bd03e776a91cbb6fd02991fe08e1b", null ],
+ [ "TXMPIterator", "classTXMPIterator.html#a3aab7b2ddd84f25e024d7c3e66161cac", null ],
+ [ "TXMPIterator", "classTXMPIterator.html#ab0965286a8cabeafc92fdc52f643003f", null ],
+ [ "TXMPIterator", "classTXMPIterator.html#a6b2b7a3d6359aec216adf32bdf7fb140", null ],
+ [ "~TXMPIterator", "classTXMPIterator.html#a911554533e8a3f09ab8870bd54462196", null ],
+ [ "TXMPIterator", "classTXMPIterator.html#af96460ad80e55b76214c48375fda05d7", null ],
+ [ "Next", "classTXMPIterator.html#a124a1dd1ab3ff0d236e4d4b967dafcd9", null ],
+ [ "operator=", "classTXMPIterator.html#ad767d731320d3f4c997c6ce9f7f8fa63", null ],
+ [ "SetClientString", "classTXMPIterator.html#a9a59621f2961ee11b164d82c8c3c0295", null ],
+ [ "Skip", "classTXMPIterator.html#a30b4d78974b347e4fcd275f1f65a61b2", null ],
+ [ "iterRef", "classTXMPIterator.html#aeecf240d827e33c8b1d7040a99dc7600", null ]
+]; \ No newline at end of file
diff --git a/docs/API/classTXMPMeta-members.html b/docs/API/classTXMPMeta-members.html
index f9b41db..69f21da 100644..100755
--- a/docs/API/classTXMPMeta-members.html
+++ b/docs/API/classTXMPMeta-members.html
@@ -1,140 +1,124 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: Member List</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
- <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
- <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classTXMPMeta.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">TXMPMeta&lt; tStringObj &gt; Member List</div> </div>
+</div><!--header-->
<div class="contents">
-<h1>TXMPMeta&lt; tStringObj &gt; Member List</h1>This is the complete list of members for <a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a>, including all inherited members.<table>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#a00d7314dc970ad390499ce9db27d314a">AppendArrayItem</a>(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_OptionBits arrayOptions, XMP_StringPtr itemValue, XMP_OptionBits itemOptions=0)</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#a4f768a8cb35cabff1cf4187aa6a88dd3">AppendArrayItem</a>(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_OptionBits arrayOptions, const tStringObj &amp;itemValue, XMP_OptionBits itemOptions=0)</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#a6ca653436995bbb76315efe7934afd4c">Clone</a>(XMP_OptionBits options=0) const </td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#ab79aae864b3ce190d0699252f48e0acc">CountArrayItems</a>(XMP_StringPtr schemaNS, XMP_StringPtr arrayName) const </td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#abc1211f47225b5973a170ff952743264">DeleteArrayItem</a>(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_Index itemIndex)</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#aeb7679e92b126800b7bd906acb2f26e8">DeleteLocalizedText</a>(XMP_StringPtr schemaNS, XMP_StringPtr altTextName, XMP_StringPtr genericLang, XMP_StringPtr specificLang)</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#a3f989597e95db929676273cacd4ea09a">DeleteNamespace</a>(XMP_StringPtr namespaceURI)</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#ac8b555ba99904fa49bb4851a60cc3844">DeleteProperty</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName)</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#a8ce15f7de7fd3b258f07158ab5fa88be">DeleteQualifier</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_StringPtr qualNS, XMP_StringPtr qualName)</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#abc258e027780a15be65a88fcfd4e1fd4">DeleteStructField</a>(XMP_StringPtr schemaNS, XMP_StringPtr structName, XMP_StringPtr fieldNS, XMP_StringPtr fieldName)</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#a492465c588d6d4cb8e30f94790e66f58">DoesArrayItemExist</a>(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_Index itemIndex) const </td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#af22b116d71ecbbebea016ec5337e7066">DoesPropertyExist</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName) const </td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#a81347a92becd387a14f4d47c582f129a">DoesQualifierExist</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_StringPtr qualNS, XMP_StringPtr qualName) const </td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#a9261b80d62e77a10ff1a89843bfa10a5">DoesStructFieldExist</a>(XMP_StringPtr schemaNS, XMP_StringPtr structName, XMP_StringPtr fieldNS, XMP_StringPtr fieldName) const </td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#aaddc5f555de57472939a41346e276817">DumpNamespaces</a>(XMP_TextOutputProc outProc, void *clientData)</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#a466fa349c9765f39ca6b1450908e769f">DumpObject</a>(XMP_TextOutputProc outProc, void *clientData) const </td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#adf57895625ad118782ed48a3931848b7">Erase</a>()</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#ac64a4251d157937f69b73f2ffac4f7cc">GetArrayItem</a>(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_Index itemIndex, tStringObj *itemValue, XMP_OptionBits *options) const </td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#a12b2435ba039c62a164951948c016eb4">GetGlobalOptions</a>()</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#afbfebded0b85b08bd9c5ba0d7dae07e0">GetInternalRef</a>() const </td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#aeefe49bbf669770d769f4fe0ea566bd0">GetLocalizedText</a>(XMP_StringPtr schemaNS, XMP_StringPtr altTextName, XMP_StringPtr genericLang, XMP_StringPtr specificLang, tStringObj *actualLang, tStringObj *itemValue, XMP_OptionBits *options) const </td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#af28589472d8c0397db6cef868f2b8c97">GetNamespacePrefix</a>(XMP_StringPtr namespaceURI, tStringObj *namespacePrefix)</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#aa20c84e7549d0a3252fa29a1e83a757a">GetNamespaceURI</a>(XMP_StringPtr namespacePrefix, tStringObj *namespaceURI)</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#ab0d179ed95487d4fd4f2680c1fbe0d40">GetObjectName</a>(tStringObj *name) const </td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#a0bfc04142a35671a4c8989fcaca6d6c2">GetObjectOptions</a>() const </td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c">GetProperty</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName, tStringObj *propValue, XMP_OptionBits *options) const </td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#adcf8a1959a8bd42641a42cbd4d64a5b7">GetProperty_Bool</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName, bool *propValue, XMP_OptionBits *options) const </td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#a2f561295e73047ee90765558d29bd650">GetProperty_Date</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_DateTime *propValue, XMP_OptionBits *options) const </td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#a7708c31c9af3e740b27a4893dcd9aa47">GetProperty_Float</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName, double *propValue, XMP_OptionBits *options) const </td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#ae4e8ee4cc7441bb9464dac87f2d74650">GetProperty_Int</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_Int32 *propValue, XMP_OptionBits *options) const </td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#af91fa4bc4f51a56e35bcfb554783b050">GetProperty_Int64</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_Int64 *propValue, XMP_OptionBits *options) const </td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#a2cc58d8316043b035643e7c21633bc13">GetQualifier</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_StringPtr qualNS, XMP_StringPtr qualName, tStringObj *qualValue, XMP_OptionBits *options) const </td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#a885ef7127b897e349f71fa493ace3c94">GetStructField</a>(XMP_StringPtr schemaNS, XMP_StringPtr structName, XMP_StringPtr fieldNS, XMP_StringPtr fieldName, tStringObj *fieldValue, XMP_OptionBits *options) const </td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#a5415cfc01a9cb8786939246571a23a9d">GetVersionInfo</a>(XMP_VersionInfo *info)</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#af1defbb73f919eae06456a655dea726c">Initialize</a>()</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#a4d5a601c9b77f6f6ab5f14e658de58ef">operator=</a>(const TXMPMeta&lt; tStringObj &gt; &amp;rhs)</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#a7b383f5b357fff040cdbde82f4f43f26">ParseFromBuffer</a>(XMP_StringPtr buffer, XMP_StringLen bufferSize, XMP_OptionBits options=0)</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#ac0368ddbaa4d689cd5b1aff1c88bb0e1">RegisterNamespace</a>(XMP_StringPtr namespaceURI, XMP_StringPtr suggestedPrefix, tStringObj *registeredPrefix)</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#a31c7ef089e8fadff122044afa27d200a">ResetErrorCallbackLimit</a>(XMP_Uns32 limit=1)</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#a2774a6f15ae22f0002201b58c46bfb49">SerializeToBuffer</a>(tStringObj *rdfString, XMP_OptionBits options, XMP_StringLen padding, XMP_StringPtr newline, XMP_StringPtr indent=&quot;&quot;, XMP_Index baseIndent=0) const </td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#a0d98bc15bdb0f45737b15fc6822f3bc6">SerializeToBuffer</a>(tStringObj *rdfString, XMP_OptionBits options=0, XMP_StringLen padding=0) const </td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#a1570eb89d613b4a94ca572e4644168cc">SetArrayItem</a>(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_Index itemIndex, XMP_StringPtr itemValue, XMP_OptionBits options=0)</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#a15720ee8e732232fa25989870cf99846">SetArrayItem</a>(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_Index itemIndex, const tStringObj &amp;itemValue, XMP_OptionBits options=0)</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#a1e90e0c8cd8c5670267bb693cf3660fe">SetDefaultErrorCallback</a>(XMPMeta_ErrorCallbackProc proc, void *context=0, XMP_Uns32 limit=1)</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#aee41442af4f049c1d6698fc27ce854d0">SetErrorCallback</a>(XMPMeta_ErrorCallbackProc proc, void *context=0, XMP_Uns32 limit=1)</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#ae7bb38d9b3857b08106630a386b47332">SetGlobalOptions</a>(XMP_OptionBits options)</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#af9531b949a462f5663b1f3fd99464c19">SetLocalizedText</a>(XMP_StringPtr schemaNS, XMP_StringPtr altTextName, XMP_StringPtr genericLang, XMP_StringPtr specificLang, XMP_StringPtr itemValue, XMP_OptionBits options=0)</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#a81273a152fb7b19e99c62ee39bf723f2">SetLocalizedText</a>(XMP_StringPtr schemaNS, XMP_StringPtr altTextName, XMP_StringPtr genericLang, XMP_StringPtr specificLang, const tStringObj &amp;itemValue, XMP_OptionBits options=0)</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#acf1935be8e4849976dfc02325424960a">SetObjectName</a>(XMP_StringPtr name)</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#afd059cc7cd9f906e12dab04e380e495c">SetObjectName</a>(tStringObj name)</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#a92055b3ae18dfd5e5491108f59318f17">SetObjectOptions</a>(XMP_OptionBits options)</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#a1dfd6a08ebfd1a6364b3a7b6584bcc28">SetProperty</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_StringPtr propValue, XMP_OptionBits options=0)</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#acc50625611f6aad405aa47197b6d0055">SetProperty</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName, const tStringObj &amp;propValue, XMP_OptionBits options=0)</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#a9521e3838272ec501ffdb60ff3eb482f">SetProperty_Bool</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName, bool propValue, XMP_OptionBits options=0)</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#aeee10669445f77139d5634199ff01079">SetProperty_Date</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName, const XMP_DateTime &amp;propValue, XMP_OptionBits options=0)</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#a3b0f2f6bae57931ea96775f03608c0ed">SetProperty_Float</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName, double propValue, XMP_OptionBits options=0)</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#a489e10a6686aa813ee437e93ab2c5943">SetProperty_Int</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_Int32 propValue, XMP_OptionBits options=0)</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#a7f749be7699890bbaa2e2dbd05d45a90">SetProperty_Int64</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_Int64 propValue, XMP_OptionBits options=0)</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#ac2e798da5f9d94e486382a41e73fcea3">SetQualifier</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_StringPtr qualNS, XMP_StringPtr qualName, XMP_StringPtr qualValue, XMP_OptionBits options=0)</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#ac395e094cab251a0593d508594b21521">SetQualifier</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_StringPtr qualNS, XMP_StringPtr qualName, const tStringObj &amp;qualValue, XMP_OptionBits options=0)</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#a0e44c30e7527064909e5f7035d53c4f5">SetStructField</a>(XMP_StringPtr schemaNS, XMP_StringPtr structName, XMP_StringPtr fieldNS, XMP_StringPtr fieldName, XMP_StringPtr fieldValue, XMP_OptionBits options=0)</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#a77d4a1bf7831f39073af9ea1544ebefa">SetStructField</a>(XMP_StringPtr schemaNS, XMP_StringPtr structName, XMP_StringPtr fieldNS, XMP_StringPtr fieldName, const tStringObj &amp;fieldValue, XMP_OptionBits options=0)</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#a8ac5a02a13d439ff33ed4431986da681">Sort</a>()</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#a6c30fae26173167958b6f0da95a53865">Terminate</a>()</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#a61ffb3aa3e387d8ff9c1f4ebd26606c7">TXMPMeta</a>()</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#ada43d63894350e23a4307c41b7335eca">TXMPMeta</a>(const TXMPMeta&lt; tStringObj &gt; &amp;original)</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#acbe8f556a5b32542c44fa9de9648ad41">TXMPMeta</a>(XMPMetaRef xmpRef)</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#a05199e2a4bc61db7aed207759e899bc2">TXMPMeta</a>(XMP_StringPtr buffer, XMP_StringLen xmpSize)</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPMeta.html#abab5013870cd47eb0d9d701653735a02">~TXMPMeta</a>()</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td><code> [virtual]</code></td></tr>
-</table></div>
+
+<p>This is the complete list of members for <a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPMeta.html#a00d7314dc970ad390499ce9db27d314a">AppendArrayItem</a>(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_OptionBits arrayOptions, XMP_StringPtr itemValue, XMP_OptionBits itemOptions=0)</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPMeta.html#a4f768a8cb35cabff1cf4187aa6a88dd3">AppendArrayItem</a>(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_OptionBits arrayOptions, const tStringObj &amp;itemValue, XMP_OptionBits itemOptions=0)</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPMeta.html#a6ca653436995bbb76315efe7934afd4c">Clone</a>(XMP_OptionBits options=0) const </td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPMeta.html#ab79aae864b3ce190d0699252f48e0acc">CountArrayItems</a>(XMP_StringPtr schemaNS, XMP_StringPtr arrayName) const </td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPMeta.html#abc1211f47225b5973a170ff952743264">DeleteArrayItem</a>(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_Index itemIndex)</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPMeta.html#aeb7679e92b126800b7bd906acb2f26e8">DeleteLocalizedText</a>(XMP_StringPtr schemaNS, XMP_StringPtr altTextName, XMP_StringPtr genericLang, XMP_StringPtr specificLang)</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPMeta.html#a3f989597e95db929676273cacd4ea09a">DeleteNamespace</a>(XMP_StringPtr namespaceURI)</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPMeta.html#ac8b555ba99904fa49bb4851a60cc3844">DeleteProperty</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName)</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPMeta.html#a8ce15f7de7fd3b258f07158ab5fa88be">DeleteQualifier</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_StringPtr qualNS, XMP_StringPtr qualName)</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPMeta.html#abc258e027780a15be65a88fcfd4e1fd4">DeleteStructField</a>(XMP_StringPtr schemaNS, XMP_StringPtr structName, XMP_StringPtr fieldNS, XMP_StringPtr fieldName)</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPMeta.html#a492465c588d6d4cb8e30f94790e66f58">DoesArrayItemExist</a>(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_Index itemIndex) const </td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPMeta.html#af22b116d71ecbbebea016ec5337e7066">DoesPropertyExist</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName) const </td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPMeta.html#a81347a92becd387a14f4d47c582f129a">DoesQualifierExist</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_StringPtr qualNS, XMP_StringPtr qualName) const </td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPMeta.html#a9261b80d62e77a10ff1a89843bfa10a5">DoesStructFieldExist</a>(XMP_StringPtr schemaNS, XMP_StringPtr structName, XMP_StringPtr fieldNS, XMP_StringPtr fieldName) const </td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPMeta.html#aaddc5f555de57472939a41346e276817">DumpNamespaces</a>(XMP_TextOutputProc outProc, void *clientData)</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPMeta.html#a466fa349c9765f39ca6b1450908e769f">DumpObject</a>(XMP_TextOutputProc outProc, void *clientData) const </td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPMeta.html#adf57895625ad118782ed48a3931848b7">Erase</a>()</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPMeta.html#ac64a4251d157937f69b73f2ffac4f7cc">GetArrayItem</a>(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_Index itemIndex, tStringObj *itemValue, XMP_OptionBits *options) const </td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPMeta.html#a12b2435ba039c62a164951948c016eb4">GetGlobalOptions</a>()</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPMeta.html#afbfebded0b85b08bd9c5ba0d7dae07e0">GetInternalRef</a>() const </td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPMeta.html#aeefe49bbf669770d769f4fe0ea566bd0">GetLocalizedText</a>(XMP_StringPtr schemaNS, XMP_StringPtr altTextName, XMP_StringPtr genericLang, XMP_StringPtr specificLang, tStringObj *actualLang, tStringObj *itemValue, XMP_OptionBits *options) const </td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPMeta.html#af28589472d8c0397db6cef868f2b8c97">GetNamespacePrefix</a>(XMP_StringPtr namespaceURI, tStringObj *namespacePrefix)</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPMeta.html#aa20c84e7549d0a3252fa29a1e83a757a">GetNamespaceURI</a>(XMP_StringPtr namespacePrefix, tStringObj *namespaceURI)</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPMeta.html#ab0d179ed95487d4fd4f2680c1fbe0d40">GetObjectName</a>(tStringObj *name) const </td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPMeta.html#a0bfc04142a35671a4c8989fcaca6d6c2">GetObjectOptions</a>() const </td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c">GetProperty</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName, tStringObj *propValue, XMP_OptionBits *options) const </td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPMeta.html#adcf8a1959a8bd42641a42cbd4d64a5b7">GetProperty_Bool</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName, bool *propValue, XMP_OptionBits *options) const </td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPMeta.html#a2f561295e73047ee90765558d29bd650">GetProperty_Date</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_DateTime *propValue, XMP_OptionBits *options) const </td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPMeta.html#a7708c31c9af3e740b27a4893dcd9aa47">GetProperty_Float</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName, double *propValue, XMP_OptionBits *options) const </td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPMeta.html#ae4e8ee4cc7441bb9464dac87f2d74650">GetProperty_Int</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_Int32 *propValue, XMP_OptionBits *options) const </td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPMeta.html#af91fa4bc4f51a56e35bcfb554783b050">GetProperty_Int64</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_Int64 *propValue, XMP_OptionBits *options) const </td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPMeta.html#a2cc58d8316043b035643e7c21633bc13">GetQualifier</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_StringPtr qualNS, XMP_StringPtr qualName, tStringObj *qualValue, XMP_OptionBits *options) const </td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPMeta.html#a885ef7127b897e349f71fa493ace3c94">GetStructField</a>(XMP_StringPtr schemaNS, XMP_StringPtr structName, XMP_StringPtr fieldNS, XMP_StringPtr fieldName, tStringObj *fieldValue, XMP_OptionBits *options) const </td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPMeta.html#a5415cfc01a9cb8786939246571a23a9d">GetVersionInfo</a>(XMP_VersionInfo *info)</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPMeta.html#af1defbb73f919eae06456a655dea726c">Initialize</a>()</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPMeta.html#a4d5a601c9b77f6f6ab5f14e658de58ef">operator=</a>(const TXMPMeta&lt; tStringObj &gt; &amp;rhs)</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPMeta.html#a7b383f5b357fff040cdbde82f4f43f26">ParseFromBuffer</a>(XMP_StringPtr buffer, XMP_StringLen bufferSize, XMP_OptionBits options=0)</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPMeta.html#ac0368ddbaa4d689cd5b1aff1c88bb0e1">RegisterNamespace</a>(XMP_StringPtr namespaceURI, XMP_StringPtr suggestedPrefix, tStringObj *registeredPrefix)</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPMeta.html#a31c7ef089e8fadff122044afa27d200a">ResetErrorCallbackLimit</a>(XMP_Uns32 limit=1)</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPMeta.html#a2774a6f15ae22f0002201b58c46bfb49">SerializeToBuffer</a>(tStringObj *rdfString, XMP_OptionBits options, XMP_StringLen padding, XMP_StringPtr newline, XMP_StringPtr indent=&quot;&quot;, XMP_Index baseIndent=0) const </td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPMeta.html#a0d98bc15bdb0f45737b15fc6822f3bc6">SerializeToBuffer</a>(tStringObj *rdfString, XMP_OptionBits options=0, XMP_StringLen padding=0) const </td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPMeta.html#a1570eb89d613b4a94ca572e4644168cc">SetArrayItem</a>(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_Index itemIndex, XMP_StringPtr itemValue, XMP_OptionBits options=0)</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPMeta.html#a15720ee8e732232fa25989870cf99846">SetArrayItem</a>(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_Index itemIndex, const tStringObj &amp;itemValue, XMP_OptionBits options=0)</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPMeta.html#a67bbfe3f55af71a5122512ebb695e4ed">SetClientString</a>(void *clientPtr, XMP_StringPtr valuePtr, XMP_StringLen valueLen)</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">private</span><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPMeta.html#a1e90e0c8cd8c5670267bb693cf3660fe">SetDefaultErrorCallback</a>(XMPMeta_ErrorCallbackProc proc, void *context=0, XMP_Uns32 limit=1)</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPMeta.html#aee41442af4f049c1d6698fc27ce854d0">SetErrorCallback</a>(XMPMeta_ErrorCallbackProc proc, void *context=0, XMP_Uns32 limit=1)</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPMeta.html#ae7bb38d9b3857b08106630a386b47332">SetGlobalOptions</a>(XMP_OptionBits options)</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPMeta.html#af9531b949a462f5663b1f3fd99464c19">SetLocalizedText</a>(XMP_StringPtr schemaNS, XMP_StringPtr altTextName, XMP_StringPtr genericLang, XMP_StringPtr specificLang, XMP_StringPtr itemValue, XMP_OptionBits options=0)</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPMeta.html#a81273a152fb7b19e99c62ee39bf723f2">SetLocalizedText</a>(XMP_StringPtr schemaNS, XMP_StringPtr altTextName, XMP_StringPtr genericLang, XMP_StringPtr specificLang, const tStringObj &amp;itemValue, XMP_OptionBits options=0)</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPMeta.html#acf1935be8e4849976dfc02325424960a">SetObjectName</a>(XMP_StringPtr name)</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPMeta.html#afd059cc7cd9f906e12dab04e380e495c">SetObjectName</a>(tStringObj name)</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPMeta.html#a92055b3ae18dfd5e5491108f59318f17">SetObjectOptions</a>(XMP_OptionBits options)</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPMeta.html#a1dfd6a08ebfd1a6364b3a7b6584bcc28">SetProperty</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_StringPtr propValue, XMP_OptionBits options=0)</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPMeta.html#acc50625611f6aad405aa47197b6d0055">SetProperty</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName, const tStringObj &amp;propValue, XMP_OptionBits options=0)</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPMeta.html#a9521e3838272ec501ffdb60ff3eb482f">SetProperty_Bool</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName, bool propValue, XMP_OptionBits options=0)</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPMeta.html#aeee10669445f77139d5634199ff01079">SetProperty_Date</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName, const XMP_DateTime &amp;propValue, XMP_OptionBits options=0)</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPMeta.html#a3b0f2f6bae57931ea96775f03608c0ed">SetProperty_Float</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName, double propValue, XMP_OptionBits options=0)</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPMeta.html#a489e10a6686aa813ee437e93ab2c5943">SetProperty_Int</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_Int32 propValue, XMP_OptionBits options=0)</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPMeta.html#a7f749be7699890bbaa2e2dbd05d45a90">SetProperty_Int64</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_Int64 propValue, XMP_OptionBits options=0)</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPMeta.html#ac2e798da5f9d94e486382a41e73fcea3">SetQualifier</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_StringPtr qualNS, XMP_StringPtr qualName, XMP_StringPtr qualValue, XMP_OptionBits options=0)</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPMeta.html#ac395e094cab251a0593d508594b21521">SetQualifier</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_StringPtr qualNS, XMP_StringPtr qualName, const tStringObj &amp;qualValue, XMP_OptionBits options=0)</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPMeta.html#a0e44c30e7527064909e5f7035d53c4f5">SetStructField</a>(XMP_StringPtr schemaNS, XMP_StringPtr structName, XMP_StringPtr fieldNS, XMP_StringPtr fieldName, XMP_StringPtr fieldValue, XMP_OptionBits options=0)</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPMeta.html#a77d4a1bf7831f39073af9ea1544ebefa">SetStructField</a>(XMP_StringPtr schemaNS, XMP_StringPtr structName, XMP_StringPtr fieldNS, XMP_StringPtr fieldName, const tStringObj &amp;fieldValue, XMP_OptionBits options=0)</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPMeta.html#a8ac5a02a13d439ff33ed4431986da681">Sort</a>()</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPMeta.html#a6c30fae26173167958b6f0da95a53865">Terminate</a>()</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPMeta.html#a61ffb3aa3e387d8ff9c1f4ebd26606c7">TXMPMeta</a>()</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPMeta.html#ada43d63894350e23a4307c41b7335eca">TXMPMeta</a>(const TXMPMeta&lt; tStringObj &gt; &amp;original)</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPMeta.html#acbe8f556a5b32542c44fa9de9648ad41">TXMPMeta</a>(XMPMetaRef xmpRef)</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPMeta.html#a05199e2a4bc61db7aed207759e899bc2">TXMPMeta</a>(XMP_StringPtr buffer, XMP_StringLen xmpSize)</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPMeta.html#a8d607eb80edb919fe8b07efe300008d2">xmpRef</a></td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPMeta.html#abab5013870cd47eb0d9d701653735a02">~TXMPMeta</a>()</td><td class="entry"><a class="el" href="classTXMPMeta.html">TXMPMeta&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
</body>
</html>
diff --git a/docs/API/classTXMPMeta.html b/docs/API/classTXMPMeta.html
index fd03b7b..039181c 100644..100755
--- a/docs/API/classTXMPMeta.html
+++ b/docs/API/classTXMPMeta.html
@@ -1,290 +1,318 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: TXMPMeta&lt; tStringObj &gt; Class Template Reference</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
+<title>TXMPMeta&lt; tStringObj &gt; Class Template Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
- <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
- <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classTXMPMeta.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Public Attributes</a> &#124;
+<a href="#pri-static-methods">Static Private Member Functions</a> &#124;
+<a href="classTXMPMeta-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">TXMPMeta&lt; tStringObj &gt; Class Template Reference</div> </div>
+</div><!--header-->
<div class="contents">
-<h1>TXMPMeta&lt; tStringObj &gt; Class Template Reference</h1><!-- doxytag: class="TXMPMeta" -->
+
<p>API for access to the XMP Toolkit core services.
-<a href="#_details">More...</a></p>
+ <a href="classTXMPMeta.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="TXMPMeta_8hpp_source.html">TXMPMeta.hpp</a>&gt;</code></p>
-
-<p><a href="classTXMPMeta-members.html">List of all members.</a></p>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">Constructors and destructor</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp9f50e6f946106b24d825e99ea17f1027"></a> </p>
-</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a61ffb3aa3e387d8ff9c1f4ebd26606c7">TXMPMeta</a> ()</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default constructor, creates an empty object. <a href="#a61ffb3aa3e387d8ff9c1f4ebd26606c7"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#ada43d63894350e23a4307c41b7335eca">TXMPMeta</a> (const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;original)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Copy constructor, creates a client object refering to the same internal object. <a href="#ada43d63894350e23a4307c41b7335eca"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a4d5a601c9b77f6f6ab5f14e658de58ef">operator=</a> (const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;rhs)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Assignment operator, assigns the internal reference and increments the reference count. <a href="#a4d5a601c9b77f6f6ab5f14e658de58ef"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#acbe8f556a5b32542c44fa9de9648ad41">TXMPMeta</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> xmpRef)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reconstructs an XMP object from an internal reference. <a href="#acbe8f556a5b32542c44fa9de9648ad41"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a05199e2a4bc61db7aed207759e899bc2">TXMPMeta</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> buffer, <a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> xmpSize)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs an object and parse one buffer of RDF into it. <a href="#a05199e2a4bc61db7aed207759e899bc2"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abab5013870cd47eb0d9d701653735a02"></a><!-- doxytag: member="TXMPMeta::~TXMPMeta" ref="abab5013870cd47eb0d9d701653735a02" args="()" -->
-virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#abab5013870cd47eb0d9d701653735a02">~TXMPMeta</a> () throw ()</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destructor, typical virtual destructor. */. <br/></td></tr>
+<tr class="memitem:a61ffb3aa3e387d8ff9c1f4ebd26606c7"><td class="memItemLeft" align="right" valign="top">*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a61ffb3aa3e387d8ff9c1f4ebd26606c7">TXMPMeta</a> ()</td></tr>
+<tr class="memdesc:a61ffb3aa3e387d8ff9c1f4ebd26606c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor, creates an empty object. <a href="#a61ffb3aa3e387d8ff9c1f4ebd26606c7">More...</a><br /></td></tr>
+<tr class="separator:a61ffb3aa3e387d8ff9c1f4ebd26606c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ada43d63894350e23a4307c41b7335eca"><td class="memItemLeft" align="right" valign="top">*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#ada43d63894350e23a4307c41b7335eca">TXMPMeta</a> (const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;original)</td></tr>
+<tr class="memdesc:ada43d63894350e23a4307c41b7335eca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor, creates a client object refering to the same internal object. <a href="#ada43d63894350e23a4307c41b7335eca">More...</a><br /></td></tr>
+<tr class="separator:ada43d63894350e23a4307c41b7335eca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4d5a601c9b77f6f6ab5f14e658de58ef"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a4d5a601c9b77f6f6ab5f14e658de58ef">operator=</a> (const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;rhs)</td></tr>
+<tr class="memdesc:a4d5a601c9b77f6f6ab5f14e658de58ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assignment operator, assigns the internal reference and increments the reference count. <a href="#a4d5a601c9b77f6f6ab5f14e658de58ef">More...</a><br /></td></tr>
+<tr class="separator:a4d5a601c9b77f6f6ab5f14e658de58ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acbe8f556a5b32542c44fa9de9648ad41"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#acbe8f556a5b32542c44fa9de9648ad41">TXMPMeta</a> (<a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> <a class="el" href="classTXMPMeta.html#a8d607eb80edb919fe8b07efe300008d2">xmpRef</a>)</td></tr>
+<tr class="memdesc:acbe8f556a5b32542c44fa9de9648ad41"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reconstructs an XMP object from an internal reference. <a href="#acbe8f556a5b32542c44fa9de9648ad41">More...</a><br /></td></tr>
+<tr class="separator:acbe8f556a5b32542c44fa9de9648ad41"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a05199e2a4bc61db7aed207759e899bc2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a05199e2a4bc61db7aed207759e899bc2">TXMPMeta</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> buffer, <a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> xmpSize)</td></tr>
+<tr class="memdesc:a05199e2a4bc61db7aed207759e899bc2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an object and parse one buffer of RDF into it. <a href="#a05199e2a4bc61db7aed207759e899bc2">More...</a><br /></td></tr>
+<tr class="separator:a05199e2a4bc61db7aed207759e899bc2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abab5013870cd47eb0d9d701653735a02"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#abab5013870cd47eb0d9d701653735a02">~TXMPMeta</a> () throw ()</td></tr>
+<tr class="memdesc:abab5013870cd47eb0d9d701653735a02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor, typical virtual destructor. */. <a href="#abab5013870cd47eb0d9d701653735a02">More...</a><br /></td></tr>
+<tr class="separator:abab5013870cd47eb0d9d701653735a02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Accessing property values</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp5cc5af021f073cf28aebd8ad56075cbd"></a> The property value accessors all take a property specification; the top level namespace URI (the "schema" namespace) and the basic name of the property being referenced. See the introductory discussion of path expression usage for more information.</p>
-<p>The accessor functions return true if the specified property exists. If it does, output parameters return the value (if any) and option flags describing the property. The option bit-flag constants that describe properties are <code>kXMP_PropXx</code> and <code>kXMP_ArrayIsXx</code>. See <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aab51f87b5c48f47f5cefb9e03293dafb" title="The XML string form of the property value is a URI, use rdf:resource attribute. DISCOURAGED...">kXMP_PropValueIsURI</a></code> and following, and macros <code><a class="el" href="XMP__Const_8h.html#a510b75338bd488ddd8d9bd4e326806f9" title="Macro reports the property type specified by an options flag.">XMP_PropIsSimple</a></code> and following in <code><a class="el" href="XMP__Const_8h.html" title="Common C/C++ types and constants for the XMP toolkit.">XMP_Const.h</a></code>. If the property exists and has a value, it is returned as a Unicode string in UTF-8 encoding. Arrays and the non-leaf levels of structs do not have values. </p>
+<tr><td colspan="2"><div class="groupText"><p>The property value accessors all take a property specification; the top level namespace URI (the "schema" namespace) and the basic name of the property being referenced. See the introductory discussion of path expression usage for more information. </p>
</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c">GetProperty</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, tStringObj *propValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *options) const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code> reports whether a property exists, and retrieves its value. <a href="#a06a3241c7fa5df87f61dff02fca23a0c"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#ac64a4251d157937f69b73f2ffac4f7cc">GetArrayItem</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName, <a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a> itemIndex, tStringObj *itemValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *options) const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#ac64a4251d157937f69b73f2ffac4f7cc" title="GetArrayItem() provides access to items within an array.">GetArrayItem()</a></code> provides access to items within an array. <a href="#ac64a4251d157937f69b73f2ffac4f7cc"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a885ef7127b897e349f71fa493ace3c94">GetStructField</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> structName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldName, tStringObj *fieldValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *options) const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a885ef7127b897e349f71fa493ace3c94" title="GetStructField() provides access to fields within a nested structure.">GetStructField()</a></code> provides access to fields within a nested structure. <a href="#a885ef7127b897e349f71fa493ace3c94"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a2cc58d8316043b035643e7c21633bc13">GetQualifier</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualName, tStringObj *qualValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *options) const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a2cc58d8316043b035643e7c21633bc13" title="GetQualifier() provides access to a qualifier attached to a property.">GetQualifier()</a></code> provides access to a qualifier attached to a property. <a href="#a2cc58d8316043b035643e7c21633bc13"></a><br/></td></tr>
+<tr class="memitem:a06a3241c7fa5df87f61dff02fca23a0c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c">GetProperty</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, tStringObj *propValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *options) const </td></tr>
+<tr class="memdesc:a06a3241c7fa5df87f61dff02fca23a0c"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code> reports whether a property exists, and retrieves its value. <a href="#a06a3241c7fa5df87f61dff02fca23a0c">More...</a><br /></td></tr>
+<tr class="separator:a06a3241c7fa5df87f61dff02fca23a0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac64a4251d157937f69b73f2ffac4f7cc"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#ac64a4251d157937f69b73f2ffac4f7cc">GetArrayItem</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName, <a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a> itemIndex, tStringObj *itemValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *options) const </td></tr>
+<tr class="memdesc:ac64a4251d157937f69b73f2ffac4f7cc"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#ac64a4251d157937f69b73f2ffac4f7cc" title="GetArrayItem() provides access to items within an array. ">GetArrayItem()</a></code> provides access to items within an array. <a href="#ac64a4251d157937f69b73f2ffac4f7cc">More...</a><br /></td></tr>
+<tr class="separator:ac64a4251d157937f69b73f2ffac4f7cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a885ef7127b897e349f71fa493ace3c94"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a885ef7127b897e349f71fa493ace3c94">GetStructField</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> structName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldName, tStringObj *fieldValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *options) const </td></tr>
+<tr class="memdesc:a885ef7127b897e349f71fa493ace3c94"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a885ef7127b897e349f71fa493ace3c94" title="GetStructField() provides access to fields within a nested structure. ">GetStructField()</a></code> provides access to fields within a nested structure. <a href="#a885ef7127b897e349f71fa493ace3c94">More...</a><br /></td></tr>
+<tr class="separator:a885ef7127b897e349f71fa493ace3c94"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2cc58d8316043b035643e7c21633bc13"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a2cc58d8316043b035643e7c21633bc13">GetQualifier</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualName, tStringObj *qualValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *options) const </td></tr>
+<tr class="memdesc:a2cc58d8316043b035643e7c21633bc13"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a2cc58d8316043b035643e7c21633bc13" title="GetQualifier() provides access to a qualifier attached to a property. ">GetQualifier()</a></code> provides access to a qualifier attached to a property. <a href="#a2cc58d8316043b035643e7c21633bc13">More...</a><br /></td></tr>
+<tr class="separator:a2cc58d8316043b035643e7c21633bc13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Creating properties and setting their values</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp3ece23c8cc7d8251846f187f5a713d46"></a> These functions all take a property specification; the top level namespace URI (the "schema" namespace) and the basic name of the property being referenced. See the introductory discussion of path expression usage for more information.</p>
-<p>All of the functions take a UTF-8 encoded Unicode string for the property value. Arrays and non-leaf levels of structs do not have values. The value can be passed as an <code><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a></code> (a pointer to a null-terminated string), or as a string object (<code>tStringObj</code>). </p>
-</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a1dfd6a08ebfd1a6364b3a7b6584bcc28">SetProperty</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a1dfd6a08ebfd1a6364b3a7b6584bcc28" title="SetProperty() creates or sets a property value.">SetProperty()</a></code> creates or sets a property value. <a href="#a1dfd6a08ebfd1a6364b3a7b6584bcc28"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#acc50625611f6aad405aa47197b6d0055">SetProperty</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, const tStringObj &amp;propValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a1dfd6a08ebfd1a6364b3a7b6584bcc28" title="SetProperty() creates or sets a property value.">SetProperty()</a></code> creates or sets a property value using a string object. <a href="#acc50625611f6aad405aa47197b6d0055"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a1570eb89d613b4a94ca572e4644168cc">SetArrayItem</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName, <a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a> itemIndex, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> itemValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a1570eb89d613b4a94ca572e4644168cc" title="SetArrayItem() creates or sets the value of an item within an array.">SetArrayItem()</a></code> creates or sets the value of an item within an array. <a href="#a1570eb89d613b4a94ca572e4644168cc"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a15720ee8e732232fa25989870cf99846">SetArrayItem</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName, <a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a> itemIndex, const tStringObj &amp;itemValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a1570eb89d613b4a94ca572e4644168cc" title="SetArrayItem() creates or sets the value of an item within an array.">SetArrayItem()</a></code> creates or sets the value of an item within an array using a string object. <a href="#a15720ee8e732232fa25989870cf99846"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a00d7314dc970ad390499ce9db27d314a">AppendArrayItem</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> arrayOptions, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> itemValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> itemOptions=0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a00d7314dc970ad390499ce9db27d314a" title="AppendArrayItem() adds an item to an array, creating the array if necessary.">AppendArrayItem()</a></code> adds an item to an array, creating the array if necessary. <a href="#a00d7314dc970ad390499ce9db27d314a"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a4f768a8cb35cabff1cf4187aa6a88dd3">AppendArrayItem</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> arrayOptions, const tStringObj &amp;itemValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> itemOptions=0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a00d7314dc970ad390499ce9db27d314a" title="AppendArrayItem() adds an item to an array, creating the array if necessary.">AppendArrayItem()</a></code> adds an item to an array using a string object value, creating the array if necessary. <a href="#a4f768a8cb35cabff1cf4187aa6a88dd3"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a0e44c30e7527064909e5f7035d53c4f5">SetStructField</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> structName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a0e44c30e7527064909e5f7035d53c4f5" title="SetStructField() creates or sets the value of a field within a nested structure.">SetStructField()</a></code> creates or sets the value of a field within a nested structure. <a href="#a0e44c30e7527064909e5f7035d53c4f5"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a77d4a1bf7831f39073af9ea1544ebefa">SetStructField</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> structName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldName, const tStringObj &amp;fieldValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a0e44c30e7527064909e5f7035d53c4f5" title="SetStructField() creates or sets the value of a field within a nested structure.">SetStructField()</a></code> creates or sets the value of a field within a nested structure, using a string object. <a href="#a77d4a1bf7831f39073af9ea1544ebefa"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#ac2e798da5f9d94e486382a41e73fcea3">SetQualifier</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#ac2e798da5f9d94e486382a41e73fcea3" title="SetQualifier() creates or sets a qualifier attached to a property.">SetQualifier()</a></code> creates or sets a qualifier attached to a property. <a href="#ac2e798da5f9d94e486382a41e73fcea3"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#ac395e094cab251a0593d508594b21521">SetQualifier</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualName, const tStringObj &amp;qualValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#ac2e798da5f9d94e486382a41e73fcea3" title="SetQualifier() creates or sets a qualifier attached to a property.">SetQualifier()</a></code> creates or sets a qualifier attached to a property using a string object. <a href="#ac395e094cab251a0593d508594b21521"></a><br/></td></tr>
+<tr class="memitem:a1dfd6a08ebfd1a6364b3a7b6584bcc28"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a1dfd6a08ebfd1a6364b3a7b6584bcc28">SetProperty</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
+<tr class="memdesc:a1dfd6a08ebfd1a6364b3a7b6584bcc28"><td class="mdescLeft">&#160;</td><td class="mdescRight">be a simple property with an <code>xml:lang</code> attribute. <a href="#a1dfd6a08ebfd1a6364b3a7b6584bcc28">More...</a><br /></td></tr>
+<tr class="separator:a1dfd6a08ebfd1a6364b3a7b6584bcc28"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acc50625611f6aad405aa47197b6d0055"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#acc50625611f6aad405aa47197b6d0055">SetProperty</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, const tStringObj &amp;propValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
+<tr class="memdesc:acc50625611f6aad405aa47197b6d0055"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a1dfd6a08ebfd1a6364b3a7b6584bcc28" title="be a simple property with an xml:lang attribute. ">SetProperty()</a></code> creates or sets a property value using a string object. <a href="#acc50625611f6aad405aa47197b6d0055">More...</a><br /></td></tr>
+<tr class="separator:acc50625611f6aad405aa47197b6d0055"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1570eb89d613b4a94ca572e4644168cc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a1570eb89d613b4a94ca572e4644168cc">SetArrayItem</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName, <a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a> itemIndex, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> itemValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
+<tr class="memdesc:a1570eb89d613b4a94ca572e4644168cc"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a1570eb89d613b4a94ca572e4644168cc" title="SetArrayItem() creates or sets the value of an item within an array. ">SetArrayItem()</a></code> creates or sets the value of an item within an array. <a href="#a1570eb89d613b4a94ca572e4644168cc">More...</a><br /></td></tr>
+<tr class="separator:a1570eb89d613b4a94ca572e4644168cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a15720ee8e732232fa25989870cf99846"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a15720ee8e732232fa25989870cf99846">SetArrayItem</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName, <a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a> itemIndex, const tStringObj &amp;itemValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
+<tr class="memdesc:a15720ee8e732232fa25989870cf99846"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a1570eb89d613b4a94ca572e4644168cc" title="SetArrayItem() creates or sets the value of an item within an array. ">SetArrayItem()</a></code> creates or sets the value of an item within an array using a string object. <a href="#a15720ee8e732232fa25989870cf99846">More...</a><br /></td></tr>
+<tr class="separator:a15720ee8e732232fa25989870cf99846"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00d7314dc970ad390499ce9db27d314a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a00d7314dc970ad390499ce9db27d314a">AppendArrayItem</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> arrayOptions, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> itemValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> itemOptions=0)</td></tr>
+<tr class="memdesc:a00d7314dc970ad390499ce9db27d314a"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a00d7314dc970ad390499ce9db27d314a" title="AppendArrayItem() adds an item to an array, creating the array if necessary. ">AppendArrayItem()</a></code> adds an item to an array, creating the array if necessary. <a href="#a00d7314dc970ad390499ce9db27d314a">More...</a><br /></td></tr>
+<tr class="separator:a00d7314dc970ad390499ce9db27d314a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4f768a8cb35cabff1cf4187aa6a88dd3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a4f768a8cb35cabff1cf4187aa6a88dd3">AppendArrayItem</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> arrayOptions, const tStringObj &amp;itemValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> itemOptions=0)</td></tr>
+<tr class="memdesc:a4f768a8cb35cabff1cf4187aa6a88dd3"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a00d7314dc970ad390499ce9db27d314a" title="AppendArrayItem() adds an item to an array, creating the array if necessary. ">AppendArrayItem()</a></code> adds an item to an array using a string object value, creating the array if necessary. <a href="#a4f768a8cb35cabff1cf4187aa6a88dd3">More...</a><br /></td></tr>
+<tr class="separator:a4f768a8cb35cabff1cf4187aa6a88dd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0e44c30e7527064909e5f7035d53c4f5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a0e44c30e7527064909e5f7035d53c4f5">SetStructField</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> structName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
+<tr class="memdesc:a0e44c30e7527064909e5f7035d53c4f5"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a0e44c30e7527064909e5f7035d53c4f5" title="SetStructField() creates or sets the value of a field within a nested structure. ">SetStructField()</a></code> creates or sets the value of a field within a nested structure. <a href="#a0e44c30e7527064909e5f7035d53c4f5">More...</a><br /></td></tr>
+<tr class="separator:a0e44c30e7527064909e5f7035d53c4f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a77d4a1bf7831f39073af9ea1544ebefa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a77d4a1bf7831f39073af9ea1544ebefa">SetStructField</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> structName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldName, const tStringObj &amp;fieldValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
+<tr class="memdesc:a77d4a1bf7831f39073af9ea1544ebefa"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a0e44c30e7527064909e5f7035d53c4f5" title="SetStructField() creates or sets the value of a field within a nested structure. ">SetStructField()</a></code> creates or sets the value of a field within a nested structure, using a string object. <a href="#a77d4a1bf7831f39073af9ea1544ebefa">More...</a><br /></td></tr>
+<tr class="separator:a77d4a1bf7831f39073af9ea1544ebefa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac2e798da5f9d94e486382a41e73fcea3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#ac2e798da5f9d94e486382a41e73fcea3">SetQualifier</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
+<tr class="memdesc:ac2e798da5f9d94e486382a41e73fcea3"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#ac2e798da5f9d94e486382a41e73fcea3" title="SetQualifier() creates or sets a qualifier attached to a property. ">SetQualifier()</a></code> creates or sets a qualifier attached to a property. <a href="#ac2e798da5f9d94e486382a41e73fcea3">More...</a><br /></td></tr>
+<tr class="separator:ac2e798da5f9d94e486382a41e73fcea3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac395e094cab251a0593d508594b21521"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#ac395e094cab251a0593d508594b21521">SetQualifier</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualName, const tStringObj &amp;qualValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
+<tr class="memdesc:ac395e094cab251a0593d508594b21521"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#ac2e798da5f9d94e486382a41e73fcea3" title="SetQualifier() creates or sets a qualifier attached to a property. ">SetQualifier()</a></code> creates or sets a qualifier attached to a property using a string object. <a href="#ac395e094cab251a0593d508594b21521">More...</a><br /></td></tr>
+<tr class="separator:ac395e094cab251a0593d508594b21521"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Detecting and deleting properties.</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp99c86022ea3dd0543fe7511cd1bb7807"></a> The namespace URI and prefix usage for property specifiers in these functions is the same as for <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">TXMPMeta::GetProperty()</a></code>. </p>
+<tr><td colspan="2"><div class="groupText"><p>The namespace URI and prefix usage for property specifiers in these functions is the same as for <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">TXMPMeta::GetProperty()</a></code>. </p>
</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#ac8b555ba99904fa49bb4851a60cc3844">DeleteProperty</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#ac8b555ba99904fa49bb4851a60cc3844" title="DeleteProperty() deletes an XMP subtree rooted at a given property.">DeleteProperty()</a></code> deletes an XMP subtree rooted at a given property. <a href="#ac8b555ba99904fa49bb4851a60cc3844"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#abc1211f47225b5973a170ff952743264">DeleteArrayItem</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName, <a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a> itemIndex)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#abc1211f47225b5973a170ff952743264" title="DeleteArrayItem() deletes an XMP subtree rooted at a given array item.">DeleteArrayItem()</a></code> deletes an XMP subtree rooted at a given array item. <a href="#abc1211f47225b5973a170ff952743264"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#abc258e027780a15be65a88fcfd4e1fd4">DeleteStructField</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> structName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldName)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#abc258e027780a15be65a88fcfd4e1fd4" title="DeleteStructField() deletes an XMP subtree rooted at a given struct field.">DeleteStructField()</a></code> deletes an XMP subtree rooted at a given struct field. <a href="#abc258e027780a15be65a88fcfd4e1fd4"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a8ce15f7de7fd3b258f07158ab5fa88be">DeleteQualifier</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualName)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a8ce15f7de7fd3b258f07158ab5fa88be" title="DeleteQualifier() deletes an XMP subtree rooted at a given qualifier.">DeleteQualifier()</a></code> deletes an XMP subtree rooted at a given qualifier. <a href="#a8ce15f7de7fd3b258f07158ab5fa88be"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#af22b116d71ecbbebea016ec5337e7066">DoesPropertyExist</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName) const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#af22b116d71ecbbebea016ec5337e7066" title="DoesPropertyExist() reports whether a property currently exists.">DoesPropertyExist()</a></code> reports whether a property currently exists. <a href="#af22b116d71ecbbebea016ec5337e7066"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a492465c588d6d4cb8e30f94790e66f58">DoesArrayItemExist</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName, <a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a> itemIndex) const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a492465c588d6d4cb8e30f94790e66f58" title="DoesArrayItemExist() reports whether an array item currently exists.">DoesArrayItemExist()</a></code> reports whether an array item currently exists. <a href="#a492465c588d6d4cb8e30f94790e66f58"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a9261b80d62e77a10ff1a89843bfa10a5">DoesStructFieldExist</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> structName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldName) const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a9261b80d62e77a10ff1a89843bfa10a5" title="DoesStructFieldExist() reports whether a struct field currently exists.">DoesStructFieldExist()</a></code> reports whether a struct field currently exists. <a href="#a9261b80d62e77a10ff1a89843bfa10a5"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a81347a92becd387a14f4d47c582f129a">DoesQualifierExist</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualName) const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a81347a92becd387a14f4d47c582f129a" title="DoesQualifierExist() reports whether a qualifier currently exists.">DoesQualifierExist()</a></code> reports whether a qualifier currently exists. <a href="#a81347a92becd387a14f4d47c582f129a"></a><br/></td></tr>
+<tr class="memitem:ac8b555ba99904fa49bb4851a60cc3844"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#ac8b555ba99904fa49bb4851a60cc3844">DeleteProperty</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName)</td></tr>
+<tr class="memdesc:ac8b555ba99904fa49bb4851a60cc3844"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#ac8b555ba99904fa49bb4851a60cc3844" title="DeleteProperty() deletes an XMP subtree rooted at a given property. ">DeleteProperty()</a></code> deletes an XMP subtree rooted at a given property. <a href="#ac8b555ba99904fa49bb4851a60cc3844">More...</a><br /></td></tr>
+<tr class="separator:ac8b555ba99904fa49bb4851a60cc3844"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abc1211f47225b5973a170ff952743264"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#abc1211f47225b5973a170ff952743264">DeleteArrayItem</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName, <a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a> itemIndex)</td></tr>
+<tr class="memdesc:abc1211f47225b5973a170ff952743264"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#abc1211f47225b5973a170ff952743264" title="DeleteArrayItem() deletes an XMP subtree rooted at a given array item. ">DeleteArrayItem()</a></code> deletes an XMP subtree rooted at a given array item. <a href="#abc1211f47225b5973a170ff952743264">More...</a><br /></td></tr>
+<tr class="separator:abc1211f47225b5973a170ff952743264"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abc258e027780a15be65a88fcfd4e1fd4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#abc258e027780a15be65a88fcfd4e1fd4">DeleteStructField</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> structName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldName)</td></tr>
+<tr class="memdesc:abc258e027780a15be65a88fcfd4e1fd4"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#abc258e027780a15be65a88fcfd4e1fd4" title="DeleteStructField() deletes an XMP subtree rooted at a given struct field. ">DeleteStructField()</a></code> deletes an XMP subtree rooted at a given struct field. <a href="#abc258e027780a15be65a88fcfd4e1fd4">More...</a><br /></td></tr>
+<tr class="separator:abc258e027780a15be65a88fcfd4e1fd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8ce15f7de7fd3b258f07158ab5fa88be"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a8ce15f7de7fd3b258f07158ab5fa88be">DeleteQualifier</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualName)</td></tr>
+<tr class="memdesc:a8ce15f7de7fd3b258f07158ab5fa88be"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a8ce15f7de7fd3b258f07158ab5fa88be" title="DeleteQualifier() deletes an XMP subtree rooted at a given qualifier. ">DeleteQualifier()</a></code> deletes an XMP subtree rooted at a given qualifier. <a href="#a8ce15f7de7fd3b258f07158ab5fa88be">More...</a><br /></td></tr>
+<tr class="separator:a8ce15f7de7fd3b258f07158ab5fa88be"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af22b116d71ecbbebea016ec5337e7066"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#af22b116d71ecbbebea016ec5337e7066">DoesPropertyExist</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName) const </td></tr>
+<tr class="memdesc:af22b116d71ecbbebea016ec5337e7066"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#af22b116d71ecbbebea016ec5337e7066" title="DoesPropertyExist() reports whether a property currently exists. ">DoesPropertyExist()</a></code> reports whether a property currently exists. <a href="#af22b116d71ecbbebea016ec5337e7066">More...</a><br /></td></tr>
+<tr class="separator:af22b116d71ecbbebea016ec5337e7066"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a492465c588d6d4cb8e30f94790e66f58"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a492465c588d6d4cb8e30f94790e66f58">DoesArrayItemExist</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName, <a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a> itemIndex) const </td></tr>
+<tr class="memdesc:a492465c588d6d4cb8e30f94790e66f58"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a492465c588d6d4cb8e30f94790e66f58" title="DoesArrayItemExist() reports whether an array item currently exists. ">DoesArrayItemExist()</a></code> reports whether an array item currently exists. <a href="#a492465c588d6d4cb8e30f94790e66f58">More...</a><br /></td></tr>
+<tr class="separator:a492465c588d6d4cb8e30f94790e66f58"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9261b80d62e77a10ff1a89843bfa10a5"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a9261b80d62e77a10ff1a89843bfa10a5">DoesStructFieldExist</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> structName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldName) const </td></tr>
+<tr class="memdesc:a9261b80d62e77a10ff1a89843bfa10a5"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a9261b80d62e77a10ff1a89843bfa10a5" title="DoesStructFieldExist() reports whether a struct field currently exists. ">DoesStructFieldExist()</a></code> reports whether a struct field currently exists. <a href="#a9261b80d62e77a10ff1a89843bfa10a5">More...</a><br /></td></tr>
+<tr class="separator:a9261b80d62e77a10ff1a89843bfa10a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a81347a92becd387a14f4d47c582f129a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a81347a92becd387a14f4d47c582f129a">DoesQualifierExist</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualName) const </td></tr>
+<tr class="memdesc:a81347a92becd387a14f4d47c582f129a"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a81347a92becd387a14f4d47c582f129a" title="DoesQualifierExist() reports whether a qualifier currently exists. ">DoesQualifierExist()</a></code> reports whether a qualifier currently exists. <a href="#a81347a92becd387a14f4d47c582f129a">More...</a><br /></td></tr>
+<tr class="separator:a81347a92becd387a14f4d47c582f129a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Accessing properties as binary values.</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpabc9d52b1519ad2166c728899b47ca6e"></a> These are very similar to <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">TXMPMeta::GetProperty()</a></code> and <code><a class="el" href="classTXMPMeta.html#a1dfd6a08ebfd1a6364b3a7b6584bcc28" title="SetProperty() creates or sets a property value.">TXMPMeta::SetProperty()</a></code>, except that the value is returned or provided in binary form instead of as a UTF-8 string. <code><a class="el" href="classTXMPUtils.html" title="API for access to the XMP Toolkit utility services.">TXMPUtils</a></code> provides functions for converting between binary and string values. Use the path composition functions in <code><a class="el" href="classTXMPUtils.html" title="API for access to the XMP Toolkit utility services.">TXMPUtils</a></code> to compose complex path expressions for fields or items in nested structures or arrays, or for qualifiers. </p>
-</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#adcf8a1959a8bd42641a42cbd4d64a5b7">GetProperty_Bool</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, bool *propValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *options) const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#adcf8a1959a8bd42641a42cbd4d64a5b7" title="GetProperty_Bool() retrieves the value of a Boolean property as a C++ bool.">GetProperty_Bool()</a></code> retrieves the value of a Boolean property as a C++ bool. <a href="#adcf8a1959a8bd42641a42cbd4d64a5b7"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#ae4e8ee4cc7441bb9464dac87f2d74650">GetProperty_Int</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, XMP_Int32 *propValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *options) const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#ae4e8ee4cc7441bb9464dac87f2d74650" title="GetProperty_Int() retrieves the value of an integer property as a C long integer...">GetProperty_Int()</a></code> retrieves the value of an integer property as a C long integer. <a href="#ae4e8ee4cc7441bb9464dac87f2d74650"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#af91fa4bc4f51a56e35bcfb554783b050">GetProperty_Int64</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, XMP_Int64 *propValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *options) const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#af91fa4bc4f51a56e35bcfb554783b050" title="GetProperty_Int64() retrieves the value of an integer property as a C long long integer...">GetProperty_Int64()</a></code> retrieves the value of an integer property as a C long long integer. <a href="#af91fa4bc4f51a56e35bcfb554783b050"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a7708c31c9af3e740b27a4893dcd9aa47">GetProperty_Float</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, double *propValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *options) const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a7708c31c9af3e740b27a4893dcd9aa47" title="GetProperty_Float() retrieves the value of a floating-point property as a C double...">GetProperty_Float()</a></code> retrieves the value of a floating-point property as a C double float. <a href="#a7708c31c9af3e740b27a4893dcd9aa47"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a2f561295e73047ee90765558d29bd650">GetProperty_Date</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, <a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *propValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *options) const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a2f561295e73047ee90765558d29bd650" title="GetProperty_Date() retrieves the value of a date-time property as an XMP_DateTime...">GetProperty_Date()</a></code> retrieves the value of a date-time property as an <code><a class="el" href="structXMP__DateTime.html" title="The expanded type for a date and time.">XMP_DateTime</a></code> structure. <a href="#a2f561295e73047ee90765558d29bd650"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a9521e3838272ec501ffdb60ff3eb482f">SetProperty_Bool</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, bool propValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a9521e3838272ec501ffdb60ff3eb482f" title="SetProperty_Bool() sets the value of a Boolean property using a C++ bool.">SetProperty_Bool()</a></code> sets the value of a Boolean property using a C++ bool. <a href="#a9521e3838272ec501ffdb60ff3eb482f"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a489e10a6686aa813ee437e93ab2c5943">SetProperty_Int</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, XMP_Int32 propValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a489e10a6686aa813ee437e93ab2c5943" title="SetProperty_Int() sets the value of an integer property using a C long integer.">SetProperty_Int()</a></code> sets the value of an integer property using a C long integer. <a href="#a489e10a6686aa813ee437e93ab2c5943"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a7f749be7699890bbaa2e2dbd05d45a90">SetProperty_Int64</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, XMP_Int64 propValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a7f749be7699890bbaa2e2dbd05d45a90" title="SetProperty_Int64() sets the value of an integer property using a C long long integer...">SetProperty_Int64()</a></code> sets the value of an integer property using a C long long integer. <a href="#a7f749be7699890bbaa2e2dbd05d45a90"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a3b0f2f6bae57931ea96775f03608c0ed">SetProperty_Float</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, double propValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a3b0f2f6bae57931ea96775f03608c0ed" title="SetProperty_Float() sets the value of a floating-point property using a C double...">SetProperty_Float()</a></code> sets the value of a floating-point property using a C double float. <a href="#a3b0f2f6bae57931ea96775f03608c0ed"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#aeee10669445f77139d5634199ff01079">SetProperty_Date</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, const <a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> &amp;propValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#aeee10669445f77139d5634199ff01079" title="SetProperty_Date() sets the value of a date/time property using an XMP_DateTime structure...">SetProperty_Date()</a></code> sets the value of a date/time property using an <code><a class="el" href="structXMP__DateTime.html" title="The expanded type for a date and time.">XMP_DateTime</a></code> structure. <a href="#aeee10669445f77139d5634199ff01079"></a><br/></td></tr>
+<tr class="memitem:adcf8a1959a8bd42641a42cbd4d64a5b7"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#adcf8a1959a8bd42641a42cbd4d64a5b7">GetProperty_Bool</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, bool *propValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *options) const </td></tr>
+<tr class="memdesc:adcf8a1959a8bd42641a42cbd4d64a5b7"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#adcf8a1959a8bd42641a42cbd4d64a5b7" title="GetProperty_Bool() retrieves the value of a Boolean property as a C++ bool. ">GetProperty_Bool()</a></code> retrieves the value of a Boolean property as a C++ bool. <a href="#adcf8a1959a8bd42641a42cbd4d64a5b7">More...</a><br /></td></tr>
+<tr class="separator:adcf8a1959a8bd42641a42cbd4d64a5b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae4e8ee4cc7441bb9464dac87f2d74650"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#ae4e8ee4cc7441bb9464dac87f2d74650">GetProperty_Int</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, XMP_Int32 *propValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *options) const </td></tr>
+<tr class="memdesc:ae4e8ee4cc7441bb9464dac87f2d74650"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#ae4e8ee4cc7441bb9464dac87f2d74650" title="GetProperty_Int() retrieves the value of an integer property as a C long integer. ...">GetProperty_Int()</a></code> retrieves the value of an integer property as a C long integer. <a href="#ae4e8ee4cc7441bb9464dac87f2d74650">More...</a><br /></td></tr>
+<tr class="separator:ae4e8ee4cc7441bb9464dac87f2d74650"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af91fa4bc4f51a56e35bcfb554783b050"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#af91fa4bc4f51a56e35bcfb554783b050">GetProperty_Int64</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, XMP_Int64 *propValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *options) const </td></tr>
+<tr class="memdesc:af91fa4bc4f51a56e35bcfb554783b050"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#af91fa4bc4f51a56e35bcfb554783b050" title="GetProperty_Int64() retrieves the value of an integer property as a C long long integer. ">GetProperty_Int64()</a></code> retrieves the value of an integer property as a C long long integer. <a href="#af91fa4bc4f51a56e35bcfb554783b050">More...</a><br /></td></tr>
+<tr class="separator:af91fa4bc4f51a56e35bcfb554783b050"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7708c31c9af3e740b27a4893dcd9aa47"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a7708c31c9af3e740b27a4893dcd9aa47">GetProperty_Float</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, double *propValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *options) const </td></tr>
+<tr class="memdesc:a7708c31c9af3e740b27a4893dcd9aa47"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a7708c31c9af3e740b27a4893dcd9aa47" title="GetProperty_Float() retrieves the value of a floating-point property as a C double float...">GetProperty_Float()</a></code> retrieves the value of a floating-point property as a C double float. <a href="#a7708c31c9af3e740b27a4893dcd9aa47">More...</a><br /></td></tr>
+<tr class="separator:a7708c31c9af3e740b27a4893dcd9aa47"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2f561295e73047ee90765558d29bd650"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a2f561295e73047ee90765558d29bd650">GetProperty_Date</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, <a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *propValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *options) const </td></tr>
+<tr class="memdesc:a2f561295e73047ee90765558d29bd650"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a2f561295e73047ee90765558d29bd650" title="GetProperty_Date() retrieves the value of a date-time property as an XMP_DateTime structure...">GetProperty_Date()</a></code> retrieves the value of a date-time property as an <code><a class="el" href="structXMP__DateTime.html" title="The expanded type for a date and time. ">XMP_DateTime</a></code> structure. <a href="#a2f561295e73047ee90765558d29bd650">More...</a><br /></td></tr>
+<tr class="separator:a2f561295e73047ee90765558d29bd650"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9521e3838272ec501ffdb60ff3eb482f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a9521e3838272ec501ffdb60ff3eb482f">SetProperty_Bool</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, bool propValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
+<tr class="memdesc:a9521e3838272ec501ffdb60ff3eb482f"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a9521e3838272ec501ffdb60ff3eb482f" title="SetProperty_Bool() sets the value of a Boolean property using a C++ bool. ">SetProperty_Bool()</a></code> sets the value of a Boolean property using a C++ bool. <a href="#a9521e3838272ec501ffdb60ff3eb482f">More...</a><br /></td></tr>
+<tr class="separator:a9521e3838272ec501ffdb60ff3eb482f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a489e10a6686aa813ee437e93ab2c5943"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a489e10a6686aa813ee437e93ab2c5943">SetProperty_Int</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, XMP_Int32 propValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
+<tr class="memdesc:a489e10a6686aa813ee437e93ab2c5943"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a489e10a6686aa813ee437e93ab2c5943" title="SetProperty_Int() sets the value of an integer property using a C long integer. ">SetProperty_Int()</a></code> sets the value of an integer property using a C long integer. <a href="#a489e10a6686aa813ee437e93ab2c5943">More...</a><br /></td></tr>
+<tr class="separator:a489e10a6686aa813ee437e93ab2c5943"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7f749be7699890bbaa2e2dbd05d45a90"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a7f749be7699890bbaa2e2dbd05d45a90">SetProperty_Int64</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, XMP_Int64 propValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
+<tr class="memdesc:a7f749be7699890bbaa2e2dbd05d45a90"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a7f749be7699890bbaa2e2dbd05d45a90" title="SetProperty_Int64() sets the value of an integer property using a C long long integer. ">SetProperty_Int64()</a></code> sets the value of an integer property using a C long long integer. <a href="#a7f749be7699890bbaa2e2dbd05d45a90">More...</a><br /></td></tr>
+<tr class="separator:a7f749be7699890bbaa2e2dbd05d45a90"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3b0f2f6bae57931ea96775f03608c0ed"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a3b0f2f6bae57931ea96775f03608c0ed">SetProperty_Float</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, double propValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
+<tr class="memdesc:a3b0f2f6bae57931ea96775f03608c0ed"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a3b0f2f6bae57931ea96775f03608c0ed" title="SetProperty_Float() sets the value of a floating-point property using a C double float. ">SetProperty_Float()</a></code> sets the value of a floating-point property using a C double float. <a href="#a3b0f2f6bae57931ea96775f03608c0ed">More...</a><br /></td></tr>
+<tr class="separator:a3b0f2f6bae57931ea96775f03608c0ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeee10669445f77139d5634199ff01079"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#aeee10669445f77139d5634199ff01079">SetProperty_Date</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, const <a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> &amp;propValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
+<tr class="memdesc:aeee10669445f77139d5634199ff01079"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#aeee10669445f77139d5634199ff01079" title="SetProperty_Date() sets the value of a date/time property using an XMP_DateTime structure. ">SetProperty_Date()</a></code> sets the value of a date/time property using an <code><a class="el" href="structXMP__DateTime.html" title="The expanded type for a date and time. ">XMP_DateTime</a></code> structure. <a href="#aeee10669445f77139d5634199ff01079">More...</a><br /></td></tr>
+<tr class="separator:aeee10669445f77139d5634199ff01079"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Accessing localized text (alt-text) properties.</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpc93aa577858c4c77e566e020733c7e2a"></a> Localized text properties are stored in alt-text arrays. They allow multiple concurrent localizations of a property value, for example a document title or copyright in several languages.</p>
-<p>These functions provide convenient support for localized text properties, including a number of special and obscure aspects. The most important aspect of these functions is that they select an appropriate array item based on one or two RFC 3066 language tags. One of these languages, the "specific" language, is preferred and selected if there is an exact match. For many languages it is also possible to define a "generic" language that can be used if there is no specific language match. The generic language must be a valid RFC 3066 primary subtag, or the empty string.</p>
-<p>For example, a specific language of "en-US" should be used in the US, and a specific language of "en-UK" should be used in England. It is also appropriate to use "en" as the generic language in each case. If a US document goes to England, the "en-US" title is selected by using the "en" generic language and the "en-UK" specific language.</p>
-<p>It is considered poor practice, but allowed, to pass a specific language that is just an RFC 3066 primary tag. For example "en" is not a good specific language, it should only be used as a generic language. Passing "i" or "x" as the generic language is also considered poor practice but allowed.</p>
-<p>Advice from the W3C about the use of RFC 3066 language tags can be found at: </p>
-<ul>
-<li><a href="http://www.w3.org/International/articles/language-tags/">http://www.w3.org/International/articles/language-tags/</a></li>
-</ul>
-<dl class="note"><dt><b>Note:</b></dt><dd>RFC 3066 language tags must be treated in a case insensitive manner. The XMP toolkit does this by normalizing their capitalization: <ul>
-<li>The primary subtag is lower case, the suggested practice of ISO 639. </li>
-<li>All 2 letter secondary subtags are upper case, the suggested practice of ISO 3166. </li>
-<li>All other subtags are lower case.</li>
-</ul>
-The XMP specification defines an artificial language, "x-default", that is used to explicitly denote a default item in an alt-text array. The XMP toolkit normalizes alt-text arrays such that the x-default item is the first item. The <code><a class="el" href="classTXMPMeta.html#af9531b949a462f5663b1f3fd99464c19" title="SetLocalizedText() modifies the value of a selected item in an alt-text array.">SetLocalizedText()</a></code> function has several special features related to the x-default item, see its description for details. </dd></dl>
-</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#aeefe49bbf669770d769f4fe0ea566bd0">GetLocalizedText</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> altTextName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> genericLang, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> specificLang, tStringObj *actualLang, tStringObj *itemValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *options) const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#aeefe49bbf669770d769f4fe0ea566bd0" title="GetLocalizedText() retrieves information about a selected item in an alt-text array...">GetLocalizedText()</a></code> retrieves information about a selected item in an alt-text array. <a href="#aeefe49bbf669770d769f4fe0ea566bd0"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#af9531b949a462f5663b1f3fd99464c19">SetLocalizedText</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> altTextName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> genericLang, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> specificLang, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> itemValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#af9531b949a462f5663b1f3fd99464c19" title="SetLocalizedText() modifies the value of a selected item in an alt-text array.">SetLocalizedText()</a></code> modifies the value of a selected item in an alt-text array. <a href="#af9531b949a462f5663b1f3fd99464c19"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a81273a152fb7b19e99c62ee39bf723f2">SetLocalizedText</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> altTextName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> genericLang, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> specificLang, const tStringObj &amp;itemValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#af9531b949a462f5663b1f3fd99464c19" title="SetLocalizedText() modifies the value of a selected item in an alt-text array.">SetLocalizedText()</a></code> modifies the value of a selected item in an alt-text array using a string object. <a href="#a81273a152fb7b19e99c62ee39bf723f2"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#aeb7679e92b126800b7bd906acb2f26e8">DeleteLocalizedText</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> altTextName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> genericLang, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> specificLang)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#aeb7679e92b126800b7bd906acb2f26e8" title="DeleteLocalizedText() deletes specific language alternatives from an alt-text array...">DeleteLocalizedText()</a></code> deletes specific language alternatives from an alt-text array. <a href="#aeb7679e92b126800b7bd906acb2f26e8"></a><br/></td></tr>
+<tr class="memitem:aeefe49bbf669770d769f4fe0ea566bd0"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#aeefe49bbf669770d769f4fe0ea566bd0">GetLocalizedText</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> altTextName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> genericLang, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> specificLang, tStringObj *actualLang, tStringObj *itemValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *options) const </td></tr>
+<tr class="memdesc:aeefe49bbf669770d769f4fe0ea566bd0"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#aeefe49bbf669770d769f4fe0ea566bd0" title="GetLocalizedText() retrieves information about a selected item in an alt-text array. ">GetLocalizedText()</a></code> retrieves information about a selected item in an alt-text array. <a href="#aeefe49bbf669770d769f4fe0ea566bd0">More...</a><br /></td></tr>
+<tr class="separator:aeefe49bbf669770d769f4fe0ea566bd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af9531b949a462f5663b1f3fd99464c19"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#af9531b949a462f5663b1f3fd99464c19">SetLocalizedText</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> altTextName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> genericLang, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> specificLang, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> itemValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
+<tr class="memdesc:af9531b949a462f5663b1f3fd99464c19"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#af9531b949a462f5663b1f3fd99464c19" title="SetLocalizedText() modifies the value of a selected item in an alt-text array. ">SetLocalizedText()</a></code> modifies the value of a selected item in an alt-text array. <a href="#af9531b949a462f5663b1f3fd99464c19">More...</a><br /></td></tr>
+<tr class="separator:af9531b949a462f5663b1f3fd99464c19"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a81273a152fb7b19e99c62ee39bf723f2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a81273a152fb7b19e99c62ee39bf723f2">SetLocalizedText</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> altTextName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> genericLang, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> specificLang, const tStringObj &amp;itemValue, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
+<tr class="memdesc:a81273a152fb7b19e99c62ee39bf723f2"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#af9531b949a462f5663b1f3fd99464c19" title="SetLocalizedText() modifies the value of a selected item in an alt-text array. ">SetLocalizedText()</a></code> modifies the value of a selected item in an alt-text array using a string object. <a href="#a81273a152fb7b19e99c62ee39bf723f2">More...</a><br /></td></tr>
+<tr class="separator:a81273a152fb7b19e99c62ee39bf723f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeb7679e92b126800b7bd906acb2f26e8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#aeb7679e92b126800b7bd906acb2f26e8">DeleteLocalizedText</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> altTextName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> genericLang, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> specificLang)</td></tr>
+<tr class="memdesc:aeb7679e92b126800b7bd906acb2f26e8"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#aeb7679e92b126800b7bd906acb2f26e8" title="DeleteLocalizedText() deletes specific language alternatives from an alt-text array. ">DeleteLocalizedText()</a></code> deletes specific language alternatives from an alt-text array. <a href="#aeb7679e92b126800b7bd906acb2f26e8">More...</a><br /></td></tr>
+<tr class="separator:aeb7679e92b126800b7bd906acb2f26e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Creating and reading serialized RDF.</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp2799bbf7ea6ed050f01b61fcfcf882fc"></a> The metadata contained in an XMP object must be serialized as RDF for storage in an XMP packet and output to a file. Similarly, metadata in the form of serialized RDF (such as metadata read from a file using <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file.">TXMPFiles</a></code>) must be parsed into an XMP object for manipulation with the XMP Toolkit.</p>
-<p>These functions support parsing serialized RDF into an XMP object, and serializing an XMP object into RDF. The input for parsing can be any valid Unicode encoding. ISO Latin-1 is also recognized, but its use is strongly discouraged. Serialization is always as UTF-8. </p>
-</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a7b383f5b357fff040cdbde82f4f43f26">ParseFromBuffer</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> buffer, <a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> bufferSize, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a7b383f5b357fff040cdbde82f4f43f26" title="ParseFromBuffer() parses RDF from a series of input buffers into this XMP object...">ParseFromBuffer()</a></code> parses RDF from a series of input buffers into this XMP object. <a href="#a7b383f5b357fff040cdbde82f4f43f26"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a2774a6f15ae22f0002201b58c46bfb49">SerializeToBuffer</a> (tStringObj *rdfString, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, <a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> padding, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> newline, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> indent=&quot;&quot;, <a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a> baseIndent=0) const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a2774a6f15ae22f0002201b58c46bfb49" title="SerializeToBuffer() serializes metadata in this XMP object into a string as RDF.">SerializeToBuffer()</a></code> serializes metadata in this XMP object into a string as RDF. <a href="#a2774a6f15ae22f0002201b58c46bfb49"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a0d98bc15bdb0f45737b15fc6822f3bc6">SerializeToBuffer</a> (tStringObj *rdfString, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0, <a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> padding=0) const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a2774a6f15ae22f0002201b58c46bfb49" title="SerializeToBuffer() serializes metadata in this XMP object into a string as RDF.">SerializeToBuffer()</a></code> serializes metadata in this XMP object into a string as RDF. <a href="#a0d98bc15bdb0f45737b15fc6822f3bc6"></a><br/></td></tr>
+<tr class="memitem:a7b383f5b357fff040cdbde82f4f43f26"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a7b383f5b357fff040cdbde82f4f43f26">ParseFromBuffer</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> buffer, <a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> bufferSize, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
+<tr class="memdesc:a7b383f5b357fff040cdbde82f4f43f26"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a7b383f5b357fff040cdbde82f4f43f26" title="ParseFromBuffer() parses RDF from a series of input buffers into this XMP object. ...">ParseFromBuffer()</a></code> parses RDF from a series of input buffers into this XMP object. <a href="#a7b383f5b357fff040cdbde82f4f43f26">More...</a><br /></td></tr>
+<tr class="separator:a7b383f5b357fff040cdbde82f4f43f26"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2774a6f15ae22f0002201b58c46bfb49"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a2774a6f15ae22f0002201b58c46bfb49">SerializeToBuffer</a> (tStringObj *rdfString, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, <a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> padding, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> newline, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> indent=&quot;&quot;, <a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a> baseIndent=0) const </td></tr>
+<tr class="memdesc:a2774a6f15ae22f0002201b58c46bfb49"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a2774a6f15ae22f0002201b58c46bfb49" title="SerializeToBuffer() serializes metadata in this XMP object into a string as RDF. ">SerializeToBuffer()</a></code> serializes metadata in this XMP object into a string as RDF. <a href="#a2774a6f15ae22f0002201b58c46bfb49">More...</a><br /></td></tr>
+<tr class="separator:a2774a6f15ae22f0002201b58c46bfb49"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0d98bc15bdb0f45737b15fc6822f3bc6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a0d98bc15bdb0f45737b15fc6822f3bc6">SerializeToBuffer</a> (tStringObj *rdfString, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0, <a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> padding=0) const </td></tr>
+<tr class="memdesc:a0d98bc15bdb0f45737b15fc6822f3bc6"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a2774a6f15ae22f0002201b58c46bfb49" title="SerializeToBuffer() serializes metadata in this XMP object into a string as RDF. ">SerializeToBuffer()</a></code> serializes metadata in this XMP object into a string as RDF. <a href="#a0d98bc15bdb0f45737b15fc6822f3bc6">More...</a><br /></td></tr>
+<tr class="separator:a0d98bc15bdb0f45737b15fc6822f3bc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Helper functions.</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp0e62d0b82e7a9f3eea5354470444124f"></a> </p>
-</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#afbfebded0b85b08bd9c5ba0d7dae07e0">GetInternalRef</a> () const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieves an internal reference that can be safely passed across DLL boundaries and reconstructed. <a href="#afbfebded0b85b08bd9c5ba0d7dae07e0"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#ab0d179ed95487d4fd4f2680c1fbe0d40">GetObjectName</a> (tStringObj *name) const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#ab0d179ed95487d4fd4f2680c1fbe0d40" title="GetObjectName() retrieves the client-assigned name of this XMP object.">GetObjectName()</a></code> retrieves the client-assigned name of this XMP object. <a href="#ab0d179ed95487d4fd4f2680c1fbe0d40"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#acf1935be8e4849976dfc02325424960a">SetObjectName</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> name)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#acf1935be8e4849976dfc02325424960a" title="SetObjectName() assigns a name to this XMP object.">SetObjectName()</a></code> assigns a name to this XMP object. <a href="#acf1935be8e4849976dfc02325424960a"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#afd059cc7cd9f906e12dab04e380e495c">SetObjectName</a> (tStringObj name)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#acf1935be8e4849976dfc02325424960a" title="SetObjectName() assigns a name to this XMP object.">SetObjectName()</a></code> assigns a name to this XMP object. <a href="#afd059cc7cd9f906e12dab04e380e495c"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a8ac5a02a13d439ff33ed4431986da681">Sort</a> ()</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a8ac5a02a13d439ff33ed4431986da681" title="Sort() sorts the data model tree of an XMP object.">Sort()</a></code> sorts the data model tree of an XMP object. <a href="#a8ac5a02a13d439ff33ed4431986da681"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adf57895625ad118782ed48a3931848b7"></a><!-- doxytag: member="TXMPMeta::Erase" ref="adf57895625ad118782ed48a3931848b7" args="()" -->
-void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#adf57895625ad118782ed48a3931848b7">Erase</a> ()</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#adf57895625ad118782ed48a3931848b7" title="Erase() restores the object to a &quot;just constructed&quot; state.">Erase()</a></code> restores the object to a "just constructed" state. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTXMPMeta.html">TXMPMeta</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a6ca653436995bbb76315efe7934afd4c">Clone</a> (<a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0) const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a6ca653436995bbb76315efe7934afd4c" title="Clone() creates a deep copy of an XMP object.">Clone()</a></code> creates a deep copy of an XMP object. <a href="#a6ca653436995bbb76315efe7934afd4c"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#ab79aae864b3ce190d0699252f48e0acc">CountArrayItems</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName) const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#ab79aae864b3ce190d0699252f48e0acc" title="CountArrayItems() reports the number of items currently defined in an array.">CountArrayItems()</a></code> reports the number of items currently defined in an array. <a href="#ab79aae864b3ce190d0699252f48e0acc"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Const_8h.html#a05b81829c04746826f4f85fbac76e3dd">XMP_Status</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a466fa349c9765f39ca6b1450908e769f">DumpObject</a> (<a class="el" href="XMP__Const_8h.html#a8ce3570e6e5ac14cd603e96fa9d2936f">XMP_TextOutputProc</a> outProc, void *clientData) const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a466fa349c9765f39ca6b1450908e769f" title="DumpObject() outputs the content of an XMP object to a callback handler for debugging...">DumpObject()</a></code> outputs the content of an XMP object to a callback handler for debugging. <a href="#a466fa349c9765f39ca6b1450908e769f"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0bfc04142a35671a4c8989fcaca6d6c2"></a><!-- doxytag: member="TXMPMeta::GetObjectOptions" ref="a0bfc04142a35671a4c8989fcaca6d6c2" args="() const " -->
-<a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a0bfc04142a35671a4c8989fcaca6d6c2">GetObjectOptions</a> () const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Not implemented. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a92055b3ae18dfd5e5491108f59318f17"></a><!-- doxytag: member="TXMPMeta::SetObjectOptions" ref="a92055b3ae18dfd5e5491108f59318f17" args="(XMP_OptionBits options)" -->
-void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a92055b3ae18dfd5e5491108f59318f17">SetObjectOptions</a> (<a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Not implemented. <br/></td></tr>
-<tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr>
+<tr class="memitem:afbfebded0b85b08bd9c5ba0d7dae07e0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#afbfebded0b85b08bd9c5ba0d7dae07e0">GetInternalRef</a> () const </td></tr>
+<tr class="memdesc:afbfebded0b85b08bd9c5ba0d7dae07e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves an internal reference that can be safely passed across DLL boundaries and reconstructed. <a href="#afbfebded0b85b08bd9c5ba0d7dae07e0">More...</a><br /></td></tr>
+<tr class="separator:afbfebded0b85b08bd9c5ba0d7dae07e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab0d179ed95487d4fd4f2680c1fbe0d40"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#ab0d179ed95487d4fd4f2680c1fbe0d40">GetObjectName</a> (tStringObj *name) const </td></tr>
+<tr class="memdesc:ab0d179ed95487d4fd4f2680c1fbe0d40"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#ab0d179ed95487d4fd4f2680c1fbe0d40" title="GetObjectName() retrieves the client-assigned name of this XMP object. ">GetObjectName()</a></code> retrieves the client-assigned name of this XMP object. <a href="#ab0d179ed95487d4fd4f2680c1fbe0d40">More...</a><br /></td></tr>
+<tr class="separator:ab0d179ed95487d4fd4f2680c1fbe0d40"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acf1935be8e4849976dfc02325424960a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#acf1935be8e4849976dfc02325424960a">SetObjectName</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> name)</td></tr>
+<tr class="memdesc:acf1935be8e4849976dfc02325424960a"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#acf1935be8e4849976dfc02325424960a" title="SetObjectName() assigns a name to this XMP object. ">SetObjectName()</a></code> assigns a name to this XMP object. <a href="#acf1935be8e4849976dfc02325424960a">More...</a><br /></td></tr>
+<tr class="separator:acf1935be8e4849976dfc02325424960a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd059cc7cd9f906e12dab04e380e495c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#afd059cc7cd9f906e12dab04e380e495c">SetObjectName</a> (tStringObj name)</td></tr>
+<tr class="memdesc:afd059cc7cd9f906e12dab04e380e495c"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#acf1935be8e4849976dfc02325424960a" title="SetObjectName() assigns a name to this XMP object. ">SetObjectName()</a></code> assigns a name to this XMP object. <a href="#afd059cc7cd9f906e12dab04e380e495c">More...</a><br /></td></tr>
+<tr class="separator:afd059cc7cd9f906e12dab04e380e495c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8ac5a02a13d439ff33ed4431986da681"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a8ac5a02a13d439ff33ed4431986da681">Sort</a> ()</td></tr>
+<tr class="memdesc:a8ac5a02a13d439ff33ed4431986da681"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a8ac5a02a13d439ff33ed4431986da681" title="Sort() sorts the data model tree of an XMP object. ">Sort()</a></code> sorts the data model tree of an XMP object. <a href="#a8ac5a02a13d439ff33ed4431986da681">More...</a><br /></td></tr>
+<tr class="separator:a8ac5a02a13d439ff33ed4431986da681"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adf57895625ad118782ed48a3931848b7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#adf57895625ad118782ed48a3931848b7">Erase</a> ()</td></tr>
+<tr class="memdesc:adf57895625ad118782ed48a3931848b7"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#adf57895625ad118782ed48a3931848b7" title="Erase() restores the object to a &quot;just constructed&quot; state. ">Erase()</a></code> restores the object to a "just constructed" state. <a href="#adf57895625ad118782ed48a3931848b7">More...</a><br /></td></tr>
+<tr class="separator:adf57895625ad118782ed48a3931848b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6ca653436995bbb76315efe7934afd4c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTXMPMeta.html">TXMPMeta</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a6ca653436995bbb76315efe7934afd4c">Clone</a> (<a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0) const </td></tr>
+<tr class="memdesc:a6ca653436995bbb76315efe7934afd4c"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a6ca653436995bbb76315efe7934afd4c" title="Clone() creates a deep copy of an XMP object. ">Clone()</a></code> creates a deep copy of an XMP object. <a href="#a6ca653436995bbb76315efe7934afd4c">More...</a><br /></td></tr>
+<tr class="separator:a6ca653436995bbb76315efe7934afd4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab79aae864b3ce190d0699252f48e0acc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#ab79aae864b3ce190d0699252f48e0acc">CountArrayItems</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName) const </td></tr>
+<tr class="memdesc:ab79aae864b3ce190d0699252f48e0acc"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#ab79aae864b3ce190d0699252f48e0acc" title="CountArrayItems() reports the number of items currently defined in an array. ">CountArrayItems()</a></code> reports the number of items currently defined in an array. <a href="#ab79aae864b3ce190d0699252f48e0acc">More...</a><br /></td></tr>
+<tr class="separator:ab79aae864b3ce190d0699252f48e0acc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a466fa349c9765f39ca6b1450908e769f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Const_8h.html#a05b81829c04746826f4f85fbac76e3dd">XMP_Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a466fa349c9765f39ca6b1450908e769f">DumpObject</a> (<a class="el" href="XMP__Const_8h.html#aa55bae1e6be4ddcefbaf214942e5b272">XMP_TextOutputProc</a> outProc, void *clientData) const </td></tr>
+<tr class="memdesc:a466fa349c9765f39ca6b1450908e769f"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a466fa349c9765f39ca6b1450908e769f" title="DumpObject() outputs the content of an XMP object to a callback handler for debugging. ">DumpObject()</a></code> outputs the content of an XMP object to a callback handler for debugging. <a href="#a466fa349c9765f39ca6b1450908e769f">More...</a><br /></td></tr>
+<tr class="separator:a466fa349c9765f39ca6b1450908e769f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0bfc04142a35671a4c8989fcaca6d6c2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a0bfc04142a35671a4c8989fcaca6d6c2">GetObjectOptions</a> () const </td></tr>
+<tr class="memdesc:a0bfc04142a35671a4c8989fcaca6d6c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Not implemented. <a href="#a0bfc04142a35671a4c8989fcaca6d6c2">More...</a><br /></td></tr>
+<tr class="separator:a0bfc04142a35671a4c8989fcaca6d6c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a92055b3ae18dfd5e5491108f59318f17"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a92055b3ae18dfd5e5491108f59318f17">SetObjectOptions</a> (<a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options)</td></tr>
+<tr class="memdesc:a92055b3ae18dfd5e5491108f59318f17"><td class="mdescLeft">&#160;</td><td class="mdescRight">Not implemented. <a href="#a92055b3ae18dfd5e5491108f59318f17">More...</a><br /></td></tr>
+<tr class="separator:a92055b3ae18dfd5e5491108f59318f17"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">Initialization and termination</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp9dc126b6914be34103027a21c1233dfa"></a> </p>
-</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a5415cfc01a9cb8786939246571a23a9d">GetVersionInfo</a> (<a class="el" href="structXMP__VersionInfo.html">XMP_VersionInfo</a> *info)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a5415cfc01a9cb8786939246571a23a9d" title="GetVersionInfo() retrieves runtime version information.">GetVersionInfo()</a></code> retrieves runtime version information. <a href="#a5415cfc01a9cb8786939246571a23a9d"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">*static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#af1defbb73f919eae06456a655dea726c">Initialize</a> ()</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#af1defbb73f919eae06456a655dea726c" title="Initialize() explicitly initializes the XMP Toolkit before use. */">Initialize()</a></code> explicitly initializes the XMP Toolkit before use. */ <a href="#af1defbb73f919eae06456a655dea726c"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a6c30fae26173167958b6f0da95a53865">Terminate</a> ()</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a6c30fae26173167958b6f0da95a53865" title="Terminate() explicitly terminates usage of the XMP Toolkit.">Terminate()</a></code> explicitly terminates usage of the XMP Toolkit. <a href="#a6c30fae26173167958b6f0da95a53865"></a><br/></td></tr>
+<tr class="memitem:a5415cfc01a9cb8786939246571a23a9d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a5415cfc01a9cb8786939246571a23a9d">GetVersionInfo</a> (<a class="el" href="structXMP__VersionInfo.html">XMP_VersionInfo</a> *info)</td></tr>
+<tr class="memdesc:a5415cfc01a9cb8786939246571a23a9d"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a5415cfc01a9cb8786939246571a23a9d" title="GetVersionInfo() retrieves runtime version information. ">GetVersionInfo()</a></code> retrieves runtime version information. <a href="#a5415cfc01a9cb8786939246571a23a9d">More...</a><br /></td></tr>
+<tr class="separator:a5415cfc01a9cb8786939246571a23a9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af1defbb73f919eae06456a655dea726c"><td class="memItemLeft" align="right" valign="top">*static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#af1defbb73f919eae06456a655dea726c">Initialize</a> ()</td></tr>
+<tr class="memdesc:af1defbb73f919eae06456a655dea726c"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#af1defbb73f919eae06456a655dea726c" title="Initialize() explicitly initializes the XMP Toolkit before use. */ ">Initialize()</a></code> explicitly initializes the XMP Toolkit before use. */ <a href="#af1defbb73f919eae06456a655dea726c">More...</a><br /></td></tr>
+<tr class="separator:af1defbb73f919eae06456a655dea726c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6c30fae26173167958b6f0da95a53865"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a6c30fae26173167958b6f0da95a53865">Terminate</a> ()</td></tr>
+<tr class="memdesc:a6c30fae26173167958b6f0da95a53865"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a6c30fae26173167958b6f0da95a53865" title="Terminate() explicitly terminates usage of the XMP Toolkit. ">Terminate()</a></code> explicitly terminates usage of the XMP Toolkit. <a href="#a6c30fae26173167958b6f0da95a53865">More...</a><br /></td></tr>
+<tr class="separator:a6c30fae26173167958b6f0da95a53865"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Global option flags</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp3855f599a279a495da5981e1bcd39901"></a> Global option flags affect the overall behavior of the XMP Toolkit. The available options will be declared in <code><a class="el" href="XMP__Const_8h.html" title="Common C/C++ types and constants for the XMP toolkit.">XMP_Const.h</a></code>. There are none in this version of the Toolkit. </p>
+<tr><td colspan="2"><div class="groupText"><p>Global option flags affect the overall behavior of the XMP Toolkit. The available options will be declared in <code><a class="el" href="XMP__Const_8h.html" title="Common C/C++ types and constants for the XMP toolkit. ">XMP_Const.h</a></code>. There are none in this version of the Toolkit. </p>
</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a12b2435ba039c62a164951948c016eb4">GetGlobalOptions</a> ()</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a12b2435ba039c62a164951948c016eb4" title="GetGlobalOptions() retrieves the set of global option flags. There are none in this...">GetGlobalOptions()</a></code> retrieves the set of global option flags. There are none in this version of the Toolkit. <a href="#a12b2435ba039c62a164951948c016eb4"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#ae7bb38d9b3857b08106630a386b47332">SetGlobalOptions</a> (<a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#ae7bb38d9b3857b08106630a386b47332" title="SetGlobalOptions() updates the set of global option flags. There are none in this...">SetGlobalOptions()</a></code> updates the set of global option flags. There are none in this version of the Toolkit. <a href="#ae7bb38d9b3857b08106630a386b47332"></a><br/></td></tr>
+<tr class="memitem:a12b2435ba039c62a164951948c016eb4"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a12b2435ba039c62a164951948c016eb4">GetGlobalOptions</a> ()</td></tr>
+<tr class="memdesc:a12b2435ba039c62a164951948c016eb4"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#a12b2435ba039c62a164951948c016eb4" title="GetGlobalOptions() retrieves the set of global option flags. There are none in this version of the To...">GetGlobalOptions()</a></code> retrieves the set of global option flags. There are none in this version of the Toolkit. <a href="#a12b2435ba039c62a164951948c016eb4">More...</a><br /></td></tr>
+<tr class="separator:a12b2435ba039c62a164951948c016eb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae7bb38d9b3857b08106630a386b47332"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#ae7bb38d9b3857b08106630a386b47332">SetGlobalOptions</a> (<a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options)</td></tr>
+<tr class="memdesc:ae7bb38d9b3857b08106630a386b47332"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#ae7bb38d9b3857b08106630a386b47332" title="SetGlobalOptions() updates the set of global option flags. There are none in this version of the Tool...">SetGlobalOptions()</a></code> updates the set of global option flags. There are none in this version of the Toolkit. <a href="#ae7bb38d9b3857b08106630a386b47332">More...</a><br /></td></tr>
+<tr class="separator:ae7bb38d9b3857b08106630a386b47332"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Internal data structure dump utilities</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp094d59a9125570d03fcaa29b01cea129"></a> These are debugging utilities that dump internal data structures, to be handled by client-defined callback described in <code><a class="el" href="XMP__Const_8h.html" title="Common C/C++ types and constants for the XMP toolkit.">XMP_Const.h</a></code>.</p>
-<dl class="see"><dt><b>See also:</b></dt><dd>Member function <code><a class="el" href="classTXMPMeta.html#a466fa349c9765f39ca6b1450908e769f" title="DumpObject() outputs the content of an XMP object to a callback handler for debugging...">TXMPMeta::DumpObject()</a></code> </dd></dl>
+<tr><td colspan="2"><div class="groupText"><p>These are debugging utilities that dump internal data structures, to be handled by client-defined callback described in <code><a class="el" href="XMP__Const_8h.html" title="Common C/C++ types and constants for the XMP toolkit. ">XMP_Const.h</a></code>. </p>
</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Const_8h.html#a05b81829c04746826f4f85fbac76e3dd">XMP_Status</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#aaddc5f555de57472939a41346e276817">DumpNamespaces</a> (<a class="el" href="XMP__Const_8h.html#a8ce3570e6e5ac14cd603e96fa9d2936f">XMP_TextOutputProc</a> outProc, void *clientData)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#aaddc5f555de57472939a41346e276817" title="DumpNamespaces() sends the list of registered namespace URIs and prefixes to a handler...">DumpNamespaces()</a></code> sends the list of registered namespace URIs and prefixes to a handler. <a href="#aaddc5f555de57472939a41346e276817"></a><br/></td></tr>
+<tr class="memitem:aaddc5f555de57472939a41346e276817"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Const_8h.html#a05b81829c04746826f4f85fbac76e3dd">XMP_Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#aaddc5f555de57472939a41346e276817">DumpNamespaces</a> (<a class="el" href="XMP__Const_8h.html#aa55bae1e6be4ddcefbaf214942e5b272">XMP_TextOutputProc</a> outProc, void *clientData)</td></tr>
+<tr class="memdesc:aaddc5f555de57472939a41346e276817"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#aaddc5f555de57472939a41346e276817" title="DumpNamespaces() sends the list of registered namespace URIs and prefixes to a handler. ">DumpNamespaces()</a></code> sends the list of registered namespace URIs and prefixes to a handler. <a href="#aaddc5f555de57472939a41346e276817">More...</a><br /></td></tr>
+<tr class="separator:aaddc5f555de57472939a41346e276817"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Namespace Functions</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpa18dddfa13c93888f34c9a736bbd623c"></a> Namespaces must be registered before use in namespace URI parameters or path expressions. Within the XMP Toolkit the registered namespace URIs and prefixes must be unique. Additional namespaces encountered when parsing RDF are automatically registered.</p>
+<tr><td colspan="2"><div class="groupText"><p>Namespaces must be registered before use in namespace URI parameters or path expressions. Within the XMP Toolkit the registered namespace URIs and prefixes must be unique. Additional namespaces encountered when parsing RDF are automatically registered.</p>
<p>The namespace URI should always end in an XML name separator such as '/' or '#'. This is because some forms of RDF shorthand catenate a namespace URI with an element name to form a new URI. </p>
</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">*static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#ac0368ddbaa4d689cd5b1aff1c88bb0e1">RegisterNamespace</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> namespaceURI, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> suggestedPrefix, tStringObj *registeredPrefix)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#ac0368ddbaa4d689cd5b1aff1c88bb0e1" title="RegisterNamespace() registers a namespace URI with a suggested prefix.">RegisterNamespace()</a></code> registers a namespace URI with a suggested prefix. <a href="#ac0368ddbaa4d689cd5b1aff1c88bb0e1"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#af28589472d8c0397db6cef868f2b8c97">GetNamespacePrefix</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> namespaceURI, tStringObj *namespacePrefix)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#af28589472d8c0397db6cef868f2b8c97" title="GetNamespacePrefix() obtains the prefix for a registered namespace URI, and reports...">GetNamespacePrefix()</a></code> obtains the prefix for a registered namespace URI, and reports whether the URI is registered. <a href="#af28589472d8c0397db6cef868f2b8c97"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#aa20c84e7549d0a3252fa29a1e83a757a">GetNamespaceURI</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> namespacePrefix, tStringObj *namespaceURI)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#aa20c84e7549d0a3252fa29a1e83a757a" title="GetNamespaceURI() obtains the URI for a registered namespace prefix, and reports...">GetNamespaceURI()</a></code> obtains the URI for a registered namespace prefix, and reports whether the prefix is registered. <a href="#aa20c84e7549d0a3252fa29a1e83a757a"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a3f989597e95db929676273cacd4ea09a">DeleteNamespace</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> namespaceURI)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Not implemented. <a href="#a3f989597e95db929676273cacd4ea09a"></a><br/></td></tr>
-<tr><td colspan="2"><h2>Error notifications</h2></td></tr>
-<tr><td colspan="2"><p><a class="anchor" id="amgrpb9b1c1c0b1b4992a1cbdde7ae0d6e01a"></a> From the beginning through version 5.5, XMP Tookit errors result in throwing an <code><a class="el" href="classXMP__Error.html" title="XMP Toolkit error, associates an error code with a descriptive error string.">XMP_Error</a></code> exception. For the most part exceptions were thrown early and thus API calls aborted as soon as an error was detected. Starting in version 5.5, support has been added for notifications of errors arising in calls to <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta</a></code> functions.</p>
-<p>A client can register an error notification callback function for a <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta</a></code> object. This can be done as a global default or individually to each object. The global default applies to all objects created after it is registered. Within the object there is no difference between the global default or explicitly registered callback. The callback function returns a <code>bool</code> value indicating if recovery should be attempted (true) or an exception thrown (false). If no callback is registered, a best effort at recovery and continuation will be made with an exception thrown if recovery is not possible.</p>
-<p>The number of notifications delivered for a given <a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta</a> object can be limited. This is intended to reduce chatter from multiple or cascading errors. The limit is set when the callback function is registered. This limits the number of notifications of the highest severity delivered or less. If a higher severity error occurs, the counting starts again. The limit and counting can be reset at any time, see <code>ResetErrorCallbackLimit</code>. </p>
-<br/><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a1e90e0c8cd8c5670267bb693cf3660fe">SetDefaultErrorCallback</a> (<a class="el" href="XMP__Const_8h.html#a6027ee7b7d17a0fec636f812c5346af7">XMPMeta_ErrorCallbackProc</a> proc, void *context=0, XMP_Uns32 limit=1)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classTXMPMeta.html#a1e90e0c8cd8c5670267bb693cf3660fe" title="SetDefaultErrorCallback() registers a global default error notification callback...">SetDefaultErrorCallback()</a> registers a global default error notification callback. <a href="#a1e90e0c8cd8c5670267bb693cf3660fe"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#aee41442af4f049c1d6698fc27ce854d0">SetErrorCallback</a> (<a class="el" href="XMP__Const_8h.html#a6027ee7b7d17a0fec636f812c5346af7">XMPMeta_ErrorCallbackProc</a> proc, void *context=0, XMP_Uns32 limit=1)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classTXMPMeta.html#aee41442af4f049c1d6698fc27ce854d0" title="SetErrorCallback() registers an error notification callback.">SetErrorCallback()</a> registers an error notification callback. <a href="#aee41442af4f049c1d6698fc27ce854d0"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a31c7ef089e8fadff122044afa27d200a">ResetErrorCallbackLimit</a> (XMP_Uns32 limit=1)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classTXMPMeta.html#a31c7ef089e8fadff122044afa27d200a" title="ResetErrorCallbackLimit() resets the error notification limit and counting. It has...">ResetErrorCallbackLimit()</a> resets the error notification limit and counting. It has no effect if an error notification callback function is not registered. <a href="#a31c7ef089e8fadff122044afa27d200a"></a><br/></td></tr>
+<tr class="memitem:ac0368ddbaa4d689cd5b1aff1c88bb0e1"><td class="memItemLeft" align="right" valign="top">*static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#ac0368ddbaa4d689cd5b1aff1c88bb0e1">RegisterNamespace</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> namespaceURI, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> suggestedPrefix, tStringObj *registeredPrefix)</td></tr>
+<tr class="memdesc:ac0368ddbaa4d689cd5b1aff1c88bb0e1"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#ac0368ddbaa4d689cd5b1aff1c88bb0e1" title="RegisterNamespace() registers a namespace URI with a suggested prefix. ">RegisterNamespace()</a></code> registers a namespace URI with a suggested prefix. <a href="#ac0368ddbaa4d689cd5b1aff1c88bb0e1">More...</a><br /></td></tr>
+<tr class="separator:ac0368ddbaa4d689cd5b1aff1c88bb0e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af28589472d8c0397db6cef868f2b8c97"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#af28589472d8c0397db6cef868f2b8c97">GetNamespacePrefix</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> namespaceURI, tStringObj *namespacePrefix)</td></tr>
+<tr class="memdesc:af28589472d8c0397db6cef868f2b8c97"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#af28589472d8c0397db6cef868f2b8c97" title="GetNamespacePrefix() obtains the prefix for a registered namespace URI, and reports whether the URI i...">GetNamespacePrefix()</a></code> obtains the prefix for a registered namespace URI, and reports whether the URI is registered. <a href="#af28589472d8c0397db6cef868f2b8c97">More...</a><br /></td></tr>
+<tr class="separator:af28589472d8c0397db6cef868f2b8c97"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa20c84e7549d0a3252fa29a1e83a757a"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#aa20c84e7549d0a3252fa29a1e83a757a">GetNamespaceURI</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> namespacePrefix, tStringObj *namespaceURI)</td></tr>
+<tr class="memdesc:aa20c84e7549d0a3252fa29a1e83a757a"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPMeta.html#aa20c84e7549d0a3252fa29a1e83a757a" title="GetNamespaceURI() obtains the URI for a registered namespace prefix, and reports whether the prefix i...">GetNamespaceURI()</a></code> obtains the URI for a registered namespace prefix, and reports whether the prefix is registered. <a href="#aa20c84e7549d0a3252fa29a1e83a757a">More...</a><br /></td></tr>
+<tr class="separator:aa20c84e7549d0a3252fa29a1e83a757a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3f989597e95db929676273cacd4ea09a"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a3f989597e95db929676273cacd4ea09a">DeleteNamespace</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> namespaceURI)</td></tr>
+<tr class="memdesc:a3f989597e95db929676273cacd4ea09a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Not implemented. <a href="#a3f989597e95db929676273cacd4ea09a">More...</a><br /></td></tr>
+<tr class="separator:a3f989597e95db929676273cacd4ea09a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr class="memitem:a8d607eb80edb919fe8b07efe300008d2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a8d607eb80edb919fe8b07efe300008d2">xmpRef</a></td></tr>
+<tr class="separator:a8d607eb80edb919fe8b07efe300008d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-static-methods"></a>
+Static Private Member Functions</h2></td></tr>
+<tr class="memitem:a67bbfe3f55af71a5122512ebb695e4ed"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a67bbfe3f55af71a5122512ebb695e4ed">SetClientString</a> (void *clientPtr, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> valuePtr, <a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> valueLen)</td></tr>
+<tr class="separator:a67bbfe3f55af71a5122512ebb695e4ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
+Error notifications</h2></td></tr>
+<tr class="memitem:a1e90e0c8cd8c5670267bb693cf3660fe"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a1e90e0c8cd8c5670267bb693cf3660fe">SetDefaultErrorCallback</a> (<a class="el" href="XMP__Const_8h.html#abb3c238ce96e9198ebe4260200bfb67b">XMPMeta_ErrorCallbackProc</a> proc, void *context=0, XMP_Uns32 limit=1)</td></tr>
+<tr class="memdesc:a1e90e0c8cd8c5670267bb693cf3660fe"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classTXMPMeta.html#a1e90e0c8cd8c5670267bb693cf3660fe" title="SetDefaultErrorCallback() registers a global default error notification callback. ...">SetDefaultErrorCallback()</a> registers a global default error notification callback. <a href="#a1e90e0c8cd8c5670267bb693cf3660fe">More...</a><br /></td></tr>
+<tr class="separator:a1e90e0c8cd8c5670267bb693cf3660fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aee41442af4f049c1d6698fc27ce854d0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#aee41442af4f049c1d6698fc27ce854d0">SetErrorCallback</a> (<a class="el" href="XMP__Const_8h.html#abb3c238ce96e9198ebe4260200bfb67b">XMPMeta_ErrorCallbackProc</a> proc, void *context=0, XMP_Uns32 limit=1)</td></tr>
+<tr class="memdesc:aee41442af4f049c1d6698fc27ce854d0"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classTXMPMeta.html#aee41442af4f049c1d6698fc27ce854d0" title="SetErrorCallback() registers an error notification callback. ">SetErrorCallback()</a> registers an error notification callback. <a href="#aee41442af4f049c1d6698fc27ce854d0">More...</a><br /></td></tr>
+<tr class="separator:aee41442af4f049c1d6698fc27ce854d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a31c7ef089e8fadff122044afa27d200a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPMeta.html#a31c7ef089e8fadff122044afa27d200a">ResetErrorCallbackLimit</a> (XMP_Uns32 limit=1)</td></tr>
+<tr class="memdesc:a31c7ef089e8fadff122044afa27d200a"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classTXMPMeta.html#a31c7ef089e8fadff122044afa27d200a" title="ResetErrorCallbackLimit() resets the error notification limit and counting. It has no effect if an er...">ResetErrorCallbackLimit()</a> resets the error notification limit and counting. It has no effect if an error notification callback function is not registered. <a href="#a31c7ef089e8fadff122044afa27d200a">More...</a><br /></td></tr>
+<tr class="separator:a31c7ef089e8fadff122044afa27d200a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
-<hr/><a name="_details"></a><h2>Detailed Description</h2>
-<h3>template&lt;class tStringObj&gt;<br/>
- class TXMPMeta&lt; tStringObj &gt;</h3>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><h3>template&lt;class tStringObj&gt;<br />
+class TXMPMeta&lt; tStringObj &gt;</h3>
<p>API for access to the XMP Toolkit core services. </p>
-<p><code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta</a></code> is the template class providing the core services of the XMP Toolkit. It should be instantiated with a string class such as <code>std::string</code>. Read the Toolkit Overview for information about the overall architecture of the XMP API, and the documentation for <code>XMP.hpp</code> for specific instantiation instructions.</p>
+<p><code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services. ">TXMPMeta</a></code> is the template class providing the core services of the XMP Toolkit. It should be instantiated with a string class such as <code>std::string</code>. Read the Toolkit Overview for information about the overall architecture of the XMP API, and the documentation for <code><a class="el" href="XMP_8hpp.html" title="Overall header file for the XMP Toolkit. ">XMP.hpp</a></code> for specific instantiation instructions.</p>
<p>Access these functions through the concrete class, <code>SXMPMeta</code>.</p>
-<p>You can create <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta</a></code> objects (also called XMP objects) from metadata that you construct, or that you obtain from files using the XMP Toolkit's XMPFiles component; see <code><a class="el" href="TXMPFiles_8hpp.html" title="API for access to the main (document-level) metadata in a file_.">TXMPFiles.hpp</a></code>. </p>
-<hr/><h2>Constructor &amp; Destructor Documentation</h2>
-<a class="anchor" id="a61ffb3aa3e387d8ff9c1f4ebd26606c7"></a><!-- doxytag: member="TXMPMeta::TXMPMeta" ref="a61ffb3aa3e387d8ff9c1f4ebd26606c7" args="()" -->
+<p>You can create <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services. ">TXMPMeta</a></code> objects (also called XMP objects) from metadata that you construct, or that you obtain from files using the XMP Toolkit's XMPFiles component; see <code><a class="el" href="TXMPFiles_8hpp.html" title="API for access to the main (document-level) metadata in a file_. ">TXMPFiles.hpp</a></code>. </p>
+
+<p>Definition at line <a class="el" href="TXMPMeta_8hpp_source.html#l00055">55</a> of file <a class="el" href="TXMPMeta_8hpp_source.html">TXMPMeta.hpp</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a61ffb3aa3e387d8ff9c1f4ebd26606c7"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -293,21 +321,19 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">* <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::<a class="el" href="classTXMPMeta.html">TXMPMeta</a> </td>
<td>(</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
+ <td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>Default constructor, creates an empty object. </p>
-<p>The default constructor creates a new empty <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta</a></code> object.</p>
-<dl class="return"><dt><b>Returns:</b></dt><dd>The new object. </dd></dl>
+<p>The default constructor creates a new empty <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services. ">TXMPMeta</a></code> object.</p>
+<dl class="section return"><dt>Returns</dt><dd>The new object. </dd></dl>
</div>
</div>
-<a class="anchor" id="ada43d63894350e23a4307c41b7335eca"></a><!-- doxytag: member="TXMPMeta::TXMPMeta" ref="ada43d63894350e23a4307c41b7335eca" args="(const TXMPMeta&lt; tStringObj &gt; &amp;original)" -->
+<a class="anchor" id="ada43d63894350e23a4307c41b7335eca"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -316,28 +342,26 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">* <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::<a class="el" href="classTXMPMeta.html">TXMPMeta</a> </td>
<td>(</td>
- <td class="paramtype">const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;&nbsp;</td>
- <td class="paramname"> <em>original</em></td>
- <td>&nbsp;)&nbsp;</td>
+ <td class="paramtype">const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;&#160;</td>
+ <td class="paramname"><em>original</em></td><td>)</td>
<td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>Copy constructor, creates a client object refering to the same internal object. </p>
-<p>The copy constructor creates a new <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta</a></code> object that refers to the same internal XMP object. as an existing <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta</a></code> object.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>original</em>&nbsp;</td><td>The object to copy.</td></tr>
+<p>The copy constructor creates a new <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services. ">TXMPMeta</a></code> object that refers to the same internal XMP object. as an existing <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services. ">TXMPMeta</a></code> object.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">original</td><td>The object to copy.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>The new object. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>The new object. </dd></dl>
</div>
</div>
-<a class="anchor" id="acbe8f556a5b32542c44fa9de9648ad41"></a><!-- doxytag: member="TXMPMeta::TXMPMeta" ref="acbe8f556a5b32542c44fa9de9648ad41" args="(XMPMetaRef xmpRef)" -->
+<a class="anchor" id="acbe8f556a5b32542c44fa9de9648ad41"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -346,28 +370,26 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname"><a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::<a class="el" href="classTXMPMeta.html">TXMPMeta</a> </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&nbsp;</td>
- <td class="paramname"> <em>xmpRef</em></td>
- <td>&nbsp;)&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a>&#160;</td>
+ <td class="paramname"><em>xmpRef</em></td><td>)</td>
<td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>Reconstructs an XMP object from an internal reference. </p>
-<p>This constructor creates a new <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta</a></code> object that refers to the underlying reference object of an existing <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta</a></code> object. Use to safely pass XMP objects across DLL boundaries.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>xmpRef</em>&nbsp;</td><td>The underlying reference object, obtained from some other XMP object with <code><a class="el" href="classTXMPMeta.html#afbfebded0b85b08bd9c5ba0d7dae07e0" title="Retrieves an internal reference that can be safely passed across DLL boundaries and...">TXMPMeta::GetInternalRef()</a></code>.</td></tr>
+<p>This constructor creates a new <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services. ">TXMPMeta</a></code> object that refers to the underlying reference object of an existing <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services. ">TXMPMeta</a></code> object. Use to safely pass XMP objects across DLL boundaries.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">xmpRef</td><td>The underlying reference object, obtained from some other XMP object with <code><a class="el" href="classTXMPMeta.html#afbfebded0b85b08bd9c5ba0d7dae07e0" title="Retrieves an internal reference that can be safely passed across DLL boundaries and reconstructed...">TXMPMeta::GetInternalRef()</a></code>.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>The new object. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>The new object. </dd></dl>
</div>
</div>
-<a class="anchor" id="a05199e2a4bc61db7aed207759e899bc2"></a><!-- doxytag: member="TXMPMeta::TXMPMeta" ref="a05199e2a4bc61db7aed207759e899bc2" args="(XMP_StringPtr buffer, XMP_StringLen xmpSize)" -->
+<a class="anchor" id="a05199e2a4bc61db7aed207759e899bc2"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -376,40 +398,72 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname"><a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::<a class="el" href="classTXMPMeta.html">TXMPMeta</a> </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>buffer</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a>&nbsp;</td>
- <td class="paramname"> <em>xmpSize</em></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a>&#160;</td>
+ <td class="paramname"><em>xmpSize</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>Constructs an object and parse one buffer of RDF into it. </p>
-<p>This constructor creates a new <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta</a></code> object and populates it with metadata from a buffer containing serialized RDF. This buffer must be a complete RDF parse stream.</p>
-<p>The result of passing serialized data to this function is identical to creating an empty object then calling <code><a class="el" href="classTXMPMeta.html#a7b383f5b357fff040cdbde82f4f43f26" title="ParseFromBuffer() parses RDF from a series of input buffers into this XMP object...">TXMPMeta::ParseFromBuffer()</a></code>. To use the constructor, however, the RDF must be complete. If you need to parse data from multiple buffers, create an empty object and use <code><a class="el" href="classTXMPMeta.html#a7b383f5b357fff040cdbde82f4f43f26" title="ParseFromBuffer() parses RDF from a series of input buffers into this XMP object...">TXMPMeta::ParseFromBuffer()</a></code>.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>buffer</em>&nbsp;</td><td>A pointer to the buffer of RDF to be parsed. Can be null if the length is 0; in this case, the function creates an empty object.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>xmpSize</em>&nbsp;</td><td>The length in bytes of the buffer.</td></tr>
+<p>This constructor creates a new <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services. ">TXMPMeta</a></code> object and populates it with metadata from a buffer containing serialized RDF. This buffer must be a complete RDF parse stream.</p>
+<p>The result of passing serialized data to this function is identical to creating an empty object then calling <code><a class="el" href="classTXMPMeta.html#a7b383f5b357fff040cdbde82f4f43f26" title="ParseFromBuffer() parses RDF from a series of input buffers into this XMP object. ...">TXMPMeta::ParseFromBuffer()</a></code>. To use the constructor, however, the RDF must be complete. If you need to parse data from multiple buffers, create an empty object and use <code><a class="el" href="classTXMPMeta.html#a7b383f5b357fff040cdbde82f4f43f26" title="ParseFromBuffer() parses RDF from a series of input buffers into this XMP object. ...">TXMPMeta::ParseFromBuffer()</a></code>.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">buffer</td><td>A pointer to the buffer of RDF to be parsed. Can be null if the length is 0; in this case, the function creates an empty object.</td></tr>
+ <tr><td class="paramname">xmpSize</td><td>The length in bytes of the buffer.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>The new object. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>The new object. </dd></dl>
</div>
</div>
-<hr/><h2>Member Function Documentation</h2>
-<a class="anchor" id="a4f768a8cb35cabff1cf4187aa6a88dd3"></a><!-- doxytag: member="TXMPMeta::AppendArrayItem" ref="a4f768a8cb35cabff1cf4187aa6a88dd3" args="(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_OptionBits arrayOptions, const tStringObj &amp;itemValue, XMP_OptionBits itemOptions=0)" -->
+<a class="anchor" id="abab5013870cd47eb0d9d701653735a02"></a>
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class tStringObj&gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::~<a class="el" href="classTXMPMeta.html">TXMPMeta</a> </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td align="right">throw </td><td>(</td><td colspan="2"></td>
+ </tr>
+ <tr>
+ <td align="right"></td><td>)</td><td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Destructor, typical virtual destructor. */. </p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a00d7314dc970ad390499ce9db27d314a"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -418,48 +472,58 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">void <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::AppendArrayItem </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>arrayName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>arrayName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>arrayOptions</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>arrayOptions</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">const tStringObj &amp;&nbsp;</td>
- <td class="paramname"> <em>itemValue</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>itemValue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>itemOptions</em> = <code>0</code></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>itemOptions</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#a00d7314dc970ad390499ce9db27d314a" title="AppendArrayItem() adds an item to an array, creating the array if necessary.">AppendArrayItem()</a></code> adds an item to an array using a string object value, creating the array if necessary. </p>
-<p>Overloads the basic form of the function, allowing you to pass a string object in which to return the item value. It is otherwise identical; see details in the canonical form. </p>
+<p><code><a class="el" href="classTXMPMeta.html#a00d7314dc970ad390499ce9db27d314a" title="AppendArrayItem() adds an item to an array, creating the array if necessary. ">AppendArrayItem()</a></code> adds an item to an array, creating the array if necessary. </p>
+<p>This function simplifies construction of an array by not requiring that you pre-create an empty array. The array that is assigned is created automatically if it does not yet exist. If the array exists, it must have the form specified by the options. Each call appends a new item to the array.</p>
+<p>Use <code><a class="el" href="classTXMPUtils.html#a47fa195aa2e1457aa1f74f7e1ed06da6" title="ComposeArrayItemPath() composes the path expression for an item in an array. ">TXMPUtils::ComposeArrayItemPath()</a></code> to create a complex path.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">schemaNS</td><td>The namespace URI; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>.</td></tr>
+ <tr><td class="paramname">arrayName</td><td>The name of the array. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code> for namespace prefix usage.</td></tr>
+ <tr><td class="paramname">arrayOptions</td><td>Option flags describing the array type to create; a logical OR of allowed bit-flag constants, <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5af1cdb3b0a3e852ec55e747a1686aba04" title="Implies kXMP_PropValueIsArray, item order matters. It is serialized using an rdf:Seq container...">kXMP_PropArrayIsOrdered</a></code>, <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a2596b1f0ea4600270c99102c86b5f1f1" title="Implies kXMP_PropArrayIsOrdered, items are alternates. It is serialized using an rdf:Alt container...">kXMP_PropArrayIsAlternate</a></code>, or <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aba253f67a6cf44b7438a3f96b516846d">kXMP_PropArrayIsAltText</a></code>. If the array exists, must match the existing array type or be null (0 or <code><a class="el" href="XMP__Const_8h.html#aff1df9f3cf050f8b8d3a574db3c3326b" title="Options macro clears all property-type bits. ">kXMP_NoOptions</a></code>).</td></tr>
+ <tr><td class="paramname">itemValue</td><td>The new item value, a null-terminated UTF-8 string, if the array item has a value.</td></tr>
+ <tr><td class="paramname">itemOptions</td><td>Option flags describing the item type to create; one of the bit-flag constants <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a9b7706e0f0716ac7546bdc24ffedd0bc">kXMP_PropValueIsArray</a></code> or <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e" title="The value is a structure with nested fields. ">kXMP_PropValueIsStruct</a></code> to create a complex array item. </td></tr>
+ </table>
+ </dd>
+</dl>
</div>
</div>
-<a class="anchor" id="a00d7314dc970ad390499ce9db27d314a"></a><!-- doxytag: member="TXMPMeta::AppendArrayItem" ref="a00d7314dc970ad390499ce9db27d314a" args="(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_OptionBits arrayOptions, XMP_StringPtr itemValue, XMP_OptionBits itemOptions=0)" -->
+<a class="anchor" id="a4f768a8cb35cabff1cf4187aa6a88dd3"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -468,59 +532,47 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">void <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::AppendArrayItem </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>arrayName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>arrayName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>arrayOptions</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>arrayOptions</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>itemValue</em>, </td>
+ <td class="paramtype">const tStringObj &amp;&#160;</td>
+ <td class="paramname"><em>itemValue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>itemOptions</em> = <code>0</code></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>itemOptions</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#a00d7314dc970ad390499ce9db27d314a" title="AppendArrayItem() adds an item to an array, creating the array if necessary.">AppendArrayItem()</a></code> adds an item to an array, creating the array if necessary. </p>
-<p>This function simplifies construction of an array by not requiring that you pre-create an empty array. The array that is assigned is created automatically if it does not yet exist. If the array exists, it must have the form specified by the options. Each call appends a new item to the array.</p>
-<p>Use <code><a class="el" href="classTXMPUtils.html#a47fa195aa2e1457aa1f74f7e1ed06da6" title="ComposeArrayItemPath() composes the path expression for an item in an array.">TXMPUtils::ComposeArrayItemPath()</a></code> to create a complex path.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>The namespace URI; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>arrayName</em>&nbsp;</td><td>The name of the array. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code> for namespace prefix usage.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>arrayOptions</em>&nbsp;</td><td>Option flags describing the array type to create; a logical OR of allowed bit-flag constants, <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5af1cdb3b0a3e852ec55e747a1686aba04" title="Implies kXMP_PropValueIsArray, item order matters. It is serialized using an rdf:Seq...">kXMP_PropArrayIsOrdered</a></code>, <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a2596b1f0ea4600270c99102c86b5f1f1" title="Implies kXMP_PropArrayIsOrdered, items are alternates. It is serialized using an...">kXMP_PropArrayIsAlternate</a></code>, or <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aba253f67a6cf44b7438a3f96b516846d">kXMP_PropArrayIsAltText</a></code>. If the array exists, must match the existing array type or be null (0 or <code><a class="el" href="XMP__Const_8h.html#aff1df9f3cf050f8b8d3a574db3c3326b" title="Options macro clears all property-type bits.">kXMP_NoOptions</a></code>).</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>itemValue</em>&nbsp;</td><td>The new item value, a null-terminated UTF-8 string, if the array item has a value.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>itemOptions</em>&nbsp;</td><td>Option flags describing the item type to create; one of the bit-flag constants <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a9b7706e0f0716ac7546bdc24ffedd0bc">kXMP_PropValueIsArray</a></code> or <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e" title="The value is a structure with nested fields.">kXMP_PropValueIsStruct</a></code> to create a complex array item. </td></tr>
- </table>
- </dd>
-</dl>
+<p><code><a class="el" href="classTXMPMeta.html#a00d7314dc970ad390499ce9db27d314a" title="AppendArrayItem() adds an item to an array, creating the array if necessary. ">AppendArrayItem()</a></code> adds an item to an array using a string object value, creating the array if necessary. </p>
+<p>Overloads the basic form of the function, allowing you to pass a string object in which to return the item value. It is otherwise identical; see details in the canonical form. </p>
</div>
</div>
-<a class="anchor" id="a6ca653436995bbb76315efe7934afd4c"></a><!-- doxytag: member="TXMPMeta::Clone" ref="a6ca653436995bbb76315efe7934afd4c" args="(XMP_OptionBits options=0) const " -->
+<a class="anchor" id="a6ca653436995bbb76315efe7934afd4c"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -529,36 +581,33 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname"><a class="el" href="classTXMPMeta.html">TXMPMeta</a> <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::Clone </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>options</em> = <code>0</code></td>
- <td>&nbsp;)&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em> = <code>0</code></td><td>)</td>
<td> const</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#a6ca653436995bbb76315efe7934afd4c" title="Clone() creates a deep copy of an XMP object.">Clone()</a></code> creates a deep copy of an XMP object. </p>
+<p><code><a class="el" href="classTXMPMeta.html#a6ca653436995bbb76315efe7934afd4c" title="Clone() creates a deep copy of an XMP object. ">Clone()</a></code> creates a deep copy of an XMP object. </p>
<p>Use this function to copy an entire XMP metadata tree. Assignment and copy constructors only increment a reference count, they do not do a deep copy. This function returns an object, not a pointer. The following shows correct usage:</p>
<pre>
- SXMPMeta * clone1 = new SXMPMeta ( sourceXMP.Clone() ); // This works.
- SXMPMeta clone2 ( sourceXMP.Clone ); // This works also. (Not a pointer.)
- </pre><p> The <code>clone2</code> example does not use an explicit pointer. This is good for local usage, protecting against memory leaks.</p>
-<p>This is an example of incorrect usage: </p>
-<pre>
- SXMPMeta * clone3 = &amp;sourceXMP.Clone(); // ! This does not work!
- </pre><p> The assignment to <code>clone3</code> creates a temporary object, initializes it with the clone, assigns the address of the temporary to <code>clone3</code>, then deletes the temporary.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>Option flags, not currently defined..</td></tr>
+SXMPMeta * clone1 = new SXMPMeta ( sourceXMP.Clone() ); // This works.
+SXMPMeta clone2 ( sourceXMP.Clone ); // This works also. (Not a pointer.)
+</pre><p> The <code>clone2</code> example does not use an explicit pointer. This is good for local usage, protecting against memory leaks.</p>
+<p>This is an example of incorrect usage: </p><pre>
+SXMPMeta * clone3 = &amp;sourceXMP.Clone(); // ! This does not work!
+</pre><p> The assignment to <code>clone3</code> creates a temporary object, initializes it with the clone, assigns the address of the temporary to <code>clone3</code>, then deletes the temporary.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">options</td><td>Option flags, not currently defined..</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>An XMP object cloned from the original. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>An XMP object cloned from the original. </dd></dl>
</div>
</div>
-<a class="anchor" id="ab79aae864b3ce190d0699252f48e0acc"></a><!-- doxytag: member="TXMPMeta::CountArrayItems" ref="ab79aae864b3ce190d0699252f48e0acc" args="(XMP_StringPtr schemaNS, XMP_StringPtr arrayName) const " -->
+<a class="anchor" id="ab79aae864b3ce190d0699252f48e0acc"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -567,37 +616,36 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname"><a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a> <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::CountArrayItems </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>arrayName</em></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>arrayName</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td> const</td>
+ <td></td><td> const</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#ab79aae864b3ce190d0699252f48e0acc" title="CountArrayItems() reports the number of items currently defined in an array.">CountArrayItems()</a></code> reports the number of items currently defined in an array. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>The namespace URI; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>arrayName</em>&nbsp;</td><td>The name of the array. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code> for namespace prefix usage.</td></tr>
+<p><code><a class="el" href="classTXMPMeta.html#ab79aae864b3ce190d0699252f48e0acc" title="CountArrayItems() reports the number of items currently defined in an array. ">CountArrayItems()</a></code> reports the number of items currently defined in an array. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">schemaNS</td><td>The namespace URI; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>.</td></tr>
+ <tr><td class="paramname">arrayName</td><td>The name of the array. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code> for namespace prefix usage.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>The number of items. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>The number of items. </dd></dl>
</div>
</div>
-<a class="anchor" id="abc1211f47225b5973a170ff952743264"></a><!-- doxytag: member="TXMPMeta::DeleteArrayItem" ref="abc1211f47225b5973a170ff952743264" args="(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_Index itemIndex)" -->
+<a class="anchor" id="abc1211f47225b5973a170ff952743264"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -606,44 +654,43 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">void <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::DeleteArrayItem </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>arrayName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>arrayName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a>&nbsp;</td>
- <td class="paramname"> <em>itemIndex</em></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a>&#160;</td>
+ <td class="paramname"><em>itemIndex</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#abc1211f47225b5973a170ff952743264" title="DeleteArrayItem() deletes an XMP subtree rooted at a given array item.">DeleteArrayItem()</a></code> deletes an XMP subtree rooted at a given array item. </p>
-<p>It is not an error if the array item does not exist. Use <code><a class="el" href="classTXMPUtils.html#a47fa195aa2e1457aa1f74f7e1ed06da6" title="ComposeArrayItemPath() composes the path expression for an item in an array.">TXMPUtils::ComposeArrayItemPath()</a></code> to create a complex path.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>The namespace URI for the array; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>arrayName</em>&nbsp;</td><td>The name of the array. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code> for namespace prefix usage.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>itemIndex</em>&nbsp;</td><td>The 1-based index of the desired item. Use the macro <code><a class="el" href="XMP__Const_8h.html#a9549b9a138a896257b5a70176d125317" title="Options macro accesses last array item.">kXMP_ArrayLastItem</a></code> to specify the last existing array item. </td></tr>
+<p><code><a class="el" href="classTXMPMeta.html#abc1211f47225b5973a170ff952743264" title="DeleteArrayItem() deletes an XMP subtree rooted at a given array item. ">DeleteArrayItem()</a></code> deletes an XMP subtree rooted at a given array item. </p>
+<p>It is not an error if the array item does not exist. Use <code><a class="el" href="classTXMPUtils.html#a47fa195aa2e1457aa1f74f7e1ed06da6" title="ComposeArrayItemPath() composes the path expression for an item in an array. ">TXMPUtils::ComposeArrayItemPath()</a></code> to create a complex path.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">schemaNS</td><td>The namespace URI for the array; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>.</td></tr>
+ <tr><td class="paramname">arrayName</td><td>The name of the array. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code> for namespace prefix usage.</td></tr>
+ <tr><td class="paramname">itemIndex</td><td>The 1-based index of the desired item. Use the macro <code><a class="el" href="XMP__Const_8h.html#a9549b9a138a896257b5a70176d125317" title="Options macro accesses last array item. ">kXMP_ArrayLastItem</a></code> to specify the last existing array item. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="aeb7679e92b126800b7bd906acb2f26e8"></a><!-- doxytag: member="TXMPMeta::DeleteLocalizedText" ref="aeb7679e92b126800b7bd906acb2f26e8" args="(XMP_StringPtr schemaNS, XMP_StringPtr altTextName, XMP_StringPtr genericLang, XMP_StringPtr specificLang)" -->
+<a class="anchor" id="aeb7679e92b126800b7bd906acb2f26e8"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -652,81 +699,86 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">void <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::DeleteLocalizedText </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>altTextName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>altTextName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>genericLang</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>genericLang</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>specificLang</em></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>specificLang</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#aeb7679e92b126800b7bd906acb2f26e8" title="DeleteLocalizedText() deletes specific language alternatives from an alt-text array...">DeleteLocalizedText()</a></code> deletes specific language alternatives from an alt-text array. </p>
-<p>The rules for finding the language value to delete are similar to those for <code><a class="el" href="classTXMPMeta.html#af9531b949a462f5663b1f3fd99464c19" title="SetLocalizedText() modifies the value of a selected item in an alt-text array.">SetLocalizedText()</a></code>.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>The namespace URI for the alt-text array; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>altTextName</em>&nbsp;</td><td>The name of the alt-text array. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code> for namespace prefix usage.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>genericLang</em>&nbsp;</td><td>The name of the generic language as an RFC 3066 primary subtag. Can be null or the empty string if no generic language is wanted.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>specificLang</em>&nbsp;</td><td>The name of the specific language as an RFC 3066 tag, or "x-default". Must not be null or the empty string. </td></tr>
+<p><code><a class="el" href="classTXMPMeta.html#aeb7679e92b126800b7bd906acb2f26e8" title="DeleteLocalizedText() deletes specific language alternatives from an alt-text array. ">DeleteLocalizedText()</a></code> deletes specific language alternatives from an alt-text array. </p>
+<p>The rules for finding the language value to delete are similar to those for <code><a class="el" href="classTXMPMeta.html#af9531b949a462f5663b1f3fd99464c19" title="SetLocalizedText() modifies the value of a selected item in an alt-text array. ">SetLocalizedText()</a></code>.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">schemaNS</td><td>The namespace URI for the alt-text array; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>.</td></tr>
+ <tr><td class="paramname">altTextName</td><td>The name of the alt-text array. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code> for namespace prefix usage.</td></tr>
+ <tr><td class="paramname">genericLang</td><td>The name of the generic language as an RFC 3066 primary subtag. Can be null or the empty string if no generic language is wanted.</td></tr>
+ <tr><td class="paramname">specificLang</td><td>The name of the specific language as an RFC 3066 tag, or "x-default". Must not be null or the empty string. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="a3f989597e95db929676273cacd4ea09a"></a><!-- doxytag: member="TXMPMeta::DeleteNamespace" ref="a3f989597e95db929676273cacd4ea09a" args="(XMP_StringPtr namespaceURI)" -->
+<a class="anchor" id="a3f989597e95db929676273cacd4ea09a"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj&gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::DeleteNamespace </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>namespaceURI</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td><code> [static]</code></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>namespaceURI</em></td><td>)</td>
+ <td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
<p>Not implemented. </p>
<p>Deletes a namespace from the registry. Does nothing if the URI is not registered, or if the parameter is null or the empty string.</p>
<p>This function is static; make the call directly from the concrete class (<code>SXMPMeta</code>).</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>namespaceURI</em>&nbsp;</td><td>The URI for the namespace. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">namespaceURI</td><td>The URI for the namespace. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="ac8b555ba99904fa49bb4851a60cc3844"></a><!-- doxytag: member="TXMPMeta::DeleteProperty" ref="ac8b555ba99904fa49bb4851a60cc3844" args="(XMP_StringPtr schemaNS, XMP_StringPtr propName)" -->
+<a class="anchor" id="ac8b555ba99904fa49bb4851a60cc3844"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -735,37 +787,36 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">void <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::DeleteProperty </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>propName</em></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#ac8b555ba99904fa49bb4851a60cc3844" title="DeleteProperty() deletes an XMP subtree rooted at a given property.">DeleteProperty()</a></code> deletes an XMP subtree rooted at a given property. </p>
+<p><code><a class="el" href="classTXMPMeta.html#ac8b555ba99904fa49bb4851a60cc3844" title="DeleteProperty() deletes an XMP subtree rooted at a given property. ">DeleteProperty()</a></code> deletes an XMP subtree rooted at a given property. </p>
<p>It is not an error if the property does not exist.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>The namespace URI for the property; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>propName</em>&nbsp;</td><td>The name of the property; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">schemaNS</td><td>The namespace URI for the property; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>.</td></tr>
+ <tr><td class="paramname">propName</td><td>The name of the property; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="a8ce15f7de7fd3b258f07158ab5fa88be"></a><!-- doxytag: member="TXMPMeta::DeleteQualifier" ref="a8ce15f7de7fd3b258f07158ab5fa88be" args="(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_StringPtr qualNS, XMP_StringPtr qualName)" -->
+<a class="anchor" id="a8ce15f7de7fd3b258f07158ab5fa88be"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -774,51 +825,50 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">void <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::DeleteQualifier </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>propName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>qualNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>qualNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>qualName</em></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>qualName</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#a8ce15f7de7fd3b258f07158ab5fa88be" title="DeleteQualifier() deletes an XMP subtree rooted at a given qualifier.">DeleteQualifier()</a></code> deletes an XMP subtree rooted at a given qualifier. </p>
+<p><code><a class="el" href="classTXMPMeta.html#a8ce15f7de7fd3b258f07158ab5fa88be" title="DeleteQualifier() deletes an XMP subtree rooted at a given qualifier. ">DeleteQualifier()</a></code> deletes an XMP subtree rooted at a given qualifier. </p>
<p>It is not an error if the qualifier does not exist.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>The namespace URI; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>propName</em>&nbsp;</td><td>The name of the property to which the qualifier is attached. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code> for namespace prefix usage.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>qualNS</em>&nbsp;</td><td>The namespace URI for the qualifier. Same namespace and prefix usage as <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>qualName</em>&nbsp;</td><td>The name of the qualifier. Must be a single XML name, must not be null or the empty string. Same namespace and prefix usage as <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">schemaNS</td><td>The namespace URI; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>.</td></tr>
+ <tr><td class="paramname">propName</td><td>The name of the property to which the qualifier is attached. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code> for namespace prefix usage.</td></tr>
+ <tr><td class="paramname">qualNS</td><td>The namespace URI for the qualifier. Same namespace and prefix usage as <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>.</td></tr>
+ <tr><td class="paramname">qualName</td><td>The name of the qualifier. Must be a single XML name, must not be null or the empty string. Same namespace and prefix usage as <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="abc258e027780a15be65a88fcfd4e1fd4"></a><!-- doxytag: member="TXMPMeta::DeleteStructField" ref="abc258e027780a15be65a88fcfd4e1fd4" args="(XMP_StringPtr schemaNS, XMP_StringPtr structName, XMP_StringPtr fieldNS, XMP_StringPtr fieldName)" -->
+<a class="anchor" id="abc258e027780a15be65a88fcfd4e1fd4"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -827,51 +877,50 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">void <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::DeleteStructField </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>structName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>structName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>fieldNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>fieldNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>fieldName</em></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>fieldName</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#abc258e027780a15be65a88fcfd4e1fd4" title="DeleteStructField() deletes an XMP subtree rooted at a given struct field.">DeleteStructField()</a></code> deletes an XMP subtree rooted at a given struct field. </p>
+<p><code><a class="el" href="classTXMPMeta.html#abc258e027780a15be65a88fcfd4e1fd4" title="DeleteStructField() deletes an XMP subtree rooted at a given struct field. ">DeleteStructField()</a></code> deletes an XMP subtree rooted at a given struct field. </p>
<p>It is not an error if the field does not exist.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>The namespace URI for the struct; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>structName</em>&nbsp;</td><td>The name of the struct. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code> for namespace prefix usage.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>fieldNS</em>&nbsp;</td><td>The namespace URI for the field. Same namespace and prefix usage as <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>fieldName</em>&nbsp;</td><td>The name of the field. Must be a single XML name, must not be null or the empty string. Same namespace and prefix usage as <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">schemaNS</td><td>The namespace URI for the struct; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>.</td></tr>
+ <tr><td class="paramname">structName</td><td>The name of the struct. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code> for namespace prefix usage.</td></tr>
+ <tr><td class="paramname">fieldNS</td><td>The namespace URI for the field. Same namespace and prefix usage as <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>.</td></tr>
+ <tr><td class="paramname">fieldName</td><td>The name of the field. Must be a single XML name, must not be null or the empty string. Same namespace and prefix usage as <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="a492465c588d6d4cb8e30f94790e66f58"></a><!-- doxytag: member="TXMPMeta::DoesArrayItemExist" ref="a492465c588d6d4cb8e30f94790e66f58" args="(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_Index itemIndex) const " -->
+<a class="anchor" id="a492465c588d6d4cb8e30f94790e66f58"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -880,45 +929,44 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">bool <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::DoesArrayItemExist </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>arrayName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>arrayName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a>&nbsp;</td>
- <td class="paramname"> <em>itemIndex</em></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a>&#160;</td>
+ <td class="paramname"><em>itemIndex</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td> const</td>
+ <td></td><td> const</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#a492465c588d6d4cb8e30f94790e66f58" title="DoesArrayItemExist() reports whether an array item currently exists.">DoesArrayItemExist()</a></code> reports whether an array item currently exists. </p>
-<p>Use <code><a class="el" href="classTXMPUtils.html#a47fa195aa2e1457aa1f74f7e1ed06da6" title="ComposeArrayItemPath() composes the path expression for an item in an array.">TXMPUtils::ComposeArrayItemPath()</a></code> to create a complex path.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>The namespace URI; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>arrayName</em>&nbsp;</td><td>The name of the array. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code> for namespace prefix usage.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>itemIndex</em>&nbsp;</td><td>The 1-based index of the desired item. Use the macro <code><a class="el" href="XMP__Const_8h.html#a9549b9a138a896257b5a70176d125317" title="Options macro accesses last array item.">kXMP_ArrayLastItem</a></code> to specify the last existing array item.</td></tr>
+<p><code><a class="el" href="classTXMPMeta.html#a492465c588d6d4cb8e30f94790e66f58" title="DoesArrayItemExist() reports whether an array item currently exists. ">DoesArrayItemExist()</a></code> reports whether an array item currently exists. </p>
+<p>Use <code><a class="el" href="classTXMPUtils.html#a47fa195aa2e1457aa1f74f7e1ed06da6" title="ComposeArrayItemPath() composes the path expression for an item in an array. ">TXMPUtils::ComposeArrayItemPath()</a></code> to create a complex path.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">schemaNS</td><td>The namespace URI; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>.</td></tr>
+ <tr><td class="paramname">arrayName</td><td>The name of the array. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code> for namespace prefix usage.</td></tr>
+ <tr><td class="paramname">itemIndex</td><td>The 1-based index of the desired item. Use the macro <code><a class="el" href="XMP__Const_8h.html#a9549b9a138a896257b5a70176d125317" title="Options macro accesses last array item. ">kXMP_ArrayLastItem</a></code> to specify the last existing array item.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>True if the array item exists. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>True if the array item exists. </dd></dl>
</div>
</div>
-<a class="anchor" id="af22b116d71ecbbebea016ec5337e7066"></a><!-- doxytag: member="TXMPMeta::DoesPropertyExist" ref="af22b116d71ecbbebea016ec5337e7066" args="(XMP_StringPtr schemaNS, XMP_StringPtr propName) const " -->
+<a class="anchor" id="af22b116d71ecbbebea016ec5337e7066"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -927,37 +975,36 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">bool <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::DoesPropertyExist </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>propName</em></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td> const</td>
+ <td></td><td> const</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#af22b116d71ecbbebea016ec5337e7066" title="DoesPropertyExist() reports whether a property currently exists.">DoesPropertyExist()</a></code> reports whether a property currently exists. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>The namespace URI for the property; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>propName</em>&nbsp;</td><td>The name of the property; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>.</td></tr>
+<p><code><a class="el" href="classTXMPMeta.html#af22b116d71ecbbebea016ec5337e7066" title="DoesPropertyExist() reports whether a property currently exists. ">DoesPropertyExist()</a></code> reports whether a property currently exists. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">schemaNS</td><td>The namespace URI for the property; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>.</td></tr>
+ <tr><td class="paramname">propName</td><td>The name of the property; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>True if the property exists. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>True if the property exists. </dd></dl>
</div>
</div>
-<a class="anchor" id="a81347a92becd387a14f4d47c582f129a"></a><!-- doxytag: member="TXMPMeta::DoesQualifierExist" ref="a81347a92becd387a14f4d47c582f129a" args="(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_StringPtr qualNS, XMP_StringPtr qualName) const " -->
+<a class="anchor" id="a81347a92becd387a14f4d47c582f129a"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -966,51 +1013,50 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">bool <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::DoesQualifierExist </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>propName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>qualNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>qualNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>qualName</em></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>qualName</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td> const</td>
+ <td></td><td> const</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#a81347a92becd387a14f4d47c582f129a" title="DoesQualifierExist() reports whether a qualifier currently exists.">DoesQualifierExist()</a></code> reports whether a qualifier currently exists. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>The namespace URI; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>propName</em>&nbsp;</td><td>The name of the property to which the qualifier is attached. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code> for namespace prefix usage.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>qualNS</em>&nbsp;</td><td>The namespace URI for the qualifier. Same namespace and prefix usage as <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>qualName</em>&nbsp;</td><td>The name of the qualifier. Must be a single XML name, must not be null or the empty string. Same namespace and prefix usage as <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>.</td></tr>
+<p><code><a class="el" href="classTXMPMeta.html#a81347a92becd387a14f4d47c582f129a" title="DoesQualifierExist() reports whether a qualifier currently exists. ">DoesQualifierExist()</a></code> reports whether a qualifier currently exists. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">schemaNS</td><td>The namespace URI; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>.</td></tr>
+ <tr><td class="paramname">propName</td><td>The name of the property to which the qualifier is attached. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code> for namespace prefix usage.</td></tr>
+ <tr><td class="paramname">qualNS</td><td>The namespace URI for the qualifier. Same namespace and prefix usage as <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>.</td></tr>
+ <tr><td class="paramname">qualName</td><td>The name of the qualifier. Must be a single XML name, must not be null or the empty string. Same namespace and prefix usage as <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>True if the qualifier exists. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>True if the qualifier exists. </dd></dl>
</div>
</div>
-<a class="anchor" id="a9261b80d62e77a10ff1a89843bfa10a5"></a><!-- doxytag: member="TXMPMeta::DoesStructFieldExist" ref="a9261b80d62e77a10ff1a89843bfa10a5" args="(XMP_StringPtr schemaNS, XMP_StringPtr structName, XMP_StringPtr fieldNS, XMP_StringPtr fieldName) const " -->
+<a class="anchor" id="a9261b80d62e77a10ff1a89843bfa10a5"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -1019,93 +1065,99 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">bool <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::DoesStructFieldExist </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>structName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>structName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>fieldNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>fieldNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>fieldName</em></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>fieldName</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td> const</td>
+ <td></td><td> const</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#a9261b80d62e77a10ff1a89843bfa10a5" title="DoesStructFieldExist() reports whether a struct field currently exists.">DoesStructFieldExist()</a></code> reports whether a struct field currently exists. </p>
-<p>Use <code><a class="el" href="classTXMPUtils.html#a706eb85b8401b8682a01348f7e25ee3d" title="ComposeStructFieldPath() composes the path expression for a field in a struct.">TXMPUtils::ComposeStructFieldPath()</a></code> to create a complex path.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>The namespace URI; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>structName</em>&nbsp;</td><td>The name of the struct. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code> for namespace prefix usage.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>fieldNS</em>&nbsp;</td><td>The namespace URI for the field. Same namespace and prefix usage as <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>fieldName</em>&nbsp;</td><td>The name of the field. Must be a single XML name, must not be null or the empty string. Same namespace and prefix usage as <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>.</td></tr>
+<p><code><a class="el" href="classTXMPMeta.html#a9261b80d62e77a10ff1a89843bfa10a5" title="DoesStructFieldExist() reports whether a struct field currently exists. ">DoesStructFieldExist()</a></code> reports whether a struct field currently exists. </p>
+<p>Use <code><a class="el" href="classTXMPUtils.html#a706eb85b8401b8682a01348f7e25ee3d" title="ComposeStructFieldPath() composes the path expression for a field in a struct. ">TXMPUtils::ComposeStructFieldPath()</a></code> to create a complex path.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">schemaNS</td><td>The namespace URI; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>.</td></tr>
+ <tr><td class="paramname">structName</td><td>The name of the struct. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code> for namespace prefix usage.</td></tr>
+ <tr><td class="paramname">fieldNS</td><td>The namespace URI for the field. Same namespace and prefix usage as <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>.</td></tr>
+ <tr><td class="paramname">fieldName</td><td>The name of the field. Must be a single XML name, must not be null or the empty string. Same namespace and prefix usage as <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>True if the field exists. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>True if the field exists. </dd></dl>
</div>
</div>
-<a class="anchor" id="aaddc5f555de57472939a41346e276817"></a><!-- doxytag: member="TXMPMeta::DumpNamespaces" ref="aaddc5f555de57472939a41346e276817" args="(XMP_TextOutputProc outProc, void *clientData)" -->
+<a class="anchor" id="aaddc5f555de57472939a41346e276817"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj&gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="XMP__Const_8h.html#a05b81829c04746826f4f85fbac76e3dd">XMP_Status</a> <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::DumpNamespaces </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a8ce3570e6e5ac14cd603e96fa9d2936f">XMP_TextOutputProc</a>&nbsp;</td>
- <td class="paramname"> <em>outProc</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aa55bae1e6be4ddcefbaf214942e5b272">XMP_TextOutputProc</a>&#160;</td>
+ <td class="paramname"><em>outProc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">void *&nbsp;</td>
- <td class="paramname"> <em>clientData</em></td><td>&nbsp;</td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>clientData</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td><code> [static]</code></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#aaddc5f555de57472939a41346e276817" title="DumpNamespaces() sends the list of registered namespace URIs and prefixes to a handler...">DumpNamespaces()</a></code> sends the list of registered namespace URIs and prefixes to a handler. </p>
-<p>For debugging. Invokes a client-defined callback for each line of output.</p>
+<p><code><a class="el" href="classTXMPMeta.html#aaddc5f555de57472939a41346e276817" title="DumpNamespaces() sends the list of registered namespace URIs and prefixes to a handler. ">DumpNamespaces()</a></code> sends the list of registered namespace URIs and prefixes to a handler. </p>
+<dl class="section see"><dt>See also</dt><dd>Member function <code><a class="el" href="classTXMPMeta.html#a466fa349c9765f39ca6b1450908e769f" title="DumpObject() outputs the content of an XMP object to a callback handler for debugging. ">TXMPMeta::DumpObject()</a>For</code> debugging. Invokes a client-defined callback for each line of output.</dd></dl>
<p>This function is static; make the call directly from the concrete class (<code>SXMPMeta</code>).</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>outProc</em>&nbsp;</td><td>The client-defined procedure to handle each line of output.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>clientData</em>&nbsp;</td><td>A pointer to client-defined data to pass to the handler.</td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">outProc</td><td>The client-defined procedure to handle each line of output.</td></tr>
+ <tr><td class="paramname">clientData</td><td>A pointer to client-defined data to pass to the handler.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>A success-fail status value, returned from the handler. Zero is success, failure values are client-defined. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>A success-fail status value, returned from the handler. Zero is success, failure values are client-defined. </dd></dl>
</div>
</div>
-<a class="anchor" id="a466fa349c9765f39ca6b1450908e769f"></a><!-- doxytag: member="TXMPMeta::DumpObject" ref="a466fa349c9765f39ca6b1450908e769f" args="(XMP_TextOutputProc outProc, void *clientData) const " -->
+<a class="anchor" id="a466fa349c9765f39ca6b1450908e769f"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -1114,39 +1166,57 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname"><a class="el" href="XMP__Const_8h.html#a05b81829c04746826f4f85fbac76e3dd">XMP_Status</a> <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::DumpObject </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a8ce3570e6e5ac14cd603e96fa9d2936f">XMP_TextOutputProc</a>&nbsp;</td>
- <td class="paramname"> <em>outProc</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aa55bae1e6be4ddcefbaf214942e5b272">XMP_TextOutputProc</a>&#160;</td>
+ <td class="paramname"><em>outProc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">void *&nbsp;</td>
- <td class="paramname"> <em>clientData</em></td><td>&nbsp;</td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>clientData</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td> const</td>
+ <td></td><td> const</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#a466fa349c9765f39ca6b1450908e769f" title="DumpObject() outputs the content of an XMP object to a callback handler for debugging...">DumpObject()</a></code> outputs the content of an XMP object to a callback handler for debugging. </p>
+<p><code><a class="el" href="classTXMPMeta.html#a466fa349c9765f39ca6b1450908e769f" title="DumpObject() outputs the content of an XMP object to a callback handler for debugging. ">DumpObject()</a></code> outputs the content of an XMP object to a callback handler for debugging. </p>
<p>Invokes a client-defined callback for each line of output.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>outProc</em>&nbsp;</td><td>The client-defined procedure to handle each line of output.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>clientData</em>&nbsp;</td><td>A pointer to client-defined data to pass to the handler.</td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">outProc</td><td>The client-defined procedure to handle each line of output.</td></tr>
+ <tr><td class="paramname">clientData</td><td>A pointer to client-defined data to pass to the handler.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>A success-fail status value, returned from the handler. Zero is success, failure values are client-defined.</dd></dl>
-<dl class="see"><dt><b>See also:</b></dt><dd>Static function <code><a class="el" href="classTXMPMeta.html#aaddc5f555de57472939a41346e276817" title="DumpNamespaces() sends the list of registered namespace URIs and prefixes to a handler...">DumpNamespaces()</a></code> </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>A success-fail status value, returned from the handler. Zero is success, failure values are client-defined.</dd></dl>
+<dl class="section see"><dt>See also</dt><dd>Static function <code><a class="el" href="classTXMPMeta.html#aaddc5f555de57472939a41346e276817" title="DumpNamespaces() sends the list of registered namespace URIs and prefixes to a handler. ">DumpNamespaces()</a></code> </dd></dl>
</div>
</div>
-<a class="anchor" id="ac64a4251d157937f69b73f2ffac4f7cc"></a><!-- doxytag: member="TXMPMeta::GetArrayItem" ref="ac64a4251d157937f69b73f2ffac4f7cc" args="(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_Index itemIndex, tStringObj *itemValue, XMP_OptionBits *options) const " -->
+<a class="anchor" id="adf57895625ad118782ed48a3931848b7"></a>
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class tStringObj&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::Erase </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p><code><a class="el" href="classTXMPMeta.html#adf57895625ad118782ed48a3931848b7" title="Erase() restores the object to a &quot;just constructed&quot; state. ">Erase()</a></code> restores the object to a "just constructed" state. </p>
+
+</div>
+</div>
+<a class="anchor" id="ac64a4251d157937f69b73f2ffac4f7cc"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -1155,82 +1225,87 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">bool <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::GetArrayItem </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>arrayName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>arrayName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a>&nbsp;</td>
- <td class="paramname"> <em>itemIndex</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a>&#160;</td>
+ <td class="paramname"><em>itemIndex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tStringObj *&nbsp;</td>
- <td class="paramname"> <em>itemValue</em>, </td>
+ <td class="paramtype">tStringObj *&#160;</td>
+ <td class="paramname"><em>itemValue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&nbsp;</td>
- <td class="paramname"> <em>options</em></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&#160;</td>
+ <td class="paramname"><em>options</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td> const</td>
+ <td></td><td> const</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#ac64a4251d157937f69b73f2ffac4f7cc" title="GetArrayItem() provides access to items within an array.">GetArrayItem()</a></code> provides access to items within an array. </p>
+<p><code><a class="el" href="classTXMPMeta.html#ac64a4251d157937f69b73f2ffac4f7cc" title="GetArrayItem() provides access to items within an array. ">GetArrayItem()</a></code> provides access to items within an array. </p>
<p>Reports whether the item exists; if it does, and if it has a value, the function retrieves the value. Items are accessed by an integer index, where the first item has index 1.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>The namespace URI for the array; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>arrayName</em>&nbsp;</td><td>The name of the array. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code> for namespace prefix usage.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>itemIndex</em>&nbsp;</td><td>The 1-based index of the desired item. Use the macro <code><a class="el" href="XMP__Const_8h.html#a9549b9a138a896257b5a70176d125317" title="Options macro accesses last array item.">kXMP_ArrayLastItem</a></code> to specify the last existing array item.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>itemValue</em>&nbsp;</td><td>[out] A string object in which to return the value of the array item, if it has a value. Arrays and non-leaf levels of structs do not have values. Can be null if the value is not wanted.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>[out] A buffer in which to return the option flags describing the array item. Can be null if the flags are not wanted.</td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">schemaNS</td><td>The namespace URI for the array; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>.</td></tr>
+ <tr><td class="paramname">arrayName</td><td>The name of the array. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code> for namespace prefix usage.</td></tr>
+ <tr><td class="paramname">itemIndex</td><td>The 1-based index of the desired item. Use the macro <code><a class="el" href="XMP__Const_8h.html#a9549b9a138a896257b5a70176d125317" title="Options macro accesses last array item. ">kXMP_ArrayLastItem</a></code> to specify the last existing array item.</td></tr>
+ <tr><td class="paramname">itemValue</td><td>[out] A string object in which to return the value of the array item, if it has a value. Arrays and non-leaf levels of structs do not have values. Can be null if the value is not wanted.</td></tr>
+ <tr><td class="paramname">options</td><td>[out] A buffer in which to return the option flags describing the array item. Can be null if the flags are not wanted.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>True if the array item exists. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>True if the array item exists. </dd></dl>
</div>
</div>
-<a class="anchor" id="a12b2435ba039c62a164951948c016eb4"></a><!-- doxytag: member="TXMPMeta::GetGlobalOptions" ref="a12b2435ba039c62a164951948c016eb4" args="()" -->
+<a class="anchor" id="a12b2435ba039c62a164951948c016eb4"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj&gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::GetGlobalOptions </td>
<td>(</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td><code> [static]</code></td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#a12b2435ba039c62a164951948c016eb4" title="GetGlobalOptions() retrieves the set of global option flags. There are none in this...">GetGlobalOptions()</a></code> retrieves the set of global option flags. There are none in this version of the Toolkit. </p>
+<p><code><a class="el" href="classTXMPMeta.html#a12b2435ba039c62a164951948c016eb4" title="GetGlobalOptions() retrieves the set of global option flags. There are none in this version of the To...">GetGlobalOptions()</a></code> retrieves the set of global option flags. There are none in this version of the Toolkit. </p>
<p>This function is static; you can make the call from the class without instantiating it.</p>
-<dl class="return"><dt><b>Returns:</b></dt><dd>A logical OR of global option bit-flag constants. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>A logical OR of global option bit-flag constants. </dd></dl>
</div>
</div>
-<a class="anchor" id="afbfebded0b85b08bd9c5ba0d7dae07e0"></a><!-- doxytag: member="TXMPMeta::GetInternalRef" ref="afbfebded0b85b08bd9c5ba0d7dae07e0" args="() const " -->
+<a class="anchor" id="afbfebded0b85b08bd9c5ba0d7dae07e0"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -1239,39 +1314,36 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::GetInternalRef </td>
<td>(</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
+ <td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>Retrieves an internal reference that can be safely passed across DLL boundaries and reconstructed. </p>
-<p>The <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta</a></code> class is a normal C++ template, it is instantiated and local to each client executable, as are the other <code>TXMP*</code> classes. Different clients might not use the same string type to instantiate <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta</a></code>.</p>
+<p>The <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services. ">TXMPMeta</a></code> class is a normal C++ template, it is instantiated and local to each client executable, as are the other <code>TXMP*</code> classes. Different clients might not use the same string type to instantiate <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services. ">TXMPMeta</a></code>.</p>
<p>Because of this you should not pass <code>SXMPMeta</code> objects, or pointers to <code>SXMPMeta</code> objects, across DLL boundaries. Use this function to obtain a safe internal reference that you can pass, then construct a local object on the callee side. This construction does not create a cloned XMP tree, it is the same underlying XMP object safely wrapped in each client's <code>SXMPMeta</code> object.</p>
-<p>Use this function and the associated constructor like this: </p>
-<ul>
+<p>Use this function and the associated constructor like this: </p><ul>
<li>The callee's header contains: <pre>
- CalleeMethod ( XMPMetaRef xmpRef );
- </pre></li>
+CalleeMethod ( XMPMetaRef xmpRef );
+</pre></li>
</ul>
<ul>
<li>The caller's code contains: <pre>
- SXMPMeta callerXMP;
- CalleeMethod ( callerXMP.GetInternalRef() );
- </pre></li>
+SXMPMeta callerXMP;
+CalleeMethod ( callerXMP.GetInternalRef() );
+</pre></li>
</ul>
<ul>
<li>The callee's code contains: <pre>
- SXMPMeta calleeXMP ( xmpRef );
- </pre></li>
+SXMPMeta calleeXMP ( xmpRef );
+</pre></li>
</ul>
-<dl class="return"><dt><b>Returns:</b></dt><dd>The reference object. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>The reference object. </dd></dl>
</div>
</div>
-<a class="anchor" id="aeefe49bbf669770d769f4fe0ea566bd0"></a><!-- doxytag: member="TXMPMeta::GetLocalizedText" ref="aeefe49bbf669770d769f4fe0ea566bd0" args="(XMP_StringPtr schemaNS, XMP_StringPtr altTextName, XMP_StringPtr genericLang, XMP_StringPtr specificLang, tStringObj *actualLang, tStringObj *itemValue, XMP_OptionBits *options) const " -->
+<a class="anchor" id="aeefe49bbf669770d769f4fe0ea566bd0"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -1280,162 +1352,183 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">bool <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::GetLocalizedText </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>altTextName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>altTextName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>genericLang</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>genericLang</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>specificLang</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>specificLang</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tStringObj *&nbsp;</td>
- <td class="paramname"> <em>actualLang</em>, </td>
+ <td class="paramtype">tStringObj *&#160;</td>
+ <td class="paramname"><em>actualLang</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tStringObj *&nbsp;</td>
- <td class="paramname"> <em>itemValue</em>, </td>
+ <td class="paramtype">tStringObj *&#160;</td>
+ <td class="paramname"><em>itemValue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&nbsp;</td>
- <td class="paramname"> <em>options</em></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&#160;</td>
+ <td class="paramname"><em>options</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td> const</td>
+ <td></td><td> const</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#aeefe49bbf669770d769f4fe0ea566bd0" title="GetLocalizedText() retrieves information about a selected item in an alt-text array...">GetLocalizedText()</a></code> retrieves information about a selected item in an alt-text array. </p>
-<p>The array item is selected according to these rules: </p>
-<ul>
+<p><code><a class="el" href="classTXMPMeta.html#aeefe49bbf669770d769f4fe0ea566bd0" title="GetLocalizedText() retrieves information about a selected item in an alt-text array. ">GetLocalizedText()</a></code> retrieves information about a selected item in an alt-text array. </p>
+<p>Localized text properties are stored in alt-text arrays. They allow multiple concurrent localizations of a property value, for example a document title or copyright in several languages. These functions provide convenient support for localized text properties, including a number of special and obscure aspects. The most important aspect of these functions is that they select an appropriate array item based on one or two RFC 3066 language tags. One of these languages, the "specific" language, is preferred and selected if there is an exact match. For many languages it is also possible to define a "generic" language that can be used if there is no specific language match. The generic language must be a valid RFC 3066 primary subtag, or the empty string.</p>
+<p>For example, a specific language of "en-US" should be used in the US, and a specific language of "en-UK" should be used in England. It is also appropriate to use "en" as the generic language in each case. If a US document goes to England, the "en-US" title is selected by using the "en" generic language and the "en-UK" specific language.</p>
+<p>It is considered poor practice, but allowed, to pass a specific language that is just an RFC 3066 primary tag. For example "en" is not a good specific language, it should only be used as a generic language. Passing "i" or "x" as the generic language is also considered poor practice but allowed.</p>
+<p>Advice from the W3C about the use of RFC 3066 language tags can be found at: </p><ul>
+<li><a href="http://www.w3.org/International/articles/language-tags/">http://www.w3.org/International/articles/language-tags/</a></li>
+</ul>
+<dl class="section note"><dt>Note</dt><dd>RFC 3066 language tags must be treated in a case insensitive manner. The XMP toolkit does this by normalizing their capitalization: <ul>
+<li>The primary subtag is lower case, the suggested practice of ISO 639. </li>
+<li>All 2 letter secondary subtags are upper case, the suggested practice of ISO 3166. </li>
+<li>All other subtags are lower case. The XMP specification defines an artificial language, "x-default", that is used to explicitly denote a default item in an alt-text array. The XMP toolkit normalizes alt-text arrays such that the x-default item is the first item. The <code><a class="el" href="classTXMPMeta.html#af9531b949a462f5663b1f3fd99464c19" title="SetLocalizedText() modifies the value of a selected item in an alt-text array. ">SetLocalizedText()</a></code> function has several special features related to the x-default item, see its description for details.The array item is selected according to these rules: </li>
<li>Look for an exact match with the specific language. </li>
<li>If a generic language is given, look for a partial match. </li>
<li>Look for an x-default item. </li>
<li>Choose the first item.</li>
</ul>
-<p>A partial match with the generic language is where the start of the item's language matches the generic string and the next character is '-'. An exact match is also recognized as a degenerate case.</p>
+A partial match with the generic language is where the start of the item's language matches the generic string and the next character is '-'. An exact match is also recognized as a degenerate case.</dd></dl>
<p>You can pass "x-default" as the specific language. In this case, selection of an <code>x-default</code> item is an exact match by the first rule, not a selection by the 3rd rule. The last 2 rules are fallbacks used when the specific and generic languages fail to produce a match.</p>
<p>The return value reports whether a match was successfully made.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>The namespace URI for the alt-text array; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>altTextName</em>&nbsp;</td><td>The name of the alt-text array. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code> for namespace prefix usage.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>genericLang</em>&nbsp;</td><td>The name of the generic language as an RFC 3066 primary subtag. Can be null or the empty string if no generic language is wanted.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>specificLang</em>&nbsp;</td><td>The name of the specific language as an RFC 3066 tag, or "x-default". Must not be null or the empty string.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>actualLang</em>&nbsp;</td><td>[out] A string object in which to return the language of the selected array item, if an appropriate array item is found. Can be null if the language is not wanted.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>itemValue</em>&nbsp;</td><td>[out] A string object in which to return the value of the array item, if an appropriate array item is found. Can be null if the value is not wanted.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>A buffer in which to return the option flags that describe the array item, if an appropriate array item is found. Can be null if the flags are not wanted.</td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">schemaNS</td><td>The namespace URI for the alt-text array; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>.</td></tr>
+ <tr><td class="paramname">altTextName</td><td>The name of the alt-text array. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code> for namespace prefix usage.</td></tr>
+ <tr><td class="paramname">genericLang</td><td>The name of the generic language as an RFC 3066 primary subtag. Can be null or the empty string if no generic language is wanted.</td></tr>
+ <tr><td class="paramname">specificLang</td><td>The name of the specific language as an RFC 3066 tag, or "x-default". Must not be null or the empty string.</td></tr>
+ <tr><td class="paramname">actualLang</td><td>[out] A string object in which to return the language of the selected array item, if an appropriate array item is found. Can be null if the language is not wanted.</td></tr>
+ <tr><td class="paramname">itemValue</td><td>[out] A string object in which to return the value of the array item, if an appropriate array item is found. Can be null if the value is not wanted.</td></tr>
+ <tr><td class="paramname">options</td><td>A buffer in which to return the option flags that describe the array item, if an appropriate array item is found. Can be null if the flags are not wanted.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>True if an appropriate array item exists. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>True if an appropriate array item exists. </dd></dl>
</div>
</div>
-<a class="anchor" id="af28589472d8c0397db6cef868f2b8c97"></a><!-- doxytag: member="TXMPMeta::GetNamespacePrefix" ref="af28589472d8c0397db6cef868f2b8c97" args="(XMP_StringPtr namespaceURI, tStringObj *namespacePrefix)" -->
+<a class="anchor" id="af28589472d8c0397db6cef868f2b8c97"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj&gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static bool <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::GetNamespacePrefix </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>namespaceURI</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>namespaceURI</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tStringObj *&nbsp;</td>
- <td class="paramname"> <em>namespacePrefix</em></td><td>&nbsp;</td>
+ <td class="paramtype">tStringObj *&#160;</td>
+ <td class="paramname"><em>namespacePrefix</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td><code> [static]</code></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#af28589472d8c0397db6cef868f2b8c97" title="GetNamespacePrefix() obtains the prefix for a registered namespace URI, and reports...">GetNamespacePrefix()</a></code> obtains the prefix for a registered namespace URI, and reports whether the URI is registered. </p>
+<p><code><a class="el" href="classTXMPMeta.html#af28589472d8c0397db6cef868f2b8c97" title="GetNamespacePrefix() obtains the prefix for a registered namespace URI, and reports whether the URI i...">GetNamespacePrefix()</a></code> obtains the prefix for a registered namespace URI, and reports whether the URI is registered. </p>
<p>This function is static; make the call directly from the concrete class (<code>SXMPMeta</code>).</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>namespaceURI</em>&nbsp;</td><td>The URI for the namespace. Must not be null or the empty string. It is not an error if the namespace URI is not registered.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>namespacePrefix</em>&nbsp;</td><td>[out] A string object in which to return the prefix registered for this URI, with a terminating colon character, ':'. If the namespace is not registered, this string is not modified.</td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">namespaceURI</td><td>The URI for the namespace. Must not be null or the empty string. It is not an error if the namespace URI is not registered.</td></tr>
+ <tr><td class="paramname">namespacePrefix</td><td>[out] A string object in which to return the prefix registered for this URI, with a terminating colon character, ':'. If the namespace is not registered, this string is not modified.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>True if the namespace URI is registered. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>True if the namespace URI is registered. </dd></dl>
</div>
</div>
-<a class="anchor" id="aa20c84e7549d0a3252fa29a1e83a757a"></a><!-- doxytag: member="TXMPMeta::GetNamespaceURI" ref="aa20c84e7549d0a3252fa29a1e83a757a" args="(XMP_StringPtr namespacePrefix, tStringObj *namespaceURI)" -->
+<a class="anchor" id="aa20c84e7549d0a3252fa29a1e83a757a"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj&gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static bool <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::GetNamespaceURI </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>namespacePrefix</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>namespacePrefix</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tStringObj *&nbsp;</td>
- <td class="paramname"> <em>namespaceURI</em></td><td>&nbsp;</td>
+ <td class="paramtype">tStringObj *&#160;</td>
+ <td class="paramname"><em>namespaceURI</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td><code> [static]</code></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#aa20c84e7549d0a3252fa29a1e83a757a" title="GetNamespaceURI() obtains the URI for a registered namespace prefix, and reports...">GetNamespaceURI()</a></code> obtains the URI for a registered namespace prefix, and reports whether the prefix is registered. </p>
+<p><code><a class="el" href="classTXMPMeta.html#aa20c84e7549d0a3252fa29a1e83a757a" title="GetNamespaceURI() obtains the URI for a registered namespace prefix, and reports whether the prefix i...">GetNamespaceURI()</a></code> obtains the URI for a registered namespace prefix, and reports whether the prefix is registered. </p>
<p>This function is static; make the call directly from the concrete class (<code>SXMPMeta</code>).</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>namespacePrefix</em>&nbsp;</td><td>The prefix for the namespace. Must not be null or the empty string. It is not an error if the namespace prefix is not registered.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>namespaceURI</em>&nbsp;</td><td>[out] A string object in which to return the URI registered for this prefix. If the prefix is not registered, this string is not modified.</td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">namespacePrefix</td><td>The prefix for the namespace. Must not be null or the empty string. It is not an error if the namespace prefix is not registered.</td></tr>
+ <tr><td class="paramname">namespaceURI</td><td>[out] A string object in which to return the URI registered for this prefix. If the prefix is not registered, this string is not modified.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>True if the namespace prefix is registered. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>True if the namespace prefix is registered. </dd></dl>
</div>
</div>
-<a class="anchor" id="ab0d179ed95487d4fd4f2680c1fbe0d40"></a><!-- doxytag: member="TXMPMeta::GetObjectName" ref="ab0d179ed95487d4fd4f2680c1fbe0d40" args="(tStringObj *name) const " -->
+<a class="anchor" id="ab0d179ed95487d4fd4f2680c1fbe0d40"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -1444,27 +1537,44 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">void <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::GetObjectName </td>
<td>(</td>
- <td class="paramtype">tStringObj *&nbsp;</td>
- <td class="paramname"> <em>name</em></td>
- <td>&nbsp;)&nbsp;</td>
+ <td class="paramtype">tStringObj *&#160;</td>
+ <td class="paramname"><em>name</em></td><td>)</td>
<td> const</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#ab0d179ed95487d4fd4f2680c1fbe0d40" title="GetObjectName() retrieves the client-assigned name of this XMP object.">GetObjectName()</a></code> retrieves the client-assigned name of this XMP object. </p>
-<p>Assign this name with <code><a class="el" href="classTXMPMeta.html#acf1935be8e4849976dfc02325424960a" title="SetObjectName() assigns a name to this XMP object.">SetObjectName()</a></code>.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>[out] A string object in which to return the name. </td></tr>
+<p><code><a class="el" href="classTXMPMeta.html#ab0d179ed95487d4fd4f2680c1fbe0d40" title="GetObjectName() retrieves the client-assigned name of this XMP object. ">GetObjectName()</a></code> retrieves the client-assigned name of this XMP object. </p>
+<p>Assign this name with <code><a class="el" href="classTXMPMeta.html#acf1935be8e4849976dfc02325424960a" title="SetObjectName() assigns a name to this XMP object. ">SetObjectName()</a></code>.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">name</td><td>[out] A string object in which to return the name. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="a06a3241c7fa5df87f61dff02fca23a0c"></a><!-- doxytag: member="TXMPMeta::GetProperty" ref="a06a3241c7fa5df87f61dff02fca23a0c" args="(XMP_StringPtr schemaNS, XMP_StringPtr propName, tStringObj *propValue, XMP_OptionBits *options) const " -->
+<a class="anchor" id="a0bfc04142a35671a4c8989fcaca6d6c2"></a>
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class tStringObj&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::GetObjectOptions </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Not implemented. </p>
+
+</div>
+</div>
+<a class="anchor" id="a06a3241c7fa5df87f61dff02fca23a0c"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -1473,58 +1583,56 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">bool <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::GetProperty </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>propName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tStringObj *&nbsp;</td>
- <td class="paramname"> <em>propValue</em>, </td>
+ <td class="paramtype">tStringObj *&#160;</td>
+ <td class="paramname"><em>propValue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&nbsp;</td>
- <td class="paramname"> <em>options</em></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&#160;</td>
+ <td class="paramname"><em>options</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td> const</td>
+ <td></td><td> const</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code> reports whether a property exists, and retrieves its value. </p>
-<p>This is the simplest property accessor. Use this to retrieve the values of top-level simple properties, or after using the path composition functions in <code><a class="el" href="classTXMPUtils.html" title="API for access to the XMP Toolkit utility services.">TXMPUtils</a></code>.</p>
-<p>When specifying a namespace and path (in this and all other accessors): </p>
-<ul>
+<p><code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code> reports whether a property exists, and retrieves its value. </p>
+<p>The accessor functions return true if the specified property exists. If it does, output parameters return the value (if any) and option flags describing the property. The option bit-flag constants that describe properties are <code>kXMP_PropXx</code> and <code>kXMP_ArrayIsXx</code>. See <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aab51f87b5c48f47f5cefb9e03293dafb" title="The XML string form of the property value is a URI, use rdf:resource attribute. DISCOURAGED. ">kXMP_PropValueIsURI</a></code> and following, and macros <code><a class="el" href="XMP__Const_8h.html#a43aeebde901bea1932203107c690a2dc" title="Macro reports the property type specified by an options flag. ">XMP_PropIsSimple</a></code> and following in <code><a class="el" href="XMP__Const_8h.html" title="Common C/C++ types and constants for the XMP toolkit. ">XMP_Const.h</a></code>. If the property exists and has a value, it is returned as a Unicode string in UTF-8 encoding. Arrays and the non-leaf levels of structs do not have values.This is the simplest property accessor. Use this to retrieve the values of top-level simple properties, or after using the path composition functions in <code><a class="el" href="classTXMPUtils.html" title="API for access to the XMP Toolkit utility services. ">TXMPUtils</a></code>.</p>
+<p>When specifying a namespace and path (in this and all other accessors): </p><ul>
<li>If a namespace URI is specified, it must be for a registered namespace. </li>
<li>If the namespace is specified only by a prefix in the property name path, it must be a registered prefix. </li>
<li>If both a URI and path prefix are present, they must be corresponding parts of a registered namespace.</li>
</ul>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>The namespace URI for the property. The URI must be for a registered namespace. Must not be null or the empty string.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>propName</em>&nbsp;</td><td>The name of the property. Can be a general path expression, must not be null or the empty string. The first component can be a namespace prefix; if present without a <code>schemaNS</code> value, the prefix specifies the namespace. The prefix must be for a registered namespace, and if a namespace URI is specified, must match the registered prefix for that namespace.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>propValue</em>&nbsp;</td><td>[out] A string object in which to return the value of the property, if the property exists and has a value. Arrays and non-leaf levels of structs do not have values. Can be null if the value is not wanted.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>A buffer in which to return option flags describing the property. Can be null if the flags are not wanted.</td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">schemaNS</td><td>The namespace URI for the property. The URI must be for a registered namespace. Must not be null or the empty string.</td></tr>
+ <tr><td class="paramname">propName</td><td>The name of the property. Can be a general path expression, must not be null or the empty string. The first component can be a namespace prefix; if present without a <code>schemaNS</code> value, the prefix specifies the namespace. The prefix must be for a registered namespace, and if a namespace URI is specified, must match the registered prefix for that namespace.</td></tr>
+ <tr><td class="paramname">propValue</td><td>[out] A string object in which to return the value of the property, if the property exists and has a value. Arrays and non-leaf levels of structs do not have values. Can be null if the value is not wanted.</td></tr>
+ <tr><td class="paramname">options</td><td>A buffer in which to return option flags describing the property. Can be null if the flags are not wanted.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>True if the property exists. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>True if the property exists. </dd></dl>
</div>
</div>
-<a class="anchor" id="adcf8a1959a8bd42641a42cbd4d64a5b7"></a><!-- doxytag: member="TXMPMeta::GetProperty_Bool" ref="adcf8a1959a8bd42641a42cbd4d64a5b7" args="(XMP_StringPtr schemaNS, XMP_StringPtr propName, bool *propValue, XMP_OptionBits *options) const " -->
+<a class="anchor" id="adcf8a1959a8bd42641a42cbd4d64a5b7"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -1533,52 +1641,51 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">bool <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::GetProperty_Bool </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>propName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">bool *&nbsp;</td>
- <td class="paramname"> <em>propValue</em>, </td>
+ <td class="paramtype">bool *&#160;</td>
+ <td class="paramname"><em>propValue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&nbsp;</td>
- <td class="paramname"> <em>options</em></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&#160;</td>
+ <td class="paramname"><em>options</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td> const</td>
+ <td></td><td> const</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#adcf8a1959a8bd42641a42cbd4d64a5b7" title="GetProperty_Bool() retrieves the value of a Boolean property as a C++ bool.">GetProperty_Bool()</a></code> retrieves the value of a Boolean property as a C++ bool. </p>
-<p>Reports whether a property exists, and retrieves its binary value and property type information.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>The namespace URI; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>propName</em>&nbsp;</td><td>The name of the property. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code> for namespace prefix usage.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>propValue</em>&nbsp;</td><td>[out] A buffer in which to return the binary value. Can be null if the value is not wanted. Must be null for arrays and non-leaf levels of structs that do not have values.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>[out] A buffer in which to return the option flags describing the property, a logical OR of allowed bit-flag constants; see <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e" title="The value is a structure with nested fields.">kXMP_PropValueIsStruct</a></code> and following. Can be null if flags are not wanted.</td></tr>
+<p><code><a class="el" href="classTXMPMeta.html#adcf8a1959a8bd42641a42cbd4d64a5b7" title="GetProperty_Bool() retrieves the value of a Boolean property as a C++ bool. ">GetProperty_Bool()</a></code> retrieves the value of a Boolean property as a C++ bool. </p>
+<p>These are very similar to <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">TXMPMeta::GetProperty()</a></code> and <code><a class="el" href="classTXMPMeta.html#a1dfd6a08ebfd1a6364b3a7b6584bcc28" title="be a simple property with an xml:lang attribute. ">TXMPMeta::SetProperty()</a></code>, except that the value is returned or provided in binary form instead of as a UTF-8 string. <code><a class="el" href="classTXMPUtils.html" title="API for access to the XMP Toolkit utility services. ">TXMPUtils</a></code> provides functions for converting between binary and string values. Use the path composition functions in <code><a class="el" href="classTXMPUtils.html" title="API for access to the XMP Toolkit utility services. ">TXMPUtils</a></code> to compose complex path expressions for fields or items in nested structures or arrays, or for qualifiers.Reports whether a property exists, and retrieves its binary value and property type information.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">schemaNS</td><td>The namespace URI; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>.</td></tr>
+ <tr><td class="paramname">propName</td><td>The name of the property. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code> for namespace prefix usage.</td></tr>
+ <tr><td class="paramname">propValue</td><td>[out] A buffer in which to return the binary value. Can be null if the value is not wanted. Must be null for arrays and non-leaf levels of structs that do not have values.</td></tr>
+ <tr><td class="paramname">options</td><td>[out] A buffer in which to return the option flags describing the property, a logical OR of allowed bit-flag constants; see <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e" title="The value is a structure with nested fields. ">kXMP_PropValueIsStruct</a></code> and following. Can be null if flags are not wanted.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>True if the property exists. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>True if the property exists. </dd></dl>
</div>
</div>
-<a class="anchor" id="a2f561295e73047ee90765558d29bd650"></a><!-- doxytag: member="TXMPMeta::GetProperty_Date" ref="a2f561295e73047ee90765558d29bd650" args="(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_DateTime *propValue, XMP_OptionBits *options) const " -->
+<a class="anchor" id="a2f561295e73047ee90765558d29bd650"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -1587,52 +1694,51 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">bool <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::GetProperty_Date </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>propName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *&nbsp;</td>
- <td class="paramname"> <em>propValue</em>, </td>
+ <td class="paramtype"><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *&#160;</td>
+ <td class="paramname"><em>propValue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&nbsp;</td>
- <td class="paramname"> <em>options</em></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&#160;</td>
+ <td class="paramname"><em>options</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td> const</td>
+ <td></td><td> const</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#a2f561295e73047ee90765558d29bd650" title="GetProperty_Date() retrieves the value of a date-time property as an XMP_DateTime...">GetProperty_Date()</a></code> retrieves the value of a date-time property as an <code><a class="el" href="structXMP__DateTime.html" title="The expanded type for a date and time.">XMP_DateTime</a></code> structure. </p>
+<p><code><a class="el" href="classTXMPMeta.html#a2f561295e73047ee90765558d29bd650" title="GetProperty_Date() retrieves the value of a date-time property as an XMP_DateTime structure...">GetProperty_Date()</a></code> retrieves the value of a date-time property as an <code><a class="el" href="structXMP__DateTime.html" title="The expanded type for a date and time. ">XMP_DateTime</a></code> structure. </p>
<p>Reports whether a property exists, and retrieves its binary value and property type information.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>The namespace URI; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>propName</em>&nbsp;</td><td>The name of the property. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code> for namespace prefix usage.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>propValue</em>&nbsp;</td><td>[out] A buffer in which to return the binary value. Can be null if the value is not wanted. Must be null for arrays and non-leaf levels of structs that do not have values.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>[out] A buffer in which to return the option flags describing the property, a logical OR of allowed bit-flag constants; see <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e" title="The value is a structure with nested fields.">kXMP_PropValueIsStruct</a></code> and following. Can be null if flags are not wanted.</td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">schemaNS</td><td>The namespace URI; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>.</td></tr>
+ <tr><td class="paramname">propName</td><td>The name of the property. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code> for namespace prefix usage.</td></tr>
+ <tr><td class="paramname">propValue</td><td>[out] A buffer in which to return the binary value. Can be null if the value is not wanted. Must be null for arrays and non-leaf levels of structs that do not have values.</td></tr>
+ <tr><td class="paramname">options</td><td>[out] A buffer in which to return the option flags describing the property, a logical OR of allowed bit-flag constants; see <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e" title="The value is a structure with nested fields. ">kXMP_PropValueIsStruct</a></code> and following. Can be null if flags are not wanted.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>True if the property exists. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>True if the property exists. </dd></dl>
</div>
</div>
-<a class="anchor" id="a7708c31c9af3e740b27a4893dcd9aa47"></a><!-- doxytag: member="TXMPMeta::GetProperty_Float" ref="a7708c31c9af3e740b27a4893dcd9aa47" args="(XMP_StringPtr schemaNS, XMP_StringPtr propName, double *propValue, XMP_OptionBits *options) const " -->
+<a class="anchor" id="a7708c31c9af3e740b27a4893dcd9aa47"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -1641,52 +1747,51 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">bool <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::GetProperty_Float </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>propName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">double *&nbsp;</td>
- <td class="paramname"> <em>propValue</em>, </td>
+ <td class="paramtype">double *&#160;</td>
+ <td class="paramname"><em>propValue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&nbsp;</td>
- <td class="paramname"> <em>options</em></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&#160;</td>
+ <td class="paramname"><em>options</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td> const</td>
+ <td></td><td> const</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#a7708c31c9af3e740b27a4893dcd9aa47" title="GetProperty_Float() retrieves the value of a floating-point property as a C double...">GetProperty_Float()</a></code> retrieves the value of a floating-point property as a C double float. </p>
+<p><code><a class="el" href="classTXMPMeta.html#a7708c31c9af3e740b27a4893dcd9aa47" title="GetProperty_Float() retrieves the value of a floating-point property as a C double float...">GetProperty_Float()</a></code> retrieves the value of a floating-point property as a C double float. </p>
<p>Reports whether a property exists, and retrieves its binary value and property type information.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>The namespace URI; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>propName</em>&nbsp;</td><td>The name of the property. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code> for namespace prefix usage.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>propValue</em>&nbsp;</td><td>[out] A buffer in which to return the binary value. Can be null if the value is not wanted. Must be null for arrays and non-leaf levels of structs that do not have values.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>[out] A buffer in which to return the option flags describing the property, a logical OR of allowed bit-flag constants; see <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e" title="The value is a structure with nested fields.">kXMP_PropValueIsStruct</a></code> and following. Can be null if flags are not wanted.</td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">schemaNS</td><td>The namespace URI; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>.</td></tr>
+ <tr><td class="paramname">propName</td><td>The name of the property. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code> for namespace prefix usage.</td></tr>
+ <tr><td class="paramname">propValue</td><td>[out] A buffer in which to return the binary value. Can be null if the value is not wanted. Must be null for arrays and non-leaf levels of structs that do not have values.</td></tr>
+ <tr><td class="paramname">options</td><td>[out] A buffer in which to return the option flags describing the property, a logical OR of allowed bit-flag constants; see <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e" title="The value is a structure with nested fields. ">kXMP_PropValueIsStruct</a></code> and following. Can be null if flags are not wanted.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>True if the property exists. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>True if the property exists. </dd></dl>
</div>
</div>
-<a class="anchor" id="ae4e8ee4cc7441bb9464dac87f2d74650"></a><!-- doxytag: member="TXMPMeta::GetProperty_Int" ref="ae4e8ee4cc7441bb9464dac87f2d74650" args="(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_Int32 *propValue, XMP_OptionBits *options) const " -->
+<a class="anchor" id="ae4e8ee4cc7441bb9464dac87f2d74650"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -1695,52 +1800,51 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">bool <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::GetProperty_Int </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>propName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">XMP_Int32 *&nbsp;</td>
- <td class="paramname"> <em>propValue</em>, </td>
+ <td class="paramtype">XMP_Int32 *&#160;</td>
+ <td class="paramname"><em>propValue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&nbsp;</td>
- <td class="paramname"> <em>options</em></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&#160;</td>
+ <td class="paramname"><em>options</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td> const</td>
+ <td></td><td> const</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#ae4e8ee4cc7441bb9464dac87f2d74650" title="GetProperty_Int() retrieves the value of an integer property as a C long integer...">GetProperty_Int()</a></code> retrieves the value of an integer property as a C long integer. </p>
+<p><code><a class="el" href="classTXMPMeta.html#ae4e8ee4cc7441bb9464dac87f2d74650" title="GetProperty_Int() retrieves the value of an integer property as a C long integer. ...">GetProperty_Int()</a></code> retrieves the value of an integer property as a C long integer. </p>
<p>Reports whether a property exists, and retrieves its binary value and property type information.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>The namespace URI; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>propName</em>&nbsp;</td><td>The name of the property. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code> for namespace prefix usage.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>propValue</em>&nbsp;</td><td>[out] A buffer in which to return the binary value. Can be null if the value is not wanted. Must be null for arrays and non-leaf levels of structs that do not have values.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>[out] A buffer in which to return the option flags describing the property, a logical OR of allowed bit-flag constants; see <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e" title="The value is a structure with nested fields.">kXMP_PropValueIsStruct</a></code> and following. Can be null if flags are not wanted.</td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">schemaNS</td><td>The namespace URI; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>.</td></tr>
+ <tr><td class="paramname">propName</td><td>The name of the property. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code> for namespace prefix usage.</td></tr>
+ <tr><td class="paramname">propValue</td><td>[out] A buffer in which to return the binary value. Can be null if the value is not wanted. Must be null for arrays and non-leaf levels of structs that do not have values.</td></tr>
+ <tr><td class="paramname">options</td><td>[out] A buffer in which to return the option flags describing the property, a logical OR of allowed bit-flag constants; see <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e" title="The value is a structure with nested fields. ">kXMP_PropValueIsStruct</a></code> and following. Can be null if flags are not wanted.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>True if the property exists. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>True if the property exists. </dd></dl>
</div>
</div>
-<a class="anchor" id="af91fa4bc4f51a56e35bcfb554783b050"></a><!-- doxytag: member="TXMPMeta::GetProperty_Int64" ref="af91fa4bc4f51a56e35bcfb554783b050" args="(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_Int64 *propValue, XMP_OptionBits *options) const " -->
+<a class="anchor" id="af91fa4bc4f51a56e35bcfb554783b050"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -1749,52 +1853,51 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">bool <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::GetProperty_Int64 </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>propName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">XMP_Int64 *&nbsp;</td>
- <td class="paramname"> <em>propValue</em>, </td>
+ <td class="paramtype">XMP_Int64 *&#160;</td>
+ <td class="paramname"><em>propValue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&nbsp;</td>
- <td class="paramname"> <em>options</em></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&#160;</td>
+ <td class="paramname"><em>options</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td> const</td>
+ <td></td><td> const</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#af91fa4bc4f51a56e35bcfb554783b050" title="GetProperty_Int64() retrieves the value of an integer property as a C long long integer...">GetProperty_Int64()</a></code> retrieves the value of an integer property as a C long long integer. </p>
+<p><code><a class="el" href="classTXMPMeta.html#af91fa4bc4f51a56e35bcfb554783b050" title="GetProperty_Int64() retrieves the value of an integer property as a C long long integer. ">GetProperty_Int64()</a></code> retrieves the value of an integer property as a C long long integer. </p>
<p>Reports whether a property exists, and retrieves its binary value and property type information.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>The namespace URI; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>propName</em>&nbsp;</td><td>The name of the property. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code> for namespace prefix usage.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>propValue</em>&nbsp;</td><td>[out] A buffer in which to return the binary value. Can be null if the value is not wanted. Must be null for arrays and non-leaf levels of structs that do not have values.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>[out] A buffer in which to return the option flags describing the property, a logical OR of allowed bit-flag constants; see <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e" title="The value is a structure with nested fields.">kXMP_PropValueIsStruct</a></code> and following. Can be null if flags are not wanted.</td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">schemaNS</td><td>The namespace URI; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>.</td></tr>
+ <tr><td class="paramname">propName</td><td>The name of the property. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code> for namespace prefix usage.</td></tr>
+ <tr><td class="paramname">propValue</td><td>[out] A buffer in which to return the binary value. Can be null if the value is not wanted. Must be null for arrays and non-leaf levels of structs that do not have values.</td></tr>
+ <tr><td class="paramname">options</td><td>[out] A buffer in which to return the option flags describing the property, a logical OR of allowed bit-flag constants; see <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e" title="The value is a structure with nested fields. ">kXMP_PropValueIsStruct</a></code> and following. Can be null if flags are not wanted.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>True if the property exists. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>True if the property exists. </dd></dl>
</div>
</div>
-<a class="anchor" id="a2cc58d8316043b035643e7c21633bc13"></a><!-- doxytag: member="TXMPMeta::GetQualifier" ref="a2cc58d8316043b035643e7c21633bc13" args="(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_StringPtr qualNS, XMP_StringPtr qualName, tStringObj *qualValue, XMP_OptionBits *options) const " -->
+<a class="anchor" id="a2cc58d8316043b035643e7c21633bc13"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -1803,66 +1906,65 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">bool <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::GetQualifier </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>propName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>qualNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>qualNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>qualName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>qualName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tStringObj *&nbsp;</td>
- <td class="paramname"> <em>qualValue</em>, </td>
+ <td class="paramtype">tStringObj *&#160;</td>
+ <td class="paramname"><em>qualValue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&nbsp;</td>
- <td class="paramname"> <em>options</em></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&#160;</td>
+ <td class="paramname"><em>options</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td> const</td>
+ <td></td><td> const</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#a2cc58d8316043b035643e7c21633bc13" title="GetQualifier() provides access to a qualifier attached to a property.">GetQualifier()</a></code> provides access to a qualifier attached to a property. </p>
-<dl class="note"><dt><b>Note:</b></dt><dd>In this version of the Toolkit, qualifiers are supported only for simple leaf properties.</dd></dl>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>The namespace URI; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>propName</em>&nbsp;</td><td>The name of the property to which the qualifier is attached. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code> for namespace prefix usage.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>qualNS</em>&nbsp;</td><td>The namespace URI for the qualifier. Same URI and prefix usage as the <code>schemaNS</code> and <code>propName</code> parameters.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>qualName</em>&nbsp;</td><td>The name of the qualifier. Must be a single XML name, must not be null or the empty string. Same URI and prefix usage as the <code>schemaNS</code> and <code>propName</code> parameters.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>qualValue</em>&nbsp;</td><td>[out] A string object in which to return the value of the qualifier, if the qualifier has a value. Arrays and non-leaf levels of structs do not have values. Can be null if the value is not wanted.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>[out] A buffer in which to return the option flags describing the qualifier. Can be null if the flags are not wanted.</td></tr>
+<p><code><a class="el" href="classTXMPMeta.html#a2cc58d8316043b035643e7c21633bc13" title="GetQualifier() provides access to a qualifier attached to a property. ">GetQualifier()</a></code> provides access to a qualifier attached to a property. </p>
+<dl class="section note"><dt>Note</dt><dd>In this version of the Toolkit, qualifiers are supported only for simple leaf properties.</dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">schemaNS</td><td>The namespace URI; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>.</td></tr>
+ <tr><td class="paramname">propName</td><td>The name of the property to which the qualifier is attached. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code> for namespace prefix usage.</td></tr>
+ <tr><td class="paramname">qualNS</td><td>The namespace URI for the qualifier. Same URI and prefix usage as the <code>schemaNS</code> and <code>propName</code> parameters.</td></tr>
+ <tr><td class="paramname">qualName</td><td>The name of the qualifier. Must be a single XML name, must not be null or the empty string. Same URI and prefix usage as the <code>schemaNS</code> and <code>propName</code> parameters.</td></tr>
+ <tr><td class="paramname">qualValue</td><td>[out] A string object in which to return the value of the qualifier, if the qualifier has a value. Arrays and non-leaf levels of structs do not have values. Can be null if the value is not wanted.</td></tr>
+ <tr><td class="paramname">options</td><td>[out] A buffer in which to return the option flags describing the qualifier. Can be null if the flags are not wanted.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>True if the qualifier exists. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>True if the qualifier exists. </dd></dl>
</div>
</div>
-<a class="anchor" id="a885ef7127b897e349f71fa493ace3c94"></a><!-- doxytag: member="TXMPMeta::GetStructField" ref="a885ef7127b897e349f71fa493ace3c94" args="(XMP_StringPtr schemaNS, XMP_StringPtr structName, XMP_StringPtr fieldNS, XMP_StringPtr fieldName, tStringObj *fieldValue, XMP_OptionBits *options) const " -->
+<a class="anchor" id="a885ef7127b897e349f71fa493ace3c94"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -1871,121 +1973,132 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">bool <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::GetStructField </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>structName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>structName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>fieldNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>fieldNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>fieldName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>fieldName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tStringObj *&nbsp;</td>
- <td class="paramname"> <em>fieldValue</em>, </td>
+ <td class="paramtype">tStringObj *&#160;</td>
+ <td class="paramname"><em>fieldValue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&nbsp;</td>
- <td class="paramname"> <em>options</em></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&#160;</td>
+ <td class="paramname"><em>options</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td> const</td>
+ <td></td><td> const</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#a885ef7127b897e349f71fa493ace3c94" title="GetStructField() provides access to fields within a nested structure.">GetStructField()</a></code> provides access to fields within a nested structure. </p>
+<p><code><a class="el" href="classTXMPMeta.html#a885ef7127b897e349f71fa493ace3c94" title="GetStructField() provides access to fields within a nested structure. ">GetStructField()</a></code> provides access to fields within a nested structure. </p>
<p>Reports whether the field exists; if it does, and if it has a value, the function retrieves the value.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>The namespace URI for the struct; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>structName</em>&nbsp;</td><td>The name of the struct. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code> for namespace prefix usage.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>fieldNS</em>&nbsp;</td><td>The namespace URI for the field. Same URI and prefix usage as the <code>schemaNS</code> and <code>structName</code> parameters.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>fieldName</em>&nbsp;</td><td>The name of the field. Must be a single XML name, must not be null or the empty string. Same URI and prefix usage as the <code>schemaNS</code> and <code>structName</code> parameters.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>fieldValue</em>&nbsp;</td><td>[out] A string object in which to return the value of the field, if the field has a value. Arrays and non-leaf levels of structs do not have values. Can be null if the value is not wanted.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>[out] A buffer in which to return the option flags describing the field. Can be null if the flags are not wanted.</td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">schemaNS</td><td>The namespace URI for the struct; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>.</td></tr>
+ <tr><td class="paramname">structName</td><td>The name of the struct. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code> for namespace prefix usage.</td></tr>
+ <tr><td class="paramname">fieldNS</td><td>The namespace URI for the field. Same URI and prefix usage as the <code>schemaNS</code> and <code>structName</code> parameters.</td></tr>
+ <tr><td class="paramname">fieldName</td><td>The name of the field. Must be a single XML name, must not be null or the empty string. Same URI and prefix usage as the <code>schemaNS</code> and <code>structName</code> parameters.</td></tr>
+ <tr><td class="paramname">fieldValue</td><td>[out] A string object in which to return the value of the field, if the field has a value. Arrays and non-leaf levels of structs do not have values. Can be null if the value is not wanted.</td></tr>
+ <tr><td class="paramname">options</td><td>[out] A buffer in which to return the option flags describing the field. Can be null if the flags are not wanted.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>True if the field exists. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>True if the field exists. </dd></dl>
</div>
</div>
-<a class="anchor" id="a5415cfc01a9cb8786939246571a23a9d"></a><!-- doxytag: member="TXMPMeta::GetVersionInfo" ref="a5415cfc01a9cb8786939246571a23a9d" args="(XMP_VersionInfo *info)" -->
+<a class="anchor" id="a5415cfc01a9cb8786939246571a23a9d"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj&gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::GetVersionInfo </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="structXMP__VersionInfo.html">XMP_VersionInfo</a> *&nbsp;</td>
- <td class="paramname"> <em>info</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td><code> [static]</code></td>
+ <td class="paramtype"><a class="el" href="structXMP__VersionInfo.html">XMP_VersionInfo</a> *&#160;</td>
+ <td class="paramname"><em>info</em></td><td>)</td>
+ <td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#a5415cfc01a9cb8786939246571a23a9d" title="GetVersionInfo() retrieves runtime version information.">GetVersionInfo()</a></code> retrieves runtime version information. </p>
+<p><code><a class="el" href="classTXMPMeta.html#a5415cfc01a9cb8786939246571a23a9d" title="GetVersionInfo() retrieves runtime version information. ">GetVersionInfo()</a></code> retrieves runtime version information. </p>
<p>The header <code>XMPVersion.hpp</code> defines a static version number for the XMP Toolkit, which describes the version of the API used at client compile time. It is not necessarily the same as the runtime version. Do not base runtime decisions on the static version alone; you can, however, compare the runtime and static versions.</p>
-<p>This function is static; make the call directly from the concrete class (<code>SXMPMeta</code>). The function can be called before calling <code><a class="el" href="classTXMPMeta.html#af1defbb73f919eae06456a655dea726c" title="Initialize() explicitly initializes the XMP Toolkit before use. */">TXMPMeta::Initialize()</a></code>.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>info</em>&nbsp;</td><td>[out] A buffer in which to return the version information. </td></tr>
+<p>This function is static; make the call directly from the concrete class (<code>SXMPMeta</code>). The function can be called before calling <code><a class="el" href="classTXMPMeta.html#af1defbb73f919eae06456a655dea726c" title="Initialize() explicitly initializes the XMP Toolkit before use. */ ">TXMPMeta::Initialize()</a></code>.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">info</td><td>[out] A buffer in which to return the version information. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="af1defbb73f919eae06456a655dea726c"></a><!-- doxytag: member="TXMPMeta::Initialize" ref="af1defbb73f919eae06456a655dea726c" args="()" -->
+<a class="anchor" id="af1defbb73f919eae06456a655dea726c"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj&gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">* static bool <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::Initialize </td>
<td>(</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td><code> [static]</code></td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#af1defbb73f919eae06456a655dea726c" title="Initialize() explicitly initializes the XMP Toolkit before use. */">Initialize()</a></code> explicitly initializes the XMP Toolkit before use. */ </p>
+<p><code><a class="el" href="classTXMPMeta.html#af1defbb73f919eae06456a655dea726c" title="Initialize() explicitly initializes the XMP Toolkit before use. */ ">Initialize()</a></code> explicitly initializes the XMP Toolkit before use. */ </p>
<p>Initializes the XMP Toolkit.</p>
-<p>Call this function before making any other calls to the <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta</a></code> functions, except <code><a class="el" href="classTXMPMeta.html#a5415cfc01a9cb8786939246571a23a9d" title="GetVersionInfo() retrieves runtime version information.">TXMPMeta::GetVersionInfo()</a></code>.</p>
+<p>Call this function before making any other calls to the <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services. ">TXMPMeta</a></code> functions, except <code><a class="el" href="classTXMPMeta.html#a5415cfc01a9cb8786939246571a23a9d" title="GetVersionInfo() retrieves runtime version information. ">TXMPMeta::GetVersionInfo()</a></code>.</p>
<p>This function is static; make the call directly from the concrete class (<code>SXMPMeta</code>).</p>
-<dl class="return"><dt><b>Returns:</b></dt><dd>True on success. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>True on success. </dd></dl>
</div>
</div>
-<a class="anchor" id="a4d5a601c9b77f6f6ab5f14e658de58ef"></a><!-- doxytag: member="TXMPMeta::operator=" ref="a4d5a601c9b77f6f6ab5f14e658de58ef" args="(const TXMPMeta&lt; tStringObj &gt; &amp;rhs)" -->
+<a class="anchor" id="a4d5a601c9b77f6f6ab5f14e658de58ef"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -1994,21 +2107,19 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">void <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::operator= </td>
<td>(</td>
- <td class="paramtype">const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;&nbsp;</td>
- <td class="paramname"> <em>rhs</em></td>
- <td>&nbsp;)&nbsp;</td>
+ <td class="paramtype">const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;&#160;</td>
+ <td class="paramname"><em>rhs</em></td><td>)</td>
<td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
<p>Assignment operator, assigns the internal reference and increments the reference count. </p>
<p>The assignment operator assigns the internal ref from the rhs object and increments the reference count on the underlying internal XMP object. </p>
</div>
</div>
-<a class="anchor" id="a7b383f5b357fff040cdbde82f4f43f26"></a><!-- doxytag: member="TXMPMeta::ParseFromBuffer" ref="a7b383f5b357fff040cdbde82f4f43f26" args="(XMP_StringPtr buffer, XMP_StringLen bufferSize, XMP_OptionBits options=0)" -->
+<a class="anchor" id="a7b383f5b357fff040cdbde82f4f43f26"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -2017,100 +2128,106 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">void <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::ParseFromBuffer </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>buffer</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a>&nbsp;</td>
- <td class="paramname"> <em>bufferSize</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a>&#160;</td>
+ <td class="paramname"><em>bufferSize</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>options</em> = <code>0</code></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p><code><a class="el" href="classTXMPMeta.html#a7b383f5b357fff040cdbde82f4f43f26" title="ParseFromBuffer() parses RDF from a series of input buffers into this XMP object...">ParseFromBuffer()</a></code> parses RDF from a series of input buffers into this XMP object. </p>
-<p>Use this to convert metadata from serialized RDF form (as, for example, read from an XMP packet embedded in a file) into an XMP object that you can manipulate with the XMP Toolkit. If this XMP object is empty and the input buffer contains a complete XMP packet, this is the same as creating a new XMP object from that buffer with the constructor.</p>
-<p>You can use this function to combine multiple buffers into a single metadata tree. To terminate an input loop conveniently, pass the option <code><a class="el" href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca79b36427b7bf0c0a1ed010a44dec2d3e" title="This is the not last input buffer for this parse stream.">kXMP_ParseMoreBuffers</a></code> for all real input, then make a final call with a zero length and <code><a class="el" href="XMP__Const_8h.html#aff1df9f3cf050f8b8d3a574db3c3326b" title="Options macro clears all property-type bits.">kXMP_NoOptions</a></code>. The buffers can be any length. The buffer boundaries need not respect XML tokens or even Unicode characters.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>buffer</em>&nbsp;</td><td>A pointer to a buffer of input. Can be null if <code>bufferSize</code> is 0.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>bufferSize</em>&nbsp;</td><td>The length of the input buffer in bytes. Zero is a valid value.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>An options flag that controls how the parse operation is performed. A logical OR of these bit-flag constants: </p>
-<ul>
-<li><code><a class="el" href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca79b36427b7bf0c0a1ed010a44dec2d3e" title="This is the not last input buffer for this parse stream.">kXMP_ParseMoreBuffers</a></code> - This is not the last buffer of input, more calls follow. </li>
-<li><code><a class="el" href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca1e533852436acf75f594a4fb50a64400" title="Require a surrounding x:xmpmeta element.">kXMP_RequireXMPMeta</a></code> - The <code>x:xmpmeta</code> XML element is required around <code>rdf:RDF</code>.</li>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p><code><a class="el" href="classTXMPMeta.html#a7b383f5b357fff040cdbde82f4f43f26" title="ParseFromBuffer() parses RDF from a series of input buffers into this XMP object. ...">ParseFromBuffer()</a></code> parses RDF from a series of input buffers into this XMP object. </p>
+<p>The metadata contained in an XMP object must be serialized as RDF for storage in an XMP packet and output to a file. Similarly, metadata in the form of serialized RDF (such as metadata read from a file using <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file. ">TXMPFiles</a></code>) must be parsed into an XMP object for manipulation with the XMP Toolkit.</p>
+<p>These functions support parsing serialized RDF into an XMP object, and serializing an XMP object into RDF. The input for parsing can be any valid Unicode encoding. ISO Latin-1 is also recognized, but its use is strongly discouraged. Serialization is always as UTF-8.Use this to convert metadata from serialized RDF form (as, for example, read from an XMP packet embedded in a file) into an XMP object that you can manipulate with the XMP Toolkit. If this XMP object is empty and the input buffer contains a complete XMP packet, this is the same as creating a new XMP object from that buffer with the constructor.</p>
+<p>You can use this function to combine multiple buffers into a single metadata tree. To terminate an input loop conveniently, pass the option <code><a class="el" href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca79b36427b7bf0c0a1ed010a44dec2d3e" title="This is the not last input buffer for this parse stream. ">kXMP_ParseMoreBuffers</a></code> for all real input, then make a final call with a zero length and <code><a class="el" href="XMP__Const_8h.html#aff1df9f3cf050f8b8d3a574db3c3326b" title="Options macro clears all property-type bits. ">kXMP_NoOptions</a></code>. The buffers can be any length. The buffer boundaries need not respect XML tokens or even Unicode characters.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">buffer</td><td>A pointer to a buffer of input. Can be null if <code>bufferSize</code> is 0.</td></tr>
+ <tr><td class="paramname">bufferSize</td><td>The length of the input buffer in bytes. Zero is a valid value.</td></tr>
+ <tr><td class="paramname">options</td><td>An options flag that controls how the parse operation is performed. A logical OR of these bit-flag constants: <ul>
+<li><code><a class="el" href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca79b36427b7bf0c0a1ed010a44dec2d3e" title="This is the not last input buffer for this parse stream. ">kXMP_ParseMoreBuffers</a></code> - This is not the last buffer of input, more calls follow. </li>
+<li><code><a class="el" href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca1e533852436acf75f594a4fb50a64400" title="Require a surrounding x:xmpmeta element. ">kXMP_RequireXMPMeta</a></code> - The <code>x:xmpmeta</code> XML element is required around <code>rdf:RDF</code>.</li>
</ul>
</td></tr>
</table>
</dd>
</dl>
-<dl class="see"><dt><b>See also:</b></dt><dd><code><a class="el" href="classTXMPFiles.html#a42ca0bbc5ac66a8de1710e03a7ff17b3" title="GetXMP() retrieves the XMP metadata from an open file.">TXMPFiles::GetXMP()</a></code> </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><code><a class="el" href="classTXMPFiles.html#a42ca0bbc5ac66a8de1710e03a7ff17b3" title="GetXMP() retrieves the XMP metadata from an open file. ">TXMPFiles::GetXMP()</a></code> </dd></dl>
</div>
</div>
-<a class="anchor" id="ac0368ddbaa4d689cd5b1aff1c88bb0e1"></a><!-- doxytag: member="TXMPMeta::RegisterNamespace" ref="ac0368ddbaa4d689cd5b1aff1c88bb0e1" args="(XMP_StringPtr namespaceURI, XMP_StringPtr suggestedPrefix, tStringObj *registeredPrefix)" -->
+<a class="anchor" id="ac0368ddbaa4d689cd5b1aff1c88bb0e1"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj&gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">* static bool <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::RegisterNamespace </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>namespaceURI</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>namespaceURI</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>suggestedPrefix</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>suggestedPrefix</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tStringObj *&nbsp;</td>
- <td class="paramname"> <em>registeredPrefix</em></td><td>&nbsp;</td>
+ <td class="paramtype">tStringObj *&#160;</td>
+ <td class="paramname"><em>registeredPrefix</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td><code> [static]</code></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#ac0368ddbaa4d689cd5b1aff1c88bb0e1" title="RegisterNamespace() registers a namespace URI with a suggested prefix.">RegisterNamespace()</a></code> registers a namespace URI with a suggested prefix. </p>
+<p><code><a class="el" href="classTXMPMeta.html#ac0368ddbaa4d689cd5b1aff1c88bb0e1" title="RegisterNamespace() registers a namespace URI with a suggested prefix. ">RegisterNamespace()</a></code> registers a namespace URI with a suggested prefix. </p>
<p>If the URI is not registered but the suggested prefix is in use, a unique prefix is created from the suggested one. The actual registered prefix is returned. The function result tells if the registered prefix is the suggested one. It is not an error if the URI is already registered, regardless of the prefix.</p>
<p>This function is static; make the call directly from the concrete class (<code>SXMPMeta</code>).</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>namespaceURI</em>&nbsp;</td><td>The URI for the namespace. Must be a valid XML URI.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>suggestedPrefix</em>&nbsp;</td><td>The suggested prefix to be used if the URI is not yet registered. Must be a valid XML name.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>registeredPrefix</em>&nbsp;</td><td>[out] A string object in which to return the prefix actually registered for this URI.</td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">namespaceURI</td><td>The URI for the namespace. Must be a valid XML URI.</td></tr>
+ <tr><td class="paramname">suggestedPrefix</td><td>The suggested prefix to be used if the URI is not yet registered. Must be a valid XML name.</td></tr>
+ <tr><td class="paramname">registeredPrefix</td><td>[out] A string object in which to return the prefix actually registered for this URI.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>True if the registered prefix matches the suggested prefix.</dd></dl>
-<dl class="note"><dt><b>Note:</b></dt><dd>No checking is done on either the URI or the prefix. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>True if the registered prefix matches the suggested prefix.</dd></dl>
+<dl class="section note"><dt>Note</dt><dd>No checking is done on either the URI or the prefix. </dd></dl>
</div>
</div>
-<a class="anchor" id="a31c7ef089e8fadff122044afa27d200a"></a><!-- doxytag: member="TXMPMeta::ResetErrorCallbackLimit" ref="a31c7ef089e8fadff122044afa27d200a" args="(XMP_Uns32 limit=1)" -->
+<a class="anchor" id="a31c7ef089e8fadff122044afa27d200a"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -2119,26 +2236,24 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">void <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::ResetErrorCallbackLimit </td>
<td>(</td>
- <td class="paramtype">XMP_Uns32&nbsp;</td>
- <td class="paramname"> <em>limit</em> = <code>1</code></td>
- <td>&nbsp;)&nbsp;</td>
+ <td class="paramtype">XMP_Uns32&#160;</td>
+ <td class="paramname"><em>limit</em> = <code>1</code></td><td>)</td>
<td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><a class="el" href="classTXMPMeta.html#a31c7ef089e8fadff122044afa27d200a" title="ResetErrorCallbackLimit() resets the error notification limit and counting. It has...">ResetErrorCallbackLimit()</a> resets the error notification limit and counting. It has no effect if an error notification callback function is not registered. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>limit</em>&nbsp;</td><td>A limit on the number of notifications to be delivered. </td></tr>
+<p><a class="el" href="classTXMPMeta.html#a31c7ef089e8fadff122044afa27d200a" title="ResetErrorCallbackLimit() resets the error notification limit and counting. It has no effect if an er...">ResetErrorCallbackLimit()</a> resets the error notification limit and counting. It has no effect if an error notification callback function is not registered. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">limit</td><td>A limit on the number of notifications to be delivered. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="a0d98bc15bdb0f45737b15fc6822f3bc6"></a><!-- doxytag: member="TXMPMeta::SerializeToBuffer" ref="a0d98bc15bdb0f45737b15fc6822f3bc6" args="(tStringObj *rdfString, XMP_OptionBits options=0, XMP_StringLen padding=0) const " -->
+<a class="anchor" id="a2774a6f15ae22f0002201b58c46bfb49"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -2147,60 +2262,78 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">void <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::SerializeToBuffer </td>
<td>(</td>
- <td class="paramtype">tStringObj *&nbsp;</td>
- <td class="paramname"> <em>rdfString</em>, </td>
+ <td class="paramtype">tStringObj *&#160;</td>
+ <td class="paramname"><em>rdfString</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>options</em> = <code>0</code>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a>&nbsp;</td>
- <td class="paramname"> <em>padding</em> = <code>0</code></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a>&#160;</td>
+ <td class="paramname"><em>padding</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>newline</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>indent</em> = <code>&quot;&quot;</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a>&#160;</td>
+ <td class="paramname"><em>baseIndent</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td> const</td>
+ <td></td><td> const</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#a2774a6f15ae22f0002201b58c46bfb49" title="SerializeToBuffer() serializes metadata in this XMP object into a string as RDF.">SerializeToBuffer()</a></code> serializes metadata in this XMP object into a string as RDF. </p>
-<p>This simpler form of the function uses default values for the <code>newline</code>, <code>indent</code>, and <code>baseIndent</code> parameters.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>rdfString</em>&nbsp;</td><td>[out] A string object in which to return the serialized RDF. Must not be null.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>An options flag that controls how the serialization operation is performed. The specified options must be logically consistent; an exception is thrown if they are not. A logical OR of these bit-flag constants: </p>
-<ul>
-<li><code>kXMP_OmitPacketWrapper</code> - Do not include an XML packet wrapper. This cannot be specified together with <code><a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea238c792322c5bd5f9e4db3165e01f9d6" title="Default is a writeable packet.">kXMP_ReadOnlyPacket</a></code>, <code><a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea0b659b3b544c7a5a076fbd3132cd7f7a" title="Include a padding allowance for a thumbnail image.">kXMP_IncludeThumbnailPad</a></code>, or <code><a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadb35599da481cc22ea6342b7b4de6bc6" title="The padding parameter is the overall packet length.">kXMP_ExactPacketLength</a></code>. </li>
+<p><code><a class="el" href="classTXMPMeta.html#a2774a6f15ae22f0002201b58c46bfb49" title="SerializeToBuffer() serializes metadata in this XMP object into a string as RDF. ">SerializeToBuffer()</a></code> serializes metadata in this XMP object into a string as RDF. </p>
+<p>Use this to prepare metadata for storage as an XMP packet embedded in a file. See <code><a class="el" href="classTXMPFiles.html#ad3f7babdc07c7de0d0cd9a3362b4710a" title="PutXMP() updates the XMP metadata in this object without writing out the file. ">TXMPFiles::PutXMP()</a></code>.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">rdfString</td><td>[out] A string object in which to return the serialized RDF. Must not be null.</td></tr>
+ <tr><td class="paramname">options</td><td>An options flag that controls how the serialization operation is performed. The specified options must be logically consistent; an exception is thrown if they are not. A logical OR of these bit-flag constants: <ul>
+<li><code>kXMP_OmitPacketWrapper</code> - Do not include an XML packet wrapper. This cannot be specified together with <code><a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea238c792322c5bd5f9e4db3165e01f9d6" title="Default is a writeable packet. ">kXMP_ReadOnlyPacket</a></code>, <code><a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea0b659b3b544c7a5a076fbd3132cd7f7a" title="Include a padding allowance for a thumbnail image. ">kXMP_IncludeThumbnailPad</a></code>, or <code><a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadb35599da481cc22ea6342b7b4de6bc6" title="The padding parameter is the overall packet length. ">kXMP_ExactPacketLength</a></code>. </li>
<li><code>kXMP_ReadOnlyPacket</code> - Create a read-only XML packet wapper. Cannot be specified together with <code>kXMP_OmitPacketWrapper</code>. </li>
<li><code>kXMP_UseCompactFormat</code> - Use a highly compact RDF syntax and layout. </li>
<li><code>kXMP_IncludeThumbnailPad</code> - Include typical space for a JPEG thumbnail in the padding if no <code>xmp:Thumbnails</code> property is present. Cannot be specified together with <code>kXMP_OmitPacketWrapper</code>. </li>
<li><code>kXMP_ExactPacketLength</code> - The padding parameter provides the overall packet length. The actual amount of padding is computed. An exception is thrown if the packet exceeds this length with no padding. Cannot be specified together with <code>kXMP_OmitPacketWrapper</code>.</li>
</ul>
-<p>In addition to the above options, you can include one of the following encoding options: </p>
-<ul>
-<li><code><a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadc8f241694f5a758e5ee3f6db69d02ab" title="Use UTF8 encoding.">kXMP_EncodeUTF8</a></code> - Encode as UTF-8, the default. </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea310e4cbf639e783163778566b439f01d" title="Use UTF16 big-endian encoding.">kXMP_EncodeUTF16Big</a></code> - Encode as big-endian UTF-16. </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eafc6417e382c98a2d507830de62fd4830" title="Use UTF16 little-endian encoding.">kXMP_EncodeUTF16Little</a></code> - Encode as little-endian UTF-16. </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea793e99d9ea83f0aadd5b4193a95ea713" title="Use UTF32 big-endian encoding.">kXMP_EncodeUTF32Big</a></code> - Encode as big-endian UTF-32. </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eae0137d98ea990fa23d292489031ba09e" title="Use UTF13 little-endian encoding.">kXMP_EncodeUTF32Little</a></code> - Encode as little-endian UTF-32.</li>
+In addition to the above options, you can include one of the following encoding options: <ul>
+<li><code><a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadc8f241694f5a758e5ee3f6db69d02ab" title="Use UTF8 encoding. ">kXMP_EncodeUTF8</a></code> - Encode as UTF-8, the default. </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea310e4cbf639e783163778566b439f01d" title="Use UTF16 big-endian encoding. ">kXMP_EncodeUTF16Big</a></code> - Encode as big-endian UTF-16. </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eafc6417e382c98a2d507830de62fd4830" title="Use UTF16 little-endian encoding. ">kXMP_EncodeUTF16Little</a></code> - Encode as little-endian UTF-16. </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea793e99d9ea83f0aadd5b4193a95ea713" title="Use UTF32 big-endian encoding. ">kXMP_EncodeUTF32Big</a></code> - Encode as big-endian UTF-32. </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eae0137d98ea990fa23d292489031ba09e" title="Use UTF13 little-endian encoding. ">kXMP_EncodeUTF32Little</a></code> - Encode as little-endian UTF-32.</li>
</ul>
</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>padding</em>&nbsp;</td><td>The amount of padding to be added if a writeable XML packet is created. If zero (the default) an appropriate amount of padding is computed. </td></tr>
+ <tr><td class="paramname">padding</td><td>The amount of padding to be added if a writeable XML packet is created. If zero (the default) an appropriate amount of padding is computed.</td></tr>
+ <tr><td class="paramname">newline</td><td>The string to be used as a line terminator. If empty, defaults to linefeed, U+000A, the standard XML newline.</td></tr>
+ <tr><td class="paramname">indent</td><td>The string to be used for each level of indentation in the serialized RDF. If empty, defaults to two ASCII spaces, U+0020.</td></tr>
+ <tr><td class="paramname">baseIndent</td><td>The number of levels of indentation to be used for the outermost XML element in the serialized RDF. This is convenient when embedding the RDF in other text. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="a2774a6f15ae22f0002201b58c46bfb49"></a><!-- doxytag: member="TXMPMeta::SerializeToBuffer" ref="a2774a6f15ae22f0002201b58c46bfb49" args="(tStringObj *rdfString, XMP_OptionBits options, XMP_StringLen padding, XMP_StringPtr newline, XMP_StringPtr indent=&quot;&quot;, XMP_Index baseIndent=0) const " -->
+<a class="anchor" id="a0d98bc15bdb0f45737b15fc6822f3bc6"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -2209,81 +2342,57 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">void <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::SerializeToBuffer </td>
<td>(</td>
- <td class="paramtype">tStringObj *&nbsp;</td>
- <td class="paramname"> <em>rdfString</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>options</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a>&nbsp;</td>
- <td class="paramname"> <em>padding</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>newline</em>, </td>
+ <td class="paramtype">tStringObj *&#160;</td>
+ <td class="paramname"><em>rdfString</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>indent</em> = <code>&quot;&quot;</code>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em> = <code>0</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a>&nbsp;</td>
- <td class="paramname"> <em>baseIndent</em> = <code>0</code></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a>&#160;</td>
+ <td class="paramname"><em>padding</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td> const</td>
+ <td></td><td> const</td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#a2774a6f15ae22f0002201b58c46bfb49" title="SerializeToBuffer() serializes metadata in this XMP object into a string as RDF.">SerializeToBuffer()</a></code> serializes metadata in this XMP object into a string as RDF. </p>
-<p>Use this to prepare metadata for storage as an XMP packet embedded in a file. See <code><a class="el" href="classTXMPFiles.html#ad3f7babdc07c7de0d0cd9a3362b4710a" title="PutXMP() updates the XMP metadata in this object without writing out the file.">TXMPFiles::PutXMP()</a></code>.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>rdfString</em>&nbsp;</td><td>[out] A string object in which to return the serialized RDF. Must not be null.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>An options flag that controls how the serialization operation is performed. The specified options must be logically consistent; an exception is thrown if they are not. A logical OR of these bit-flag constants: </p>
-<ul>
-<li><code>kXMP_OmitPacketWrapper</code> - Do not include an XML packet wrapper. This cannot be specified together with <code><a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea238c792322c5bd5f9e4db3165e01f9d6" title="Default is a writeable packet.">kXMP_ReadOnlyPacket</a></code>, <code><a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea0b659b3b544c7a5a076fbd3132cd7f7a" title="Include a padding allowance for a thumbnail image.">kXMP_IncludeThumbnailPad</a></code>, or <code><a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadb35599da481cc22ea6342b7b4de6bc6" title="The padding parameter is the overall packet length.">kXMP_ExactPacketLength</a></code>. </li>
+<p><code><a class="el" href="classTXMPMeta.html#a2774a6f15ae22f0002201b58c46bfb49" title="SerializeToBuffer() serializes metadata in this XMP object into a string as RDF. ">SerializeToBuffer()</a></code> serializes metadata in this XMP object into a string as RDF. </p>
+<p>This simpler form of the function uses default values for the <code>newline</code>, <code>indent</code>, and <code>baseIndent</code> parameters.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">rdfString</td><td>[out] A string object in which to return the serialized RDF. Must not be null.</td></tr>
+ <tr><td class="paramname">options</td><td>An options flag that controls how the serialization operation is performed. The specified options must be logically consistent; an exception is thrown if they are not. A logical OR of these bit-flag constants: <ul>
+<li><code>kXMP_OmitPacketWrapper</code> - Do not include an XML packet wrapper. This cannot be specified together with <code><a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea238c792322c5bd5f9e4db3165e01f9d6" title="Default is a writeable packet. ">kXMP_ReadOnlyPacket</a></code>, <code><a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea0b659b3b544c7a5a076fbd3132cd7f7a" title="Include a padding allowance for a thumbnail image. ">kXMP_IncludeThumbnailPad</a></code>, or <code><a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadb35599da481cc22ea6342b7b4de6bc6" title="The padding parameter is the overall packet length. ">kXMP_ExactPacketLength</a></code>. </li>
<li><code>kXMP_ReadOnlyPacket</code> - Create a read-only XML packet wapper. Cannot be specified together with <code>kXMP_OmitPacketWrapper</code>. </li>
<li><code>kXMP_UseCompactFormat</code> - Use a highly compact RDF syntax and layout. </li>
<li><code>kXMP_IncludeThumbnailPad</code> - Include typical space for a JPEG thumbnail in the padding if no <code>xmp:Thumbnails</code> property is present. Cannot be specified together with <code>kXMP_OmitPacketWrapper</code>. </li>
<li><code>kXMP_ExactPacketLength</code> - The padding parameter provides the overall packet length. The actual amount of padding is computed. An exception is thrown if the packet exceeds this length with no padding. Cannot be specified together with <code>kXMP_OmitPacketWrapper</code>.</li>
</ul>
-<p>In addition to the above options, you can include one of the following encoding options: </p>
-<ul>
-<li><code><a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadc8f241694f5a758e5ee3f6db69d02ab" title="Use UTF8 encoding.">kXMP_EncodeUTF8</a></code> - Encode as UTF-8, the default. </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea310e4cbf639e783163778566b439f01d" title="Use UTF16 big-endian encoding.">kXMP_EncodeUTF16Big</a></code> - Encode as big-endian UTF-16. </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eafc6417e382c98a2d507830de62fd4830" title="Use UTF16 little-endian encoding.">kXMP_EncodeUTF16Little</a></code> - Encode as little-endian UTF-16. </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea793e99d9ea83f0aadd5b4193a95ea713" title="Use UTF32 big-endian encoding.">kXMP_EncodeUTF32Big</a></code> - Encode as big-endian UTF-32. </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eae0137d98ea990fa23d292489031ba09e" title="Use UTF13 little-endian encoding.">kXMP_EncodeUTF32Little</a></code> - Encode as little-endian UTF-32.</li>
+In addition to the above options, you can include one of the following encoding options: <ul>
+<li><code><a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadc8f241694f5a758e5ee3f6db69d02ab" title="Use UTF8 encoding. ">kXMP_EncodeUTF8</a></code> - Encode as UTF-8, the default. </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea310e4cbf639e783163778566b439f01d" title="Use UTF16 big-endian encoding. ">kXMP_EncodeUTF16Big</a></code> - Encode as big-endian UTF-16. </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eafc6417e382c98a2d507830de62fd4830" title="Use UTF16 little-endian encoding. ">kXMP_EncodeUTF16Little</a></code> - Encode as little-endian UTF-16. </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea793e99d9ea83f0aadd5b4193a95ea713" title="Use UTF32 big-endian encoding. ">kXMP_EncodeUTF32Big</a></code> - Encode as big-endian UTF-32. </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eae0137d98ea990fa23d292489031ba09e" title="Use UTF13 little-endian encoding. ">kXMP_EncodeUTF32Little</a></code> - Encode as little-endian UTF-32.</li>
</ul>
</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>padding</em>&nbsp;</td><td>The amount of padding to be added if a writeable XML packet is created. If zero (the default) an appropriate amount of padding is computed.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>newline</em>&nbsp;</td><td>The string to be used as a line terminator. If empty, defaults to linefeed, U+000A, the standard XML newline.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>indent</em>&nbsp;</td><td>The string to be used for each level of indentation in the serialized RDF. If empty, defaults to two ASCII spaces, U+0020.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>baseIndent</em>&nbsp;</td><td>The number of levels of indentation to be used for the outermost XML element in the serialized RDF. This is convenient when embedding the RDF in other text. </td></tr>
+ <tr><td class="paramname">padding</td><td>The amount of padding to be added if a writeable XML packet is created. If zero (the default) an appropriate amount of padding is computed. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="a15720ee8e732232fa25989870cf99846"></a><!-- doxytag: member="TXMPMeta::SetArrayItem" ref="a15720ee8e732232fa25989870cf99846" args="(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_Index itemIndex, const tStringObj &amp;itemValue, XMP_OptionBits options=0)" -->
+<a class="anchor" id="a1570eb89d613b4a94ca572e4644168cc"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -2292,48 +2401,59 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">void <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::SetArrayItem </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>arrayName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>arrayName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a>&nbsp;</td>
- <td class="paramname"> <em>itemIndex</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a>&#160;</td>
+ <td class="paramname"><em>itemIndex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">const tStringObj &amp;&nbsp;</td>
- <td class="paramname"> <em>itemValue</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>itemValue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>options</em> = <code>0</code></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#a1570eb89d613b4a94ca572e4644168cc" title="SetArrayItem() creates or sets the value of an item within an array.">SetArrayItem()</a></code> creates or sets the value of an item within an array using a string object. </p>
-<p>Overloads the basic form of the function, allowing you to pass a string object in which to return the item value. It is otherwise identical; see details in the canonical form. </p>
+<p><code><a class="el" href="classTXMPMeta.html#a1570eb89d613b4a94ca572e4644168cc" title="SetArrayItem() creates or sets the value of an item within an array. ">SetArrayItem()</a></code> creates or sets the value of an item within an array. </p>
+<p>Items are accessed by an integer index, where the first item has index 1. This function creates the item if necessary, but the array itself must already exist Use <code><a class="el" href="classTXMPMeta.html#a00d7314dc970ad390499ce9db27d314a" title="AppendArrayItem() adds an item to an array, creating the array if necessary. ">AppendArrayItem()</a></code> to create arrays. A new item is automatically appended if the index is the array size plus 1. To insert a new item before or after an existing item, use option flags.</p>
+<p>Use <code><a class="el" href="classTXMPUtils.html#a47fa195aa2e1457aa1f74f7e1ed06da6" title="ComposeArrayItemPath() composes the path expression for an item in an array. ">TXMPUtils::ComposeArrayItemPath()</a></code> to create a complex path.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">schemaNS</td><td>The namespace URI; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>.</td></tr>
+ <tr><td class="paramname">arrayName</td><td>The name of the array. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code> for namespace prefix usage.</td></tr>
+ <tr><td class="paramname">itemIndex</td><td>The 1-based index of the desired item. Use the macro <code><a class="el" href="XMP__Const_8h.html#a9549b9a138a896257b5a70176d125317" title="Options macro accesses last array item. ">kXMP_ArrayLastItem</a></code> to specify the last existing array item.</td></tr>
+ <tr><td class="paramname">itemValue</td><td>The new item value, a null-terminated UTF-8 string, if the array item has a value.</td></tr>
+ <tr><td class="paramname">options</td><td>Option flags describing the array type and insertion location for a new item; a logical OR of allowed bit-flag constants. The type, if specified, must match the existing array type, <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5af1cdb3b0a3e852ec55e747a1686aba04" title="Implies kXMP_PropValueIsArray, item order matters. It is serialized using an rdf:Seq container...">kXMP_PropArrayIsOrdered</a></code>, <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a2596b1f0ea4600270c99102c86b5f1f1" title="Implies kXMP_PropArrayIsOrdered, items are alternates. It is serialized using an rdf:Alt container...">kXMP_PropArrayIsAlternate</a></code>, or <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aba253f67a6cf44b7438a3f96b516846d">kXMP_PropArrayIsAltText</a></code>. Default (0 or <code><a class="el" href="XMP__Const_8h.html#aff1df9f3cf050f8b8d3a574db3c3326b" title="Options macro clears all property-type bits. ">kXMP_NoOptions</a></code>) matches the existing array type.</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>To insert a new item before or after the specified index, set flag <code><a class="el" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04a873411f673fc2a6337083fd024df727f" title="Option for array item location: Insert a new item before the given index. ">kXMP_InsertBeforeItem</a></code> or <code><a class="el" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04a98cedd5fa29d47abb2ac8903ac7f5a05" title="Option for array item location: Insert a new item after the given index. ">kXMP_InsertAfterItem</a></code>. </p>
</div>
</div>
-<a class="anchor" id="a1570eb89d613b4a94ca572e4644168cc"></a><!-- doxytag: member="TXMPMeta::SetArrayItem" ref="a1570eb89d613b4a94ca572e4644168cc" args="(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_Index itemIndex, XMP_StringPtr itemValue, XMP_OptionBits options=0)" -->
+<a class="anchor" id="a15720ee8e732232fa25989870cf99846"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -2342,105 +2462,143 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">void <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::SetArrayItem </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>arrayName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>arrayName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a>&nbsp;</td>
- <td class="paramname"> <em>itemIndex</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a>&#160;</td>
+ <td class="paramname"><em>itemIndex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>itemValue</em>, </td>
+ <td class="paramtype">const tStringObj &amp;&#160;</td>
+ <td class="paramname"><em>itemValue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>options</em> = <code>0</code></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#a1570eb89d613b4a94ca572e4644168cc" title="SetArrayItem() creates or sets the value of an item within an array.">SetArrayItem()</a></code> creates or sets the value of an item within an array. </p>
-<p>Items are accessed by an integer index, where the first item has index 1. This function creates the item if necessary, but the array itself must already exist Use <code><a class="el" href="classTXMPMeta.html#a00d7314dc970ad390499ce9db27d314a" title="AppendArrayItem() adds an item to an array, creating the array if necessary.">AppendArrayItem()</a></code> to create arrays. A new item is automatically appended if the index is the array size plus 1. To insert a new item before or after an existing item, use option flags.</p>
-<p>Use <code><a class="el" href="classTXMPUtils.html#a47fa195aa2e1457aa1f74f7e1ed06da6" title="ComposeArrayItemPath() composes the path expression for an item in an array.">TXMPUtils::ComposeArrayItemPath()</a></code> to create a complex path.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>The namespace URI; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>arrayName</em>&nbsp;</td><td>The name of the array. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code> for namespace prefix usage.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>itemIndex</em>&nbsp;</td><td>The 1-based index of the desired item. Use the macro <code><a class="el" href="XMP__Const_8h.html#a9549b9a138a896257b5a70176d125317" title="Options macro accesses last array item.">kXMP_ArrayLastItem</a></code> to specify the last existing array item.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>itemValue</em>&nbsp;</td><td>The new item value, a null-terminated UTF-8 string, if the array item has a value.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>Option flags describing the array type and insertion location for a new item; a logical OR of allowed bit-flag constants. The type, if specified, must match the existing array type, <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5af1cdb3b0a3e852ec55e747a1686aba04" title="Implies kXMP_PropValueIsArray, item order matters. It is serialized using an rdf:Seq...">kXMP_PropArrayIsOrdered</a></code>, <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a2596b1f0ea4600270c99102c86b5f1f1" title="Implies kXMP_PropArrayIsOrdered, items are alternates. It is serialized using an...">kXMP_PropArrayIsAlternate</a></code>, or <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aba253f67a6cf44b7438a3f96b516846d">kXMP_PropArrayIsAltText</a></code>. Default (0 or <code><a class="el" href="XMP__Const_8h.html#aff1df9f3cf050f8b8d3a574db3c3326b" title="Options macro clears all property-type bits.">kXMP_NoOptions</a></code>) matches the existing array type.</td></tr>
- </table>
- </dd>
-</dl>
-<p>To insert a new item before or after the specified index, set flag <code><a class="el" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04a873411f673fc2a6337083fd024df727f" title="Option for array item location: Insert a new item before the given index.">kXMP_InsertBeforeItem</a></code> or <code><a class="el" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04a98cedd5fa29d47abb2ac8903ac7f5a05" title="Option for array item location: Insert a new item after the given index.">kXMP_InsertAfterItem</a></code>. </p>
+<p><code><a class="el" href="classTXMPMeta.html#a1570eb89d613b4a94ca572e4644168cc" title="SetArrayItem() creates or sets the value of an item within an array. ">SetArrayItem()</a></code> creates or sets the value of an item within an array using a string object. </p>
+<p>Overloads the basic form of the function, allowing you to pass a string object in which to return the item value. It is otherwise identical; see details in the canonical form. </p>
</div>
</div>
-<a class="anchor" id="a1e90e0c8cd8c5670267bb693cf3660fe"></a><!-- doxytag: member="TXMPMeta::SetDefaultErrorCallback" ref="a1e90e0c8cd8c5670267bb693cf3660fe" args="(XMPMeta_ErrorCallbackProc proc, void *context=0, XMP_Uns32 limit=1)" -->
+<a class="anchor" id="a67bbfe3f55af71a5122512ebb695e4ed"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj&gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
- <td class="memname">static void <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::SetDefaultErrorCallback </td>
+ <td class="memname">static void <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::SetClientString </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a6027ee7b7d17a0fec636f812c5346af7">XMPMeta_ErrorCallbackProc</a>&nbsp;</td>
- <td class="paramname"> <em>proc</em>, </td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>clientPtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">void *&nbsp;</td>
- <td class="paramname"> <em>context</em> = <code>0</code>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>valuePtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">XMP_Uns32&nbsp;</td>
- <td class="paramname"> <em>limit</em> = <code>1</code></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a>&#160;</td>
+ <td class="paramname"><em>valueLen</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td><code> [static]</code></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p><a class="el" href="classTXMPMeta.html#a1e90e0c8cd8c5670267bb693cf3660fe" title="SetDefaultErrorCallback() registers a global default error notification callback...">SetDefaultErrorCallback()</a> registers a global default error notification callback. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>proc</em>&nbsp;</td><td>The client's callback function.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>Client-provided context for the callback.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>limit</em>&nbsp;</td><td>A limit on the number of notifications to be delivered. </td></tr>
+</div>
+</div>
+<a class="anchor" id="a1e90e0c8cd8c5670267bb693cf3660fe"></a>
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class tStringObj&gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static void <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::SetDefaultErrorCallback </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#abb3c238ce96e9198ebe4260200bfb67b">XMPMeta_ErrorCallbackProc</a>&#160;</td>
+ <td class="paramname"><em>proc</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>context</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">XMP_Uns32&#160;</td>
+ <td class="paramname"><em>limit</em> = <code>1</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p><a class="el" href="classTXMPMeta.html#a1e90e0c8cd8c5670267bb693cf3660fe" title="SetDefaultErrorCallback() registers a global default error notification callback. ...">SetDefaultErrorCallback()</a> registers a global default error notification callback. </p>
+<p>From the beginning through version 5.5, XMP Tookit errors result in throwing an <code><a class="el" href="classXMP__Error.html" title="XMP Toolkit error, associates an error code with a descriptive error string. ">XMP_Error</a></code> exception. For the most part exceptions were thrown early and thus API calls aborted as soon as an error was detected. Starting in version 5.5, support has been added for notifications of errors arising in calls to <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services. ">TXMPMeta</a></code> functions.</p>
+<p>A client can register an error notification callback function for a <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services. ">TXMPMeta</a></code> object. This can be done as a global default or individually to each object. The global default applies to all objects created after it is registered. Within the object there is no difference between the global default or explicitly registered callback. The callback function returns a <code>bool</code> value indicating if recovery should be attempted (true) or an exception thrown (false). If no callback is registered, a best effort at recovery and continuation will be made with an exception thrown if recovery is not possible.</p>
+<p>The number of notifications delivered for a given <a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services. ">TXMPMeta</a> object can be limited. This is intended to reduce chatter from multiple or cascading errors. The limit is set when the callback function is registered. This limits the number of notifications of the highest severity delivered or less. If a higher severity error occurs, the counting starts again. The limit and counting can be reset at any time, see <code>ResetErrorCallbackLimit</code>.</p><dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">proc</td><td>The client's callback function.</td></tr>
+ <tr><td class="paramname">context</td><td>Client-provided context for the callback.</td></tr>
+ <tr><td class="paramname">limit</td><td>A limit on the number of notifications to be delivered. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="aee41442af4f049c1d6698fc27ce854d0"></a><!-- doxytag: member="TXMPMeta::SetErrorCallback" ref="aee41442af4f049c1d6698fc27ce854d0" args="(XMPMeta_ErrorCallbackProc proc, void *context=0, XMP_Uns32 limit=1)" -->
+<a class="anchor" id="aee41442af4f049c1d6698fc27ce854d0"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -2449,73 +2607,78 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">void <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::SetErrorCallback </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a6027ee7b7d17a0fec636f812c5346af7">XMPMeta_ErrorCallbackProc</a>&nbsp;</td>
- <td class="paramname"> <em>proc</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#abb3c238ce96e9198ebe4260200bfb67b">XMPMeta_ErrorCallbackProc</a>&#160;</td>
+ <td class="paramname"><em>proc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">void *&nbsp;</td>
- <td class="paramname"> <em>context</em> = <code>0</code>, </td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>context</em> = <code>0</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">XMP_Uns32&nbsp;</td>
- <td class="paramname"> <em>limit</em> = <code>1</code></td><td>&nbsp;</td>
+ <td class="paramtype">XMP_Uns32&#160;</td>
+ <td class="paramname"><em>limit</em> = <code>1</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><a class="el" href="classTXMPMeta.html#aee41442af4f049c1d6698fc27ce854d0" title="SetErrorCallback() registers an error notification callback.">SetErrorCallback()</a> registers an error notification callback. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>proc</em>&nbsp;</td><td>The client's callback function.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>Client-provided context for the callback.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>limit</em>&nbsp;</td><td>A limit on the number of notifications to be delivered. </td></tr>
+<p><a class="el" href="classTXMPMeta.html#aee41442af4f049c1d6698fc27ce854d0" title="SetErrorCallback() registers an error notification callback. ">SetErrorCallback()</a> registers an error notification callback. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">proc</td><td>The client's callback function.</td></tr>
+ <tr><td class="paramname">context</td><td>Client-provided context for the callback.</td></tr>
+ <tr><td class="paramname">limit</td><td>A limit on the number of notifications to be delivered. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="ae7bb38d9b3857b08106630a386b47332"></a><!-- doxytag: member="TXMPMeta::SetGlobalOptions" ref="ae7bb38d9b3857b08106630a386b47332" args="(XMP_OptionBits options)" -->
+<a class="anchor" id="ae7bb38d9b3857b08106630a386b47332"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj&gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::SetGlobalOptions </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>options</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td><code> [static]</code></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em></td><td>)</td>
+ <td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#ae7bb38d9b3857b08106630a386b47332" title="SetGlobalOptions() updates the set of global option flags. There are none in this...">SetGlobalOptions()</a></code> updates the set of global option flags. There are none in this version of the Toolkit. </p>
-<p>The entire set is replaced with the new values. If only one flag is to be modified, use <code><a class="el" href="classTXMPMeta.html#a12b2435ba039c62a164951948c016eb4" title="GetGlobalOptions() retrieves the set of global option flags. There are none in this...">TXMPMeta::GetGlobalOptions()</a></code> to obtain the current set, modify the desired flag, then use this function to reset the value.</p>
+<p><code><a class="el" href="classTXMPMeta.html#ae7bb38d9b3857b08106630a386b47332" title="SetGlobalOptions() updates the set of global option flags. There are none in this version of the Tool...">SetGlobalOptions()</a></code> updates the set of global option flags. There are none in this version of the Toolkit. </p>
+<p>The entire set is replaced with the new values. If only one flag is to be modified, use <code><a class="el" href="classTXMPMeta.html#a12b2435ba039c62a164951948c016eb4" title="GetGlobalOptions() retrieves the set of global option flags. There are none in this version of the To...">TXMPMeta::GetGlobalOptions()</a></code> to obtain the current set, modify the desired flag, then use this function to reset the value.</p>
<p>This function is static; you can make the call from the class without instantiating it.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>A logical OR of global option bit-flag constants. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">options</td><td>A logical OR of global option bit-flag constants. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="a81273a152fb7b19e99c62ee39bf723f2"></a><!-- doxytag: member="TXMPMeta::SetLocalizedText" ref="a81273a152fb7b19e99c62ee39bf723f2" args="(XMP_StringPtr schemaNS, XMP_StringPtr altTextName, XMP_StringPtr genericLang, XMP_StringPtr specificLang, const tStringObj &amp;itemValue, XMP_OptionBits options=0)" -->
+<a class="anchor" id="af9531b949a462f5663b1f3fd99464c19"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -2524,52 +2687,50 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">void <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::SetLocalizedText </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>altTextName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>altTextName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>genericLang</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>genericLang</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>specificLang</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>specificLang</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">const tStringObj &amp;&nbsp;</td>
- <td class="paramname"> <em>itemValue</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>itemValue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>options</em> = <code>0</code></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#af9531b949a462f5663b1f3fd99464c19" title="SetLocalizedText() modifies the value of a selected item in an alt-text array.">SetLocalizedText()</a></code> modifies the value of a selected item in an alt-text array using a string object. </p>
+<p><code><a class="el" href="classTXMPMeta.html#af9531b949a462f5663b1f3fd99464c19" title="SetLocalizedText() modifies the value of a selected item in an alt-text array. ">SetLocalizedText()</a></code> modifies the value of a selected item in an alt-text array. </p>
<p>Creates an appropriate array item if necessary, and handles special cases for the x-default item.</p>
-<p>The array item is selected according to these rules: </p>
-<ul>
+<p>The array item is selected according to these rules: </p><ul>
<li>Look for an exact match with the specific language. </li>
<li>If a generic language is given, look for a partial match. </li>
<li>Look for an x-default item. </li>
@@ -2590,21 +2751,21 @@ template&lt;class tStringObj&gt; </div>
<ul>
<li>If the selected item is from the last 2 rules then a new item is created for the specific language. If the array only had an x-default item, the x-default item is also modified. If the array was empty, items are created for the specific language and x-default.</li>
</ul>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>The namespace URI for the alt-text array; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>altTextName</em>&nbsp;</td><td>The name of the alt-text array. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code> for namespace prefix usage.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>genericLang</em>&nbsp;</td><td>The name of the generic language as an RFC 3066 primary subtag. Can be null or the empty string if no generic language is wanted.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>specificLang</em>&nbsp;</td><td>The name of the specific language as an RFC 3066 tag, or "x-default". Must not be null or the empty string.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>itemValue</em>&nbsp;</td><td>The new value for the matching array item, specified as a string object.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>Option flags, none currently defined. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">schemaNS</td><td>The namespace URI for the alt-text array; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>.</td></tr>
+ <tr><td class="paramname">altTextName</td><td>The name of the alt-text array. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code> for namespace prefix usage.</td></tr>
+ <tr><td class="paramname">genericLang</td><td>The name of the generic language as an RFC 3066 primary subtag. Can be null or the empty string if no generic language is wanted.</td></tr>
+ <tr><td class="paramname">specificLang</td><td>The name of the specific language as an RFC 3066 tag, or "x-default". Must not be null or the empty string.</td></tr>
+ <tr><td class="paramname">itemValue</td><td>The new value for the matching array item, specified as a null-terminated UTF-8 string.</td></tr>
+ <tr><td class="paramname">options</td><td>Option flags, none currently defined. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="af9531b949a462f5663b1f3fd99464c19"></a><!-- doxytag: member="TXMPMeta::SetLocalizedText" ref="af9531b949a462f5663b1f3fd99464c19" args="(XMP_StringPtr schemaNS, XMP_StringPtr altTextName, XMP_StringPtr genericLang, XMP_StringPtr specificLang, XMP_StringPtr itemValue, XMP_OptionBits options=0)" -->
+<a class="anchor" id="a81273a152fb7b19e99c62ee39bf723f2"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -2613,52 +2774,50 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">void <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::SetLocalizedText </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>altTextName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>altTextName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>genericLang</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>genericLang</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>specificLang</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>specificLang</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>itemValue</em>, </td>
+ <td class="paramtype">const tStringObj &amp;&#160;</td>
+ <td class="paramname"><em>itemValue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>options</em> = <code>0</code></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#af9531b949a462f5663b1f3fd99464c19" title="SetLocalizedText() modifies the value of a selected item in an alt-text array.">SetLocalizedText()</a></code> modifies the value of a selected item in an alt-text array. </p>
+<p><code><a class="el" href="classTXMPMeta.html#af9531b949a462f5663b1f3fd99464c19" title="SetLocalizedText() modifies the value of a selected item in an alt-text array. ">SetLocalizedText()</a></code> modifies the value of a selected item in an alt-text array using a string object. </p>
<p>Creates an appropriate array item if necessary, and handles special cases for the x-default item.</p>
-<p>The array item is selected according to these rules: </p>
-<ul>
+<p>The array item is selected according to these rules: </p><ul>
<li>Look for an exact match with the specific language. </li>
<li>If a generic language is given, look for a partial match. </li>
<li>Look for an x-default item. </li>
@@ -2679,21 +2838,21 @@ template&lt;class tStringObj&gt; </div>
<ul>
<li>If the selected item is from the last 2 rules then a new item is created for the specific language. If the array only had an x-default item, the x-default item is also modified. If the array was empty, items are created for the specific language and x-default.</li>
</ul>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>The namespace URI for the alt-text array; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>altTextName</em>&nbsp;</td><td>The name of the alt-text array. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code> for namespace prefix usage.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>genericLang</em>&nbsp;</td><td>The name of the generic language as an RFC 3066 primary subtag. Can be null or the empty string if no generic language is wanted.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>specificLang</em>&nbsp;</td><td>The name of the specific language as an RFC 3066 tag, or "x-default". Must not be null or the empty string.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>itemValue</em>&nbsp;</td><td>The new value for the matching array item, specified as a null-terminated UTF-8 string.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>Option flags, none currently defined. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">schemaNS</td><td>The namespace URI for the alt-text array; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>.</td></tr>
+ <tr><td class="paramname">altTextName</td><td>The name of the alt-text array. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code> for namespace prefix usage.</td></tr>
+ <tr><td class="paramname">genericLang</td><td>The name of the generic language as an RFC 3066 primary subtag. Can be null or the empty string if no generic language is wanted.</td></tr>
+ <tr><td class="paramname">specificLang</td><td>The name of the specific language as an RFC 3066 tag, or "x-default". Must not be null or the empty string.</td></tr>
+ <tr><td class="paramname">itemValue</td><td>The new value for the matching array item, specified as a string object.</td></tr>
+ <tr><td class="paramname">options</td><td>Option flags, none currently defined. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="afd059cc7cd9f906e12dab04e380e495c"></a><!-- doxytag: member="TXMPMeta::SetObjectName" ref="afd059cc7cd9f906e12dab04e380e495c" args="(tStringObj name)" -->
+<a class="anchor" id="acf1935be8e4849976dfc02325424960a"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -2702,27 +2861,25 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">void <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::SetObjectName </td>
<td>(</td>
- <td class="paramtype">tStringObj&nbsp;</td>
- <td class="paramname"> <em>name</em></td>
- <td>&nbsp;)&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>name</em></td><td>)</td>
<td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#acf1935be8e4849976dfc02325424960a" title="SetObjectName() assigns a name to this XMP object.">SetObjectName()</a></code> assigns a name to this XMP object. </p>
-<p>Retrieve this client-assigned name with <code><a class="el" href="classTXMPMeta.html#ab0d179ed95487d4fd4f2680c1fbe0d40" title="GetObjectName() retrieves the client-assigned name of this XMP object.">GetObjectName()</a></code>.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name as a string object. </td></tr>
+<p><code><a class="el" href="classTXMPMeta.html#acf1935be8e4849976dfc02325424960a" title="SetObjectName() assigns a name to this XMP object. ">SetObjectName()</a></code> assigns a name to this XMP object. </p>
+<p>Retrieve this client-assigned name with <code><a class="el" href="classTXMPMeta.html#ab0d179ed95487d4fd4f2680c1fbe0d40" title="GetObjectName() retrieves the client-assigned name of this XMP object. ">GetObjectName()</a></code>.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">name</td><td>The name as a null-terminated UTF-8 string. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="acf1935be8e4849976dfc02325424960a"></a><!-- doxytag: member="TXMPMeta::SetObjectName" ref="acf1935be8e4849976dfc02325424960a" args="(XMP_StringPtr name)" -->
+<a class="anchor" id="afd059cc7cd9f906e12dab04e380e495c"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -2731,27 +2888,45 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">void <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::SetObjectName </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>name</em></td>
- <td>&nbsp;)&nbsp;</td>
+ <td class="paramtype">tStringObj&#160;</td>
+ <td class="paramname"><em>name</em></td><td>)</td>
<td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#acf1935be8e4849976dfc02325424960a" title="SetObjectName() assigns a name to this XMP object.">SetObjectName()</a></code> assigns a name to this XMP object. </p>
-<p>Retrieve this client-assigned name with <code><a class="el" href="classTXMPMeta.html#ab0d179ed95487d4fd4f2680c1fbe0d40" title="GetObjectName() retrieves the client-assigned name of this XMP object.">GetObjectName()</a></code>.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name as a null-terminated UTF-8 string. </td></tr>
+<p><code><a class="el" href="classTXMPMeta.html#acf1935be8e4849976dfc02325424960a" title="SetObjectName() assigns a name to this XMP object. ">SetObjectName()</a></code> assigns a name to this XMP object. </p>
+<p>Retrieve this client-assigned name with <code><a class="el" href="classTXMPMeta.html#ab0d179ed95487d4fd4f2680c1fbe0d40" title="GetObjectName() retrieves the client-assigned name of this XMP object. ">GetObjectName()</a></code>.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">name</td><td>The name as a string object. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="acc50625611f6aad405aa47197b6d0055"></a><!-- doxytag: member="TXMPMeta::SetProperty" ref="acc50625611f6aad405aa47197b6d0055" args="(XMP_StringPtr schemaNS, XMP_StringPtr propName, const tStringObj &amp;propValue, XMP_OptionBits options=0)" -->
+<a class="anchor" id="a92055b3ae18dfd5e5491108f59318f17"></a>
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class tStringObj&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::SetObjectOptions </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Not implemented. </p>
+
+</div>
+</div>
+<a class="anchor" id="a1dfd6a08ebfd1a6364b3a7b6584bcc28"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -2760,42 +2935,58 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">void <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::SetProperty </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>propName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">const tStringObj &amp;&nbsp;</td>
- <td class="paramname"> <em>propValue</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propValue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>options</em> = <code>0</code></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#a1dfd6a08ebfd1a6364b3a7b6584bcc28" title="SetProperty() creates or sets a property value.">SetProperty()</a></code> creates or sets a property value using a string object. </p>
-<p>Overloads the basic form of the function, allowing you to pass a string object for the item value. It is otherwise identical; see details in the canonical form. </p>
+<p>be a simple property with an <code>xml:lang</code> attribute. </p>
+<p>These functions all take a property specification; the top level namespace URI (the "schema" namespace) and the basic name of the property being referenced. See the introductory discussion of path expression usage for more information. All of the functions take a UTF-8 encoded Unicode string for the property value. Arrays and non-leaf levels of structs do not have values. The value can be passed as an <code><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string. ">XMP_StringPtr</a></code> (a pointer to a null-terminated string), or as a string object (<code>tStringObj</code>). Each function takes an options flag that describes the property. You can use these functions to create empty arrays and structs by setting appropriate option flags. When you assign a value, all levels of a struct that are implicit in the assignment are created if necessary. <code><a class="el" href="classTXMPMeta.html#a00d7314dc970ad390499ce9db27d314a" title="AppendArrayItem() adds an item to an array, creating the array if necessary. ">TXMPMeta::AppendArrayItem()</a></code> implicitly creates the named array if necessary.</p>
+<p>The allowed option bit-flags include: </p><ul>
+<li><code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e" title="The value is a structure with nested fields. ">kXMP_PropValueIsStruct</a></code> - Can be used to create an empty struct. A struct is implicitly created when the first field is set. </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a9b7706e0f0716ac7546bdc24ffedd0bc">kXMP_PropValueIsArray</a></code> - By default, a general unordered array (bag). </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5af1cdb3b0a3e852ec55e747a1686aba04" title="Implies kXMP_PropValueIsArray, item order matters. It is serialized using an rdf:Seq container...">kXMP_PropArrayIsOrdered</a></code> - An ordered array. </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a2596b1f0ea4600270c99102c86b5f1f1" title="Implies kXMP_PropArrayIsOrdered, items are alternates. It is serialized using an rdf:Alt container...">kXMP_PropArrayIsAlternate</a></code> - An alternative array. </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aba253f67a6cf44b7438a3f96b516846d">kXMP_PropArrayIsAltText</a></code> - An alt-text array. Each array element must<code><a class="el" href="classTXMPMeta.html#a1dfd6a08ebfd1a6364b3a7b6584bcc28" title="be a simple property with an xml:lang attribute. ">SetProperty()</a></code> creates or sets a property value.</li>
+</ul>
+<p>This is the simplest property setter. Use it for top-level simple properties, or after using the path composition functions in <code><a class="el" href="classTXMPUtils.html" title="API for access to the XMP Toolkit utility services. ">TXMPUtils</a></code>.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">schemaNS</td><td>The namespace URI; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>.</td></tr>
+ <tr><td class="paramname">propName</td><td>The name of the property. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code> for namespace prefix usage.</td></tr>
+ <tr><td class="paramname">propValue</td><td>The new value, a pointer to a null terminated UTF-8 string. Must be null for arrays and non-leaf levels of structs that do not have values.</td></tr>
+ <tr><td class="paramname">options</td><td>Option flags describing the property; a logical OR of allowed bit-flag constants; see <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e" title="The value is a structure with nested fields. ">kXMP_PropValueIsStruct</a></code> and following. Must match the type of a property that already exists. </td></tr>
+ </table>
+ </dd>
+</dl>
</div>
</div>
-<a class="anchor" id="a1dfd6a08ebfd1a6364b3a7b6584bcc28"></a><!-- doxytag: member="TXMPMeta::SetProperty" ref="a1dfd6a08ebfd1a6364b3a7b6584bcc28" args="(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_StringPtr propValue, XMP_OptionBits options=0)" -->
+<a class="anchor" id="acc50625611f6aad405aa47197b6d0055"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -2804,59 +2995,41 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">void <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::SetProperty </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>propName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>propValue</em>, </td>
+ <td class="paramtype">const tStringObj &amp;&#160;</td>
+ <td class="paramname"><em>propValue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>options</em> = <code>0</code></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#a1dfd6a08ebfd1a6364b3a7b6584bcc28" title="SetProperty() creates or sets a property value.">SetProperty()</a></code> creates or sets a property value. </p>
-<p>Each function takes an options flag that describes the property. You can use these functions to create empty arrays and structs by setting appropriate option flags. When you assign a value, all levels of a struct that are implicit in the assignment are created if necessary. <code><a class="el" href="classTXMPMeta.html#a00d7314dc970ad390499ce9db27d314a" title="AppendArrayItem() adds an item to an array, creating the array if necessary.">TXMPMeta::AppendArrayItem()</a></code> implicitly creates the named array if necessary.</p>
-<p>The allowed option bit-flags include: </p>
-<ul>
-<li><code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e" title="The value is a structure with nested fields.">kXMP_PropValueIsStruct</a></code> - Can be used to create an empty struct. A struct is implicitly created when the first field is set. </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a9b7706e0f0716ac7546bdc24ffedd0bc">kXMP_PropValueIsArray</a></code> - By default, a general unordered array (bag). </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5af1cdb3b0a3e852ec55e747a1686aba04" title="Implies kXMP_PropValueIsArray, item order matters. It is serialized using an rdf:Seq...">kXMP_PropArrayIsOrdered</a></code> - An ordered array. </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a2596b1f0ea4600270c99102c86b5f1f1" title="Implies kXMP_PropArrayIsOrdered, items are alternates. It is serialized using an...">kXMP_PropArrayIsAlternate</a></code> - An alternative array. </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aba253f67a6cf44b7438a3f96b516846d">kXMP_PropArrayIsAltText</a></code> - An alt-text array. Each array element must be a simple property with an <code>xml:lang</code> attribute. This is the simplest property setter. Use it for top-level simple properties, or after using the path composition functions in <code><a class="el" href="classTXMPUtils.html" title="API for access to the XMP Toolkit utility services.">TXMPUtils</a></code>.</li>
-</ul>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>The namespace URI; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>propName</em>&nbsp;</td><td>The name of the property. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code> for namespace prefix usage.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>propValue</em>&nbsp;</td><td>The new value, a pointer to a null terminated UTF-8 string. Must be null for arrays and non-leaf levels of structs that do not have values.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>Option flags describing the property; a logical OR of allowed bit-flag constants; see <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e" title="The value is a structure with nested fields.">kXMP_PropValueIsStruct</a></code> and following. Must match the type of a property that already exists. </td></tr>
- </table>
- </dd>
-</dl>
+<p><code><a class="el" href="classTXMPMeta.html#a1dfd6a08ebfd1a6364b3a7b6584bcc28" title="be a simple property with an xml:lang attribute. ">SetProperty()</a></code> creates or sets a property value using a string object. </p>
+<p>Overloads the basic form of the function, allowing you to pass a string object for the item value. It is otherwise identical; see details in the canonical form. </p>
</div>
</div>
-<a class="anchor" id="a9521e3838272ec501ffdb60ff3eb482f"></a><!-- doxytag: member="TXMPMeta::SetProperty_Bool" ref="a9521e3838272ec501ffdb60ff3eb482f" args="(XMP_StringPtr schemaNS, XMP_StringPtr propName, bool propValue, XMP_OptionBits options=0)" -->
+<a class="anchor" id="a9521e3838272ec501ffdb60ff3eb482f"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -2865,51 +3038,50 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">void <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::SetProperty_Bool </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>propName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">bool&nbsp;</td>
- <td class="paramname"> <em>propValue</em>, </td>
+ <td class="paramtype">bool&#160;</td>
+ <td class="paramname"><em>propValue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>options</em> = <code>0</code></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#a9521e3838272ec501ffdb60ff3eb482f" title="SetProperty_Bool() sets the value of a Boolean property using a C++ bool.">SetProperty_Bool()</a></code> sets the value of a Boolean property using a C++ bool. </p>
+<p><code><a class="el" href="classTXMPMeta.html#a9521e3838272ec501ffdb60ff3eb482f" title="SetProperty_Bool() sets the value of a Boolean property using a C++ bool. ">SetProperty_Bool()</a></code> sets the value of a Boolean property using a C++ bool. </p>
<p>Sets a property with a binary value, creating it if necessary.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>The namespace URI; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>propName</em>&nbsp;</td><td>The name of the property. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code> for namespace prefix usage.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>propValue</em>&nbsp;</td><td>The new binary value. Can be null if creating the property. Must be null for arrays and non-leaf levels of structs that do not have values.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>Option flags describing the property; a logical OR of allowed bit-flag constants; see <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e" title="The value is a structure with nested fields.">kXMP_PropValueIsStruct</a></code> and following. Must match the type of a property that already exists. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">schemaNS</td><td>The namespace URI; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>.</td></tr>
+ <tr><td class="paramname">propName</td><td>The name of the property. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code> for namespace prefix usage.</td></tr>
+ <tr><td class="paramname">propValue</td><td>The new binary value. Can be null if creating the property. Must be null for arrays and non-leaf levels of structs that do not have values.</td></tr>
+ <tr><td class="paramname">options</td><td>Option flags describing the property; a logical OR of allowed bit-flag constants; see <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e" title="The value is a structure with nested fields. ">kXMP_PropValueIsStruct</a></code> and following. Must match the type of a property that already exists. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="aeee10669445f77139d5634199ff01079"></a><!-- doxytag: member="TXMPMeta::SetProperty_Date" ref="aeee10669445f77139d5634199ff01079" args="(XMP_StringPtr schemaNS, XMP_StringPtr propName, const XMP_DateTime &amp;propValue, XMP_OptionBits options=0)" -->
+<a class="anchor" id="aeee10669445f77139d5634199ff01079"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -2918,51 +3090,50 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">void <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::SetProperty_Date </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>propName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">const <a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> &amp;&nbsp;</td>
- <td class="paramname"> <em>propValue</em>, </td>
+ <td class="paramtype">const <a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> &amp;&#160;</td>
+ <td class="paramname"><em>propValue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>options</em> = <code>0</code></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#aeee10669445f77139d5634199ff01079" title="SetProperty_Date() sets the value of a date/time property using an XMP_DateTime structure...">SetProperty_Date()</a></code> sets the value of a date/time property using an <code><a class="el" href="structXMP__DateTime.html" title="The expanded type for a date and time.">XMP_DateTime</a></code> structure. </p>
+<p><code><a class="el" href="classTXMPMeta.html#aeee10669445f77139d5634199ff01079" title="SetProperty_Date() sets the value of a date/time property using an XMP_DateTime structure. ">SetProperty_Date()</a></code> sets the value of a date/time property using an <code><a class="el" href="structXMP__DateTime.html" title="The expanded type for a date and time. ">XMP_DateTime</a></code> structure. </p>
<p>Sets a property with a binary value, creating it if necessary.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>The namespace URI; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>propName</em>&nbsp;</td><td>The name of the property. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code> for namespace prefix usage.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>propValue</em>&nbsp;</td><td>The new binary value. Can be null if creating the property. Must be null for arrays and non-leaf levels of structs that do not have values.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>Option flags describing the property; a logical OR of allowed bit-flag constants; see <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e" title="The value is a structure with nested fields.">kXMP_PropValueIsStruct</a></code> and following. Must match the type of a property that already exists. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">schemaNS</td><td>The namespace URI; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>.</td></tr>
+ <tr><td class="paramname">propName</td><td>The name of the property. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code> for namespace prefix usage.</td></tr>
+ <tr><td class="paramname">propValue</td><td>The new binary value. Can be null if creating the property. Must be null for arrays and non-leaf levels of structs that do not have values.</td></tr>
+ <tr><td class="paramname">options</td><td>Option flags describing the property; a logical OR of allowed bit-flag constants; see <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e" title="The value is a structure with nested fields. ">kXMP_PropValueIsStruct</a></code> and following. Must match the type of a property that already exists. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="a3b0f2f6bae57931ea96775f03608c0ed"></a><!-- doxytag: member="TXMPMeta::SetProperty_Float" ref="a3b0f2f6bae57931ea96775f03608c0ed" args="(XMP_StringPtr schemaNS, XMP_StringPtr propName, double propValue, XMP_OptionBits options=0)" -->
+<a class="anchor" id="a3b0f2f6bae57931ea96775f03608c0ed"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -2971,51 +3142,50 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">void <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::SetProperty_Float </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>propName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">double&nbsp;</td>
- <td class="paramname"> <em>propValue</em>, </td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>propValue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>options</em> = <code>0</code></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#a3b0f2f6bae57931ea96775f03608c0ed" title="SetProperty_Float() sets the value of a floating-point property using a C double...">SetProperty_Float()</a></code> sets the value of a floating-point property using a C double float. </p>
+<p><code><a class="el" href="classTXMPMeta.html#a3b0f2f6bae57931ea96775f03608c0ed" title="SetProperty_Float() sets the value of a floating-point property using a C double float. ">SetProperty_Float()</a></code> sets the value of a floating-point property using a C double float. </p>
<p>Sets a property with a binary value, creating it if necessary.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>The namespace URI; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>propName</em>&nbsp;</td><td>The name of the property. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code> for namespace prefix usage.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>propValue</em>&nbsp;</td><td>The new binary value. Can be null if creating the property. Must be null for arrays and non-leaf levels of structs that do not have values.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>Option flags describing the property; a logical OR of allowed bit-flag constants; see <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e" title="The value is a structure with nested fields.">kXMP_PropValueIsStruct</a></code> and following. Must match the type of a property that already exists. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">schemaNS</td><td>The namespace URI; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>.</td></tr>
+ <tr><td class="paramname">propName</td><td>The name of the property. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code> for namespace prefix usage.</td></tr>
+ <tr><td class="paramname">propValue</td><td>The new binary value. Can be null if creating the property. Must be null for arrays and non-leaf levels of structs that do not have values.</td></tr>
+ <tr><td class="paramname">options</td><td>Option flags describing the property; a logical OR of allowed bit-flag constants; see <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e" title="The value is a structure with nested fields. ">kXMP_PropValueIsStruct</a></code> and following. Must match the type of a property that already exists. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="a489e10a6686aa813ee437e93ab2c5943"></a><!-- doxytag: member="TXMPMeta::SetProperty_Int" ref="a489e10a6686aa813ee437e93ab2c5943" args="(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_Int32 propValue, XMP_OptionBits options=0)" -->
+<a class="anchor" id="a489e10a6686aa813ee437e93ab2c5943"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -3024,51 +3194,50 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">void <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::SetProperty_Int </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>propName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">XMP_Int32&nbsp;</td>
- <td class="paramname"> <em>propValue</em>, </td>
+ <td class="paramtype">XMP_Int32&#160;</td>
+ <td class="paramname"><em>propValue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>options</em> = <code>0</code></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#a489e10a6686aa813ee437e93ab2c5943" title="SetProperty_Int() sets the value of an integer property using a C long integer.">SetProperty_Int()</a></code> sets the value of an integer property using a C long integer. </p>
+<p><code><a class="el" href="classTXMPMeta.html#a489e10a6686aa813ee437e93ab2c5943" title="SetProperty_Int() sets the value of an integer property using a C long integer. ">SetProperty_Int()</a></code> sets the value of an integer property using a C long integer. </p>
<p>Sets a property with a binary value, creating it if necessary.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>The namespace URI; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>propName</em>&nbsp;</td><td>The name of the property. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code> for namespace prefix usage.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>propValue</em>&nbsp;</td><td>The new binary value. Can be null if creating the property. Must be null for arrays and non-leaf levels of structs that do not have values.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>Option flags describing the property; a logical OR of allowed bit-flag constants; see <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e" title="The value is a structure with nested fields.">kXMP_PropValueIsStruct</a></code> and following. Must match the type of a property that already exists. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">schemaNS</td><td>The namespace URI; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>.</td></tr>
+ <tr><td class="paramname">propName</td><td>The name of the property. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code> for namespace prefix usage.</td></tr>
+ <tr><td class="paramname">propValue</td><td>The new binary value. Can be null if creating the property. Must be null for arrays and non-leaf levels of structs that do not have values.</td></tr>
+ <tr><td class="paramname">options</td><td>Option flags describing the property; a logical OR of allowed bit-flag constants; see <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e" title="The value is a structure with nested fields. ">kXMP_PropValueIsStruct</a></code> and following. Must match the type of a property that already exists. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="a7f749be7699890bbaa2e2dbd05d45a90"></a><!-- doxytag: member="TXMPMeta::SetProperty_Int64" ref="a7f749be7699890bbaa2e2dbd05d45a90" args="(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_Int64 propValue, XMP_OptionBits options=0)" -->
+<a class="anchor" id="a7f749be7699890bbaa2e2dbd05d45a90"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -3077,51 +3246,50 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">void <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::SetProperty_Int64 </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>propName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">XMP_Int64&nbsp;</td>
- <td class="paramname"> <em>propValue</em>, </td>
+ <td class="paramtype">XMP_Int64&#160;</td>
+ <td class="paramname"><em>propValue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>options</em> = <code>0</code></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#a7f749be7699890bbaa2e2dbd05d45a90" title="SetProperty_Int64() sets the value of an integer property using a C long long integer...">SetProperty_Int64()</a></code> sets the value of an integer property using a C long long integer. </p>
+<p><code><a class="el" href="classTXMPMeta.html#a7f749be7699890bbaa2e2dbd05d45a90" title="SetProperty_Int64() sets the value of an integer property using a C long long integer. ">SetProperty_Int64()</a></code> sets the value of an integer property using a C long long integer. </p>
<p>Sets a property with a binary value, creating it if necessary.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>The namespace URI; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>propName</em>&nbsp;</td><td>The name of the property. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code> for namespace prefix usage.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>propValue</em>&nbsp;</td><td>The new binary value. Can be null if creating the property. Must be null for arrays and non-leaf levels of structs that do not have values.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>Option flags describing the property; a logical OR of allowed bit-flag constants; see <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e" title="The value is a structure with nested fields.">kXMP_PropValueIsStruct</a></code> and following. Must match the type of a property that already exists. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">schemaNS</td><td>The namespace URI; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>.</td></tr>
+ <tr><td class="paramname">propName</td><td>The name of the property. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code> for namespace prefix usage.</td></tr>
+ <tr><td class="paramname">propValue</td><td>The new binary value. Can be null if creating the property. Must be null for arrays and non-leaf levels of structs that do not have values.</td></tr>
+ <tr><td class="paramname">options</td><td>Option flags describing the property; a logical OR of allowed bit-flag constants; see <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e" title="The value is a structure with nested fields. ">kXMP_PropValueIsStruct</a></code> and following. Must match the type of a property that already exists. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="ac395e094cab251a0593d508594b21521"></a><!-- doxytag: member="TXMPMeta::SetQualifier" ref="ac395e094cab251a0593d508594b21521" args="(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_StringPtr qualNS, XMP_StringPtr qualName, const tStringObj &amp;qualValue, XMP_OptionBits options=0)" -->
+<a class="anchor" id="ac2e798da5f9d94e486382a41e73fcea3"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -3130,54 +3298,64 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">void <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::SetQualifier </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>propName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>qualNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>qualNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>qualName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>qualName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">const tStringObj &amp;&nbsp;</td>
- <td class="paramname"> <em>qualValue</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>qualValue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>options</em> = <code>0</code></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#ac2e798da5f9d94e486382a41e73fcea3" title="SetQualifier() creates or sets a qualifier attached to a property.">SetQualifier()</a></code> creates or sets a qualifier attached to a property using a string object. </p>
-<p>Overloads the basic form of the function, allowing you to pass a string object for the qualifier value. It is otherwise identical; see details in the canonical form. </p>
+<p><code><a class="el" href="classTXMPMeta.html#ac2e798da5f9d94e486382a41e73fcea3" title="SetQualifier() creates or sets a qualifier attached to a property. ">SetQualifier()</a></code> creates or sets a qualifier attached to a property. </p>
+<p>Use this to set a value for an existing qualifier, or create a new qualifier. &lt;&lt;how do options work? macro vs bit-flag? interaction w/XMP_PropHasQualifier?&gt;&gt; Use <code><a class="el" href="classTXMPUtils.html#a40ae0ce2065fcb71725e37137884e172" title="ComposeQualifierPath() composes the path expression for a qualifier. ">TXMPUtils::ComposeQualifierPath()</a></code> to create a complex path.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">schemaNS</td><td>The namespace URI; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>.</td></tr>
+ <tr><td class="paramname">propName</td><td>The name of the property to which the qualifier is attached. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code> for namespace prefix usage.</td></tr>
+ <tr><td class="paramname">qualNS</td><td>The namespace URI for the qualifier. Same namespace and prefix usage as <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>.</td></tr>
+ <tr><td class="paramname">qualName</td><td>The name of the qualifier. Must be a single XML name, must not be null or the empty string. Same namespace and prefix usage as <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>.</td></tr>
+ <tr><td class="paramname">qualValue</td><td>The new value, a null-terminated UTF-8 string, if the qualifier has a value. Null to create a new, empty qualifier.</td></tr>
+ <tr><td class="paramname">options</td><td>Option flags describing the &lt;&lt;qualified property? qualifier?&gt;&gt;, a logical OR of property-type bit-flag constants. Use the macro <code><a class="el" href="XMP__Const_8h.html#a9a555a9eb2fabe97dd57e8d2e1b077f5" title="Macro reports the property type specified by an options flag. ">XMP_PropIsQualifier</a></code> to create a qualifier. &lt;&lt;??&gt;&gt; </td></tr>
+ </table>
+ </dd>
+</dl>
</div>
</div>
-<a class="anchor" id="ac2e798da5f9d94e486382a41e73fcea3"></a><!-- doxytag: member="TXMPMeta::SetQualifier" ref="ac2e798da5f9d94e486382a41e73fcea3" args="(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_StringPtr qualNS, XMP_StringPtr qualName, XMP_StringPtr qualValue, XMP_OptionBits options=0)" -->
+<a class="anchor" id="ac395e094cab251a0593d508594b21521"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -3186,65 +3364,53 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">void <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::SetQualifier </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>propName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>qualNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>qualNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>qualName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>qualName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>qualValue</em>, </td>
+ <td class="paramtype">const tStringObj &amp;&#160;</td>
+ <td class="paramname"><em>qualValue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>options</em> = <code>0</code></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#ac2e798da5f9d94e486382a41e73fcea3" title="SetQualifier() creates or sets a qualifier attached to a property.">SetQualifier()</a></code> creates or sets a qualifier attached to a property. </p>
-<p>Use this to set a value for an existing qualifier, or create a new qualifier. &lt;&lt;how do options work? macro vs bit-flag? interaction w/XMP_PropHasQualifier?&gt;&gt; Use <code><a class="el" href="classTXMPUtils.html#a40ae0ce2065fcb71725e37137884e172" title="ComposeQualifierPath() composes the path expression for a qualifier.">TXMPUtils::ComposeQualifierPath()</a></code> to create a complex path.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>The namespace URI; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>propName</em>&nbsp;</td><td>The name of the property to which the qualifier is attached. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code> for namespace prefix usage.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>qualNS</em>&nbsp;</td><td>The namespace URI for the qualifier. Same namespace and prefix usage as <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>qualName</em>&nbsp;</td><td>The name of the qualifier. Must be a single XML name, must not be null or the empty string. Same namespace and prefix usage as <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>qualValue</em>&nbsp;</td><td>The new value, a null-terminated UTF-8 string, if the qualifier has a value. Null to create a new, empty qualifier.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>Option flags describing the &lt;&lt;qualified property? qualifier?&gt;&gt;, a logical OR of property-type bit-flag constants. Use the macro <code><a class="el" href="XMP__Const_8h.html#a8d1b4da6b3cb3a67bf4f8e79352eeeaa" title="Macro reports the property type specified by an options flag.">XMP_PropIsQualifier</a></code> to create a qualifier. &lt;&lt;??&gt;&gt; </td></tr>
- </table>
- </dd>
-</dl>
+<p><code><a class="el" href="classTXMPMeta.html#ac2e798da5f9d94e486382a41e73fcea3" title="SetQualifier() creates or sets a qualifier attached to a property. ">SetQualifier()</a></code> creates or sets a qualifier attached to a property using a string object. </p>
+<p>Overloads the basic form of the function, allowing you to pass a string object for the qualifier value. It is otherwise identical; see details in the canonical form. </p>
</div>
</div>
-<a class="anchor" id="a77d4a1bf7831f39073af9ea1544ebefa"></a><!-- doxytag: member="TXMPMeta::SetStructField" ref="a77d4a1bf7831f39073af9ea1544ebefa" args="(XMP_StringPtr schemaNS, XMP_StringPtr structName, XMP_StringPtr fieldNS, XMP_StringPtr fieldName, const tStringObj &amp;fieldValue, XMP_OptionBits options=0)" -->
+<a class="anchor" id="a0e44c30e7527064909e5f7035d53c4f5"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -3253,54 +3419,65 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">void <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::SetStructField </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>structName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>structName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>fieldNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>fieldNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>fieldName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>fieldName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">const tStringObj &amp;&nbsp;</td>
- <td class="paramname"> <em>fieldValue</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>fieldValue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>options</em> = <code>0</code></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#a0e44c30e7527064909e5f7035d53c4f5" title="SetStructField() creates or sets the value of a field within a nested structure.">SetStructField()</a></code> creates or sets the value of a field within a nested structure, using a string object. </p>
-<p>Overloads the basic form of the function, allowing you to pass a string object in which to return the field value. It is otherwise identical; see details in the canonical form. </p>
+<p><code><a class="el" href="classTXMPMeta.html#a0e44c30e7527064909e5f7035d53c4f5" title="SetStructField() creates or sets the value of a field within a nested structure. ">SetStructField()</a></code> creates or sets the value of a field within a nested structure. </p>
+<p>Use this to set a value within an existing structure, create a new field within an existing structure, or create an empty structure of any depth. If you set a field in a structure that does not exist, the structure is automatically created.</p>
+<p>Use <code><a class="el" href="classTXMPUtils.html#a706eb85b8401b8682a01348f7e25ee3d" title="ComposeStructFieldPath() composes the path expression for a field in a struct. ">TXMPUtils::ComposeStructFieldPath()</a></code> to create a complex path.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">schemaNS</td><td>The namespace URI; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>.</td></tr>
+ <tr><td class="paramname">structName</td><td>The name of the struct. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code> for namespace prefix usage.</td></tr>
+ <tr><td class="paramname">fieldNS</td><td>The namespace URI for the field. Same namespace and prefix usage as <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>.</td></tr>
+ <tr><td class="paramname">fieldName</td><td>The name of the field. Must be a single XML name, must not be null or the empty string. Same namespace and prefix usage as <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">GetProperty()</a></code>.</td></tr>
+ <tr><td class="paramname">fieldValue</td><td>The new value, a null-terminated UTF-8 string, if the field has a value. Null to create a new, empty struct or empty field in an existing struct.</td></tr>
+ <tr><td class="paramname">options</td><td>Option flags describing the property, in which the bit-flag <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e" title="The value is a structure with nested fields. ">kXMP_PropValueIsStruct</a></code> must be set to create a struct. </td></tr>
+ </table>
+ </dd>
+</dl>
</div>
</div>
-<a class="anchor" id="a0e44c30e7527064909e5f7035d53c4f5"></a><!-- doxytag: member="TXMPMeta::SetStructField" ref="a0e44c30e7527064909e5f7035d53c4f5" args="(XMP_StringPtr schemaNS, XMP_StringPtr structName, XMP_StringPtr fieldNS, XMP_StringPtr fieldName, XMP_StringPtr fieldValue, XMP_OptionBits options=0)" -->
+<a class="anchor" id="a77d4a1bf7831f39073af9ea1544ebefa"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -3309,66 +3486,53 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">void <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::SetStructField </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>structName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>structName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>fieldNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>fieldNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>fieldName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>fieldName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>fieldValue</em>, </td>
+ <td class="paramtype">const tStringObj &amp;&#160;</td>
+ <td class="paramname"><em>fieldValue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>options</em> = <code>0</code></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#a0e44c30e7527064909e5f7035d53c4f5" title="SetStructField() creates or sets the value of a field within a nested structure.">SetStructField()</a></code> creates or sets the value of a field within a nested structure. </p>
-<p>Use this to set a value within an existing structure, create a new field within an existing structure, or create an empty structure of any depth. If you set a field in a structure that does not exist, the structure is automatically created.</p>
-<p>Use <code><a class="el" href="classTXMPUtils.html#a706eb85b8401b8682a01348f7e25ee3d" title="ComposeStructFieldPath() composes the path expression for a field in a struct.">TXMPUtils::ComposeStructFieldPath()</a></code> to create a complex path.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>The namespace URI; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>structName</em>&nbsp;</td><td>The name of the struct. Can be a general path expression, must not be null or the empty string; see <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code> for namespace prefix usage.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>fieldNS</em>&nbsp;</td><td>The namespace URI for the field. Same namespace and prefix usage as <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>fieldName</em>&nbsp;</td><td>The name of the field. Must be a single XML name, must not be null or the empty string. Same namespace and prefix usage as <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">GetProperty()</a></code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>fieldValue</em>&nbsp;</td><td>The new value, a null-terminated UTF-8 string, if the field has a value. Null to create a new, empty struct or empty field in an existing struct.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>Option flags describing the property, in which the bit-flag <code><a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e" title="The value is a structure with nested fields.">kXMP_PropValueIsStruct</a></code> must be set to create a struct. </td></tr>
- </table>
- </dd>
-</dl>
+<p><code><a class="el" href="classTXMPMeta.html#a0e44c30e7527064909e5f7035d53c4f5" title="SetStructField() creates or sets the value of a field within a nested structure. ">SetStructField()</a></code> creates or sets the value of a field within a nested structure, using a string object. </p>
+<p>Overloads the basic form of the function, allowing you to pass a string object in which to return the field value. It is otherwise identical; see details in the canonical form. </p>
</div>
</div>
-<a class="anchor" id="a8ac5a02a13d439ff33ed4431986da681"></a><!-- doxytag: member="TXMPMeta::Sort" ref="a8ac5a02a13d439ff33ed4431986da681" args="()" -->
+<a class="anchor" id="a8ac5a02a13d439ff33ed4431986da681"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -3377,48 +3541,70 @@ template&lt;class tStringObj&gt; </div>
<tr>
<td class="memname">void <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::Sort </td>
<td>(</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
+ <td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#a8ac5a02a13d439ff33ed4431986da681" title="Sort() sorts the data model tree of an XMP object.">Sort()</a></code> sorts the data model tree of an XMP object. </p>
+<p><code><a class="el" href="classTXMPMeta.html#a8ac5a02a13d439ff33ed4431986da681" title="Sort() sorts the data model tree of an XMP object. ">Sort()</a></code> sorts the data model tree of an XMP object. </p>
<p>Use this function to sort the data model of an XMP object into a canonical order. This can be convenient when comparing data models, (e.g. by text comparison of DumpObject output).</p>
<p>At the top level the namespaces are sorted by their prefixes. Within a namespace, the top level properties are sorted by name. Within a struct, the fields are sorted by their qualified name, i.e. their XML prefix:local form. Unordered arrays of simple items are sorted by value. Language Alternative arrays are sorted by the xml:lang qualifiers, with the "x-default" item placed first. </p>
</div>
</div>
-<a class="anchor" id="a6c30fae26173167958b6f0da95a53865"></a><!-- doxytag: member="TXMPMeta::Terminate" ref="a6c30fae26173167958b6f0da95a53865" args="()" -->
+<a class="anchor" id="a6c30fae26173167958b6f0da95a53865"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj&gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::Terminate </td>
<td>(</td>
- <td class="paramname"></td>
- <td>&nbsp;)&nbsp;</td>
- <td><code> [static]</code></td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPMeta.html#a6c30fae26173167958b6f0da95a53865" title="Terminate() explicitly terminates usage of the XMP Toolkit.">Terminate()</a></code> explicitly terminates usage of the XMP Toolkit. </p>
+<p><code><a class="el" href="classTXMPMeta.html#a6c30fae26173167958b6f0da95a53865" title="Terminate() explicitly terminates usage of the XMP Toolkit. ">Terminate()</a></code> explicitly terminates usage of the XMP Toolkit. </p>
<p>Frees structures created on initialization.</p>
<p>This function is static; make the call directly from the concrete class (<code>SXMPMeta</code>). </p>
</div>
</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a class="anchor" id="a8d607eb80edb919fe8b07efe300008d2"></a>
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class tStringObj&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMPMetaRef</a> <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt;::xmpRef</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="TXMPMeta_8hpp_source.html#l01743">1743</a> of file <a class="el" href="TXMPMeta_8hpp_source.html">TXMPMeta.hpp</a>.</p>
+
+</div>
+</div>
<hr/>The documentation for this class was generated from the following file:<ul>
-<li><a class="el" href="TXMPMeta_8hpp_source.html">TXMPMeta.hpp</a></li>
+<li>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/<a class="el" href="TXMPMeta_8hpp_source.html">TXMPMeta.hpp</a></li>
</ul>
-</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
</body>
</html>
diff --git a/docs/API/classTXMPMeta.js b/docs/API/classTXMPMeta.js
new file mode 100755
index 0000000..f4684a6
--- /dev/null
+++ b/docs/API/classTXMPMeta.js
@@ -0,0 +1,74 @@
+var classTXMPMeta =
+[
+ [ "TXMPMeta", "classTXMPMeta.html#a61ffb3aa3e387d8ff9c1f4ebd26606c7", null ],
+ [ "TXMPMeta", "classTXMPMeta.html#ada43d63894350e23a4307c41b7335eca", null ],
+ [ "TXMPMeta", "classTXMPMeta.html#acbe8f556a5b32542c44fa9de9648ad41", null ],
+ [ "TXMPMeta", "classTXMPMeta.html#a05199e2a4bc61db7aed207759e899bc2", null ],
+ [ "~TXMPMeta", "classTXMPMeta.html#abab5013870cd47eb0d9d701653735a02", null ],
+ [ "AppendArrayItem", "classTXMPMeta.html#a00d7314dc970ad390499ce9db27d314a", null ],
+ [ "AppendArrayItem", "classTXMPMeta.html#a4f768a8cb35cabff1cf4187aa6a88dd3", null ],
+ [ "Clone", "classTXMPMeta.html#a6ca653436995bbb76315efe7934afd4c", null ],
+ [ "CountArrayItems", "classTXMPMeta.html#ab79aae864b3ce190d0699252f48e0acc", null ],
+ [ "DeleteArrayItem", "classTXMPMeta.html#abc1211f47225b5973a170ff952743264", null ],
+ [ "DeleteLocalizedText", "classTXMPMeta.html#aeb7679e92b126800b7bd906acb2f26e8", null ],
+ [ "DeleteNamespace", "classTXMPMeta.html#a3f989597e95db929676273cacd4ea09a", null ],
+ [ "DeleteProperty", "classTXMPMeta.html#ac8b555ba99904fa49bb4851a60cc3844", null ],
+ [ "DeleteQualifier", "classTXMPMeta.html#a8ce15f7de7fd3b258f07158ab5fa88be", null ],
+ [ "DeleteStructField", "classTXMPMeta.html#abc258e027780a15be65a88fcfd4e1fd4", null ],
+ [ "DoesArrayItemExist", "classTXMPMeta.html#a492465c588d6d4cb8e30f94790e66f58", null ],
+ [ "DoesPropertyExist", "classTXMPMeta.html#af22b116d71ecbbebea016ec5337e7066", null ],
+ [ "DoesQualifierExist", "classTXMPMeta.html#a81347a92becd387a14f4d47c582f129a", null ],
+ [ "DoesStructFieldExist", "classTXMPMeta.html#a9261b80d62e77a10ff1a89843bfa10a5", null ],
+ [ "DumpNamespaces", "classTXMPMeta.html#aaddc5f555de57472939a41346e276817", null ],
+ [ "DumpObject", "classTXMPMeta.html#a466fa349c9765f39ca6b1450908e769f", null ],
+ [ "Erase", "classTXMPMeta.html#adf57895625ad118782ed48a3931848b7", null ],
+ [ "GetArrayItem", "classTXMPMeta.html#ac64a4251d157937f69b73f2ffac4f7cc", null ],
+ [ "GetGlobalOptions", "classTXMPMeta.html#a12b2435ba039c62a164951948c016eb4", null ],
+ [ "GetInternalRef", "classTXMPMeta.html#afbfebded0b85b08bd9c5ba0d7dae07e0", null ],
+ [ "GetLocalizedText", "classTXMPMeta.html#aeefe49bbf669770d769f4fe0ea566bd0", null ],
+ [ "GetNamespacePrefix", "classTXMPMeta.html#af28589472d8c0397db6cef868f2b8c97", null ],
+ [ "GetNamespaceURI", "classTXMPMeta.html#aa20c84e7549d0a3252fa29a1e83a757a", null ],
+ [ "GetObjectName", "classTXMPMeta.html#ab0d179ed95487d4fd4f2680c1fbe0d40", null ],
+ [ "GetObjectOptions", "classTXMPMeta.html#a0bfc04142a35671a4c8989fcaca6d6c2", null ],
+ [ "GetProperty", "classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c", null ],
+ [ "GetProperty_Bool", "classTXMPMeta.html#adcf8a1959a8bd42641a42cbd4d64a5b7", null ],
+ [ "GetProperty_Date", "classTXMPMeta.html#a2f561295e73047ee90765558d29bd650", null ],
+ [ "GetProperty_Float", "classTXMPMeta.html#a7708c31c9af3e740b27a4893dcd9aa47", null ],
+ [ "GetProperty_Int", "classTXMPMeta.html#ae4e8ee4cc7441bb9464dac87f2d74650", null ],
+ [ "GetProperty_Int64", "classTXMPMeta.html#af91fa4bc4f51a56e35bcfb554783b050", null ],
+ [ "GetQualifier", "classTXMPMeta.html#a2cc58d8316043b035643e7c21633bc13", null ],
+ [ "GetStructField", "classTXMPMeta.html#a885ef7127b897e349f71fa493ace3c94", null ],
+ [ "GetVersionInfo", "classTXMPMeta.html#a5415cfc01a9cb8786939246571a23a9d", null ],
+ [ "Initialize", "classTXMPMeta.html#af1defbb73f919eae06456a655dea726c", null ],
+ [ "operator=", "classTXMPMeta.html#a4d5a601c9b77f6f6ab5f14e658de58ef", null ],
+ [ "ParseFromBuffer", "classTXMPMeta.html#a7b383f5b357fff040cdbde82f4f43f26", null ],
+ [ "RegisterNamespace", "classTXMPMeta.html#ac0368ddbaa4d689cd5b1aff1c88bb0e1", null ],
+ [ "ResetErrorCallbackLimit", "classTXMPMeta.html#a31c7ef089e8fadff122044afa27d200a", null ],
+ [ "SerializeToBuffer", "classTXMPMeta.html#a2774a6f15ae22f0002201b58c46bfb49", null ],
+ [ "SerializeToBuffer", "classTXMPMeta.html#a0d98bc15bdb0f45737b15fc6822f3bc6", null ],
+ [ "SetArrayItem", "classTXMPMeta.html#a1570eb89d613b4a94ca572e4644168cc", null ],
+ [ "SetArrayItem", "classTXMPMeta.html#a15720ee8e732232fa25989870cf99846", null ],
+ [ "SetClientString", "classTXMPMeta.html#a67bbfe3f55af71a5122512ebb695e4ed", null ],
+ [ "SetDefaultErrorCallback", "classTXMPMeta.html#a1e90e0c8cd8c5670267bb693cf3660fe", null ],
+ [ "SetErrorCallback", "classTXMPMeta.html#aee41442af4f049c1d6698fc27ce854d0", null ],
+ [ "SetGlobalOptions", "classTXMPMeta.html#ae7bb38d9b3857b08106630a386b47332", null ],
+ [ "SetLocalizedText", "classTXMPMeta.html#af9531b949a462f5663b1f3fd99464c19", null ],
+ [ "SetLocalizedText", "classTXMPMeta.html#a81273a152fb7b19e99c62ee39bf723f2", null ],
+ [ "SetObjectName", "classTXMPMeta.html#acf1935be8e4849976dfc02325424960a", null ],
+ [ "SetObjectName", "classTXMPMeta.html#afd059cc7cd9f906e12dab04e380e495c", null ],
+ [ "SetObjectOptions", "classTXMPMeta.html#a92055b3ae18dfd5e5491108f59318f17", null ],
+ [ "SetProperty", "classTXMPMeta.html#a1dfd6a08ebfd1a6364b3a7b6584bcc28", null ],
+ [ "SetProperty", "classTXMPMeta.html#acc50625611f6aad405aa47197b6d0055", null ],
+ [ "SetProperty_Bool", "classTXMPMeta.html#a9521e3838272ec501ffdb60ff3eb482f", null ],
+ [ "SetProperty_Date", "classTXMPMeta.html#aeee10669445f77139d5634199ff01079", null ],
+ [ "SetProperty_Float", "classTXMPMeta.html#a3b0f2f6bae57931ea96775f03608c0ed", null ],
+ [ "SetProperty_Int", "classTXMPMeta.html#a489e10a6686aa813ee437e93ab2c5943", null ],
+ [ "SetProperty_Int64", "classTXMPMeta.html#a7f749be7699890bbaa2e2dbd05d45a90", null ],
+ [ "SetQualifier", "classTXMPMeta.html#ac2e798da5f9d94e486382a41e73fcea3", null ],
+ [ "SetQualifier", "classTXMPMeta.html#ac395e094cab251a0593d508594b21521", null ],
+ [ "SetStructField", "classTXMPMeta.html#a0e44c30e7527064909e5f7035d53c4f5", null ],
+ [ "SetStructField", "classTXMPMeta.html#a77d4a1bf7831f39073af9ea1544ebefa", null ],
+ [ "Sort", "classTXMPMeta.html#a8ac5a02a13d439ff33ed4431986da681", null ],
+ [ "Terminate", "classTXMPMeta.html#a6c30fae26173167958b6f0da95a53865", null ],
+ [ "xmpRef", "classTXMPMeta.html#a8d607eb80edb919fe8b07efe300008d2", null ]
+]; \ No newline at end of file
diff --git a/docs/API/classTXMPUtils-members.html b/docs/API/classTXMPUtils-members.html
index b47d4b1..a08e05a 100644..100755
--- a/docs/API/classTXMPUtils-members.html
+++ b/docs/API/classTXMPUtils-members.html
@@ -1,110 +1,93 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: Member List</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
- <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
- <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classTXMPUtils.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">TXMPUtils&lt; tStringObj &gt; Member List</div> </div>
+</div><!--header-->
<div class="contents">
-<h1>TXMPUtils&lt; tStringObj &gt; Member List</h1>This is the complete list of members for <a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a>, including all inherited members.<table>
- <tr class="memlist"><td><a class="el" href="classTXMPUtils.html#ab73bfa15116e6d702044542e0a43cce9">ApplyTemplate</a>(TXMPMeta&lt; tStringObj &gt; *workingXMP, const TXMPMeta&lt; tStringObj &gt; &amp;templateXMP, XMP_OptionBits actions)</td><td><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPUtils.html#ad7e1aa7928252fb88a24fb5c3aef22ba">CatenateArrayItems</a>(const TXMPMeta&lt; tStringObj &gt; &amp;xmpObj, XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_StringPtr separator, XMP_StringPtr quotes, XMP_OptionBits options, tStringObj *catedStr)</td><td><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPUtils.html#a9fc7f1771032f59f9020aeda4f91991d">CompareDateTime</a>(const XMP_DateTime &amp;left, const XMP_DateTime &amp;right)</td><td><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPUtils.html#a47fa195aa2e1457aa1f74f7e1ed06da6">ComposeArrayItemPath</a>(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_Index itemIndex, tStringObj *fullPath)</td><td><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPUtils.html#a458f8e8729e2334fe54ca8f691a9db23">ComposeFieldSelector</a>(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_StringPtr fieldNS, XMP_StringPtr fieldName, XMP_StringPtr fieldValue, tStringObj *fullPath)</td><td><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPUtils.html#ad2d2361b8a4d0709ec9e3bd837265cba">ComposeFieldSelector</a>(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_StringPtr fieldNS, XMP_StringPtr fieldName, const tStringObj &amp;fieldValue, tStringObj *fullPath)</td><td><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPUtils.html#ae4989e5c199a2a4287ee3ae89b872e69">ComposeLangSelector</a>(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_StringPtr langName, tStringObj *fullPath)</td><td><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPUtils.html#a7882bbc2e412ff476c2d97d98808d91c">ComposeLangSelector</a>(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, const tStringObj &amp;langName, tStringObj *fullPath)</td><td><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPUtils.html#a40ae0ce2065fcb71725e37137884e172">ComposeQualifierPath</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_StringPtr qualNS, XMP_StringPtr qualName, tStringObj *fullPath)</td><td><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPUtils.html#a706eb85b8401b8682a01348f7e25ee3d">ComposeStructFieldPath</a>(XMP_StringPtr schemaNS, XMP_StringPtr structName, XMP_StringPtr fieldNS, XMP_StringPtr fieldName, tStringObj *fullPath)</td><td><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPUtils.html#a509691eb270988de6a770c9c8304ab6b">ConvertFromBool</a>(bool binValue, tStringObj *strValue)</td><td><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPUtils.html#a6146a522a3974b4088d6e8241e9cd223">ConvertFromDate</a>(const XMP_DateTime &amp;binValue, tStringObj *strValue)</td><td><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPUtils.html#ae67ef3931836432b7e574832f0610ed0">ConvertFromFloat</a>(double binValue, XMP_StringPtr format, tStringObj *strValue)</td><td><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPUtils.html#aeec45b4d1a26717290105c9f4e8b4235">ConvertFromInt</a>(long binValue, XMP_StringPtr format, tStringObj *strValue)</td><td><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPUtils.html#aeae4617e05358433015eaa80953c5e60">ConvertFromInt64</a>(long long binValue, XMP_StringPtr format, tStringObj *strValue)</td><td><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPUtils.html#aaaaaadb23f4089daa795f50cba4f405c">ConvertToBool</a>(XMP_StringPtr strValue)</td><td><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPUtils.html#a84f2a7b3960a17315032915674e21960">ConvertToBool</a>(const tStringObj &amp;strValue)</td><td><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPUtils.html#a60d33e6ce30286028acca47b2b6e7a0b">ConvertToDate</a>(XMP_StringPtr strValue, XMP_DateTime *binValue)</td><td><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPUtils.html#a265559d1b4b78e34a460e935c11177d7">ConvertToDate</a>(const tStringObj &amp;strValue, XMP_DateTime *binValue)</td><td><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPUtils.html#a8a507b006286460814e0486c622d828c">ConvertToFloat</a>(XMP_StringPtr strValue)</td><td><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPUtils.html#aabd4e479d2708a9ea3135cd441faa7ea">ConvertToFloat</a>(const tStringObj &amp;strValue)</td><td><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPUtils.html#adfd9d1c522377d5db4ad667a7973ba00">ConvertToInt</a>(XMP_StringPtr strValue)</td><td><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPUtils.html#a47d93f9cb4acd9d7ec6b450100209bec">ConvertToInt</a>(const tStringObj &amp;strValue)</td><td><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPUtils.html#abe5d2dcc03c5442202203bba5ca7b172">ConvertToInt64</a>(XMP_StringPtr strValue)</td><td><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPUtils.html#a711cae0cb1b673ff5e208b4ae458d120">ConvertToInt64</a>(const tStringObj &amp;strValue)</td><td><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPUtils.html#a61852aaba494c8fbad5a6c0c4caf21f5">ConvertToLocalTime</a>(XMP_DateTime *time)</td><td><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPUtils.html#abbd4d691c83287ea2fc6b1e33e5858b8">ConvertToUTCTime</a>(XMP_DateTime *time)</td><td><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPUtils.html#ac83f0b963ea64d7eee0b481e15a8439c">CurrentDateTime</a>(XMP_DateTime *time)</td><td><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPUtils.html#ae5bdd91c0c3ee9262dc0a8b9f591b921">DecodeFromBase64</a>(XMP_StringPtr encodedStr, XMP_StringLen encodedLen, tStringObj *rawStr)</td><td><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPUtils.html#a1e61e273065b10517ca127d5a553a8dc">DecodeFromBase64</a>(const tStringObj &amp;encodedStr, tStringObj *rawStr)</td><td><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPUtils.html#aa17838f062e5414bc0929f67ac94a3aa">DuplicateSubtree</a>(const TXMPMeta&lt; tStringObj &gt; &amp;source, TXMPMeta&lt; tStringObj &gt; *dest, XMP_StringPtr sourceNS, XMP_StringPtr sourceRoot, XMP_StringPtr destNS=0, XMP_StringPtr destRoot=0, XMP_OptionBits options=0)</td><td><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPUtils.html#aef3b23bbc152480f699e269620ecad4a">EncodeToBase64</a>(XMP_StringPtr rawStr, XMP_StringLen rawLen, tStringObj *encodedStr)</td><td><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPUtils.html#a39d5de77b29441a30f2f879755b8e7d8">EncodeToBase64</a>(const tStringObj &amp;rawStr, tStringObj *encodedStr)</td><td><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPUtils.html#a6187cd5fef0eccecac6805d4114dcd2e">MergeFromJPEG</a>(TXMPMeta&lt; tStringObj &gt; *fullXMP, const TXMPMeta&lt; tStringObj &gt; &amp;extendedXMP)</td><td><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPUtils.html#a6001b4ff54c60fdf0c40e6b78a5c457a">PackageForJPEG</a>(const TXMPMeta&lt; tStringObj &gt; &amp;xmpObj, tStringObj *standardXMP, tStringObj *extendedXMP, tStringObj *extendedDigest)</td><td><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPUtils.html#a40c645803530662e08d042b4b7c6190d">RemoveProperties</a>(TXMPMeta&lt; tStringObj &gt; *xmpObj, XMP_StringPtr schemaNS=0, XMP_StringPtr propName=0, XMP_OptionBits options=0)</td><td><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPUtils.html#a66c5ddee47aa36ed906353f94ca18d2e">SeparateArrayItems</a>(TXMPMeta&lt; tStringObj &gt; *xmpObj, XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_OptionBits options, XMP_StringPtr catedStr)</td><td><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPUtils.html#a1bb2ed614886ff67863744ec56041c43">SeparateArrayItems</a>(TXMPMeta&lt; tStringObj &gt; *xmpObj, XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_OptionBits options, const tStringObj &amp;catedStr)</td><td><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classTXMPUtils.html#a96bcc45febac55f6c49951815b7de2ef">SetTimeZone</a>(XMP_DateTime *time)</td><td><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td><code> [static]</code></td></tr>
-</table></div>
+
+<p>This is the complete list of members for <a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPUtils.html#ab73bfa15116e6d702044542e0a43cce9">ApplyTemplate</a>(TXMPMeta&lt; tStringObj &gt; *workingXMP, const TXMPMeta&lt; tStringObj &gt; &amp;templateXMP, XMP_OptionBits actions)</td><td class="entry"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPUtils.html#ad7e1aa7928252fb88a24fb5c3aef22ba">CatenateArrayItems</a>(const TXMPMeta&lt; tStringObj &gt; &amp;xmpObj, XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_StringPtr separator, XMP_StringPtr quotes, XMP_OptionBits options, tStringObj *catedStr)</td><td class="entry"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPUtils.html#a9fc7f1771032f59f9020aeda4f91991d">CompareDateTime</a>(const XMP_DateTime &amp;left, const XMP_DateTime &amp;right)</td><td class="entry"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPUtils.html#a47fa195aa2e1457aa1f74f7e1ed06da6">ComposeArrayItemPath</a>(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_Index itemIndex, tStringObj *fullPath)</td><td class="entry"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPUtils.html#a458f8e8729e2334fe54ca8f691a9db23">ComposeFieldSelector</a>(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_StringPtr fieldNS, XMP_StringPtr fieldName, XMP_StringPtr fieldValue, tStringObj *fullPath)</td><td class="entry"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPUtils.html#ad2d2361b8a4d0709ec9e3bd837265cba">ComposeFieldSelector</a>(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_StringPtr fieldNS, XMP_StringPtr fieldName, const tStringObj &amp;fieldValue, tStringObj *fullPath)</td><td class="entry"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPUtils.html#ae4989e5c199a2a4287ee3ae89b872e69">ComposeLangSelector</a>(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_StringPtr langName, tStringObj *fullPath)</td><td class="entry"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPUtils.html#a7882bbc2e412ff476c2d97d98808d91c">ComposeLangSelector</a>(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, const tStringObj &amp;langName, tStringObj *fullPath)</td><td class="entry"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPUtils.html#a40ae0ce2065fcb71725e37137884e172">ComposeQualifierPath</a>(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_StringPtr qualNS, XMP_StringPtr qualName, tStringObj *fullPath)</td><td class="entry"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPUtils.html#a706eb85b8401b8682a01348f7e25ee3d">ComposeStructFieldPath</a>(XMP_StringPtr schemaNS, XMP_StringPtr structName, XMP_StringPtr fieldNS, XMP_StringPtr fieldName, tStringObj *fullPath)</td><td class="entry"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPUtils.html#a509691eb270988de6a770c9c8304ab6b">ConvertFromBool</a>(bool binValue, tStringObj *strValue)</td><td class="entry"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPUtils.html#a6146a522a3974b4088d6e8241e9cd223">ConvertFromDate</a>(const XMP_DateTime &amp;binValue, tStringObj *strValue)</td><td class="entry"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPUtils.html#ae67ef3931836432b7e574832f0610ed0">ConvertFromFloat</a>(double binValue, XMP_StringPtr format, tStringObj *strValue)</td><td class="entry"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPUtils.html#aeec45b4d1a26717290105c9f4e8b4235">ConvertFromInt</a>(long binValue, XMP_StringPtr format, tStringObj *strValue)</td><td class="entry"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPUtils.html#aeae4617e05358433015eaa80953c5e60">ConvertFromInt64</a>(long long binValue, XMP_StringPtr format, tStringObj *strValue)</td><td class="entry"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPUtils.html#aaaaaadb23f4089daa795f50cba4f405c">ConvertToBool</a>(XMP_StringPtr strValue)</td><td class="entry"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPUtils.html#a84f2a7b3960a17315032915674e21960">ConvertToBool</a>(const tStringObj &amp;strValue)</td><td class="entry"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPUtils.html#a60d33e6ce30286028acca47b2b6e7a0b">ConvertToDate</a>(XMP_StringPtr strValue, XMP_DateTime *binValue)</td><td class="entry"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPUtils.html#a265559d1b4b78e34a460e935c11177d7">ConvertToDate</a>(const tStringObj &amp;strValue, XMP_DateTime *binValue)</td><td class="entry"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPUtils.html#a8a507b006286460814e0486c622d828c">ConvertToFloat</a>(XMP_StringPtr strValue)</td><td class="entry"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPUtils.html#aabd4e479d2708a9ea3135cd441faa7ea">ConvertToFloat</a>(const tStringObj &amp;strValue)</td><td class="entry"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPUtils.html#adfd9d1c522377d5db4ad667a7973ba00">ConvertToInt</a>(XMP_StringPtr strValue)</td><td class="entry"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPUtils.html#a47d93f9cb4acd9d7ec6b450100209bec">ConvertToInt</a>(const tStringObj &amp;strValue)</td><td class="entry"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPUtils.html#abe5d2dcc03c5442202203bba5ca7b172">ConvertToInt64</a>(XMP_StringPtr strValue)</td><td class="entry"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPUtils.html#a711cae0cb1b673ff5e208b4ae458d120">ConvertToInt64</a>(const tStringObj &amp;strValue)</td><td class="entry"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPUtils.html#a61852aaba494c8fbad5a6c0c4caf21f5">ConvertToLocalTime</a>(XMP_DateTime *time)</td><td class="entry"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPUtils.html#abbd4d691c83287ea2fc6b1e33e5858b8">ConvertToUTCTime</a>(XMP_DateTime *time)</td><td class="entry"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPUtils.html#ac83f0b963ea64d7eee0b481e15a8439c">CurrentDateTime</a>(XMP_DateTime *time)</td><td class="entry"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPUtils.html#ae5bdd91c0c3ee9262dc0a8b9f591b921">DecodeFromBase64</a>(XMP_StringPtr encodedStr, XMP_StringLen encodedLen, tStringObj *rawStr)</td><td class="entry"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPUtils.html#a1e61e273065b10517ca127d5a553a8dc">DecodeFromBase64</a>(const tStringObj &amp;encodedStr, tStringObj *rawStr)</td><td class="entry"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPUtils.html#aa17838f062e5414bc0929f67ac94a3aa">DuplicateSubtree</a>(const TXMPMeta&lt; tStringObj &gt; &amp;source, TXMPMeta&lt; tStringObj &gt; *dest, XMP_StringPtr sourceNS, XMP_StringPtr sourceRoot, XMP_StringPtr destNS=0, XMP_StringPtr destRoot=0, XMP_OptionBits options=0)</td><td class="entry"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPUtils.html#aef3b23bbc152480f699e269620ecad4a">EncodeToBase64</a>(XMP_StringPtr rawStr, XMP_StringLen rawLen, tStringObj *encodedStr)</td><td class="entry"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPUtils.html#a39d5de77b29441a30f2f879755b8e7d8">EncodeToBase64</a>(const tStringObj &amp;rawStr, tStringObj *encodedStr)</td><td class="entry"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPUtils.html#a6187cd5fef0eccecac6805d4114dcd2e">MergeFromJPEG</a>(TXMPMeta&lt; tStringObj &gt; *fullXMP, const TXMPMeta&lt; tStringObj &gt; &amp;extendedXMP)</td><td class="entry"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPUtils.html#a6001b4ff54c60fdf0c40e6b78a5c457a">PackageForJPEG</a>(const TXMPMeta&lt; tStringObj &gt; &amp;xmpObj, tStringObj *standardXMP, tStringObj *extendedXMP, tStringObj *extendedDigest)</td><td class="entry"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPUtils.html#a40c645803530662e08d042b4b7c6190d">RemoveProperties</a>(TXMPMeta&lt; tStringObj &gt; *xmpObj, XMP_StringPtr schemaNS=0, XMP_StringPtr propName=0, XMP_OptionBits options=0)</td><td class="entry"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPUtils.html#a66c5ddee47aa36ed906353f94ca18d2e">SeparateArrayItems</a>(TXMPMeta&lt; tStringObj &gt; *xmpObj, XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_OptionBits options, XMP_StringPtr catedStr)</td><td class="entry"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPUtils.html#a1bb2ed614886ff67863744ec56041c43">SeparateArrayItems</a>(TXMPMeta&lt; tStringObj &gt; *xmpObj, XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_OptionBits options, const tStringObj &amp;catedStr)</td><td class="entry"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTXMPUtils.html#aa9bc319ae425f1e371a3c188b1f9010c">SetClientString</a>(void *clientPtr, XMP_StringPtr valuePtr, XMP_StringLen valueLen)</td><td class="entry"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">private</span><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classTXMPUtils.html#a96bcc45febac55f6c49951815b7de2ef">SetTimeZone</a>(XMP_DateTime *time)</td><td class="entry"><a class="el" href="classTXMPUtils.html">TXMPUtils&lt; tStringObj &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
</body>
</html>
diff --git a/docs/API/classTXMPUtils.html b/docs/API/classTXMPUtils.html
index 5ed48b5..c10a0cc 100644..100755
--- a/docs/API/classTXMPUtils.html
+++ b/docs/API/classTXMPUtils.html
@@ -1,256 +1,270 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: TXMPUtils&lt; tStringObj &gt; Class Template Reference</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
+<title>TXMPUtils&lt; tStringObj &gt; Class Template Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
- <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
- <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classTXMPUtils.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pri-static-methods">Static Private Member Functions</a> &#124;
+<a href="classTXMPUtils-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">TXMPUtils&lt; tStringObj &gt; Class Template Reference</div> </div>
+</div><!--header-->
<div class="contents">
-<h1>TXMPUtils&lt; tStringObj &gt; Class Template Reference</h1><!-- doxytag: class="TXMPUtils" -->
-<p>API for access to the XMP Toolkit utility services.
-<a href="#_details">More...</a></p>
-<p><code>#include &lt;<a class="el" href="TXMPUtils_8hpp_source.html">TXMPUtils.hpp</a>&gt;</code></p>
+<p>API for access to the XMP Toolkit utility services.
+ <a href="classTXMPUtils.html#details">More...</a></p>
-<p><a href="classTXMPUtils-members.html">List of all members.</a></p>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr>
+<p><code>#include &lt;<a class="el" href="TXMPMeta_8hpp_source.html">TXMPMeta.hpp</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">Path composition</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpda28c6423edcba1bd20cc6fd0f5b838f"></a> These functions provide support for composing path expressions to deeply nested properties. The functions in <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta</a></code> such as <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">TXMPMeta::GetProperty()</a></code>, <code><a class="el" href="classTXMPMeta.html#ac64a4251d157937f69b73f2ffac4f7cc" title="GetArrayItem() provides access to items within an array.">TXMPMeta::GetArrayItem()</a></code>, and <code><a class="el" href="classTXMPMeta.html#a885ef7127b897e349f71fa493ace3c94" title="GetStructField() provides access to fields within a nested structure.">TXMPMeta::GetStructField()</a></code> provide easy access to top level simple properties, items in top level arrays, and fields of top level structs. They are not as convenient for more complex things, such as fields several levels deep in a complex struct, or fields within an array of structs, or items of an array that is a field of a struct. You can use these utility functions to compose these paths, which you can then pass to the property access functions. You can also compose paths to top-level array items or struct fields so that you can use the binary accessors such as <code><a class="el" href="classTXMPMeta.html#ae4e8ee4cc7441bb9464dac87f2d74650" title="GetProperty_Int() retrieves the value of an integer property as a C long integer...">TXMPMeta::GetProperty_Int()</a></code>.</p>
-<p>You can use these functions is to compose a complete path expression, or all but the last component. For example, suppose you have a property that is an array of integers within a struct. You can access one of the array items like this:</p>
-<pre>
- SXMPUtils::ComposeStructFieldPath ( schemaNS, "Struct", fieldNS, "Array", &amp;path );
- SXMPUtils::ComposeArrayItemPath ( schemaNS, path, index, &amp;path );
- exists = xmpObj.GetProperty_Int ( schemaNS, path, &amp;value, &amp;options );
- </pre><p>You could also use this code if you want the string form of the integer:</p>
-<pre>
- SXMPUtils::ComposeStructFieldPath ( schemaNS, "Struct", fieldNS, "Array", &amp;path );
- xmpObj.GetArrayItem ( schemaNS, path, index, &amp;value, &amp;options );
- </pre><dl class="note"><dt><b>Note:</b></dt><dd>It might look confusing that the <code>schemaNS</code> is passed in all of the calls above. This is because the XMP Toolkit keeps the top-level "schema" namespace separate from the rest of the path expression. </dd></dl>
+<tr><td colspan="2"><div class="groupText"><p>These functions provide support for composing path expressions to deeply nested properties. The functions in <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services. ">TXMPMeta</a></code> such as <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">TXMPMeta::GetProperty()</a></code>, <code><a class="el" href="classTXMPMeta.html#ac64a4251d157937f69b73f2ffac4f7cc" title="GetArrayItem() provides access to items within an array. ">TXMPMeta::GetArrayItem()</a></code>, and <code><a class="el" href="classTXMPMeta.html#a885ef7127b897e349f71fa493ace3c94" title="GetStructField() provides access to fields within a nested structure. ">TXMPMeta::GetStructField()</a></code> provide easy access to top level simple properties, items in top level arrays, and fields of top level structs. They are not as convenient for more complex things, such as fields several levels deep in a complex struct, or fields within an array of structs, or items of an array that is a field of a struct. You can use these utility functions to compose these paths, which you can then pass to the property access functions. You can also compose paths to top-level array items or </p>
</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a47fa195aa2e1457aa1f74f7e1ed06da6">ComposeArrayItemPath</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName, <a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a> itemIndex, tStringObj *fullPath)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#a47fa195aa2e1457aa1f74f7e1ed06da6" title="ComposeArrayItemPath() composes the path expression for an item in an array.">ComposeArrayItemPath()</a></code> composes the path expression for an item in an array. <a href="#a47fa195aa2e1457aa1f74f7e1ed06da6"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a706eb85b8401b8682a01348f7e25ee3d">ComposeStructFieldPath</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> structName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldName, tStringObj *fullPath)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#a706eb85b8401b8682a01348f7e25ee3d" title="ComposeStructFieldPath() composes the path expression for a field in a struct.">ComposeStructFieldPath()</a></code> composes the path expression for a field in a struct. <a href="#a706eb85b8401b8682a01348f7e25ee3d"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a40ae0ce2065fcb71725e37137884e172">ComposeQualifierPath</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualName, tStringObj *fullPath)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#a40ae0ce2065fcb71725e37137884e172" title="ComposeQualifierPath() composes the path expression for a qualifier.">ComposeQualifierPath()</a></code> composes the path expression for a qualifier. <a href="#a40ae0ce2065fcb71725e37137884e172"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#ae4989e5c199a2a4287ee3ae89b872e69">ComposeLangSelector</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> langName, tStringObj *fullPath)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#ae4989e5c199a2a4287ee3ae89b872e69" title="ComposeLangSelector() composes the path expression to select an alternate item by...">ComposeLangSelector()</a></code> composes the path expression to select an alternate item by language. <a href="#ae4989e5c199a2a4287ee3ae89b872e69"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a7882bbc2e412ff476c2d97d98808d91c">ComposeLangSelector</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName, const tStringObj &amp;langName, tStringObj *fullPath)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#ae4989e5c199a2a4287ee3ae89b872e69" title="ComposeLangSelector() composes the path expression to select an alternate item by...">ComposeLangSelector()</a></code> composes a path expression to select an alternate item by language. <a href="#a7882bbc2e412ff476c2d97d98808d91c"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a458f8e8729e2334fe54ca8f691a9db23">ComposeFieldSelector</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldValue, tStringObj *fullPath)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#a458f8e8729e2334fe54ca8f691a9db23" title="ComposeFieldSelector() composes a path expression to select an alternate item by...">ComposeFieldSelector()</a></code> composes a path expression to select an alternate item by a field's value. <a href="#a458f8e8729e2334fe54ca8f691a9db23"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#ad2d2361b8a4d0709ec9e3bd837265cba">ComposeFieldSelector</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldName, const tStringObj &amp;fieldValue, tStringObj *fullPath)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#a458f8e8729e2334fe54ca8f691a9db23" title="ComposeFieldSelector() composes a path expression to select an alternate item by...">ComposeFieldSelector()</a></code> composes a path expression to select an alternate item by a field's value. <a href="#ad2d2361b8a4d0709ec9e3bd837265cba"></a><br/></td></tr>
+<tr class="memitem:a47fa195aa2e1457aa1f74f7e1ed06da6"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a47fa195aa2e1457aa1f74f7e1ed06da6">ComposeArrayItemPath</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName, <a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a> itemIndex, tStringObj *fullPath)</td></tr>
+<tr class="memdesc:a47fa195aa2e1457aa1f74f7e1ed06da6"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#a47fa195aa2e1457aa1f74f7e1ed06da6" title="ComposeArrayItemPath() composes the path expression for an item in an array. ">ComposeArrayItemPath()</a></code> composes the path expression for an item in an array. <a href="#a47fa195aa2e1457aa1f74f7e1ed06da6">More...</a><br /></td></tr>
+<tr class="separator:a47fa195aa2e1457aa1f74f7e1ed06da6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a706eb85b8401b8682a01348f7e25ee3d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a706eb85b8401b8682a01348f7e25ee3d">ComposeStructFieldPath</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> structName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldName, tStringObj *fullPath)</td></tr>
+<tr class="memdesc:a706eb85b8401b8682a01348f7e25ee3d"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#a706eb85b8401b8682a01348f7e25ee3d" title="ComposeStructFieldPath() composes the path expression for a field in a struct. ">ComposeStructFieldPath()</a></code> composes the path expression for a field in a struct. <a href="#a706eb85b8401b8682a01348f7e25ee3d">More...</a><br /></td></tr>
+<tr class="separator:a706eb85b8401b8682a01348f7e25ee3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a40ae0ce2065fcb71725e37137884e172"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a40ae0ce2065fcb71725e37137884e172">ComposeQualifierPath</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> qualName, tStringObj *fullPath)</td></tr>
+<tr class="memdesc:a40ae0ce2065fcb71725e37137884e172"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#a40ae0ce2065fcb71725e37137884e172" title="ComposeQualifierPath() composes the path expression for a qualifier. ">ComposeQualifierPath()</a></code> composes the path expression for a qualifier. <a href="#a40ae0ce2065fcb71725e37137884e172">More...</a><br /></td></tr>
+<tr class="separator:a40ae0ce2065fcb71725e37137884e172"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae4989e5c199a2a4287ee3ae89b872e69"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#ae4989e5c199a2a4287ee3ae89b872e69">ComposeLangSelector</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> langName, tStringObj *fullPath)</td></tr>
+<tr class="memdesc:ae4989e5c199a2a4287ee3ae89b872e69"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#ae4989e5c199a2a4287ee3ae89b872e69" title="ComposeLangSelector() composes the path expression to select an alternate item by language...">ComposeLangSelector()</a></code> composes the path expression to select an alternate item by language. <a href="#ae4989e5c199a2a4287ee3ae89b872e69">More...</a><br /></td></tr>
+<tr class="separator:ae4989e5c199a2a4287ee3ae89b872e69"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7882bbc2e412ff476c2d97d98808d91c"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a7882bbc2e412ff476c2d97d98808d91c">ComposeLangSelector</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName, const tStringObj &amp;langName, tStringObj *fullPath)</td></tr>
+<tr class="memdesc:a7882bbc2e412ff476c2d97d98808d91c"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#ae4989e5c199a2a4287ee3ae89b872e69" title="ComposeLangSelector() composes the path expression to select an alternate item by language...">ComposeLangSelector()</a></code> composes a path expression to select an alternate item by language. <a href="#a7882bbc2e412ff476c2d97d98808d91c">More...</a><br /></td></tr>
+<tr class="separator:a7882bbc2e412ff476c2d97d98808d91c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a458f8e8729e2334fe54ca8f691a9db23"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a458f8e8729e2334fe54ca8f691a9db23">ComposeFieldSelector</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldValue, tStringObj *fullPath)</td></tr>
+<tr class="memdesc:a458f8e8729e2334fe54ca8f691a9db23"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#a458f8e8729e2334fe54ca8f691a9db23" title="ComposeFieldSelector() composes a path expression to select an alternate item by a field&#39;s value...">ComposeFieldSelector()</a></code> composes a path expression to select an alternate item by a field's value. <a href="#a458f8e8729e2334fe54ca8f691a9db23">More...</a><br /></td></tr>
+<tr class="separator:a458f8e8729e2334fe54ca8f691a9db23"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad2d2361b8a4d0709ec9e3bd837265cba"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#ad2d2361b8a4d0709ec9e3bd837265cba">ComposeFieldSelector</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> fieldName, const tStringObj &amp;fieldValue, tStringObj *fullPath)</td></tr>
+<tr class="memdesc:ad2d2361b8a4d0709ec9e3bd837265cba"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#a458f8e8729e2334fe54ca8f691a9db23" title="ComposeFieldSelector() composes a path expression to select an alternate item by a field&#39;s value...">ComposeFieldSelector()</a></code> composes a path expression to select an alternate item by a field's value. <a href="#ad2d2361b8a4d0709ec9e3bd837265cba">More...</a><br /></td></tr>
+<tr class="separator:ad2d2361b8a4d0709ec9e3bd837265cba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Conversion between binary types and strings</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpb1bfe43fa01b1034da522364434677bc"></a> The main accessors in <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta</a></code> set and retrieve property values as strings. additional functions, such as <code>TXMPMeta::SetPropertyInt()</code>, set and retrieve property values as explicit binary data types. Use these functions to convert between binary and string values.</p>
-<p>Strings can be specified as null-terminated UTF-8 (<code><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a></code>), or as string objects (<code>tStringObj</code>) of the type declared when instantiating the XMP classes; see <code>XMP.hpp</code>. Alternate forms of each conversion function allow either type of string. </p>
-</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a509691eb270988de6a770c9c8304ab6b">ConvertFromBool</a> (bool binValue, tStringObj *strValue)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#a509691eb270988de6a770c9c8304ab6b" title="ConvertFromBool() converts a Boolean value to a string.">ConvertFromBool()</a></code> converts a Boolean value to a string. <a href="#a509691eb270988de6a770c9c8304ab6b"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#aeec45b4d1a26717290105c9f4e8b4235">ConvertFromInt</a> (long binValue, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> format, tStringObj *strValue)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#aeec45b4d1a26717290105c9f4e8b4235" title="ConvertFromInt() converts a 32-bit integer value to a string.">ConvertFromInt()</a></code> converts a 32-bit integer value to a string. <a href="#aeec45b4d1a26717290105c9f4e8b4235"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#aeae4617e05358433015eaa80953c5e60">ConvertFromInt64</a> (long long binValue, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> format, tStringObj *strValue)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#aeae4617e05358433015eaa80953c5e60" title="ConvertFromInt64() converts a 64-bit integer value to a string.">ConvertFromInt64()</a></code> converts a 64-bit integer value to a string. <a href="#aeae4617e05358433015eaa80953c5e60"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#ae67ef3931836432b7e574832f0610ed0">ConvertFromFloat</a> (double binValue, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> format, tStringObj *strValue)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#ae67ef3931836432b7e574832f0610ed0" title="ConvertFromFloat() converts a floating-point value to a string.">ConvertFromFloat()</a></code> converts a floating-point value to a string. <a href="#ae67ef3931836432b7e574832f0610ed0"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a6146a522a3974b4088d6e8241e9cd223">ConvertFromDate</a> (const <a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> &amp;binValue, tStringObj *strValue)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#a6146a522a3974b4088d6e8241e9cd223" title="ConvertFromDate() converts a date/time value to a string.">ConvertFromDate()</a></code> converts a date/time value to a string. <a href="#a6146a522a3974b4088d6e8241e9cd223"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#aaaaaadb23f4089daa795f50cba4f405c">ConvertToBool</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> strValue)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#aaaaaadb23f4089daa795f50cba4f405c" title="ConvertToBool() converts a string to a Boolean value.">ConvertToBool()</a></code> converts a string to a Boolean value. <a href="#aaaaaadb23f4089daa795f50cba4f405c"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a84f2a7b3960a17315032915674e21960">ConvertToBool</a> (const tStringObj &amp;strValue)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#aaaaaadb23f4089daa795f50cba4f405c" title="ConvertToBool() converts a string to a Boolean value.">ConvertToBool()</a></code> converts a string to a Boolean value. <a href="#a84f2a7b3960a17315032915674e21960"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#adfd9d1c522377d5db4ad667a7973ba00">ConvertToInt</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> strValue)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#adfd9d1c522377d5db4ad667a7973ba00" title="ConvertToInt() converts a string to a 32-bit integer value.">ConvertToInt()</a></code> converts a string to a 32-bit integer value. <a href="#adfd9d1c522377d5db4ad667a7973ba00"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a47d93f9cb4acd9d7ec6b450100209bec">ConvertToInt</a> (const tStringObj &amp;strValue)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#adfd9d1c522377d5db4ad667a7973ba00" title="ConvertToInt() converts a string to a 32-bit integer value.">ConvertToInt()</a></code> converts a string to a 32-bit integer value. <a href="#a47d93f9cb4acd9d7ec6b450100209bec"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static long long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#abe5d2dcc03c5442202203bba5ca7b172">ConvertToInt64</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> strValue)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#abe5d2dcc03c5442202203bba5ca7b172" title="ConvertToInt64() converts a string to a 64-bit integer value.">ConvertToInt64()</a></code> converts a string to a 64-bit integer value. <a href="#abe5d2dcc03c5442202203bba5ca7b172"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static long long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a711cae0cb1b673ff5e208b4ae458d120">ConvertToInt64</a> (const tStringObj &amp;strValue)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#abe5d2dcc03c5442202203bba5ca7b172" title="ConvertToInt64() converts a string to a 64-bit integer value.">ConvertToInt64()</a></code> converts a string to a 64-bit integer value. <a href="#a711cae0cb1b673ff5e208b4ae458d120"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a8a507b006286460814e0486c622d828c">ConvertToFloat</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> strValue)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#a8a507b006286460814e0486c622d828c" title="ConvertToFloat() converts a string to a floating-point value.">ConvertToFloat()</a></code> converts a string to a floating-point value. <a href="#a8a507b006286460814e0486c622d828c"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#aabd4e479d2708a9ea3135cd441faa7ea">ConvertToFloat</a> (const tStringObj &amp;strValue)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#a8a507b006286460814e0486c622d828c" title="ConvertToFloat() converts a string to a floating-point value.">ConvertToFloat()</a></code> converts a string to a floating-point value. <a href="#aabd4e479d2708a9ea3135cd441faa7ea"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a60d33e6ce30286028acca47b2b6e7a0b">ConvertToDate</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> strValue, <a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *binValue)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#a60d33e6ce30286028acca47b2b6e7a0b" title="ConvertToDate() converts a string to a date/time value.">ConvertToDate()</a></code> converts a string to a date/time value. <a href="#a60d33e6ce30286028acca47b2b6e7a0b"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a265559d1b4b78e34a460e935c11177d7">ConvertToDate</a> (const tStringObj &amp;strValue, <a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *binValue)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#a60d33e6ce30286028acca47b2b6e7a0b" title="ConvertToDate() converts a string to a date/time value.">ConvertToDate()</a></code> converts a string to a date/time value. <a href="#a265559d1b4b78e34a460e935c11177d7"></a><br/></td></tr>
+<tr class="memitem:a509691eb270988de6a770c9c8304ab6b"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a509691eb270988de6a770c9c8304ab6b">ConvertFromBool</a> (bool binValue, tStringObj *strValue)</td></tr>
+<tr class="memdesc:a509691eb270988de6a770c9c8304ab6b"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#a509691eb270988de6a770c9c8304ab6b" title="ConvertFromBool() converts a Boolean value to a string. ">ConvertFromBool()</a></code> converts a Boolean value to a string. <a href="#a509691eb270988de6a770c9c8304ab6b">More...</a><br /></td></tr>
+<tr class="separator:a509691eb270988de6a770c9c8304ab6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeec45b4d1a26717290105c9f4e8b4235"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#aeec45b4d1a26717290105c9f4e8b4235">ConvertFromInt</a> (long binValue, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> format, tStringObj *strValue)</td></tr>
+<tr class="memdesc:aeec45b4d1a26717290105c9f4e8b4235"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#aeec45b4d1a26717290105c9f4e8b4235" title="ConvertFromInt() converts a 32-bit integer value to a string. ">ConvertFromInt()</a></code> converts a 32-bit integer value to a string. <a href="#aeec45b4d1a26717290105c9f4e8b4235">More...</a><br /></td></tr>
+<tr class="separator:aeec45b4d1a26717290105c9f4e8b4235"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeae4617e05358433015eaa80953c5e60"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#aeae4617e05358433015eaa80953c5e60">ConvertFromInt64</a> (long long binValue, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> format, tStringObj *strValue)</td></tr>
+<tr class="memdesc:aeae4617e05358433015eaa80953c5e60"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#aeae4617e05358433015eaa80953c5e60" title="ConvertFromInt64() converts a 64-bit integer value to a string. ">ConvertFromInt64()</a></code> converts a 64-bit integer value to a string. <a href="#aeae4617e05358433015eaa80953c5e60">More...</a><br /></td></tr>
+<tr class="separator:aeae4617e05358433015eaa80953c5e60"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae67ef3931836432b7e574832f0610ed0"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#ae67ef3931836432b7e574832f0610ed0">ConvertFromFloat</a> (double binValue, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> format, tStringObj *strValue)</td></tr>
+<tr class="memdesc:ae67ef3931836432b7e574832f0610ed0"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#ae67ef3931836432b7e574832f0610ed0" title="ConvertFromFloat() converts a floating-point value to a string. ">ConvertFromFloat()</a></code> converts a floating-point value to a string. <a href="#ae67ef3931836432b7e574832f0610ed0">More...</a><br /></td></tr>
+<tr class="separator:ae67ef3931836432b7e574832f0610ed0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6146a522a3974b4088d6e8241e9cd223"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a6146a522a3974b4088d6e8241e9cd223">ConvertFromDate</a> (const <a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> &amp;binValue, tStringObj *strValue)</td></tr>
+<tr class="memdesc:a6146a522a3974b4088d6e8241e9cd223"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#a6146a522a3974b4088d6e8241e9cd223" title="ConvertFromDate() converts a date/time value to a string. ">ConvertFromDate()</a></code> converts a date/time value to a string. <a href="#a6146a522a3974b4088d6e8241e9cd223">More...</a><br /></td></tr>
+<tr class="separator:a6146a522a3974b4088d6e8241e9cd223"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaaaaadb23f4089daa795f50cba4f405c"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#aaaaaadb23f4089daa795f50cba4f405c">ConvertToBool</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> strValue)</td></tr>
+<tr class="memdesc:aaaaaadb23f4089daa795f50cba4f405c"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#aaaaaadb23f4089daa795f50cba4f405c" title="ConvertToBool() converts a string to a Boolean value. ">ConvertToBool()</a></code> converts a string to a Boolean value. <a href="#aaaaaadb23f4089daa795f50cba4f405c">More...</a><br /></td></tr>
+<tr class="separator:aaaaaadb23f4089daa795f50cba4f405c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a84f2a7b3960a17315032915674e21960"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a84f2a7b3960a17315032915674e21960">ConvertToBool</a> (const tStringObj &amp;strValue)</td></tr>
+<tr class="memdesc:a84f2a7b3960a17315032915674e21960"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#aaaaaadb23f4089daa795f50cba4f405c" title="ConvertToBool() converts a string to a Boolean value. ">ConvertToBool()</a></code> converts a string to a Boolean value. <a href="#a84f2a7b3960a17315032915674e21960">More...</a><br /></td></tr>
+<tr class="separator:a84f2a7b3960a17315032915674e21960"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adfd9d1c522377d5db4ad667a7973ba00"><td class="memItemLeft" align="right" valign="top">static long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#adfd9d1c522377d5db4ad667a7973ba00">ConvertToInt</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> strValue)</td></tr>
+<tr class="memdesc:adfd9d1c522377d5db4ad667a7973ba00"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#adfd9d1c522377d5db4ad667a7973ba00" title="ConvertToInt() converts a string to a 32-bit integer value. ">ConvertToInt()</a></code> converts a string to a 32-bit integer value. <a href="#adfd9d1c522377d5db4ad667a7973ba00">More...</a><br /></td></tr>
+<tr class="separator:adfd9d1c522377d5db4ad667a7973ba00"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a47d93f9cb4acd9d7ec6b450100209bec"><td class="memItemLeft" align="right" valign="top">static long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a47d93f9cb4acd9d7ec6b450100209bec">ConvertToInt</a> (const tStringObj &amp;strValue)</td></tr>
+<tr class="memdesc:a47d93f9cb4acd9d7ec6b450100209bec"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#adfd9d1c522377d5db4ad667a7973ba00" title="ConvertToInt() converts a string to a 32-bit integer value. ">ConvertToInt()</a></code> converts a string to a 32-bit integer value. <a href="#a47d93f9cb4acd9d7ec6b450100209bec">More...</a><br /></td></tr>
+<tr class="separator:a47d93f9cb4acd9d7ec6b450100209bec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abe5d2dcc03c5442202203bba5ca7b172"><td class="memItemLeft" align="right" valign="top">static long long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#abe5d2dcc03c5442202203bba5ca7b172">ConvertToInt64</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> strValue)</td></tr>
+<tr class="memdesc:abe5d2dcc03c5442202203bba5ca7b172"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#abe5d2dcc03c5442202203bba5ca7b172" title="ConvertToInt64() converts a string to a 64-bit integer value. ">ConvertToInt64()</a></code> converts a string to a 64-bit integer value. <a href="#abe5d2dcc03c5442202203bba5ca7b172">More...</a><br /></td></tr>
+<tr class="separator:abe5d2dcc03c5442202203bba5ca7b172"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a711cae0cb1b673ff5e208b4ae458d120"><td class="memItemLeft" align="right" valign="top">static long long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a711cae0cb1b673ff5e208b4ae458d120">ConvertToInt64</a> (const tStringObj &amp;strValue)</td></tr>
+<tr class="memdesc:a711cae0cb1b673ff5e208b4ae458d120"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#abe5d2dcc03c5442202203bba5ca7b172" title="ConvertToInt64() converts a string to a 64-bit integer value. ">ConvertToInt64()</a></code> converts a string to a 64-bit integer value. <a href="#a711cae0cb1b673ff5e208b4ae458d120">More...</a><br /></td></tr>
+<tr class="separator:a711cae0cb1b673ff5e208b4ae458d120"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8a507b006286460814e0486c622d828c"><td class="memItemLeft" align="right" valign="top">static double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a8a507b006286460814e0486c622d828c">ConvertToFloat</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> strValue)</td></tr>
+<tr class="memdesc:a8a507b006286460814e0486c622d828c"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#a8a507b006286460814e0486c622d828c" title="ConvertToFloat() converts a string to a floating-point value. ">ConvertToFloat()</a></code> converts a string to a floating-point value. <a href="#a8a507b006286460814e0486c622d828c">More...</a><br /></td></tr>
+<tr class="separator:a8a507b006286460814e0486c622d828c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aabd4e479d2708a9ea3135cd441faa7ea"><td class="memItemLeft" align="right" valign="top">static double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#aabd4e479d2708a9ea3135cd441faa7ea">ConvertToFloat</a> (const tStringObj &amp;strValue)</td></tr>
+<tr class="memdesc:aabd4e479d2708a9ea3135cd441faa7ea"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#a8a507b006286460814e0486c622d828c" title="ConvertToFloat() converts a string to a floating-point value. ">ConvertToFloat()</a></code> converts a string to a floating-point value. <a href="#aabd4e479d2708a9ea3135cd441faa7ea">More...</a><br /></td></tr>
+<tr class="separator:aabd4e479d2708a9ea3135cd441faa7ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a60d33e6ce30286028acca47b2b6e7a0b"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a60d33e6ce30286028acca47b2b6e7a0b">ConvertToDate</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> strValue, <a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *binValue)</td></tr>
+<tr class="memdesc:a60d33e6ce30286028acca47b2b6e7a0b"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#a60d33e6ce30286028acca47b2b6e7a0b" title="ConvertToDate() converts a string to a date/time value. ">ConvertToDate()</a></code> converts a string to a date/time value. <a href="#a60d33e6ce30286028acca47b2b6e7a0b">More...</a><br /></td></tr>
+<tr class="separator:a60d33e6ce30286028acca47b2b6e7a0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a265559d1b4b78e34a460e935c11177d7"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a265559d1b4b78e34a460e935c11177d7">ConvertToDate</a> (const tStringObj &amp;strValue, <a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *binValue)</td></tr>
+<tr class="memdesc:a265559d1b4b78e34a460e935c11177d7"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#a60d33e6ce30286028acca47b2b6e7a0b" title="ConvertToDate() converts a string to a date/time value. ">ConvertToDate()</a></code> converts a string to a date/time value. <a href="#a265559d1b4b78e34a460e935c11177d7">More...</a><br /></td></tr>
+<tr class="separator:a265559d1b4b78e34a460e935c11177d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Date-time manipulation</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp03f72742905a6dd604c01eba95db6aac"></a> In addition to the type-conversion functions that convert between strings and binary date-time values, these functions create, manipulate, and compare date-time values. </p>
-</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#ac83f0b963ea64d7eee0b481e15a8439c">CurrentDateTime</a> (<a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *time)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#ac83f0b963ea64d7eee0b481e15a8439c" title="CurrentDateTime() obtains the current date and time.">CurrentDateTime()</a></code> obtains the current date and time. <a href="#ac83f0b963ea64d7eee0b481e15a8439c"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a96bcc45febac55f6c49951815b7de2ef">SetTimeZone</a> (<a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *time)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#a96bcc45febac55f6c49951815b7de2ef" title="SetTimeZone() sets the time zone in a date/time value to the local time zone.">SetTimeZone()</a></code> sets the time zone in a date/time value to the local time zone. <a href="#a96bcc45febac55f6c49951815b7de2ef"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#abbd4d691c83287ea2fc6b1e33e5858b8">ConvertToUTCTime</a> (<a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *time)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#abbd4d691c83287ea2fc6b1e33e5858b8" title="ConvertToUTCTime() ensures that a time is UTC.">ConvertToUTCTime()</a></code> ensures that a time is UTC. <a href="#abbd4d691c83287ea2fc6b1e33e5858b8"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a61852aaba494c8fbad5a6c0c4caf21f5">ConvertToLocalTime</a> (<a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *time)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#a61852aaba494c8fbad5a6c0c4caf21f5" title="ConvertToLocalTime() ensures that a time is local.">ConvertToLocalTime()</a></code> ensures that a time is local. <a href="#a61852aaba494c8fbad5a6c0c4caf21f5"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a9fc7f1771032f59f9020aeda4f91991d">CompareDateTime</a> (const <a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> &amp;left, const <a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> &amp;right)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#a9fc7f1771032f59f9020aeda4f91991d" title="CompareDateTime() compares the order of two date/time values.">CompareDateTime()</a></code> compares the order of two date/time values. <a href="#a9fc7f1771032f59f9020aeda4f91991d"></a><br/></td></tr>
+<tr class="memitem:ac83f0b963ea64d7eee0b481e15a8439c"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#ac83f0b963ea64d7eee0b481e15a8439c">CurrentDateTime</a> (<a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *time)</td></tr>
+<tr class="memdesc:ac83f0b963ea64d7eee0b481e15a8439c"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#ac83f0b963ea64d7eee0b481e15a8439c" title="CurrentDateTime() obtains the current date and time. ">CurrentDateTime()</a></code> obtains the current date and time. <a href="#ac83f0b963ea64d7eee0b481e15a8439c">More...</a><br /></td></tr>
+<tr class="separator:ac83f0b963ea64d7eee0b481e15a8439c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a96bcc45febac55f6c49951815b7de2ef"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a96bcc45febac55f6c49951815b7de2ef">SetTimeZone</a> (<a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *time)</td></tr>
+<tr class="memdesc:a96bcc45febac55f6c49951815b7de2ef"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#a96bcc45febac55f6c49951815b7de2ef" title="SetTimeZone() sets the time zone in a date/time value to the local time zone. ">SetTimeZone()</a></code> sets the time zone in a date/time value to the local time zone. <a href="#a96bcc45febac55f6c49951815b7de2ef">More...</a><br /></td></tr>
+<tr class="separator:a96bcc45febac55f6c49951815b7de2ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abbd4d691c83287ea2fc6b1e33e5858b8"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#abbd4d691c83287ea2fc6b1e33e5858b8">ConvertToUTCTime</a> (<a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *time)</td></tr>
+<tr class="memdesc:abbd4d691c83287ea2fc6b1e33e5858b8"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#abbd4d691c83287ea2fc6b1e33e5858b8" title="ConvertToUTCTime() ensures that a time is UTC. ">ConvertToUTCTime()</a></code> ensures that a time is UTC. <a href="#abbd4d691c83287ea2fc6b1e33e5858b8">More...</a><br /></td></tr>
+<tr class="separator:abbd4d691c83287ea2fc6b1e33e5858b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a61852aaba494c8fbad5a6c0c4caf21f5"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a61852aaba494c8fbad5a6c0c4caf21f5">ConvertToLocalTime</a> (<a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *time)</td></tr>
+<tr class="memdesc:a61852aaba494c8fbad5a6c0c4caf21f5"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#a61852aaba494c8fbad5a6c0c4caf21f5" title="ConvertToLocalTime() ensures that a time is local. ">ConvertToLocalTime()</a></code> ensures that a time is local. <a href="#a61852aaba494c8fbad5a6c0c4caf21f5">More...</a><br /></td></tr>
+<tr class="separator:a61852aaba494c8fbad5a6c0c4caf21f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9fc7f1771032f59f9020aeda4f91991d"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a9fc7f1771032f59f9020aeda4f91991d">CompareDateTime</a> (const <a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> &amp;left, const <a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> &amp;right)</td></tr>
+<tr class="memdesc:a9fc7f1771032f59f9020aeda4f91991d"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#a9fc7f1771032f59f9020aeda4f91991d" title="CompareDateTime() compares the order of two date/time values. ">CompareDateTime()</a></code> compares the order of two date/time values. <a href="#a9fc7f1771032f59f9020aeda4f91991d">More...</a><br /></td></tr>
+<tr class="separator:a9fc7f1771032f59f9020aeda4f91991d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Base64 encoding and decoding</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpeb1ee86760da304b00d6de76c740dc59"></a> These functions convert between raw data values and Base64-encoded strings. </p>
-</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#aef3b23bbc152480f699e269620ecad4a">EncodeToBase64</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> rawStr, <a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> rawLen, tStringObj *encodedStr)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#aef3b23bbc152480f699e269620ecad4a" title="EncodeToBase64() converts a raw data value to a Base64-encoded string.">EncodeToBase64()</a></code> converts a raw data value to a Base64-encoded string. <a href="#aef3b23bbc152480f699e269620ecad4a"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a39d5de77b29441a30f2f879755b8e7d8">EncodeToBase64</a> (const tStringObj &amp;rawStr, tStringObj *encodedStr)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#aef3b23bbc152480f699e269620ecad4a" title="EncodeToBase64() converts a raw data value to a Base64-encoded string.">EncodeToBase64()</a></code> converts a raw data value passed in a string object to a Base64-encoded string. <a href="#a39d5de77b29441a30f2f879755b8e7d8"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#ae5bdd91c0c3ee9262dc0a8b9f591b921">DecodeFromBase64</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> encodedStr, <a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> encodedLen, tStringObj *rawStr)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#ae5bdd91c0c3ee9262dc0a8b9f591b921" title="DecodeFromBase64() Decodes a Base64-encoded string to raw data.">DecodeFromBase64()</a></code> Decodes a Base64-encoded string to raw data. <a href="#ae5bdd91c0c3ee9262dc0a8b9f591b921"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a1e61e273065b10517ca127d5a553a8dc">DecodeFromBase64</a> (const tStringObj &amp;encodedStr, tStringObj *rawStr)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#ae5bdd91c0c3ee9262dc0a8b9f591b921" title="DecodeFromBase64() Decodes a Base64-encoded string to raw data.">DecodeFromBase64()</a></code> Decodes a Base64-encoded string, passed as a string object, to raw data. <a href="#a1e61e273065b10517ca127d5a553a8dc"></a><br/></td></tr>
+<tr class="memitem:aef3b23bbc152480f699e269620ecad4a"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#aef3b23bbc152480f699e269620ecad4a">EncodeToBase64</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> rawStr, <a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> rawLen, tStringObj *encodedStr)</td></tr>
+<tr class="memdesc:aef3b23bbc152480f699e269620ecad4a"><td class="mdescLeft">&#160;</td><td class="mdescRight">These functions convert between raw data values and Base64-encoded strings. <a href="#aef3b23bbc152480f699e269620ecad4a">More...</a><br /></td></tr>
+<tr class="separator:aef3b23bbc152480f699e269620ecad4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a39d5de77b29441a30f2f879755b8e7d8"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a39d5de77b29441a30f2f879755b8e7d8">EncodeToBase64</a> (const tStringObj &amp;rawStr, tStringObj *encodedStr)</td></tr>
+<tr class="memdesc:a39d5de77b29441a30f2f879755b8e7d8"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#aef3b23bbc152480f699e269620ecad4a" title="These functions convert between raw data values and Base64-encoded strings. ">EncodeToBase64()</a></code> converts a raw data value passed in a string object to a Base64-encoded string. <a href="#a39d5de77b29441a30f2f879755b8e7d8">More...</a><br /></td></tr>
+<tr class="separator:a39d5de77b29441a30f2f879755b8e7d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae5bdd91c0c3ee9262dc0a8b9f591b921"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#ae5bdd91c0c3ee9262dc0a8b9f591b921">DecodeFromBase64</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> encodedStr, <a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> encodedLen, tStringObj *rawStr)</td></tr>
+<tr class="memdesc:ae5bdd91c0c3ee9262dc0a8b9f591b921"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#ae5bdd91c0c3ee9262dc0a8b9f591b921" title="DecodeFromBase64() Decodes a Base64-encoded string to raw data. ">DecodeFromBase64()</a></code> Decodes a Base64-encoded string to raw data. <a href="#ae5bdd91c0c3ee9262dc0a8b9f591b921">More...</a><br /></td></tr>
+<tr class="separator:ae5bdd91c0c3ee9262dc0a8b9f591b921"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1e61e273065b10517ca127d5a553a8dc"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a1e61e273065b10517ca127d5a553a8dc">DecodeFromBase64</a> (const tStringObj &amp;encodedStr, tStringObj *rawStr)</td></tr>
+<tr class="memdesc:a1e61e273065b10517ca127d5a553a8dc"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#ae5bdd91c0c3ee9262dc0a8b9f591b921" title="DecodeFromBase64() Decodes a Base64-encoded string to raw data. ">DecodeFromBase64()</a></code> Decodes a Base64-encoded string, passed as a string object, to raw data. <a href="#a1e61e273065b10517ca127d5a553a8dc">More...</a><br /></td></tr>
+<tr class="separator:a1e61e273065b10517ca127d5a553a8dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">JPEG file handling</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp9d6900ade7f6b49f559efad32ab4edeb"></a> These functions support the partitioning of XMP in JPEG files into standard and extended portions in order to work around the 64KB size limit of JPEG marker segments.</p>
-<dl class="note"><dt><b>Note:</b></dt><dd>(Doc note) Add detail about how to write out and read back extended data </dd></dl>
+<tr><td colspan="2"><div class="groupText"><p>These functions support the partitioning of XMP in JPEG files into standard and extended portions in order to work around the 64KB size limit of JPEG marker segments. </p>
</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a6001b4ff54c60fdf0c40e6b78a5c457a">PackageForJPEG</a> (const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;xmpObj, tStringObj *standardXMP, tStringObj *extendedXMP, tStringObj *extendedDigest)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#a6001b4ff54c60fdf0c40e6b78a5c457a" title="PackageForJPEG() creates XMP serializations appropriate for a JPEG file.">PackageForJPEG()</a></code> creates XMP serializations appropriate for a JPEG file. <a href="#a6001b4ff54c60fdf0c40e6b78a5c457a"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a6187cd5fef0eccecac6805d4114dcd2e">MergeFromJPEG</a> (<a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; *fullXMP, const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;extendedXMP)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#a6187cd5fef0eccecac6805d4114dcd2e" title="MergeFromJPEG() merges standard and extended XMP retrieved from a JPEG file.">MergeFromJPEG()</a></code> merges standard and extended XMP retrieved from a JPEG file. <a href="#a6187cd5fef0eccecac6805d4114dcd2e"></a><br/></td></tr>
+<tr class="memitem:a6001b4ff54c60fdf0c40e6b78a5c457a"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a6001b4ff54c60fdf0c40e6b78a5c457a">PackageForJPEG</a> (const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;xmpObj, tStringObj *standardXMP, tStringObj *extendedXMP, tStringObj *extendedDigest)</td></tr>
+<tr class="memdesc:a6001b4ff54c60fdf0c40e6b78a5c457a"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#a6001b4ff54c60fdf0c40e6b78a5c457a" title="PackageForJPEG() creates XMP serializations appropriate for a JPEG file. ">PackageForJPEG()</a></code> creates XMP serializations appropriate for a JPEG file. <a href="#a6001b4ff54c60fdf0c40e6b78a5c457a">More...</a><br /></td></tr>
+<tr class="separator:a6001b4ff54c60fdf0c40e6b78a5c457a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6187cd5fef0eccecac6805d4114dcd2e"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a6187cd5fef0eccecac6805d4114dcd2e">MergeFromJPEG</a> (<a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; *fullXMP, const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;extendedXMP)</td></tr>
+<tr class="memdesc:a6187cd5fef0eccecac6805d4114dcd2e"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#a6187cd5fef0eccecac6805d4114dcd2e" title="MergeFromJPEG() merges standard and extended XMP retrieved from a JPEG file. ">MergeFromJPEG()</a></code> merges standard and extended XMP retrieved from a JPEG file. <a href="#a6187cd5fef0eccecac6805d4114dcd2e">More...</a><br /></td></tr>
+<tr class="separator:a6187cd5fef0eccecac6805d4114dcd2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Editing utilities</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp5dca4c30bfa4d1002320a860d2cf1cf4"></a> These functions are useful in implementing a user interface for editing XMP. They convert sets of property values to and from displayable and manipulable strings, and perform operations on sets of metadata, such as those available from the File Info dialog box. </p>
+<tr><td colspan="2"><div class="groupText"><p>These functions are useful in implementing a user interface for editing XMP. They </p>
</div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#ad7e1aa7928252fb88a24fb5c3aef22ba">CatenateArrayItems</a> (const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;xmpObj, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> separator, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> quotes, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, tStringObj *catedStr)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#ad7e1aa7928252fb88a24fb5c3aef22ba" title="CatenateArrayItems() creates a single edit string from a set of array item values...">CatenateArrayItems()</a></code> creates a single edit string from a set of array item values. <a href="#ad7e1aa7928252fb88a24fb5c3aef22ba"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a66c5ddee47aa36ed906353f94ca18d2e">SeparateArrayItems</a> (<a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; *xmpObj, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> catedStr)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#a66c5ddee47aa36ed906353f94ca18d2e" title="SeparateArrayItems() updates an array from a concatenated edit string of values.">SeparateArrayItems()</a></code> updates an array from a concatenated edit string of values. <a href="#a66c5ddee47aa36ed906353f94ca18d2e"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a1bb2ed614886ff67863744ec56041c43">SeparateArrayItems</a> (<a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; *xmpObj, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, const tStringObj &amp;catedStr)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#a66c5ddee47aa36ed906353f94ca18d2e" title="SeparateArrayItems() updates an array from a concatenated edit string of values.">SeparateArrayItems()</a></code> updates an array from a concatenated edit string of values. <a href="#a1bb2ed614886ff67863744ec56041c43"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#ab73bfa15116e6d702044542e0a43cce9">ApplyTemplate</a> (<a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; *workingXMP, const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;templateXMP, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> actions)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#ab73bfa15116e6d702044542e0a43cce9" title="ApplyTemplate() modifies a working XMP object according to a template object.">ApplyTemplate()</a></code> modifies a working XMP object according to a template object. <a href="#ab73bfa15116e6d702044542e0a43cce9"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a40c645803530662e08d042b4b7c6190d">RemoveProperties</a> (<a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; *xmpObj, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS=0, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName=0, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#a40c645803530662e08d042b4b7c6190d" title="RemoveProperties() removes multiple properties from an XMP object.">RemoveProperties()</a></code> removes multiple properties from an XMP object. <a href="#a40c645803530662e08d042b4b7c6190d"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#aa17838f062e5414bc0929f67ac94a3aa">DuplicateSubtree</a> (const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;source, <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; *dest, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> sourceNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> sourceRoot, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> destNS=0, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> destRoot=0, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#aa17838f062e5414bc0929f67ac94a3aa" title="DuplicateSubtree() replicates a subtree from one XMP object into another.">DuplicateSubtree()</a></code> replicates a subtree from one XMP object into another. <a href="#aa17838f062e5414bc0929f67ac94a3aa"></a><br/></td></tr>
+<tr class="memitem:ad7e1aa7928252fb88a24fb5c3aef22ba"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#ad7e1aa7928252fb88a24fb5c3aef22ba">CatenateArrayItems</a> (const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;xmpObj, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> separator, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> quotes, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, tStringObj *catedStr)</td></tr>
+<tr class="memdesc:ad7e1aa7928252fb88a24fb5c3aef22ba"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#ad7e1aa7928252fb88a24fb5c3aef22ba" title="CatenateArrayItems() creates a single edit string from a set of array item values. ">CatenateArrayItems()</a></code> creates a single edit string from a set of array item values. <a href="#ad7e1aa7928252fb88a24fb5c3aef22ba">More...</a><br /></td></tr>
+<tr class="separator:ad7e1aa7928252fb88a24fb5c3aef22ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a66c5ddee47aa36ed906353f94ca18d2e"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a66c5ddee47aa36ed906353f94ca18d2e">SeparateArrayItems</a> (<a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; *xmpObj, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> catedStr)</td></tr>
+<tr class="memdesc:a66c5ddee47aa36ed906353f94ca18d2e"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#a66c5ddee47aa36ed906353f94ca18d2e" title="SeparateArrayItems() updates an array from a concatenated edit string of values. ">SeparateArrayItems()</a></code> updates an array from a concatenated edit string of values. <a href="#a66c5ddee47aa36ed906353f94ca18d2e">More...</a><br /></td></tr>
+<tr class="separator:a66c5ddee47aa36ed906353f94ca18d2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1bb2ed614886ff67863744ec56041c43"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a1bb2ed614886ff67863744ec56041c43">SeparateArrayItems</a> (<a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; *xmpObj, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> arrayName, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, const tStringObj &amp;catedStr)</td></tr>
+<tr class="memdesc:a1bb2ed614886ff67863744ec56041c43"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#a66c5ddee47aa36ed906353f94ca18d2e" title="SeparateArrayItems() updates an array from a concatenated edit string of values. ">SeparateArrayItems()</a></code> updates an array from a concatenated edit string of values. <a href="#a1bb2ed614886ff67863744ec56041c43">More...</a><br /></td></tr>
+<tr class="separator:a1bb2ed614886ff67863744ec56041c43"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab73bfa15116e6d702044542e0a43cce9"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#ab73bfa15116e6d702044542e0a43cce9">ApplyTemplate</a> (<a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; *workingXMP, const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;templateXMP, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> actions)</td></tr>
+<tr class="memdesc:ab73bfa15116e6d702044542e0a43cce9"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#ab73bfa15116e6d702044542e0a43cce9" title="ApplyTemplate() modifies a working XMP object according to a template object. ">ApplyTemplate()</a></code> modifies a working XMP object according to a template object. <a href="#ab73bfa15116e6d702044542e0a43cce9">More...</a><br /></td></tr>
+<tr class="separator:ab73bfa15116e6d702044542e0a43cce9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a40c645803530662e08d042b4b7c6190d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#a40c645803530662e08d042b4b7c6190d">RemoveProperties</a> (<a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; *xmpObj, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS=0, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName=0, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
+<tr class="memdesc:a40c645803530662e08d042b4b7c6190d"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#a40c645803530662e08d042b4b7c6190d" title="RemoveProperties() removes multiple properties from an XMP object. ">RemoveProperties()</a></code> removes multiple properties from an XMP object. <a href="#a40c645803530662e08d042b4b7c6190d">More...</a><br /></td></tr>
+<tr class="separator:a40c645803530662e08d042b4b7c6190d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa17838f062e5414bc0929f67ac94a3aa"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#aa17838f062e5414bc0929f67ac94a3aa">DuplicateSubtree</a> (const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;source, <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; *dest, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> sourceNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> sourceRoot, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> destNS=0, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> destRoot=0, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
+<tr class="memdesc:aa17838f062e5414bc0929f67ac94a3aa"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPUtils.html#aa17838f062e5414bc0929f67ac94a3aa" title="DuplicateSubtree() replicates a subtree from one XMP object into another. ">DuplicateSubtree()</a></code> replicates a subtree from one XMP object into another. <a href="#aa17838f062e5414bc0929f67ac94a3aa">More...</a><br /></td></tr>
+<tr class="separator:aa17838f062e5414bc0929f67ac94a3aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-static-methods"></a>
+Static Private Member Functions</h2></td></tr>
+<tr class="memitem:aa9bc319ae425f1e371a3c188b1f9010c"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPUtils.html#aa9bc319ae425f1e371a3c188b1f9010c">SetClientString</a> (void *clientPtr, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> valuePtr, <a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> valueLen)</td></tr>
+<tr class="separator:aa9bc319ae425f1e371a3c188b1f9010c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
-<hr/><a name="_details"></a><h2>Detailed Description</h2>
-<h3>template&lt;class tStringObj&gt;<br/>
- class TXMPUtils&lt; tStringObj &gt;</h3>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><h3>template&lt;class tStringObj&gt;<br />
+class TXMPUtils&lt; tStringObj &gt;</h3>
<p>API for access to the XMP Toolkit utility services. </p>
-<p><code><a class="el" href="classTXMPUtils.html" title="API for access to the XMP Toolkit utility services.">TXMPUtils</a></code> is a template class which must be instantiated with a string class such as <code>std::string</code>. See the instructions in XMP.hpp, and the Overview for a discussion of the overall architecture of the XMP API.</p>
-<p>This class defines helper functions that support the basic metadata manipulation provided by <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta</a></code>. All of the functions are static; that is, you call them directly from the concrete class (<code>SXMPUtils</code>), which is never itself instantiated.</p>
+<p><code><a class="el" href="classTXMPUtils.html" title="API for access to the XMP Toolkit utility services. ">TXMPUtils</a></code> is a template class which must be instantiated with a string class such as <code>std::string</code>. See the instructions in <a class="el" href="XMP_8hpp.html" title="Overall header file for the XMP Toolkit. ">XMP.hpp</a>, and the Overview for a discussion of the overall architecture of the XMP API.</p>
+<p>This class defines helper functions that support the basic metadata manipulation provided by <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services. ">TXMPMeta</a></code>. All of the functions are static; that is, you call them directly from the concrete class (<code>SXMPUtils</code>), which is never itself instantiated.</p>
<p>General categories of utilities include:</p>
<ul>
-<li>Composing complex path expressions, which you can then pass to the property access functions in <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta</a></code> </li>
+<li>Composing complex path expressions, which you can then pass to the property access functions in <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services. ">TXMPMeta</a></code> </li>
<li>Converting between binary and string forms of property values </li>
<li>Manipulating date/time values </li>
<li>Encoding and decoding base-64 strings </li>
<li>JPEG file handling </li>
<li>Editing aids for creating a user interface for the XMP Toolkit </li>
</ul>
-<hr/><h2>Member Function Documentation</h2>
-<a class="anchor" id="ab73bfa15116e6d702044542e0a43cce9"></a><!-- doxytag: member="TXMPUtils::ApplyTemplate" ref="ab73bfa15116e6d702044542e0a43cce9" args="(TXMPMeta&lt; tStringObj &gt; *workingXMP, const TXMPMeta&lt; tStringObj &gt; &amp;templateXMP, XMP_OptionBits actions)" -->
+
+<p>Definition at line <a class="el" href="TXMPMeta_8hpp_source.html#l00051">51</a> of file <a class="el" href="TXMPMeta_8hpp_source.html">TXMPMeta.hpp</a>.</p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="ab73bfa15116e6d702044542e0a43cce9"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classTXMPUtils.html">TXMPUtils</a>&lt; tStringObj &gt;::ApplyTemplate </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; *&nbsp;</td>
- <td class="paramname"> <em>workingXMP</em>, </td>
+ <td class="paramtype"><a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; *&#160;</td>
+ <td class="paramname"><em>workingXMP</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;&nbsp;</td>
- <td class="paramname"> <em>templateXMP</em>, </td>
+ <td class="paramtype">const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;&#160;</td>
+ <td class="paramname"><em>templateXMP</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>actions</em></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>actions</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td><code> [static]</code></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPUtils.html#ab73bfa15116e6d702044542e0a43cce9" title="ApplyTemplate() modifies a working XMP object according to a template object.">ApplyTemplate()</a></code> modifies a working XMP object according to a template object. </p>
+<p><code><a class="el" href="classTXMPUtils.html#ab73bfa15116e6d702044542e0a43cce9" title="ApplyTemplate() modifies a working XMP object according to a template object. ">ApplyTemplate()</a></code> modifies a working XMP object according to a template object. </p>
<p>The XMP template can be used to add, replace or delete properties from the working XMP object. This function replaces the previous <code>AppendProperties()</code> function, which is no longer available. The actions that you specify determine how the template is applied. Each action can be applied individually or combined; if you do not specify any actions, the properties and values in the working XMP object do not change.</p>
-<p>These actions are available: </p>
-<ul>
-<li>Clear (<code><a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a9dac536fe6ee25de76d45bf6615abd46" title="Perform a Clear operation, keep named properties and delete everything else.">kXMPTemplate_ClearUnnamedProperties</a></code>): Deletes top-level properties. Any top-level property that is present in the template (even with empty value) is retained. All other top-level properties in the working object are deleted.</li>
+<p>These actions are available: </p><ul>
+<li>Clear (<code><a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a9dac536fe6ee25de76d45bf6615abd46" title="Perform a Clear operation, keep named properties and delete everything else. ">kXMPTemplate_ClearUnnamedProperties</a></code>): Deletes top-level properties. Any top-level property that is present in the template (even with empty value) is retained. All other top-level properties in the working object are deleted.</li>
</ul>
<ul>
-<li>Add (<code><a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a145c259f83048b811c7b35bc3b339c42" title="Perform an Add operation, add properties if they don&#39;t already exist.">kXMPTemplate_AddNewProperties</a></code>): Adds new properties to the working object if the template properties have values. See additional detail below.</li>
+<li>Add (<code><a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a145c259f83048b811c7b35bc3b339c42" title="Perform an Add operation, add properties if they don&#39;t already exist. ">kXMPTemplate_AddNewProperties</a></code>): Adds new properties to the working object if the template properties have values. See additional detail below.</li>
</ul>
<ul>
-<li>Replace (<code><a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57aae2e0fe43295736a15f0bb76ffe02544" title="Perform a Replace operation, add new properties and modify existing ones.">kXMPTemplate_ReplaceExistingProperties</a></code>): Replaces the values of existing top-level properties in the working XMP if the value forms match those in the template. Properties with empty values in the template are ignored. If combined with Clear or Add actions, those take precedence; values are cleared or added, rather than replaced.</li>
+<li>Replace (<code><a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57aae2e0fe43295736a15f0bb76ffe02544" title="Perform a Replace operation, add new properties and modify existing ones. ">kXMPTemplate_ReplaceExistingProperties</a></code>): Replaces the values of existing top-level properties in the working XMP if the value forms match those in the template. Properties with empty values in the template are ignored. If combined with Clear or Add actions, those take precedence; values are cleared or added, rather than replaced.</li>
</ul>
<ul>
-<li>Replace/Delete empty (<code><a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a81e1b6fd067fc9ad62bc803c98701bd5" title="Similar to Replace, also delete if the template has an empty value.">kXMPTemplate_ReplaceWithDeleteEmpty</a></code>): Replaces values in the same way as the simple Replace action, and also deletes properties if the value in the template is empty. If combined with Clear or Add actions, those take precedence; values are cleared or added, rather than replaced.</li>
+<li>Replace/Delete empty (<code><a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a81e1b6fd067fc9ad62bc803c98701bd5" title="Similar to Replace, also delete if the template has an empty value. ">kXMPTemplate_ReplaceWithDeleteEmpty</a></code>): Replaces values in the same way as the simple Replace action, and also deletes properties if the value in the template is empty. If combined with Clear or Add actions, those take precedence; values are cleared or added, rather than replaced.</li>
</ul>
<ul>
-<li>Include internal (<code><a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a872d2b769e775e281984cc63e28714ea" title="Do all properties, default is just external properties.">kXMPTemplate_IncludeInternalProperties</a></code>): Performs specified action on internal properties as well as external properties. By default, internal properties are ignored for all actions.</li>
+<li>Include internal (<code><a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a872d2b769e775e281984cc63e28714ea" title="Do all properties, default is just external properties. ">kXMPTemplate_IncludeInternalProperties</a></code>): Performs specified action on internal properties as well as external properties. By default, internal properties are ignored for all actions.</li>
</ul>
-<p>The Add behavior depends on the type of property: </p>
-<ul>
+<p>The Add behavior depends on the type of property: </p><ul>
<li>
If a top-level property is not in the working XMP, and has a value in the template, the property and value are added. Empty properties are not added. </li>
<li>
@@ -262,18 +276,16 @@ If an array is present in both the working XMP and template, items from the temp
<li>
Alt-text arrays use the <code>xml:lang</code> qualifier as a key, adding languages that are missing. </li>
</ul>
-<p>Array item checking is n-squared; this can be time-intensive if the Replace option is not specified. Each source item is checked to see if it already exists in the destination, without regard to order or duplicates. Simple items are compared by value and <code>xml:lang</code> qualifier; other qualifiers are ignored. Structs are recursively compared by field names, without regard to field order. Arrays are compared by recursively comparing all items. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>workingXMP</em>&nbsp;</td><td>The destination XMP object.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>templateXMP</em>&nbsp;</td><td>The template to apply to the destination XMP object.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>actions</em>&nbsp;</td><td>Option flags to control the copying. If none are specified, the properties and values in the working XMP do not change. A logical OR of these bit-flag constants: </p>
-<ul>
-<li><code><a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a9dac536fe6ee25de76d45bf6615abd46" title="Perform a Clear operation, keep named properties and delete everything else.">kXMPTemplate_ClearUnnamedProperties</a></code> -- Delete anything that is not in the template </li>
-<li><code><a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a145c259f83048b811c7b35bc3b339c42" title="Perform an Add operation, add properties if they don&#39;t already exist.">kXMPTemplate_AddNewProperties</a></code> -- Add properties; see detailed description. </li>
-<li><code><a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57aae2e0fe43295736a15f0bb76ffe02544" title="Perform a Replace operation, add new properties and modify existing ones.">kXMPTemplate_ReplaceExistingProperties</a></code> -- Replace the values of existing properties. </li>
-<li><code><a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a81e1b6fd067fc9ad62bc803c98701bd5" title="Similar to Replace, also delete if the template has an empty value.">kXMPTemplate_ReplaceWithDeleteEmpty</a></code> -- Replace the values of existing properties and delete properties if the new value is empty. </li>
-<li><code><a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a872d2b769e775e281984cc63e28714ea" title="Do all properties, default is just external properties.">kXMPTemplate_IncludeInternalProperties</a></code> -- Operate on internal properties as well as external properties. </li>
+<p>Array item checking is n-squared; this can be time-intensive if the Replace option is not specified. Each source item is checked to see if it already exists in the destination, without regard to order or duplicates. Simple items are compared by value and <code>xml:lang</code> qualifier; other qualifiers are ignored. Structs are recursively compared by field names, without regard to field order. Arrays are compared by recursively comparing all items. </p><dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">workingXMP</td><td>The destination XMP object.</td></tr>
+ <tr><td class="paramname">templateXMP</td><td>The template to apply to the destination XMP object.</td></tr>
+ <tr><td class="paramname">actions</td><td>Option flags to control the copying. If none are specified, the properties and values in the working XMP do not change. A logical OR of these bit-flag constants: <ul>
+<li><code><a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a9dac536fe6ee25de76d45bf6615abd46" title="Perform a Clear operation, keep named properties and delete everything else. ">kXMPTemplate_ClearUnnamedProperties</a></code> &ndash; Delete anything that is not in the template </li>
+<li><code><a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a145c259f83048b811c7b35bc3b339c42" title="Perform an Add operation, add properties if they don&#39;t already exist. ">kXMPTemplate_AddNewProperties</a></code> &ndash; Add properties; see detailed description. </li>
+<li><code><a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57aae2e0fe43295736a15f0bb76ffe02544" title="Perform a Replace operation, add new properties and modify existing ones. ">kXMPTemplate_ReplaceExistingProperties</a></code> &ndash; Replace the values of existing properties. </li>
+<li><code><a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a81e1b6fd067fc9ad62bc803c98701bd5" title="Similar to Replace, also delete if the template has an empty value. ">kXMPTemplate_ReplaceWithDeleteEmpty</a></code> &ndash; Replace the values of existing properties and delete properties if the new value is empty. </li>
+<li><code><a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a872d2b769e775e281984cc63e28714ea" title="Do all properties, default is just external properties. ">kXMPTemplate_IncludeInternalProperties</a></code> &ndash; Operate on internal properties as well as external properties. </li>
</ul>
</td></tr>
</table>
@@ -282,118 +294,132 @@ Alt-text arrays use the <code>xml:lang</code> qualifier as a key, adding languag
</div>
</div>
-<a class="anchor" id="ad7e1aa7928252fb88a24fb5c3aef22ba"></a><!-- doxytag: member="TXMPUtils::CatenateArrayItems" ref="ad7e1aa7928252fb88a24fb5c3aef22ba" args="(const TXMPMeta&lt; tStringObj &gt; &amp;xmpObj, XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_StringPtr separator, XMP_StringPtr quotes, XMP_OptionBits options, tStringObj *catedStr)" -->
+<a class="anchor" id="ad7e1aa7928252fb88a24fb5c3aef22ba"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classTXMPUtils.html">TXMPUtils</a>&lt; tStringObj &gt;::CatenateArrayItems </td>
<td>(</td>
- <td class="paramtype">const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;&nbsp;</td>
- <td class="paramname"> <em>xmpObj</em>, </td>
+ <td class="paramtype">const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;&#160;</td>
+ <td class="paramname"><em>xmpObj</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>arrayName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>arrayName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>separator</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>separator</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>quotes</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>quotes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>options</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tStringObj *&nbsp;</td>
- <td class="paramname"> <em>catedStr</em></td><td>&nbsp;</td>
+ <td class="paramtype">tStringObj *&#160;</td>
+ <td class="paramname"><em>catedStr</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td><code> [static]</code></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
-
-<p><code><a class="el" href="classTXMPUtils.html#ad7e1aa7928252fb88a24fb5c3aef22ba" title="CatenateArrayItems() creates a single edit string from a set of array item values...">CatenateArrayItems()</a></code> creates a single edit string from a set of array item values. </p>
-<p>Collects the values of all items in an array into a single string, using a specified separation string. Each item in the specified array must be a simple string value.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>xmpObj</em>&nbsp;</td><td>The XMP object containing the array to be catenated.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>The schema namespace URI for the array. Must not be null or the empty string.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>arrayName</em>&nbsp;</td><td>The name of the array. May be a general path expression, must not be null or the empty string.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>separator</em>&nbsp;</td><td>The string with which to separate the items in the catenated string. Defaults to "; ", ASCII semicolon and space (U+003B, U+0020).</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>quotes</em>&nbsp;</td><td>The character or characters to use as quotes around array items that contain a separator. Defaults to the double-quote character ("), ASCII quote (U+0022).</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>Option flags to control the catenation. &lt;&lt;what options?&gt;&gt;</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>catedStr</em>&nbsp;</td><td>[out] A string object in which to return the catenated array items.</td></tr>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p><code><a class="el" href="classTXMPUtils.html#ad7e1aa7928252fb88a24fb5c3aef22ba" title="CatenateArrayItems() creates a single edit string from a set of array item values. ">CatenateArrayItems()</a></code> creates a single edit string from a set of array item values. </p>
+<p>convert sets of property values to and from displayable and manipulable strings, and perform operations on sets of metadata, such as those available from the File Info dialog box.Collects the values of all items in an array into a single string, using a specified separation string. Each item in the specified array must be a simple string value.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">xmpObj</td><td>The XMP object containing the array to be catenated.</td></tr>
+ <tr><td class="paramname">schemaNS</td><td>The schema namespace URI for the array. Must not be null or the empty string.</td></tr>
+ <tr><td class="paramname">arrayName</td><td>The name of the array. May be a general path expression, must not be null or the empty string.</td></tr>
+ <tr><td class="paramname">separator</td><td>The string with which to separate the items in the catenated string. Defaults to "; ", ASCII semicolon and space (U+003B, U+0020).</td></tr>
+ <tr><td class="paramname">quotes</td><td>The character or characters to use as quotes around array items that contain a separator. Defaults to the double-quote character ("), ASCII quote (U+0022).</td></tr>
+ <tr><td class="paramname">options</td><td>Option flags to control the catenation. &lt;&lt;what options?&gt;&gt;</td></tr>
+ <tr><td class="paramname">catedStr</td><td>[out] A string object in which to return the catenated array items.</td></tr>
</table>
</dd>
</dl>
-<dl class="see"><dt><b>See also:</b></dt><dd><code><a class="el" href="classTXMPUtils.html#a66c5ddee47aa36ed906353f94ca18d2e" title="SeparateArrayItems() updates an array from a concatenated edit string of values.">SeparateArrayItems()</a></code> </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><code><a class="el" href="classTXMPUtils.html#a66c5ddee47aa36ed906353f94ca18d2e" title="SeparateArrayItems() updates an array from a concatenated edit string of values. ">SeparateArrayItems()</a></code> </dd></dl>
</div>
</div>
-<a class="anchor" id="a9fc7f1771032f59f9020aeda4f91991d"></a><!-- doxytag: member="TXMPUtils::CompareDateTime" ref="a9fc7f1771032f59f9020aeda4f91991d" args="(const XMP_DateTime &amp;left, const XMP_DateTime &amp;right)" -->
+<a class="anchor" id="a9fc7f1771032f59f9020aeda4f91991d"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static int <a class="el" href="classTXMPUtils.html">TXMPUtils</a>&lt; tStringObj &gt;::CompareDateTime </td>
<td>(</td>
- <td class="paramtype">const <a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> &amp;&nbsp;</td>
- <td class="paramname"> <em>left</em>, </td>
+ <td class="paramtype">const <a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> &amp;&#160;</td>
+ <td class="paramname"><em>left</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">const <a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> &amp;&nbsp;</td>
- <td class="paramname"> <em>right</em></td><td>&nbsp;</td>
+ <td class="paramtype">const <a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> &amp;&#160;</td>
+ <td class="paramname"><em>right</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td><code> [static]</code></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPUtils.html#a9fc7f1771032f59f9020aeda4f91991d" title="CompareDateTime() compares the order of two date/time values.">CompareDateTime()</a></code> compares the order of two date/time values. </p>
+<p><code><a class="el" href="classTXMPUtils.html#a9fc7f1771032f59f9020aeda4f91991d" title="CompareDateTime() compares the order of two date/time values. ">CompareDateTime()</a></code> compares the order of two date/time values. </p>
<p>Both values are treated as in the same time zone if either has no time zone.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>left</em>&nbsp;</td><td>The left-side date/time value.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>right</em>&nbsp;</td><td>The right-side date/time value.</td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">left</td><td>The left-side date/time value.</td></tr>
+ <tr><td class="paramname">right</td><td>The right-side date/time value.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>An integer indicating the order: <ul>
+<dl class="section return"><dt>Returns</dt><dd>An integer indicating the order: <ul>
<li>-1 if left is earlier than right </li>
<li>0 if left matches right </li>
<li>+1 if left is later than right </li>
@@ -402,1480 +428,1699 @@ template&lt;class tStringObj &gt; </div>
</div>
</div>
-<a class="anchor" id="a47fa195aa2e1457aa1f74f7e1ed06da6"></a><!-- doxytag: member="TXMPUtils::ComposeArrayItemPath" ref="a47fa195aa2e1457aa1f74f7e1ed06da6" args="(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_Index itemIndex, tStringObj *fullPath)" -->
+<a class="anchor" id="a47fa195aa2e1457aa1f74f7e1ed06da6"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classTXMPUtils.html">TXMPUtils</a>&lt; tStringObj &gt;::ComposeArrayItemPath </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>arrayName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>arrayName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a>&nbsp;</td>
- <td class="paramname"> <em>itemIndex</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Index</a>&#160;</td>
+ <td class="paramname"><em>itemIndex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tStringObj *&nbsp;</td>
- <td class="paramname"> <em>fullPath</em></td><td>&nbsp;</td>
+ <td class="paramtype">tStringObj *&#160;</td>
+ <td class="paramname"><em>fullPath</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td><code> [static]</code></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPUtils.html#a47fa195aa2e1457aa1f74f7e1ed06da6" title="ComposeArrayItemPath() composes the path expression for an item in an array.">ComposeArrayItemPath()</a></code> composes the path expression for an item in an array. </p>
-<p>The returned string is in the form <code>ns:arrayName[i]</code>, where "ns" is the prefix for the specified namespace, and "i" is the decimal representation of specified item index. If the last item was specified, the path is <code>ns:arrayName[last()]</code>.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>The namespace URI for the array; see <code>GetProperty()</code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>arrayName</em>&nbsp;</td><td>The name of the array. Can be a general path expression, must not be null or the empty string; see <code>GetProperty()</code> for namespace prefix usage.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>itemIndex</em>&nbsp;</td><td>The 1-based index of the desired item. Use the macro <code><a class="el" href="XMP__Const_8h.html#a9549b9a138a896257b5a70176d125317" title="Options macro accesses last array item.">kXMP_ArrayLastItem</a></code> to specify the last existing array item.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>fullPath</em>&nbsp;</td><td>[out] A string in which to return the composed path. </td></tr>
+<p><code><a class="el" href="classTXMPUtils.html#a47fa195aa2e1457aa1f74f7e1ed06da6" title="ComposeArrayItemPath() composes the path expression for an item in an array. ">ComposeArrayItemPath()</a></code> composes the path expression for an item in an array. </p>
+<p>struct fields so that you can use the binary accessors such as <code><a class="el" href="classTXMPMeta.html#ae4e8ee4cc7441bb9464dac87f2d74650" title="GetProperty_Int() retrieves the value of an integer property as a C long integer. ...">TXMPMeta::GetProperty_Int()</a></code>. You can use these functions is to compose a complete path expression, or all but the last component. For example, suppose you have a property that is an array of integers within a struct. You can access one of the array items like this:</p>
+<pre>
+ SXMPUtils::ComposeStructFieldPath ( schemaNS, "Struct", fieldNS, "Array", &amp;path );
+ SXMPUtils::ComposeArrayItemPath ( schemaNS, path, index, &amp;path );
+ exists = xmpObj.GetProperty_Int ( schemaNS, path, &amp;value, &amp;options );
+</pre><p>You could also use this code if you want the string form of the integer:</p>
+<pre>
+ SXMPUtils::ComposeStructFieldPath ( schemaNS, "Struct", fieldNS, "Array", &amp;path );
+ xmpObj.GetArrayItem ( schemaNS, path, index, &amp;value, &amp;options );
+</pre><dl class="section note"><dt>Note</dt><dd>It might look confusing that the <code>schemaNS</code> is passed in all of the calls above. This is because the XMP Toolkit keeps the top-level "schema" namespace separate from the rest of the path expression.The returned string is in the form <code>ns:arrayName[i]</code>, where "ns" is the prefix for the specified namespace, and "i" is the decimal representation of specified item index. If the last item was specified, the path is <code>ns:arrayName[last()]</code>.</dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">schemaNS</td><td>The namespace URI for the array; see <code>GetProperty()</code>.</td></tr>
+ <tr><td class="paramname">arrayName</td><td>The name of the array. Can be a general path expression, must not be null or the empty string; see <code>GetProperty()</code> for namespace prefix usage.</td></tr>
+ <tr><td class="paramname">itemIndex</td><td>The 1-based index of the desired item. Use the macro <code><a class="el" href="XMP__Const_8h.html#a9549b9a138a896257b5a70176d125317" title="Options macro accesses last array item. ">kXMP_ArrayLastItem</a></code> to specify the last existing array item.</td></tr>
+ <tr><td class="paramname">fullPath</td><td>[out] A string in which to return the composed path. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="ad2d2361b8a4d0709ec9e3bd837265cba"></a><!-- doxytag: member="TXMPUtils::ComposeFieldSelector" ref="ad2d2361b8a4d0709ec9e3bd837265cba" args="(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_StringPtr fieldNS, XMP_StringPtr fieldName, const tStringObj &amp;fieldValue, tStringObj *fullPath)" -->
+<a class="anchor" id="a458f8e8729e2334fe54ca8f691a9db23"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classTXMPUtils.html">TXMPUtils</a>&lt; tStringObj &gt;::ComposeFieldSelector </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>arrayName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>arrayName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>fieldNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>fieldNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>fieldName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>fieldName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">const tStringObj &amp;&nbsp;</td>
- <td class="paramname"> <em>fieldValue</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>fieldValue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tStringObj *&nbsp;</td>
- <td class="paramname"> <em>fullPath</em></td><td>&nbsp;</td>
+ <td class="paramtype">tStringObj *&#160;</td>
+ <td class="paramname"><em>fullPath</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td><code> [static]</code></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
-
-<p><code><a class="el" href="classTXMPUtils.html#a458f8e8729e2334fe54ca8f691a9db23" title="ComposeFieldSelector() composes a path expression to select an alternate item by...">ComposeFieldSelector()</a></code> composes a path expression to select an alternate item by a field's value. </p>
-<p>Path syntax allows two forms of "content addressing" to select an item in an array of alternatives. The form used in this function lets you select an item in an array of structs based on the value of one of the fields in the structs. The other form of content addressing is shown in <code><a class="el" href="classTXMPUtils.html#ae4989e5c199a2a4287ee3ae89b872e69" title="ComposeLangSelector() composes the path expression to select an alternate item by...">ComposeLangSelector()</a></code>.</p>
-<p>For example, consider a simple struct that has two fields, the name of a city and the URI of an FTP site in that city. Use this to create an array of download alternatives. You can show the user a popup built from the values of the city fields, then get the corresponding URI as follows: </p>
-<pre>
- ComposeFieldSelector ( schemaNS, "Downloads", fieldNS, "City", chosenCity, &amp;path );
- exists = GetStructField ( schemaNS, path, fieldNS, "URI", &amp;uri );
- </pre><p>The returned string is in the form <code>ns:arrayName[fNS:fieldName='fieldValue']</code>, where "ns" is the prefix for the schema namespace and "fNS" is the prefix for the field namespace.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>The namespace URI for the array; see <code>GetProperty()</code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>arrayName</em>&nbsp;</td><td>The name of the array. Can be a general path expression, must not be null or the empty string; see <code>GetProperty()</code> for namespace prefix usage.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>fieldNS</em>&nbsp;</td><td>The namespace URI for the field used as the selector. Same URI and prefix usage as the <code>schemaNS</code> and <code>arrayName</code> parameters.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>fieldName</em>&nbsp;</td><td>The name of the field used as the selector. Must be a single XML name, must not be null or the empty string. It must be the name of a field that is itself simple.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>fieldValue</em>&nbsp;</td><td>The desired value of the field, specified as a string object.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>fullPath</em>&nbsp;</td><td>[out] A string in which to return the composed path. </td></tr>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p><code><a class="el" href="classTXMPUtils.html#a458f8e8729e2334fe54ca8f691a9db23" title="ComposeFieldSelector() composes a path expression to select an alternate item by a field&#39;s value...">ComposeFieldSelector()</a></code> composes a path expression to select an alternate item by a field's value. </p>
+<p>Path syntax allows two forms of "content addressing" to select an item in an array of alternatives. The form used in this function lets you select an item in an array of structs based on the value of one of the fields in the structs. The other form of content addressing is shown in <code><a class="el" href="classTXMPUtils.html#ae4989e5c199a2a4287ee3ae89b872e69" title="ComposeLangSelector() composes the path expression to select an alternate item by language...">ComposeLangSelector()</a></code>.</p>
+<p>For example, consider a simple struct that has two fields, the name of a city and the URI of an FTP site in that city. Use this to create an array of download alternatives. You can show the user a popup built from the values of the city fields, then get the corresponding URI as follows: </p><pre>
+ ComposeFieldSelector ( schemaNS, "Downloads", fieldNS, "City", chosenCity, &amp;path );
+ exists = GetStructField ( schemaNS, path, fieldNS, "URI", &amp;uri );
+</pre><p>The returned string is in the form <code>ns:arrayName[fNS:fieldName='fieldValue']</code>, where "ns" is the prefix for the schema namespace and "fNS" is the prefix for the field namespace.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">schemaNS</td><td>The namespace URI for the array; see <code>GetProperty()</code>.</td></tr>
+ <tr><td class="paramname">arrayName</td><td>The name of the array. Can be a general path expression, must not be null or the empty string; see <code>GetProperty()</code> for namespace prefix usage.</td></tr>
+ <tr><td class="paramname">fieldNS</td><td>The namespace URI for the field used as the selector. Same URI and prefix usage as the <code>schemaNS</code> and <code>arrayName</code> parameters.</td></tr>
+ <tr><td class="paramname">fieldName</td><td>The name of the field used as the selector. Must be a single XML name, must not be null or the empty string. It must be the name of a field that is itself simple.</td></tr>
+ <tr><td class="paramname">fieldValue</td><td>The desired value of the field, specified as a null-terminated UTF-8 string.</td></tr>
+ <tr><td class="paramname">fullPath</td><td>[out] A string in which to return the composed path. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="a458f8e8729e2334fe54ca8f691a9db23"></a><!-- doxytag: member="TXMPUtils::ComposeFieldSelector" ref="a458f8e8729e2334fe54ca8f691a9db23" args="(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_StringPtr fieldNS, XMP_StringPtr fieldName, XMP_StringPtr fieldValue, tStringObj *fullPath)" -->
+<a class="anchor" id="ad2d2361b8a4d0709ec9e3bd837265cba"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classTXMPUtils.html">TXMPUtils</a>&lt; tStringObj &gt;::ComposeFieldSelector </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>arrayName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>arrayName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>fieldNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>fieldNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>fieldName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>fieldName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>fieldValue</em>, </td>
+ <td class="paramtype">const tStringObj &amp;&#160;</td>
+ <td class="paramname"><em>fieldValue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tStringObj *&nbsp;</td>
- <td class="paramname"> <em>fullPath</em></td><td>&nbsp;</td>
+ <td class="paramtype">tStringObj *&#160;</td>
+ <td class="paramname"><em>fullPath</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td><code> [static]</code></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
-
-<p><code><a class="el" href="classTXMPUtils.html#a458f8e8729e2334fe54ca8f691a9db23" title="ComposeFieldSelector() composes a path expression to select an alternate item by...">ComposeFieldSelector()</a></code> composes a path expression to select an alternate item by a field's value. </p>
-<p>Path syntax allows two forms of "content addressing" to select an item in an array of alternatives. The form used in this function lets you select an item in an array of structs based on the value of one of the fields in the structs. The other form of content addressing is shown in <code><a class="el" href="classTXMPUtils.html#ae4989e5c199a2a4287ee3ae89b872e69" title="ComposeLangSelector() composes the path expression to select an alternate item by...">ComposeLangSelector()</a></code>.</p>
-<p>For example, consider a simple struct that has two fields, the name of a city and the URI of an FTP site in that city. Use this to create an array of download alternatives. You can show the user a popup built from the values of the city fields, then get the corresponding URI as follows: </p>
-<pre>
- ComposeFieldSelector ( schemaNS, "Downloads", fieldNS, "City", chosenCity, &amp;path );
- exists = GetStructField ( schemaNS, path, fieldNS, "URI", &amp;uri );
- </pre><p>The returned string is in the form <code>ns:arrayName[fNS:fieldName='fieldValue']</code>, where "ns" is the prefix for the schema namespace and "fNS" is the prefix for the field namespace.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>The namespace URI for the array; see <code>GetProperty()</code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>arrayName</em>&nbsp;</td><td>The name of the array. Can be a general path expression, must not be null or the empty string; see <code>GetProperty()</code> for namespace prefix usage.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>fieldNS</em>&nbsp;</td><td>The namespace URI for the field used as the selector. Same URI and prefix usage as the <code>schemaNS</code> and <code>arrayName</code> parameters.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>fieldName</em>&nbsp;</td><td>The name of the field used as the selector. Must be a single XML name, must not be null or the empty string. It must be the name of a field that is itself simple.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>fieldValue</em>&nbsp;</td><td>The desired value of the field, specified as a null-terminated UTF-8 string.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>fullPath</em>&nbsp;</td><td>[out] A string in which to return the composed path. </td></tr>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p><code><a class="el" href="classTXMPUtils.html#a458f8e8729e2334fe54ca8f691a9db23" title="ComposeFieldSelector() composes a path expression to select an alternate item by a field&#39;s value...">ComposeFieldSelector()</a></code> composes a path expression to select an alternate item by a field's value. </p>
+<p>Path syntax allows two forms of "content addressing" to select an item in an array of alternatives. The form used in this function lets you select an item in an array of structs based on the value of one of the fields in the structs. The other form of content addressing is shown in <code><a class="el" href="classTXMPUtils.html#ae4989e5c199a2a4287ee3ae89b872e69" title="ComposeLangSelector() composes the path expression to select an alternate item by language...">ComposeLangSelector()</a></code>.</p>
+<p>For example, consider a simple struct that has two fields, the name of a city and the URI of an FTP site in that city. Use this to create an array of download alternatives. You can show the user a popup built from the values of the city fields, then get the corresponding URI as follows: </p><pre>
+ ComposeFieldSelector ( schemaNS, "Downloads", fieldNS, "City", chosenCity, &amp;path );
+ exists = GetStructField ( schemaNS, path, fieldNS, "URI", &amp;uri );
+</pre><p>The returned string is in the form <code>ns:arrayName[fNS:fieldName='fieldValue']</code>, where "ns" is the prefix for the schema namespace and "fNS" is the prefix for the field namespace.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">schemaNS</td><td>The namespace URI for the array; see <code>GetProperty()</code>.</td></tr>
+ <tr><td class="paramname">arrayName</td><td>The name of the array. Can be a general path expression, must not be null or the empty string; see <code>GetProperty()</code> for namespace prefix usage.</td></tr>
+ <tr><td class="paramname">fieldNS</td><td>The namespace URI for the field used as the selector. Same URI and prefix usage as the <code>schemaNS</code> and <code>arrayName</code> parameters.</td></tr>
+ <tr><td class="paramname">fieldName</td><td>The name of the field used as the selector. Must be a single XML name, must not be null or the empty string. It must be the name of a field that is itself simple.</td></tr>
+ <tr><td class="paramname">fieldValue</td><td>The desired value of the field, specified as a string object.</td></tr>
+ <tr><td class="paramname">fullPath</td><td>[out] A string in which to return the composed path. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="a7882bbc2e412ff476c2d97d98808d91c"></a><!-- doxytag: member="TXMPUtils::ComposeLangSelector" ref="a7882bbc2e412ff476c2d97d98808d91c" args="(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, const tStringObj &amp;langName, tStringObj *fullPath)" -->
+<a class="anchor" id="ae4989e5c199a2a4287ee3ae89b872e69"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classTXMPUtils.html">TXMPUtils</a>&lt; tStringObj &gt;::ComposeLangSelector </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>arrayName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>arrayName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">const tStringObj &amp;&nbsp;</td>
- <td class="paramname"> <em>langName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>langName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tStringObj *&nbsp;</td>
- <td class="paramname"> <em>fullPath</em></td><td>&nbsp;</td>
+ <td class="paramtype">tStringObj *&#160;</td>
+ <td class="paramname"><em>fullPath</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td><code> [static]</code></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPUtils.html#ae4989e5c199a2a4287ee3ae89b872e69" title="ComposeLangSelector() composes the path expression to select an alternate item by...">ComposeLangSelector()</a></code> composes a path expression to select an alternate item by language. </p>
-<p>Path syntax allows two forms of "content addressing" to select an item in an array of alternatives. The form used in this function lets you select an item in an alt-text array based on the value of its <code>xml:lang</code> qualifier. The other form of content addressing is shown in <code><a class="el" href="classTXMPUtils.html#a458f8e8729e2334fe54ca8f691a9db23" title="ComposeFieldSelector() composes a path expression to select an alternate item by...">ComposeFieldSelector()</a></code>.</p>
+<p><code><a class="el" href="classTXMPUtils.html#ae4989e5c199a2a4287ee3ae89b872e69" title="ComposeLangSelector() composes the path expression to select an alternate item by language...">ComposeLangSelector()</a></code> composes the path expression to select an alternate item by language. </p>
+<p>Path syntax allows two forms of "content addressing" to select an item in an array of alternatives. The form used in this function lets you select an item in an alt-text array based on the value of its <code>xml:lang</code> qualifier. The other form of content addressing is shown in <code><a class="el" href="classTXMPUtils.html#a458f8e8729e2334fe54ca8f691a9db23" title="ComposeFieldSelector() composes a path expression to select an alternate item by a field&#39;s value...">ComposeFieldSelector()</a></code>.</p>
<p>The returned string is in the form <code>ns:arrayName[@xml:lang='langName']</code>, where "ns" is the prefix for the schema namespace</p>
-<p>This function provides a path expression that is explicitly and only for a specific language. In most cases, <code><a class="el" href="classTXMPMeta.html#af9531b949a462f5663b1f3fd99464c19" title="SetLocalizedText() modifies the value of a selected item in an alt-text array.">TXMPMeta::SetLocalizedText()</a></code> and <code><a class="el" href="classTXMPMeta.html#aeefe49bbf669770d769f4fe0ea566bd0" title="GetLocalizedText() retrieves information about a selected item in an alt-text array...">TXMPMeta::GetLocalizedText()</a></code> are preferred, because they provide extra logic to choose the appropriate language and maintain consistency with the 'x-default' value.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>The namespace URI for the array; see <code>GetProperty()</code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>arrayName</em>&nbsp;</td><td>The name of the array. Can be a general path expression, must not be null or the empty string; see <code>GetProperty()</code> for namespace prefix usage.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>langName</em>&nbsp;</td><td>The RFC 3066 code for the desired language, as a string object.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>fullPath</em>&nbsp;</td><td>[out] A string in which to return the composed path. </td></tr>
+<p>This function provides a path expression that is explicitly and only for a specific language. In most cases, <code><a class="el" href="classTXMPMeta.html#af9531b949a462f5663b1f3fd99464c19" title="SetLocalizedText() modifies the value of a selected item in an alt-text array. ">TXMPMeta::SetLocalizedText()</a></code> and <code><a class="el" href="classTXMPMeta.html#aeefe49bbf669770d769f4fe0ea566bd0" title="GetLocalizedText() retrieves information about a selected item in an alt-text array. ">TXMPMeta::GetLocalizedText()</a></code> are preferred, because they provide extra logic to choose the appropriate language and maintain consistency with the 'x-default' value.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">schemaNS</td><td>The namespace URI for the array; see <code>GetProperty()</code>.</td></tr>
+ <tr><td class="paramname">arrayName</td><td>The name of the array. Can be a general path expression, must not be null or the empty string; see <code>GetProperty()</code> for namespace prefix usage.</td></tr>
+ <tr><td class="paramname">langName</td><td>The RFC 3066 code for the desired language, as a null-terminated UTF-8 string.</td></tr>
+ <tr><td class="paramname">fullPath</td><td>[out] A string in which to return the composed path. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="ae4989e5c199a2a4287ee3ae89b872e69"></a><!-- doxytag: member="TXMPUtils::ComposeLangSelector" ref="ae4989e5c199a2a4287ee3ae89b872e69" args="(XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_StringPtr langName, tStringObj *fullPath)" -->
+<a class="anchor" id="a7882bbc2e412ff476c2d97d98808d91c"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classTXMPUtils.html">TXMPUtils</a>&lt; tStringObj &gt;::ComposeLangSelector </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>arrayName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>arrayName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>langName</em>, </td>
+ <td class="paramtype">const tStringObj &amp;&#160;</td>
+ <td class="paramname"><em>langName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tStringObj *&nbsp;</td>
- <td class="paramname"> <em>fullPath</em></td><td>&nbsp;</td>
+ <td class="paramtype">tStringObj *&#160;</td>
+ <td class="paramname"><em>fullPath</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td><code> [static]</code></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPUtils.html#ae4989e5c199a2a4287ee3ae89b872e69" title="ComposeLangSelector() composes the path expression to select an alternate item by...">ComposeLangSelector()</a></code> composes the path expression to select an alternate item by language. </p>
-<p>Path syntax allows two forms of "content addressing" to select an item in an array of alternatives. The form used in this function lets you select an item in an alt-text array based on the value of its <code>xml:lang</code> qualifier. The other form of content addressing is shown in <code><a class="el" href="classTXMPUtils.html#a458f8e8729e2334fe54ca8f691a9db23" title="ComposeFieldSelector() composes a path expression to select an alternate item by...">ComposeFieldSelector()</a></code>.</p>
+<p><code><a class="el" href="classTXMPUtils.html#ae4989e5c199a2a4287ee3ae89b872e69" title="ComposeLangSelector() composes the path expression to select an alternate item by language...">ComposeLangSelector()</a></code> composes a path expression to select an alternate item by language. </p>
+<p>Path syntax allows two forms of "content addressing" to select an item in an array of alternatives. The form used in this function lets you select an item in an alt-text array based on the value of its <code>xml:lang</code> qualifier. The other form of content addressing is shown in <code><a class="el" href="classTXMPUtils.html#a458f8e8729e2334fe54ca8f691a9db23" title="ComposeFieldSelector() composes a path expression to select an alternate item by a field&#39;s value...">ComposeFieldSelector()</a></code>.</p>
<p>The returned string is in the form <code>ns:arrayName[@xml:lang='langName']</code>, where "ns" is the prefix for the schema namespace</p>
-<p>This function provides a path expression that is explicitly and only for a specific language. In most cases, <code><a class="el" href="classTXMPMeta.html#af9531b949a462f5663b1f3fd99464c19" title="SetLocalizedText() modifies the value of a selected item in an alt-text array.">TXMPMeta::SetLocalizedText()</a></code> and <code><a class="el" href="classTXMPMeta.html#aeefe49bbf669770d769f4fe0ea566bd0" title="GetLocalizedText() retrieves information about a selected item in an alt-text array...">TXMPMeta::GetLocalizedText()</a></code> are preferred, because they provide extra logic to choose the appropriate language and maintain consistency with the 'x-default' value.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>The namespace URI for the array; see <code>GetProperty()</code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>arrayName</em>&nbsp;</td><td>The name of the array. Can be a general path expression, must not be null or the empty string; see <code>GetProperty()</code> for namespace prefix usage.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>langName</em>&nbsp;</td><td>The RFC 3066 code for the desired language, as a null-terminated UTF-8 string.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>fullPath</em>&nbsp;</td><td>[out] A string in which to return the composed path. </td></tr>
+<p>This function provides a path expression that is explicitly and only for a specific language. In most cases, <code><a class="el" href="classTXMPMeta.html#af9531b949a462f5663b1f3fd99464c19" title="SetLocalizedText() modifies the value of a selected item in an alt-text array. ">TXMPMeta::SetLocalizedText()</a></code> and <code><a class="el" href="classTXMPMeta.html#aeefe49bbf669770d769f4fe0ea566bd0" title="GetLocalizedText() retrieves information about a selected item in an alt-text array. ">TXMPMeta::GetLocalizedText()</a></code> are preferred, because they provide extra logic to choose the appropriate language and maintain consistency with the 'x-default' value.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">schemaNS</td><td>The namespace URI for the array; see <code>GetProperty()</code>.</td></tr>
+ <tr><td class="paramname">arrayName</td><td>The name of the array. Can be a general path expression, must not be null or the empty string; see <code>GetProperty()</code> for namespace prefix usage.</td></tr>
+ <tr><td class="paramname">langName</td><td>The RFC 3066 code for the desired language, as a string object.</td></tr>
+ <tr><td class="paramname">fullPath</td><td>[out] A string in which to return the composed path. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="a40ae0ce2065fcb71725e37137884e172"></a><!-- doxytag: member="TXMPUtils::ComposeQualifierPath" ref="a40ae0ce2065fcb71725e37137884e172" args="(XMP_StringPtr schemaNS, XMP_StringPtr propName, XMP_StringPtr qualNS, XMP_StringPtr qualName, tStringObj *fullPath)" -->
+<a class="anchor" id="a40ae0ce2065fcb71725e37137884e172"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classTXMPUtils.html">TXMPUtils</a>&lt; tStringObj &gt;::ComposeQualifierPath </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>propName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>qualNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>qualNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>qualName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>qualName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tStringObj *&nbsp;</td>
- <td class="paramname"> <em>fullPath</em></td><td>&nbsp;</td>
+ <td class="paramtype">tStringObj *&#160;</td>
+ <td class="paramname"><em>fullPath</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td><code> [static]</code></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPUtils.html#a40ae0ce2065fcb71725e37137884e172" title="ComposeQualifierPath() composes the path expression for a qualifier.">ComposeQualifierPath()</a></code> composes the path expression for a qualifier. </p>
+<p><code><a class="el" href="classTXMPUtils.html#a40ae0ce2065fcb71725e37137884e172" title="ComposeQualifierPath() composes the path expression for a qualifier. ">ComposeQualifierPath()</a></code> composes the path expression for a qualifier. </p>
<p>The returned string is in the form <code>ns:propName/?qNS:qualName</code>, where "ns" is the prefix for the schema namespace, and "qNS" is the prefix for the qualifier namespace.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>The namespace URI; see <code>GetProperty()</code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>propName</em>&nbsp;</td><td>The name of the property to which the qualifier is attached. Can be a general path expression, must not be null or the empty string; see <code>GetProperty()</code> for namespace prefix usage.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>qualNS</em>&nbsp;</td><td>The namespace URI for the qualifier. Same URI and prefix usage as the <code>schemaNS</code> and <code>propName</code> parameters.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>qualName</em>&nbsp;</td><td>The name of the qualifier. Must be a single XML name, must not be null or the empty string. Same URI and prefix usage as the <code>schemaNS</code> and <code>propName</code> parameters.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>fullPath</em>&nbsp;</td><td>[out] A string in which to return the composed path. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">schemaNS</td><td>The namespace URI; see <code>GetProperty()</code>.</td></tr>
+ <tr><td class="paramname">propName</td><td>The name of the property to which the qualifier is attached. Can be a general path expression, must not be null or the empty string; see <code>GetProperty()</code> for namespace prefix usage.</td></tr>
+ <tr><td class="paramname">qualNS</td><td>The namespace URI for the qualifier. Same URI and prefix usage as the <code>schemaNS</code> and <code>propName</code> parameters.</td></tr>
+ <tr><td class="paramname">qualName</td><td>The name of the qualifier. Must be a single XML name, must not be null or the empty string. Same URI and prefix usage as the <code>schemaNS</code> and <code>propName</code> parameters.</td></tr>
+ <tr><td class="paramname">fullPath</td><td>[out] A string in which to return the composed path. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="a706eb85b8401b8682a01348f7e25ee3d"></a><!-- doxytag: member="TXMPUtils::ComposeStructFieldPath" ref="a706eb85b8401b8682a01348f7e25ee3d" args="(XMP_StringPtr schemaNS, XMP_StringPtr structName, XMP_StringPtr fieldNS, XMP_StringPtr fieldName, tStringObj *fullPath)" -->
+<a class="anchor" id="a706eb85b8401b8682a01348f7e25ee3d"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classTXMPUtils.html">TXMPUtils</a>&lt; tStringObj &gt;::ComposeStructFieldPath </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>structName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>structName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>fieldNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>fieldNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>fieldName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>fieldName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tStringObj *&nbsp;</td>
- <td class="paramname"> <em>fullPath</em></td><td>&nbsp;</td>
+ <td class="paramtype">tStringObj *&#160;</td>
+ <td class="paramname"><em>fullPath</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td><code> [static]</code></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPUtils.html#a706eb85b8401b8682a01348f7e25ee3d" title="ComposeStructFieldPath() composes the path expression for a field in a struct.">ComposeStructFieldPath()</a></code> composes the path expression for a field in a struct. </p>
+<p><code><a class="el" href="classTXMPUtils.html#a706eb85b8401b8682a01348f7e25ee3d" title="ComposeStructFieldPath() composes the path expression for a field in a struct. ">ComposeStructFieldPath()</a></code> composes the path expression for a field in a struct. </p>
<p>The returned string is in the form <code>ns:structName/fNS:fieldName</code>, where "ns" is the prefix for the schema namespace, and "fNS" is the prefix for field namespace.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>The namespace URI for the struct; see <code>GetProperty()</code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>structName</em>&nbsp;</td><td>The name of the struct. Can be a general path expression, must not be null or the empty string; see <code>GetProperty()</code> for namespace prefix usage.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>fieldNS</em>&nbsp;</td><td>The namespace URI for the field. Same URI and prefix usage as the <code>schemaNS</code> and <code>structName</code> parameters.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>fieldName</em>&nbsp;</td><td>The name of the field. Must be a single XML name, must not be null or the empty string. Same URI and prefix usage as the <code>schemaNS</code> and <code>structName</code> parameters.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>fullPath</em>&nbsp;</td><td>[out] A string in which to return the composed path. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">schemaNS</td><td>The namespace URI for the struct; see <code>GetProperty()</code>.</td></tr>
+ <tr><td class="paramname">structName</td><td>The name of the struct. Can be a general path expression, must not be null or the empty string; see <code>GetProperty()</code> for namespace prefix usage.</td></tr>
+ <tr><td class="paramname">fieldNS</td><td>The namespace URI for the field. Same URI and prefix usage as the <code>schemaNS</code> and <code>structName</code> parameters.</td></tr>
+ <tr><td class="paramname">fieldName</td><td>The name of the field. Must be a single XML name, must not be null or the empty string. Same URI and prefix usage as the <code>schemaNS</code> and <code>structName</code> parameters.</td></tr>
+ <tr><td class="paramname">fullPath</td><td>[out] A string in which to return the composed path. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="a509691eb270988de6a770c9c8304ab6b"></a><!-- doxytag: member="TXMPUtils::ConvertFromBool" ref="a509691eb270988de6a770c9c8304ab6b" args="(bool binValue, tStringObj *strValue)" -->
+<a class="anchor" id="a509691eb270988de6a770c9c8304ab6b"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classTXMPUtils.html">TXMPUtils</a>&lt; tStringObj &gt;::ConvertFromBool </td>
<td>(</td>
- <td class="paramtype">bool&nbsp;</td>
- <td class="paramname"> <em>binValue</em>, </td>
+ <td class="paramtype">bool&#160;</td>
+ <td class="paramname"><em>binValue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tStringObj *&nbsp;</td>
- <td class="paramname"> <em>strValue</em></td><td>&nbsp;</td>
+ <td class="paramtype">tStringObj *&#160;</td>
+ <td class="paramname"><em>strValue</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td><code> [static]</code></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
-
-<p><code><a class="el" href="classTXMPUtils.html#a509691eb270988de6a770c9c8304ab6b" title="ConvertFromBool() converts a Boolean value to a string.">ConvertFromBool()</a></code> converts a Boolean value to a string. </p>
-<p>The string values of Booleans are returned by the macros <code><a class="el" href="XMP__Const_8h.html#a4c39e0131b0e3d7db66e1cfa82b67141" title="The canonical true string value for Booleans in serialized XMP.">kXMP_TrueStr</a></code> and <code><a class="el" href="XMP__Const_8h.html#a2dc55b533ed63ed7ff0c3be16a97e278" title="The canonical false string value for Booleans in serialized XMP.">kXMP_FalseStr</a></code> in <code><a class="el" href="XMP__Const_8h.html" title="Common C/C++ types and constants for the XMP toolkit.">XMP_Const.h</a></code>.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>binValue</em>&nbsp;</td><td>The Boolean value to be converted.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>strValue</em>&nbsp;</td><td>[out] A buffer in which to return the string representation of the value. </td></tr>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p><code><a class="el" href="classTXMPUtils.html#a509691eb270988de6a770c9c8304ab6b" title="ConvertFromBool() converts a Boolean value to a string. ">ConvertFromBool()</a></code> converts a Boolean value to a string. </p>
+<p>The main accessors in <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services. ">TXMPMeta</a></code> set and retrieve property values as strings. additional functions, such as <code>TXMPMeta::SetPropertyInt()</code>, set and retrieve property values as explicit binary data types. Use these functions to convert between binary and string values.</p>
+<p>Strings can be specified as null-terminated UTF-8 (<code><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string. ">XMP_StringPtr</a></code>), or as string objects (<code>tStringObj</code>) of the type declared when instantiating the XMP classes; see <code><a class="el" href="XMP_8hpp.html" title="Overall header file for the XMP Toolkit. ">XMP.hpp</a></code>. Alternate forms of each conversion function allow either type of string.The string values of Booleans are returned by the macros <code><a class="el" href="XMP__Const_8h.html#a4c39e0131b0e3d7db66e1cfa82b67141" title="The canonical true string value for Booleans in serialized XMP. ">kXMP_TrueStr</a></code> and <code><a class="el" href="XMP__Const_8h.html#a2dc55b533ed63ed7ff0c3be16a97e278" title="The canonical false string value for Booleans in serialized XMP. ">kXMP_FalseStr</a></code> in <code><a class="el" href="XMP__Const_8h.html" title="Common C/C++ types and constants for the XMP toolkit. ">XMP_Const.h</a></code>.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">binValue</td><td>The Boolean value to be converted.</td></tr>
+ <tr><td class="paramname">strValue</td><td>[out] A buffer in which to return the string representation of the value. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="a6146a522a3974b4088d6e8241e9cd223"></a><!-- doxytag: member="TXMPUtils::ConvertFromDate" ref="a6146a522a3974b4088d6e8241e9cd223" args="(const XMP_DateTime &amp;binValue, tStringObj *strValue)" -->
+<a class="anchor" id="a6146a522a3974b4088d6e8241e9cd223"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classTXMPUtils.html">TXMPUtils</a>&lt; tStringObj &gt;::ConvertFromDate </td>
<td>(</td>
- <td class="paramtype">const <a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> &amp;&nbsp;</td>
- <td class="paramname"> <em>binValue</em>, </td>
+ <td class="paramtype">const <a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> &amp;&#160;</td>
+ <td class="paramname"><em>binValue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tStringObj *&nbsp;</td>
- <td class="paramname"> <em>strValue</em></td><td>&nbsp;</td>
+ <td class="paramtype">tStringObj *&#160;</td>
+ <td class="paramname"><em>strValue</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td><code> [static]</code></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
-
-<p><code><a class="el" href="classTXMPUtils.html#a6146a522a3974b4088d6e8241e9cd223" title="ConvertFromDate() converts a date/time value to a string.">ConvertFromDate()</a></code> converts a date/time value to a string. </p>
-<p>Formats a date according to the ISO 8601 profile in <a href="http://www.w3.org/TR/NOTE-datetime:">http://www.w3.org/TR/NOTE-datetime:</a> </p>
-<pre>
- YYYY
- YYYY-MM
- YYYY-MM-DD
- YYYY-MM-DDThh:mmTZD
- YYYY-MM-DDThh:mm:ssTZD
- YYYY-MM-DDThh:mm:ss.sTZD
- </pre><p><code>YYYY</code> = four-digit year, formatted as "%.4d" <br/>
- <code>MM</code> = two-digit month (01=January) <br/>
- <code>DD</code> = two-digit day of month (01 through 31) <br/>
- <code>hh</code> = two digits of hour (00 through 23) <br/>
- <code>mm</code> = two digits of minute (00 through 59) <br/>
- <code>ss</code> = two digits of second (00 through 59) <br/>
- <code>s</code> = one or more digits representing a decimal fraction of a second <br/>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p><code><a class="el" href="classTXMPUtils.html#a6146a522a3974b4088d6e8241e9cd223" title="ConvertFromDate() converts a date/time value to a string. ">ConvertFromDate()</a></code> converts a date/time value to a string. </p>
+<p>Formats a date according to the ISO 8601 profile in <a href="http://www.w3.org/TR/NOTE-datetime:">http://www.w3.org/TR/NOTE-datetime:</a> </p><pre>
+ YYYY
+ YYYY-MM
+ YYYY-MM-DD
+ YYYY-MM-DDThh:mmTZD
+ YYYY-MM-DDThh:mm:ssTZD
+ YYYY-MM-DDThh:mm:ss.sTZD
+</pre><p><code>YYYY</code> = four-digit year, formatted as "%.4d" <br />
+ <code>MM</code> = two-digit month (01=January) <br />
+ <code>DD</code> = two-digit day of month (01 through 31) <br />
+ <code>hh</code> = two digits of hour (00 through 23) <br />
+ <code>mm</code> = two digits of minute (00 through 59) <br />
+ <code>ss</code> = two digits of second (00 through 59) <br />
+ <code>s</code> = one or more digits representing a decimal fraction of a second <br />
<code>TZD</code> = time zone designator (Z or +hh:mm or -hh:mm)</p>
<p>Time-only input is allowed where the year, month, and day are all zero. This is output as "0000-00-00...".</p>
-<dl class="note"><dt><b>Note:</b></dt><dd>ISO 8601 does not allow years less than 1000 or greater than 9999. This API allows any year, even negative ones. The W3C profile also requires a time zone designator if a time is present, this API treats the time zone designator as optional. The <a class="el" href="structXMP__DateTime.html" title="The expanded type for a date and time.">XMP_DateTime</a> type has an explicit notion of zone-less time.</dd></dl>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>binValue</em>&nbsp;</td><td>The date/time value to be converted.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>strValue</em>&nbsp;</td><td>[out] A buffer in which to return the ISO 8601 string representation of the date/time. </td></tr>
+<dl class="section note"><dt>Note</dt><dd>ISO 8601 does not allow years less than 1000 or greater than 9999. This API allows any year, even negative ones. The W3C profile also requires a time zone designator if a time is present, this API treats the time zone designator as optional. The <a class="el" href="structXMP__DateTime.html" title="The expanded type for a date and time. ">XMP_DateTime</a> type has an explicit notion of zone-less time.</dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">binValue</td><td>The date/time value to be converted.</td></tr>
+ <tr><td class="paramname">strValue</td><td>[out] A buffer in which to return the ISO 8601 string representation of the date/time. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="ae67ef3931836432b7e574832f0610ed0"></a><!-- doxytag: member="TXMPUtils::ConvertFromFloat" ref="ae67ef3931836432b7e574832f0610ed0" args="(double binValue, XMP_StringPtr format, tStringObj *strValue)" -->
+<a class="anchor" id="ae67ef3931836432b7e574832f0610ed0"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classTXMPUtils.html">TXMPUtils</a>&lt; tStringObj &gt;::ConvertFromFloat </td>
<td>(</td>
- <td class="paramtype">double&nbsp;</td>
- <td class="paramname"> <em>binValue</em>, </td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>binValue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>format</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>format</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tStringObj *&nbsp;</td>
- <td class="paramname"> <em>strValue</em></td><td>&nbsp;</td>
+ <td class="paramtype">tStringObj *&#160;</td>
+ <td class="paramname"><em>strValue</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td><code> [static]</code></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
-
-<p><code><a class="el" href="classTXMPUtils.html#ae67ef3931836432b7e574832f0610ed0" title="ConvertFromFloat() converts a floating-point value to a string.">ConvertFromFloat()</a></code> converts a floating-point value to a string. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>binValue</em>&nbsp;</td><td>The floating-point value to be converted.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>format</em>&nbsp;</td><td>Optional. A C <code>sprintf</code> format for the conversion. Default is "%d".</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>strValue</em>&nbsp;</td><td>[out] A buffer in which to return the string representation of the value. </td></tr>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p><code><a class="el" href="classTXMPUtils.html#ae67ef3931836432b7e574832f0610ed0" title="ConvertFromFloat() converts a floating-point value to a string. ">ConvertFromFloat()</a></code> converts a floating-point value to a string. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">binValue</td><td>The floating-point value to be converted.</td></tr>
+ <tr><td class="paramname">format</td><td>Optional. A C <code>sprintf</code> format for the conversion. Default is "%d".</td></tr>
+ <tr><td class="paramname">strValue</td><td>[out] A buffer in which to return the string representation of the value. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="aeec45b4d1a26717290105c9f4e8b4235"></a><!-- doxytag: member="TXMPUtils::ConvertFromInt" ref="aeec45b4d1a26717290105c9f4e8b4235" args="(long binValue, XMP_StringPtr format, tStringObj *strValue)" -->
+<a class="anchor" id="aeec45b4d1a26717290105c9f4e8b4235"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classTXMPUtils.html">TXMPUtils</a>&lt; tStringObj &gt;::ConvertFromInt </td>
<td>(</td>
- <td class="paramtype">long&nbsp;</td>
- <td class="paramname"> <em>binValue</em>, </td>
+ <td class="paramtype">long&#160;</td>
+ <td class="paramname"><em>binValue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>format</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>format</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tStringObj *&nbsp;</td>
- <td class="paramname"> <em>strValue</em></td><td>&nbsp;</td>
+ <td class="paramtype">tStringObj *&#160;</td>
+ <td class="paramname"><em>strValue</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td><code> [static]</code></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
-
-<p><code><a class="el" href="classTXMPUtils.html#aeec45b4d1a26717290105c9f4e8b4235" title="ConvertFromInt() converts a 32-bit integer value to a string.">ConvertFromInt()</a></code> converts a 32-bit integer value to a string. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>binValue</em>&nbsp;</td><td>The integer value to be converted.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>format</em>&nbsp;</td><td>Optional. A C <code>sprintf</code> format for the conversion. Default is "%d".</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>strValue</em>&nbsp;</td><td>[out] A buffer in which to return the string representation of the value. </td></tr>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p><code><a class="el" href="classTXMPUtils.html#aeec45b4d1a26717290105c9f4e8b4235" title="ConvertFromInt() converts a 32-bit integer value to a string. ">ConvertFromInt()</a></code> converts a 32-bit integer value to a string. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">binValue</td><td>The integer value to be converted.</td></tr>
+ <tr><td class="paramname">format</td><td>Optional. A C <code>sprintf</code> format for the conversion. Default is "%d".</td></tr>
+ <tr><td class="paramname">strValue</td><td>[out] A buffer in which to return the string representation of the value. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="aeae4617e05358433015eaa80953c5e60"></a><!-- doxytag: member="TXMPUtils::ConvertFromInt64" ref="aeae4617e05358433015eaa80953c5e60" args="(long long binValue, XMP_StringPtr format, tStringObj *strValue)" -->
+<a class="anchor" id="aeae4617e05358433015eaa80953c5e60"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classTXMPUtils.html">TXMPUtils</a>&lt; tStringObj &gt;::ConvertFromInt64 </td>
<td>(</td>
- <td class="paramtype">long long&nbsp;</td>
- <td class="paramname"> <em>binValue</em>, </td>
+ <td class="paramtype">long long&#160;</td>
+ <td class="paramname"><em>binValue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>format</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>format</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tStringObj *&nbsp;</td>
- <td class="paramname"> <em>strValue</em></td><td>&nbsp;</td>
+ <td class="paramtype">tStringObj *&#160;</td>
+ <td class="paramname"><em>strValue</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td><code> [static]</code></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
-
-<p><code><a class="el" href="classTXMPUtils.html#aeae4617e05358433015eaa80953c5e60" title="ConvertFromInt64() converts a 64-bit integer value to a string.">ConvertFromInt64()</a></code> converts a 64-bit integer value to a string. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>binValue</em>&nbsp;</td><td>The integer value to be converted.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>format</em>&nbsp;</td><td>Optional. A C <code>sprintf</code> format for the conversion. Default is "%d".</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>strValue</em>&nbsp;</td><td>[out] A buffer in which to return the string representation of the value. </td></tr>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p><code><a class="el" href="classTXMPUtils.html#aeae4617e05358433015eaa80953c5e60" title="ConvertFromInt64() converts a 64-bit integer value to a string. ">ConvertFromInt64()</a></code> converts a 64-bit integer value to a string. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">binValue</td><td>The integer value to be converted.</td></tr>
+ <tr><td class="paramname">format</td><td>Optional. A C <code>sprintf</code> format for the conversion. Default is "%d".</td></tr>
+ <tr><td class="paramname">strValue</td><td>[out] A buffer in which to return the string representation of the value. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="a84f2a7b3960a17315032915674e21960"></a><!-- doxytag: member="TXMPUtils::ConvertToBool" ref="a84f2a7b3960a17315032915674e21960" args="(const tStringObj &amp;strValue)" -->
+<a class="anchor" id="aaaaaadb23f4089daa795f50cba4f405c"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static bool <a class="el" href="classTXMPUtils.html">TXMPUtils</a>&lt; tStringObj &gt;::ConvertToBool </td>
<td>(</td>
- <td class="paramtype">const tStringObj &amp;&nbsp;</td>
- <td class="paramname"> <em>strValue</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td><code> [static]</code></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>strValue</em></td><td>)</td>
+ <td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPUtils.html#aaaaaadb23f4089daa795f50cba4f405c" title="ConvertToBool() converts a string to a Boolean value.">ConvertToBool()</a></code> converts a string to a Boolean value. </p>
-<p>Overloads the basic form of the function, allowing you to pass a string object, rather than a <code>const * char</code>. It is otherwise identical; see details in the canonical form.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>strValue</em>&nbsp;</td><td>The string representation of the value, specified as a string object.</td></tr>
+<p><code><a class="el" href="classTXMPUtils.html#aaaaaadb23f4089daa795f50cba4f405c" title="ConvertToBool() converts a string to a Boolean value. ">ConvertToBool()</a></code> converts a string to a Boolean value. </p>
+<p>The preferred strings are those returned by the macros <code><a class="el" href="XMP__Const_8h.html#a4c39e0131b0e3d7db66e1cfa82b67141" title="The canonical true string value for Booleans in serialized XMP. ">kXMP_TrueStr</a></code> and <code><a class="el" href="XMP__Const_8h.html#a2dc55b533ed63ed7ff0c3be16a97e278" title="The canonical false string value for Booleans in serialized XMP. ">kXMP_FalseStr</a></code>. If these do not match, the function does a case insensitive comparison, then simply 't' or 'f', and finally non-zero and zero integer representations.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">strValue</td><td>The string representation of the value, specified as a null-terminated UTF-8 string.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>The appropriate C++ bool value for the string. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>The appropriate C++ bool value for the string. </dd></dl>
</div>
</div>
-<a class="anchor" id="aaaaaadb23f4089daa795f50cba4f405c"></a><!-- doxytag: member="TXMPUtils::ConvertToBool" ref="aaaaaadb23f4089daa795f50cba4f405c" args="(XMP_StringPtr strValue)" -->
+<a class="anchor" id="a84f2a7b3960a17315032915674e21960"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static bool <a class="el" href="classTXMPUtils.html">TXMPUtils</a>&lt; tStringObj &gt;::ConvertToBool </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>strValue</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td><code> [static]</code></td>
+ <td class="paramtype">const tStringObj &amp;&#160;</td>
+ <td class="paramname"><em>strValue</em></td><td>)</td>
+ <td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPUtils.html#aaaaaadb23f4089daa795f50cba4f405c" title="ConvertToBool() converts a string to a Boolean value.">ConvertToBool()</a></code> converts a string to a Boolean value. </p>
-<p>The preferred strings are those returned by the macros <code><a class="el" href="XMP__Const_8h.html#a4c39e0131b0e3d7db66e1cfa82b67141" title="The canonical true string value for Booleans in serialized XMP.">kXMP_TrueStr</a></code> and <code><a class="el" href="XMP__Const_8h.html#a2dc55b533ed63ed7ff0c3be16a97e278" title="The canonical false string value for Booleans in serialized XMP.">kXMP_FalseStr</a></code>. If these do not match, the function does a case insensitive comparison, then simply 't' or 'f', and finally non-zero and zero integer representations.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>strValue</em>&nbsp;</td><td>The string representation of the value, specified as a null-terminated UTF-8 string.</td></tr>
+<p><code><a class="el" href="classTXMPUtils.html#aaaaaadb23f4089daa795f50cba4f405c" title="ConvertToBool() converts a string to a Boolean value. ">ConvertToBool()</a></code> converts a string to a Boolean value. </p>
+<p>Overloads the basic form of the function, allowing you to pass a string object, rather than a <code>const * char</code>. It is otherwise identical; see details in the canonical form. </p><dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">strValue</td><td>The string representation of the value, specified as a string object.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>The appropriate C++ bool value for the string. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>The appropriate C++ bool value for the string. </dd></dl>
</div>
</div>
-<a class="anchor" id="a265559d1b4b78e34a460e935c11177d7"></a><!-- doxytag: member="TXMPUtils::ConvertToDate" ref="a265559d1b4b78e34a460e935c11177d7" args="(const tStringObj &amp;strValue, XMP_DateTime *binValue)" -->
+<a class="anchor" id="a60d33e6ce30286028acca47b2b6e7a0b"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classTXMPUtils.html">TXMPUtils</a>&lt; tStringObj &gt;::ConvertToDate </td>
<td>(</td>
- <td class="paramtype">const tStringObj &amp;&nbsp;</td>
- <td class="paramname"> <em>strValue</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>strValue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *&nbsp;</td>
- <td class="paramname"> <em>binValue</em></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *&#160;</td>
+ <td class="paramname"><em>binValue</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td><code> [static]</code></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
-
-<p><code><a class="el" href="classTXMPUtils.html#a60d33e6ce30286028acca47b2b6e7a0b" title="ConvertToDate() converts a string to a date/time value.">ConvertToDate()</a></code> converts a string to a date/time value. </p>
-<p>Overloads the basic form of the function, allowing you to pass a string object, rather than a <code>const * char</code>. It is otherwise identical. See details for the canonical form.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>strValue</em>&nbsp;</td><td>The ISO 8601 string representation of the date/time, specified as a string object.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>binValue</em>&nbsp;</td><td>[out] A buffer in which to return the binary date/time value. </td></tr>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p><code><a class="el" href="classTXMPUtils.html#a60d33e6ce30286028acca47b2b6e7a0b" title="ConvertToDate() converts a string to a date/time value. ">ConvertToDate()</a></code> converts a string to a date/time value. </p>
+<p>Parses a date according to the ISO 8601 profile in <a href="http://www.w3.org/TR/NOTE-datetime:">http://www.w3.org/TR/NOTE-datetime:</a> </p><pre>
+ YYYY
+ YYYY-MM
+ YYYY-MM-DD
+ YYYY-MM-DDThh:mmTZD
+ YYYY-MM-DDThh:mm:ssTZD
+ YYYY-MM-DDThh:mm:ss.sTZD
+</pre><p><code>YYYY</code> = four-digit year, formatted as "%.4d" <br />
+ <code>MM</code> = two-digit month (01=January) <br />
+ <code>DD</code> = two-digit day of month (01 through 31) <br />
+ <code>hh</code> = two digits of hour (00 through 23) <br />
+ <code>mm</code> = two digits of minute (00 through 59) <br />
+ <code>ss</code> = two digits of second (00 through 59) <br />
+ <code>s</code> = one or more digits representing a decimal fraction of a second <br />
+ <code>TZD</code> = time zone designator (Z or +hh:mm or -hh:mm)</p>
+<p>A missing date portion or missing TZD are tolerated. A missing date value can begin with "Thh:" or "hh:"; the year, month, and day are all set to zero in the <code><a class="el" href="structXMP__DateTime.html" title="The expanded type for a date and time. ">XMP_DateTime</a></code> value. A missing TZD is assumed to be UTC.</p>
+<dl class="section note"><dt>Note</dt><dd>ISO 8601 does not allow years less than 1000 or greater than 9999. This API allows any year, even negative ones. The W3C profile also requires a time zone designator if a time is present, this API treats the time zone designator as optional. The <a class="el" href="structXMP__DateTime.html" title="The expanded type for a date and time. ">XMP_DateTime</a> type has an explicit notion of zone-less time.</dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">strValue</td><td>The ISO 8601 string representation of the date/time, specified as a null-terminated UTF-8 string.</td></tr>
+ <tr><td class="paramname">binValue</td><td>[out] A buffer in which to return the binary date/time value. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="a60d33e6ce30286028acca47b2b6e7a0b"></a><!-- doxytag: member="TXMPUtils::ConvertToDate" ref="a60d33e6ce30286028acca47b2b6e7a0b" args="(XMP_StringPtr strValue, XMP_DateTime *binValue)" -->
+<a class="anchor" id="a265559d1b4b78e34a460e935c11177d7"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classTXMPUtils.html">TXMPUtils</a>&lt; tStringObj &gt;::ConvertToDate </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>strValue</em>, </td>
+ <td class="paramtype">const tStringObj &amp;&#160;</td>
+ <td class="paramname"><em>strValue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *&nbsp;</td>
- <td class="paramname"> <em>binValue</em></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *&#160;</td>
+ <td class="paramname"><em>binValue</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td><code> [static]</code></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPUtils.html#a60d33e6ce30286028acca47b2b6e7a0b" title="ConvertToDate() converts a string to a date/time value.">ConvertToDate()</a></code> converts a string to a date/time value. </p>
-<p>Parses a date according to the ISO 8601 profile in <a href="http://www.w3.org/TR/NOTE-datetime:">http://www.w3.org/TR/NOTE-datetime:</a> </p>
-<pre>
- YYYY
- YYYY-MM
- YYYY-MM-DD
- YYYY-MM-DDThh:mmTZD
- YYYY-MM-DDThh:mm:ssTZD
- YYYY-MM-DDThh:mm:ss.sTZD
- </pre><p><code>YYYY</code> = four-digit year, formatted as "%.4d" <br/>
- <code>MM</code> = two-digit month (01=January) <br/>
- <code>DD</code> = two-digit day of month (01 through 31) <br/>
- <code>hh</code> = two digits of hour (00 through 23) <br/>
- <code>mm</code> = two digits of minute (00 through 59) <br/>
- <code>ss</code> = two digits of second (00 through 59) <br/>
- <code>s</code> = one or more digits representing a decimal fraction of a second <br/>
- <code>TZD</code> = time zone designator (Z or +hh:mm or -hh:mm)</p>
-<p>A missing date portion or missing TZD are tolerated. A missing date value can begin with "Thh:" or "hh:"; the year, month, and day are all set to zero in the <code><a class="el" href="structXMP__DateTime.html" title="The expanded type for a date and time.">XMP_DateTime</a></code> value. A missing TZD is assumed to be UTC.</p>
-<dl class="note"><dt><b>Note:</b></dt><dd>ISO 8601 does not allow years less than 1000 or greater than 9999. This API allows any year, even negative ones. The W3C profile also requires a time zone designator if a time is present, this API treats the time zone designator as optional. The <a class="el" href="structXMP__DateTime.html" title="The expanded type for a date and time.">XMP_DateTime</a> type has an explicit notion of zone-less time.</dd></dl>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>strValue</em>&nbsp;</td><td>The ISO 8601 string representation of the date/time, specified as a null-terminated UTF-8 string.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>binValue</em>&nbsp;</td><td>[out] A buffer in which to return the binary date/time value. </td></tr>
+<p><code><a class="el" href="classTXMPUtils.html#a60d33e6ce30286028acca47b2b6e7a0b" title="ConvertToDate() converts a string to a date/time value. ">ConvertToDate()</a></code> converts a string to a date/time value. </p>
+<p>Overloads the basic form of the function, allowing you to pass a string object, rather than a <code>const * char</code>. It is otherwise identical. See details for the canonical form. </p><dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">strValue</td><td>The ISO 8601 string representation of the date/time, specified as a string object.</td></tr>
+ <tr><td class="paramname">binValue</td><td>[out] A buffer in which to return the binary date/time value. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="aabd4e479d2708a9ea3135cd441faa7ea"></a><!-- doxytag: member="TXMPUtils::ConvertToFloat" ref="aabd4e479d2708a9ea3135cd441faa7ea" args="(const tStringObj &amp;strValue)" -->
+<a class="anchor" id="a8a507b006286460814e0486c622d828c"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static double <a class="el" href="classTXMPUtils.html">TXMPUtils</a>&lt; tStringObj &gt;::ConvertToFloat </td>
<td>(</td>
- <td class="paramtype">const tStringObj &amp;&nbsp;</td>
- <td class="paramname"> <em>strValue</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td><code> [static]</code></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>strValue</em></td><td>)</td>
+ <td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPUtils.html#a8a507b006286460814e0486c622d828c" title="ConvertToFloat() converts a string to a floating-point value.">ConvertToFloat()</a></code> converts a string to a floating-point value. </p>
-<p>Overloads the basic form of the function, allowing you to pass a string object, rather than a <code>const * char</code>. It is otherwise identical.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>strValue</em>&nbsp;</td><td>The string representation of the value, specified as a string object.</td></tr>
+<p><code><a class="el" href="classTXMPUtils.html#a8a507b006286460814e0486c622d828c" title="ConvertToFloat() converts a string to a floating-point value. ">ConvertToFloat()</a></code> converts a string to a floating-point value. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">strValue</td><td>The string representation of the value, specified as a null-terminated UTF-8 string.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>The floating-point value. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>The floating-point value. </dd></dl>
</div>
</div>
-<a class="anchor" id="a8a507b006286460814e0486c622d828c"></a><!-- doxytag: member="TXMPUtils::ConvertToFloat" ref="a8a507b006286460814e0486c622d828c" args="(XMP_StringPtr strValue)" -->
+<a class="anchor" id="aabd4e479d2708a9ea3135cd441faa7ea"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static double <a class="el" href="classTXMPUtils.html">TXMPUtils</a>&lt; tStringObj &gt;::ConvertToFloat </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>strValue</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td><code> [static]</code></td>
+ <td class="paramtype">const tStringObj &amp;&#160;</td>
+ <td class="paramname"><em>strValue</em></td><td>)</td>
+ <td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPUtils.html#a8a507b006286460814e0486c622d828c" title="ConvertToFloat() converts a string to a floating-point value.">ConvertToFloat()</a></code> converts a string to a floating-point value. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>strValue</em>&nbsp;</td><td>The string representation of the value, specified as a null-terminated UTF-8 string.</td></tr>
+<p><code><a class="el" href="classTXMPUtils.html#a8a507b006286460814e0486c622d828c" title="ConvertToFloat() converts a string to a floating-point value. ">ConvertToFloat()</a></code> converts a string to a floating-point value. </p>
+<p>Overloads the basic form of the function, allowing you to pass a string object, rather than a <code>const * char</code>. It is otherwise identical.</p><dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">strValue</td><td>The string representation of the value, specified as a string object.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>The floating-point value. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>The floating-point value. </dd></dl>
</div>
</div>
-<a class="anchor" id="a47d93f9cb4acd9d7ec6b450100209bec"></a><!-- doxytag: member="TXMPUtils::ConvertToInt" ref="a47d93f9cb4acd9d7ec6b450100209bec" args="(const tStringObj &amp;strValue)" -->
+<a class="anchor" id="adfd9d1c522377d5db4ad667a7973ba00"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static long <a class="el" href="classTXMPUtils.html">TXMPUtils</a>&lt; tStringObj &gt;::ConvertToInt </td>
<td>(</td>
- <td class="paramtype">const tStringObj &amp;&nbsp;</td>
- <td class="paramname"> <em>strValue</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td><code> [static]</code></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>strValue</em></td><td>)</td>
+ <td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPUtils.html#adfd9d1c522377d5db4ad667a7973ba00" title="ConvertToInt() converts a string to a 32-bit integer value.">ConvertToInt()</a></code> converts a string to a 32-bit integer value. </p>
-<p>Overloads the basic form of the function, allowing you to pass a string object, rather than a <code>const * char</code>. It is otherwise identical.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>strValue</em>&nbsp;</td><td>The string representation of the value, specified as a string object.</td></tr>
+<p><code><a class="el" href="classTXMPUtils.html#adfd9d1c522377d5db4ad667a7973ba00" title="ConvertToInt() converts a string to a 32-bit integer value. ">ConvertToInt()</a></code> converts a string to a 32-bit integer value. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">strValue</td><td>The string representation of the value, specified as a null-terminated UTF-8 string.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>The 32-bit integer value. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>The 32-bit integer value. </dd></dl>
</div>
</div>
-<a class="anchor" id="adfd9d1c522377d5db4ad667a7973ba00"></a><!-- doxytag: member="TXMPUtils::ConvertToInt" ref="adfd9d1c522377d5db4ad667a7973ba00" args="(XMP_StringPtr strValue)" -->
+<a class="anchor" id="a47d93f9cb4acd9d7ec6b450100209bec"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static long <a class="el" href="classTXMPUtils.html">TXMPUtils</a>&lt; tStringObj &gt;::ConvertToInt </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>strValue</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td><code> [static]</code></td>
+ <td class="paramtype">const tStringObj &amp;&#160;</td>
+ <td class="paramname"><em>strValue</em></td><td>)</td>
+ <td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPUtils.html#adfd9d1c522377d5db4ad667a7973ba00" title="ConvertToInt() converts a string to a 32-bit integer value.">ConvertToInt()</a></code> converts a string to a 32-bit integer value. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>strValue</em>&nbsp;</td><td>The string representation of the value, specified as a null-terminated UTF-8 string.</td></tr>
+<p><code><a class="el" href="classTXMPUtils.html#adfd9d1c522377d5db4ad667a7973ba00" title="ConvertToInt() converts a string to a 32-bit integer value. ">ConvertToInt()</a></code> converts a string to a 32-bit integer value. </p>
+<p>Overloads the basic form of the function, allowing you to pass a string object, rather than a <code>const * char</code>. It is otherwise identical.</p><dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">strValue</td><td>The string representation of the value, specified as a string object.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>The 32-bit integer value. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>The 32-bit integer value. </dd></dl>
</div>
</div>
-<a class="anchor" id="a711cae0cb1b673ff5e208b4ae458d120"></a><!-- doxytag: member="TXMPUtils::ConvertToInt64" ref="a711cae0cb1b673ff5e208b4ae458d120" args="(const tStringObj &amp;strValue)" -->
+<a class="anchor" id="abe5d2dcc03c5442202203bba5ca7b172"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static long long <a class="el" href="classTXMPUtils.html">TXMPUtils</a>&lt; tStringObj &gt;::ConvertToInt64 </td>
<td>(</td>
- <td class="paramtype">const tStringObj &amp;&nbsp;</td>
- <td class="paramname"> <em>strValue</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td><code> [static]</code></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>strValue</em></td><td>)</td>
+ <td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPUtils.html#abe5d2dcc03c5442202203bba5ca7b172" title="ConvertToInt64() converts a string to a 64-bit integer value.">ConvertToInt64()</a></code> converts a string to a 64-bit integer value. </p>
-<p>Overloads the basic form of the function, allowing you to pass a string object, rather than a <code>const * char</code>. It is otherwise identical.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>strValue</em>&nbsp;</td><td>The string representation of the value, specified as a string object.</td></tr>
+<p><code><a class="el" href="classTXMPUtils.html#abe5d2dcc03c5442202203bba5ca7b172" title="ConvertToInt64() converts a string to a 64-bit integer value. ">ConvertToInt64()</a></code> converts a string to a 64-bit integer value. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">strValue</td><td>The string representation of the value, specified as a null-terminated UTF-8 string.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>The 64-bit integer value. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>The 64-bit integer value. </dd></dl>
</div>
</div>
-<a class="anchor" id="abe5d2dcc03c5442202203bba5ca7b172"></a><!-- doxytag: member="TXMPUtils::ConvertToInt64" ref="abe5d2dcc03c5442202203bba5ca7b172" args="(XMP_StringPtr strValue)" -->
+<a class="anchor" id="a711cae0cb1b673ff5e208b4ae458d120"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static long long <a class="el" href="classTXMPUtils.html">TXMPUtils</a>&lt; tStringObj &gt;::ConvertToInt64 </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>strValue</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td><code> [static]</code></td>
+ <td class="paramtype">const tStringObj &amp;&#160;</td>
+ <td class="paramname"><em>strValue</em></td><td>)</td>
+ <td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPUtils.html#abe5d2dcc03c5442202203bba5ca7b172" title="ConvertToInt64() converts a string to a 64-bit integer value.">ConvertToInt64()</a></code> converts a string to a 64-bit integer value. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>strValue</em>&nbsp;</td><td>The string representation of the value, specified as a null-terminated UTF-8 string.</td></tr>
+<p><code><a class="el" href="classTXMPUtils.html#abe5d2dcc03c5442202203bba5ca7b172" title="ConvertToInt64() converts a string to a 64-bit integer value. ">ConvertToInt64()</a></code> converts a string to a 64-bit integer value. </p>
+<p>Overloads the basic form of the function, allowing you to pass a string object, rather than a <code>const * char</code>. It is otherwise identical.</p><dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">strValue</td><td>The string representation of the value, specified as a string object.</td></tr>
</table>
</dd>
</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>The 64-bit integer value. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>The 64-bit integer value. </dd></dl>
</div>
</div>
-<a class="anchor" id="a61852aaba494c8fbad5a6c0c4caf21f5"></a><!-- doxytag: member="TXMPUtils::ConvertToLocalTime" ref="a61852aaba494c8fbad5a6c0c4caf21f5" args="(XMP_DateTime *time)" -->
+<a class="anchor" id="a61852aaba494c8fbad5a6c0c4caf21f5"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classTXMPUtils.html">TXMPUtils</a>&lt; tStringObj &gt;::ConvertToLocalTime </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *&nbsp;</td>
- <td class="paramname"> <em>time</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td><code> [static]</code></td>
+ <td class="paramtype"><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *&#160;</td>
+ <td class="paramname"><em>time</em></td><td>)</td>
+ <td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPUtils.html#a61852aaba494c8fbad5a6c0c4caf21f5" title="ConvertToLocalTime() ensures that a time is local.">ConvertToLocalTime()</a></code> ensures that a time is local. </p>
+<p><code><a class="el" href="classTXMPUtils.html#a61852aaba494c8fbad5a6c0c4caf21f5" title="ConvertToLocalTime() ensures that a time is local. ">ConvertToLocalTime()</a></code> ensures that a time is local. </p>
<p>If the time zone is not the local zone, the time is adjusted and the time zone set to be local. The value is not modified if the time zone is already the local zone or if the value has no time zone.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>time</em>&nbsp;</td><td>A pointer to the date-time value, which is modified in place. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">time</td><td>A pointer to the date-time value, which is modified in place. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="abbd4d691c83287ea2fc6b1e33e5858b8"></a><!-- doxytag: member="TXMPUtils::ConvertToUTCTime" ref="abbd4d691c83287ea2fc6b1e33e5858b8" args="(XMP_DateTime *time)" -->
+<a class="anchor" id="abbd4d691c83287ea2fc6b1e33e5858b8"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classTXMPUtils.html">TXMPUtils</a>&lt; tStringObj &gt;::ConvertToUTCTime </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *&nbsp;</td>
- <td class="paramname"> <em>time</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td><code> [static]</code></td>
+ <td class="paramtype"><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *&#160;</td>
+ <td class="paramname"><em>time</em></td><td>)</td>
+ <td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPUtils.html#abbd4d691c83287ea2fc6b1e33e5858b8" title="ConvertToUTCTime() ensures that a time is UTC.">ConvertToUTCTime()</a></code> ensures that a time is UTC. </p>
+<p><code><a class="el" href="classTXMPUtils.html#abbd4d691c83287ea2fc6b1e33e5858b8" title="ConvertToUTCTime() ensures that a time is UTC. ">ConvertToUTCTime()</a></code> ensures that a time is UTC. </p>
<p>If the time zone is not UTC, the time is adjusted and the time zone set to be UTC. The value is not modified if the time zone is already UTC or if the value has no time zone.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>time</em>&nbsp;</td><td>A pointer to the date-time value, which is modified in place. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">time</td><td>A pointer to the date-time value, which is modified in place. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="ac83f0b963ea64d7eee0b481e15a8439c"></a><!-- doxytag: member="TXMPUtils::CurrentDateTime" ref="ac83f0b963ea64d7eee0b481e15a8439c" args="(XMP_DateTime *time)" -->
+<a class="anchor" id="ac83f0b963ea64d7eee0b481e15a8439c"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classTXMPUtils.html">TXMPUtils</a>&lt; tStringObj &gt;::CurrentDateTime </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *&nbsp;</td>
- <td class="paramname"> <em>time</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td><code> [static]</code></td>
+ <td class="paramtype"><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *&#160;</td>
+ <td class="paramname"><em>time</em></td><td>)</td>
+ <td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPUtils.html#ac83f0b963ea64d7eee0b481e15a8439c" title="CurrentDateTime() obtains the current date and time.">CurrentDateTime()</a></code> obtains the current date and time. </p>
-<p>Creates and returns a binary <code><a class="el" href="structXMP__DateTime.html" title="The expanded type for a date and time.">XMP_DateTime</a></code> value. The returned time is UTC, properly adjusted for the local time zone. The resolution of the time is not guaranteed to be finer than seconds.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>time</em>&nbsp;</td><td>[out] A buffer in which to return the date/time value. </td></tr>
+<p><code><a class="el" href="classTXMPUtils.html#ac83f0b963ea64d7eee0b481e15a8439c" title="CurrentDateTime() obtains the current date and time. ">CurrentDateTime()</a></code> obtains the current date and time. </p>
+<p>In addition to the type-conversion functions that convert between strings and binary date-time values, these functions create, manipulate, and compare date-time values.Creates and returns a binary <code><a class="el" href="structXMP__DateTime.html" title="The expanded type for a date and time. ">XMP_DateTime</a></code> value. The returned time is UTC, properly adjusted for the local time zone. The resolution of the time is not guaranteed to be finer than seconds.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">time</td><td>[out] A buffer in which to return the date/time value. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="a1e61e273065b10517ca127d5a553a8dc"></a><!-- doxytag: member="TXMPUtils::DecodeFromBase64" ref="a1e61e273065b10517ca127d5a553a8dc" args="(const tStringObj &amp;encodedStr, tStringObj *rawStr)" -->
+<a class="anchor" id="ae5bdd91c0c3ee9262dc0a8b9f591b921"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classTXMPUtils.html">TXMPUtils</a>&lt; tStringObj &gt;::DecodeFromBase64 </td>
<td>(</td>
- <td class="paramtype">const tStringObj &amp;&nbsp;</td>
- <td class="paramname"> <em>encodedStr</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>encodedStr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tStringObj *&nbsp;</td>
- <td class="paramname"> <em>rawStr</em></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a>&#160;</td>
+ <td class="paramname"><em>encodedLen</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tStringObj *&#160;</td>
+ <td class="paramname"><em>rawStr</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td><code> [static]</code></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
-
-<p><code><a class="el" href="classTXMPUtils.html#ae5bdd91c0c3ee9262dc0a8b9f591b921" title="DecodeFromBase64() Decodes a Base64-encoded string to raw data.">DecodeFromBase64()</a></code> Decodes a Base64-encoded string, passed as a string object, to raw data. </p>
-<p>Overloads the basic form of the function, allowing you to pass a string object as input. It is otherwise identical.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>encodedStr</em>&nbsp;</td><td>An string object containing the encoded data to be converted.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>rawStr</em>&nbsp;</td><td>[out] A string object in which to return the decoded data. </td></tr>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p><code><a class="el" href="classTXMPUtils.html#ae5bdd91c0c3ee9262dc0a8b9f591b921" title="DecodeFromBase64() Decodes a Base64-encoded string to raw data. ">DecodeFromBase64()</a></code> Decodes a Base64-encoded string to raw data. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">encodedStr</td><td>An <code><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string. ">XMP_StringPtr</a></code> (char *) string containing the encoded data to be converted.</td></tr>
+ <tr><td class="paramname">encodedLen</td><td>The number of characters of raw data to be converted.</td></tr>
+ <tr><td class="paramname">rawStr</td><td>[out] A string object in which to return the decoded data. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="ae5bdd91c0c3ee9262dc0a8b9f591b921"></a><!-- doxytag: member="TXMPUtils::DecodeFromBase64" ref="ae5bdd91c0c3ee9262dc0a8b9f591b921" args="(XMP_StringPtr encodedStr, XMP_StringLen encodedLen, tStringObj *rawStr)" -->
+<a class="anchor" id="a1e61e273065b10517ca127d5a553a8dc"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classTXMPUtils.html">TXMPUtils</a>&lt; tStringObj &gt;::DecodeFromBase64 </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>encodedStr</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a>&nbsp;</td>
- <td class="paramname"> <em>encodedLen</em>, </td>
+ <td class="paramtype">const tStringObj &amp;&#160;</td>
+ <td class="paramname"><em>encodedStr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tStringObj *&nbsp;</td>
- <td class="paramname"> <em>rawStr</em></td><td>&nbsp;</td>
+ <td class="paramtype">tStringObj *&#160;</td>
+ <td class="paramname"><em>rawStr</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td><code> [static]</code></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPUtils.html#ae5bdd91c0c3ee9262dc0a8b9f591b921" title="DecodeFromBase64() Decodes a Base64-encoded string to raw data.">DecodeFromBase64()</a></code> Decodes a Base64-encoded string to raw data. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>encodedStr</em>&nbsp;</td><td>An <code><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a></code> (char *) string containing the encoded data to be converted.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>encodedLen</em>&nbsp;</td><td>The number of characters of raw data to be converted.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>rawStr</em>&nbsp;</td><td>[out] A string object in which to return the decoded data. </td></tr>
+<p><code><a class="el" href="classTXMPUtils.html#ae5bdd91c0c3ee9262dc0a8b9f591b921" title="DecodeFromBase64() Decodes a Base64-encoded string to raw data. ">DecodeFromBase64()</a></code> Decodes a Base64-encoded string, passed as a string object, to raw data. </p>
+<p>Overloads the basic form of the function, allowing you to pass a string object as input. It is otherwise identical.</p><dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">encodedStr</td><td>An string object containing the encoded data to be converted.</td></tr>
+ <tr><td class="paramname">rawStr</td><td>[out] A string object in which to return the decoded data. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="aa17838f062e5414bc0929f67ac94a3aa"></a><!-- doxytag: member="TXMPUtils::DuplicateSubtree" ref="aa17838f062e5414bc0929f67ac94a3aa" args="(const TXMPMeta&lt; tStringObj &gt; &amp;source, TXMPMeta&lt; tStringObj &gt; *dest, XMP_StringPtr sourceNS, XMP_StringPtr sourceRoot, XMP_StringPtr destNS=0, XMP_StringPtr destRoot=0, XMP_OptionBits options=0)" -->
+<a class="anchor" id="aa17838f062e5414bc0929f67ac94a3aa"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classTXMPUtils.html">TXMPUtils</a>&lt; tStringObj &gt;::DuplicateSubtree </td>
<td>(</td>
- <td class="paramtype">const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;&nbsp;</td>
- <td class="paramname"> <em>source</em>, </td>
+ <td class="paramtype">const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;&#160;</td>
+ <td class="paramname"><em>source</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; *&nbsp;</td>
- <td class="paramname"> <em>dest</em>, </td>
+ <td class="paramtype"><a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; *&#160;</td>
+ <td class="paramname"><em>dest</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>sourceNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>sourceNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>sourceRoot</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>sourceRoot</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>destNS</em> = <code>0</code>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>destNS</em> = <code>0</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>destRoot</em> = <code>0</code>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>destRoot</em> = <code>0</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>options</em> = <code>0</code></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td><code> [static]</code></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPUtils.html#aa17838f062e5414bc0929f67ac94a3aa" title="DuplicateSubtree() replicates a subtree from one XMP object into another.">DuplicateSubtree()</a></code> replicates a subtree from one XMP object into another. </p>
+<p><code><a class="el" href="classTXMPUtils.html#aa17838f062e5414bc0929f67ac94a3aa" title="DuplicateSubtree() replicates a subtree from one XMP object into another. ">DuplicateSubtree()</a></code> replicates a subtree from one XMP object into another. </p>
<p>The destination can be a different namespace and root location in the same object, or the same or a different location in another XMP object.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td>The source XMP object.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>dest</em>&nbsp;</td><td>The destination XMP object.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>sourceNS</em>&nbsp;</td><td>The schema namespace URI for the source subtree.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>sourceRoot</em>&nbsp;</td><td>The root location for the source subtree. Can be a general path expression, must not be null or the empty string.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>destNS</em>&nbsp;</td><td>The schema namespace URI for the destination. Defaults to the source namespace.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>destRoot</em>&nbsp;</td><td>The root location for the destination. Can be a general path expression. Defaults to the source location.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>Option flags to control the operation. &lt;&lt;options?&gt;&gt; </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">source</td><td>The source XMP object.</td></tr>
+ <tr><td class="paramname">dest</td><td>The destination XMP object.</td></tr>
+ <tr><td class="paramname">sourceNS</td><td>The schema namespace URI for the source subtree.</td></tr>
+ <tr><td class="paramname">sourceRoot</td><td>The root location for the source subtree. Can be a general path expression, must not be null or the empty string.</td></tr>
+ <tr><td class="paramname">destNS</td><td>The schema namespace URI for the destination. Defaults to the source namespace.</td></tr>
+ <tr><td class="paramname">destRoot</td><td>The root location for the destination. Can be a general path expression. Defaults to the source location.</td></tr>
+ <tr><td class="paramname">options</td><td>Option flags to control the operation. &lt;&lt;options?&gt;&gt; </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="a39d5de77b29441a30f2f879755b8e7d8"></a><!-- doxytag: member="TXMPUtils::EncodeToBase64" ref="a39d5de77b29441a30f2f879755b8e7d8" args="(const tStringObj &amp;rawStr, tStringObj *encodedStr)" -->
+<a class="anchor" id="aef3b23bbc152480f699e269620ecad4a"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classTXMPUtils.html">TXMPUtils</a>&lt; tStringObj &gt;::EncodeToBase64 </td>
<td>(</td>
- <td class="paramtype">const tStringObj &amp;&nbsp;</td>
- <td class="paramname"> <em>rawStr</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>rawStr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tStringObj *&nbsp;</td>
- <td class="paramname"> <em>encodedStr</em></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a>&#160;</td>
+ <td class="paramname"><em>rawLen</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tStringObj *&#160;</td>
+ <td class="paramname"><em>encodedStr</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td><code> [static]</code></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
-
-<p><code><a class="el" href="classTXMPUtils.html#aef3b23bbc152480f699e269620ecad4a" title="EncodeToBase64() converts a raw data value to a Base64-encoded string.">EncodeToBase64()</a></code> converts a raw data value passed in a string object to a Base64-encoded string. </p>
-<p>Overloads the basic form of the function, allowing you to pass a string object as input. It is otherwise identical.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>rawStr</em>&nbsp;</td><td>A string object containing the raw data to be converted.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>encodedStr</em>&nbsp;</td><td>[out] A string object in which to return the encoded string. </td></tr>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>These functions convert between raw data values and Base64-encoded strings. </p>
+<p><code><a class="el" href="classTXMPUtils.html#aef3b23bbc152480f699e269620ecad4a" title="These functions convert between raw data values and Base64-encoded strings. ">EncodeToBase64()</a></code> converts a raw data value to a Base64-encoded string.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">rawStr</td><td>An <code><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string. ">XMP_StringPtr</a></code> (char *) string containing the raw data to be converted.</td></tr>
+ <tr><td class="paramname">rawLen</td><td>The number of characters of raw data to be converted.</td></tr>
+ <tr><td class="paramname">encodedStr</td><td>[out] A string object in which to return the encoded string. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="aef3b23bbc152480f699e269620ecad4a"></a><!-- doxytag: member="TXMPUtils::EncodeToBase64" ref="aef3b23bbc152480f699e269620ecad4a" args="(XMP_StringPtr rawStr, XMP_StringLen rawLen, tStringObj *encodedStr)" -->
+<a class="anchor" id="a39d5de77b29441a30f2f879755b8e7d8"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classTXMPUtils.html">TXMPUtils</a>&lt; tStringObj &gt;::EncodeToBase64 </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>rawStr</em>, </td>
+ <td class="paramtype">const tStringObj &amp;&#160;</td>
+ <td class="paramname"><em>rawStr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a>&nbsp;</td>
- <td class="paramname"> <em>rawLen</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tStringObj *&nbsp;</td>
- <td class="paramname"> <em>encodedStr</em></td><td>&nbsp;</td>
+ <td class="paramtype">tStringObj *&#160;</td>
+ <td class="paramname"><em>encodedStr</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td><code> [static]</code></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPUtils.html#aef3b23bbc152480f699e269620ecad4a" title="EncodeToBase64() converts a raw data value to a Base64-encoded string.">EncodeToBase64()</a></code> converts a raw data value to a Base64-encoded string. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>rawStr</em>&nbsp;</td><td>An <code><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a></code> (char *) string containing the raw data to be converted.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>rawLen</em>&nbsp;</td><td>The number of characters of raw data to be converted.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>encodedStr</em>&nbsp;</td><td>[out] A string object in which to return the encoded string. </td></tr>
+<p><code><a class="el" href="classTXMPUtils.html#aef3b23bbc152480f699e269620ecad4a" title="These functions convert between raw data values and Base64-encoded strings. ">EncodeToBase64()</a></code> converts a raw data value passed in a string object to a Base64-encoded string. </p>
+<p>Overloads the basic form of the function, allowing you to pass a string object as input. It is otherwise identical.</p><dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">rawStr</td><td>A string object containing the raw data to be converted.</td></tr>
+ <tr><td class="paramname">encodedStr</td><td>[out] A string object in which to return the encoded string. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<a class="anchor" id="a6187cd5fef0eccecac6805d4114dcd2e"></a><!-- doxytag: member="TXMPUtils::MergeFromJPEG" ref="a6187cd5fef0eccecac6805d4114dcd2e" args="(TXMPMeta&lt; tStringObj &gt; *fullXMP, const TXMPMeta&lt; tStringObj &gt; &amp;extendedXMP)" -->
+<a class="anchor" id="a6187cd5fef0eccecac6805d4114dcd2e"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classTXMPUtils.html">TXMPUtils</a>&lt; tStringObj &gt;::MergeFromJPEG </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; *&nbsp;</td>
- <td class="paramname"> <em>fullXMP</em>, </td>
+ <td class="paramtype"><a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; *&#160;</td>
+ <td class="paramname"><em>fullXMP</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;&nbsp;</td>
- <td class="paramname"> <em>extendedXMP</em></td><td>&nbsp;</td>
+ <td class="paramtype">const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;&#160;</td>
+ <td class="paramname"><em>extendedXMP</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td><code> [static]</code></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPUtils.html#a6187cd5fef0eccecac6805d4114dcd2e" title="MergeFromJPEG() merges standard and extended XMP retrieved from a JPEG file.">MergeFromJPEG()</a></code> merges standard and extended XMP retrieved from a JPEG file. </p>
+<p><code><a class="el" href="classTXMPUtils.html#a6187cd5fef0eccecac6805d4114dcd2e" title="MergeFromJPEG() merges standard and extended XMP retrieved from a JPEG file. ">MergeFromJPEG()</a></code> merges standard and extended XMP retrieved from a JPEG file. </p>
<p>When an extended partition stores properties that do not fit into the JPEG file limitation of 64K bytes, this function integrates those properties back into the same XMP object with those from the standard XMP packet.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>fullXMP</em>&nbsp;</td><td>[in, out] An XMP object which the caller has initialized from the standard XMP packet in a JPEG file. The extended XMP is added to this object.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>extendedXMP</em>&nbsp;</td><td>An XMP object which the caller has initialized from the extended XMP packet in a JPEG file.</td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">fullXMP</td><td>[in, out] An XMP object which the caller has initialized from the standard XMP packet in a JPEG file. The extended XMP is added to this object.</td></tr>
+ <tr><td class="paramname">extendedXMP</td><td>An XMP object which the caller has initialized from the extended XMP packet in a JPEG file.</td></tr>
</table>
</dd>
</dl>
-<dl class="see"><dt><b>See also:</b></dt><dd><code><a class="el" href="classTXMPUtils.html#a6001b4ff54c60fdf0c40e6b78a5c457a" title="PackageForJPEG() creates XMP serializations appropriate for a JPEG file.">PackageForJPEG()</a></code> </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><code><a class="el" href="classTXMPUtils.html#a6001b4ff54c60fdf0c40e6b78a5c457a" title="PackageForJPEG() creates XMP serializations appropriate for a JPEG file. ">PackageForJPEG()</a></code> </dd></dl>
</div>
</div>
-<a class="anchor" id="a6001b4ff54c60fdf0c40e6b78a5c457a"></a><!-- doxytag: member="TXMPUtils::PackageForJPEG" ref="a6001b4ff54c60fdf0c40e6b78a5c457a" args="(const TXMPMeta&lt; tStringObj &gt; &amp;xmpObj, tStringObj *standardXMP, tStringObj *extendedXMP, tStringObj *extendedDigest)" -->
+<a class="anchor" id="a6001b4ff54c60fdf0c40e6b78a5c457a"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classTXMPUtils.html">TXMPUtils</a>&lt; tStringObj &gt;::PackageForJPEG </td>
<td>(</td>
- <td class="paramtype">const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;&nbsp;</td>
- <td class="paramname"> <em>xmpObj</em>, </td>
+ <td class="paramtype">const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;&#160;</td>
+ <td class="paramname"><em>xmpObj</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tStringObj *&nbsp;</td>
- <td class="paramname"> <em>standardXMP</em>, </td>
+ <td class="paramtype">tStringObj *&#160;</td>
+ <td class="paramname"><em>standardXMP</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tStringObj *&nbsp;</td>
- <td class="paramname"> <em>extendedXMP</em>, </td>
+ <td class="paramtype">tStringObj *&#160;</td>
+ <td class="paramname"><em>extendedXMP</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tStringObj *&nbsp;</td>
- <td class="paramname"> <em>extendedDigest</em></td><td>&nbsp;</td>
+ <td class="paramtype">tStringObj *&#160;</td>
+ <td class="paramname"><em>extendedDigest</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td><code> [static]</code></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
-
-<p><code><a class="el" href="classTXMPUtils.html#a6001b4ff54c60fdf0c40e6b78a5c457a" title="PackageForJPEG() creates XMP serializations appropriate for a JPEG file.">PackageForJPEG()</a></code> creates XMP serializations appropriate for a JPEG file. </p>
-<p>The standard XMP in a JPEG file is limited to 64K bytes. This function serializes the XMP metadata in an XMP object into a string of RDF (see <code><a class="el" href="classTXMPMeta.html#a2774a6f15ae22f0002201b58c46bfb49" title="SerializeToBuffer() serializes metadata in this XMP object into a string as RDF.">TXMPMeta::SerializeToBuffer()</a></code>). If the data does not fit into the 64K byte limit, it creates a second packet string with the extended data.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>xmpObj</em>&nbsp;</td><td>The XMP object containing the metadata.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>standardXMP</em>&nbsp;</td><td>[out] A string object in which to return the full standard XMP packet.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>extendedXMP</em>&nbsp;</td><td>[out] A string object in which to return the serialized extended XMP, empty if not needed.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>extendedDigest</em>&nbsp;</td><td>[out] A string object in which to return an MD5 digest of the serialized extended XMP, empty if not needed.</td></tr>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p><code><a class="el" href="classTXMPUtils.html#a6001b4ff54c60fdf0c40e6b78a5c457a" title="PackageForJPEG() creates XMP serializations appropriate for a JPEG file. ">PackageForJPEG()</a></code> creates XMP serializations appropriate for a JPEG file. </p>
+<dl class="section note"><dt>Note</dt><dd>(Doc note) Add detail about how to write out and read back extended dataThe standard XMP in a JPEG file is limited to 64K bytes. This function serializes the XMP metadata in an XMP object into a string of RDF (see <code><a class="el" href="classTXMPMeta.html#a2774a6f15ae22f0002201b58c46bfb49" title="SerializeToBuffer() serializes metadata in this XMP object into a string as RDF. ">TXMPMeta::SerializeToBuffer()</a></code>). If the data does not fit into the 64K byte limit, it creates a second packet string with the extended data.</dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">xmpObj</td><td>The XMP object containing the metadata.</td></tr>
+ <tr><td class="paramname">standardXMP</td><td>[out] A string object in which to return the full standard XMP packet.</td></tr>
+ <tr><td class="paramname">extendedXMP</td><td>[out] A string object in which to return the serialized extended XMP, empty if not needed.</td></tr>
+ <tr><td class="paramname">extendedDigest</td><td>[out] A string object in which to return an MD5 digest of the serialized extended XMP, empty if not needed.</td></tr>
</table>
</dd>
</dl>
-<dl class="see"><dt><b>See also:</b></dt><dd><code><a class="el" href="classTXMPUtils.html#a6187cd5fef0eccecac6805d4114dcd2e" title="MergeFromJPEG() merges standard and extended XMP retrieved from a JPEG file.">MergeFromJPEG()</a></code> </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><code><a class="el" href="classTXMPUtils.html#a6187cd5fef0eccecac6805d4114dcd2e" title="MergeFromJPEG() merges standard and extended XMP retrieved from a JPEG file. ">MergeFromJPEG()</a></code> </dd></dl>
</div>
</div>
-<a class="anchor" id="a40c645803530662e08d042b4b7c6190d"></a><!-- doxytag: member="TXMPUtils::RemoveProperties" ref="a40c645803530662e08d042b4b7c6190d" args="(TXMPMeta&lt; tStringObj &gt; *xmpObj, XMP_StringPtr schemaNS=0, XMP_StringPtr propName=0, XMP_OptionBits options=0)" -->
+<a class="anchor" id="a40c645803530662e08d042b4b7c6190d"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classTXMPUtils.html">TXMPUtils</a>&lt; tStringObj &gt;::RemoveProperties </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; *&nbsp;</td>
- <td class="paramname"> <em>xmpObj</em>, </td>
+ <td class="paramtype"><a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; *&#160;</td>
+ <td class="paramname"><em>xmpObj</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em> = <code>0</code>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em> = <code>0</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>propName</em> = <code>0</code>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>propName</em> = <code>0</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>options</em> = <code>0</code></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td><code> [static]</code></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPUtils.html#a40c645803530662e08d042b4b7c6190d" title="RemoveProperties() removes multiple properties from an XMP object.">RemoveProperties()</a></code> removes multiple properties from an XMP object. </p>
+<p><code><a class="el" href="classTXMPUtils.html#a40c645803530662e08d042b4b7c6190d" title="RemoveProperties() removes multiple properties from an XMP object. ">RemoveProperties()</a></code> removes multiple properties from an XMP object. </p>
<p>The operation depends on how the namespace and property are specified:</p>
<ul>
-<li>Non-empty <code>schemaNS</code> and <code>propName</code> - The named property is removed if it is an external property, or if the <code><a class="el" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a8ddfb0572b7602a52e533d92d8b1e9fb" title="Do all properties, default is just external properties.">kXMPUtil_DoAllProperties</a></code> option flag is set. It does not matter whether the named property is an actual property or an alias.</li>
+<li>Non-empty <code>schemaNS</code> and <code>propName</code> - The named property is removed if it is an external property, or if the <code><a class="el" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a8ddfb0572b7602a52e533d92d8b1e9fb" title="Do all properties, default is just external properties. ">kXMPUtil_DoAllProperties</a></code> option flag is set. It does not matter whether the named property is an actual property or an alias.</li>
</ul>
<ul>
-<li>Non-empty <code>schemaNS</code> and empty <code>propName</code> - All external properties in the named schema are removed. Internal properties are also removed if the <code><a class="el" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a8ddfb0572b7602a52e533d92d8b1e9fb" title="Do all properties, default is just external properties.">kXMPUtil_DoAllProperties</a></code> option flag is set. In addition, aliases from the named schema are removed if the <code><a class="el" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a843589b878f53d42d59258f945ad770b" title="Include aliases, default is just actual properties.">kXMPUtil_IncludeAliases</a></code> option flag is set.</li>
+<li>Non-empty <code>schemaNS</code> and empty <code>propName</code> - All external properties in the named schema are removed. Internal properties are also removed if the <code><a class="el" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a8ddfb0572b7602a52e533d92d8b1e9fb" title="Do all properties, default is just external properties. ">kXMPUtil_DoAllProperties</a></code> option flag is set. In addition, aliases from the named schema are removed if the <code><a class="el" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a843589b878f53d42d59258f945ad770b" title="Include aliases, default is just actual properties. ">kXMPUtil_IncludeAliases</a></code> option flag is set.</li>
</ul>
<ul>
-<li>Empty <code>schemaNS</code> and empty <code>propName</code> - All external properties in all schemas are removed. Internal properties are also removed if the <code><a class="el" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a8ddfb0572b7602a52e533d92d8b1e9fb" title="Do all properties, default is just external properties.">kXMPUtil_DoAllProperties</a></code> option flag is set. Aliases are handled implicitly, because the associated actuals are removed or not.</li>
+<li>Empty <code>schemaNS</code> and empty <code>propName</code> - All external properties in all schemas are removed. Internal properties are also removed if the <code><a class="el" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a8ddfb0572b7602a52e533d92d8b1e9fb" title="Do all properties, default is just external properties. ">kXMPUtil_DoAllProperties</a></code> option flag is set. Aliases are handled implicitly, because the associated actuals are removed or not.</li>
</ul>
<ul>
<li>It is an error to pass an empty <code>schemaNS</code> and non-empty <code>propName</code>.</li>
</ul>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>xmpObj</em>&nbsp;</td><td>The XMP object containing the properties to be removed.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>Optional schema namespace URI for the properties to be removed.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>propName</em>&nbsp;</td><td>Optional path expression for the property to be removed.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>Option flags to control the deletion operation. A logical OR of these bit-flag constants: </p>
-<ul>
-<li><code><a class="el" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a8ddfb0572b7602a52e533d92d8b1e9fb" title="Do all properties, default is just external properties.">kXMPUtil_DoAllProperties</a></code> - Delete internal properties in addition to external properties. </li>
-<li><code><a class="el" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a843589b878f53d42d59258f945ad770b" title="Include aliases, default is just actual properties.">kXMPUtil_IncludeAliases</a></code> - Include aliases if the schema is explicitly specified. </li>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">xmpObj</td><td>The XMP object containing the properties to be removed.</td></tr>
+ <tr><td class="paramname">schemaNS</td><td>Optional schema namespace URI for the properties to be removed.</td></tr>
+ <tr><td class="paramname">propName</td><td>Optional path expression for the property to be removed.</td></tr>
+ <tr><td class="paramname">options</td><td>Option flags to control the deletion operation. A logical OR of these bit-flag constants: <ul>
+<li><code><a class="el" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a8ddfb0572b7602a52e533d92d8b1e9fb" title="Do all properties, default is just external properties. ">kXMPUtil_DoAllProperties</a></code> - Delete internal properties in addition to external properties. </li>
+<li><code><a class="el" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a843589b878f53d42d59258f945ad770b" title="Include aliases, default is just actual properties. ">kXMPUtil_IncludeAliases</a></code> - Include aliases if the schema is explicitly specified. </li>
</ul>
</td></tr>
</table>
@@ -1884,150 +2129,214 @@ template&lt;class tStringObj &gt; </div>
</div>
</div>
-<a class="anchor" id="a1bb2ed614886ff67863744ec56041c43"></a><!-- doxytag: member="TXMPUtils::SeparateArrayItems" ref="a1bb2ed614886ff67863744ec56041c43" args="(TXMPMeta&lt; tStringObj &gt; *xmpObj, XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_OptionBits options, const tStringObj &amp;catedStr)" -->
+<a class="anchor" id="a66c5ddee47aa36ed906353f94ca18d2e"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classTXMPUtils.html">TXMPUtils</a>&lt; tStringObj &gt;::SeparateArrayItems </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; *&nbsp;</td>
- <td class="paramname"> <em>xmpObj</em>, </td>
+ <td class="paramtype"><a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; *&#160;</td>
+ <td class="paramname"><em>xmpObj</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>arrayName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>arrayName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>options</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">const tStringObj &amp;&nbsp;</td>
- <td class="paramname"> <em>catedStr</em></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>catedStr</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td><code> [static]</code></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
-
-<p><code><a class="el" href="classTXMPUtils.html#a66c5ddee47aa36ed906353f94ca18d2e" title="SeparateArrayItems() updates an array from a concatenated edit string of values.">SeparateArrayItems()</a></code> updates an array from a concatenated edit string of values. </p>
-<p>Overloads the basic form of the function, allowing you to pass a string object in which to return the concatenated string. It is otherwise identical; see details for the canonical form. </p>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p><code><a class="el" href="classTXMPUtils.html#a66c5ddee47aa36ed906353f94ca18d2e" title="SeparateArrayItems() updates an array from a concatenated edit string of values. ">SeparateArrayItems()</a></code> updates an array from a concatenated edit string of values. </p>
+<p>This reverses the action of <code><a class="el" href="classTXMPUtils.html#ad7e1aa7928252fb88a24fb5c3aef22ba" title="CatenateArrayItems() creates a single edit string from a set of array item values. ">CatenateArrayItems()</a></code>, separating out individual array items from the edit string and updating the array with the new values. Each item in the array must be a simple string value.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">xmpObj</td><td>The XMP object containing the array to be updated.</td></tr>
+ <tr><td class="paramname">schemaNS</td><td>The schema namespace URI for the array. Must not be null or the empty string.</td></tr>
+ <tr><td class="paramname">arrayName</td><td>The name of the array. May be a general path expression, must not be null or the empty string.</td></tr>
+ <tr><td class="paramname">options</td><td>Option flags to control the separation. &lt;&lt;what options?&gt;&gt;</td></tr>
+ <tr><td class="paramname">catedStr</td><td>The concatenated array items, as created by <code><a class="el" href="classTXMPUtils.html#ad7e1aa7928252fb88a24fb5c3aef22ba" title="CatenateArrayItems() creates a single edit string from a set of array item values. ">CatenateArrayItems()</a></code>, specified as a null-terminated UTF-8 string. </td></tr>
+ </table>
+ </dd>
+</dl>
</div>
</div>
-<a class="anchor" id="a66c5ddee47aa36ed906353f94ca18d2e"></a><!-- doxytag: member="TXMPUtils::SeparateArrayItems" ref="a66c5ddee47aa36ed906353f94ca18d2e" args="(TXMPMeta&lt; tStringObj &gt; *xmpObj, XMP_StringPtr schemaNS, XMP_StringPtr arrayName, XMP_OptionBits options, XMP_StringPtr catedStr)" -->
+<a class="anchor" id="a1bb2ed614886ff67863744ec56041c43"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classTXMPUtils.html">TXMPUtils</a>&lt; tStringObj &gt;::SeparateArrayItems </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; *&nbsp;</td>
- <td class="paramname"> <em>xmpObj</em>, </td>
+ <td class="paramtype"><a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; *&#160;</td>
+ <td class="paramname"><em>xmpObj</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>schemaNS</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>schemaNS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>arrayName</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>arrayName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&nbsp;</td>
- <td class="paramname"> <em>options</em>, </td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>catedStr</em></td><td>&nbsp;</td>
+ <td class="paramtype">const tStringObj &amp;&#160;</td>
+ <td class="paramname"><em>catedStr</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td><code> [static]</code></td>
+ <td></td><td></td>
</tr>
</table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p><code><a class="el" href="classTXMPUtils.html#a66c5ddee47aa36ed906353f94ca18d2e" title="SeparateArrayItems() updates an array from a concatenated edit string of values. ">SeparateArrayItems()</a></code> updates an array from a concatenated edit string of values. </p>
+<p>Overloads the basic form of the function, allowing you to pass a string object in which to return the concatenated string. It is otherwise identical; see details for the canonical form. </p>
+
</div>
-<div class="memdoc">
-
-<p><code><a class="el" href="classTXMPUtils.html#a66c5ddee47aa36ed906353f94ca18d2e" title="SeparateArrayItems() updates an array from a concatenated edit string of values.">SeparateArrayItems()</a></code> updates an array from a concatenated edit string of values. </p>
-<p>This reverses the action of <code><a class="el" href="classTXMPUtils.html#ad7e1aa7928252fb88a24fb5c3aef22ba" title="CatenateArrayItems() creates a single edit string from a set of array item values...">CatenateArrayItems()</a></code>, separating out individual array items from the edit string and updating the array with the new values. Each item in the array must be a simple string value.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>xmpObj</em>&nbsp;</td><td>The XMP object containing the array to be updated.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>schemaNS</em>&nbsp;</td><td>The schema namespace URI for the array. Must not be null or the empty string.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>arrayName</em>&nbsp;</td><td>The name of the array. May be a general path expression, must not be null or the empty string.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>Option flags to control the separation. &lt;&lt;what options?&gt;&gt;</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>catedStr</em>&nbsp;</td><td>The concatenated array items, as created by <code><a class="el" href="classTXMPUtils.html#ad7e1aa7928252fb88a24fb5c3aef22ba" title="CatenateArrayItems() creates a single edit string from a set of array item values...">CatenateArrayItems()</a></code>, specified as a null-terminated UTF-8 string. </td></tr>
- </table>
- </dd>
-</dl>
+</div>
+<a class="anchor" id="aa9bc319ae425f1e371a3c188b1f9010c"></a>
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class tStringObj &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static void <a class="el" href="classTXMPUtils.html">TXMPUtils</a>&lt; tStringObj &gt;::SetClientString </td>
+ <td>(</td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>clientPtr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>valuePtr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a>&#160;</td>
+ <td class="paramname"><em>valueLen</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
</div>
</div>
-<a class="anchor" id="a96bcc45febac55f6c49951815b7de2ef"></a><!-- doxytag: member="TXMPUtils::SetTimeZone" ref="a96bcc45febac55f6c49951815b7de2ef" args="(XMP_DateTime *time)" -->
+<a class="anchor" id="a96bcc45febac55f6c49951815b7de2ef"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classTXMPUtils.html">TXMPUtils</a>&lt; tStringObj &gt;::SetTimeZone </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *&nbsp;</td>
- <td class="paramname"> <em>time</em></td>
- <td>&nbsp;)&nbsp;</td>
- <td><code> [static]</code></td>
+ <td class="paramtype"><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a> *&#160;</td>
+ <td class="paramname"><em>time</em></td><td>)</td>
+ <td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p><code><a class="el" href="classTXMPUtils.html#a96bcc45febac55f6c49951815b7de2ef" title="SetTimeZone() sets the time zone in a date/time value to the local time zone.">SetTimeZone()</a></code> sets the time zone in a date/time value to the local time zone. </p>
+<p><code><a class="el" href="classTXMPUtils.html#a96bcc45febac55f6c49951815b7de2ef" title="SetTimeZone() sets the time zone in a date/time value to the local time zone. ">SetTimeZone()</a></code> sets the time zone in a date/time value to the local time zone. </p>
<p>Any existing time zone value is replaced. The other date/time fields are not adjusted in any way.</p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>time</em>&nbsp;</td><td>A pointer to the date-time value, which is modified in place. </td></tr>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">time</td><td>A pointer to the date-time value, which is modified in place. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
-<hr/>The documentation for this class was generated from the following file:<ul>
-<li><a class="el" href="TXMPUtils_8hpp_source.html">TXMPUtils.hpp</a></li>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/<a class="el" href="TXMPMeta_8hpp_source.html">TXMPMeta.hpp</a></li>
+<li>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/<a class="el" href="TXMPUtils_8hpp_source.html">TXMPUtils.hpp</a></li>
</ul>
-</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
</body>
</html>
diff --git a/docs/API/classTXMPUtils.js b/docs/API/classTXMPUtils.js
new file mode 100755
index 0000000..5b4ebe4
--- /dev/null
+++ b/docs/API/classTXMPUtils.js
@@ -0,0 +1,43 @@
+var classTXMPUtils =
+[
+ [ "ApplyTemplate", "classTXMPUtils.html#ab73bfa15116e6d702044542e0a43cce9", null ],
+ [ "CatenateArrayItems", "classTXMPUtils.html#ad7e1aa7928252fb88a24fb5c3aef22ba", null ],
+ [ "CompareDateTime", "classTXMPUtils.html#a9fc7f1771032f59f9020aeda4f91991d", null ],
+ [ "ComposeArrayItemPath", "classTXMPUtils.html#a47fa195aa2e1457aa1f74f7e1ed06da6", null ],
+ [ "ComposeFieldSelector", "classTXMPUtils.html#a458f8e8729e2334fe54ca8f691a9db23", null ],
+ [ "ComposeFieldSelector", "classTXMPUtils.html#ad2d2361b8a4d0709ec9e3bd837265cba", null ],
+ [ "ComposeLangSelector", "classTXMPUtils.html#ae4989e5c199a2a4287ee3ae89b872e69", null ],
+ [ "ComposeLangSelector", "classTXMPUtils.html#a7882bbc2e412ff476c2d97d98808d91c", null ],
+ [ "ComposeQualifierPath", "classTXMPUtils.html#a40ae0ce2065fcb71725e37137884e172", null ],
+ [ "ComposeStructFieldPath", "classTXMPUtils.html#a706eb85b8401b8682a01348f7e25ee3d", null ],
+ [ "ConvertFromBool", "classTXMPUtils.html#a509691eb270988de6a770c9c8304ab6b", null ],
+ [ "ConvertFromDate", "classTXMPUtils.html#a6146a522a3974b4088d6e8241e9cd223", null ],
+ [ "ConvertFromFloat", "classTXMPUtils.html#ae67ef3931836432b7e574832f0610ed0", null ],
+ [ "ConvertFromInt", "classTXMPUtils.html#aeec45b4d1a26717290105c9f4e8b4235", null ],
+ [ "ConvertFromInt64", "classTXMPUtils.html#aeae4617e05358433015eaa80953c5e60", null ],
+ [ "ConvertToBool", "classTXMPUtils.html#aaaaaadb23f4089daa795f50cba4f405c", null ],
+ [ "ConvertToBool", "classTXMPUtils.html#a84f2a7b3960a17315032915674e21960", null ],
+ [ "ConvertToDate", "classTXMPUtils.html#a60d33e6ce30286028acca47b2b6e7a0b", null ],
+ [ "ConvertToDate", "classTXMPUtils.html#a265559d1b4b78e34a460e935c11177d7", null ],
+ [ "ConvertToFloat", "classTXMPUtils.html#a8a507b006286460814e0486c622d828c", null ],
+ [ "ConvertToFloat", "classTXMPUtils.html#aabd4e479d2708a9ea3135cd441faa7ea", null ],
+ [ "ConvertToInt", "classTXMPUtils.html#adfd9d1c522377d5db4ad667a7973ba00", null ],
+ [ "ConvertToInt", "classTXMPUtils.html#a47d93f9cb4acd9d7ec6b450100209bec", null ],
+ [ "ConvertToInt64", "classTXMPUtils.html#abe5d2dcc03c5442202203bba5ca7b172", null ],
+ [ "ConvertToInt64", "classTXMPUtils.html#a711cae0cb1b673ff5e208b4ae458d120", null ],
+ [ "ConvertToLocalTime", "classTXMPUtils.html#a61852aaba494c8fbad5a6c0c4caf21f5", null ],
+ [ "ConvertToUTCTime", "classTXMPUtils.html#abbd4d691c83287ea2fc6b1e33e5858b8", null ],
+ [ "CurrentDateTime", "classTXMPUtils.html#ac83f0b963ea64d7eee0b481e15a8439c", null ],
+ [ "DecodeFromBase64", "classTXMPUtils.html#ae5bdd91c0c3ee9262dc0a8b9f591b921", null ],
+ [ "DecodeFromBase64", "classTXMPUtils.html#a1e61e273065b10517ca127d5a553a8dc", null ],
+ [ "DuplicateSubtree", "classTXMPUtils.html#aa17838f062e5414bc0929f67ac94a3aa", null ],
+ [ "EncodeToBase64", "classTXMPUtils.html#aef3b23bbc152480f699e269620ecad4a", null ],
+ [ "EncodeToBase64", "classTXMPUtils.html#a39d5de77b29441a30f2f879755b8e7d8", null ],
+ [ "MergeFromJPEG", "classTXMPUtils.html#a6187cd5fef0eccecac6805d4114dcd2e", null ],
+ [ "PackageForJPEG", "classTXMPUtils.html#a6001b4ff54c60fdf0c40e6b78a5c457a", null ],
+ [ "RemoveProperties", "classTXMPUtils.html#a40c645803530662e08d042b4b7c6190d", null ],
+ [ "SeparateArrayItems", "classTXMPUtils.html#a66c5ddee47aa36ed906353f94ca18d2e", null ],
+ [ "SeparateArrayItems", "classTXMPUtils.html#a1bb2ed614886ff67863744ec56041c43", null ],
+ [ "SetClientString", "classTXMPUtils.html#aa9bc319ae425f1e371a3c188b1f9010c", null ],
+ [ "SetTimeZone", "classTXMPUtils.html#a96bcc45febac55f6c49951815b7de2ef", null ]
+]; \ No newline at end of file
diff --git a/docs/API/classXMP__Error-members.html b/docs/API/classXMP__Error-members.html
index 6c0d558..6ae01f9 100644..100755
--- a/docs/API/classXMP__Error-members.html
+++ b/docs/API/classXMP__Error-members.html
@@ -1,79 +1,61 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: Member List</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
- <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
- <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classXMP__Error.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">XMP_Error Member List</div> </div>
+</div><!--header-->
<div class="contents">
-<h1>XMP_Error Member List</h1>This is the complete list of members for <a class="el" href="classXMP__Error.html">XMP_Error</a>, including all inherited members.<table>
- <tr class="memlist"><td><a class="el" href="classXMP__Error.html#a31fd80098e50026985e05abd16f3e045">errMsg</a></td><td><a class="el" href="classXMP__Error.html">XMP_Error</a></td><td><code> [private]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classXMP__Error.html#a9a3560c67612dec9a6ca37c34eb2c153">GetErrMsg</a>() const </td><td><a class="el" href="classXMP__Error.html">XMP_Error</a></td><td><code> [inline]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classXMP__Error.html#a56aaa6fc6644ccfc9470ae1af8f3a8cd">GetID</a>() const </td><td><a class="el" href="classXMP__Error.html">XMP_Error</a></td><td><code> [inline]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classXMP__Error.html#aad714bd7c428e10eff07a8ab6a4f3125">id</a></td><td><a class="el" href="classXMP__Error.html">XMP_Error</a></td><td><code> [private]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classXMP__Error.html#a5a0651a9615a6a60e467a96ddb43a6bb">IsNotified</a>() const </td><td><a class="el" href="classXMP__Error.html">XMP_Error</a></td><td><code> [inline]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classXMP__Error.html#a2b884dfb0b39689d1cf95105eadc4571">notified</a></td><td><a class="el" href="classXMP__Error.html">XMP_Error</a></td><td><code> [private]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classXMP__Error.html#a9c368db94ca63ad7b9b118051d1f8897">SetNotified</a>()</td><td><a class="el" href="classXMP__Error.html">XMP_Error</a></td><td><code> [inline]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classXMP__Error.html#aa8b3b859899759d679b00237254e30aa">XMP_Error</a>(XMP_Int32 _id, XMP_StringPtr _errMsg)</td><td><a class="el" href="classXMP__Error.html">XMP_Error</a></td><td><code> [inline]</code></td></tr>
-</table></div>
+
+<p>This is the complete list of members for <a class="el" href="classXMP__Error.html">XMP_Error</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classXMP__Error.html#a31fd80098e50026985e05abd16f3e045">errMsg</a></td><td class="entry"><a class="el" href="classXMP__Error.html">XMP_Error</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classXMP__Error.html#a9a3560c67612dec9a6ca37c34eb2c153">GetErrMsg</a>() const </td><td class="entry"><a class="el" href="classXMP__Error.html">XMP_Error</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classXMP__Error.html#a56aaa6fc6644ccfc9470ae1af8f3a8cd">GetID</a>() const </td><td class="entry"><a class="el" href="classXMP__Error.html">XMP_Error</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classXMP__Error.html#aad714bd7c428e10eff07a8ab6a4f3125">id</a></td><td class="entry"><a class="el" href="classXMP__Error.html">XMP_Error</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classXMP__Error.html#a5a0651a9615a6a60e467a96ddb43a6bb">IsNotified</a>() const </td><td class="entry"><a class="el" href="classXMP__Error.html">XMP_Error</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classXMP__Error.html#a2b884dfb0b39689d1cf95105eadc4571">notified</a></td><td class="entry"><a class="el" href="classXMP__Error.html">XMP_Error</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classXMP__Error.html#a9c368db94ca63ad7b9b118051d1f8897">SetNotified</a>()</td><td class="entry"><a class="el" href="classXMP__Error.html">XMP_Error</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classXMP__Error.html#aa8b3b859899759d679b00237254e30aa">XMP_Error</a>(XMP_Int32 _id, XMP_StringPtr _errMsg)</td><td class="entry"><a class="el" href="classXMP__Error.html">XMP_Error</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
</body>
</html>
diff --git a/docs/API/classXMP__Error.html b/docs/API/classXMP__Error.html
index 427e89f..72b6a16 100644..100755
--- a/docs/API/classXMP__Error.html
+++ b/docs/API/classXMP__Error.html
@@ -1,161 +1,330 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: XMP_Error Class Reference</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
+<title>XMP_Error Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
- <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
- <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classXMP__Error.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pri-attribs">Private Attributes</a> &#124;
+<a href="classXMP__Error-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">XMP_Error Class Reference</div> </div>
+</div><!--header-->
<div class="contents">
-<h1>XMP_Error Class Reference</h1><!-- doxytag: class="XMP_Error" -->
+
<p>XMP Toolkit error, associates an error code with a descriptive error string.
-<a href="#_details">More...</a></p>
+ <a href="classXMP__Error.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>&gt;</code></p>
-
-<p><a href="classXMP__Error-members.html">List of all members.</a></p>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMP__Error.html#aa8b3b859899759d679b00237254e30aa">XMP_Error</a> (XMP_Int32 _id, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> _errMsg)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor for an <a class="el" href="classXMP__Error.html" title="XMP Toolkit error, associates an error code with a descriptive error string.">XMP_Error</a>. <a href="#aa8b3b859899759d679b00237254e30aa"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a56aaa6fc6644ccfc9470ae1af8f3a8cd"></a><!-- doxytag: member="XMP_Error::GetID" ref="a56aaa6fc6644ccfc9470ae1af8f3a8cd" args="() const " -->
-XMP_Int32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMP__Error.html#a56aaa6fc6644ccfc9470ae1af8f3a8cd">GetID</a> () const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieves the numeric code from an <a class="el" href="classXMP__Error.html" title="XMP Toolkit error, associates an error code with a descriptive error string.">XMP_Error</a>. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9a3560c67612dec9a6ca37c34eb2c153"></a><!-- doxytag: member="XMP_Error::GetErrMsg" ref="a9a3560c67612dec9a6ca37c34eb2c153" args="() const " -->
-<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMP__Error.html#a9a3560c67612dec9a6ca37c34eb2c153">GetErrMsg</a> () const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieves the descriptive string from an <a class="el" href="classXMP__Error.html" title="XMP Toolkit error, associates an error code with a descriptive error string.">XMP_Error</a>. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5a0651a9615a6a60e467a96ddb43a6bb"></a><!-- doxytag: member="XMP_Error::IsNotified" ref="a5a0651a9615a6a60e467a96ddb43a6bb" args="() const " -->
-XMP_Bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMP__Error.html#a5a0651a9615a6a60e467a96ddb43a6bb">IsNotified</a> () const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieves the information whether particular error is notified or not. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9c368db94ca63ad7b9b118051d1f8897"></a><!-- doxytag: member="XMP_Error::SetNotified" ref="a9c368db94ca63ad7b9b118051d1f8897" args="()" -->
-void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMP__Error.html#a9c368db94ca63ad7b9b118051d1f8897">SetNotified</a> ()</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the notification status for an error. <br/></td></tr>
-<tr><td colspan="2"><h2>Private Attributes</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aad714bd7c428e10eff07a8ab6a4f3125"></a><!-- doxytag: member="XMP_Error::id" ref="aad714bd7c428e10eff07a8ab6a4f3125" args="" -->
-XMP_Int32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMP__Error.html#aad714bd7c428e10eff07a8ab6a4f3125">id</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Exception code. See constants <code><a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14813595824de97382fffeae7b6fe581" title="Generic unknown error.">kXMPErr_Unknown</a></code> and following. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMP__Error.html#a31fd80098e50026985e05abd16f3e045">errMsg</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2b884dfb0b39689d1cf95105eadc4571"></a><!-- doxytag: member="XMP_Error::notified" ref="a2b884dfb0b39689d1cf95105eadc4571" args="" -->
-XMP_Bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMP__Error.html#a2b884dfb0b39689d1cf95105eadc4571">notified</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Variable to store whether this particular error is notified to user or not. <br/></td></tr>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:aa8b3b859899759d679b00237254e30aa"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMP__Error.html#aa8b3b859899759d679b00237254e30aa">XMP_Error</a> (XMP_Int32 _id, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> _errMsg)</td></tr>
+<tr class="memdesc:aa8b3b859899759d679b00237254e30aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor for an <a class="el" href="classXMP__Error.html" title="XMP Toolkit error, associates an error code with a descriptive error string. ">XMP_Error</a>. <a href="#aa8b3b859899759d679b00237254e30aa">More...</a><br /></td></tr>
+<tr class="separator:aa8b3b859899759d679b00237254e30aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a56aaa6fc6644ccfc9470ae1af8f3a8cd"><td class="memItemLeft" align="right" valign="top">XMP_Int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMP__Error.html#a56aaa6fc6644ccfc9470ae1af8f3a8cd">GetID</a> () const </td></tr>
+<tr class="memdesc:a56aaa6fc6644ccfc9470ae1af8f3a8cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves the numeric code from an <a class="el" href="classXMP__Error.html" title="XMP Toolkit error, associates an error code with a descriptive error string. ">XMP_Error</a>. <a href="#a56aaa6fc6644ccfc9470ae1af8f3a8cd">More...</a><br /></td></tr>
+<tr class="separator:a56aaa6fc6644ccfc9470ae1af8f3a8cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9a3560c67612dec9a6ca37c34eb2c153"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMP__Error.html#a9a3560c67612dec9a6ca37c34eb2c153">GetErrMsg</a> () const </td></tr>
+<tr class="memdesc:a9a3560c67612dec9a6ca37c34eb2c153"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves the descriptive string from an <a class="el" href="classXMP__Error.html" title="XMP Toolkit error, associates an error code with a descriptive error string. ">XMP_Error</a>. <a href="#a9a3560c67612dec9a6ca37c34eb2c153">More...</a><br /></td></tr>
+<tr class="separator:a9a3560c67612dec9a6ca37c34eb2c153"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a0651a9615a6a60e467a96ddb43a6bb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMP__Error.html#a5a0651a9615a6a60e467a96ddb43a6bb">IsNotified</a> () const </td></tr>
+<tr class="memdesc:a5a0651a9615a6a60e467a96ddb43a6bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves the information whether particular error is notified or not. <a href="#a5a0651a9615a6a60e467a96ddb43a6bb">More...</a><br /></td></tr>
+<tr class="separator:a5a0651a9615a6a60e467a96ddb43a6bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9c368db94ca63ad7b9b118051d1f8897"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMP__Error.html#a9c368db94ca63ad7b9b118051d1f8897">SetNotified</a> ()</td></tr>
+<tr class="memdesc:a9c368db94ca63ad7b9b118051d1f8897"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the notification status for an error. <a href="#a9c368db94ca63ad7b9b118051d1f8897">More...</a><br /></td></tr>
+<tr class="separator:a9c368db94ca63ad7b9b118051d1f8897"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
+Private Attributes</h2></td></tr>
+<tr class="memitem:aad714bd7c428e10eff07a8ab6a4f3125"><td class="memItemLeft" align="right" valign="top">XMP_Int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMP__Error.html#aad714bd7c428e10eff07a8ab6a4f3125">id</a></td></tr>
+<tr class="memdesc:aad714bd7c428e10eff07a8ab6a4f3125"><td class="mdescLeft">&#160;</td><td class="mdescRight">Exception code. See constants <code><a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14813595824de97382fffeae7b6fe581" title="Generic unknown error. ">kXMPErr_Unknown</a></code> and following. <a href="#aad714bd7c428e10eff07a8ab6a4f3125">More...</a><br /></td></tr>
+<tr class="separator:aad714bd7c428e10eff07a8ab6a4f3125"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a31fd80098e50026985e05abd16f3e045"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMP__Error.html#a31fd80098e50026985e05abd16f3e045">errMsg</a></td></tr>
+<tr class="separator:a31fd80098e50026985e05abd16f3e045"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2b884dfb0b39689d1cf95105eadc4571"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMP__Error.html#a2b884dfb0b39689d1cf95105eadc4571">notified</a></td></tr>
+<tr class="memdesc:a2b884dfb0b39689d1cf95105eadc4571"><td class="mdescLeft">&#160;</td><td class="mdescRight">Variable to store whether this particular error is notified to user or not. <a href="#a2b884dfb0b39689d1cf95105eadc4571">More...</a><br /></td></tr>
+<tr class="separator:a2b884dfb0b39689d1cf95105eadc4571"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
-<hr/><a name="_details"></a><h2>Detailed Description</h2>
-<p>XMP Toolkit error, associates an error code with a descriptive error string. </p>
-<hr/><h2>Constructor &amp; Destructor Documentation</h2>
-<a class="anchor" id="aa8b3b859899759d679b00237254e30aa"></a><!-- doxytag: member="XMP_Error::XMP_Error" ref="aa8b3b859899759d679b00237254e30aa" args="(XMP_Int32 _id, XMP_StringPtr _errMsg)" -->
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>XMP Toolkit error, associates an error code with a descriptive error string. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01314">1314</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="aa8b3b859899759d679b00237254e30aa"></a>
<div class="memitem">
<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">XMP_Error::XMP_Error </td>
<td>(</td>
- <td class="paramtype">XMP_Int32&nbsp;</td>
- <td class="paramname"> <em>_id</em>, </td>
+ <td class="paramtype">XMP_Int32&#160;</td>
+ <td class="paramname"><em>_id</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td>
- <td class="paramname"> <em>_errMsg</em></td><td>&nbsp;</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
+ <td class="paramname"><em>_errMsg</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td><code> [inline]</code></td>
+ <td></td><td></td>
</tr>
</table>
-</div>
-<div class="memdoc">
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
-<p>Constructor for an <a class="el" href="classXMP__Error.html" title="XMP Toolkit error, associates an error code with a descriptive error string.">XMP_Error</a>. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>_id</em>&nbsp;</td><td>The numeric code.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>_errMsg</em>&nbsp;</td><td>The descriptive string, for debugging use only. It must not be shown to users in a final product. It is written for developers, not users, and never localized. </td></tr>
+<p>Constructor for an <a class="el" href="classXMP__Error.html" title="XMP Toolkit error, associates an error code with a descriptive error string. ">XMP_Error</a>. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">_id</td><td>The numeric code.</td></tr>
+ <tr><td class="paramname">_errMsg</td><td>The descriptive string, for debugging use only. It must not be shown to users in a final product. It is written for developers, not users, and never localized. </td></tr>
</table>
</dd>
</dl>
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01323">1323</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160;: <a class="code" href="classXMP__Error.html#aad714bd7c428e10eff07a8ab6a4f3125">id</a>(_id), <a class="code" href="classXMP__Error.html#a31fd80098e50026985e05abd16f3e045">errMsg</a>(_errMsg), <a class="code" href="classXMP__Error.html#a2b884dfb0b39689d1cf95105eadc4571">notified</a>(<span class="keyword">false</span>) {};</div><div class="ttc" id="classXMP__Error_html_a31fd80098e50026985e05abd16f3e045"><div class="ttname"><a href="classXMP__Error.html#a31fd80098e50026985e05abd16f3e045">XMP_Error::errMsg</a></div><div class="ttdeci">XMP_StringPtr errMsg</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01342">XMP_Const.h:1342</a></div></div>
+<div class="ttc" id="classXMP__Error_html_a2b884dfb0b39689d1cf95105eadc4571"><div class="ttname"><a href="classXMP__Error.html#a2b884dfb0b39689d1cf95105eadc4571">XMP_Error::notified</a></div><div class="ttdeci">XMP_Bool notified</div><div class="ttdoc">Variable to store whether this particular error is notified to user or not. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01344">XMP_Const.h:1344</a></div></div>
+<div class="ttc" id="classXMP__Error_html_aad714bd7c428e10eff07a8ab6a4f3125"><div class="ttname"><a href="classXMP__Error.html#aad714bd7c428e10eff07a8ab6a4f3125">XMP_Error::id</a></div><div class="ttdeci">XMP_Int32 id</div><div class="ttdoc">Exception code. See constants kXMPErr_Unknown and following. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01335">XMP_Const.h:1335</a></div></div>
+</div><!-- fragment -->
</div>
</div>
-<hr/><h2>Member Data Documentation</h2>
-<a class="anchor" id="a31fd80098e50026985e05abd16f3e045"></a><!-- doxytag: member="XMP_Error::errMsg" ref="a31fd80098e50026985e05abd16f3e045" args="" -->
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a9a3560c67612dec9a6ca37c34eb2c153"></a>
<div class="memitem">
<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> <a class="el" href="classXMP__Error.html#a31fd80098e50026985e05abd16f3e045">XMP_Error::errMsg</a><code> [private]</code></td>
+ <td class="memname"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> XMP_Error::GetErrMsg </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
</tr>
</table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Retrieves the descriptive string from an <a class="el" href="classXMP__Error.html" title="XMP Toolkit error, associates an error code with a descriptive error string. ">XMP_Error</a>. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01329">1329</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160;{ <span class="keywordflow">return</span> <a class="code" href="classXMP__Error.html#a31fd80098e50026985e05abd16f3e045">errMsg</a>; };</div><div class="ttc" id="classXMP__Error_html_a31fd80098e50026985e05abd16f3e045"><div class="ttname"><a href="classXMP__Error.html#a31fd80098e50026985e05abd16f3e045">XMP_Error::errMsg</a></div><div class="ttdeci">XMP_StringPtr errMsg</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01342">XMP_Const.h:1342</a></div></div>
+</div><!-- fragment -->
+</div>
</div>
-<div class="memdoc">
+<a class="anchor" id="a56aaa6fc6644ccfc9470ae1af8f3a8cd"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">XMP_Int32 XMP_Error::GetID </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Retrieves the numeric code from an <a class="el" href="classXMP__Error.html" title="XMP Toolkit error, associates an error code with a descriptive error string. ">XMP_Error</a>. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01326">1326</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160;{ <span class="keywordflow">return</span> <a class="code" href="classXMP__Error.html#aad714bd7c428e10eff07a8ab6a4f3125">id</a>; };</div><div class="ttc" id="classXMP__Error_html_aad714bd7c428e10eff07a8ab6a4f3125"><div class="ttname"><a href="classXMP__Error.html#aad714bd7c428e10eff07a8ab6a4f3125">XMP_Error::id</a></div><div class="ttdeci">XMP_Int32 id</div><div class="ttdoc">Exception code. See constants kXMPErr_Unknown and following. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01335">XMP_Const.h:1335</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a5a0651a9615a6a60e467a96ddb43a6bb"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a> XMP_Error::IsNotified </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Retrieves the information whether particular error is notified or not. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01332">1332</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160;{ <span class="keywordflow">return</span> <a class="code" href="classXMP__Error.html#a2b884dfb0b39689d1cf95105eadc4571">notified</a>; }</div><div class="ttc" id="classXMP__Error_html_a2b884dfb0b39689d1cf95105eadc4571"><div class="ttname"><a href="classXMP__Error.html#a2b884dfb0b39689d1cf95105eadc4571">XMP_Error::notified</a></div><div class="ttdeci">XMP_Bool notified</div><div class="ttdoc">Variable to store whether this particular error is notified to user or not. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01344">XMP_Const.h:1344</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a9c368db94ca63ad7b9b118051d1f8897"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">void XMP_Error::SetNotified </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Sets the notification status for an error. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01335">1335</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160;{ <a class="code" href="classXMP__Error.html#a2b884dfb0b39689d1cf95105eadc4571">notified</a> = <span class="keyword">true</span>; };</div><div class="ttc" id="classXMP__Error_html_a2b884dfb0b39689d1cf95105eadc4571"><div class="ttname"><a href="classXMP__Error.html#a2b884dfb0b39689d1cf95105eadc4571">XMP_Error::notified</a></div><div class="ttdeci">XMP_Bool notified</div><div class="ttdoc">Variable to store whether this particular error is notified to user or not. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01344">XMP_Const.h:1344</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a class="anchor" id="a31fd80098e50026985e05abd16f3e045"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> XMP_Error::errMsg</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
<p>Descriptive string, for debugging use only. It must not be shown to users in a final product. It is written for developers, not users, and never localized. </p>
-<p>Referenced by <a class="el" href="XMP__Const_8h_source.html#l01320">GetErrMsg()</a>.</p>
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01342">1342</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aad714bd7c428e10eff07a8ab6a4f3125"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">XMP_Int32 XMP_Error::id</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Exception code. See constants <code><a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14813595824de97382fffeae7b6fe581" title="Generic unknown error. ">kXMPErr_Unknown</a></code> and following. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01335">1335</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2b884dfb0b39689d1cf95105eadc4571"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a> XMP_Error::notified</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Variable to store whether this particular error is notified to user or not. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01344">1344</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
-<li><a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a></li>
+<li>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/<a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a></li>
</ul>
-</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
</body>
</html>
diff --git a/docs/API/classXMP__Error.js b/docs/API/classXMP__Error.js
new file mode 100755
index 0000000..614aac5
--- /dev/null
+++ b/docs/API/classXMP__Error.js
@@ -0,0 +1,11 @@
+var classXMP__Error =
+[
+ [ "XMP_Error", "classXMP__Error.html#aa8b3b859899759d679b00237254e30aa", null ],
+ [ "GetErrMsg", "classXMP__Error.html#a9a3560c67612dec9a6ca37c34eb2c153", null ],
+ [ "GetID", "classXMP__Error.html#a56aaa6fc6644ccfc9470ae1af8f3a8cd", null ],
+ [ "IsNotified", "classXMP__Error.html#a5a0651a9615a6a60e467a96ddb43a6bb", null ],
+ [ "SetNotified", "classXMP__Error.html#a9c368db94ca63ad7b9b118051d1f8897", null ],
+ [ "errMsg", "classXMP__Error.html#a31fd80098e50026985e05abd16f3e045", null ],
+ [ "id", "classXMP__Error.html#aad714bd7c428e10eff07a8ab6a4f3125", null ],
+ [ "notified", "classXMP__Error.html#a2b884dfb0b39689d1cf95105eadc4571", null ]
+]; \ No newline at end of file
diff --git a/docs/API/classXMP__IO-members.html b/docs/API/classXMP__IO-members.html
new file mode 100755
index 0000000..ebcbb1f
--- /dev/null
+++ b/docs/API/classXMP__IO-members.html
@@ -0,0 +1,70 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classXMP__IO.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">XMP_IO Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classXMP__IO.html">XMP_IO</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classXMP__IO.html#aad4cf42485e9d8319a07f4ecdde4ee34">AbsorbTemp</a>()=0</td><td class="entry"><a class="el" href="classXMP__IO.html">XMP_IO</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classXMP__IO.html#a337ddf3f954d2b4e8dce1d70d8c33ddb">DeleteTemp</a>()=0</td><td class="entry"><a class="el" href="classXMP__IO.html">XMP_IO</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classXMP__IO.html#ac989de23f8fed2efcca71f5a3aa35695">DeriveTemp</a>()=0</td><td class="entry"><a class="el" href="classXMP__IO.html">XMP_IO</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classXMP__IO.html#af77f9218892471ffad4586413ecd0dcaa148a2bca28df5b2d143590aae5153b55">kReadAll</a> enum value</td><td class="entry"><a class="el" href="classXMP__IO.html">XMP_IO</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classXMP__IO.html#af4fe442d5f7ea3d062bb5dfeadfa2335">Length</a>()=0</td><td class="entry"><a class="el" href="classXMP__IO.html">XMP_IO</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classXMP__IO.html#aa14274c6ed95da83a95e8786b7b1a91e">Offset</a>()</td><td class="entry"><a class="el" href="classXMP__IO.html">XMP_IO</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classXMP__IO.html#a18227546a6e759409dfd48a00b9a0748">operator=</a>(const XMP_IO &amp;in)</td><td class="entry"><a class="el" href="classXMP__IO.html">XMP_IO</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classXMP__IO.html#a0a0db95509e567f29f34570d5042aa54">Read</a>(void *buffer, XMP_Uns32 count, bool readAll=false)=0</td><td class="entry"><a class="el" href="classXMP__IO.html">XMP_IO</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classXMP__IO.html#a0d0b45799793c5fa3dc567556f93cceb">ReadAll</a>(void *buffer, XMP_Uns32 bytes)</td><td class="entry"><a class="el" href="classXMP__IO.html">XMP_IO</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classXMP__IO.html#a456f92ca90a83095dbd90786a26b64e1">Rewind</a>()</td><td class="entry"><a class="el" href="classXMP__IO.html">XMP_IO</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classXMP__IO.html#a9c05bb22ecc75e71ecc546bcb756d628">Seek</a>(XMP_Int64 offset, SeekMode mode)=0</td><td class="entry"><a class="el" href="classXMP__IO.html">XMP_IO</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classXMP__IO.html#a51b53ca05c5627da08cd934a9ed8b281">ToEOF</a>()</td><td class="entry"><a class="el" href="classXMP__IO.html">XMP_IO</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classXMP__IO.html#af7dc2bd067498a651597a6b128f02dbb">Truncate</a>(XMP_Int64 length)=0</td><td class="entry"><a class="el" href="classXMP__IO.html">XMP_IO</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classXMP__IO.html#ab48d705ca0e3fb22d84c7a323951f8e4">Write</a>(const void *buffer, XMP_Uns32 count)=0</td><td class="entry"><a class="el" href="classXMP__IO.html">XMP_IO</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classXMP__IO.html#a38ca896e79705a0e4228eb67d3426c65">XMP_IO</a>()</td><td class="entry"><a class="el" href="classXMP__IO.html">XMP_IO</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classXMP__IO.html#a4d2db45adc8f5bbe761434d4a8506d07">XMP_IO</a>(const XMP_IO &amp;original)</td><td class="entry"><a class="el" href="classXMP__IO.html">XMP_IO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classXMP__IO.html#a52825d62e1a93ae1ee157d68860b6815">~XMP_IO</a>()</td><td class="entry"><a class="el" href="classXMP__IO.html">XMP_IO</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classXMP__IO.html b/docs/API/classXMP__IO.html
new file mode 100755
index 0000000..e29ecb9
--- /dev/null
+++ b/docs/API/classXMP__IO.html
@@ -0,0 +1,676 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>XMP_IO Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classXMP__IO.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pub-types">Public Types</a> &#124;
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pri-methods">Private Member Functions</a> &#124;
+<a href="classXMP__IO-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">XMP_IO Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Abstract base class for client-managed I/O with <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file. ">TXMPFiles</a></code>.
+ <a href="classXMP__IO.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="XMP__IO_8hpp_source.html">XMP_IO.hpp</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr class="memitem:af77f9218892471ffad4586413ecd0dca"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="classXMP__IO.html#af77f9218892471ffad4586413ecd0dcaa148a2bca28df5b2d143590aae5153b55">kReadAll</a> = true
+ }<tr class="memdesc:af77f9218892471ffad4586413ecd0dca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read into a buffer, returning the number of bytes read. <a href="classXMP__IO.html#af77f9218892471ffad4586413ecd0dca">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:af77f9218892471ffad4586413ecd0dca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a0a0db95509e567f29f34570d5042aa54"><td class="memItemLeft" align="right" valign="top">virtual XMP_Uns32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMP__IO.html#a0a0db95509e567f29f34570d5042aa54">Read</a> (void *buffer, XMP_Uns32 count, bool readAll=false)=0</td></tr>
+<tr class="separator:a0a0db95509e567f29f34570d5042aa54"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0d0b45799793c5fa3dc567556f93cceb"><td class="memItemLeft" align="right" valign="top">XMP_Uns32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMP__IO.html#a0d0b45799793c5fa3dc567556f93cceb">ReadAll</a> (void *buffer, XMP_Uns32 bytes)</td></tr>
+<tr class="separator:a0d0b45799793c5fa3dc567556f93cceb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab48d705ca0e3fb22d84c7a323951f8e4"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMP__IO.html#ab48d705ca0e3fb22d84c7a323951f8e4">Write</a> (const void *buffer, XMP_Uns32 count)=0</td></tr>
+<tr class="memdesc:ab48d705ca0e3fb22d84c7a323951f8e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write from a buffer. <a href="#ab48d705ca0e3fb22d84c7a323951f8e4">More...</a><br /></td></tr>
+<tr class="separator:ab48d705ca0e3fb22d84c7a323951f8e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9c05bb22ecc75e71ecc546bcb756d628"><td class="memItemLeft" align="right" valign="top">virtual XMP_Int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMP__IO.html#a9c05bb22ecc75e71ecc546bcb756d628">Seek</a> (XMP_Int64 offset, <a class="el" href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563f">SeekMode</a> mode)=0</td></tr>
+<tr class="memdesc:a9c05bb22ecc75e71ecc546bcb756d628"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the I/O position, returning the new absolute offset in bytes. <a href="#a9c05bb22ecc75e71ecc546bcb756d628">More...</a><br /></td></tr>
+<tr class="separator:a9c05bb22ecc75e71ecc546bcb756d628"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa14274c6ed95da83a95e8786b7b1a91e"><td class="memItemLeft" align="right" valign="top">XMP_Int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMP__IO.html#aa14274c6ed95da83a95e8786b7b1a91e">Offset</a> ()</td></tr>
+<tr class="separator:aa14274c6ed95da83a95e8786b7b1a91e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a456f92ca90a83095dbd90786a26b64e1"><td class="memItemLeft" align="right" valign="top">XMP_Int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMP__IO.html#a456f92ca90a83095dbd90786a26b64e1">Rewind</a> ()</td></tr>
+<tr class="separator:a456f92ca90a83095dbd90786a26b64e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a51b53ca05c5627da08cd934a9ed8b281"><td class="memItemLeft" align="right" valign="top">XMP_Int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMP__IO.html#a51b53ca05c5627da08cd934a9ed8b281">ToEOF</a> ()</td></tr>
+<tr class="separator:a51b53ca05c5627da08cd934a9ed8b281"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af4fe442d5f7ea3d062bb5dfeadfa2335"><td class="memItemLeft" align="right" valign="top">virtual XMP_Int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMP__IO.html#af4fe442d5f7ea3d062bb5dfeadfa2335">Length</a> ()=0</td></tr>
+<tr class="memdesc:af4fe442d5f7ea3d062bb5dfeadfa2335"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the length of the file in bytes. <a href="#af4fe442d5f7ea3d062bb5dfeadfa2335">More...</a><br /></td></tr>
+<tr class="separator:af4fe442d5f7ea3d062bb5dfeadfa2335"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af7dc2bd067498a651597a6b128f02dbb"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMP__IO.html#af7dc2bd067498a651597a6b128f02dbb">Truncate</a> (XMP_Int64 length)=0</td></tr>
+<tr class="memdesc:af7dc2bd067498a651597a6b128f02dbb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Truncate the file to the given length. <a href="#af7dc2bd067498a651597a6b128f02dbb">More...</a><br /></td></tr>
+<tr class="separator:af7dc2bd067498a651597a6b128f02dbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac989de23f8fed2efcca71f5a3aa35695"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classXMP__IO.html">XMP_IO</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMP__IO.html#ac989de23f8fed2efcca71f5a3aa35695">DeriveTemp</a> ()=0</td></tr>
+<tr class="memdesc:ac989de23f8fed2efcca71f5a3aa35695"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an associated temp file for use in a safe-save style operation. <a href="#ac989de23f8fed2efcca71f5a3aa35695">More...</a><br /></td></tr>
+<tr class="separator:ac989de23f8fed2efcca71f5a3aa35695"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aad4cf42485e9d8319a07f4ecdde4ee34"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMP__IO.html#aad4cf42485e9d8319a07f4ecdde4ee34">AbsorbTemp</a> ()=0</td></tr>
+<tr class="memdesc:aad4cf42485e9d8319a07f4ecdde4ee34"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replace the owning file's content with that of the temp. <a href="#aad4cf42485e9d8319a07f4ecdde4ee34">More...</a><br /></td></tr>
+<tr class="separator:aad4cf42485e9d8319a07f4ecdde4ee34"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a337ddf3f954d2b4e8dce1d70d8c33ddb"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMP__IO.html#a337ddf3f954d2b4e8dce1d70d8c33ddb">DeleteTemp</a> ()=0</td></tr>
+<tr class="memdesc:a337ddf3f954d2b4e8dce1d70d8c33ddb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete a temp file, leaving the original alone. <a href="#a337ddf3f954d2b4e8dce1d70d8c33ddb">More...</a><br /></td></tr>
+<tr class="separator:a337ddf3f954d2b4e8dce1d70d8c33ddb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a38ca896e79705a0e4228eb67d3426c65"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMP__IO.html#a38ca896e79705a0e4228eb67d3426c65">XMP_IO</a> ()</td></tr>
+<tr class="separator:a38ca896e79705a0e4228eb67d3426c65"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a52825d62e1a93ae1ee157d68860b6815"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMP__IO.html#a52825d62e1a93ae1ee157d68860b6815">~XMP_IO</a> ()</td></tr>
+<tr class="separator:a52825d62e1a93ae1ee157d68860b6815"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
+Private Member Functions</h2></td></tr>
+<tr class="memitem:a4d2db45adc8f5bbe761434d4a8506d07"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMP__IO.html#a4d2db45adc8f5bbe761434d4a8506d07">XMP_IO</a> (const <a class="el" href="classXMP__IO.html">XMP_IO</a> &amp;original)</td></tr>
+<tr class="separator:a4d2db45adc8f5bbe761434d4a8506d07"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a18227546a6e759409dfd48a00b9a0748"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMP__IO.html#a18227546a6e759409dfd48a00b9a0748">operator=</a> (const <a class="el" href="classXMP__IO.html">XMP_IO</a> &amp;in)</td></tr>
+<tr class="separator:a18227546a6e759409dfd48a00b9a0748"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Abstract base class for client-managed I/O with <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file. ">TXMPFiles</a></code>. </p>
+<p><code><a class="el" href="classXMP__IO.html" title="Abstract base class for client-managed I/O with TXMPFiles. ">XMP_IO</a></code> is an abstract base class for client-managed I/O with <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file. ">TXMPFiles</a></code>. This allows a client to use the embedded metadata processing logic of <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file. ">TXMPFiles</a></code> in cases where a string file path cannot be provided, or where it is impractical to allow <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file. ">TXMPFiles</a></code> to separately open the file and do its own I/O. Although described in terms of files, any form of storage may be used as long as the functions operate as defined.</p>
+<p>This is not a general purpose I/O class. It contains only the necessary functions needed by the internals of <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file. ">TXMPFiles</a></code>. It is intended to be used as an adaptor for an existing I/O mechanism that the client wants <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file. ">TXMPFiles</a></code> to use.</p>
+<p>To use <code><a class="el" href="classXMP__IO.html" title="Abstract base class for client-managed I/O with TXMPFiles. ">XMP_IO</a></code>, a client creates a derived class then uses the form of <code>TCMPFiles::OpenFile</code> that takes an <code><a class="el" href="classXMP__IO.html" title="Abstract base class for client-managed I/O with TXMPFiles. ">XMP_IO</a></code> parameter instead of a string file path. The derived <code><a class="el" href="classXMP__IO.html" title="Abstract base class for client-managed I/O with TXMPFiles. ">XMP_IO</a></code> object must be ready for use when <code>TCMPFiles::OpenFile</code> is called.</p>
+<p>There are no Open or Close functions in <code><a class="el" href="classXMP__IO.html" title="Abstract base class for client-managed I/O with TXMPFiles. ">XMP_IO</a></code>, they are specific to each implementation. The derived <code><a class="el" href="classXMP__IO.html" title="Abstract base class for client-managed I/O with TXMPFiles. ">XMP_IO</a></code> object must be open and ready for use before being passed to <code>TXMP_Files::OpenFile</code>, and remain open and ready for use until <code>TXMP_Files::CloseFile</code> returns, or some other fatal error occurs. The client has final responsibility for closing and terminating the derived <code><a class="el" href="classXMP__IO.html" title="Abstract base class for client-managed I/O with TXMPFiles. ">XMP_IO</a></code> object. </p>
+
+<p>Definition at line <a class="el" href="XMP__IO_8hpp_source.html#l00042">42</a> of file <a class="el" href="XMP__IO_8hpp_source.html">XMP_IO.hpp</a>.</p>
+</div><h2 class="groupheader">Member Enumeration Documentation</h2>
+<a class="anchor" id="af77f9218892471ffad4586413ecd0dca"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">anonymous enum</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Read into a buffer, returning the number of bytes read. </p>
+<p>Read into a buffer, returning the number of bytes read. Returns the actual number of bytes read. Throws an exception if requireSuccess is true and not enough data is available. Throwing <code>XMPError</code> is recommended. The buffer content and I/O position after a throw are undefined.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">buffer</td><td>A pointer to the buffer. </td></tr>
+ <tr><td class="paramname">count</td><td>The length of the buffer in bytes. </td></tr>
+ <tr><td class="paramname">readAll</td><td>True if reading less than the requested amount is a failure.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Returns the number of bytes read. </dd></dl>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="af77f9218892471ffad4586413ecd0dcaa148a2bca28df5b2d143590aae5153b55"></a>kReadAll&#160;</td><td class="fielddoc">
+</td></tr>
+</table>
+
+<p>Definition at line <a class="el" href="XMP__IO_8hpp_source.html#l00059">59</a> of file <a class="el" href="XMP__IO_8hpp_source.html">XMP_IO.hpp</a>.</p>
+<div class="fragment"><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;{ <a class="code" href="classXMP__IO.html#af77f9218892471ffad4586413ecd0dcaa148a2bca28df5b2d143590aae5153b55">kReadAll</a> = <span class="keyword">true</span> };</div><div class="ttc" id="classXMP__IO_html_af77f9218892471ffad4586413ecd0dcaa148a2bca28df5b2d143590aae5153b55"><div class="ttname"><a href="classXMP__IO.html#af77f9218892471ffad4586413ecd0dcaa148a2bca28df5b2d143590aae5153b55">XMP_IO::kReadAll</a></div><div class="ttdef"><b>Definition:</b> <a href="XMP__IO_8hpp_source.html#l00059">XMP_IO.hpp:59</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a38ca896e79705a0e4228eb67d3426c65"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">XMP_IO::XMP_IO </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__IO_8hpp_source.html#l00157">157</a> of file <a class="el" href="XMP__IO_8hpp_source.html">XMP_IO.hpp</a>.</p>
+
+<p>Referenced by <a class="el" href="XMP__IO_8hpp_source.html#l00158">~XMP_IO()</a>.</p>
+<div class="fragment"><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;{};</div></div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a52825d62e1a93ae1ee157d68860b6815"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual XMP_IO::~XMP_IO </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__IO_8hpp_source.html#l00158">158</a> of file <a class="el" href="XMP__IO_8hpp_source.html">XMP_IO.hpp</a>.</p>
+
+<p>References <a class="el" href="XMP__IO_8hpp_source.html#l00157">XMP_IO()</a>.</p>
+<div class="fragment"><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;{};</div></div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a4d2db45adc8f5bbe761434d4a8506d07"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">XMP_IO::XMP_IO </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classXMP__IO.html">XMP_IO</a> &amp;&#160;</td>
+ <td class="paramname"><em>original</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Copy construction and assignment are not public. That would require the implementation to share state across multiple <a class="el" href="classXMP__IO.html" title="Abstract base class for client-managed I/O with TXMPFiles. ">XMP_IO</a> objects. </p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="aad4cf42485e9d8319a07f4ecdde4ee34"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void XMP_IO::AbsorbTemp </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Replace the owning file's content with that of the temp. </p>
+<p>Used at the end of a safe-save style operation to replace the original content with that from the associated temp file. The temp file must be closed and deleted after the content swap. The temporary <code><a class="el" href="classXMP__IO.html" title="Abstract base class for client-managed I/O with TXMPFiles. ">XMP_IO</a></code> object is deleted. Throws an exception if the temp file cannot be absorbed. Throwing <code>XMPError</code> is recommended. </p>
+
+<p>Referenced by <a class="el" href="XMP__IO_8hpp_source.html#l00094">ToEOF()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a337ddf3f954d2b4e8dce1d70d8c33ddb"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void XMP_IO::DeleteTemp </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Delete a temp file, leaving the original alone. </p>
+<p>Used for a failed safe-save style operation. The temp file is closed and deleted without being absorbed, and the temporary <code><a class="el" href="classXMP__IO.html" title="Abstract base class for client-managed I/O with TXMPFiles. ">XMP_IO</a></code> object is deleted. Does nothing if no temp exists. </p>
+
+<p>Referenced by <a class="el" href="XMP__IO_8hpp_source.html#l00094">ToEOF()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac989de23f8fed2efcca71f5a3aa35695"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="classXMP__IO.html">XMP_IO</a>* XMP_IO::DeriveTemp </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Create an associated temp file for use in a safe-save style operation. </p>
+<p>Create an associated temp file, for example in the same directory and with a related name. Returns an already existing temp with no other action. The temp must be opened for read-write access. It will be used in a safe-save style operation, using some of the original file plus new portions to write the temp, then replacing the original from the temp when done. Throws an exception if the owning object is opened for read-only access, or if the temp file cannot be created. Throwing <code>XMPError</code> is recommended.</p>
+<p>The temp file is normally closed and deleted, and the temporary <code><a class="el" href="classXMP__IO.html" title="Abstract base class for client-managed I/O with TXMPFiles. ">XMP_IO</a></code> object deleted, by a call to <code>AbsorbTemp</code> or <code>DeleteTemp</code>. It must be closed and deleted by the derived <code><a class="el" href="classXMP__IO.html" title="Abstract base class for client-managed I/O with TXMPFiles. ">XMP_IO</a></code> object's destructor if necessary.</p>
+<p><code>DeriveTemp</code> may be called on a temporary <code><a class="el" href="classXMP__IO.html" title="Abstract base class for client-managed I/O with TXMPFiles. ">XMP_IO</a></code> object.</p>
+<dl class="section return"><dt>Returns</dt><dd>A pointer to the associated temporary <code><a class="el" href="classXMP__IO.html" title="Abstract base class for client-managed I/O with TXMPFiles. ">XMP_IO</a></code> object. </dd></dl>
+
+<p>Referenced by <a class="el" href="XMP__IO_8hpp_source.html#l00094">ToEOF()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af4fe442d5f7ea3d062bb5dfeadfa2335"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual XMP_Int64 XMP_IO::Length </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Return the length of the file in bytes. </p>
+<p>Return the length of the file in bytes. The I/O position is unchanged.</p>
+<dl class="section return"><dt>Returns</dt><dd>The length of the file in bytes. </dd></dl>
+
+<p>Referenced by <a class="el" href="XMP__IO_8hpp_source.html#l00094">ToEOF()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa14274c6ed95da83a95e8786b7b1a91e"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">XMP_Int64 XMP_IO::Offset </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__IO_8hpp_source.html#l00092">92</a> of file <a class="el" href="XMP__IO_8hpp_source.html">XMP_IO.hpp</a>.</p>
+
+<p>References <a class="el" href="XMP__Const_8h_source.html#l00867">kXMP_SeekFromCurrent</a>, and <a class="el" href="classXMP__IO.html#a9c05bb22ecc75e71ecc546bcb756d628">Seek()</a>.</p>
+<div class="fragment"><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;{ <span class="keywordflow">return</span> this-&gt;<a class="code" href="classXMP__IO.html#a9c05bb22ecc75e71ecc546bcb756d628">Seek</a> ( 0, <a class="code" href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563fa4e179367a02390075e632aca6e115925">kXMP_SeekFromCurrent</a> ); };</div><div class="ttc" id="XMP__Const_8h_html_a84d76d32dd4ef90e5a90cf759b7e563fa4e179367a02390075e632aca6e115925"><div class="ttname"><a href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563fa4e179367a02390075e632aca6e115925">kXMP_SeekFromCurrent</a></div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00867">XMP_Const.h:867</a></div></div>
+<div class="ttc" id="classXMP__IO_html_a9c05bb22ecc75e71ecc546bcb756d628"><div class="ttname"><a href="classXMP__IO.html#a9c05bb22ecc75e71ecc546bcb756d628">XMP_IO::Seek</a></div><div class="ttdeci">virtual XMP_Int64 Seek(XMP_Int64 offset, SeekMode mode)=0</div><div class="ttdoc">Set the I/O position, returning the new absolute offset in bytes. </div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a18227546a6e759409dfd48a00b9a0748"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">void XMP_IO::operator= </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classXMP__IO.html">XMP_IO</a> &amp;&#160;</td>
+ <td class="paramname"><em>in</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__IO_8hpp_source.html#l00167">167</a> of file <a class="el" href="XMP__IO_8hpp_source.html">XMP_IO.hpp</a>.</p>
+<div class="fragment"><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;{ *<span class="keyword">this</span> = in; <span class="comment">/* Avoid Win compile warnings. */</span> };</div></div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a0a0db95509e567f29f34570d5042aa54"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual XMP_Uns32 XMP_IO::Read </td>
+ <td>(</td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>buffer</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">XMP_Uns32&#160;</td>
+ <td class="paramname"><em>count</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">bool&#160;</td>
+ <td class="paramname"><em>readAll</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="XMP__IO_8hpp_source.html#l00063">ReadAll()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0d0b45799793c5fa3dc567556f93cceb"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">XMP_Uns32 XMP_IO::ReadAll </td>
+ <td>(</td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>buffer</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">XMP_Uns32&#160;</td>
+ <td class="paramname"><em>bytes</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__IO_8hpp_source.html#l00063">63</a> of file <a class="el" href="XMP__IO_8hpp_source.html">XMP_IO.hpp</a>.</p>
+
+<p>References <a class="el" href="XMP__IO_8hpp_source.html#l00059">kReadAll</a>, <a class="el" href="classXMP__IO.html#a0a0db95509e567f29f34570d5042aa54">Read()</a>, <a class="el" href="classXMP__IO.html#a9c05bb22ecc75e71ecc546bcb756d628">Seek()</a>, and <a class="el" href="classXMP__IO.html#ab48d705ca0e3fb22d84c7a323951f8e4">Write()</a>.</p>
+<div class="fragment"><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; { <span class="keywordflow">return</span> this-&gt;<a class="code" href="classXMP__IO.html#a0a0db95509e567f29f34570d5042aa54">Read</a> ( buffer, bytes, <a class="code" href="classXMP__IO.html#af77f9218892471ffad4586413ecd0dcaa148a2bca28df5b2d143590aae5153b55">kReadAll</a> ); };</div><div class="ttc" id="classXMP__IO_html_af77f9218892471ffad4586413ecd0dcaa148a2bca28df5b2d143590aae5153b55"><div class="ttname"><a href="classXMP__IO.html#af77f9218892471ffad4586413ecd0dcaa148a2bca28df5b2d143590aae5153b55">XMP_IO::kReadAll</a></div><div class="ttdef"><b>Definition:</b> <a href="XMP__IO_8hpp_source.html#l00059">XMP_IO.hpp:59</a></div></div>
+<div class="ttc" id="classXMP__IO_html_a0a0db95509e567f29f34570d5042aa54"><div class="ttname"><a href="classXMP__IO.html#a0a0db95509e567f29f34570d5042aa54">XMP_IO::Read</a></div><div class="ttdeci">virtual XMP_Uns32 Read(void *buffer, XMP_Uns32 count, bool readAll=false)=0</div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a456f92ca90a83095dbd90786a26b64e1"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">XMP_Int64 XMP_IO::Rewind </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__IO_8hpp_source.html#l00093">93</a> of file <a class="el" href="XMP__IO_8hpp_source.html">XMP_IO.hpp</a>.</p>
+
+<p>References <a class="el" href="XMP__Const_8h_source.html#l00867">kXMP_SeekFromStart</a>, and <a class="el" href="classXMP__IO.html#a9c05bb22ecc75e71ecc546bcb756d628">Seek()</a>.</p>
+<div class="fragment"><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;{ <span class="keywordflow">return</span> this-&gt;<a class="code" href="classXMP__IO.html#a9c05bb22ecc75e71ecc546bcb756d628">Seek</a> ( 0, <a class="code" href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563faf52720b8c894653e4a089a9c0331ee47">kXMP_SeekFromStart</a> ); }; <span class="comment">// Always returns 0.</span></div><div class="ttc" id="XMP__Const_8h_html_a84d76d32dd4ef90e5a90cf759b7e563faf52720b8c894653e4a089a9c0331ee47"><div class="ttname"><a href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563faf52720b8c894653e4a089a9c0331ee47">kXMP_SeekFromStart</a></div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00867">XMP_Const.h:867</a></div></div>
+<div class="ttc" id="classXMP__IO_html_a9c05bb22ecc75e71ecc546bcb756d628"><div class="ttname"><a href="classXMP__IO.html#a9c05bb22ecc75e71ecc546bcb756d628">XMP_IO::Seek</a></div><div class="ttdeci">virtual XMP_Int64 Seek(XMP_Int64 offset, SeekMode mode)=0</div><div class="ttdoc">Set the I/O position, returning the new absolute offset in bytes. </div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a9c05bb22ecc75e71ecc546bcb756d628"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual XMP_Int64 XMP_IO::Seek </td>
+ <td>(</td>
+ <td class="paramtype">XMP_Int64&#160;</td>
+ <td class="paramname"><em>offset</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563f">SeekMode</a>&#160;</td>
+ <td class="paramname"><em>mode</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Set the I/O position, returning the new absolute offset in bytes. </p>
+<p>Set the I/O position, returning the new absolute offset in bytes. The offset parameter may be positive or negative. A seek beyond EOF is allowed when writing and extends the file, it is equivalent to seeking to EOF then writing the needed amount of undefined data. A read-only seek beyond EOF throws an exception. Throwing <code>XMPError</code> is recommended.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">offset</td><td>The offset relative to the mode. </td></tr>
+ <tr><td class="paramname">mode</td><td>The mode, or origin, of the seek.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The new absolute offset in bytes. </dd></dl>
+
+<p>Referenced by <a class="el" href="XMP__IO_8hpp_source.html#l00092">Offset()</a>, <a class="el" href="XMP__IO_8hpp_source.html#l00063">ReadAll()</a>, <a class="el" href="XMP__IO_8hpp_source.html#l00093">Rewind()</a>, and <a class="el" href="XMP__IO_8hpp_source.html#l00094">ToEOF()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a51b53ca05c5627da08cd934a9ed8b281"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">XMP_Int64 XMP_IO::ToEOF </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMP__IO_8hpp_source.html#l00094">94</a> of file <a class="el" href="XMP__IO_8hpp_source.html">XMP_IO.hpp</a>.</p>
+
+<p>References <a class="el" href="classXMP__IO.html#aad4cf42485e9d8319a07f4ecdde4ee34">AbsorbTemp()</a>, <a class="el" href="classXMP__IO.html#a337ddf3f954d2b4e8dce1d70d8c33ddb">DeleteTemp()</a>, <a class="el" href="classXMP__IO.html#ac989de23f8fed2efcca71f5a3aa35695">DeriveTemp()</a>, <a class="el" href="XMP__Const_8h_source.html#l00867">kXMP_SeekFromEnd</a>, <a class="el" href="classXMP__IO.html#af4fe442d5f7ea3d062bb5dfeadfa2335">Length()</a>, <a class="el" href="classXMP__IO.html#a9c05bb22ecc75e71ecc546bcb756d628">Seek()</a>, and <a class="el" href="classXMP__IO.html#af7dc2bd067498a651597a6b128f02dbb">Truncate()</a>.</p>
+<div class="fragment"><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;{ <span class="keywordflow">return</span> this-&gt;<a class="code" href="classXMP__IO.html#a9c05bb22ecc75e71ecc546bcb756d628">Seek</a> ( 0, <a class="code" href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563faeedc991a0194b932ae4a47307843baf6">kXMP_SeekFromEnd</a> ); };</div><div class="ttc" id="XMP__Const_8h_html_a84d76d32dd4ef90e5a90cf759b7e563faeedc991a0194b932ae4a47307843baf6"><div class="ttname"><a href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563faeedc991a0194b932ae4a47307843baf6">kXMP_SeekFromEnd</a></div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00867">XMP_Const.h:867</a></div></div>
+<div class="ttc" id="classXMP__IO_html_a9c05bb22ecc75e71ecc546bcb756d628"><div class="ttname"><a href="classXMP__IO.html#a9c05bb22ecc75e71ecc546bcb756d628">XMP_IO::Seek</a></div><div class="ttdeci">virtual XMP_Int64 Seek(XMP_Int64 offset, SeekMode mode)=0</div><div class="ttdoc">Set the I/O position, returning the new absolute offset in bytes. </div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="af7dc2bd067498a651597a6b128f02dbb"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void XMP_IO::Truncate </td>
+ <td>(</td>
+ <td class="paramtype">XMP_Int64&#160;</td>
+ <td class="paramname"><em>length</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Truncate the file to the given length. </p>
+<p>Truncate the file to the given length. The I/O position after truncation is unchanged if still valid, otherwise it is set to the new EOF. Throws an exception if the new length is longer than the file's current length. Throwing <code>XMPError</code> is recommended.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">length</td><td>The new length for the file, must be less than or equal to the current length. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Referenced by <a class="el" href="XMP__IO_8hpp_source.html#l00094">ToEOF()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab48d705ca0e3fb22d84c7a323951f8e4"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void XMP_IO::Write </td>
+ <td>(</td>
+ <td class="paramtype">const void *&#160;</td>
+ <td class="paramname"><em>buffer</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">XMP_Uns32&#160;</td>
+ <td class="paramname"><em>count</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Write from a buffer. </p>
+<p>Write from a buffer, overwriting existing data and extending the file as necesary. All data must be written or an exception thrown. Throwing <code>XMPError</code> is recommended.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">buffer</td><td>A pointer to the buffer. </td></tr>
+ <tr><td class="paramname">count</td><td>The length of the buffer in bytes. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Referenced by <a class="el" href="XMP__IO_8hpp_source.html#l00063">ReadAll()</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/<a class="el" href="XMP__IO_8hpp_source.html">XMP_IO.hpp</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/classXMP__IO.js b/docs/API/classXMP__IO.js
new file mode 100755
index 0000000..3e2bc67
--- /dev/null
+++ b/docs/API/classXMP__IO.js
@@ -0,0 +1,20 @@
+var classXMP__IO =
+[
+ [ "kReadAll", "classXMP__IO.html#af77f9218892471ffad4586413ecd0dcaa148a2bca28df5b2d143590aae5153b55", null ],
+ [ "XMP_IO", "classXMP__IO.html#a38ca896e79705a0e4228eb67d3426c65", null ],
+ [ "~XMP_IO", "classXMP__IO.html#a52825d62e1a93ae1ee157d68860b6815", null ],
+ [ "XMP_IO", "classXMP__IO.html#a4d2db45adc8f5bbe761434d4a8506d07", null ],
+ [ "AbsorbTemp", "classXMP__IO.html#aad4cf42485e9d8319a07f4ecdde4ee34", null ],
+ [ "DeleteTemp", "classXMP__IO.html#a337ddf3f954d2b4e8dce1d70d8c33ddb", null ],
+ [ "DeriveTemp", "classXMP__IO.html#ac989de23f8fed2efcca71f5a3aa35695", null ],
+ [ "Length", "classXMP__IO.html#af4fe442d5f7ea3d062bb5dfeadfa2335", null ],
+ [ "Offset", "classXMP__IO.html#aa14274c6ed95da83a95e8786b7b1a91e", null ],
+ [ "operator=", "classXMP__IO.html#a18227546a6e759409dfd48a00b9a0748", null ],
+ [ "Read", "classXMP__IO.html#a0a0db95509e567f29f34570d5042aa54", null ],
+ [ "ReadAll", "classXMP__IO.html#a0d0b45799793c5fa3dc567556f93cceb", null ],
+ [ "Rewind", "classXMP__IO.html#a456f92ca90a83095dbd90786a26b64e1", null ],
+ [ "Seek", "classXMP__IO.html#a9c05bb22ecc75e71ecc546bcb756d628", null ],
+ [ "ToEOF", "classXMP__IO.html#a51b53ca05c5627da08cd934a9ed8b281", null ],
+ [ "Truncate", "classXMP__IO.html#af7dc2bd067498a651597a6b128f02dbb", null ],
+ [ "Write", "classXMP__IO.html#ab48d705ca0e3fb22d84c7a323951f8e4", null ]
+]; \ No newline at end of file
diff --git a/docs/API/classes.html b/docs/API/classes.html
index 92f88dd..7c9d170 100644..100755
--- a/docs/API/classes.html
+++ b/docs/API/classes.html
@@ -1,75 +1,73 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: Alphabetical List</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
+<title>Class Index</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
- <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
- <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li class="current"><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classes.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">Class Index</div> </div>
+</div><!--header-->
<div class="contents">
-<h1>Class Index</h1><div class="qindex"><a class="qindex" href="#letter_T">T</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_X">X</a></div>
-<table align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
-<tr><td><a name="letter_T"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;T&nbsp;&nbsp;</div></td></tr></table>
-</td><td><a class="el" href="classTXMPIterator.html">TXMPIterator</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classTXMPUtils.html">TXMPUtils</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structXMP__PacketInfo.html">XMP_PacketInfo</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classTXMPFiles.html">TXMPFiles</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classTXMPMeta.html">TXMPMeta</a>&nbsp;&nbsp;&nbsp;</td><td><a name="letter_X"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;X&nbsp;&nbsp;</div></td></tr></table>
-</td><td><a class="el" href="classXMP__Error.html">XMP_Error</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structXMP__VersionInfo.html">XMP_VersionInfo</a>&nbsp;&nbsp;&nbsp;</td></tr></table><div class="qindex"><a class="qindex" href="#letter_T">T</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_X">X</a></div>
-</div>
+<div class="qindex"><a class="qindex" href="#letter_C">C</a>&#160;|&#160;<a class="qindex" href="#letter_I">I</a>&#160;|&#160;<a class="qindex" href="#letter_R">R</a>&#160;|&#160;<a class="qindex" href="#letter_T">T</a>&#160;|&#160;<a class="qindex" href="#letter_W">W</a>&#160;|&#160;<a class="qindex" href="#letter_X">X</a></div>
+<table class="classindex">
+<tr><td rowspan="2" valign="bottom"><a name="letter_C"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;C&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html">IConfigurationManagerProxy</a> (<a class="el" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">INode_v1</a> (<a class="el" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_R"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;R&#160;&#160;</div></td></tr></table>
+</td><td rowspan="2" valign="bottom"><a name="letter_X"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;X&#160;&#160;</div></td></tr></table>
+</td></tr>
+<tr><td valign="top"><a class="el" href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html">ICoreConfigurationManager_v1</a> (<a class="el" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html">INodeIterator_v1</a> (<a class="el" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html">IConfigurable::CombinedDataValue</a> (<a class="el" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html">ICoreObjectFactory_v1</a> (<a class="el" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html">IObjectFactory_v1</a> (<a class="el" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html">ReportErrorAndContinueFunctor</a> (<a class="el" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a>&#160;&#160;&#160;</td></tr>
+<tr><td rowspan="2" valign="bottom"><a name="letter_I"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;I&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html">IDOMImplementationRegistry_v1</a> (<a class="el" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classAdobeXMPCore_1_1IPath__v1.html">IPath_v1</a> (<a class="el" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_T"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;T&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classXMP__Error.html">XMP_Error</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html">IDOMParser_v1</a> (<a class="el" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html">IPathSegment_v1</a> (<a class="el" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classXMP__IO.html">XMP_IO</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html">IArrayNode_v1</a> (<a class="el" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html">IDOMSerializer_v1</a> (<a class="el" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">ISharedObject</a> (<a class="el" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classTXMPFiles.html">TXMPFiles</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structXMP__PacketInfo.html">XMP_PacketInfo</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html">IClientDOMParser_v1</a> (<a class="el" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">IError_v1</a> (<a class="el" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html">ISimpleNode_v1</a> (<a class="el" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classTXMPIterator.html">TXMPIterator</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structXMP__VersionInfo.html">XMP_VersionInfo</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html">IClientDOMSerializer_v1</a> (<a class="el" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classAdobeXMPCommon_1_1IErrorNotifier__v1.html">IErrorNotifier_v1</a> (<a class="el" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html">IStructureNode_v1</a> (<a class="el" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classTXMPMeta.html">TXMPMeta</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">ICompositeNode_v1</a> (<a class="el" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html">IMemoryAllocator_v1</a> (<a class="el" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">IThreadSafe</a> (<a class="el" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classTXMPUtils.html">TXMPUtils</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">IConfigurable</a> (<a class="el" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html">IMetadata_v1</a> (<a class="el" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">IUTF8String_v1</a> (<a class="el" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_W"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;W&#160;&#160;</div></td></tr></table>
+</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html">IConfigurationManager_v1</a> (<a class="el" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">INameSpacePrefixMap_v1</a> (<a class="el" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">IVersionable</a> (<a class="el" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a>)&#160;&#160;&#160;</td><td></td></tr>
+<tr><td></td><td></td><td></td><td valign="top"><a class="el" href="structWXMP__Result.html">WXMP_Result</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td></td><td></td><td></td><td></td><td></td></tr>
+</table>
+<div class="qindex"><a class="qindex" href="#letter_C">C</a>&#160;|&#160;<a class="qindex" href="#letter_I">I</a>&#160;|&#160;<a class="qindex" href="#letter_R">R</a>&#160;|&#160;<a class="qindex" href="#letter_T">T</a>&#160;|&#160;<a class="qindex" href="#letter_W">W</a>&#160;|&#160;<a class="qindex" href="#letter_X">X</a></div>
+</div><!-- contents -->
+</div><!-- doc-content -->
<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
</body>
</html>
diff --git a/docs/API/closed.gif b/docs/API/closed.gif
deleted file mode 100644
index 5310631..0000000
--- a/docs/API/closed.gif
+++ /dev/null
Binary files differ
diff --git a/docs/API/closed.png b/docs/API/closed.png
new file mode 100755
index 0000000..98cc2c9
--- /dev/null
+++ b/docs/API/closed.png
Binary files differ
diff --git a/docs/API/dir_0e5f10c8914b73a2f667b010a9332417.html b/docs/API/dir_0e5f10c8914b73a2f667b010a9332417.html
new file mode 100755
index 0000000..0a12b70
--- /dev/null
+++ b/docs/API/dir_0e5f10c8914b73a2f667b010a9332417.html
@@ -0,0 +1,63 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/client-glue Directory Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_0e5f10c8914b73a2f667b010a9332417.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">client-glue Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:WXMP__Common_8hpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMP__Common_8hpp.html">WXMP_Common.hpp</a> <a href="WXMP__Common_8hpp_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:WXMPFiles_8hpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPFiles_8hpp.html">WXMPFiles.hpp</a> <a href="WXMPFiles_8hpp_source.html">[code]</a></td></tr>
+<tr class="memdesc:WXMPFiles_8hpp"><td class="mdescLeft">&#160;</td><td class="mdescRight">High level support to access metadata in files of interest to Adobe applications. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:WXMPIterator_8hpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPIterator_8hpp.html">WXMPIterator.hpp</a> <a href="WXMPIterator_8hpp_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:WXMPMeta_8hpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPMeta_8hpp.html">WXMPMeta.hpp</a> <a href="WXMPMeta_8hpp_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:WXMPUtils_8hpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="WXMPUtils_8hpp.html">WXMPUtils.hpp</a> <a href="WXMPUtils_8hpp_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/dir_0e5f10c8914b73a2f667b010a9332417.js b/docs/API/dir_0e5f10c8914b73a2f667b010a9332417.js
new file mode 100755
index 0000000..72f6d26
--- /dev/null
+++ b/docs/API/dir_0e5f10c8914b73a2f667b010a9332417.js
@@ -0,0 +1,8 @@
+var dir_0e5f10c8914b73a2f667b010a9332417 =
+[
+ [ "WXMP_Common.hpp", "WXMP__Common_8hpp.html", "WXMP__Common_8hpp" ],
+ [ "WXMPFiles.hpp", "WXMPFiles_8hpp.html", "WXMPFiles_8hpp" ],
+ [ "WXMPIterator.hpp", "WXMPIterator_8hpp.html", "WXMPIterator_8hpp" ],
+ [ "WXMPMeta.hpp", "WXMPMeta_8hpp.html", "WXMPMeta_8hpp" ],
+ [ "WXMPUtils.hpp", "WXMPUtils_8hpp.html", "WXMPUtils_8hpp" ]
+]; \ No newline at end of file
diff --git a/docs/API/dir_0fb2101ba02d68f078970216a1fe0334.html b/docs/API/dir_0fb2101ba02d68f078970216a1fe0334.html
new file mode 100755
index 0000000..358d366
--- /dev/null
+++ b/docs/API/dir_0fb2101ba02d68f078970216a1fe0334.html
@@ -0,0 +1,85 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include Directory Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_0fb2101ba02d68f078970216a1fe0334.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">include Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:dir_0e5f10c8914b73a2f667b010a9332417"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_0e5f10c8914b73a2f667b010a9332417.html">client-glue</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:dir_13a16c6fe91841c884a316194c73d6c1"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_13a16c6fe91841c884a316194c73d6c1.html">XMPCommon</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:dir_d9f2167f9fcfc7d7593f67aa31e893fd"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_d9f2167f9fcfc7d7593f67aa31e893fd.html">XMPCore</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:TXMPFiles_8hpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="TXMPFiles_8hpp.html">TXMPFiles.hpp</a> <a href="TXMPFiles_8hpp_source.html">[code]</a></td></tr>
+<tr class="memdesc:TXMPFiles_8hpp"><td class="mdescLeft">&#160;</td><td class="mdescRight">API for access to the main (document-level) metadata in a file_. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:TXMPIterator_8hpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="TXMPIterator_8hpp.html">TXMPIterator.hpp</a> <a href="TXMPIterator_8hpp_source.html">[code]</a></td></tr>
+<tr class="memdesc:TXMPIterator_8hpp"><td class="mdescLeft">&#160;</td><td class="mdescRight">API for access to the XMP Toolkit iteration services. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:TXMPMeta_8hpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="TXMPMeta_8hpp.html">TXMPMeta.hpp</a> <a href="TXMPMeta_8hpp_source.html">[code]</a></td></tr>
+<tr class="memdesc:TXMPMeta_8hpp"><td class="mdescLeft">&#160;</td><td class="mdescRight">API for access to the XMP Toolkit core services. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:TXMPUtils_8hpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="TXMPUtils_8hpp.html">TXMPUtils.hpp</a> <a href="TXMPUtils_8hpp_source.html">[code]</a></td></tr>
+<tr class="memdesc:TXMPUtils_8hpp"><td class="mdescLeft">&#160;</td><td class="mdescRight">API for access to the XMP Toolkit utility services. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:XMP_8hpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP_8hpp.html">XMP.hpp</a> <a href="XMP_8hpp_source.html">[code]</a></td></tr>
+<tr class="memdesc:XMP_8hpp"><td class="mdescLeft">&#160;</td><td class="mdescRight">Overall header file for the XMP Toolkit. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:XMP__Const_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Const_8h.html">XMP_Const.h</a> <a href="XMP__Const_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:XMP__Const_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Common C/C++ types and constants for the XMP toolkit. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:XMP__Environment_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Environment_8h.html">XMP_Environment.h</a> <a href="XMP__Environment_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:XMP__IO_8hpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__IO_8hpp.html">XMP_IO.hpp</a> <a href="XMP__IO_8hpp_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:XMP__Version_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMP__Version_8h.html">XMP_Version.h</a> <a href="XMP__Version_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/dir_0fb2101ba02d68f078970216a1fe0334.js b/docs/API/dir_0fb2101ba02d68f078970216a1fe0334.js
new file mode 100755
index 0000000..6f67024
--- /dev/null
+++ b/docs/API/dir_0fb2101ba02d68f078970216a1fe0334.js
@@ -0,0 +1,27 @@
+var dir_0fb2101ba02d68f078970216a1fe0334 =
+[
+ [ "client-glue", "dir_0e5f10c8914b73a2f667b010a9332417.html", "dir_0e5f10c8914b73a2f667b010a9332417" ],
+ [ "XMPCommon", "dir_13a16c6fe91841c884a316194c73d6c1.html", "dir_13a16c6fe91841c884a316194c73d6c1" ],
+ [ "XMPCore", "dir_d9f2167f9fcfc7d7593f67aa31e893fd.html", "dir_d9f2167f9fcfc7d7593f67aa31e893fd" ],
+ [ "TXMPFiles.hpp", "TXMPFiles_8hpp.html", [
+ [ "TXMPFiles", "classTXMPFiles.html", "classTXMPFiles" ]
+ ] ],
+ [ "TXMPIterator.hpp", "TXMPIterator_8hpp.html", [
+ [ "TXMPIterator", "classTXMPIterator.html", "classTXMPIterator" ]
+ ] ],
+ [ "TXMPMeta.hpp", "TXMPMeta_8hpp.html", [
+ [ "TXMPIterator", "classTXMPIterator.html", "classTXMPIterator" ],
+ [ "TXMPUtils", "classTXMPUtils.html", "classTXMPUtils" ],
+ [ "TXMPMeta", "classTXMPMeta.html", "classTXMPMeta" ]
+ ] ],
+ [ "TXMPUtils.hpp", "TXMPUtils_8hpp.html", [
+ [ "TXMPUtils", "classTXMPUtils.html", "classTXMPUtils" ]
+ ] ],
+ [ "XMP.hpp", "XMP_8hpp.html", null ],
+ [ "XMP_Const.h", "XMP__Const_8h.html", "XMP__Const_8h" ],
+ [ "XMP_Environment.h", "XMP__Environment_8h.html", "XMP__Environment_8h" ],
+ [ "XMP_IO.hpp", "XMP__IO_8hpp.html", [
+ [ "XMP_IO", "classXMP__IO.html", "classXMP__IO" ]
+ ] ],
+ [ "XMP_Version.h", "XMP__Version_8h.html", "XMP__Version_8h" ]
+]; \ No newline at end of file
diff --git a/docs/API/dir_13a16c6fe91841c884a316194c73d6c1.html b/docs/API/dir_13a16c6fe91841c884a316194c73d6c1.html
new file mode 100755
index 0000000..bdb29ab
--- /dev/null
+++ b/docs/API/dir_13a16c6fe91841c884a316194c73d6c1.html
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon Directory Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_13a16c6fe91841c884a316194c73d6c1.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">XMPCommon Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:dir_a2aafb81ccb63bf25660f5baa8263a1b"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_a2aafb81ccb63bf25660f5baa8263a1b.html">Interfaces</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:dir_47a03e1ff379e16c0ff8dae8eab507ef"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_47a03e1ff379e16c0ff8dae8eab507ef.html">Utilities</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:XMPCommonDefines_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCommonDefines_8h.html">XMPCommonDefines.h</a> <a href="XMPCommonDefines_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:XMPCommonErrorCodes_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCommonErrorCodes_8h.html">XMPCommonErrorCodes.h</a> <a href="XMPCommonErrorCodes_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:XMPCommonFwdDeclarations_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCommonFwdDeclarations_8h.html">XMPCommonFwdDeclarations.h</a> <a href="XMPCommonFwdDeclarations_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:XMPCommonLatestInterfaceVersions_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCommonLatestInterfaceVersions_8h.html">XMPCommonLatestInterfaceVersions.h</a> <a href="XMPCommonLatestInterfaceVersions_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/dir_13a16c6fe91841c884a316194c73d6c1.js b/docs/API/dir_13a16c6fe91841c884a316194c73d6c1.js
new file mode 100755
index 0000000..20a35c4
--- /dev/null
+++ b/docs/API/dir_13a16c6fe91841c884a316194c73d6c1.js
@@ -0,0 +1,9 @@
+var dir_13a16c6fe91841c884a316194c73d6c1 =
+[
+ [ "Interfaces", "dir_a2aafb81ccb63bf25660f5baa8263a1b.html", "dir_a2aafb81ccb63bf25660f5baa8263a1b" ],
+ [ "Utilities", "dir_47a03e1ff379e16c0ff8dae8eab507ef.html", "dir_47a03e1ff379e16c0ff8dae8eab507ef" ],
+ [ "XMPCommonDefines.h", "XMPCommonDefines_8h.html", "XMPCommonDefines_8h" ],
+ [ "XMPCommonErrorCodes.h", "XMPCommonErrorCodes_8h.html", "XMPCommonErrorCodes_8h" ],
+ [ "XMPCommonFwdDeclarations.h", "XMPCommonFwdDeclarations_8h.html", "XMPCommonFwdDeclarations_8h" ],
+ [ "XMPCommonLatestInterfaceVersions.h", "XMPCommonLatestInterfaceVersions_8h.html", "XMPCommonLatestInterfaceVersions_8h" ]
+]; \ No newline at end of file
diff --git a/docs/API/dir_3ce2d6caf42dd158441e2c69545b6561.html b/docs/API/dir_3ce2d6caf42dd158441e2c69545b6561.html
new file mode 100755
index 0000000..a90ec3d
--- /dev/null
+++ b/docs/API/dir_3ce2d6caf42dd158441e2c69545b6561.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/Interfaces/BaseInterfaces Directory Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_3ce2d6caf42dd158441e2c69545b6561.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">BaseInterfaces Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:IConfigurable_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="IConfigurable_8h.html">IConfigurable.h</a> <a href="IConfigurable_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ISharedObject_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ISharedObject_8h.html">ISharedObject.h</a> <a href="ISharedObject_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:IThreadSafe_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="IThreadSafe_8h.html">IThreadSafe.h</a> <a href="IThreadSafe_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:IVersionable_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="IVersionable_8h.html">IVersionable.h</a> <a href="IVersionable_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/dir_3ce2d6caf42dd158441e2c69545b6561.js b/docs/API/dir_3ce2d6caf42dd158441e2c69545b6561.js
new file mode 100755
index 0000000..aec2d4e
--- /dev/null
+++ b/docs/API/dir_3ce2d6caf42dd158441e2c69545b6561.js
@@ -0,0 +1,16 @@
+var dir_3ce2d6caf42dd158441e2c69545b6561 =
+[
+ [ "IConfigurable.h", "IConfigurable_8h.html", [
+ [ "IConfigurable", "classAdobeXMPCommon_1_1IConfigurable.html", "classAdobeXMPCommon_1_1IConfigurable" ],
+ [ "CombinedDataValue", "unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html", "unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue" ]
+ ] ],
+ [ "ISharedObject.h", "ISharedObject_8h.html", [
+ [ "ISharedObject", "classAdobeXMPCommon_1_1ISharedObject.html", "classAdobeXMPCommon_1_1ISharedObject" ]
+ ] ],
+ [ "IThreadSafe.h", "IThreadSafe_8h.html", [
+ [ "IThreadSafe", "classAdobeXMPCommon_1_1IThreadSafe.html", "classAdobeXMPCommon_1_1IThreadSafe" ]
+ ] ],
+ [ "IVersionable.h", "IVersionable_8h.html", [
+ [ "IVersionable", "classAdobeXMPCommon_1_1IVersionable.html", "classAdobeXMPCommon_1_1IVersionable" ]
+ ] ]
+]; \ No newline at end of file
diff --git a/docs/API/dir_47a03e1ff379e16c0ff8dae8eab507ef.html b/docs/API/dir_47a03e1ff379e16c0ff8dae8eab507ef.html
new file mode 100755
index 0000000..0626e83
--- /dev/null
+++ b/docs/API/dir_47a03e1ff379e16c0ff8dae8eab507ef.html
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/Utilities Directory Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_47a03e1ff379e16c0ff8dae8eab507ef.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">Utilities Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:TWrapperFunctions_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="TWrapperFunctions_8h.html">TWrapperFunctions.h</a> <a href="TWrapperFunctions_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:TWrapperFunctions2_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="TWrapperFunctions2_8h.html">TWrapperFunctions2.h</a> <a href="TWrapperFunctions2_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/dir_47a03e1ff379e16c0ff8dae8eab507ef.js b/docs/API/dir_47a03e1ff379e16c0ff8dae8eab507ef.js
new file mode 100755
index 0000000..4cf768b
--- /dev/null
+++ b/docs/API/dir_47a03e1ff379e16c0ff8dae8eab507ef.js
@@ -0,0 +1,5 @@
+var dir_47a03e1ff379e16c0ff8dae8eab507ef =
+[
+ [ "TWrapperFunctions.h", "TWrapperFunctions_8h.html", null ],
+ [ "TWrapperFunctions2.h", "TWrapperFunctions2_8h.html", null ]
+]; \ No newline at end of file
diff --git a/docs/API/dir_8223d5ea7844a33492dce354418ea45e.html b/docs/API/dir_8223d5ea7844a33492dce354418ea45e.html
new file mode 100755
index 0000000..4b8d19d
--- /dev/null
+++ b/docs/API/dir_8223d5ea7844a33492dce354418ea45e.html
@@ -0,0 +1,86 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore/Interfaces Directory Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_8223d5ea7844a33492dce354418ea45e.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">Interfaces Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:IArrayNode_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="IArrayNode_8h.html">IArrayNode.h</a> <a href="IArrayNode_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:IClientDOMParser_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="IClientDOMParser_8h.html">IClientDOMParser.h</a> <a href="IClientDOMParser_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:IClientDOMSerializer_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="IClientDOMSerializer_8h.html">IClientDOMSerializer.h</a> <a href="IClientDOMSerializer_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ICompositeNode_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ICompositeNode_8h.html">ICompositeNode.h</a> <a href="ICompositeNode_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ICoreConfigurationManager_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ICoreConfigurationManager_8h.html">ICoreConfigurationManager.h</a> <a href="ICoreConfigurationManager_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ICoreObjectFactory_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ICoreObjectFactory_8h.html">ICoreObjectFactory.h</a> <a href="ICoreObjectFactory_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:IDOMImplementationRegistry_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="IDOMImplementationRegistry_8h.html">IDOMImplementationRegistry.h</a> <a href="IDOMImplementationRegistry_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:IDOMParser_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="IDOMParser_8h.html">IDOMParser.h</a> <a href="IDOMParser_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:IDOMSerializer_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="IDOMSerializer_8h.html">IDOMSerializer.h</a> <a href="IDOMSerializer_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:IMetadata_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="IMetadata_8h.html">IMetadata.h</a> <a href="IMetadata_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:INameSpacePrefixMap_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="INameSpacePrefixMap_8h.html">INameSpacePrefixMap.h</a> <a href="INameSpacePrefixMap_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:INode_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="INode_8h.html">INode.h</a> <a href="INode_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:INodeIterator_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="INodeIterator_8h.html">INodeIterator.h</a> <a href="INodeIterator_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:IPath_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="IPath_8h.html">IPath.h</a> <a href="IPath_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:IPathSegment_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="IPathSegment_8h.html">IPathSegment.h</a> <a href="IPathSegment_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ISimpleNode_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ISimpleNode_8h.html">ISimpleNode.h</a> <a href="ISimpleNode_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:IStructureNode_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="IStructureNode_8h.html">IStructureNode.h</a> <a href="IStructureNode_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/dir_8223d5ea7844a33492dce354418ea45e.js b/docs/API/dir_8223d5ea7844a33492dce354418ea45e.js
new file mode 100755
index 0000000..36f4749
--- /dev/null
+++ b/docs/API/dir_8223d5ea7844a33492dce354418ea45e.js
@@ -0,0 +1,54 @@
+var dir_8223d5ea7844a33492dce354418ea45e =
+[
+ [ "IArrayNode.h", "IArrayNode_8h.html", [
+ [ "IArrayNode_v1", "classAdobeXMPCore_1_1IArrayNode__v1.html", "classAdobeXMPCore_1_1IArrayNode__v1" ]
+ ] ],
+ [ "IClientDOMParser.h", "IClientDOMParser_8h.html", [
+ [ "IClientDOMParser_v1", "classAdobeXMPCore_1_1IClientDOMParser__v1.html", "classAdobeXMPCore_1_1IClientDOMParser__v1" ]
+ ] ],
+ [ "IClientDOMSerializer.h", "IClientDOMSerializer_8h.html", [
+ [ "IClientDOMSerializer_v1", "classAdobeXMPCore_1_1IClientDOMSerializer__v1.html", "classAdobeXMPCore_1_1IClientDOMSerializer__v1" ]
+ ] ],
+ [ "ICompositeNode.h", "ICompositeNode_8h.html", [
+ [ "ICompositeNode_v1", "classAdobeXMPCore_1_1ICompositeNode__v1.html", "classAdobeXMPCore_1_1ICompositeNode__v1" ]
+ ] ],
+ [ "ICoreConfigurationManager.h", "ICoreConfigurationManager_8h.html", [
+ [ "ICoreConfigurationManager_v1", "classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html", "classAdobeXMPCore_1_1ICoreConfigurationManager__v1" ]
+ ] ],
+ [ "ICoreObjectFactory.h", "ICoreObjectFactory_8h.html", [
+ [ "ICoreObjectFactory_v1", "classAdobeXMPCore_1_1ICoreObjectFactory__v1.html", "classAdobeXMPCore_1_1ICoreObjectFactory__v1" ]
+ ] ],
+ [ "IDOMImplementationRegistry.h", "IDOMImplementationRegistry_8h.html", [
+ [ "IDOMImplementationRegistry_v1", "classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html", "classAdobeXMPCore_1_1IDOMImplementationRegistry__v1" ]
+ ] ],
+ [ "IDOMParser.h", "IDOMParser_8h.html", [
+ [ "IDOMParser_v1", "classAdobeXMPCore_1_1IDOMParser__v1.html", "classAdobeXMPCore_1_1IDOMParser__v1" ]
+ ] ],
+ [ "IDOMSerializer.h", "IDOMSerializer_8h.html", [
+ [ "IDOMSerializer_v1", "classAdobeXMPCore_1_1IDOMSerializer__v1.html", "classAdobeXMPCore_1_1IDOMSerializer__v1" ]
+ ] ],
+ [ "IMetadata.h", "IMetadata_8h.html", [
+ [ "IMetadata_v1", "classAdobeXMPCore_1_1IMetadata__v1.html", "classAdobeXMPCore_1_1IMetadata__v1" ]
+ ] ],
+ [ "INameSpacePrefixMap.h", "INameSpacePrefixMap_8h.html", [
+ [ "INameSpacePrefixMap_v1", "classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html", "classAdobeXMPCore_1_1INameSpacePrefixMap__v1" ]
+ ] ],
+ [ "INode.h", "INode_8h.html", [
+ [ "INode_v1", "classAdobeXMPCore_1_1INode__v1.html", "classAdobeXMPCore_1_1INode__v1" ]
+ ] ],
+ [ "INodeIterator.h", "INodeIterator_8h.html", [
+ [ "INodeIterator_v1", "classAdobeXMPCore_1_1INodeIterator__v1.html", "classAdobeXMPCore_1_1INodeIterator__v1" ]
+ ] ],
+ [ "IPath.h", "IPath_8h.html", [
+ [ "IPath_v1", "classAdobeXMPCore_1_1IPath__v1.html", "classAdobeXMPCore_1_1IPath__v1" ]
+ ] ],
+ [ "IPathSegment.h", "IPathSegment_8h.html", [
+ [ "IPathSegment_v1", "classAdobeXMPCore_1_1IPathSegment__v1.html", "classAdobeXMPCore_1_1IPathSegment__v1" ]
+ ] ],
+ [ "ISimpleNode.h", "ISimpleNode_8h.html", [
+ [ "ISimpleNode_v1", "classAdobeXMPCore_1_1ISimpleNode__v1.html", "classAdobeXMPCore_1_1ISimpleNode__v1" ]
+ ] ],
+ [ "IStructureNode.h", "IStructureNode_8h.html", [
+ [ "IStructureNode_v1", "classAdobeXMPCore_1_1IStructureNode__v1.html", "classAdobeXMPCore_1_1IStructureNode__v1" ]
+ ] ]
+]; \ No newline at end of file
diff --git a/docs/API/dir_a2aafb81ccb63bf25660f5baa8263a1b.html b/docs/API/dir_a2aafb81ccb63bf25660f5baa8263a1b.html
new file mode 100755
index 0000000..f3ca7a8
--- /dev/null
+++ b/docs/API/dir_a2aafb81ccb63bf25660f5baa8263a1b.html
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/Interfaces Directory Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_a2aafb81ccb63bf25660f5baa8263a1b.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">Interfaces Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:dir_3ce2d6caf42dd158441e2c69545b6561"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_3ce2d6caf42dd158441e2c69545b6561.html">BaseInterfaces</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:IConfigurationManager_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="IConfigurationManager_8h.html">IConfigurationManager.h</a> <a href="IConfigurationManager_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:IError_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="IError_8h.html">IError.h</a> <a href="IError_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:IErrorNotifier_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="IErrorNotifier_8h.html">IErrorNotifier.h</a> <a href="IErrorNotifier_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:IMemoryAllocator_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="IMemoryAllocator_8h.html">IMemoryAllocator.h</a> <a href="IMemoryAllocator_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:IObjectFactory_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="IObjectFactory_8h.html">IObjectFactory.h</a> <a href="IObjectFactory_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:IUTF8String_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="IUTF8String_8h.html">IUTF8String.h</a> <a href="IUTF8String_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/dir_a2aafb81ccb63bf25660f5baa8263a1b.js b/docs/API/dir_a2aafb81ccb63bf25660f5baa8263a1b.js
new file mode 100755
index 0000000..1eb140a
--- /dev/null
+++ b/docs/API/dir_a2aafb81ccb63bf25660f5baa8263a1b.js
@@ -0,0 +1,21 @@
+var dir_a2aafb81ccb63bf25660f5baa8263a1b =
+[
+ [ "BaseInterfaces", "dir_3ce2d6caf42dd158441e2c69545b6561.html", "dir_3ce2d6caf42dd158441e2c69545b6561" ],
+ [ "IConfigurationManager.h", "IConfigurationManager_8h.html", [
+ [ "IConfigurationManager_v1", "classAdobeXMPCommon_1_1IConfigurationManager__v1.html", "classAdobeXMPCommon_1_1IConfigurationManager__v1" ],
+ [ "IConfigurationManagerProxy", "classAdobeXMPCommon_1_1IConfigurationManagerProxy.html", "classAdobeXMPCommon_1_1IConfigurationManagerProxy" ]
+ ] ],
+ [ "IError.h", "IError_8h.html", "IError_8h" ],
+ [ "IErrorNotifier.h", "IErrorNotifier_8h.html", [
+ [ "IErrorNotifier_v1", "classAdobeXMPCommon_1_1IErrorNotifier__v1.html", "classAdobeXMPCommon_1_1IErrorNotifier__v1" ]
+ ] ],
+ [ "IMemoryAllocator.h", "IMemoryAllocator_8h.html", [
+ [ "IMemoryAllocator_v1", "classAdobeXMPCommon_1_1IMemoryAllocator__v1.html", "classAdobeXMPCommon_1_1IMemoryAllocator__v1" ]
+ ] ],
+ [ "IObjectFactory.h", "IObjectFactory_8h.html", [
+ [ "IObjectFactory_v1", "classAdobeXMPCommon_1_1IObjectFactory__v1.html", "classAdobeXMPCommon_1_1IObjectFactory__v1" ]
+ ] ],
+ [ "IUTF8String.h", "IUTF8String_8h.html", [
+ [ "IUTF8String_v1", "classAdobeXMPCommon_1_1IUTF8String__v1.html", "classAdobeXMPCommon_1_1IUTF8String__v1" ]
+ ] ]
+]; \ No newline at end of file
diff --git a/docs/API/dir_d9f2167f9fcfc7d7593f67aa31e893fd.html b/docs/API/dir_d9f2167f9fcfc7d7593f67aa31e893fd.html
new file mode 100755
index 0000000..b6467dc
--- /dev/null
+++ b/docs/API/dir_d9f2167f9fcfc7d7593f67aa31e893fd.html
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCore Directory Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_d9f2167f9fcfc7d7593f67aa31e893fd.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">XMPCore Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:dir_8223d5ea7844a33492dce354418ea45e"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_8223d5ea7844a33492dce354418ea45e.html">Interfaces</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:XMPCoreDefines_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCoreDefines_8h.html">XMPCoreDefines.h</a> <a href="XMPCoreDefines_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:XMPCoreErrorCodes_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCoreErrorCodes_8h.html">XMPCoreErrorCodes.h</a> <a href="XMPCoreErrorCodes_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:XMPCoreFwdDeclarations_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCoreFwdDeclarations_8h.html">XMPCoreFwdDeclarations.h</a> <a href="XMPCoreFwdDeclarations_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:XMPCoreLatestInterfaceVersions_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="XMPCoreLatestInterfaceVersions_8h.html">XMPCoreLatestInterfaceVersions.h</a> <a href="XMPCoreLatestInterfaceVersions_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/dir_d9f2167f9fcfc7d7593f67aa31e893fd.js b/docs/API/dir_d9f2167f9fcfc7d7593f67aa31e893fd.js
new file mode 100755
index 0000000..d0b593a
--- /dev/null
+++ b/docs/API/dir_d9f2167f9fcfc7d7593f67aa31e893fd.js
@@ -0,0 +1,8 @@
+var dir_d9f2167f9fcfc7d7593f67aa31e893fd =
+[
+ [ "Interfaces", "dir_8223d5ea7844a33492dce354418ea45e.html", "dir_8223d5ea7844a33492dce354418ea45e" ],
+ [ "XMPCoreDefines.h", "XMPCoreDefines_8h.html", "XMPCoreDefines_8h" ],
+ [ "XMPCoreErrorCodes.h", "XMPCoreErrorCodes_8h.html", "XMPCoreErrorCodes_8h" ],
+ [ "XMPCoreFwdDeclarations.h", "XMPCoreFwdDeclarations_8h.html", "XMPCoreFwdDeclarations_8h" ],
+ [ "XMPCoreLatestInterfaceVersions.h", "XMPCoreLatestInterfaceVersions_8h.html", "XMPCoreLatestInterfaceVersions_8h" ]
+]; \ No newline at end of file
diff --git a/docs/API/dir_f832923ad3cb060bc87ad85e68b8a1c3.html b/docs/API/dir_f832923ad3cb060bc87ad85e68b8a1c3.html
new file mode 100755
index 0000000..0bf2858
--- /dev/null
+++ b/docs/API/dir_f832923ad3cb060bc87ad85e68b8a1c3.html
@@ -0,0 +1,54 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public Directory Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_f832923ad3cb060bc87ad85e68b8a1c3.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">public Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:dir_0fb2101ba02d68f078970216a1fe0334"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_0fb2101ba02d68f078970216a1fe0334.html">include</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/dir_f832923ad3cb060bc87ad85e68b8a1c3.js b/docs/API/dir_f832923ad3cb060bc87ad85e68b8a1c3.js
new file mode 100755
index 0000000..54b0304
--- /dev/null
+++ b/docs/API/dir_f832923ad3cb060bc87ad85e68b8a1c3.js
@@ -0,0 +1,4 @@
+var dir_f832923ad3cb060bc87ad85e68b8a1c3 =
+[
+ [ "include", "dir_0fb2101ba02d68f078970216a1fe0334.html", "dir_0fb2101ba02d68f078970216a1fe0334" ]
+]; \ No newline at end of file
diff --git a/docs/API/doc.png b/docs/API/doc.png
new file mode 100755
index 0000000..17edabf
--- /dev/null
+++ b/docs/API/doc.png
Binary files differ
diff --git a/docs/API/doxygen.css b/docs/API/doxygen.css
new file mode 100755
index 0000000..1425ec5
--- /dev/null
+++ b/docs/API/doxygen.css
@@ -0,0 +1,1475 @@
+/* The standard CSS for doxygen 1.8.11 */
+
+body, table, div, p, dl {
+ font: 400 14px/22px Roboto,sans-serif;
+}
+
+/* @group Heading Levels */
+
+h1.groupheader {
+ font-size: 150%;
+}
+
+.title {
+ font: 400 14px/28px Roboto,sans-serif;
+ font-size: 150%;
+ font-weight: bold;
+ margin: 10px 2px;
+}
+
+h2.groupheader {
+ border-bottom: 1px solid #879ECB;
+ color: #354C7B;
+ font-size: 150%;
+ font-weight: normal;
+ margin-top: 1.75em;
+ padding-top: 8px;
+ padding-bottom: 4px;
+ width: 100%;
+}
+
+h3.groupheader {
+ font-size: 100%;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ -webkit-transition: text-shadow 0.5s linear;
+ -moz-transition: text-shadow 0.5s linear;
+ -ms-transition: text-shadow 0.5s linear;
+ -o-transition: text-shadow 0.5s linear;
+ transition: text-shadow 0.5s linear;
+ margin-right: 15px;
+}
+
+h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
+ text-shadow: 0 0 15px cyan;
+}
+
+dt {
+ font-weight: bold;
+}
+
+div.multicol {
+ -moz-column-gap: 1em;
+ -webkit-column-gap: 1em;
+ -moz-column-count: 3;
+ -webkit-column-count: 3;
+}
+
+p.startli, p.startdd {
+ margin-top: 2px;
+}
+
+p.starttd {
+ margin-top: 0px;
+}
+
+p.endli {
+ margin-bottom: 0px;
+}
+
+p.enddd {
+ margin-bottom: 4px;
+}
+
+p.endtd {
+ margin-bottom: 2px;
+}
+
+/* @end */
+
+caption {
+ font-weight: bold;
+}
+
+span.legend {
+ font-size: 70%;
+ text-align: center;
+}
+
+h3.version {
+ font-size: 90%;
+ text-align: center;
+}
+
+div.qindex, div.navtab{
+ background-color: #EBEFF6;
+ border: 1px solid #A3B4D7;
+ text-align: center;
+}
+
+div.qindex, div.navpath {
+ width: 100%;
+ line-height: 140%;
+}
+
+div.navtab {
+ margin-right: 15px;
+}
+
+/* @group Link Styling */
+
+a {
+ color: #3D578C;
+ font-weight: normal;
+ text-decoration: none;
+}
+
+.contents a:visited {
+ color: #4665A2;
+}
+
+a:hover {
+ text-decoration: underline;
+}
+
+a.qindex {
+ font-weight: bold;
+}
+
+a.qindexHL {
+ font-weight: bold;
+ background-color: #9CAFD4;
+ color: #ffffff;
+ border: 1px double #869DCA;
+}
+
+.contents a.qindexHL:visited {
+ color: #ffffff;
+}
+
+a.el {
+ font-weight: bold;
+}
+
+a.elRef {
+}
+
+a.code, a.code:visited, a.line, a.line:visited {
+ color: #4665A2;
+}
+
+a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited {
+ color: #4665A2;
+}
+
+/* @end */
+
+dl.el {
+ margin-left: -1cm;
+}
+
+pre.fragment {
+ border: 1px solid #C4CFE5;
+ background-color: #FBFCFD;
+ padding: 4px 6px;
+ margin: 4px 8px 4px 2px;
+ overflow: auto;
+ word-wrap: break-word;
+ font-size: 9pt;
+ line-height: 125%;
+ font-family: monospace, fixed;
+ font-size: 105%;
+}
+
+div.fragment {
+ padding: 4px 6px;
+ margin: 4px 8px 4px 2px;
+ background-color: #FBFCFD;
+ border: 1px solid #C4CFE5;
+}
+
+div.line {
+ font-family: monospace, fixed;
+ font-size: 13px;
+ min-height: 13px;
+ line-height: 1.0;
+ text-wrap: unrestricted;
+ white-space: -moz-pre-wrap; /* Moz */
+ white-space: -pre-wrap; /* Opera 4-6 */
+ white-space: -o-pre-wrap; /* Opera 7 */
+ white-space: pre-wrap; /* CSS3 */
+ word-wrap: break-word; /* IE 5.5+ */
+ text-indent: -53px;
+ padding-left: 53px;
+ padding-bottom: 0px;
+ margin: 0px;
+ -webkit-transition-property: background-color, box-shadow;
+ -webkit-transition-duration: 0.5s;
+ -moz-transition-property: background-color, box-shadow;
+ -moz-transition-duration: 0.5s;
+ -ms-transition-property: background-color, box-shadow;
+ -ms-transition-duration: 0.5s;
+ -o-transition-property: background-color, box-shadow;
+ -o-transition-duration: 0.5s;
+ transition-property: background-color, box-shadow;
+ transition-duration: 0.5s;
+}
+
+div.line:after {
+ content:"\000A";
+ white-space: pre;
+}
+
+div.line.glow {
+ background-color: cyan;
+ box-shadow: 0 0 10px cyan;
+}
+
+
+span.lineno {
+ padding-right: 4px;
+ text-align: right;
+ border-right: 2px solid #0F0;
+ background-color: #E8E8E8;
+ white-space: pre;
+}
+span.lineno a {
+ background-color: #D8D8D8;
+}
+
+span.lineno a:hover {
+ background-color: #C8C8C8;
+}
+
+div.ah, span.ah {
+ background-color: black;
+ font-weight: bold;
+ color: #ffffff;
+ margin-bottom: 3px;
+ margin-top: 3px;
+ padding: 0.2em;
+ border: solid thin #333;
+ border-radius: 0.5em;
+ -webkit-border-radius: .5em;
+ -moz-border-radius: .5em;
+ box-shadow: 2px 2px 3px #999;
+ -webkit-box-shadow: 2px 2px 3px #999;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
+ background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%);
+}
+
+div.classindex ul {
+ list-style: none;
+ padding-left: 0;
+}
+
+div.classindex span.ai {
+ display: inline-block;
+}
+
+div.groupHeader {
+ margin-left: 16px;
+ margin-top: 12px;
+ font-weight: bold;
+}
+
+div.groupText {
+ margin-left: 16px;
+ font-style: italic;
+}
+
+body {
+ background-color: white;
+ color: black;
+ margin: 0;
+}
+
+div.contents {
+ margin-top: 10px;
+ margin-left: 12px;
+ margin-right: 8px;
+}
+
+td.indexkey {
+ background-color: #EBEFF6;
+ font-weight: bold;
+ border: 1px solid #C4CFE5;
+ margin: 2px 0px 2px 0;
+ padding: 2px 10px;
+ white-space: nowrap;
+ vertical-align: top;
+}
+
+td.indexvalue {
+ background-color: #EBEFF6;
+ border: 1px solid #C4CFE5;
+ padding: 2px 10px;
+ margin: 2px 0px;
+}
+
+tr.memlist {
+ background-color: #EEF1F7;
+}
+
+p.formulaDsp {
+ text-align: center;
+}
+
+img.formulaDsp {
+
+}
+
+img.formulaInl {
+ vertical-align: middle;
+}
+
+div.center {
+ text-align: center;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ padding: 0px;
+}
+
+div.center img {
+ border: 0px;
+}
+
+address.footer {
+ text-align: right;
+ padding-right: 12px;
+}
+
+img.footer {
+ border: 0px;
+ vertical-align: middle;
+}
+
+/* @group Code Colorization */
+
+span.keyword {
+ color: #008000
+}
+
+span.keywordtype {
+ color: #604020
+}
+
+span.keywordflow {
+ color: #e08000
+}
+
+span.comment {
+ color: #800000
+}
+
+span.preprocessor {
+ color: #806020
+}
+
+span.stringliteral {
+ color: #002080
+}
+
+span.charliteral {
+ color: #008080
+}
+
+span.vhdldigit {
+ color: #ff00ff
+}
+
+span.vhdlchar {
+ color: #000000
+}
+
+span.vhdlkeyword {
+ color: #700070
+}
+
+span.vhdllogic {
+ color: #ff0000
+}
+
+blockquote {
+ background-color: #F7F8FB;
+ border-left: 2px solid #9CAFD4;
+ margin: 0 24px 0 4px;
+ padding: 0 12px 0 16px;
+}
+
+/* @end */
+
+/*
+.search {
+ color: #003399;
+ font-weight: bold;
+}
+
+form.search {
+ margin-bottom: 0px;
+ margin-top: 0px;
+}
+
+input.search {
+ font-size: 75%;
+ color: #000080;
+ font-weight: normal;
+ background-color: #e8eef2;
+}
+*/
+
+td.tiny {
+ font-size: 75%;
+}
+
+.dirtab {
+ padding: 4px;
+ border-collapse: collapse;
+ border: 1px solid #A3B4D7;
+}
+
+th.dirtab {
+ background: #EBEFF6;
+ font-weight: bold;
+}
+
+hr {
+ height: 0px;
+ border: none;
+ border-top: 1px solid #4A6AAA;
+}
+
+hr.footer {
+ height: 1px;
+}
+
+/* @group Member Descriptions */
+
+table.memberdecls {
+ border-spacing: 0px;
+ padding: 0px;
+}
+
+.memberdecls td, .fieldtable tr {
+ -webkit-transition-property: background-color, box-shadow;
+ -webkit-transition-duration: 0.5s;
+ -moz-transition-property: background-color, box-shadow;
+ -moz-transition-duration: 0.5s;
+ -ms-transition-property: background-color, box-shadow;
+ -ms-transition-duration: 0.5s;
+ -o-transition-property: background-color, box-shadow;
+ -o-transition-duration: 0.5s;
+ transition-property: background-color, box-shadow;
+ transition-duration: 0.5s;
+}
+
+.memberdecls td.glow, .fieldtable tr.glow {
+ background-color: cyan;
+ box-shadow: 0 0 15px cyan;
+}
+
+.mdescLeft, .mdescRight,
+.memItemLeft, .memItemRight,
+.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
+ background-color: #F9FAFC;
+ border: none;
+ margin: 4px;
+ padding: 1px 0 0 8px;
+}
+
+.mdescLeft, .mdescRight {
+ padding: 0px 8px 4px 8px;
+ color: #555;
+}
+
+.memSeparator {
+ border-bottom: 1px solid #DEE4F0;
+ line-height: 1px;
+ margin: 0px;
+ padding: 0px;
+}
+
+.memItemLeft, .memTemplItemLeft {
+ white-space: nowrap;
+}
+
+.memItemRight {
+ width: 100%;
+}
+
+.memTemplParams {
+ color: #4665A2;
+ white-space: nowrap;
+ font-size: 80%;
+}
+
+/* @end */
+
+/* @group Member Details */
+
+/* Styles for detailed member documentation */
+
+.memtemplate {
+ font-size: 80%;
+ color: #4665A2;
+ font-weight: normal;
+ margin-left: 9px;
+}
+
+.memnav {
+ background-color: #EBEFF6;
+ border: 1px solid #A3B4D7;
+ text-align: center;
+ margin: 2px;
+ margin-right: 15px;
+ padding: 2px;
+}
+
+.mempage {
+ width: 100%;
+}
+
+.memitem {
+ padding: 0;
+ margin-bottom: 10px;
+ margin-right: 5px;
+ -webkit-transition: box-shadow 0.5s linear;
+ -moz-transition: box-shadow 0.5s linear;
+ -ms-transition: box-shadow 0.5s linear;
+ -o-transition: box-shadow 0.5s linear;
+ transition: box-shadow 0.5s linear;
+ display: table !important;
+ width: 100%;
+}
+
+.memitem.glow {
+ box-shadow: 0 0 15px cyan;
+}
+
+.memname {
+ font-weight: bold;
+ margin-left: 6px;
+}
+
+.memname td {
+ vertical-align: bottom;
+}
+
+.memproto, dl.reflist dt {
+ border-top: 1px solid #A8B8D9;
+ border-left: 1px solid #A8B8D9;
+ border-right: 1px solid #A8B8D9;
+ padding: 6px 0px 6px 0px;
+ color: #253555;
+ font-weight: bold;
+ text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+ background-image:url('nav_f.png');
+ background-repeat:repeat-x;
+ background-color: #E2E8F2;
+ /* opera specific markup */
+ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ border-top-right-radius: 4px;
+ border-top-left-radius: 4px;
+ /* firefox specific markup */
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+ -moz-border-radius-topright: 4px;
+ -moz-border-radius-topleft: 4px;
+ /* webkit specific markup */
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ -webkit-border-top-right-radius: 4px;
+ -webkit-border-top-left-radius: 4px;
+
+}
+
+.memdoc, dl.reflist dd {
+ border-bottom: 1px solid #A8B8D9;
+ border-left: 1px solid #A8B8D9;
+ border-right: 1px solid #A8B8D9;
+ padding: 6px 10px 2px 10px;
+ background-color: #FBFCFD;
+ border-top-width: 0;
+ background-image:url('nav_g.png');
+ background-repeat:repeat-x;
+ background-color: #FFFFFF;
+ /* opera specific markup */
+ border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 4px;
+ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ /* firefox specific markup */
+ -moz-border-radius-bottomleft: 4px;
+ -moz-border-radius-bottomright: 4px;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+ /* webkit specific markup */
+ -webkit-border-bottom-left-radius: 4px;
+ -webkit-border-bottom-right-radius: 4px;
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+}
+
+dl.reflist dt {
+ padding: 5px;
+}
+
+dl.reflist dd {
+ margin: 0px 0px 10px 0px;
+ padding: 5px;
+}
+
+.paramkey {
+ text-align: right;
+}
+
+.paramtype {
+ white-space: nowrap;
+}
+
+.paramname {
+ color: #602020;
+ white-space: nowrap;
+}
+.paramname em {
+ font-style: normal;
+}
+.paramname code {
+ line-height: 14px;
+}
+
+.params, .retval, .exception, .tparams {
+ margin-left: 0px;
+ padding-left: 0px;
+}
+
+.params .paramname, .retval .paramname {
+ font-weight: bold;
+ vertical-align: top;
+}
+
+.params .paramtype {
+ font-style: italic;
+ vertical-align: top;
+}
+
+.params .paramdir {
+ font-family: "courier new",courier,monospace;
+ vertical-align: top;
+}
+
+table.mlabels {
+ border-spacing: 0px;
+}
+
+td.mlabels-left {
+ width: 100%;
+ padding: 0px;
+}
+
+td.mlabels-right {
+ vertical-align: bottom;
+ padding: 0px;
+ white-space: nowrap;
+}
+
+span.mlabels {
+ margin-left: 8px;
+}
+
+span.mlabel {
+ background-color: #728DC1;
+ border-top:1px solid #5373B4;
+ border-left:1px solid #5373B4;
+ border-right:1px solid #C4CFE5;
+ border-bottom:1px solid #C4CFE5;
+ text-shadow: none;
+ color: white;
+ margin-right: 4px;
+ padding: 2px 3px;
+ border-radius: 3px;
+ font-size: 7pt;
+ white-space: nowrap;
+ vertical-align: middle;
+}
+
+
+
+/* @end */
+
+/* these are for tree view inside a (index) page */
+
+div.directory {
+ margin: 10px 0px;
+ border-top: 1px solid #9CAFD4;
+ border-bottom: 1px solid #9CAFD4;
+ width: 100%;
+}
+
+.directory table {
+ border-collapse:collapse;
+}
+
+.directory td {
+ margin: 0px;
+ padding: 0px;
+ vertical-align: top;
+}
+
+.directory td.entry {
+ white-space: nowrap;
+ padding-right: 6px;
+ padding-top: 3px;
+}
+
+.directory td.entry a {
+ outline:none;
+}
+
+.directory td.entry a img {
+ border: none;
+}
+
+.directory td.desc {
+ width: 100%;
+ padding-left: 6px;
+ padding-right: 6px;
+ padding-top: 3px;
+ border-left: 1px solid rgba(0,0,0,0.05);
+}
+
+.directory tr.even {
+ padding-left: 6px;
+ background-color: #F7F8FB;
+}
+
+.directory img {
+ vertical-align: -30%;
+}
+
+.directory .levels {
+ white-space: nowrap;
+ width: 100%;
+ text-align: right;
+ font-size: 9pt;
+}
+
+.directory .levels span {
+ cursor: pointer;
+ padding-left: 2px;
+ padding-right: 2px;
+ color: #3D578C;
+}
+
+.arrow {
+ color: #9CAFD4;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ cursor: pointer;
+ font-size: 80%;
+ display: inline-block;
+ width: 16px;
+ height: 22px;
+}
+
+.icon {
+ font-family: Arial, Helvetica;
+ font-weight: bold;
+ font-size: 12px;
+ height: 14px;
+ width: 16px;
+ display: inline-block;
+ background-color: #728DC1;
+ color: white;
+ text-align: center;
+ border-radius: 4px;
+ margin-left: 2px;
+ margin-right: 2px;
+}
+
+.icona {
+ width: 24px;
+ height: 22px;
+ display: inline-block;
+}
+
+.iconfopen {
+ width: 24px;
+ height: 18px;
+ margin-bottom: 4px;
+ background-image:url('folderopen.png');
+ background-position: 0px -4px;
+ background-repeat: repeat-y;
+ vertical-align:top;
+ display: inline-block;
+}
+
+.iconfclosed {
+ width: 24px;
+ height: 18px;
+ margin-bottom: 4px;
+ background-image:url('folderclosed.png');
+ background-position: 0px -4px;
+ background-repeat: repeat-y;
+ vertical-align:top;
+ display: inline-block;
+}
+
+.icondoc {
+ width: 24px;
+ height: 18px;
+ margin-bottom: 4px;
+ background-image:url('doc.png');
+ background-position: 0px -4px;
+ background-repeat: repeat-y;
+ vertical-align:top;
+ display: inline-block;
+}
+
+table.directory {
+ font: 400 14px Roboto,sans-serif;
+}
+
+/* @end */
+
+div.dynheader {
+ margin-top: 8px;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+address {
+ font-style: normal;
+ color: #2A3D61;
+}
+
+table.doxtable caption {
+ caption-side: top;
+}
+
+table.doxtable {
+ border-collapse:collapse;
+ margin-top: 4px;
+ margin-bottom: 4px;
+}
+
+table.doxtable td, table.doxtable th {
+ border: 1px solid #2D4068;
+ padding: 3px 7px 2px;
+}
+
+table.doxtable th {
+ background-color: #374F7F;
+ color: #FFFFFF;
+ font-size: 110%;
+ padding-bottom: 4px;
+ padding-top: 5px;
+}
+
+table.fieldtable {
+ /*width: 100%;*/
+ margin-bottom: 10px;
+ border: 1px solid #A8B8D9;
+ border-spacing: 0px;
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ border-radius: 4px;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+ -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+ box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+}
+
+.fieldtable td, .fieldtable th {
+ padding: 3px 7px 2px;
+}
+
+.fieldtable td.fieldtype, .fieldtable td.fieldname {
+ white-space: nowrap;
+ border-right: 1px solid #A8B8D9;
+ border-bottom: 1px solid #A8B8D9;
+ vertical-align: top;
+}
+
+.fieldtable td.fieldname {
+ padding-top: 3px;
+}
+
+.fieldtable td.fielddoc {
+ border-bottom: 1px solid #A8B8D9;
+ /*width: 100%;*/
+}
+
+.fieldtable td.fielddoc p:first-child {
+ margin-top: 0px;
+}
+
+.fieldtable td.fielddoc p:last-child {
+ margin-bottom: 2px;
+}
+
+.fieldtable tr:last-child td {
+ border-bottom: none;
+}
+
+.fieldtable th {
+ background-image:url('nav_f.png');
+ background-repeat:repeat-x;
+ background-color: #E2E8F2;
+ font-size: 90%;
+ color: #253555;
+ padding-bottom: 4px;
+ padding-top: 5px;
+ text-align:left;
+ -moz-border-radius-topleft: 4px;
+ -moz-border-radius-topright: 4px;
+ -webkit-border-top-left-radius: 4px;
+ -webkit-border-top-right-radius: 4px;
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+ border-bottom: 1px solid #A8B8D9;
+}
+
+
+.tabsearch {
+ top: 0px;
+ left: 10px;
+ height: 36px;
+ background-image: url('tab_b.png');
+ z-index: 101;
+ overflow: hidden;
+ font-size: 13px;
+}
+
+.navpath ul
+{
+ font-size: 11px;
+ background-image:url('tab_b.png');
+ background-repeat:repeat-x;
+ background-position: 0 -5px;
+ height:30px;
+ line-height:30px;
+ color:#8AA0CC;
+ border:solid 1px #C2CDE4;
+ overflow:hidden;
+ margin:0px;
+ padding:0px;
+}
+
+.navpath li
+{
+ list-style-type:none;
+ float:left;
+ padding-left:10px;
+ padding-right:15px;
+ background-image:url('bc_s.png');
+ background-repeat:no-repeat;
+ background-position:right;
+ color:#364D7C;
+}
+
+.navpath li.navelem a
+{
+ height:32px;
+ display:block;
+ text-decoration: none;
+ outline: none;
+ color: #283A5D;
+ font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+ text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+ text-decoration: none;
+}
+
+.navpath li.navelem a:hover
+{
+ color:#6884BD;
+}
+
+.navpath li.footer
+{
+ list-style-type:none;
+ float:right;
+ padding-left:10px;
+ padding-right:15px;
+ background-image:none;
+ background-repeat:no-repeat;
+ background-position:right;
+ color:#364D7C;
+ font-size: 8pt;
+}
+
+
+div.summary
+{
+ float: right;
+ font-size: 8pt;
+ padding-right: 5px;
+ width: 50%;
+ text-align: right;
+}
+
+div.summary a
+{
+ white-space: nowrap;
+}
+
+table.classindex
+{
+ margin: 10px;
+ white-space: nowrap;
+ margin-left: 3%;
+ margin-right: 3%;
+ width: 94%;
+ border: 0;
+ border-spacing: 0;
+ padding: 0;
+}
+
+div.ingroups
+{
+ font-size: 8pt;
+ width: 50%;
+ text-align: left;
+}
+
+div.ingroups a
+{
+ white-space: nowrap;
+}
+
+div.header
+{
+ background-image:url('nav_h.png');
+ background-repeat:repeat-x;
+ background-color: #F9FAFC;
+ margin: 0px;
+ border-bottom: 1px solid #C4CFE5;
+}
+
+div.headertitle
+{
+ padding: 5px 5px 5px 10px;
+}
+
+dl
+{
+ padding: 0 0 0 10px;
+}
+
+/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */
+dl.section
+{
+ margin-left: 0px;
+ padding-left: 0px;
+}
+
+dl.note
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #D0C000;
+}
+
+dl.warning, dl.attention
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #FF0000;
+}
+
+dl.pre, dl.post, dl.invariant
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #00D000;
+}
+
+dl.deprecated
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #505050;
+}
+
+dl.todo
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #00C0E0;
+}
+
+dl.test
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #3030E0;
+}
+
+dl.bug
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #C08050;
+}
+
+dl.section dd {
+ margin-bottom: 6px;
+}
+
+
+#projectlogo
+{
+ text-align: center;
+ vertical-align: bottom;
+ border-collapse: separate;
+}
+
+#projectlogo img
+{
+ border: 0px none;
+}
+
+#projectalign
+{
+ vertical-align: middle;
+}
+
+#projectname
+{
+ font: 300% Tahoma, Arial,sans-serif;
+ margin: 0px;
+ padding: 2px 0px;
+}
+
+#projectbrief
+{
+ font: 120% Tahoma, Arial,sans-serif;
+ margin: 0px;
+ padding: 0px;
+}
+
+#projectnumber
+{
+ font: 50% Tahoma, Arial,sans-serif;
+ margin: 0px;
+ padding: 0px;
+}
+
+#titlearea
+{
+ padding: 0px;
+ margin: 0px;
+ width: 100%;
+ border-bottom: 1px solid #5373B4;
+}
+
+.image
+{
+ text-align: center;
+}
+
+.dotgraph
+{
+ text-align: center;
+}
+
+.mscgraph
+{
+ text-align: center;
+}
+
+.diagraph
+{
+ text-align: center;
+}
+
+.caption
+{
+ font-weight: bold;
+}
+
+div.zoom
+{
+ border: 1px solid #90A5CE;
+}
+
+dl.citelist {
+ margin-bottom:50px;
+}
+
+dl.citelist dt {
+ color:#334975;
+ float:left;
+ font-weight:bold;
+ margin-right:10px;
+ padding:5px;
+}
+
+dl.citelist dd {
+ margin:2px 0;
+ padding:5px 0;
+}
+
+div.toc {
+ padding: 14px 25px;
+ background-color: #F4F6FA;
+ border: 1px solid #D8DFEE;
+ border-radius: 7px 7px 7px 7px;
+ float: right;
+ height: auto;
+ margin: 0 8px 10px 10px;
+ width: 200px;
+}
+
+div.toc li {
+ background: url("bdwn.png") no-repeat scroll 0 5px transparent;
+ font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
+ margin-top: 5px;
+ padding-left: 10px;
+ padding-top: 2px;
+}
+
+div.toc h3 {
+ font: bold 12px/1.2 Arial,FreeSans,sans-serif;
+ color: #4665A2;
+ border-bottom: 0 none;
+ margin: 0;
+}
+
+div.toc ul {
+ list-style: none outside none;
+ border: medium none;
+ padding: 0px;
+}
+
+div.toc li.level1 {
+ margin-left: 0px;
+}
+
+div.toc li.level2 {
+ margin-left: 15px;
+}
+
+div.toc li.level3 {
+ margin-left: 30px;
+}
+
+div.toc li.level4 {
+ margin-left: 45px;
+}
+
+.inherit_header {
+ font-weight: bold;
+ color: gray;
+ cursor: pointer;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.inherit_header td {
+ padding: 6px 0px 2px 5px;
+}
+
+.inherit {
+ display: none;
+}
+
+tr.heading h2 {
+ margin-top: 12px;
+ margin-bottom: 4px;
+}
+
+/* tooltip related style info */
+
+.ttc {
+ position: absolute;
+ display: none;
+}
+
+#powerTip {
+ cursor: default;
+ white-space: nowrap;
+ background-color: white;
+ border: 1px solid gray;
+ border-radius: 4px 4px 4px 4px;
+ box-shadow: 1px 1px 7px gray;
+ display: none;
+ font-size: smaller;
+ max-width: 80%;
+ opacity: 0.9;
+ padding: 1ex 1em 1em;
+ position: absolute;
+ z-index: 2147483647;
+}
+
+#powerTip div.ttdoc {
+ color: grey;
+ font-style: italic;
+}
+
+#powerTip div.ttname a {
+ font-weight: bold;
+}
+
+#powerTip div.ttname {
+ font-weight: bold;
+}
+
+#powerTip div.ttdeci {
+ color: #006318;
+}
+
+#powerTip div {
+ margin: 0px;
+ padding: 0px;
+ font: 12px/16px Roboto,sans-serif;
+}
+
+#powerTip:before, #powerTip:after {
+ content: "";
+ position: absolute;
+ margin: 0px;
+}
+
+#powerTip.n:after, #powerTip.n:before,
+#powerTip.s:after, #powerTip.s:before,
+#powerTip.w:after, #powerTip.w:before,
+#powerTip.e:after, #powerTip.e:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.nw:after, #powerTip.nw:before,
+#powerTip.sw:after, #powerTip.sw:before {
+ border: solid transparent;
+ content: " ";
+ height: 0;
+ width: 0;
+ position: absolute;
+}
+
+#powerTip.n:after, #powerTip.s:after,
+#powerTip.w:after, #powerTip.e:after,
+#powerTip.nw:after, #powerTip.ne:after,
+#powerTip.sw:after, #powerTip.se:after {
+ border-color: rgba(255, 255, 255, 0);
+}
+
+#powerTip.n:before, #powerTip.s:before,
+#powerTip.w:before, #powerTip.e:before,
+#powerTip.nw:before, #powerTip.ne:before,
+#powerTip.sw:before, #powerTip.se:before {
+ border-color: rgba(128, 128, 128, 0);
+}
+
+#powerTip.n:after, #powerTip.n:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.nw:after, #powerTip.nw:before {
+ top: 100%;
+}
+
+#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after {
+ border-top-color: #ffffff;
+ border-width: 10px;
+ margin: 0px -10px;
+}
+#powerTip.n:before {
+ border-top-color: #808080;
+ border-width: 11px;
+ margin: 0px -11px;
+}
+#powerTip.n:after, #powerTip.n:before {
+ left: 50%;
+}
+
+#powerTip.nw:after, #powerTip.nw:before {
+ right: 14px;
+}
+
+#powerTip.ne:after, #powerTip.ne:before {
+ left: 14px;
+}
+
+#powerTip.s:after, #powerTip.s:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.sw:after, #powerTip.sw:before {
+ bottom: 100%;
+}
+
+#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after {
+ border-bottom-color: #ffffff;
+ border-width: 10px;
+ margin: 0px -10px;
+}
+
+#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before {
+ border-bottom-color: #808080;
+ border-width: 11px;
+ margin: 0px -11px;
+}
+
+#powerTip.s:after, #powerTip.s:before {
+ left: 50%;
+}
+
+#powerTip.sw:after, #powerTip.sw:before {
+ right: 14px;
+}
+
+#powerTip.se:after, #powerTip.se:before {
+ left: 14px;
+}
+
+#powerTip.e:after, #powerTip.e:before {
+ left: 100%;
+}
+#powerTip.e:after {
+ border-left-color: #ffffff;
+ border-width: 10px;
+ top: 50%;
+ margin-top: -10px;
+}
+#powerTip.e:before {
+ border-left-color: #808080;
+ border-width: 11px;
+ top: 50%;
+ margin-top: -11px;
+}
+
+#powerTip.w:after, #powerTip.w:before {
+ right: 100%;
+}
+#powerTip.w:after {
+ border-right-color: #ffffff;
+ border-width: 10px;
+ top: 50%;
+ margin-top: -10px;
+}
+#powerTip.w:before {
+ border-right-color: #808080;
+ border-width: 11px;
+ top: 50%;
+ margin-top: -11px;
+}
+
+@media print
+{
+ #top { display: none; }
+ #side-nav { display: none; }
+ #nav-path { display: none; }
+ body { overflow:visible; }
+ h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
+ .summary { display: none; }
+ .memitem { page-break-inside: avoid; }
+ #doc-content
+ {
+ margin-left:0 !important;
+ height:auto !important;
+ width:auto !important;
+ overflow:inherit;
+ display:inline;
+ }
+}
+
diff --git a/docs/API/doxygen.png b/docs/API/doxygen.png
index f0a274b..3ff17d8 100644..100755
--- a/docs/API/doxygen.png
+++ b/docs/API/doxygen.png
Binary files differ
diff --git a/docs/API/dynsections.js b/docs/API/dynsections.js
new file mode 100755
index 0000000..1e6bf07
--- /dev/null
+++ b/docs/API/dynsections.js
@@ -0,0 +1,104 @@
+function toggleVisibility(linkObj)
+{
+ var base = $(linkObj).attr('id');
+ var summary = $('#'+base+'-summary');
+ var content = $('#'+base+'-content');
+ var trigger = $('#'+base+'-trigger');
+ var src=$(trigger).attr('src');
+ if (content.is(':visible')===true) {
+ content.hide();
+ summary.show();
+ $(linkObj).addClass('closed').removeClass('opened');
+ $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
+ } else {
+ content.show();
+ summary.hide();
+ $(linkObj).removeClass('closed').addClass('opened');
+ $(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
+ }
+ return false;
+}
+
+function updateStripes()
+{
+ $('table.directory tr').
+ removeClass('even').filter(':visible:even').addClass('even');
+}
+
+function toggleLevel(level)
+{
+ $('table.directory tr').each(function() {
+ var l = this.id.split('_').length-1;
+ var i = $('#img'+this.id.substring(3));
+ var a = $('#arr'+this.id.substring(3));
+ if (l<level+1) {
+ i.removeClass('iconfopen iconfclosed').addClass('iconfopen');
+ a.html('&#9660;');
+ $(this).show();
+ } else if (l==level+1) {
+ i.removeClass('iconfclosed iconfopen').addClass('iconfclosed');
+ a.html('&#9658;');
+ $(this).show();
+ } else {
+ $(this).hide();
+ }
+ });
+ updateStripes();
+}
+
+function toggleFolder(id)
+{
+ // the clicked row
+ var currentRow = $('#row_'+id);
+
+ // all rows after the clicked row
+ var rows = currentRow.nextAll("tr");
+
+ var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
+
+ // only match elements AFTER this one (can't hide elements before)
+ var childRows = rows.filter(function() { return this.id.match(re); });
+
+ // first row is visible we are HIDING
+ if (childRows.filter(':first').is(':visible')===true) {
+ // replace down arrow by right arrow for current row
+ var currentRowSpans = currentRow.find("span");
+ currentRowSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
+ currentRowSpans.filter(".arrow").html('&#9658;');
+ rows.filter("[id^=row_"+id+"]").hide(); // hide all children
+ } else { // we are SHOWING
+ // replace right arrow by down arrow for current row
+ var currentRowSpans = currentRow.find("span");
+ currentRowSpans.filter(".iconfclosed").removeClass("iconfclosed").addClass("iconfopen");
+ currentRowSpans.filter(".arrow").html('&#9660;');
+ // replace down arrows by right arrows for child rows
+ var childRowsSpans = childRows.find("span");
+ childRowsSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
+ childRowsSpans.filter(".arrow").html('&#9658;');
+ childRows.show(); //show all children
+ }
+ updateStripes();
+}
+
+
+function toggleInherit(id)
+{
+ var rows = $('tr.inherit.'+id);
+ var img = $('tr.inherit_header.'+id+' img');
+ var src = $(img).attr('src');
+ if (rows.filter(':first').is(':visible')===true) {
+ rows.css('display','none');
+ $(img).attr('src',src.substring(0,src.length-8)+'closed.png');
+ } else {
+ rows.css('display','table-row'); // using show() causes jump in firefox
+ $(img).attr('src',src.substring(0,src.length-10)+'open.png');
+ }
+}
+
+
+$(document).ready(function() {
+ $('.code,.codeRef').each(function() {
+ $(this).data('powertip',$('#'+$(this).attr('href').replace(/.*\//,'').replace(/[^a-z_A-Z0-9]/g,'_')).html());
+ $(this).powerTip({ placement: 's', smartPlacement: true, mouseOnToPopup: true });
+ });
+});
diff --git a/docs/API/files.html b/docs/API/files.html
index 2652b23..76eac44 100644..100755
--- a/docs/API/files.html
+++ b/docs/API/files.html
@@ -1,82 +1,112 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: File Index</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
+<title>File List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
- <li class="current"><a href="files.html"><span>File&nbsp;List</span></a></li>
- <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('files.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">File List</div> </div>
+</div><!--header-->
<div class="contents">
-<h1>File List</h1>Here is a list of all documented files with brief descriptions:<table>
- <tr><td class="indexkey"><a class="el" href="TXMPFiles_8hpp.html">TXMPFiles.hpp</a> <a href="TXMPFiles_8hpp_source.html">[code]</a></td><td class="indexvalue">API for access to the main (document-level) metadata in a file_ </td></tr>
- <tr><td class="indexkey"><a class="el" href="TXMPFiles_8incl__cpp.html">TXMPFiles.incl_cpp</a></td><td class="indexvalue">The implementation of the <a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file.">TXMPFiles</a> template class </td></tr>
- <tr><td class="indexkey"><a class="el" href="TXMPIterator_8hpp.html">TXMPIterator.hpp</a> <a href="TXMPIterator_8hpp_source.html">[code]</a></td><td class="indexvalue">API for access to the XMP Toolkit iteration services </td></tr>
- <tr><td class="indexkey"><a class="el" href="TXMPIterator_8incl__cpp.html">TXMPIterator.incl_cpp</a></td><td class="indexvalue">The implementation of the <a class="el" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services.">TXMPIterator</a> template class </td></tr>
- <tr><td class="indexkey"><a class="el" href="TXMPMeta_8hpp.html">TXMPMeta.hpp</a> <a href="TXMPMeta_8hpp_source.html">[code]</a></td><td class="indexvalue">API for access to the XMP Toolkit core services </td></tr>
- <tr><td class="indexkey"><a class="el" href="TXMPMeta_8incl__cpp.html">TXMPMeta.incl_cpp</a></td><td class="indexvalue">The implementation of the <a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta</a> template class </td></tr>
- <tr><td class="indexkey"><a class="el" href="TXMPUtils_8hpp.html">TXMPUtils.hpp</a> <a href="TXMPUtils_8hpp_source.html">[code]</a></td><td class="indexvalue">API for access to the XMP Toolkit utility services </td></tr>
- <tr><td class="indexkey"><a class="el" href="TXMPUtils_8incl__cpp.html">TXMPUtils.incl_cpp</a></td><td class="indexvalue">The implementation of the <a class="el" href="classTXMPUtils.html" title="API for access to the XMP Toolkit utility services.">TXMPUtils</a> template class </td></tr>
- <tr><td class="indexkey"><a class="el" href="XMP_8incl__cpp.html">XMP.incl_cpp</a></td><td class="indexvalue">Overall client glue file for the XMP toolkit </td></tr>
- <tr><td class="indexkey"><a class="el" href="XMP__Const_8h.html">XMP_Const.h</a> <a href="XMP__Const_8h_source.html">[code]</a></td><td class="indexvalue">Common C/C++ types and constants for the XMP toolkit </td></tr>
+<div class="textblock">Here is a list of all files with brief descriptions:</div><div class="directory">
+<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span><span onclick="javascript:toggleLevel(4);">4</span><span onclick="javascript:toggleLevel(5);">5</span><span onclick="javascript:toggleLevel(6);">6</span>]</div><table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span id="img_0_" class="iconfopen" onclick="toggleFolder('0_')">&#160;</span><a class="el" href="dir_f832923ad3cb060bc87ad85e68b8a1c3.html" target="_self">public</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_0_" class="arrow" onclick="toggleFolder('0_0_')">&#9660;</span><span id="img_0_0_" class="iconfopen" onclick="toggleFolder('0_0_')">&#160;</span><a class="el" href="dir_0fb2101ba02d68f078970216a1fe0334.html" target="_self">include</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_0_0_0_" class="arrow" onclick="toggleFolder('0_0_0_')">&#9660;</span><span id="img_0_0_0_" class="iconfopen" onclick="toggleFolder('0_0_0_')">&#160;</span><a class="el" href="dir_0e5f10c8914b73a2f667b010a9332417.html" target="_self">client-glue</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_0_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="WXMP__Common_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="WXMP__Common_8hpp.html" target="_self">WXMP_Common.hpp</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_1_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="WXMPFiles_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="WXMPFiles_8hpp.html" target="_self">WXMPFiles.hpp</a></td><td class="desc">High level support to access metadata in files of interest to Adobe applications </td></tr>
+<tr id="row_0_0_0_2_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="WXMPIterator_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="WXMPIterator_8hpp.html" target="_self">WXMPIterator.hpp</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_3_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="WXMPMeta_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="WXMPMeta_8hpp.html" target="_self">WXMPMeta.hpp</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_4_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="WXMPUtils_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="WXMPUtils_8hpp.html" target="_self">WXMPUtils.hpp</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_0_0_1_" class="arrow" onclick="toggleFolder('0_0_1_')">&#9660;</span><span id="img_0_0_1_" class="iconfopen" onclick="toggleFolder('0_0_1_')">&#160;</span><a class="el" href="dir_13a16c6fe91841c884a316194c73d6c1.html" target="_self">XMPCommon</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_0_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span id="arr_0_0_1_0_" class="arrow" onclick="toggleFolder('0_0_1_0_')">&#9660;</span><span id="img_0_0_1_0_" class="iconfopen" onclick="toggleFolder('0_0_1_0_')">&#160;</span><a class="el" href="dir_a2aafb81ccb63bf25660f5baa8263a1b.html" target="_self">Interfaces</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_0_0_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span id="arr_0_0_1_0_0_" class="arrow" onclick="toggleFolder('0_0_1_0_0_')">&#9660;</span><span id="img_0_0_1_0_0_" class="iconfopen" onclick="toggleFolder('0_0_1_0_0_')">&#160;</span><a class="el" href="dir_3ce2d6caf42dd158441e2c69545b6561.html" target="_self">BaseInterfaces</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_0_0_0_"><td class="entry"><span style="width:96px;display:inline-block;">&#160;</span><a href="IConfigurable_8h_source.html"><span class="icondoc"></span></a><a class="el" href="IConfigurable_8h.html" target="_self">IConfigurable.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_0_0_1_" class="even"><td class="entry"><span style="width:96px;display:inline-block;">&#160;</span><a href="ISharedObject_8h_source.html"><span class="icondoc"></span></a><a class="el" href="ISharedObject_8h.html" target="_self">ISharedObject.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_0_0_2_"><td class="entry"><span style="width:96px;display:inline-block;">&#160;</span><a href="IThreadSafe_8h_source.html"><span class="icondoc"></span></a><a class="el" href="IThreadSafe_8h.html" target="_self">IThreadSafe.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_0_0_3_" class="even"><td class="entry"><span style="width:96px;display:inline-block;">&#160;</span><a href="IVersionable_8h_source.html"><span class="icondoc"></span></a><a class="el" href="IVersionable_8h.html" target="_self">IVersionable.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_0_1_"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="IConfigurationManager_8h_source.html"><span class="icondoc"></span></a><a class="el" href="IConfigurationManager_8h.html" target="_self">IConfigurationManager.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_0_2_" class="even"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="IError_8h_source.html"><span class="icondoc"></span></a><a class="el" href="IError_8h.html" target="_self">IError.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_0_3_"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="IErrorNotifier_8h_source.html"><span class="icondoc"></span></a><a class="el" href="IErrorNotifier_8h.html" target="_self">IErrorNotifier.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_0_4_" class="even"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="IMemoryAllocator_8h_source.html"><span class="icondoc"></span></a><a class="el" href="IMemoryAllocator_8h.html" target="_self">IMemoryAllocator.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_0_5_"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="IObjectFactory_8h_source.html"><span class="icondoc"></span></a><a class="el" href="IObjectFactory_8h.html" target="_self">IObjectFactory.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_0_6_" class="even"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="IUTF8String_8h_source.html"><span class="icondoc"></span></a><a class="el" href="IUTF8String_8h.html" target="_self">IUTF8String.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_1_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span id="arr_0_0_1_1_" class="arrow" onclick="toggleFolder('0_0_1_1_')">&#9660;</span><span id="img_0_0_1_1_" class="iconfopen" onclick="toggleFolder('0_0_1_1_')">&#160;</span><a class="el" href="dir_47a03e1ff379e16c0ff8dae8eab507ef.html" target="_self">Utilities</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_1_0_" class="even"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="TWrapperFunctions_8h_source.html"><span class="icondoc"></span></a><a class="el" href="TWrapperFunctions_8h.html" target="_self">TWrapperFunctions.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_1_1_"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="TWrapperFunctions2_8h_source.html"><span class="icondoc"></span></a><a class="el" href="TWrapperFunctions2_8h.html" target="_self">TWrapperFunctions2.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_2_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="XMPCommonDefines_8h_source.html"><span class="icondoc"></span></a><a class="el" href="XMPCommonDefines_8h.html" target="_self">XMPCommonDefines.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_3_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="XMPCommonErrorCodes_8h_source.html"><span class="icondoc"></span></a><a class="el" href="XMPCommonErrorCodes_8h.html" target="_self">XMPCommonErrorCodes.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_4_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="XMPCommonFwdDeclarations_8h_source.html"><span class="icondoc"></span></a><a class="el" href="XMPCommonFwdDeclarations_8h.html" target="_self">XMPCommonFwdDeclarations.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_5_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="XMPCommonLatestInterfaceVersions_8h_source.html"><span class="icondoc"></span></a><a class="el" href="XMPCommonLatestInterfaceVersions_8h.html" target="_self">XMPCommonLatestInterfaceVersions.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_0_0_2_" class="arrow" onclick="toggleFolder('0_0_2_')">&#9660;</span><span id="img_0_0_2_" class="iconfopen" onclick="toggleFolder('0_0_2_')">&#160;</span><a class="el" href="dir_d9f2167f9fcfc7d7593f67aa31e893fd.html" target="_self">XMPCore</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_2_0_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span id="arr_0_0_2_0_" class="arrow" onclick="toggleFolder('0_0_2_0_')">&#9660;</span><span id="img_0_0_2_0_" class="iconfopen" onclick="toggleFolder('0_0_2_0_')">&#160;</span><a class="el" href="dir_8223d5ea7844a33492dce354418ea45e.html" target="_self">Interfaces</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_2_0_0_" class="even"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="IArrayNode_8h_source.html"><span class="icondoc"></span></a><a class="el" href="IArrayNode_8h.html" target="_self">IArrayNode.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_2_0_1_"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="IClientDOMParser_8h_source.html"><span class="icondoc"></span></a><a class="el" href="IClientDOMParser_8h.html" target="_self">IClientDOMParser.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_2_0_2_" class="even"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="IClientDOMSerializer_8h_source.html"><span class="icondoc"></span></a><a class="el" href="IClientDOMSerializer_8h.html" target="_self">IClientDOMSerializer.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_2_0_3_"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="ICompositeNode_8h_source.html"><span class="icondoc"></span></a><a class="el" href="ICompositeNode_8h.html" target="_self">ICompositeNode.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_2_0_4_" class="even"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="ICoreConfigurationManager_8h_source.html"><span class="icondoc"></span></a><a class="el" href="ICoreConfigurationManager_8h.html" target="_self">ICoreConfigurationManager.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_2_0_5_"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="ICoreObjectFactory_8h_source.html"><span class="icondoc"></span></a><a class="el" href="ICoreObjectFactory_8h.html" target="_self">ICoreObjectFactory.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_2_0_6_" class="even"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="IDOMImplementationRegistry_8h_source.html"><span class="icondoc"></span></a><a class="el" href="IDOMImplementationRegistry_8h.html" target="_self">IDOMImplementationRegistry.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_2_0_7_"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="IDOMParser_8h_source.html"><span class="icondoc"></span></a><a class="el" href="IDOMParser_8h.html" target="_self">IDOMParser.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_2_0_8_" class="even"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="IDOMSerializer_8h_source.html"><span class="icondoc"></span></a><a class="el" href="IDOMSerializer_8h.html" target="_self">IDOMSerializer.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_2_0_9_"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="IMetadata_8h_source.html"><span class="icondoc"></span></a><a class="el" href="IMetadata_8h.html" target="_self">IMetadata.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_2_0_10_" class="even"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="INameSpacePrefixMap_8h_source.html"><span class="icondoc"></span></a><a class="el" href="INameSpacePrefixMap_8h.html" target="_self">INameSpacePrefixMap.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_2_0_11_"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="INode_8h_source.html"><span class="icondoc"></span></a><a class="el" href="INode_8h.html" target="_self">INode.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_2_0_12_" class="even"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="INodeIterator_8h_source.html"><span class="icondoc"></span></a><a class="el" href="INodeIterator_8h.html" target="_self">INodeIterator.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_2_0_13_"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="IPath_8h_source.html"><span class="icondoc"></span></a><a class="el" href="IPath_8h.html" target="_self">IPath.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_2_0_14_" class="even"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="IPathSegment_8h_source.html"><span class="icondoc"></span></a><a class="el" href="IPathSegment_8h.html" target="_self">IPathSegment.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_2_0_15_"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="ISimpleNode_8h_source.html"><span class="icondoc"></span></a><a class="el" href="ISimpleNode_8h.html" target="_self">ISimpleNode.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_2_0_16_" class="even"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="IStructureNode_8h_source.html"><span class="icondoc"></span></a><a class="el" href="IStructureNode_8h.html" target="_self">IStructureNode.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_2_1_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="XMPCoreDefines_8h_source.html"><span class="icondoc"></span></a><a class="el" href="XMPCoreDefines_8h.html" target="_self">XMPCoreDefines.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_2_2_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="XMPCoreErrorCodes_8h_source.html"><span class="icondoc"></span></a><a class="el" href="XMPCoreErrorCodes_8h.html" target="_self">XMPCoreErrorCodes.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_2_3_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="XMPCoreFwdDeclarations_8h_source.html"><span class="icondoc"></span></a><a class="el" href="XMPCoreFwdDeclarations_8h.html" target="_self">XMPCoreFwdDeclarations.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_2_4_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="XMPCoreLatestInterfaceVersions_8h_source.html"><span class="icondoc"></span></a><a class="el" href="XMPCoreLatestInterfaceVersions_8h.html" target="_self">XMPCoreLatestInterfaceVersions.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_3_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="TXMPFiles_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="TXMPFiles_8hpp.html" target="_self">TXMPFiles.hpp</a></td><td class="desc">API for access to the main (document-level) metadata in a file_ </td></tr>
+<tr id="row_0_0_4_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="TXMPIterator_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="TXMPIterator_8hpp.html" target="_self">TXMPIterator.hpp</a></td><td class="desc">API for access to the XMP Toolkit iteration services </td></tr>
+<tr id="row_0_0_5_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="TXMPMeta_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="TXMPMeta_8hpp.html" target="_self">TXMPMeta.hpp</a></td><td class="desc">API for access to the XMP Toolkit core services </td></tr>
+<tr id="row_0_0_6_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="TXMPUtils_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="TXMPUtils_8hpp.html" target="_self">TXMPUtils.hpp</a></td><td class="desc">API for access to the XMP Toolkit utility services </td></tr>
+<tr id="row_0_0_7_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="XMP_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="XMP_8hpp.html" target="_self">XMP.hpp</a></td><td class="desc">Overall header file for the XMP Toolkit </td></tr>
+<tr id="row_0_0_8_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="XMP__Const_8h_source.html"><span class="icondoc"></span></a><a class="el" href="XMP__Const_8h.html" target="_self">XMP_Const.h</a></td><td class="desc">Common C/C++ types and constants for the XMP toolkit </td></tr>
+<tr id="row_0_0_9_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="XMP__Environment_8h_source.html"><span class="icondoc"></span></a><a class="el" href="XMP__Environment_8h.html" target="_self">XMP_Environment.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_10_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="XMP__IO_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="XMP__IO_8hpp.html" target="_self">XMP_IO.hpp</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_11_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="XMP__Version_8h_source.html"><span class="icondoc"></span></a><a class="el" href="XMP__Version_8h.html" target="_self">XMP_Version.h</a></td><td class="desc"></td></tr>
</table>
-</div>
+</div><!-- directory -->
+</div><!-- contents -->
+</div><!-- doc-content -->
<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
</body>
</html>
diff --git a/docs/API/files.js b/docs/API/files.js
new file mode 100755
index 0000000..918481f
--- /dev/null
+++ b/docs/API/files.js
@@ -0,0 +1,4 @@
+var files =
+[
+ [ "public", "dir_f832923ad3cb060bc87ad85e68b8a1c3.html", "dir_f832923ad3cb060bc87ad85e68b8a1c3" ]
+]; \ No newline at end of file
diff --git a/docs/API/folderclosed.png b/docs/API/folderclosed.png
new file mode 100755
index 0000000..bb8ab35
--- /dev/null
+++ b/docs/API/folderclosed.png
Binary files differ
diff --git a/docs/API/folderopen.png b/docs/API/folderopen.png
new file mode 100755
index 0000000..d6c7f67
--- /dev/null
+++ b/docs/API/folderopen.png
Binary files differ
diff --git a/docs/API/functions.html b/docs/API/functions.html
index 3a0fbac..a2a5d90 100644..100755
--- a/docs/API/functions.html
+++ b/docs/API/functions.html
@@ -1,628 +1,128 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: Class Members</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
+<title>Class Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
- <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
- <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
<li class="current"><a href="functions.html"><span>All</span></a></li>
<li><a href="functions_func.html"><span>Functions</span></a></li>
<li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
- <li><a href="#index_a"><span>a</span></a></li>
- <li><a href="#index_b"><span>b</span></a></li>
- <li><a href="#index_c"><span>c</span></a></li>
- <li><a href="#index_d"><span>d</span></a></li>
- <li><a href="#index_e"><span>e</span></a></li>
- <li><a href="#index_f"><span>f</span></a></li>
- <li><a href="#index_g"><span>g</span></a></li>
- <li><a href="#index_h"><span>h</span></a></li>
- <li><a href="#index_i"><span>i</span></a></li>
- <li><a href="#index_l"><span>l</span></a></li>
- <li><a href="#index_m"><span>m</span></a></li>
- <li><a href="#index_n"><span>n</span></a></li>
- <li><a href="#index_o"><span>o</span></a></li>
- <li><a href="#index_p"><span>p</span></a></li>
- <li><a href="#index_r"><span>r</span></a></li>
- <li><a href="#index_s"><span>s</span></a></li>
- <li><a href="#index_t"><span>t</span></a></li>
- <li><a href="#index_w"><span>w</span></a></li>
- <li><a href="#index_x"><span>x</span></a></li>
- <li><a href="#index_y"><span>y</span></a></li>
- <li><a href="#index_~"><span>~</span></a></li>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_b.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_k.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_u.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_y.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
</ul>
</div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions.html','');});
+</script>
+<div id="doc-content">
<div class="contents">
-Here is a list of all documented class members with links to the class documentation for each member:
-
-<h3><a class="anchor" id="index_a">- a -</a></h3><ul>
-<li>AppendArrayItem()
-: <a class="el" href="classTXMPMeta.html#a00d7314dc970ad390499ce9db27d314a">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>ApplyTemplate()
-: <a class="el" href="classTXMPUtils.html#ab73bfa15116e6d702044542e0a43cce9">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_b">- b -</a></h3><ul>
-<li>build
-: <a class="el" href="structXMP__VersionInfo.html#a0e20a6bf10da4c17bdfc8027f1586ffc">XMP_VersionInfo</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_c">- c -</a></h3><ul>
-<li>CanPutXMP()
-: <a class="el" href="classTXMPFiles.html#a29a11a1539d6300da3fb4c7e9ea02bb6">TXMPFiles&lt; tStringObj &gt;</a>
-</li>
-<li>CatenateArrayItems()
-: <a class="el" href="classTXMPUtils.html#ad7e1aa7928252fb88a24fb5c3aef22ba">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>charForm
-: <a class="el" href="structXMP__PacketInfo.html#a039ce6665fe8e08d922a46f266799f75">XMP_PacketInfo</a>
-</li>
-<li>CheckFileFormat()
-: <a class="el" href="classTXMPFiles.html#a07b7c4b44fb0e0a7d115ddd5ba22f926">TXMPFiles&lt; tStringObj &gt;</a>
-</li>
-<li>CheckPackageFormat()
-: <a class="el" href="classTXMPFiles.html#a7f505664c41d7304fb757d6009b0751c">TXMPFiles&lt; tStringObj &gt;</a>
-</li>
-<li>Clone()
-: <a class="el" href="classTXMPMeta.html#a6ca653436995bbb76315efe7934afd4c">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>CloseFile()
-: <a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927">TXMPFiles&lt; tStringObj &gt;</a>
-</li>
-<li>CompareDateTime()
-: <a class="el" href="classTXMPUtils.html#a9fc7f1771032f59f9020aeda4f91991d">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>ComposeArrayItemPath()
-: <a class="el" href="classTXMPUtils.html#a47fa195aa2e1457aa1f74f7e1ed06da6">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>ComposeFieldSelector()
-: <a class="el" href="classTXMPUtils.html#a458f8e8729e2334fe54ca8f691a9db23">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>ComposeLangSelector()
-: <a class="el" href="classTXMPUtils.html#ae4989e5c199a2a4287ee3ae89b872e69">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>ComposeQualifierPath()
-: <a class="el" href="classTXMPUtils.html#a40ae0ce2065fcb71725e37137884e172">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>ComposeStructFieldPath()
-: <a class="el" href="classTXMPUtils.html#a706eb85b8401b8682a01348f7e25ee3d">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>ConvertFromBool()
-: <a class="el" href="classTXMPUtils.html#a509691eb270988de6a770c9c8304ab6b">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>ConvertFromDate()
-: <a class="el" href="classTXMPUtils.html#a6146a522a3974b4088d6e8241e9cd223">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>ConvertFromFloat()
-: <a class="el" href="classTXMPUtils.html#ae67ef3931836432b7e574832f0610ed0">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>ConvertFromInt()
-: <a class="el" href="classTXMPUtils.html#aeec45b4d1a26717290105c9f4e8b4235">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>ConvertFromInt64()
-: <a class="el" href="classTXMPUtils.html#aeae4617e05358433015eaa80953c5e60">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>ConvertToBool()
-: <a class="el" href="classTXMPUtils.html#aaaaaadb23f4089daa795f50cba4f405c">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>ConvertToDate()
-: <a class="el" href="classTXMPUtils.html#a60d33e6ce30286028acca47b2b6e7a0b">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>ConvertToFloat()
-: <a class="el" href="classTXMPUtils.html#a8a507b006286460814e0486c622d828c">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>ConvertToInt()
-: <a class="el" href="classTXMPUtils.html#a47d93f9cb4acd9d7ec6b450100209bec">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>ConvertToInt64()
-: <a class="el" href="classTXMPUtils.html#a711cae0cb1b673ff5e208b4ae458d120">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>ConvertToLocalTime()
-: <a class="el" href="classTXMPUtils.html#a61852aaba494c8fbad5a6c0c4caf21f5">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>ConvertToUTCTime()
-: <a class="el" href="classTXMPUtils.html#abbd4d691c83287ea2fc6b1e33e5858b8">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>CountArrayItems()
-: <a class="el" href="classTXMPMeta.html#ab79aae864b3ce190d0699252f48e0acc">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>CurrentDateTime()
-: <a class="el" href="classTXMPUtils.html#ac83f0b963ea64d7eee0b481e15a8439c">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_d">- d -</a></h3><ul>
-<li>day
-: <a class="el" href="structXMP__DateTime.html#a58496718277eea9dc5e3e19d80a69094">XMP_DateTime</a>
-</li>
-<li>DecodeFromBase64()
-: <a class="el" href="classTXMPUtils.html#ae5bdd91c0c3ee9262dc0a8b9f591b921">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>DeleteArrayItem()
-: <a class="el" href="classTXMPMeta.html#abc1211f47225b5973a170ff952743264">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>DeleteLocalizedText()
-: <a class="el" href="classTXMPMeta.html#aeb7679e92b126800b7bd906acb2f26e8">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>DeleteNamespace()
-: <a class="el" href="classTXMPMeta.html#a3f989597e95db929676273cacd4ea09a">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>DeleteProperty()
-: <a class="el" href="classTXMPMeta.html#ac8b555ba99904fa49bb4851a60cc3844">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>DeleteQualifier()
-: <a class="el" href="classTXMPMeta.html#a8ce15f7de7fd3b258f07158ab5fa88be">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>DeleteStructField()
-: <a class="el" href="classTXMPMeta.html#abc258e027780a15be65a88fcfd4e1fd4">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>DoesArrayItemExist()
-: <a class="el" href="classTXMPMeta.html#a492465c588d6d4cb8e30f94790e66f58">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>DoesPropertyExist()
-: <a class="el" href="classTXMPMeta.html#af22b116d71ecbbebea016ec5337e7066">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>DoesQualifierExist()
-: <a class="el" href="classTXMPMeta.html#a81347a92becd387a14f4d47c582f129a">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>DoesStructFieldExist()
-: <a class="el" href="classTXMPMeta.html#a9261b80d62e77a10ff1a89843bfa10a5">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>DumpNamespaces()
-: <a class="el" href="classTXMPMeta.html#aaddc5f555de57472939a41346e276817">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>DumpObject()
-: <a class="el" href="classTXMPMeta.html#a466fa349c9765f39ca6b1450908e769f">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>DuplicateSubtree()
-: <a class="el" href="classTXMPUtils.html#aa17838f062e5414bc0929f67ac94a3aa">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_e">- e -</a></h3><ul>
-<li>EncodeToBase64()
-: <a class="el" href="classTXMPUtils.html#aef3b23bbc152480f699e269620ecad4a">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>Erase()
-: <a class="el" href="classTXMPMeta.html#adf57895625ad118782ed48a3931848b7">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>errMsg
-: <a class="el" href="classXMP__Error.html#a31fd80098e50026985e05abd16f3e045">XMP_Error</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_f">- f -</a></h3><ul>
-<li>flags
-: <a class="el" href="structXMP__VersionInfo.html#ad018f35b382046ca77b1252bafa93f74">XMP_VersionInfo</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_g">- g -</a></h3><ul>
-<li>GetArrayItem()
-: <a class="el" href="classTXMPMeta.html#ac64a4251d157937f69b73f2ffac4f7cc">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>GetAssociatedResources()
-: <a class="el" href="classTXMPFiles.html#a03e6c681e827666690f0e5567b0b2a8a">TXMPFiles&lt; tStringObj &gt;</a>
-</li>
-<li>GetErrMsg()
-: <a class="el" href="classXMP__Error.html#a9a3560c67612dec9a6ca37c34eb2c153">XMP_Error</a>
-</li>
-<li>GetFileInfo()
-: <a class="el" href="classTXMPFiles.html#af9931d081cb19f98c81e41786030765b">TXMPFiles&lt; tStringObj &gt;</a>
-</li>
-<li>GetFileModDate()
-: <a class="el" href="classTXMPFiles.html#a0de588c4b98086206b3a5d737012106d">TXMPFiles&lt; tStringObj &gt;</a>
-</li>
-<li>GetFormatInfo()
-: <a class="el" href="classTXMPFiles.html#acb9e16a1477ec67fa6da6d736a9bc131">TXMPFiles&lt; tStringObj &gt;</a>
-</li>
-<li>GetGlobalOptions()
-: <a class="el" href="classTXMPMeta.html#a12b2435ba039c62a164951948c016eb4">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>GetID()
-: <a class="el" href="classXMP__Error.html#a56aaa6fc6644ccfc9470ae1af8f3a8cd">XMP_Error</a>
-</li>
-<li>GetInternalRef()
-: <a class="el" href="classTXMPFiles.html#a311fc36fdf7270fe05b1c531cdbbd009">TXMPFiles&lt; tStringObj &gt;</a>
-, <a class="el" href="classTXMPMeta.html#afbfebded0b85b08bd9c5ba0d7dae07e0">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>GetLocalizedText()
-: <a class="el" href="classTXMPMeta.html#aeefe49bbf669770d769f4fe0ea566bd0">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>GetNamespacePrefix()
-: <a class="el" href="classTXMPMeta.html#af28589472d8c0397db6cef868f2b8c97">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>GetNamespaceURI()
-: <a class="el" href="classTXMPMeta.html#aa20c84e7549d0a3252fa29a1e83a757a">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>GetObjectName()
-: <a class="el" href="classTXMPMeta.html#ab0d179ed95487d4fd4f2680c1fbe0d40">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>GetObjectOptions()
-: <a class="el" href="classTXMPMeta.html#a0bfc04142a35671a4c8989fcaca6d6c2">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>GetProperty()
-: <a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>GetProperty_Bool()
-: <a class="el" href="classTXMPMeta.html#adcf8a1959a8bd42641a42cbd4d64a5b7">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>GetProperty_Date()
-: <a class="el" href="classTXMPMeta.html#a2f561295e73047ee90765558d29bd650">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>GetProperty_Float()
-: <a class="el" href="classTXMPMeta.html#a7708c31c9af3e740b27a4893dcd9aa47">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>GetProperty_Int()
-: <a class="el" href="classTXMPMeta.html#ae4e8ee4cc7441bb9464dac87f2d74650">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>GetProperty_Int64()
-: <a class="el" href="classTXMPMeta.html#af91fa4bc4f51a56e35bcfb554783b050">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>GetQualifier()
-: <a class="el" href="classTXMPMeta.html#a2cc58d8316043b035643e7c21633bc13">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>GetStructField()
-: <a class="el" href="classTXMPMeta.html#a885ef7127b897e349f71fa493ace3c94">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>GetVersionInfo()
-: <a class="el" href="classTXMPFiles.html#a6e521c034728b59ab55213a9d8203d1e">TXMPFiles&lt; tStringObj &gt;</a>
-, <a class="el" href="classTXMPMeta.html#a5415cfc01a9cb8786939246571a23a9d">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>GetXMP()
-: <a class="el" href="classTXMPFiles.html#a42ca0bbc5ac66a8de1710e03a7ff17b3">TXMPFiles&lt; tStringObj &gt;</a>
-</li>
-</ul>
-
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
-<h3><a class="anchor" id="index_h">- h -</a></h3><ul>
-<li>hasDate
-: <a class="el" href="structXMP__DateTime.html#a62e0f39edef2a82749feed46b16572e8">XMP_DateTime</a>
+<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
+<li>AbsorbTemp()
+: <a class="el" href="classXMP__IO.html#aad4cf42485e9d8319a07f4ecdde4ee34">XMP_IO</a>
</li>
-<li>hasTime
-: <a class="el" href="structXMP__DateTime.html#a2c7f3d493a78f6b3fc7978992308d268">XMP_DateTime</a>
+<li>AcknowledgeChanges()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a673b6b4d69b2c9d85f2fa440d413ace3">AdobeXMPCore::INode_v1</a>
</li>
-<li>hasTimeZone
-: <a class="el" href="structXMP__DateTime.html#a1dd34cdab96f55c120b3289db32bdd1e">XMP_DateTime</a>
+<li>Acquire()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#ab368f307d6f23590d7ee76974cbd87fa">AdobeXMPCommon::IConfigurationManagerProxy</a>
+, <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc">AdobeXMPCommon::ISharedObject</a>
</li>
-<li>hasWrapper
-: <a class="el" href="structXMP__PacketInfo.html#a6725d8ab8b4eedddaac950d2b1b00a7f">XMP_PacketInfo</a>
+<li>allocate()
+: <a class="el" href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html#a2942e9d8f0d685ae6ebe58c18a11b999">AdobeXMPCommon::IMemoryAllocator_v1</a>
</li>
-<li>hour
-: <a class="el" href="structXMP__DateTime.html#abc79cdca8cfa5df6583279e3f3e70e9f">XMP_DateTime</a>
+<li>append()
+: <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a0699c6ad71960ba770c393dddcfa171d">AdobeXMPCommon::IUTF8String_v1</a>
</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_i">- i -</a></h3><ul>
-<li>id
-: <a class="el" href="classXMP__Error.html#aad714bd7c428e10eff07a8ab6a4f3125">XMP_Error</a>
-</li>
-<li>Initialize()
-: <a class="el" href="classTXMPFiles.html#a0874bbbf41c9490abfb613bfe297327d">TXMPFiles&lt; tStringObj &gt;</a>
-, <a class="el" href="classTXMPMeta.html#af1defbb73f919eae06456a655dea726c">TXMPMeta&lt; tStringObj &gt;</a>
-, <a class="el" href="classTXMPFiles.html#a794e1830a84a6328eaa1995ba5aa6874">TXMPFiles&lt; tStringObj &gt;</a>
-</li>
-<li>isDebug
-: <a class="el" href="structXMP__VersionInfo.html#af1643d86f32f5a5a275dc9c5ba843018">XMP_VersionInfo</a>
-</li>
-<li>IsMetadataWritable()
-: <a class="el" href="classTXMPFiles.html#a6dfa135d53143d45e5ff22efa554398e">TXMPFiles&lt; tStringObj &gt;</a>
-</li>
-<li>IsNotified()
-: <a class="el" href="classXMP__Error.html#a5a0651a9615a6a60e467a96ddb43a6bb">XMP_Error</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_l">- l -</a></h3><ul>
-<li>length
-: <a class="el" href="structXMP__PacketInfo.html#af526c582b66e24553f2d4b11eb714a44">XMP_PacketInfo</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_m">- m -</a></h3><ul>
-<li>major
-: <a class="el" href="structXMP__VersionInfo.html#a7edfa1613a58a248fd15267008bd8afb">XMP_VersionInfo</a>
-</li>
-<li>MergeFromJPEG()
-: <a class="el" href="classTXMPUtils.html#a6187cd5fef0eccecac6805d4114dcd2e">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>message
-: <a class="el" href="structXMP__VersionInfo.html#a19654242b92bffd7517e92882850e834">XMP_VersionInfo</a>
-</li>
-<li>micro
-: <a class="el" href="structXMP__VersionInfo.html#a4b448a8253e26a37d2df35e04ac25d28">XMP_VersionInfo</a>
-</li>
-<li>minor
-: <a class="el" href="structXMP__VersionInfo.html#af5b56598e15febd742b431dadae7c317">XMP_VersionInfo</a>
-</li>
-<li>minute
-: <a class="el" href="structXMP__DateTime.html#ae84965f3296a9c106d1f6c88aa6a7bdf">XMP_DateTime</a>
-</li>
-<li>month
-: <a class="el" href="structXMP__DateTime.html#ab4b71c1a54879d7da1b4135e23d5446f">XMP_DateTime</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_n">- n -</a></h3><ul>
-<li>nanoSecond
-: <a class="el" href="structXMP__DateTime.html#a190c2a19f01e90997ec2973aec37712c">XMP_DateTime</a>
-</li>
-<li>Next()
-: <a class="el" href="classTXMPIterator.html#a124a1dd1ab3ff0d236e4d4b967dafcd9">TXMPIterator&lt; tStringObj &gt;</a>
-</li>
-<li>notified
-: <a class="el" href="classXMP__Error.html#a2b884dfb0b39689d1cf95105eadc4571">XMP_Error</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_o">- o -</a></h3><ul>
-<li>offset
-: <a class="el" href="structXMP__PacketInfo.html#a20f65fcfd0f3658ab93ff441a9d61d2c">XMP_PacketInfo</a>
-</li>
-<li>OpenFile()
-: <a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb">TXMPFiles&lt; tStringObj &gt;</a>
-</li>
-<li>operator=()
-: <a class="el" href="classTXMPFiles.html#a3f1483fcc92860460d3772216dfaef81">TXMPFiles&lt; tStringObj &gt;</a>
-, <a class="el" href="classTXMPIterator.html#ad767d731320d3f4c997c6ce9f7f8fa63">TXMPIterator&lt; tStringObj &gt;</a>
-, <a class="el" href="classTXMPMeta.html#a4d5a601c9b77f6f6ab5f14e658de58ef">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_p">- p -</a></h3><ul>
-<li>PackageForJPEG()
-: <a class="el" href="classTXMPUtils.html#a6001b4ff54c60fdf0c40e6b78a5c457a">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>pad
-: <a class="el" href="structXMP__PacketInfo.html#a83ec12161a36451fef05d88cc754104e">XMP_PacketInfo</a>
-</li>
-<li>padSize
-: <a class="el" href="structXMP__PacketInfo.html#af4f99e6a5b36b05fdf4a519421875256">XMP_PacketInfo</a>
-</li>
-<li>ParseFromBuffer()
-: <a class="el" href="classTXMPMeta.html#a7b383f5b357fff040cdbde82f4f43f26">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>PutXMP()
-: <a class="el" href="classTXMPFiles.html#a502ed01119e0421413e773f4f42683ec">TXMPFiles&lt; tStringObj &gt;</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_r">- r -</a></h3><ul>
-<li>RegisterNamespace()
-: <a class="el" href="classTXMPMeta.html#ac0368ddbaa4d689cd5b1aff1c88bb0e1">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>RemoveProperties()
-: <a class="el" href="classTXMPUtils.html#a40c645803530662e08d042b4b7c6190d">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>ResetErrorCallbackLimit()
-: <a class="el" href="classTXMPFiles.html#a8e37b25dd1cba1e9a3f45037022717f2">TXMPFiles&lt; tStringObj &gt;</a>
-, <a class="el" href="classTXMPMeta.html#a31c7ef089e8fadff122044afa27d200a">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_s">- s -</a></h3><ul>
-<li>second
-: <a class="el" href="structXMP__DateTime.html#a675313c70a7e05b7ca50d21300b7d81b">XMP_DateTime</a>
-</li>
-<li>SeparateArrayItems()
-: <a class="el" href="classTXMPUtils.html#a66c5ddee47aa36ed906353f94ca18d2e">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>SerializeToBuffer()
-: <a class="el" href="classTXMPMeta.html#a2774a6f15ae22f0002201b58c46bfb49">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>SetAbortProc()
-: <a class="el" href="classTXMPFiles.html#a7b86c130fdbd54b5ac158ec3fee93777">TXMPFiles&lt; tStringObj &gt;</a>
-</li>
-<li>SetArrayItem()
-: <a class="el" href="classTXMPMeta.html#a15720ee8e732232fa25989870cf99846">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>SetDefaultErrorCallback()
-: <a class="el" href="classTXMPFiles.html#accc6c1cef9f124f6c5ed360251aa5aa7">TXMPFiles&lt; tStringObj &gt;</a>
-, <a class="el" href="classTXMPMeta.html#a1e90e0c8cd8c5670267bb693cf3660fe">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>SetDefaultProgressCallback()
-: <a class="el" href="classTXMPFiles.html#a83335ee20bb3ea543c8c86a5757a7753">TXMPFiles&lt; tStringObj &gt;</a>
-</li>
-<li>SetErrorCallback()
-: <a class="el" href="classTXMPFiles.html#a43a98633a0090fb4ade76edf24302ab1">TXMPFiles&lt; tStringObj &gt;</a>
-, <a class="el" href="classTXMPMeta.html#aee41442af4f049c1d6698fc27ce854d0">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>SetGlobalOptions()
-: <a class="el" href="classTXMPMeta.html#ae7bb38d9b3857b08106630a386b47332">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>SetLocalizedText()
-: <a class="el" href="classTXMPMeta.html#a81273a152fb7b19e99c62ee39bf723f2">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>SetNotified()
-: <a class="el" href="classXMP__Error.html#a9c368db94ca63ad7b9b118051d1f8897">XMP_Error</a>
-</li>
-<li>SetObjectName()
-: <a class="el" href="classTXMPMeta.html#acf1935be8e4849976dfc02325424960a">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>SetObjectOptions()
-: <a class="el" href="classTXMPMeta.html#a92055b3ae18dfd5e5491108f59318f17">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>SetProgressCallback()
-: <a class="el" href="classTXMPFiles.html#aa283e2a1c16918c86148446859ed1a2d">TXMPFiles&lt; tStringObj &gt;</a>
-</li>
-<li>SetProperty()
-: <a class="el" href="classTXMPMeta.html#a1dfd6a08ebfd1a6364b3a7b6584bcc28">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>SetProperty_Bool()
-: <a class="el" href="classTXMPMeta.html#a9521e3838272ec501ffdb60ff3eb482f">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>SetProperty_Date()
-: <a class="el" href="classTXMPMeta.html#aeee10669445f77139d5634199ff01079">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>SetProperty_Float()
-: <a class="el" href="classTXMPMeta.html#a3b0f2f6bae57931ea96775f03608c0ed">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>SetProperty_Int()
-: <a class="el" href="classTXMPMeta.html#a489e10a6686aa813ee437e93ab2c5943">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>SetProperty_Int64()
-: <a class="el" href="classTXMPMeta.html#a7f749be7699890bbaa2e2dbd05d45a90">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>SetQualifier()
-: <a class="el" href="classTXMPMeta.html#ac2e798da5f9d94e486382a41e73fcea3">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>SetStructField()
-: <a class="el" href="classTXMPMeta.html#a77d4a1bf7831f39073af9ea1544ebefa">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>SetTimeZone()
-: <a class="el" href="classTXMPUtils.html#a96bcc45febac55f6c49951815b7de2ef">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>Skip()
-: <a class="el" href="classTXMPIterator.html#a30b4d78974b347e4fcd275f1f65a61b2">TXMPIterator&lt; tStringObj &gt;</a>
-</li>
-<li>Sort()
-: <a class="el" href="classTXMPMeta.html#a8ac5a02a13d439ff33ed4431986da681">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_t">- t -</a></h3><ul>
-<li>Terminate()
-: <a class="el" href="classTXMPFiles.html#a1e8de80c252b60b332dc4bc524139fd8">TXMPFiles&lt; tStringObj &gt;</a>
-, <a class="el" href="classTXMPMeta.html#a6c30fae26173167958b6f0da95a53865">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>TXMPFiles()
-: <a class="el" href="classTXMPFiles.html#a36abe01988d4ca3939138e871c7b75e7">TXMPFiles&lt; tStringObj &gt;</a>
-</li>
-<li>TXMPIterator()
-: <a class="el" href="classTXMPIterator.html#a88e855c18b2b15f7b8a5ccf3b9398352">TXMPIterator&lt; tStringObj &gt;</a>
-</li>
-<li>TXMPMeta()
-: <a class="el" href="classTXMPMeta.html#a61ffb3aa3e387d8ff9c1f4ebd26606c7">TXMPMeta&lt; tStringObj &gt;</a>
+<li>AppendArrayItem()
+: <a class="el" href="classTXMPMeta.html#a00d7314dc970ad390499ce9db27d314a">TXMPMeta&lt; tStringObj &gt;</a>
</li>
-<li>tzHour
-: <a class="el" href="structXMP__DateTime.html#a6045133feeef41ac1f78c4664ab13db4">XMP_DateTime</a>
+<li>AppendNode()
+: <a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a6795e662d9daea5b88de08261488964b">AdobeXMPCore::ICompositeNode_v1</a>
</li>
-<li>tzMinute
-: <a class="el" href="structXMP__DateTime.html#a45baa70f30a3dc9f88819886cfb91aa1">XMP_DateTime</a>
+<li>AppendParameter()
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a125e3343c3a6fc979798cfc5a826ffa9">AdobeXMPCommon::IError_v1</a>
</li>
-<li>tzSign
-: <a class="el" href="structXMP__DateTime.html#a2b26282b9f1ab9920a8f05008c776ddb">XMP_DateTime</a>
+<li>AppendPathSegment()
+: <a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#ad11a65bed658401f8cfcd41387e2b8a6">AdobeXMPCore::IPath_v1</a>
</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_w">- w -</a></h3><ul>
-<li>writeable
-: <a class="el" href="structXMP__PacketInfo.html#a66845c1d5f3f9f36a1543a7322bd7bd1">XMP_PacketInfo</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_x">- x -</a></h3><ul>
-<li>XMP_Error()
-: <a class="el" href="classXMP__Error.html#aa8b3b859899759d679b00237254e30aa">XMP_Error</a>
-</li>
-<li>XMP_PacketInfo()
-: <a class="el" href="structXMP__PacketInfo.html#a2ae03a1b3d03fa9ebc829105037155a8">XMP_PacketInfo</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_y">- y -</a></h3><ul>
-<li>year
-: <a class="el" href="structXMP__DateTime.html#a2db713deacfd5a5cb2deea660ca2ccad">XMP_DateTime</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_0x7e">- ~ -</a></h3><ul>
-<li>~TXMPFiles()
-: <a class="el" href="classTXMPFiles.html#a5eaa92724cc82d933a32eff9c4636739">TXMPFiles&lt; tStringObj &gt;</a>
+<li>ApplyTemplate()
+: <a class="el" href="classTXMPUtils.html#ab73bfa15116e6d702044542e0a43cce9">TXMPUtils&lt; tStringObj &gt;</a>
</li>
-<li>~TXMPIterator()
-: <a class="el" href="classTXMPIterator.html#a911554533e8a3f09ab8870bd54462196">TXMPIterator&lt; tStringObj &gt;</a>
+<li>AreKeysCaseSensitive()
+: <a class="el" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html#aaaf9b00cdda11d05f0a5206665096c11">AdobeXMPCore::IClientDOMParser_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#aa6090a60c51266963005c2fce33ea760">AdobeXMPCore::IClientDOMSerializer_v1</a>
</li>
-<li>~TXMPMeta()
-: <a class="el" href="classTXMPMeta.html#abab5013870cd47eb0d9d701653735a02">TXMPMeta&lt; tStringObj &gt;</a>
+<li>assign()
+: <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a09ed6025bf467e1aab61ceab27277ea7">AdobeXMPCommon::IUTF8String_v1</a>
</li>
</ul>
-</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
</body>
</html>
diff --git a/docs/API/functions_0x7e.html b/docs/API/functions_0x7e.html
new file mode 100755
index 0000000..4b92918
--- /dev/null
+++ b/docs/API/functions_0x7e.html
@@ -0,0 +1,177 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_b.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_k.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_u.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_y.html#index_y"><span>y</span></a></li>
+ <li class="current"><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_0x7e.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_0x7e"></a>- ~ -</h3><ul>
+<li>~IArrayNode_v1()
+: <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#ae72a477964eaa0590d7ee415e044bc02">AdobeXMPCore::IArrayNode_v1</a>
+</li>
+<li>~IClientDOMParser_v1()
+: <a class="el" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html#ac9890eb0a1635872a2ed2f86544b0057">AdobeXMPCore::IClientDOMParser_v1</a>
+</li>
+<li>~IClientDOMSerializer_v1()
+: <a class="el" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#a58ff533c49dcfcf3374097aea70c1107">AdobeXMPCore::IClientDOMSerializer_v1</a>
+</li>
+<li>~ICompositeNode_v1()
+: <a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a51af220e29b40e8520ae5765f28515bf">AdobeXMPCore::ICompositeNode_v1</a>
+</li>
+<li>~IConfigurable()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a7c19f627db3d07e227e93a6a0e6b20ab">AdobeXMPCommon::IConfigurable</a>
+</li>
+<li>~IConfigurationManager_v1()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html#aab2f368cf6883a6cd92fe688a95516b5">AdobeXMPCommon::IConfigurationManager_v1</a>
+</li>
+<li>~IConfigurationManagerProxy()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a2d3924186af26ed2ea955d155ba8e89c">AdobeXMPCommon::IConfigurationManagerProxy</a>
+</li>
+<li>~ICoreConfigurationManager_v1()
+: <a class="el" href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html#a16df3adfe25d46e47db70e02c1b8afd3">AdobeXMPCore::ICoreConfigurationManager_v1</a>
+</li>
+<li>~ICoreObjectFactory_v1()
+: <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a86ec61e722ad68c9f09e95a7ceaa4393">AdobeXMPCore::ICoreObjectFactory_v1</a>
+</li>
+<li>~IDOMImplementationRegistry_v1()
+: <a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html#a8fab4e8f7a4b6b652c623f58d7e3432b">AdobeXMPCore::IDOMImplementationRegistry_v1</a>
+</li>
+<li>~IDOMParser_v1()
+: <a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a8cbde9bf86ebb4ef4a6968e39b601670">AdobeXMPCore::IDOMParser_v1</a>
+</li>
+<li>~IDOMSerializer_v1()
+: <a class="el" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html#a3631ef4b5bf7814d37f9582463d7d453">AdobeXMPCore::IDOMSerializer_v1</a>
+</li>
+<li>~IError_v1()
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a259f1d92b325fe01991ca5acd2238346">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>~IMetadata_v1()
+: <a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html#ada50f9f0415ce96ac1df948f510a3f75">AdobeXMPCore::IMetadata_v1</a>
+</li>
+<li>~INameSpacePrefixMap_v1()
+: <a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#aabfdffd2a782e83a627bbe1c687a922b">AdobeXMPCore::INameSpacePrefixMap_v1</a>
+</li>
+<li>~INode_v1()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#affdbed044179bbde65ffc28b20e28ecb">AdobeXMPCore::INode_v1</a>
+</li>
+<li>~INodeIterator_v1()
+: <a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html#aebc78681e60a09759ce7ab820716a0a2">AdobeXMPCore::INodeIterator_v1</a>
+</li>
+<li>~IObjectFactory_v1()
+: <a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#a95fcbab435329d052ab42028da563c02">AdobeXMPCommon::IObjectFactory_v1</a>
+</li>
+<li>~IPath_v1()
+: <a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#ad2d1a79e6c8e270c1cb9acee09e7881e">AdobeXMPCore::IPath_v1</a>
+</li>
+<li>~IPathSegment_v1()
+: <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a1ef63ec40233a30d4ec9f165e5332a43">AdobeXMPCore::IPathSegment_v1</a>
+</li>
+<li>~ISharedObject()
+: <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31">AdobeXMPCommon::ISharedObject</a>
+</li>
+<li>~ISimpleNode_v1()
+: <a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html#a12de1bae1dcb7c8302044df2b4fddb02">AdobeXMPCore::ISimpleNode_v1</a>
+</li>
+<li>~IStructureNode_v1()
+: <a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a0cdcce18c6ebbb1764286e3e2456c694">AdobeXMPCore::IStructureNode_v1</a>
+</li>
+<li>~IUTF8String_v1()
+: <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#ade123eab5a2f5e432ce6e50f43eddad3">AdobeXMPCommon::IUTF8String_v1</a>
+</li>
+<li>~IVersionable()
+: <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">AdobeXMPCommon::IVersionable</a>
+</li>
+<li>~TXMPFiles()
+: <a class="el" href="classTXMPFiles.html#a5eaa92724cc82d933a32eff9c4636739">TXMPFiles&lt; tStringObj &gt;</a>
+</li>
+<li>~TXMPIterator()
+: <a class="el" href="classTXMPIterator.html#a911554533e8a3f09ab8870bd54462196">TXMPIterator&lt; tStringObj &gt;</a>
+</li>
+<li>~TXMPMeta()
+: <a class="el" href="classTXMPMeta.html#abab5013870cd47eb0d9d701653735a02">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>~XMP_IO()
+: <a class="el" href="classXMP__IO.html#a52825d62e1a93ae1ee157d68860b6815">XMP_IO</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_b.html b/docs/API/functions_b.html
new file mode 100755
index 0000000..07f488a
--- /dev/null
+++ b/docs/API/functions_b.html
@@ -0,0 +1,96 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_a"><span>a</span></a></li>
+ <li class="current"><a href="functions_b.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_k.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_u.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_y.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_b.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
+<li>boolValue
+: <a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a5cf9ec10ad5942fe67759a8c442817da">AdobeXMPCommon::IConfigurable::CombinedDataValue</a>
+</li>
+<li>build
+: <a class="el" href="structXMP__VersionInfo.html#a0e20a6bf10da4c17bdfc8027f1586ffc">XMP_VersionInfo</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_c.html b/docs/API/functions_c.html
new file mode 100755
index 0000000..24e9de3
--- /dev/null
+++ b/docs/API/functions_c.html
@@ -0,0 +1,276 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_b.html#index_b"><span>b</span></a></li>
+ <li class="current"><a href="functions_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_k.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_u.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_y.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_c.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
+<li>c_str()
+: <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a74f019bc9c2d4a36c689906529abca14">AdobeXMPCommon::IUTF8String_v1</a>
+</li>
+<li>CanPutXMP()
+: <a class="el" href="classTXMPFiles.html#a29a11a1539d6300da3fb4c7e9ea02bb6">TXMPFiles&lt; tStringObj &gt;</a>
+</li>
+<li>CatenateArrayItems()
+: <a class="el" href="classTXMPUtils.html#ad7e1aa7928252fb88a24fb5c3aef22ba">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>charForm
+: <a class="el" href="structXMP__PacketInfo.html#a039ce6665fe8e08d922a46f266799f75">XMP_PacketInfo</a>
+</li>
+<li>charValue
+: <a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#acf5eba644510b302a7d351ab06174880">AdobeXMPCommon::IConfigurable::CombinedDataValue</a>
+</li>
+<li>CheckFileFormat()
+: <a class="el" href="classTXMPFiles.html#a07b7c4b44fb0e0a7d115ddd5ba22f926">TXMPFiles&lt; tStringObj &gt;</a>
+</li>
+<li>CheckPackageFormat()
+: <a class="el" href="classTXMPFiles.html#a7f505664c41d7304fb757d6009b0751c">TXMPFiles&lt; tStringObj &gt;</a>
+</li>
+<li>ChildCount()
+: <a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#abf3323ce933f5336bc0f64955c0bdd11">AdobeXMPCore::ICompositeNode_v1</a>
+</li>
+<li>clear()
+: <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a8c89cae09770d23100e36a7401733e00">AdobeXMPCommon::IUTF8String_v1</a>
+</li>
+<li>Clear()
+: <a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a6ed5fd946dfad6406539562178b3caeb">AdobeXMPCore::INameSpacePrefixMap_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4b615b0eef081f3c23385f28728aa462">AdobeXMPCore::INode_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#af056942f9dba913762b258cb5b422300">AdobeXMPCore::IPath_v1</a>
+</li>
+<li>Clone()
+: <a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a0d771fa042d5c5b3cf015f567f8aea9f">AdobeXMPCore::IDOMParser_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html#a4b8a7832e2dbbadfaed717723d3d20d3">AdobeXMPCore::IDOMSerializer_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#ae30d56519a24afe9c22ae353fedbd8f7">AdobeXMPCore::INameSpacePrefixMap_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2d613694adcedb569145aff06d0bc595">AdobeXMPCore::INode_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#a054e7cb641a72c7d3e7f35ef1225c6f4">AdobeXMPCore::IPath_v1</a>
+, <a class="el" href="classTXMPMeta.html#a6ca653436995bbb76315efe7934afd4c">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>CloseFile()
+: <a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927">TXMPFiles&lt; tStringObj &gt;</a>
+</li>
+<li>compare()
+: <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a745714ed2abbc6a2808fb933cc6b2f46">AdobeXMPCommon::IUTF8String_v1</a>
+</li>
+<li>CompareDateTime()
+: <a class="el" href="classTXMPUtils.html#a9fc7f1771032f59f9020aeda4f91991d">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>ComposeArrayItemPath()
+: <a class="el" href="classTXMPUtils.html#a47fa195aa2e1457aa1f74f7e1ed06da6">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>ComposeFieldSelector()
+: <a class="el" href="classTXMPUtils.html#a458f8e8729e2334fe54ca8f691a9db23">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>ComposeLangSelector()
+: <a class="el" href="classTXMPUtils.html#a7882bbc2e412ff476c2d97d98808d91c">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>ComposeQualifierPath()
+: <a class="el" href="classTXMPUtils.html#a40ae0ce2065fcb71725e37137884e172">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>ComposeStructFieldPath()
+: <a class="el" href="classTXMPUtils.html#a706eb85b8401b8682a01348f7e25ee3d">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>constCharPtrValue
+: <a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a8b483f56604dfd719c6cc0cbd883d9f7">AdobeXMPCommon::IConfigurable::CombinedDataValue</a>
+</li>
+<li>constVoidPtrValue
+: <a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a8f1fc5e55c1cac4aba0b23d9e2f25a5a">AdobeXMPCommon::IConfigurable::CombinedDataValue</a>
+</li>
+<li>ConvertCharBufferToUint64()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a932bf0b8f4396de0e29f6c165954e5dc">AdobeXMPCommon::IConfigurable</a>
+</li>
+<li>ConvertFromBool()
+: <a class="el" href="classTXMPUtils.html#a509691eb270988de6a770c9c8304ab6b">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>ConvertFromDate()
+: <a class="el" href="classTXMPUtils.html#a6146a522a3974b4088d6e8241e9cd223">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>ConvertFromFloat()
+: <a class="el" href="classTXMPUtils.html#ae67ef3931836432b7e574832f0610ed0">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>ConvertFromInt()
+: <a class="el" href="classTXMPUtils.html#aeec45b4d1a26717290105c9f4e8b4235">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>ConvertFromInt64()
+: <a class="el" href="classTXMPUtils.html#aeae4617e05358433015eaa80953c5e60">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>ConvertToArrayNode()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#af180be62ecd26edf90df0fe3ea75941e">AdobeXMPCore::INode_v1</a>
+</li>
+<li>ConvertToBool()
+: <a class="el" href="classTXMPUtils.html#aaaaaadb23f4089daa795f50cba4f405c">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>ConvertToDate()
+: <a class="el" href="classTXMPUtils.html#a60d33e6ce30286028acca47b2b6e7a0b">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>ConvertToFloat()
+: <a class="el" href="classTXMPUtils.html#a8a507b006286460814e0486c622d828c">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>ConvertToInt()
+: <a class="el" href="classTXMPUtils.html#adfd9d1c522377d5db4ad667a7973ba00">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>ConvertToInt64()
+: <a class="el" href="classTXMPUtils.html#abe5d2dcc03c5442202203bba5ca7b172">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>ConvertToLocalTime()
+: <a class="el" href="classTXMPUtils.html#a61852aaba494c8fbad5a6c0c4caf21f5">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>ConvertToMetadata()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a08f9ed4dee6c899f65eb51e3d7f9858d">AdobeXMPCore::INode_v1</a>
+</li>
+<li>ConvertToSimpleNode()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ad8e7ef140cb5ff094789abfcc879c94b">AdobeXMPCore::INode_v1</a>
+</li>
+<li>ConvertToStructureNode()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5ea317fcd59694184089a9774c866b22">AdobeXMPCore::INode_v1</a>
+</li>
+<li>ConvertToUTCTime()
+: <a class="el" href="classTXMPUtils.html#abbd4d691c83287ea2fc6b1e33e5858b8">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>copy()
+: <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a71882e69cdd1729a498571286dcf752a">AdobeXMPCommon::IUTF8String_v1</a>
+</li>
+<li>CountArrayItems()
+: <a class="el" href="classTXMPMeta.html#ab79aae864b3ce190d0699252f48e0acc">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>CreateAlternativeArrayNode()
+: <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#afcb8012075f5c956139bff39f41bae47">AdobeXMPCore::IArrayNode_v1</a>
+</li>
+<li>CreateArrayIndexPathSegment()
+: <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a3bfacdef9fe44e03dbe826e5ab4d96a5">AdobeXMPCore::ICoreObjectFactory_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#ab94dc022fdf9edad3423c8f281f95674">AdobeXMPCore::IPathSegment_v1</a>
+</li>
+<li>CreateArrayNode()
+: <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a483da62ca0b16df479b574ce159656a0">AdobeXMPCore::ICoreObjectFactory_v1</a>
+</li>
+<li>CreateError()
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#aac7106e2c1a4fb762f11ef70fb38cb8e">AdobeXMPCommon::IError_v1</a>
+, <a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#ae86e711336af91dca23f4611b1f03724">AdobeXMPCommon::IObjectFactory_v1</a>
+</li>
+<li>CreateMetadata()
+: <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a256fa057baeddc10da895731a2e24089">AdobeXMPCore::ICoreObjectFactory_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html#a114ea75cdd7e1101455af000e01ab17d">AdobeXMPCore::IMetadata_v1</a>
+</li>
+<li>CreateNameSpacePrefixMap()
+: <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#ae212c413d5ef30bdf35e2987f3752a8d">AdobeXMPCore::ICoreObjectFactory_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a722b12c77879087c26990650d99d3339">AdobeXMPCore::INameSpacePrefixMap_v1</a>
+</li>
+<li>CreateOrderedArrayNode()
+: <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a6e9068b8048a29804fb9d567c6cc8952">AdobeXMPCore::IArrayNode_v1</a>
+</li>
+<li>CreatePath()
+: <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a385859faf85e5121f6e900da52fe7a51">AdobeXMPCore::ICoreObjectFactory_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#a0da106657f48b1c8859e31de357015d4">AdobeXMPCore::IPath_v1</a>
+</li>
+<li>CreatePropertyPathSegment()
+: <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#adbaf560c74694b7ccdd6f26b2d320b35">AdobeXMPCore::ICoreObjectFactory_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a78df7478295fed763eadac0cefb79e1b">AdobeXMPCore::IPathSegment_v1</a>
+</li>
+<li>CreateQualifierPathSegment()
+: <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#ae6c1338b3fc954aac0b3bb75a2f17d71">AdobeXMPCore::ICoreObjectFactory_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a49da0c0bed14c7afb07d263570f09221">AdobeXMPCore::IPathSegment_v1</a>
+</li>
+<li>CreateQualifierSelectorPathSegment()
+: <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#ac7c3343a39a736921d804796a067acec">AdobeXMPCore::ICoreObjectFactory_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a854506c44a7acfc0246709a6cd74638d">AdobeXMPCore::IPathSegment_v1</a>
+</li>
+<li>CreateSimpleNode()
+: <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a055e87d1002612143f5104c0e3613336">AdobeXMPCore::ICoreObjectFactory_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html#a9221d195ce7d207b65652008666e04d6">AdobeXMPCore::ISimpleNode_v1</a>
+</li>
+<li>CreateStructureNode()
+: <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a6976b678d45b6e968eb7cf094c18bc24">AdobeXMPCore::ICoreObjectFactory_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#ab39f8d743ba67fc4e6a21b08b03fdde2">AdobeXMPCore::IStructureNode_v1</a>
+</li>
+<li>CreateUnorderedArrayNode()
+: <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a9b89618c3115efc948bd7fb49dfc570c">AdobeXMPCore::IArrayNode_v1</a>
+</li>
+<li>CreateUTF8String()
+: <a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#ae3e9eb977c305e48425654bec514f405">AdobeXMPCommon::IObjectFactory_v1</a>
+, <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#afcf1d7294c5e3c518c3fcbc3bc16d305">AdobeXMPCommon::IUTF8String_v1</a>
+</li>
+<li>CurrentDateTime()
+: <a class="el" href="classTXMPUtils.html#ac83f0b963ea64d7eee0b481e15a8439c">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_d.html b/docs/API/functions_d.html
new file mode 100755
index 0000000..776212b
--- /dev/null
+++ b/docs/API/functions_d.html
@@ -0,0 +1,163 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_b.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_c.html#index_c"><span>c</span></a></li>
+ <li class="current"><a href="functions_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_k.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_u.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_y.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_d.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
+<li>day
+: <a class="el" href="structXMP__DateTime.html#a58496718277eea9dc5e3e19d80a69094">XMP_DateTime</a>
+</li>
+<li>deallocate()
+: <a class="el" href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html#a607755ef64bf552482c4a330fcc79120">AdobeXMPCommon::IMemoryAllocator_v1</a>
+</li>
+<li>DecodeFromBase64()
+: <a class="el" href="classTXMPUtils.html#a1e61e273065b10517ca127d5a553a8dc">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>DeleteArrayItem()
+: <a class="el" href="classTXMPMeta.html#abc1211f47225b5973a170ff952743264">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>DeleteLocalizedText()
+: <a class="el" href="classTXMPMeta.html#aeb7679e92b126800b7bd906acb2f26e8">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>DeleteNamespace()
+: <a class="el" href="classTXMPMeta.html#a3f989597e95db929676273cacd4ea09a">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>DeleteProperty()
+: <a class="el" href="classTXMPMeta.html#ac8b555ba99904fa49bb4851a60cc3844">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>DeleteQualifier()
+: <a class="el" href="classTXMPMeta.html#a8ce15f7de7fd3b258f07158ab5fa88be">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>DeleteStructField()
+: <a class="el" href="classTXMPMeta.html#abc258e027780a15be65a88fcfd4e1fd4">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>DeleteTemp()
+: <a class="el" href="classXMP__IO.html#a337ddf3f954d2b4e8dce1d70d8c33ddb">XMP_IO</a>
+</li>
+<li>DeriveTemp()
+: <a class="el" href="classXMP__IO.html#ac989de23f8fed2efcca71f5a3aa35695">XMP_IO</a>
+</li>
+<li>DestroyCoreObjectFactory()
+: <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a970dd5b32ca7601b29426a9384a64f56">AdobeXMPCore::ICoreObjectFactory_v1</a>
+</li>
+<li>DisableFeature()
+: <a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html#a451bb5293ea38730bee99853b1d3237b">AdobeXMPCore::IMetadata_v1</a>
+</li>
+<li>DisableMultiThreading()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html#acf69fdd4ec5c1eb47b6a41b052372504">AdobeXMPCommon::IConfigurationManager_v1</a>
+, <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a8432b3ab3d3e1c344dc006308e34e4bc">AdobeXMPCommon::IConfigurationManagerProxy</a>
+</li>
+<li>disableMultiThreading()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a9d07fe612bdc448ea279f9c6a8f2c905">AdobeXMPCommon::IConfigurationManagerProxy</a>
+</li>
+<li>DisableThreadSafety()
+: <a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a214bb1b5840dbd5576e764dd2220b261">AdobeXMPCommon::IThreadSafe</a>
+</li>
+<li>DoesArrayItemExist()
+: <a class="el" href="classTXMPMeta.html#a492465c588d6d4cb8e30f94790e66f58">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>DoesPropertyExist()
+: <a class="el" href="classTXMPMeta.html#af22b116d71ecbbebea016ec5337e7066">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>DoesQualifierExist()
+: <a class="el" href="classTXMPMeta.html#a81347a92becd387a14f4d47c582f129a">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>DoesStructFieldExist()
+: <a class="el" href="classTXMPMeta.html#a9261b80d62e77a10ff1a89843bfa10a5">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>doubleValue
+: <a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a0c9f75a96d53c5d03516f233937d6dca">AdobeXMPCommon::IConfigurable::CombinedDataValue</a>
+</li>
+<li>DumpNamespaces()
+: <a class="el" href="classTXMPMeta.html#aaddc5f555de57472939a41346e276817">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>DumpObject()
+: <a class="el" href="classTXMPMeta.html#a466fa349c9765f39ca6b1450908e769f">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>DuplicateSubtree()
+: <a class="el" href="classTXMPUtils.html#aa17838f062e5414bc0929f67ac94a3aa">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_dup.js b/docs/API/functions_dup.js
new file mode 100755
index 0000000..2ee1d60
--- /dev/null
+++ b/docs/API/functions_dup.js
@@ -0,0 +1,28 @@
+var functions_dup =
+[
+ [ "a", "functions.html", null ],
+ [ "b", "functions_b.html", null ],
+ [ "c", "functions_c.html", null ],
+ [ "d", "functions_d.html", null ],
+ [ "e", "functions_e.html", null ],
+ [ "f", "functions_f.html", null ],
+ [ "g", "functions_g.html", null ],
+ [ "h", "functions_h.html", null ],
+ [ "i", "functions_i.html", null ],
+ [ "k", "functions_k.html", null ],
+ [ "l", "functions_l.html", null ],
+ [ "m", "functions_m.html", null ],
+ [ "n", "functions_n.html", null ],
+ [ "o", "functions_o.html", null ],
+ [ "p", "functions_p.html", null ],
+ [ "q", "functions_q.html", null ],
+ [ "r", "functions_r.html", null ],
+ [ "s", "functions_s.html", null ],
+ [ "t", "functions_t.html", null ],
+ [ "u", "functions_u.html", null ],
+ [ "v", "functions_v.html", null ],
+ [ "w", "functions_w.html", null ],
+ [ "x", "functions_x.html", null ],
+ [ "y", "functions_y.html", null ],
+ [ "~", "functions_0x7e.html", null ]
+]; \ No newline at end of file
diff --git a/docs/API/functions_e.html b/docs/API/functions_e.html
new file mode 100755
index 0000000..d24e067
--- /dev/null
+++ b/docs/API/functions_e.html
@@ -0,0 +1,138 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_b.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_d.html#index_d"><span>d</span></a></li>
+ <li class="current"><a href="functions_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_k.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_u.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_y.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_e.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
+<li>eActionType
+: <a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345">AdobeXMPCore::IDOMParser_v1</a>
+</li>
+<li>eArrayForm
+: <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3">AdobeXMPCore::IArrayNode_v1</a>
+</li>
+<li>eDataType
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1">AdobeXMPCommon::IConfigurable</a>
+</li>
+<li>eErrorCode
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a29cc93a78d4e1111ec8e51e4ca9a82b3">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>eErrorDomain
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0d">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>eErrorSeverity
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>empty()
+: <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a3d47695cb24358835d8c904cfbf0856c">AdobeXMPCommon::IUTF8String_v1</a>
+</li>
+<li>EnableFeature()
+: <a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html#a179a82bd3f38996331e9ee0bdee997b9">AdobeXMPCore::IMetadata_v1</a>
+</li>
+<li>EnableThreadSafety()
+: <a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#afe35614cb88e2bdb32996cf4ac15b211">AdobeXMPCommon::IThreadSafe</a>
+</li>
+<li>EncodeToBase64()
+: <a class="el" href="classTXMPUtils.html#a39d5de77b29441a30f2f879755b8e7d8">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>eNodeType
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">AdobeXMPCore::INode_v1</a>
+</li>
+<li>ePathSegmentType
+: <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9">AdobeXMPCore::IPathSegment_v1</a>
+</li>
+<li>erase()
+: <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a34008a94fe509b080c0d1b7f5e650886">AdobeXMPCommon::IUTF8String_v1</a>
+</li>
+<li>Erase()
+: <a class="el" href="classTXMPMeta.html#adf57895625ad118782ed48a3931848b7">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>errMessage
+: <a class="el" href="structWXMP__Result.html#ae329adc6d31243687d8bd85987ad6999">WXMP_Result</a>
+</li>
+<li>errMsg
+: <a class="el" href="classXMP__Error.html#a31fd80098e50026985e05abd16f3e045">XMP_Error</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_enum.html b/docs/API/functions_enum.html
new file mode 100755
index 0000000..44ad22a
--- /dev/null
+++ b/docs/API/functions_enum.html
@@ -0,0 +1,80 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members - Enumerations</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li class="current"><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_enum.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;<ul>
+<li>eActionType
+: <a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345">AdobeXMPCore::IDOMParser_v1</a>
+</li>
+<li>eArrayForm
+: <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3">AdobeXMPCore::IArrayNode_v1</a>
+</li>
+<li>eDataType
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1">AdobeXMPCommon::IConfigurable</a>
+</li>
+<li>eErrorDomain
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0d">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>eErrorSeverity
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>eNodeType
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">AdobeXMPCore::INode_v1</a>
+</li>
+<li>ePathSegmentType
+: <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9">AdobeXMPCore::IPathSegment_v1</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_eval.html b/docs/API/functions_eval.html
new file mode 100755
index 0000000..c4f69c6
--- /dev/null
+++ b/docs/API/functions_eval.html
@@ -0,0 +1,225 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members - Enumerator</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li class="current"><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li class="current"><a href="#index_k"><span>k</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_eval.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_k"></a>- k -</h3><ul>
+<li>kAFAll
+: <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3a7dd5034acb7178341218ab2389bb45cf">AdobeXMPCore::IArrayNode_v1</a>
+</li>
+<li>kAFAlternative
+: <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3a76f68496b69df8d9ff018d0eb7cf214c">AdobeXMPCore::IArrayNode_v1</a>
+</li>
+<li>kAFNone
+: <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3a9e94ffd1d41fc1770ea2430ddb6b0850">AdobeXMPCore::IArrayNode_v1</a>
+</li>
+<li>kAFOrdered
+: <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3ae739b09d3ac25faa60551f181c273163">AdobeXMPCore::IArrayNode_v1</a>
+</li>
+<li>kAFUnordered
+: <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3afbd5e7a5cc72cd12eeec6e4ab370b29c">AdobeXMPCore::IArrayNode_v1</a>
+</li>
+<li>kATAppendAsChildren
+: <a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345a6ce0fb64b1a284951f50aacdf76e28b9">AdobeXMPCore::IDOMParser_v1</a>
+</li>
+<li>kATAppendOrReplaceChildren
+: <a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345a720d171caeb649caf22e27ed4a39bd15">AdobeXMPCore::IDOMParser_v1</a>
+</li>
+<li>kATInsertAfter
+: <a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345a8fca6913cbd9d4f787e53fdcfb54f2bf">AdobeXMPCore::IDOMParser_v1</a>
+</li>
+<li>kATInsertBefore
+: <a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345aabbc604d77794e6cecedf1bdd947d252">AdobeXMPCore::IDOMParser_v1</a>
+</li>
+<li>kATReplace
+: <a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345a2adb910039a572f5e73dbb94f680ed18">AdobeXMPCore::IDOMParser_v1</a>
+</li>
+<li>kATReplaceChildren
+: <a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345ac19566553b38e9bf6c5361a8aa9bb181">AdobeXMPCore::IDOMParser_v1</a>
+</li>
+<li>kDTAll
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1ac5217140bec2fb51971d31759f24b81a">AdobeXMPCommon::IConfigurable</a>
+</li>
+<li>kDTBool
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1abdf14ab0f7a234fc99bc476dc4212f4e">AdobeXMPCommon::IConfigurable</a>
+</li>
+<li>kDTChar
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a01da29c7d11b67856b0e9d5f3fe4cdb4">AdobeXMPCommon::IConfigurable</a>
+</li>
+<li>kDTConstCharBuffer
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a8d6faef7e1737835b5007987ed99c48d">AdobeXMPCommon::IConfigurable</a>
+</li>
+<li>kDTConstVoidPtr
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a242c98a52e8d324027a00ee6f66d4c39">AdobeXMPCommon::IConfigurable</a>
+</li>
+<li>kDTDouble
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a11c2a544d5ac467b22d7d10098237efa">AdobeXMPCommon::IConfigurable</a>
+</li>
+<li>kDTInt64
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a5c57cf68bc47c55815b5bfc1146df0c3">AdobeXMPCommon::IConfigurable</a>
+</li>
+<li>kDTNone
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a0233b4bacf60f59232fd3fc0dee50a27">AdobeXMPCommon::IConfigurable</a>
+</li>
+<li>kDTUint64
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1ad24c2bb370f5fa12dee346051c13409e">AdobeXMPCommon::IConfigurable</a>
+</li>
+<li>kEDAssetManagement
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da495992977fdfefad3c7b51350d952120">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>kEDConfigurable
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0dadea3f136c96a37d23f8f984551bfc320">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>kEDConflictIdentification
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da54f0a72b16e0c1cc0e484ebca6d13708">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>kEDConflictResolution
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da7a0ca7368a9c93d038b635ea7ae0f691">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>kEDDataModel
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da553e7b6dff9e1c9d4d53a155cdb627a7">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>kEDGeneral
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da3ab4caaddd020b4446ef5e52300e7b1f">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>kEDGenericStrategyDatabase
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da500ecdf6b68ffe0f4d901740bae84a6a">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>kEDMaxValue
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da1e77ab380b475ba060d14c489a2ad1bc">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>kEDMemoryManagement
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da259afda1164ca63dc7a5730e36ca35a8">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>kEDMultiThreading
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0dad284da5871c3d7be07ece3e18cfc1313">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>kEDNone
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0dad08de2ff0da8d78befc1e3160d91fb66">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>kEDParser
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da977f7d430590fc0e8e91424479403e54">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>kEDSerializer
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da3ee93ea699a7ad40361aa97bd7bd5cbf">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>kEDThreeWayMerge
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0dae98f9f2ae109cb8f4e20bac749b9096d">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>kEDXMPFiles
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da90c7a2910e189c25b42be36b5342cd8e">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>kESAll
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702aaf28b59c2541f8bd3a4e70a4c7e58908">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>kESMaxValue
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702aa83e26dbed0e72dc086520892693a408">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>kESNone
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702a72d4e6dab6f3c900e504db6ad274f03b">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>kESOperationFatal
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702aad55eb387014908711b915d5877d7d80">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>kESProcessFatal
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702a2aec1db6233320381fa85f9490d95a60">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>kESWarning
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702a20b2b1a43e9ba7559ad49c5fb9ae845c">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>kNTAll
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a68bac77fd8140a60490eb78f0b533e21">AdobeXMPCore::INode_v1</a>
+</li>
+<li>kNTArray
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a60c6b4c3dfc99d8584866f5f18ff2610">AdobeXMPCore::INode_v1</a>
+</li>
+<li>kNTNone
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913aae32cc414cc7adaf3b2a1c375f2cb3bb">AdobeXMPCore::INode_v1</a>
+</li>
+<li>kNTSimple
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a97e0c4fb69029d0d152c068c10736234">AdobeXMPCore::INode_v1</a>
+</li>
+<li>kNTStructure
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a7542b80b3b688cd3d210d62d12dbe471">AdobeXMPCore::INode_v1</a>
+</li>
+<li>kPSTAll
+: <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9a6c99b2ecc364a71db39b2e9ff0a94880">AdobeXMPCore::IPathSegment_v1</a>
+</li>
+<li>kPSTArrayIndex
+: <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9ae86feb38a46c4fb2ecb35bb651dca161">AdobeXMPCore::IPathSegment_v1</a>
+</li>
+<li>kPSTNone
+: <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9ab178c4df00dc4b10c7c5937d82499a84">AdobeXMPCore::IPathSegment_v1</a>
+</li>
+<li>kPSTProperty
+: <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9ac351f884bf338c15a4a619e89216e2b9">AdobeXMPCore::IPathSegment_v1</a>
+</li>
+<li>kPSTQualifier
+: <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9a8d1e54d4a1f97847f03eb7ff36c263a7">AdobeXMPCore::IPathSegment_v1</a>
+</li>
+<li>kPSTQualifierSelector
+: <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9a2eb4a4d89f26c720eb393eb56997ba09">AdobeXMPCore::IPathSegment_v1</a>
+</li>
+<li>kReadAll
+: <a class="el" href="classXMP__IO.html#af77f9218892471ffad4586413ecd0dcaa148a2bca28df5b2d143590aae5153b55">XMP_IO</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_f.html b/docs/API/functions_f.html
new file mode 100755
index 0000000..c05e842
--- /dev/null
+++ b/docs/API/functions_f.html
@@ -0,0 +1,99 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_b.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_e.html#index_e"><span>e</span></a></li>
+ <li class="current"><a href="functions_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_k.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_u.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_y.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_f.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
+<li>find()
+: <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a136133c53ec032e30c10a15f11c7c8b5">AdobeXMPCommon::IUTF8String_v1</a>
+</li>
+<li>flags
+: <a class="el" href="structXMP__VersionInfo.html#ad018f35b382046ca77b1252bafa93f74">XMP_VersionInfo</a>
+</li>
+<li>floatResult
+: <a class="el" href="structWXMP__Result.html#a872bf8583413190b991beda67f017fb5">WXMP_Result</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_func.html b/docs/API/functions_func.html
index 9c40dce..7dc3464 100644..100755
--- a/docs/API/functions_func.html
+++ b/docs/API/functions_func.html
@@ -1,508 +1,124 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: Class Members - Functions</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
+<title>Class Members - Functions</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
- <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
- <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
<li><a href="functions.html"><span>All</span></a></li>
<li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
<li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
- <li><a href="#index_a"><span>a</span></a></li>
- <li><a href="#index_c"><span>c</span></a></li>
- <li><a href="#index_d"><span>d</span></a></li>
- <li><a href="#index_e"><span>e</span></a></li>
- <li><a href="#index_g"><span>g</span></a></li>
- <li><a href="#index_i"><span>i</span></a></li>
- <li><a href="#index_m"><span>m</span></a></li>
- <li><a href="#index_n"><span>n</span></a></li>
- <li><a href="#index_o"><span>o</span></a></li>
- <li><a href="#index_p"><span>p</span></a></li>
- <li><a href="#index_r"><span>r</span></a></li>
- <li><a href="#index_s"><span>s</span></a></li>
- <li><a href="#index_t"><span>t</span></a></li>
- <li><a href="#index_x"><span>x</span></a></li>
- <li><a href="#index_~"><span>~</span></a></li>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li class="current"><a href="functions_func.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_func_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_func_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_func_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_func_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_func_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_func_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_func_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_func_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_func_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_func_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_func_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_func_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_func_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_func_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_func_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_func_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_func_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_func_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_func_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_func_0x7e.html#index_0x7e"><span>~</span></a></li>
</ul>
</div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_func.html','');});
+</script>
+<div id="doc-content">
<div class="contents">
-&nbsp;
-
-<h3><a class="anchor" id="index_a">- a -</a></h3><ul>
-<li>AppendArrayItem()
-: <a class="el" href="classTXMPMeta.html#a00d7314dc970ad390499ce9db27d314a">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>ApplyTemplate()
-: <a class="el" href="classTXMPUtils.html#ab73bfa15116e6d702044542e0a43cce9">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_c">- c -</a></h3><ul>
-<li>CanPutXMP()
-: <a class="el" href="classTXMPFiles.html#a29a11a1539d6300da3fb4c7e9ea02bb6">TXMPFiles&lt; tStringObj &gt;</a>
-</li>
-<li>CatenateArrayItems()
-: <a class="el" href="classTXMPUtils.html#ad7e1aa7928252fb88a24fb5c3aef22ba">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>CheckFileFormat()
-: <a class="el" href="classTXMPFiles.html#a07b7c4b44fb0e0a7d115ddd5ba22f926">TXMPFiles&lt; tStringObj &gt;</a>
-</li>
-<li>CheckPackageFormat()
-: <a class="el" href="classTXMPFiles.html#a7f505664c41d7304fb757d6009b0751c">TXMPFiles&lt; tStringObj &gt;</a>
-</li>
-<li>Clone()
-: <a class="el" href="classTXMPMeta.html#a6ca653436995bbb76315efe7934afd4c">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>CloseFile()
-: <a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927">TXMPFiles&lt; tStringObj &gt;</a>
-</li>
-<li>CompareDateTime()
-: <a class="el" href="classTXMPUtils.html#a9fc7f1771032f59f9020aeda4f91991d">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>ComposeArrayItemPath()
-: <a class="el" href="classTXMPUtils.html#a47fa195aa2e1457aa1f74f7e1ed06da6">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>ComposeFieldSelector()
-: <a class="el" href="classTXMPUtils.html#a458f8e8729e2334fe54ca8f691a9db23">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>ComposeLangSelector()
-: <a class="el" href="classTXMPUtils.html#ae4989e5c199a2a4287ee3ae89b872e69">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>ComposeQualifierPath()
-: <a class="el" href="classTXMPUtils.html#a40ae0ce2065fcb71725e37137884e172">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>ComposeStructFieldPath()
-: <a class="el" href="classTXMPUtils.html#a706eb85b8401b8682a01348f7e25ee3d">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>ConvertFromBool()
-: <a class="el" href="classTXMPUtils.html#a509691eb270988de6a770c9c8304ab6b">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>ConvertFromDate()
-: <a class="el" href="classTXMPUtils.html#a6146a522a3974b4088d6e8241e9cd223">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>ConvertFromFloat()
-: <a class="el" href="classTXMPUtils.html#ae67ef3931836432b7e574832f0610ed0">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>ConvertFromInt()
-: <a class="el" href="classTXMPUtils.html#aeec45b4d1a26717290105c9f4e8b4235">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>ConvertFromInt64()
-: <a class="el" href="classTXMPUtils.html#aeae4617e05358433015eaa80953c5e60">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>ConvertToBool()
-: <a class="el" href="classTXMPUtils.html#aaaaaadb23f4089daa795f50cba4f405c">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>ConvertToDate()
-: <a class="el" href="classTXMPUtils.html#a265559d1b4b78e34a460e935c11177d7">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>ConvertToFloat()
-: <a class="el" href="classTXMPUtils.html#aabd4e479d2708a9ea3135cd441faa7ea">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>ConvertToInt()
-: <a class="el" href="classTXMPUtils.html#a47d93f9cb4acd9d7ec6b450100209bec">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>ConvertToInt64()
-: <a class="el" href="classTXMPUtils.html#abe5d2dcc03c5442202203bba5ca7b172">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>ConvertToLocalTime()
-: <a class="el" href="classTXMPUtils.html#a61852aaba494c8fbad5a6c0c4caf21f5">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>ConvertToUTCTime()
-: <a class="el" href="classTXMPUtils.html#abbd4d691c83287ea2fc6b1e33e5858b8">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>CountArrayItems()
-: <a class="el" href="classTXMPMeta.html#ab79aae864b3ce190d0699252f48e0acc">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>CurrentDateTime()
-: <a class="el" href="classTXMPUtils.html#ac83f0b963ea64d7eee0b481e15a8439c">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_d">- d -</a></h3><ul>
-<li>DecodeFromBase64()
-: <a class="el" href="classTXMPUtils.html#ae5bdd91c0c3ee9262dc0a8b9f591b921">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>DeleteArrayItem()
-: <a class="el" href="classTXMPMeta.html#abc1211f47225b5973a170ff952743264">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>DeleteLocalizedText()
-: <a class="el" href="classTXMPMeta.html#aeb7679e92b126800b7bd906acb2f26e8">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>DeleteNamespace()
-: <a class="el" href="classTXMPMeta.html#a3f989597e95db929676273cacd4ea09a">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>DeleteProperty()
-: <a class="el" href="classTXMPMeta.html#ac8b555ba99904fa49bb4851a60cc3844">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>DeleteQualifier()
-: <a class="el" href="classTXMPMeta.html#a8ce15f7de7fd3b258f07158ab5fa88be">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>DeleteStructField()
-: <a class="el" href="classTXMPMeta.html#abc258e027780a15be65a88fcfd4e1fd4">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>DoesArrayItemExist()
-: <a class="el" href="classTXMPMeta.html#a492465c588d6d4cb8e30f94790e66f58">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>DoesPropertyExist()
-: <a class="el" href="classTXMPMeta.html#af22b116d71ecbbebea016ec5337e7066">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>DoesQualifierExist()
-: <a class="el" href="classTXMPMeta.html#a81347a92becd387a14f4d47c582f129a">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>DoesStructFieldExist()
-: <a class="el" href="classTXMPMeta.html#a9261b80d62e77a10ff1a89843bfa10a5">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>DumpNamespaces()
-: <a class="el" href="classTXMPMeta.html#aaddc5f555de57472939a41346e276817">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>DumpObject()
-: <a class="el" href="classTXMPMeta.html#a466fa349c9765f39ca6b1450908e769f">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>DuplicateSubtree()
-: <a class="el" href="classTXMPUtils.html#aa17838f062e5414bc0929f67ac94a3aa">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-</ul>
+&#160;
-
-<h3><a class="anchor" id="index_e">- e -</a></h3><ul>
-<li>EncodeToBase64()
-: <a class="el" href="classTXMPUtils.html#aef3b23bbc152480f699e269620ecad4a">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>Erase()
-: <a class="el" href="classTXMPMeta.html#adf57895625ad118782ed48a3931848b7">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_g">- g -</a></h3><ul>
-<li>GetArrayItem()
-: <a class="el" href="classTXMPMeta.html#ac64a4251d157937f69b73f2ffac4f7cc">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>GetAssociatedResources()
-: <a class="el" href="classTXMPFiles.html#a03e6c681e827666690f0e5567b0b2a8a">TXMPFiles&lt; tStringObj &gt;</a>
-</li>
-<li>GetErrMsg()
-: <a class="el" href="classXMP__Error.html#a9a3560c67612dec9a6ca37c34eb2c153">XMP_Error</a>
-</li>
-<li>GetFileInfo()
-: <a class="el" href="classTXMPFiles.html#af9931d081cb19f98c81e41786030765b">TXMPFiles&lt; tStringObj &gt;</a>
-</li>
-<li>GetFileModDate()
-: <a class="el" href="classTXMPFiles.html#a0de588c4b98086206b3a5d737012106d">TXMPFiles&lt; tStringObj &gt;</a>
-</li>
-<li>GetFormatInfo()
-: <a class="el" href="classTXMPFiles.html#acb9e16a1477ec67fa6da6d736a9bc131">TXMPFiles&lt; tStringObj &gt;</a>
-</li>
-<li>GetGlobalOptions()
-: <a class="el" href="classTXMPMeta.html#a12b2435ba039c62a164951948c016eb4">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>GetID()
-: <a class="el" href="classXMP__Error.html#a56aaa6fc6644ccfc9470ae1af8f3a8cd">XMP_Error</a>
-</li>
-<li>GetInternalRef()
-: <a class="el" href="classTXMPFiles.html#a311fc36fdf7270fe05b1c531cdbbd009">TXMPFiles&lt; tStringObj &gt;</a>
-, <a class="el" href="classTXMPMeta.html#afbfebded0b85b08bd9c5ba0d7dae07e0">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>GetLocalizedText()
-: <a class="el" href="classTXMPMeta.html#aeefe49bbf669770d769f4fe0ea566bd0">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>GetNamespacePrefix()
-: <a class="el" href="classTXMPMeta.html#af28589472d8c0397db6cef868f2b8c97">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>GetNamespaceURI()
-: <a class="el" href="classTXMPMeta.html#aa20c84e7549d0a3252fa29a1e83a757a">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>GetObjectName()
-: <a class="el" href="classTXMPMeta.html#ab0d179ed95487d4fd4f2680c1fbe0d40">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>GetObjectOptions()
-: <a class="el" href="classTXMPMeta.html#a0bfc04142a35671a4c8989fcaca6d6c2">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>GetProperty()
-: <a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c">TXMPMeta&lt; tStringObj &gt;</a>
+<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
+<li>AbsorbTemp()
+: <a class="el" href="classXMP__IO.html#aad4cf42485e9d8319a07f4ecdde4ee34">XMP_IO</a>
</li>
-<li>GetProperty_Bool()
-: <a class="el" href="classTXMPMeta.html#adcf8a1959a8bd42641a42cbd4d64a5b7">TXMPMeta&lt; tStringObj &gt;</a>
+<li>AcknowledgeChanges()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a673b6b4d69b2c9d85f2fa440d413ace3">AdobeXMPCore::INode_v1</a>
</li>
-<li>GetProperty_Date()
-: <a class="el" href="classTXMPMeta.html#a2f561295e73047ee90765558d29bd650">TXMPMeta&lt; tStringObj &gt;</a>
+<li>Acquire()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#ab368f307d6f23590d7ee76974cbd87fa">AdobeXMPCommon::IConfigurationManagerProxy</a>
+, <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc">AdobeXMPCommon::ISharedObject</a>
</li>
-<li>GetProperty_Float()
-: <a class="el" href="classTXMPMeta.html#a7708c31c9af3e740b27a4893dcd9aa47">TXMPMeta&lt; tStringObj &gt;</a>
+<li>allocate()
+: <a class="el" href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html#a2942e9d8f0d685ae6ebe58c18a11b999">AdobeXMPCommon::IMemoryAllocator_v1</a>
</li>
-<li>GetProperty_Int()
-: <a class="el" href="classTXMPMeta.html#ae4e8ee4cc7441bb9464dac87f2d74650">TXMPMeta&lt; tStringObj &gt;</a>
+<li>append()
+: <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a0699c6ad71960ba770c393dddcfa171d">AdobeXMPCommon::IUTF8String_v1</a>
</li>
-<li>GetProperty_Int64()
-: <a class="el" href="classTXMPMeta.html#af91fa4bc4f51a56e35bcfb554783b050">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>GetQualifier()
-: <a class="el" href="classTXMPMeta.html#a2cc58d8316043b035643e7c21633bc13">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>GetStructField()
-: <a class="el" href="classTXMPMeta.html#a885ef7127b897e349f71fa493ace3c94">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>GetVersionInfo()
-: <a class="el" href="classTXMPFiles.html#a6e521c034728b59ab55213a9d8203d1e">TXMPFiles&lt; tStringObj &gt;</a>
-, <a class="el" href="classTXMPMeta.html#a5415cfc01a9cb8786939246571a23a9d">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>GetXMP()
-: <a class="el" href="classTXMPFiles.html#a42ca0bbc5ac66a8de1710e03a7ff17b3">TXMPFiles&lt; tStringObj &gt;</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_i">- i -</a></h3><ul>
-<li>Initialize()
-: <a class="el" href="classTXMPFiles.html#a0874bbbf41c9490abfb613bfe297327d">TXMPFiles&lt; tStringObj &gt;</a>
-, <a class="el" href="classTXMPMeta.html#af1defbb73f919eae06456a655dea726c">TXMPMeta&lt; tStringObj &gt;</a>
-, <a class="el" href="classTXMPFiles.html#abf0defebf7ca7d2cba7aed3c5dc107df">TXMPFiles&lt; tStringObj &gt;</a>
-</li>
-<li>IsMetadataWritable()
-: <a class="el" href="classTXMPFiles.html#a6dfa135d53143d45e5ff22efa554398e">TXMPFiles&lt; tStringObj &gt;</a>
-</li>
-<li>IsNotified()
-: <a class="el" href="classXMP__Error.html#a5a0651a9615a6a60e467a96ddb43a6bb">XMP_Error</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_m">- m -</a></h3><ul>
-<li>MergeFromJPEG()
-: <a class="el" href="classTXMPUtils.html#a6187cd5fef0eccecac6805d4114dcd2e">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_n">- n -</a></h3><ul>
-<li>Next()
-: <a class="el" href="classTXMPIterator.html#a124a1dd1ab3ff0d236e4d4b967dafcd9">TXMPIterator&lt; tStringObj &gt;</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_o">- o -</a></h3><ul>
-<li>OpenFile()
-: <a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb">TXMPFiles&lt; tStringObj &gt;</a>
-</li>
-<li>operator=()
-: <a class="el" href="classTXMPIterator.html#ad767d731320d3f4c997c6ce9f7f8fa63">TXMPIterator&lt; tStringObj &gt;</a>
-, <a class="el" href="classTXMPFiles.html#a3f1483fcc92860460d3772216dfaef81">TXMPFiles&lt; tStringObj &gt;</a>
-, <a class="el" href="classTXMPMeta.html#a4d5a601c9b77f6f6ab5f14e658de58ef">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_p">- p -</a></h3><ul>
-<li>PackageForJPEG()
-: <a class="el" href="classTXMPUtils.html#a6001b4ff54c60fdf0c40e6b78a5c457a">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>ParseFromBuffer()
-: <a class="el" href="classTXMPMeta.html#a7b383f5b357fff040cdbde82f4f43f26">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>PutXMP()
-: <a class="el" href="classTXMPFiles.html#ada77eab74c3440659db3122f6ec8b7f4">TXMPFiles&lt; tStringObj &gt;</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_r">- r -</a></h3><ul>
-<li>RegisterNamespace()
-: <a class="el" href="classTXMPMeta.html#ac0368ddbaa4d689cd5b1aff1c88bb0e1">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>RemoveProperties()
-: <a class="el" href="classTXMPUtils.html#a40c645803530662e08d042b4b7c6190d">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>ResetErrorCallbackLimit()
-: <a class="el" href="classTXMPFiles.html#a8e37b25dd1cba1e9a3f45037022717f2">TXMPFiles&lt; tStringObj &gt;</a>
-, <a class="el" href="classTXMPMeta.html#a31c7ef089e8fadff122044afa27d200a">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_s">- s -</a></h3><ul>
-<li>SeparateArrayItems()
-: <a class="el" href="classTXMPUtils.html#a66c5ddee47aa36ed906353f94ca18d2e">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>SerializeToBuffer()
-: <a class="el" href="classTXMPMeta.html#a0d98bc15bdb0f45737b15fc6822f3bc6">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>SetAbortProc()
-: <a class="el" href="classTXMPFiles.html#a7b86c130fdbd54b5ac158ec3fee93777">TXMPFiles&lt; tStringObj &gt;</a>
-</li>
-<li>SetArrayItem()
-: <a class="el" href="classTXMPMeta.html#a1570eb89d613b4a94ca572e4644168cc">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>SetDefaultErrorCallback()
-: <a class="el" href="classTXMPFiles.html#accc6c1cef9f124f6c5ed360251aa5aa7">TXMPFiles&lt; tStringObj &gt;</a>
-, <a class="el" href="classTXMPMeta.html#a1e90e0c8cd8c5670267bb693cf3660fe">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>SetDefaultProgressCallback()
-: <a class="el" href="classTXMPFiles.html#a83335ee20bb3ea543c8c86a5757a7753">TXMPFiles&lt; tStringObj &gt;</a>
-</li>
-<li>SetErrorCallback()
-: <a class="el" href="classTXMPFiles.html#a43a98633a0090fb4ade76edf24302ab1">TXMPFiles&lt; tStringObj &gt;</a>
-, <a class="el" href="classTXMPMeta.html#aee41442af4f049c1d6698fc27ce854d0">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>SetGlobalOptions()
-: <a class="el" href="classTXMPMeta.html#ae7bb38d9b3857b08106630a386b47332">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>SetLocalizedText()
-: <a class="el" href="classTXMPMeta.html#af9531b949a462f5663b1f3fd99464c19">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>SetNotified()
-: <a class="el" href="classXMP__Error.html#a9c368db94ca63ad7b9b118051d1f8897">XMP_Error</a>
-</li>
-<li>SetObjectName()
-: <a class="el" href="classTXMPMeta.html#acf1935be8e4849976dfc02325424960a">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>SetObjectOptions()
-: <a class="el" href="classTXMPMeta.html#a92055b3ae18dfd5e5491108f59318f17">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>SetProgressCallback()
-: <a class="el" href="classTXMPFiles.html#aa283e2a1c16918c86148446859ed1a2d">TXMPFiles&lt; tStringObj &gt;</a>
-</li>
-<li>SetProperty()
-: <a class="el" href="classTXMPMeta.html#a1dfd6a08ebfd1a6364b3a7b6584bcc28">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>SetProperty_Bool()
-: <a class="el" href="classTXMPMeta.html#a9521e3838272ec501ffdb60ff3eb482f">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>SetProperty_Date()
-: <a class="el" href="classTXMPMeta.html#aeee10669445f77139d5634199ff01079">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>SetProperty_Float()
-: <a class="el" href="classTXMPMeta.html#a3b0f2f6bae57931ea96775f03608c0ed">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>SetProperty_Int()
-: <a class="el" href="classTXMPMeta.html#a489e10a6686aa813ee437e93ab2c5943">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>SetProperty_Int64()
-: <a class="el" href="classTXMPMeta.html#a7f749be7699890bbaa2e2dbd05d45a90">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>SetQualifier()
-: <a class="el" href="classTXMPMeta.html#ac2e798da5f9d94e486382a41e73fcea3">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>SetStructField()
-: <a class="el" href="classTXMPMeta.html#a0e44c30e7527064909e5f7035d53c4f5">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-<li>SetTimeZone()
-: <a class="el" href="classTXMPUtils.html#a96bcc45febac55f6c49951815b7de2ef">TXMPUtils&lt; tStringObj &gt;</a>
-</li>
-<li>Skip()
-: <a class="el" href="classTXMPIterator.html#a30b4d78974b347e4fcd275f1f65a61b2">TXMPIterator&lt; tStringObj &gt;</a>
-</li>
-<li>Sort()
-: <a class="el" href="classTXMPMeta.html#a8ac5a02a13d439ff33ed4431986da681">TXMPMeta&lt; tStringObj &gt;</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_t">- t -</a></h3><ul>
-<li>Terminate()
-: <a class="el" href="classTXMPFiles.html#a1e8de80c252b60b332dc4bc524139fd8">TXMPFiles&lt; tStringObj &gt;</a>
-, <a class="el" href="classTXMPMeta.html#a6c30fae26173167958b6f0da95a53865">TXMPMeta&lt; tStringObj &gt;</a>
+<li>AppendArrayItem()
+: <a class="el" href="classTXMPMeta.html#a00d7314dc970ad390499ce9db27d314a">TXMPMeta&lt; tStringObj &gt;</a>
</li>
-<li>TXMPFiles()
-: <a class="el" href="classTXMPFiles.html#a36abe01988d4ca3939138e871c7b75e7">TXMPFiles&lt; tStringObj &gt;</a>
+<li>AppendNode()
+: <a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a6795e662d9daea5b88de08261488964b">AdobeXMPCore::ICompositeNode_v1</a>
</li>
-<li>TXMPIterator()
-: <a class="el" href="classTXMPIterator.html#a88e855c18b2b15f7b8a5ccf3b9398352">TXMPIterator&lt; tStringObj &gt;</a>
+<li>AppendParameter()
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a125e3343c3a6fc979798cfc5a826ffa9">AdobeXMPCommon::IError_v1</a>
</li>
-<li>TXMPMeta()
-: <a class="el" href="classTXMPMeta.html#ada43d63894350e23a4307c41b7335eca">TXMPMeta&lt; tStringObj &gt;</a>
+<li>AppendPathSegment()
+: <a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#ad11a65bed658401f8cfcd41387e2b8a6">AdobeXMPCore::IPath_v1</a>
</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_x">- x -</a></h3><ul>
-<li>XMP_Error()
-: <a class="el" href="classXMP__Error.html#aa8b3b859899759d679b00237254e30aa">XMP_Error</a>
-</li>
-<li>XMP_PacketInfo()
-: <a class="el" href="structXMP__PacketInfo.html#a2ae03a1b3d03fa9ebc829105037155a8">XMP_PacketInfo</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_0x7e">- ~ -</a></h3><ul>
-<li>~TXMPFiles()
-: <a class="el" href="classTXMPFiles.html#a5eaa92724cc82d933a32eff9c4636739">TXMPFiles&lt; tStringObj &gt;</a>
+<li>ApplyTemplate()
+: <a class="el" href="classTXMPUtils.html#ab73bfa15116e6d702044542e0a43cce9">TXMPUtils&lt; tStringObj &gt;</a>
</li>
-<li>~TXMPIterator()
-: <a class="el" href="classTXMPIterator.html#a911554533e8a3f09ab8870bd54462196">TXMPIterator&lt; tStringObj &gt;</a>
+<li>AreKeysCaseSensitive()
+: <a class="el" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html#aaaf9b00cdda11d05f0a5206665096c11">AdobeXMPCore::IClientDOMParser_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#aa6090a60c51266963005c2fce33ea760">AdobeXMPCore::IClientDOMSerializer_v1</a>
</li>
-<li>~TXMPMeta()
-: <a class="el" href="classTXMPMeta.html#abab5013870cd47eb0d9d701653735a02">TXMPMeta&lt; tStringObj &gt;</a>
+<li>assign()
+: <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a09ed6025bf467e1aab61ceab27277ea7">AdobeXMPCommon::IUTF8String_v1</a>
</li>
</ul>
-</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
</body>
</html>
diff --git a/docs/API/functions_func.js b/docs/API/functions_func.js
new file mode 100755
index 0000000..31c5f09
--- /dev/null
+++ b/docs/API/functions_func.js
@@ -0,0 +1,24 @@
+var functions_func =
+[
+ [ "a", "functions_func.html", null ],
+ [ "c", "functions_func_c.html", null ],
+ [ "d", "functions_func_d.html", null ],
+ [ "e", "functions_func_e.html", null ],
+ [ "f", "functions_func_f.html", null ],
+ [ "g", "functions_func_g.html", null ],
+ [ "h", "functions_func_h.html", null ],
+ [ "i", "functions_func_i.html", null ],
+ [ "l", "functions_func_l.html", null ],
+ [ "m", "functions_func_m.html", null ],
+ [ "n", "functions_func_n.html", null ],
+ [ "o", "functions_func_o.html", null ],
+ [ "p", "functions_func_p.html", null ],
+ [ "q", "functions_func_q.html", null ],
+ [ "r", "functions_func_r.html", null ],
+ [ "s", "functions_func_s.html", null ],
+ [ "t", "functions_func_t.html", null ],
+ [ "v", "functions_func_v.html", null ],
+ [ "w", "functions_func_w.html", null ],
+ [ "x", "functions_func_x.html", null ],
+ [ "~", "functions_func_0x7e.html", null ]
+]; \ No newline at end of file
diff --git a/docs/API/functions_func_0x7e.html b/docs/API/functions_func_0x7e.html
new file mode 100755
index 0000000..b3ab4ef
--- /dev/null
+++ b/docs/API/functions_func_0x7e.html
@@ -0,0 +1,173 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members - Functions</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="functions.html"><span>All</span></a></li>
+ <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions_func.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_func_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_func_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_func_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_func_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_func_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_func_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_func_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_func_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_func_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_func_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_func_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_func_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_func_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_func_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_func_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_func_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_func_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_func_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_func_x.html#index_x"><span>x</span></a></li>
+ <li class="current"><a href="functions_func_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_func_0x7e.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_0x7e"></a>- ~ -</h3><ul>
+<li>~IArrayNode_v1()
+: <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#ae72a477964eaa0590d7ee415e044bc02">AdobeXMPCore::IArrayNode_v1</a>
+</li>
+<li>~IClientDOMParser_v1()
+: <a class="el" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html#ac9890eb0a1635872a2ed2f86544b0057">AdobeXMPCore::IClientDOMParser_v1</a>
+</li>
+<li>~IClientDOMSerializer_v1()
+: <a class="el" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#a58ff533c49dcfcf3374097aea70c1107">AdobeXMPCore::IClientDOMSerializer_v1</a>
+</li>
+<li>~ICompositeNode_v1()
+: <a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a51af220e29b40e8520ae5765f28515bf">AdobeXMPCore::ICompositeNode_v1</a>
+</li>
+<li>~IConfigurable()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a7c19f627db3d07e227e93a6a0e6b20ab">AdobeXMPCommon::IConfigurable</a>
+</li>
+<li>~IConfigurationManager_v1()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html#aab2f368cf6883a6cd92fe688a95516b5">AdobeXMPCommon::IConfigurationManager_v1</a>
+</li>
+<li>~IConfigurationManagerProxy()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a2d3924186af26ed2ea955d155ba8e89c">AdobeXMPCommon::IConfigurationManagerProxy</a>
+</li>
+<li>~ICoreConfigurationManager_v1()
+: <a class="el" href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html#a16df3adfe25d46e47db70e02c1b8afd3">AdobeXMPCore::ICoreConfigurationManager_v1</a>
+</li>
+<li>~ICoreObjectFactory_v1()
+: <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a86ec61e722ad68c9f09e95a7ceaa4393">AdobeXMPCore::ICoreObjectFactory_v1</a>
+</li>
+<li>~IDOMImplementationRegistry_v1()
+: <a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html#a8fab4e8f7a4b6b652c623f58d7e3432b">AdobeXMPCore::IDOMImplementationRegistry_v1</a>
+</li>
+<li>~IDOMParser_v1()
+: <a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a8cbde9bf86ebb4ef4a6968e39b601670">AdobeXMPCore::IDOMParser_v1</a>
+</li>
+<li>~IDOMSerializer_v1()
+: <a class="el" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html#a3631ef4b5bf7814d37f9582463d7d453">AdobeXMPCore::IDOMSerializer_v1</a>
+</li>
+<li>~IError_v1()
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a259f1d92b325fe01991ca5acd2238346">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>~IMetadata_v1()
+: <a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html#ada50f9f0415ce96ac1df948f510a3f75">AdobeXMPCore::IMetadata_v1</a>
+</li>
+<li>~INameSpacePrefixMap_v1()
+: <a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#aabfdffd2a782e83a627bbe1c687a922b">AdobeXMPCore::INameSpacePrefixMap_v1</a>
+</li>
+<li>~INode_v1()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#affdbed044179bbde65ffc28b20e28ecb">AdobeXMPCore::INode_v1</a>
+</li>
+<li>~INodeIterator_v1()
+: <a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html#aebc78681e60a09759ce7ab820716a0a2">AdobeXMPCore::INodeIterator_v1</a>
+</li>
+<li>~IObjectFactory_v1()
+: <a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#a95fcbab435329d052ab42028da563c02">AdobeXMPCommon::IObjectFactory_v1</a>
+</li>
+<li>~IPath_v1()
+: <a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#ad2d1a79e6c8e270c1cb9acee09e7881e">AdobeXMPCore::IPath_v1</a>
+</li>
+<li>~IPathSegment_v1()
+: <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a1ef63ec40233a30d4ec9f165e5332a43">AdobeXMPCore::IPathSegment_v1</a>
+</li>
+<li>~ISharedObject()
+: <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31">AdobeXMPCommon::ISharedObject</a>
+</li>
+<li>~ISimpleNode_v1()
+: <a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html#a12de1bae1dcb7c8302044df2b4fddb02">AdobeXMPCore::ISimpleNode_v1</a>
+</li>
+<li>~IStructureNode_v1()
+: <a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a0cdcce18c6ebbb1764286e3e2456c694">AdobeXMPCore::IStructureNode_v1</a>
+</li>
+<li>~IUTF8String_v1()
+: <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#ade123eab5a2f5e432ce6e50f43eddad3">AdobeXMPCommon::IUTF8String_v1</a>
+</li>
+<li>~IVersionable()
+: <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">AdobeXMPCommon::IVersionable</a>
+</li>
+<li>~TXMPFiles()
+: <a class="el" href="classTXMPFiles.html#a5eaa92724cc82d933a32eff9c4636739">TXMPFiles&lt; tStringObj &gt;</a>
+</li>
+<li>~TXMPIterator()
+: <a class="el" href="classTXMPIterator.html#a911554533e8a3f09ab8870bd54462196">TXMPIterator&lt; tStringObj &gt;</a>
+</li>
+<li>~TXMPMeta()
+: <a class="el" href="classTXMPMeta.html#abab5013870cd47eb0d9d701653735a02">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>~XMP_IO()
+: <a class="el" href="classXMP__IO.html#a52825d62e1a93ae1ee157d68860b6815">XMP_IO</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_func_c.html b/docs/API/functions_func_c.html
new file mode 100755
index 0000000..dabf0cc
--- /dev/null
+++ b/docs/API/functions_func_c.html
@@ -0,0 +1,260 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members - Functions</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="functions.html"><span>All</span></a></li>
+ <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions_func.html#index_a"><span>a</span></a></li>
+ <li class="current"><a href="functions_func_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_func_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_func_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_func_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_func_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_func_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_func_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_func_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_func_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_func_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_func_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_func_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_func_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_func_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_func_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_func_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_func_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_func_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_func_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_func_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_func_c.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
+<li>c_str()
+: <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a74f019bc9c2d4a36c689906529abca14">AdobeXMPCommon::IUTF8String_v1</a>
+</li>
+<li>CanPutXMP()
+: <a class="el" href="classTXMPFiles.html#a29a11a1539d6300da3fb4c7e9ea02bb6">TXMPFiles&lt; tStringObj &gt;</a>
+</li>
+<li>CatenateArrayItems()
+: <a class="el" href="classTXMPUtils.html#ad7e1aa7928252fb88a24fb5c3aef22ba">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>CheckFileFormat()
+: <a class="el" href="classTXMPFiles.html#a07b7c4b44fb0e0a7d115ddd5ba22f926">TXMPFiles&lt; tStringObj &gt;</a>
+</li>
+<li>CheckPackageFormat()
+: <a class="el" href="classTXMPFiles.html#a7f505664c41d7304fb757d6009b0751c">TXMPFiles&lt; tStringObj &gt;</a>
+</li>
+<li>ChildCount()
+: <a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#abf3323ce933f5336bc0f64955c0bdd11">AdobeXMPCore::ICompositeNode_v1</a>
+</li>
+<li>clear()
+: <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a8c89cae09770d23100e36a7401733e00">AdobeXMPCommon::IUTF8String_v1</a>
+</li>
+<li>Clear()
+: <a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a6ed5fd946dfad6406539562178b3caeb">AdobeXMPCore::INameSpacePrefixMap_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4b615b0eef081f3c23385f28728aa462">AdobeXMPCore::INode_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#af056942f9dba913762b258cb5b422300">AdobeXMPCore::IPath_v1</a>
+</li>
+<li>Clone()
+: <a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a0d771fa042d5c5b3cf015f567f8aea9f">AdobeXMPCore::IDOMParser_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html#a4b8a7832e2dbbadfaed717723d3d20d3">AdobeXMPCore::IDOMSerializer_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#ae30d56519a24afe9c22ae353fedbd8f7">AdobeXMPCore::INameSpacePrefixMap_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2d613694adcedb569145aff06d0bc595">AdobeXMPCore::INode_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#a054e7cb641a72c7d3e7f35ef1225c6f4">AdobeXMPCore::IPath_v1</a>
+, <a class="el" href="classTXMPMeta.html#a6ca653436995bbb76315efe7934afd4c">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>CloseFile()
+: <a class="el" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927">TXMPFiles&lt; tStringObj &gt;</a>
+</li>
+<li>compare()
+: <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a745714ed2abbc6a2808fb933cc6b2f46">AdobeXMPCommon::IUTF8String_v1</a>
+</li>
+<li>CompareDateTime()
+: <a class="el" href="classTXMPUtils.html#a9fc7f1771032f59f9020aeda4f91991d">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>ComposeArrayItemPath()
+: <a class="el" href="classTXMPUtils.html#a47fa195aa2e1457aa1f74f7e1ed06da6">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>ComposeFieldSelector()
+: <a class="el" href="classTXMPUtils.html#a458f8e8729e2334fe54ca8f691a9db23">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>ComposeLangSelector()
+: <a class="el" href="classTXMPUtils.html#ae4989e5c199a2a4287ee3ae89b872e69">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>ComposeQualifierPath()
+: <a class="el" href="classTXMPUtils.html#a40ae0ce2065fcb71725e37137884e172">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>ComposeStructFieldPath()
+: <a class="el" href="classTXMPUtils.html#a706eb85b8401b8682a01348f7e25ee3d">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>ConvertCharBufferToUint64()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a932bf0b8f4396de0e29f6c165954e5dc">AdobeXMPCommon::IConfigurable</a>
+</li>
+<li>ConvertFromBool()
+: <a class="el" href="classTXMPUtils.html#a509691eb270988de6a770c9c8304ab6b">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>ConvertFromDate()
+: <a class="el" href="classTXMPUtils.html#a6146a522a3974b4088d6e8241e9cd223">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>ConvertFromFloat()
+: <a class="el" href="classTXMPUtils.html#ae67ef3931836432b7e574832f0610ed0">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>ConvertFromInt()
+: <a class="el" href="classTXMPUtils.html#aeec45b4d1a26717290105c9f4e8b4235">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>ConvertFromInt64()
+: <a class="el" href="classTXMPUtils.html#aeae4617e05358433015eaa80953c5e60">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>ConvertToArrayNode()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#af180be62ecd26edf90df0fe3ea75941e">AdobeXMPCore::INode_v1</a>
+</li>
+<li>ConvertToBool()
+: <a class="el" href="classTXMPUtils.html#aaaaaadb23f4089daa795f50cba4f405c">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>ConvertToDate()
+: <a class="el" href="classTXMPUtils.html#a60d33e6ce30286028acca47b2b6e7a0b">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>ConvertToFloat()
+: <a class="el" href="classTXMPUtils.html#a8a507b006286460814e0486c622d828c">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>ConvertToInt()
+: <a class="el" href="classTXMPUtils.html#adfd9d1c522377d5db4ad667a7973ba00">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>ConvertToInt64()
+: <a class="el" href="classTXMPUtils.html#abe5d2dcc03c5442202203bba5ca7b172">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>ConvertToLocalTime()
+: <a class="el" href="classTXMPUtils.html#a61852aaba494c8fbad5a6c0c4caf21f5">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>ConvertToMetadata()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a08f9ed4dee6c899f65eb51e3d7f9858d">AdobeXMPCore::INode_v1</a>
+</li>
+<li>ConvertToSimpleNode()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ad8e7ef140cb5ff094789abfcc879c94b">AdobeXMPCore::INode_v1</a>
+</li>
+<li>ConvertToStructureNode()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5ea317fcd59694184089a9774c866b22">AdobeXMPCore::INode_v1</a>
+</li>
+<li>ConvertToUTCTime()
+: <a class="el" href="classTXMPUtils.html#abbd4d691c83287ea2fc6b1e33e5858b8">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>copy()
+: <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a71882e69cdd1729a498571286dcf752a">AdobeXMPCommon::IUTF8String_v1</a>
+</li>
+<li>CountArrayItems()
+: <a class="el" href="classTXMPMeta.html#ab79aae864b3ce190d0699252f48e0acc">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>CreateAlternativeArrayNode()
+: <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#afcb8012075f5c956139bff39f41bae47">AdobeXMPCore::IArrayNode_v1</a>
+</li>
+<li>CreateArrayIndexPathSegment()
+: <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a3bfacdef9fe44e03dbe826e5ab4d96a5">AdobeXMPCore::ICoreObjectFactory_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#ab94dc022fdf9edad3423c8f281f95674">AdobeXMPCore::IPathSegment_v1</a>
+</li>
+<li>CreateArrayNode()
+: <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a483da62ca0b16df479b574ce159656a0">AdobeXMPCore::ICoreObjectFactory_v1</a>
+</li>
+<li>CreateError()
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#aac7106e2c1a4fb762f11ef70fb38cb8e">AdobeXMPCommon::IError_v1</a>
+, <a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#ae86e711336af91dca23f4611b1f03724">AdobeXMPCommon::IObjectFactory_v1</a>
+</li>
+<li>CreateMetadata()
+: <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a256fa057baeddc10da895731a2e24089">AdobeXMPCore::ICoreObjectFactory_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html#a114ea75cdd7e1101455af000e01ab17d">AdobeXMPCore::IMetadata_v1</a>
+</li>
+<li>CreateNameSpacePrefixMap()
+: <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#ae212c413d5ef30bdf35e2987f3752a8d">AdobeXMPCore::ICoreObjectFactory_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a722b12c77879087c26990650d99d3339">AdobeXMPCore::INameSpacePrefixMap_v1</a>
+</li>
+<li>CreateOrderedArrayNode()
+: <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a6e9068b8048a29804fb9d567c6cc8952">AdobeXMPCore::IArrayNode_v1</a>
+</li>
+<li>CreatePath()
+: <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a385859faf85e5121f6e900da52fe7a51">AdobeXMPCore::ICoreObjectFactory_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#a0da106657f48b1c8859e31de357015d4">AdobeXMPCore::IPath_v1</a>
+</li>
+<li>CreatePropertyPathSegment()
+: <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#adbaf560c74694b7ccdd6f26b2d320b35">AdobeXMPCore::ICoreObjectFactory_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a78df7478295fed763eadac0cefb79e1b">AdobeXMPCore::IPathSegment_v1</a>
+</li>
+<li>CreateQualifierPathSegment()
+: <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#ae6c1338b3fc954aac0b3bb75a2f17d71">AdobeXMPCore::ICoreObjectFactory_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a49da0c0bed14c7afb07d263570f09221">AdobeXMPCore::IPathSegment_v1</a>
+</li>
+<li>CreateQualifierSelectorPathSegment()
+: <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#ac7c3343a39a736921d804796a067acec">AdobeXMPCore::ICoreObjectFactory_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a854506c44a7acfc0246709a6cd74638d">AdobeXMPCore::IPathSegment_v1</a>
+</li>
+<li>CreateSimpleNode()
+: <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a055e87d1002612143f5104c0e3613336">AdobeXMPCore::ICoreObjectFactory_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html#a9221d195ce7d207b65652008666e04d6">AdobeXMPCore::ISimpleNode_v1</a>
+</li>
+<li>CreateStructureNode()
+: <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a6976b678d45b6e968eb7cf094c18bc24">AdobeXMPCore::ICoreObjectFactory_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#ab39f8d743ba67fc4e6a21b08b03fdde2">AdobeXMPCore::IStructureNode_v1</a>
+</li>
+<li>CreateUnorderedArrayNode()
+: <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a9b89618c3115efc948bd7fb49dfc570c">AdobeXMPCore::IArrayNode_v1</a>
+</li>
+<li>CreateUTF8String()
+: <a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#ae3e9eb977c305e48425654bec514f405">AdobeXMPCommon::IObjectFactory_v1</a>
+, <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a0d2adae65b938d56ff526d67cc9634a3">AdobeXMPCommon::IUTF8String_v1</a>
+</li>
+<li>CurrentDateTime()
+: <a class="el" href="classTXMPUtils.html#ac83f0b963ea64d7eee0b481e15a8439c">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_func_d.html b/docs/API/functions_func_d.html
new file mode 100755
index 0000000..5e41d69
--- /dev/null
+++ b/docs/API/functions_func_d.html
@@ -0,0 +1,153 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members - Functions</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="functions.html"><span>All</span></a></li>
+ <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions_func.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_func_c.html#index_c"><span>c</span></a></li>
+ <li class="current"><a href="functions_func_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_func_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_func_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_func_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_func_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_func_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_func_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_func_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_func_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_func_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_func_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_func_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_func_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_func_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_func_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_func_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_func_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_func_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_func_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_func_d.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
+<li>deallocate()
+: <a class="el" href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html#a607755ef64bf552482c4a330fcc79120">AdobeXMPCommon::IMemoryAllocator_v1</a>
+</li>
+<li>DecodeFromBase64()
+: <a class="el" href="classTXMPUtils.html#ae5bdd91c0c3ee9262dc0a8b9f591b921">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>DeleteArrayItem()
+: <a class="el" href="classTXMPMeta.html#abc1211f47225b5973a170ff952743264">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>DeleteLocalizedText()
+: <a class="el" href="classTXMPMeta.html#aeb7679e92b126800b7bd906acb2f26e8">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>DeleteNamespace()
+: <a class="el" href="classTXMPMeta.html#a3f989597e95db929676273cacd4ea09a">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>DeleteProperty()
+: <a class="el" href="classTXMPMeta.html#ac8b555ba99904fa49bb4851a60cc3844">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>DeleteQualifier()
+: <a class="el" href="classTXMPMeta.html#a8ce15f7de7fd3b258f07158ab5fa88be">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>DeleteStructField()
+: <a class="el" href="classTXMPMeta.html#abc258e027780a15be65a88fcfd4e1fd4">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>DeleteTemp()
+: <a class="el" href="classXMP__IO.html#a337ddf3f954d2b4e8dce1d70d8c33ddb">XMP_IO</a>
+</li>
+<li>DeriveTemp()
+: <a class="el" href="classXMP__IO.html#ac989de23f8fed2efcca71f5a3aa35695">XMP_IO</a>
+</li>
+<li>DestroyCoreObjectFactory()
+: <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a970dd5b32ca7601b29426a9384a64f56">AdobeXMPCore::ICoreObjectFactory_v1</a>
+</li>
+<li>DisableFeature()
+: <a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html#a451bb5293ea38730bee99853b1d3237b">AdobeXMPCore::IMetadata_v1</a>
+</li>
+<li>DisableMultiThreading()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html#acf69fdd4ec5c1eb47b6a41b052372504">AdobeXMPCommon::IConfigurationManager_v1</a>
+, <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a8432b3ab3d3e1c344dc006308e34e4bc">AdobeXMPCommon::IConfigurationManagerProxy</a>
+</li>
+<li>disableMultiThreading()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a9d07fe612bdc448ea279f9c6a8f2c905">AdobeXMPCommon::IConfigurationManagerProxy</a>
+</li>
+<li>DisableThreadSafety()
+: <a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a214bb1b5840dbd5576e764dd2220b261">AdobeXMPCommon::IThreadSafe</a>
+</li>
+<li>DoesArrayItemExist()
+: <a class="el" href="classTXMPMeta.html#a492465c588d6d4cb8e30f94790e66f58">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>DoesPropertyExist()
+: <a class="el" href="classTXMPMeta.html#af22b116d71ecbbebea016ec5337e7066">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>DoesQualifierExist()
+: <a class="el" href="classTXMPMeta.html#a81347a92becd387a14f4d47c582f129a">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>DoesStructFieldExist()
+: <a class="el" href="classTXMPMeta.html#a9261b80d62e77a10ff1a89843bfa10a5">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>DumpNamespaces()
+: <a class="el" href="classTXMPMeta.html#aaddc5f555de57472939a41346e276817">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>DumpObject()
+: <a class="el" href="classTXMPMeta.html#a466fa349c9765f39ca6b1450908e769f">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>DuplicateSubtree()
+: <a class="el" href="classTXMPUtils.html#aa17838f062e5414bc0929f67ac94a3aa">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_func_e.html b/docs/API/functions_func_e.html
new file mode 100755
index 0000000..dac6863
--- /dev/null
+++ b/docs/API/functions_func_e.html
@@ -0,0 +1,104 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members - Functions</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="functions.html"><span>All</span></a></li>
+ <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions_func.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_func_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_func_d.html#index_d"><span>d</span></a></li>
+ <li class="current"><a href="functions_func_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_func_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_func_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_func_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_func_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_func_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_func_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_func_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_func_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_func_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_func_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_func_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_func_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_func_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_func_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_func_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_func_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_func_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_func_e.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
+<li>empty()
+: <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a3d47695cb24358835d8c904cfbf0856c">AdobeXMPCommon::IUTF8String_v1</a>
+</li>
+<li>EnableFeature()
+: <a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html#a179a82bd3f38996331e9ee0bdee997b9">AdobeXMPCore::IMetadata_v1</a>
+</li>
+<li>EnableThreadSafety()
+: <a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#afe35614cb88e2bdb32996cf4ac15b211">AdobeXMPCommon::IThreadSafe</a>
+</li>
+<li>EncodeToBase64()
+: <a class="el" href="classTXMPUtils.html#a39d5de77b29441a30f2f879755b8e7d8">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>erase()
+: <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a34008a94fe509b080c0d1b7f5e650886">AdobeXMPCommon::IUTF8String_v1</a>
+</li>
+<li>Erase()
+: <a class="el" href="classTXMPMeta.html#adf57895625ad118782ed48a3931848b7">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_func_f.html b/docs/API/functions_func_f.html
new file mode 100755
index 0000000..77ec9b9
--- /dev/null
+++ b/docs/API/functions_func_f.html
@@ -0,0 +1,89 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members - Functions</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="functions.html"><span>All</span></a></li>
+ <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions_func.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_func_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_func_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_func_e.html#index_e"><span>e</span></a></li>
+ <li class="current"><a href="functions_func_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_func_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_func_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_func_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_func_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_func_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_func_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_func_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_func_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_func_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_func_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_func_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_func_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_func_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_func_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_func_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_func_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_func_f.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
+<li>find()
+: <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a136133c53ec032e30c10a15f11c7c8b5">AdobeXMPCommon::IUTF8String_v1</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_func_g.html b/docs/API/functions_func_g.html
new file mode 100755
index 0000000..389b81d
--- /dev/null
+++ b/docs/API/functions_func_g.html
@@ -0,0 +1,338 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members - Functions</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="functions.html"><span>All</span></a></li>
+ <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions_func.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_func_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_func_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_func_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_func_f.html#index_f"><span>f</span></a></li>
+ <li class="current"><a href="functions_func_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_func_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_func_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_func_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_func_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_func_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_func_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_func_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_func_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_func_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_func_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_func_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_func_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_func_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_func_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_func_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_func_g.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_g"></a>- g -</h3><ul>
+<li>GetAboutURI()
+: <a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html#a707b78542a91b833a6cf45be3516813c">AdobeXMPCore::IMetadata_v1</a>
+</li>
+<li>GetActualIConfigurationManager()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a51a9e283ecad4043182f5ff9c8c38367">AdobeXMPCommon::IConfigurationManagerProxy</a>
+</li>
+<li>GetAllParameters()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad0e79a0e44353d08139358a56e8510fb">AdobeXMPCommon::IConfigurable</a>
+</li>
+<li>GetArrayForm()
+: <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#ae75dc043c5da4ab09b4700fcbfc065ec">AdobeXMPCore::IArrayNode_v1</a>
+</li>
+<li>GetArrayItem()
+: <a class="el" href="classTXMPMeta.html#ac64a4251d157937f69b73f2ffac4f7cc">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>GetArrayNode()
+: <a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html#ad9a22d79ead6cc79fb5bd4da858e99ce">AdobeXMPCore::INodeIterator_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a8ee43418308bf6f80d1fc90eb84f5db0">AdobeXMPCore::IStructureNode_v1</a>
+</li>
+<li>GetArrayNodeAtIndex()
+: <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a57011f7b4cf194ef1a2e52011671b862">AdobeXMPCore::IArrayNode_v1</a>
+</li>
+<li>GetArrayNodeAtPath()
+: <a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a2e17bda06b20439a0076ea2fae68594d">AdobeXMPCore::ICompositeNode_v1</a>
+</li>
+<li>GetArrayQualifier()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ab55c9dad49840d58a1c2c16b9f1962ad">AdobeXMPCore::INode_v1</a>
+</li>
+<li>GetAssociatedResources()
+: <a class="el" href="classTXMPFiles.html#a03e6c681e827666690f0e5567b0b2a8a">TXMPFiles&lt; tStringObj &gt;</a>
+</li>
+<li>GetChildNodeType()
+: <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#ad3748958964789cb3d20d5776b1157b5">AdobeXMPCore::IArrayNode_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a1463dda9dea83f54c69ad72f105f5eff">AdobeXMPCore::IStructureNode_v1</a>
+</li>
+<li>GetCode()
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a4daea946019093097749e0a6c0a45cf0">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>GetCoreConfigurationManager()
+: <a class="el" href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html#a867de0412ef1c6baf40a35714edd3f9e">AdobeXMPCore::ICoreConfigurationManager_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a5c98e5f81eff5b0337347ef9416d2711">AdobeXMPCore::ICoreObjectFactory_v1</a>
+</li>
+<li>GetCoreObjectFactory()
+: <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a6aecc832674b0e39a98cdde147fd84d9">AdobeXMPCore::ICoreObjectFactory_v1</a>
+</li>
+<li>GetDataType()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a7e71691861d38ae351bdd42392b78af6">AdobeXMPCommon::IConfigurable</a>
+</li>
+<li>GetDefaultNameSpacePrefixMap()
+: <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#ac8eb0f7f78f5d0f21575a94c3f279926">AdobeXMPCore::ICoreObjectFactory_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a16669cda8f88d9af18a248919103df22">AdobeXMPCore::INameSpacePrefixMap_v1</a>
+</li>
+<li>GetDomain()
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#ae28247d03f397b27bee52b8378366f80">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>GetDOMImplementationRegistry()
+: <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a9226dbf3ca7a02c871cacbe3b4865b6b">AdobeXMPCore::ICoreObjectFactory_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html#a6b12abfcc01cea39851ac51977cb1562">AdobeXMPCore::IDOMImplementationRegistry_v1</a>
+</li>
+<li>GetErrMsg()
+: <a class="el" href="classXMP__Error.html#a9a3560c67612dec9a6ca37c34eb2c153">XMP_Error</a>
+</li>
+<li>GetFileInfo()
+: <a class="el" href="classTXMPFiles.html#af9931d081cb19f98c81e41786030765b">TXMPFiles&lt; tStringObj &gt;</a>
+</li>
+<li>GetFileModDate()
+: <a class="el" href="classTXMPFiles.html#a0de588c4b98086206b3a5d737012106d">TXMPFiles&lt; tStringObj &gt;</a>
+</li>
+<li>GetFormatInfo()
+: <a class="el" href="classTXMPFiles.html#acb9e16a1477ec67fa6da6d736a9bc131">TXMPFiles&lt; tStringObj &gt;</a>
+</li>
+<li>GetGlobalOptions()
+: <a class="el" href="classTXMPMeta.html#a12b2435ba039c62a164951948c016eb4">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>GetID()
+: <a class="el" href="classXMP__Error.html#a56aaa6fc6644ccfc9470ae1af8f3a8cd">XMP_Error</a>
+</li>
+<li>GetIndex()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2447e6ea34adbe073a639c703015db90">AdobeXMPCore::INode_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a6552774db8039b1ddc02491fc82b2699">AdobeXMPCore::IPathSegment_v1</a>
+</li>
+<li>GetInterfaceID()
+: <a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#ab61b0ddca88dc76f0499d317f189b918">AdobeXMPCommon::IObjectFactory_v1</a>
+</li>
+<li>GetInterfacePointer()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#acf184689e6c9862642425392ac80640c">AdobeXMPCommon::IConfigurationManagerProxy</a>
+</li>
+<li>getInterfacePointer()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#acb62caf44deca15cc1a427ff4d437e0b">AdobeXMPCommon::IConfigurationManagerProxy</a>
+</li>
+<li>GetInterfacePointer()
+: <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">AdobeXMPCommon::IVersionable</a>
+</li>
+<li>GetInterfaceVersion()
+: <a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#a81c25d76569a9249ab3c8a3e4490c73d">AdobeXMPCommon::IObjectFactory_v1</a>
+</li>
+<li>GetInternalRef()
+: <a class="el" href="classTXMPFiles.html#a311fc36fdf7270fe05b1c531cdbbd009">TXMPFiles&lt; tStringObj &gt;</a>
+, <a class="el" href="classTXMPMeta.html#afbfebded0b85b08bd9c5ba0d7dae07e0">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>GetISharedObject_I()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a9efc36a9faf07297c329f1c422659758">AdobeXMPCommon::IConfigurationManagerProxy</a>
+</li>
+<li>GetLocalizedText()
+: <a class="el" href="classTXMPMeta.html#aeefe49bbf669770d769f4fe0ea566bd0">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>GetLocation()
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a1b00f65d8eff4312decbbf374089a73f">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>GetMessage()
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a0bf4ec8969fd74b0d82db0e5c0f47530">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>GetName()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a68350da5edc0668811b9bb890d5777b9">AdobeXMPCore::INode_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a9c7e02cccca4d74467483ab442871376">AdobeXMPCore::IPathSegment_v1</a>
+</li>
+<li>GetNameSpace()
+: <a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a57a2ef1d7b5f9fb2429220becad03413">AdobeXMPCore::INameSpacePrefixMap_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2e8319347c3b01638027b4abbe72fda6">AdobeXMPCore::INode_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#ae6726749b73c1c99caa05e65138f9a64">AdobeXMPCore::IPathSegment_v1</a>
+</li>
+<li>GetNamespacePrefix()
+: <a class="el" href="classTXMPMeta.html#af28589472d8c0397db6cef868f2b8c97">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>GetNamespaceURI()
+: <a class="el" href="classTXMPMeta.html#aa20c84e7549d0a3252fa29a1e83a757a">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>GetNextError()
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#acde20d4794bd22283a8c86021f979c29">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>GetNode()
+: <a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html#a14aecd54a26e8a4a87f8ec0a347f1757">AdobeXMPCore::INodeIterator_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#afd94de430e29982143eb04315b954b24">AdobeXMPCore::IStructureNode_v1</a>
+</li>
+<li>GetNodeAtIndex()
+: <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7c2e3c217f7e1bb28504c40da474f01e">AdobeXMPCore::IArrayNode_v1</a>
+</li>
+<li>GetNodeAtPath()
+: <a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a5c4cddddb0702e61d85cff16c5e72632">AdobeXMPCore::ICompositeNode_v1</a>
+</li>
+<li>GetNodeType()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a6d9067d66571727b622ffccade5225f0">AdobeXMPCore::INode_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html#a43c25618c112c18848e352e73de1dce9">AdobeXMPCore::INodeIterator_v1</a>
+</li>
+<li>GetNodeTypeAtPath()
+: <a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#ac5e3227436e3ee11d0df7f3a176402e0">AdobeXMPCore::ICompositeNode_v1</a>
+</li>
+<li>GetObjectName()
+: <a class="el" href="classTXMPMeta.html#ab0d179ed95487d4fd4f2680c1fbe0d40">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>GetObjectOptions()
+: <a class="el" href="classTXMPMeta.html#a0bfc04142a35671a4c8989fcaca6d6c2">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>GetParameter()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a11b855a90f26dee8d87b70ee485e6ec3">AdobeXMPCommon::IConfigurable</a>
+, <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a9479cedd0dcfd7bfda628178554ceb30">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>GetParametersCount()
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a0023512a27c6aea27998fcf18d1a6413">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>GetParent()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aee7e1f35ac174874234ba5e913a6bfaa">AdobeXMPCore::INode_v1</a>
+</li>
+<li>GetParentNodeType()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a47da5e5605d69d6d6ced761e7c39d24f">AdobeXMPCore::INode_v1</a>
+</li>
+<li>GetParser()
+: <a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html#a07ba5caa2e3a47de4f35f2ee33fbf554">AdobeXMPCore::IDOMImplementationRegistry_v1</a>
+</li>
+<li>GetPath()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a549f1adeea470827a6201b3b4c596f1e">AdobeXMPCore::INode_v1</a>
+</li>
+<li>GetPathSegment()
+: <a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#a7c7c78fcf2aac3af21c3803cb72b0afc">AdobeXMPCore::IPath_v1</a>
+</li>
+<li>GetPrefix()
+: <a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a5a6915e1bdfa1059f4ad690bcf14a342">AdobeXMPCore::INameSpacePrefixMap_v1</a>
+</li>
+<li>GetProperty()
+: <a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>GetProperty_Bool()
+: <a class="el" href="classTXMPMeta.html#adcf8a1959a8bd42641a42cbd4d64a5b7">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>GetProperty_Date()
+: <a class="el" href="classTXMPMeta.html#a2f561295e73047ee90765558d29bd650">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>GetProperty_Float()
+: <a class="el" href="classTXMPMeta.html#a7708c31c9af3e740b27a4893dcd9aa47">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>GetProperty_Int()
+: <a class="el" href="classTXMPMeta.html#ae4e8ee4cc7441bb9464dac87f2d74650">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>GetProperty_Int64()
+: <a class="el" href="classTXMPMeta.html#af91fa4bc4f51a56e35bcfb554783b050">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>GetQualifier()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a96a99fa56a2b088691ecad5a0cf6e54d">AdobeXMPCore::INode_v1</a>
+, <a class="el" href="classTXMPMeta.html#a2cc58d8316043b035643e7c21633bc13">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>GetQualifierNodeType()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2866bcde949c37aeb72cdba8dddcac95">AdobeXMPCore::INode_v1</a>
+</li>
+<li>GetSerializer()
+: <a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html#afa13c6385c515368135185b5f53814ad">AdobeXMPCore::IDOMImplementationRegistry_v1</a>
+</li>
+<li>GetSeverity()
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a62944c723bd7bf40207521ac966a6b02">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>GetSimpleNode()
+: <a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html#ade5c1340391031ffccef4ba9122845c0">AdobeXMPCore::INodeIterator_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a23ea406052e9201f3b35e59cc2b206a5">AdobeXMPCore::IStructureNode_v1</a>
+</li>
+<li>GetSimpleNodeAtIndex()
+: <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a37ba080075f5158ffdffbb36437e2622">AdobeXMPCore::IArrayNode_v1</a>
+</li>
+<li>GetSimpleNodeAtPath()
+: <a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a93d1009b739d8a6c40ebbf4aa75051af">AdobeXMPCore::ICompositeNode_v1</a>
+</li>
+<li>GetSimpleQualifier()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2831fe03981afd9af12e775bda89361e">AdobeXMPCore::INode_v1</a>
+</li>
+<li>GetStructField()
+: <a class="el" href="classTXMPMeta.html#a885ef7127b897e349f71fa493ace3c94">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>GetStructureNode()
+: <a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html#aeb5758def29eb45d016205f8c2f3349f">AdobeXMPCore::INodeIterator_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a9b380e96dca941b5f9c3143931f7f633">AdobeXMPCore::IStructureNode_v1</a>
+</li>
+<li>GetStructureNodeAtIndex()
+: <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#aaf0ef3b97a41d1035f789dc3ab127bae">AdobeXMPCore::IArrayNode_v1</a>
+</li>
+<li>GetStructureNodeAtPath()
+: <a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#ad6ca35dc12323a3a970066beb4c63e84">AdobeXMPCore::ICompositeNode_v1</a>
+</li>
+<li>GetStructureQualifier()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4fb3c837b8c28501b2e7a3376a2cf382">AdobeXMPCore::INode_v1</a>
+</li>
+<li>GetType()
+: <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a0febe9ac58c1a2a3e0a573f1bb9c25c3">AdobeXMPCore::IPathSegment_v1</a>
+</li>
+<li>GetValue()
+: <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#abc957b6cdedc2b4feb8943b42d2d3fe9">AdobeXMPCore::IPathSegment_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html#a92d0fc99b2af5ef28027e693f9b37964">AdobeXMPCore::ISimpleNode_v1</a>
+</li>
+<li>GetVersionInfo()
+: <a class="el" href="classTXMPFiles.html#a6e521c034728b59ab55213a9d8203d1e">TXMPFiles&lt; tStringObj &gt;</a>
+, <a class="el" href="classTXMPMeta.html#a5415cfc01a9cb8786939246571a23a9d">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>GetXMP()
+: <a class="el" href="classTXMPFiles.html#a42ca0bbc5ac66a8de1710e03a7ff17b3">TXMPFiles&lt; tStringObj &gt;</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_func_h.html b/docs/API/functions_func_h.html
new file mode 100755
index 0000000..25203d9
--- /dev/null
+++ b/docs/API/functions_func_h.html
@@ -0,0 +1,95 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members - Functions</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="functions.html"><span>All</span></a></li>
+ <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions_func.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_func_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_func_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_func_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_func_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_func_g.html#index_g"><span>g</span></a></li>
+ <li class="current"><a href="functions_func_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_func_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_func_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_func_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_func_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_func_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_func_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_func_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_func_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_func_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_func_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_func_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_func_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_func_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_func_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_func_h.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
+<li>HasChanged()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ab78ba3aaadf4b0109e610505e753de50">AdobeXMPCore::INode_v1</a>
+</li>
+<li>HasContent()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa288c34c9bccb73ae73b653f3c769ade">AdobeXMPCore::INode_v1</a>
+</li>
+<li>HasQualifiers()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#adfd1ce7bd20268240769f8a6a405a8ee">AdobeXMPCore::INode_v1</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_func_i.html b/docs/API/functions_func_i.html
new file mode 100755
index 0000000..b3848fe
--- /dev/null
+++ b/docs/API/functions_func_i.html
@@ -0,0 +1,152 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members - Functions</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="functions.html"><span>All</span></a></li>
+ <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions_func.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_func_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_func_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_func_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_func_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_func_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_func_h.html#index_h"><span>h</span></a></li>
+ <li class="current"><a href="functions_func_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_func_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_func_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_func_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_func_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_func_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_func_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_func_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_func_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_func_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_func_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_func_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_func_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_func_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_func_i.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
+<li>IConfigurationManagerProxy()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#aa6e0ad02dd491d0881e35ea0554c93a6">AdobeXMPCommon::IConfigurationManagerProxy</a>
+</li>
+<li>Initialize()
+: <a class="el" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html#a5df18f349ed7db99a4bb96660b0008b5">AdobeXMPCore::IClientDOMParser_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#a370646890f776a587f0faff20d590059">AdobeXMPCore::IClientDOMSerializer_v1</a>
+, <a class="el" href="classTXMPFiles.html#a0874bbbf41c9490abfb613bfe297327d">TXMPFiles&lt; tStringObj &gt;</a>
+, <a class="el" href="classTXMPMeta.html#af1defbb73f919eae06456a655dea726c">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>insert()
+: <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#ae19e8581f0cd7c13ada7d465b76d6814">AdobeXMPCommon::IUTF8String_v1</a>
+</li>
+<li>Insert()
+: <a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a1cff14bbc35fabd9fff60706ebfe23e8">AdobeXMPCore::INameSpacePrefixMap_v1</a>
+</li>
+<li>InsertNode()
+: <a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a22d61015856c67f05237af9513e98ff7">AdobeXMPCore::IStructureNode_v1</a>
+</li>
+<li>InsertNodeAtIndex()
+: <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#af206a6ae16faa9083b0c80b0becccde2">AdobeXMPCore::IArrayNode_v1</a>
+</li>
+<li>InsertNodeAtPath()
+: <a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a39f5d9b31976e7a243d11152cd57260b">AdobeXMPCore::ICompositeNode_v1</a>
+</li>
+<li>InsertQualifier()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a5e6dd9a58a288f20fd0a667a30a2ae">AdobeXMPCore::INode_v1</a>
+</li>
+<li>IsArrayItem()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a3289deed9715f661f5f588dc38642baa">AdobeXMPCore::INode_v1</a>
+</li>
+<li>IsEmpty()
+: <a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a4ba4127d58b778c0148f853d7a60b8fe">AdobeXMPCore::INameSpacePrefixMap_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5075ad988ba61e055b6ee6bbeaf25e25">AdobeXMPCore::INode_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#ac6b2215fb0cf7e14d96915bcbdd6d5c8">AdobeXMPCore::IPath_v1</a>
+</li>
+<li>IsMetadataWritable()
+: <a class="el" href="classTXMPFiles.html#a6dfa135d53143d45e5ff22efa554398e">TXMPFiles&lt; tStringObj &gt;</a>
+</li>
+<li>IsMultiThreaded()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html#a32c1e2b6af5182d30d298be95652a065">AdobeXMPCommon::IConfigurationManager_v1</a>
+, <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a84324c2d73c81094f9a4ea365b22acb7">AdobeXMPCommon::IConfigurationManagerProxy</a>
+</li>
+<li>isMultiThreaded()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a7b99c9d6b1b337c74b240afbdb1ba11a">AdobeXMPCommon::IConfigurationManagerProxy</a>
+</li>
+<li>IsNameSpacePresent()
+: <a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#ab6fe5421aa97518a85e87bba9f4bc3a6">AdobeXMPCore::INameSpacePrefixMap_v1</a>
+</li>
+<li>IsNotified()
+: <a class="el" href="classXMP__Error.html#a5a0651a9615a6a60e467a96ddb43a6bb">XMP_Error</a>
+</li>
+<li>IsPrefixPresent()
+: <a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a10caae18d32483ff4a5737c448f4f7c3">AdobeXMPCore::INameSpacePrefixMap_v1</a>
+</li>
+<li>IsQualifierNode()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a0d545f6b4b2b9760b63c902317c43a94">AdobeXMPCore::INode_v1</a>
+</li>
+<li>IsThreadSafe()
+: <a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a261e2f6af96b75015e5f8318f32be7f9">AdobeXMPCommon::IThreadSafe</a>
+</li>
+<li>IsURIType()
+: <a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html#a6164e2541b1245d43f1e21b94f75e20c">AdobeXMPCore::ISimpleNode_v1</a>
+</li>
+<li>Iterator()
+: <a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#afa9e587b9293ff99d9f8b38b0cc07cad">AdobeXMPCore::ICompositeNode_v1</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_func_l.html b/docs/API/functions_func_l.html
new file mode 100755
index 0000000..175f175
--- /dev/null
+++ b/docs/API/functions_func_l.html
@@ -0,0 +1,89 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members - Functions</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="functions.html"><span>All</span></a></li>
+ <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions_func.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_func_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_func_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_func_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_func_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_func_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_func_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_func_i.html#index_i"><span>i</span></a></li>
+ <li class="current"><a href="functions_func_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_func_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_func_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_func_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_func_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_func_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_func_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_func_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_func_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_func_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_func_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_func_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_func_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_func_l.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
+<li>Length()
+: <a class="el" href="classXMP__IO.html#af4fe442d5f7ea3d062bb5dfeadfa2335">XMP_IO</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_func_m.html b/docs/API/functions_func_m.html
new file mode 100755
index 0000000..d3ef8ef
--- /dev/null
+++ b/docs/API/functions_func_m.html
@@ -0,0 +1,92 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members - Functions</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="functions.html"><span>All</span></a></li>
+ <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions_func.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_func_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_func_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_func_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_func_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_func_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_func_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_func_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_func_l.html#index_l"><span>l</span></a></li>
+ <li class="current"><a href="functions_func_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_func_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_func_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_func_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_func_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_func_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_func_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_func_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_func_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_func_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_func_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_func_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_func_m.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
+<li>MakeObjectFactory()
+: <a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#a2dc282621cdfef44b424ac91efb965a1">AdobeXMPCommon::IObjectFactory_v1</a>
+</li>
+<li>MergeFromJPEG()
+: <a class="el" href="classTXMPUtils.html#a6187cd5fef0eccecac6805d4114dcd2e">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_func_n.html b/docs/API/functions_func_n.html
new file mode 100755
index 0000000..ebcd84e
--- /dev/null
+++ b/docs/API/functions_func_n.html
@@ -0,0 +1,93 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members - Functions</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="functions.html"><span>All</span></a></li>
+ <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions_func.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_func_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_func_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_func_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_func_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_func_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_func_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_func_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_func_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_func_m.html#index_m"><span>m</span></a></li>
+ <li class="current"><a href="functions_func_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_func_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_func_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_func_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_func_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_func_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_func_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_func_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_func_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_func_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_func_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_func_n.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
+<li>Next()
+: <a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html#a6aac63804dfbdbd0a85440da48eb8bb3">AdobeXMPCore::INodeIterator_v1</a>
+, <a class="el" href="classTXMPIterator.html#a124a1dd1ab3ff0d236e4d4b967dafcd9">TXMPIterator&lt; tStringObj &gt;</a>
+</li>
+<li>Notify()
+: <a class="el" href="classAdobeXMPCommon_1_1IErrorNotifier__v1.html#ace4799050050f28ac3706b1de8940769">AdobeXMPCommon::IErrorNotifier_v1</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_func_o.html b/docs/API/functions_func_o.html
new file mode 100755
index 0000000..f58b725
--- /dev/null
+++ b/docs/API/functions_func_o.html
@@ -0,0 +1,101 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members - Functions</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="functions.html"><span>All</span></a></li>
+ <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions_func.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_func_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_func_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_func_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_func_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_func_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_func_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_func_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_func_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_func_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_func_n.html#index_n"><span>n</span></a></li>
+ <li class="current"><a href="functions_func_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_func_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_func_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_func_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_func_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_func_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_func_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_func_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_func_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_func_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_func_o.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
+<li>Offset()
+: <a class="el" href="classXMP__IO.html#aa14274c6ed95da83a95e8786b7b1a91e">XMP_IO</a>
+</li>
+<li>OpenFile()
+: <a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb">TXMPFiles&lt; tStringObj &gt;</a>
+</li>
+<li>operator()()
+: <a class="el" href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html#a5dd060eac19acba07ce701dc9ebaa09d">AdobeXMPCommon::ReportErrorAndContinueFunctor</a>
+</li>
+<li>operator=()
+: <a class="el" href="classTXMPFiles.html#a3f1483fcc92860460d3772216dfaef81">TXMPFiles&lt; tStringObj &gt;</a>
+, <a class="el" href="classTXMPIterator.html#ad767d731320d3f4c997c6ce9f7f8fa63">TXMPIterator&lt; tStringObj &gt;</a>
+, <a class="el" href="classTXMPMeta.html#a4d5a601c9b77f6f6ab5f14e658de58ef">TXMPMeta&lt; tStringObj &gt;</a>
+, <a class="el" href="classXMP__IO.html#a18227546a6e759409dfd48a00b9a0748">XMP_IO</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_func_p.html b/docs/API/functions_func_p.html
new file mode 100755
index 0000000..1103e4d
--- /dev/null
+++ b/docs/API/functions_func_p.html
@@ -0,0 +1,106 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members - Functions</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="functions.html"><span>All</span></a></li>
+ <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions_func.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_func_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_func_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_func_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_func_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_func_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_func_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_func_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_func_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_func_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_func_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_func_o.html#index_o"><span>o</span></a></li>
+ <li class="current"><a href="functions_func_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_func_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_func_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_func_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_func_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_func_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_func_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_func_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_func_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_func_p.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
+<li>PackageForJPEG()
+: <a class="el" href="classTXMPUtils.html#a6001b4ff54c60fdf0c40e6b78a5c457a">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>Parse()
+: <a class="el" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html#a210d5b0bf473045c7f76d856f956d932">AdobeXMPCore::IClientDOMParser_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#adc690f22fbc146bebb91366de7a8739e">AdobeXMPCore::IDOMParser_v1</a>
+</li>
+<li>ParseFromBuffer()
+: <a class="el" href="classTXMPMeta.html#a7b383f5b357fff040cdbde82f4f43f26">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>ParsePath()
+: <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a853dc2ebab4b052d6fb279b261fce2c7">AdobeXMPCore::ICoreObjectFactory_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#a64165b6024ea00ea1cc1c13bd6708a44">AdobeXMPCore::IPath_v1</a>
+</li>
+<li>ParseWithSpecificAction()
+: <a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#ad57596496a555684497ea918569df7d2">AdobeXMPCore::IDOMParser_v1</a>
+</li>
+<li>PutXMP()
+: <a class="el" href="classTXMPFiles.html#a502ed01119e0421413e773f4f42683ec">TXMPFiles&lt; tStringObj &gt;</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_func_q.html b/docs/API/functions_func_q.html
new file mode 100755
index 0000000..8d0539d
--- /dev/null
+++ b/docs/API/functions_func_q.html
@@ -0,0 +1,92 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members - Functions</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="functions.html"><span>All</span></a></li>
+ <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions_func.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_func_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_func_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_func_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_func_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_func_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_func_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_func_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_func_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_func_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_func_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_func_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_func_p.html#index_p"><span>p</span></a></li>
+ <li class="current"><a href="functions_func_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_func_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_func_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_func_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_func_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_func_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_func_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_func_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_func_q.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_q"></a>- q -</h3><ul>
+<li>QualifiersCount()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#af898813d17af58fb1a828d92a74d7dd3">AdobeXMPCore::INode_v1</a>
+</li>
+<li>QualifiersIterator()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa168f37bc38763df55fb1022d55886bd">AdobeXMPCore::INode_v1</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_func_r.html b/docs/API/functions_func_r.html
new file mode 100755
index 0000000..dd94d71
--- /dev/null
+++ b/docs/API/functions_func_r.html
@@ -0,0 +1,197 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members - Functions</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="functions.html"><span>All</span></a></li>
+ <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions_func.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_func_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_func_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_func_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_func_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_func_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_func_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_func_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_func_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_func_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_func_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_func_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_func_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_func_q.html#index_q"><span>q</span></a></li>
+ <li class="current"><a href="functions_func_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_func_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_func_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_func_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_func_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_func_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_func_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_func_r.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
+<li>Read()
+: <a class="el" href="classXMP__IO.html#a0a0db95509e567f29f34570d5042aa54">XMP_IO</a>
+</li>
+<li>ReadAll()
+: <a class="el" href="classXMP__IO.html#a0d0b45799793c5fa3dc567556f93cceb">XMP_IO</a>
+</li>
+<li>reallocate()
+: <a class="el" href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html#a89ea55ddb2e5a544a93525b227b042f9">AdobeXMPCommon::IMemoryAllocator_v1</a>
+</li>
+<li>RegisterErrorNotifier()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html#af078935e322f611a884061977d015d1d">AdobeXMPCommon::IConfigurationManager_v1</a>
+</li>
+<li>registerErrorNotifier()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#adec0b71edd5e1d6af91ddb57d4c46fe5">AdobeXMPCommon::IConfigurationManagerProxy</a>
+</li>
+<li>RegisterErrorNotifier()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a2f95a01a640809db056c50f3af9969a3">AdobeXMPCommon::IConfigurationManagerProxy</a>
+</li>
+<li>RegisterMemoryAllocator()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html#a4886e0ac409969583acccbe344489a85">AdobeXMPCommon::IConfigurationManager_v1</a>
+, <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a1cd3f0ed28518a855a9adec183f638c5">AdobeXMPCommon::IConfigurationManagerProxy</a>
+</li>
+<li>registerMemoryAllocator()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#aecb05f0b0c1c934c00aab318d6de1daf">AdobeXMPCommon::IConfigurationManagerProxy</a>
+</li>
+<li>RegisterNamespace()
+: <a class="el" href="classTXMPMeta.html#ac0368ddbaa4d689cd5b1aff1c88bb0e1">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>RegisterNameSpacePrefixMap()
+: <a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#a75c08c101e11f3059d7bff2fde6e6817">AdobeXMPCore::IPath_v1</a>
+</li>
+<li>RegisterParser()
+: <a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html#a986a5bee0a91be4d115e6b7dd5a8974b">AdobeXMPCore::IDOMImplementationRegistry_v1</a>
+</li>
+<li>RegisterSerializer()
+: <a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html#a9301ef751ffa40af95bbb95e19fb6c5f">AdobeXMPCore::IDOMImplementationRegistry_v1</a>
+</li>
+<li>Release()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#ad53bcc0d6f8a1978b43a007c040c4c04">AdobeXMPCommon::IConfigurationManagerProxy</a>
+, <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3">AdobeXMPCommon::ISharedObject</a>
+, <a class="el" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html#a1860e905db03346c3c83f5a026008d03">AdobeXMPCore::IClientDOMParser_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#a513bdaeb37f453787f46a5e855ac08ef">AdobeXMPCore::IClientDOMSerializer_v1</a>
+</li>
+<li>RemoveNameSpace()
+: <a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#ab030c648e112799541eb3433967207c7">AdobeXMPCore::INameSpacePrefixMap_v1</a>
+</li>
+<li>RemoveNode()
+: <a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a25d8ec1ee8031cb693bb8c8a8102c8f8">AdobeXMPCore::IStructureNode_v1</a>
+</li>
+<li>RemoveNodeAtIndex()
+: <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a435be63553b76b568fc8a6f980f4eac6">AdobeXMPCore::IArrayNode_v1</a>
+</li>
+<li>RemoveNodeAtPath()
+: <a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a1c713f2e29d6d0e9d4a1ee800a679f06">AdobeXMPCore::ICompositeNode_v1</a>
+</li>
+<li>RemoveParameter()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a046edf1c0c7d4f994295207dea1242f7">AdobeXMPCommon::IConfigurable</a>
+</li>
+<li>RemovePathSegment()
+: <a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#a7de20abb4af96e274ef5476a1e718d77">AdobeXMPCore::IPath_v1</a>
+</li>
+<li>RemovePrefix()
+: <a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#aa4575950788bfa70dee5fad2d851230e">AdobeXMPCore::INameSpacePrefixMap_v1</a>
+</li>
+<li>RemoveProperties()
+: <a class="el" href="classTXMPUtils.html#a40c645803530662e08d042b4b7c6190d">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>RemoveQualifier()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a87f03e9924418ae5f7b6fa63def6eee8">AdobeXMPCore::INode_v1</a>
+</li>
+<li>replace()
+: <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a6873a42d7f1a747fc5461e2c653e97cb">AdobeXMPCommon::IUTF8String_v1</a>
+</li>
+<li>ReplaceNode()
+: <a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a5764457c137c97a42af6ca156563e455">AdobeXMPCore::IStructureNode_v1</a>
+</li>
+<li>ReplaceNodeAtIndex()
+: <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a484e351f788771cf4500bfe0a2b144ec">AdobeXMPCore::IArrayNode_v1</a>
+</li>
+<li>ReplaceNodeAtPath()
+: <a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a2c51c5296da4abb8fa5d5999f686602b">AdobeXMPCore::ICompositeNode_v1</a>
+</li>
+<li>ReplaceQualifier()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a2692b8281984d9fe6de6c169332f2c">AdobeXMPCore::INode_v1</a>
+</li>
+<li>ReportErrorAndContinueFunctor()
+: <a class="el" href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html#a40e6fedd9a880d70095b9468b5cf05db">AdobeXMPCommon::ReportErrorAndContinueFunctor</a>
+</li>
+<li>REQ_FRIEND_CLASS_DECLARATION()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#abb69da6d73e4b56c30e56b43f5a37b9b">AdobeXMPCommon::IConfigurable</a>
+, <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html#ad857109e294bdff85685fa0974020645">AdobeXMPCommon::IConfigurationManager_v1</a>
+, <a class="el" href="classAdobeXMPCommon_1_1IErrorNotifier__v1.html#a6b08a4aa1295fae50fe52c60787b3037">AdobeXMPCommon::IErrorNotifier_v1</a>
+, <a class="el" href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html#aee52f392f1548bffc01b2be3fd9fab28">AdobeXMPCommon::IMemoryAllocator_v1</a>
+, <a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#a2f02bcd4eafa4d318197c39dd55d0957">AdobeXMPCommon::IObjectFactory_v1</a>
+, <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#afcb42109aed83c3b0c133bc413388037">AdobeXMPCommon::ISharedObject</a>
+, <a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a0f31eb9677c4af06288319e363c21ebc">AdobeXMPCommon::IThreadSafe</a>
+, <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f">AdobeXMPCommon::IVersionable</a>
+</li>
+<li>ResetErrorCallbackLimit()
+: <a class="el" href="classTXMPFiles.html#a8e37b25dd1cba1e9a3f45037022717f2">TXMPFiles&lt; tStringObj &gt;</a>
+, <a class="el" href="classTXMPMeta.html#a31c7ef089e8fadff122044afa27d200a">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>resize()
+: <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a94228b12fd752c7051f9cafad0aa1692">AdobeXMPCommon::IUTF8String_v1</a>
+</li>
+<li>Rewind()
+: <a class="el" href="classXMP__IO.html#a456f92ca90a83095dbd90786a26b64e1">XMP_IO</a>
+</li>
+<li>rfind()
+: <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a7b58ccfe2131a133db0e2fdcfc4f6baf">AdobeXMPCommon::IUTF8String_v1</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_func_s.html b/docs/API/functions_func_s.html
new file mode 100755
index 0000000..0cb5bf7
--- /dev/null
+++ b/docs/API/functions_func_s.html
@@ -0,0 +1,220 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members - Functions</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="functions.html"><span>All</span></a></li>
+ <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions_func.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_func_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_func_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_func_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_func_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_func_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_func_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_func_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_func_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_func_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_func_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_func_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_func_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_func_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_func_r.html#index_r"><span>r</span></a></li>
+ <li class="current"><a href="functions_func_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_func_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_func_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_func_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_func_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_func_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_func_s.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<li>Seek()
+: <a class="el" href="classXMP__IO.html#a9c05bb22ecc75e71ecc546bcb756d628">XMP_IO</a>
+</li>
+<li>SeparateArrayItems()
+: <a class="el" href="classTXMPUtils.html#a66c5ddee47aa36ed906353f94ca18d2e">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>Serialize()
+: <a class="el" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#a604822b9cacd9b1ebaba08e49513f778">AdobeXMPCore::IClientDOMSerializer_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html#ac8e65d9aed0a6afc951e075178d81338">AdobeXMPCore::IDOMSerializer_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#ad5920be57f3243c5601ad214e3b1e0c1">AdobeXMPCore::IPath_v1</a>
+</li>
+<li>SerializeToBuffer()
+: <a class="el" href="classTXMPMeta.html#a0d98bc15bdb0f45737b15fc6822f3bc6">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>SetAbortProc()
+: <a class="el" href="classTXMPFiles.html#a7b86c130fdbd54b5ac158ec3fee93777">TXMPFiles&lt; tStringObj &gt;</a>
+</li>
+<li>SetAboutURI()
+: <a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html#a275726ca1831735fff14119b224f1028">AdobeXMPCore::IMetadata_v1</a>
+</li>
+<li>SetArrayItem()
+: <a class="el" href="classTXMPMeta.html#a1570eb89d613b4a94ca572e4644168cc">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>SetClientString()
+: <a class="el" href="classTXMPFiles.html#ae403e54b9cc5df0f59d79e31cce84e3f">TXMPFiles&lt; tStringObj &gt;</a>
+, <a class="el" href="classTXMPIterator.html#a9a59621f2961ee11b164d82c8c3c0295">TXMPIterator&lt; tStringObj &gt;</a>
+, <a class="el" href="classTXMPMeta.html#a67bbfe3f55af71a5122512ebb695e4ed">TXMPMeta&lt; tStringObj &gt;</a>
+, <a class="el" href="classTXMPUtils.html#aa9bc319ae425f1e371a3c188b1f9010c">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>SetClientStringVector()
+: <a class="el" href="classTXMPFiles.html#afd30a5ad1765a9288e7f6ef118255a73">TXMPFiles&lt; tStringObj &gt;</a>
+</li>
+<li>SetDefaultErrorCallback()
+: <a class="el" href="classTXMPFiles.html#accc6c1cef9f124f6c5ed360251aa5aa7">TXMPFiles&lt; tStringObj &gt;</a>
+, <a class="el" href="classTXMPMeta.html#a1e90e0c8cd8c5670267bb693cf3660fe">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>SetDefaultProgressCallback()
+: <a class="el" href="classTXMPFiles.html#a83335ee20bb3ea543c8c86a5757a7753">TXMPFiles&lt; tStringObj &gt;</a>
+</li>
+<li>SetErrorCallback()
+: <a class="el" href="classTXMPFiles.html#a43a98633a0090fb4ade76edf24302ab1">TXMPFiles&lt; tStringObj &gt;</a>
+, <a class="el" href="classTXMPMeta.html#aee41442af4f049c1d6698fc27ce854d0">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>SetGlobalOptions()
+: <a class="el" href="classTXMPMeta.html#ae7bb38d9b3857b08106630a386b47332">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>SetLocalizedText()
+: <a class="el" href="classTXMPMeta.html#af9531b949a462f5663b1f3fd99464c19">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>SetLocation()
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a02f24319a739eee3b5d246bfc72fa71d">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>SetMessage()
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#aab0339169d7def09682a3afd8a65145e">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>SetName()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa087d2f94e42fdd5ece1bd22dfea66d5">AdobeXMPCore::INode_v1</a>
+</li>
+<li>SetNameSpace()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a55c6097b36412f9facc8a4cf7e898186">AdobeXMPCore::INode_v1</a>
+</li>
+<li>SetNextError()
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a65e29b8ca5749bb9a5286e2d4a93a2af">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>SetNotified()
+: <a class="el" href="classXMP__Error.html#a9c368db94ca63ad7b9b118051d1f8897">XMP_Error</a>
+</li>
+<li>SetObjectName()
+: <a class="el" href="classTXMPMeta.html#acf1935be8e4849976dfc02325424960a">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>SetObjectOptions()
+: <a class="el" href="classTXMPMeta.html#a92055b3ae18dfd5e5491108f59318f17">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>SetParameter()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a174330a36f7e3d27cc0230698ff59313">AdobeXMPCommon::IConfigurable</a>
+</li>
+<li>SetProgressCallback()
+: <a class="el" href="classTXMPFiles.html#aa283e2a1c16918c86148446859ed1a2d">TXMPFiles&lt; tStringObj &gt;</a>
+</li>
+<li>SetProperty()
+: <a class="el" href="classTXMPMeta.html#acc50625611f6aad405aa47197b6d0055">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>SetProperty_Bool()
+: <a class="el" href="classTXMPMeta.html#a9521e3838272ec501ffdb60ff3eb482f">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>SetProperty_Date()
+: <a class="el" href="classTXMPMeta.html#aeee10669445f77139d5634199ff01079">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>SetProperty_Float()
+: <a class="el" href="classTXMPMeta.html#a3b0f2f6bae57931ea96775f03608c0ed">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>SetProperty_Int()
+: <a class="el" href="classTXMPMeta.html#a489e10a6686aa813ee437e93ab2c5943">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>SetProperty_Int64()
+: <a class="el" href="classTXMPMeta.html#a7f749be7699890bbaa2e2dbd05d45a90">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>SetQualifier()
+: <a class="el" href="classTXMPMeta.html#ac2e798da5f9d94e486382a41e73fcea3">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>SetStructField()
+: <a class="el" href="classTXMPMeta.html#a77d4a1bf7831f39073af9ea1544ebefa">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>SetTimeZone()
+: <a class="el" href="classTXMPUtils.html#a96bcc45febac55f6c49951815b7de2ef">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>SetupCoreObjectFactory()
+: <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a27a3f1ca72e364fa627aa71b52042da2">AdobeXMPCore::ICoreObjectFactory_v1</a>
+</li>
+<li>SetURIType()
+: <a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html#a8781cf6bb583b419cf5fcaf6cf311bd2">AdobeXMPCore::ISimpleNode_v1</a>
+</li>
+<li>SetValue()
+: <a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html#a0391485cf8c432ba03874d4329c5510e">AdobeXMPCore::ISimpleNode_v1</a>
+</li>
+<li>Size()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a2a1e1d3f515d431478ec309fa9dcd977">AdobeXMPCommon::IConfigurable</a>
+</li>
+<li>size()
+: <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a5da1566bf196fc58c4c3d5a469e1f4f3">AdobeXMPCommon::IUTF8String_v1</a>
+</li>
+<li>Size()
+: <a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a3dfd0d265952656c9b6641d8ce523e40">AdobeXMPCore::INameSpacePrefixMap_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#a6a0bc65d535aabdfd52608b29270c558">AdobeXMPCore::IPath_v1</a>
+</li>
+<li>Skip()
+: <a class="el" href="classTXMPIterator.html#a30b4d78974b347e4fcd275f1f65a61b2">TXMPIterator&lt; tStringObj &gt;</a>
+</li>
+<li>Sort()
+: <a class="el" href="classTXMPMeta.html#a8ac5a02a13d439ff33ed4431986da681">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>substr()
+: <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#ab960c740e20dd09e26b24e04fd43e357">AdobeXMPCommon::IUTF8String_v1</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_func_t.html b/docs/API/functions_func_t.html
new file mode 100755
index 0000000..fd1863f
--- /dev/null
+++ b/docs/API/functions_func_t.html
@@ -0,0 +1,105 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members - Functions</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="functions.html"><span>All</span></a></li>
+ <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions_func.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_func_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_func_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_func_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_func_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_func_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_func_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_func_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_func_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_func_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_func_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_func_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_func_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_func_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_func_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_func_s.html#index_s"><span>s</span></a></li>
+ <li class="current"><a href="functions_func_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_func_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_func_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_func_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_func_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_func_t.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
+<li>Terminate()
+: <a class="el" href="classTXMPFiles.html#a1e8de80c252b60b332dc4bc524139fd8">TXMPFiles&lt; tStringObj &gt;</a>
+, <a class="el" href="classTXMPMeta.html#a6c30fae26173167958b6f0da95a53865">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>ToEOF()
+: <a class="el" href="classXMP__IO.html#a51b53ca05c5627da08cd934a9ed8b281">XMP_IO</a>
+</li>
+<li>Truncate()
+: <a class="el" href="classXMP__IO.html#af7dc2bd067498a651597a6b128f02dbb">XMP_IO</a>
+</li>
+<li>TXMPFiles()
+: <a class="el" href="classTXMPFiles.html#acf343fb6771b482ca72d467233a6f920">TXMPFiles&lt; tStringObj &gt;</a>
+</li>
+<li>TXMPIterator()
+: <a class="el" href="classTXMPIterator.html#a5c1bd03e776a91cbb6fd02991fe08e1b">TXMPIterator&lt; tStringObj &gt;</a>
+</li>
+<li>TXMPMeta()
+: <a class="el" href="classTXMPMeta.html#ada43d63894350e23a4307c41b7335eca">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_func_v.html b/docs/API/functions_func_v.html
new file mode 100755
index 0000000..335e6cf
--- /dev/null
+++ b/docs/API/functions_func_v.html
@@ -0,0 +1,90 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members - Functions</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="functions.html"><span>All</span></a></li>
+ <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions_func.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_func_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_func_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_func_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_func_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_func_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_func_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_func_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_func_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_func_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_func_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_func_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_func_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_func_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_func_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_func_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_func_t.html#index_t"><span>t</span></a></li>
+ <li class="current"><a href="functions_func_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_func_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_func_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_func_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_func_v.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_v"></a>- v -</h3><ul>
+<li>Validate()
+: <a class="el" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html#a7d40872cc3ce6ac3b298709232399984">AdobeXMPCore::IClientDOMParser_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#a5bcaa25de727ee1e8e9399dd963aa5c3">AdobeXMPCore::IClientDOMSerializer_v1</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_func_w.html b/docs/API/functions_func_w.html
new file mode 100755
index 0000000..0a7abac
--- /dev/null
+++ b/docs/API/functions_func_w.html
@@ -0,0 +1,92 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members - Functions</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="functions.html"><span>All</span></a></li>
+ <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions_func.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_func_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_func_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_func_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_func_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_func_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_func_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_func_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_func_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_func_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_func_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_func_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_func_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_func_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_func_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_func_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_func_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_func_v.html#index_v"><span>v</span></a></li>
+ <li class="current"><a href="functions_func_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_func_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_func_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_func_w.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
+<li>Write()
+: <a class="el" href="classXMP__IO.html#ab48d705ca0e3fb22d84c7a323951f8e4">XMP_IO</a>
+</li>
+<li>WXMP_Result()
+: <a class="el" href="structWXMP__Result.html#ad1046c86e2b3eba3109e6ae3f7063352">WXMP_Result</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_func_x.html b/docs/API/functions_func_x.html
new file mode 100755
index 0000000..9bb3d48
--- /dev/null
+++ b/docs/API/functions_func_x.html
@@ -0,0 +1,95 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members - Functions</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="functions.html"><span>All</span></a></li>
+ <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions_func.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_func_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_func_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_func_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_func_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_func_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_func_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_func_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_func_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_func_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_func_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_func_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_func_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_func_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_func_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_func_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_func_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_func_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_func_w.html#index_w"><span>w</span></a></li>
+ <li class="current"><a href="functions_func_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_func_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_func_x.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_x"></a>- x -</h3><ul>
+<li>XMP_Error()
+: <a class="el" href="classXMP__Error.html#aa8b3b859899759d679b00237254e30aa">XMP_Error</a>
+</li>
+<li>XMP_IO()
+: <a class="el" href="classXMP__IO.html#a38ca896e79705a0e4228eb67d3426c65">XMP_IO</a>
+</li>
+<li>XMP_PacketInfo()
+: <a class="el" href="structXMP__PacketInfo.html#a2ae03a1b3d03fa9ebc829105037155a8">XMP_PacketInfo</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_g.html b/docs/API/functions_g.html
new file mode 100755
index 0000000..5a980c0
--- /dev/null
+++ b/docs/API/functions_g.html
@@ -0,0 +1,342 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_b.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_f.html#index_f"><span>f</span></a></li>
+ <li class="current"><a href="functions_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_k.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_u.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_y.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_g.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_g"></a>- g -</h3><ul>
+<li>GetAboutURI()
+: <a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html#a707b78542a91b833a6cf45be3516813c">AdobeXMPCore::IMetadata_v1</a>
+</li>
+<li>GetActualIConfigurationManager()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a51a9e283ecad4043182f5ff9c8c38367">AdobeXMPCommon::IConfigurationManagerProxy</a>
+</li>
+<li>GetAllParameters()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad0e79a0e44353d08139358a56e8510fb">AdobeXMPCommon::IConfigurable</a>
+</li>
+<li>GetArrayForm()
+: <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#ae75dc043c5da4ab09b4700fcbfc065ec">AdobeXMPCore::IArrayNode_v1</a>
+</li>
+<li>GetArrayItem()
+: <a class="el" href="classTXMPMeta.html#ac64a4251d157937f69b73f2ffac4f7cc">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>GetArrayNode()
+: <a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html#ad9a22d79ead6cc79fb5bd4da858e99ce">AdobeXMPCore::INodeIterator_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a8ee43418308bf6f80d1fc90eb84f5db0">AdobeXMPCore::IStructureNode_v1</a>
+</li>
+<li>GetArrayNodeAtIndex()
+: <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a57011f7b4cf194ef1a2e52011671b862">AdobeXMPCore::IArrayNode_v1</a>
+</li>
+<li>GetArrayNodeAtPath()
+: <a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a2e17bda06b20439a0076ea2fae68594d">AdobeXMPCore::ICompositeNode_v1</a>
+</li>
+<li>GetArrayQualifier()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ab55c9dad49840d58a1c2c16b9f1962ad">AdobeXMPCore::INode_v1</a>
+</li>
+<li>GetAssociatedResources()
+: <a class="el" href="classTXMPFiles.html#a03e6c681e827666690f0e5567b0b2a8a">TXMPFiles&lt; tStringObj &gt;</a>
+</li>
+<li>GetChildNodeType()
+: <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#ad3748958964789cb3d20d5776b1157b5">AdobeXMPCore::IArrayNode_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a1463dda9dea83f54c69ad72f105f5eff">AdobeXMPCore::IStructureNode_v1</a>
+</li>
+<li>GetCode()
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a4daea946019093097749e0a6c0a45cf0">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>GetCoreConfigurationManager()
+: <a class="el" href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html#a867de0412ef1c6baf40a35714edd3f9e">AdobeXMPCore::ICoreConfigurationManager_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a5c98e5f81eff5b0337347ef9416d2711">AdobeXMPCore::ICoreObjectFactory_v1</a>
+</li>
+<li>GetCoreObjectFactory()
+: <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a6aecc832674b0e39a98cdde147fd84d9">AdobeXMPCore::ICoreObjectFactory_v1</a>
+</li>
+<li>GetDataType()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a7e71691861d38ae351bdd42392b78af6">AdobeXMPCommon::IConfigurable</a>
+</li>
+<li>GetDefaultNameSpacePrefixMap()
+: <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#ac8eb0f7f78f5d0f21575a94c3f279926">AdobeXMPCore::ICoreObjectFactory_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a16669cda8f88d9af18a248919103df22">AdobeXMPCore::INameSpacePrefixMap_v1</a>
+</li>
+<li>GetDomain()
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#ae28247d03f397b27bee52b8378366f80">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>GetDOMImplementationRegistry()
+: <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a9226dbf3ca7a02c871cacbe3b4865b6b">AdobeXMPCore::ICoreObjectFactory_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html#a6b12abfcc01cea39851ac51977cb1562">AdobeXMPCore::IDOMImplementationRegistry_v1</a>
+</li>
+<li>GetErrMsg()
+: <a class="el" href="classXMP__Error.html#a9a3560c67612dec9a6ca37c34eb2c153">XMP_Error</a>
+</li>
+<li>GetFileInfo()
+: <a class="el" href="classTXMPFiles.html#af9931d081cb19f98c81e41786030765b">TXMPFiles&lt; tStringObj &gt;</a>
+</li>
+<li>GetFileModDate()
+: <a class="el" href="classTXMPFiles.html#a0de588c4b98086206b3a5d737012106d">TXMPFiles&lt; tStringObj &gt;</a>
+</li>
+<li>GetFormatInfo()
+: <a class="el" href="classTXMPFiles.html#acb9e16a1477ec67fa6da6d736a9bc131">TXMPFiles&lt; tStringObj &gt;</a>
+</li>
+<li>GetGlobalOptions()
+: <a class="el" href="classTXMPMeta.html#a12b2435ba039c62a164951948c016eb4">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>GetID()
+: <a class="el" href="classXMP__Error.html#a56aaa6fc6644ccfc9470ae1af8f3a8cd">XMP_Error</a>
+</li>
+<li>GetIndex()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2447e6ea34adbe073a639c703015db90">AdobeXMPCore::INode_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a6552774db8039b1ddc02491fc82b2699">AdobeXMPCore::IPathSegment_v1</a>
+</li>
+<li>GetInterfaceID()
+: <a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#ab61b0ddca88dc76f0499d317f189b918">AdobeXMPCommon::IObjectFactory_v1</a>
+</li>
+<li>GetInterfacePointer()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#acf184689e6c9862642425392ac80640c">AdobeXMPCommon::IConfigurationManagerProxy</a>
+</li>
+<li>getInterfacePointer()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#acb62caf44deca15cc1a427ff4d437e0b">AdobeXMPCommon::IConfigurationManagerProxy</a>
+</li>
+<li>GetInterfacePointer()
+: <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">AdobeXMPCommon::IVersionable</a>
+</li>
+<li>GetInterfaceVersion()
+: <a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#a81c25d76569a9249ab3c8a3e4490c73d">AdobeXMPCommon::IObjectFactory_v1</a>
+</li>
+<li>GetInternalRef()
+: <a class="el" href="classTXMPFiles.html#a311fc36fdf7270fe05b1c531cdbbd009">TXMPFiles&lt; tStringObj &gt;</a>
+, <a class="el" href="classTXMPMeta.html#afbfebded0b85b08bd9c5ba0d7dae07e0">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>GetISharedObject_I()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a9efc36a9faf07297c329f1c422659758">AdobeXMPCommon::IConfigurationManagerProxy</a>
+</li>
+<li>GetLocalizedText()
+: <a class="el" href="classTXMPMeta.html#aeefe49bbf669770d769f4fe0ea566bd0">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>GetLocation()
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a1b00f65d8eff4312decbbf374089a73f">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>GetMessage()
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a0bf4ec8969fd74b0d82db0e5c0f47530">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>GetName()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a68350da5edc0668811b9bb890d5777b9">AdobeXMPCore::INode_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a9c7e02cccca4d74467483ab442871376">AdobeXMPCore::IPathSegment_v1</a>
+</li>
+<li>GetNameSpace()
+: <a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a57a2ef1d7b5f9fb2429220becad03413">AdobeXMPCore::INameSpacePrefixMap_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2e8319347c3b01638027b4abbe72fda6">AdobeXMPCore::INode_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#ae6726749b73c1c99caa05e65138f9a64">AdobeXMPCore::IPathSegment_v1</a>
+</li>
+<li>GetNamespacePrefix()
+: <a class="el" href="classTXMPMeta.html#af28589472d8c0397db6cef868f2b8c97">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>GetNamespaceURI()
+: <a class="el" href="classTXMPMeta.html#aa20c84e7549d0a3252fa29a1e83a757a">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>GetNextError()
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#acde20d4794bd22283a8c86021f979c29">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>GetNode()
+: <a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html#a14aecd54a26e8a4a87f8ec0a347f1757">AdobeXMPCore::INodeIterator_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#afd94de430e29982143eb04315b954b24">AdobeXMPCore::IStructureNode_v1</a>
+</li>
+<li>GetNodeAtIndex()
+: <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7c2e3c217f7e1bb28504c40da474f01e">AdobeXMPCore::IArrayNode_v1</a>
+</li>
+<li>GetNodeAtPath()
+: <a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a5c4cddddb0702e61d85cff16c5e72632">AdobeXMPCore::ICompositeNode_v1</a>
+</li>
+<li>GetNodeType()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a6d9067d66571727b622ffccade5225f0">AdobeXMPCore::INode_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html#a43c25618c112c18848e352e73de1dce9">AdobeXMPCore::INodeIterator_v1</a>
+</li>
+<li>GetNodeTypeAtPath()
+: <a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#ac5e3227436e3ee11d0df7f3a176402e0">AdobeXMPCore::ICompositeNode_v1</a>
+</li>
+<li>GetObjectName()
+: <a class="el" href="classTXMPMeta.html#ab0d179ed95487d4fd4f2680c1fbe0d40">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>GetObjectOptions()
+: <a class="el" href="classTXMPMeta.html#a0bfc04142a35671a4c8989fcaca6d6c2">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>GetParameter()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a11b855a90f26dee8d87b70ee485e6ec3">AdobeXMPCommon::IConfigurable</a>
+, <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a9479cedd0dcfd7bfda628178554ceb30">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>GetParametersCount()
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a0023512a27c6aea27998fcf18d1a6413">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>GetParent()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aee7e1f35ac174874234ba5e913a6bfaa">AdobeXMPCore::INode_v1</a>
+</li>
+<li>GetParentNodeType()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a47da5e5605d69d6d6ced761e7c39d24f">AdobeXMPCore::INode_v1</a>
+</li>
+<li>GetParser()
+: <a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html#a07ba5caa2e3a47de4f35f2ee33fbf554">AdobeXMPCore::IDOMImplementationRegistry_v1</a>
+</li>
+<li>GetPath()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a549f1adeea470827a6201b3b4c596f1e">AdobeXMPCore::INode_v1</a>
+</li>
+<li>GetPathSegment()
+: <a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#a7c7c78fcf2aac3af21c3803cb72b0afc">AdobeXMPCore::IPath_v1</a>
+</li>
+<li>GetPrefix()
+: <a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a5a6915e1bdfa1059f4ad690bcf14a342">AdobeXMPCore::INameSpacePrefixMap_v1</a>
+</li>
+<li>GetProperty()
+: <a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>GetProperty_Bool()
+: <a class="el" href="classTXMPMeta.html#adcf8a1959a8bd42641a42cbd4d64a5b7">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>GetProperty_Date()
+: <a class="el" href="classTXMPMeta.html#a2f561295e73047ee90765558d29bd650">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>GetProperty_Float()
+: <a class="el" href="classTXMPMeta.html#a7708c31c9af3e740b27a4893dcd9aa47">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>GetProperty_Int()
+: <a class="el" href="classTXMPMeta.html#ae4e8ee4cc7441bb9464dac87f2d74650">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>GetProperty_Int64()
+: <a class="el" href="classTXMPMeta.html#af91fa4bc4f51a56e35bcfb554783b050">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>GetQualifier()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a96a99fa56a2b088691ecad5a0cf6e54d">AdobeXMPCore::INode_v1</a>
+, <a class="el" href="classTXMPMeta.html#a2cc58d8316043b035643e7c21633bc13">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>GetQualifierNodeType()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2866bcde949c37aeb72cdba8dddcac95">AdobeXMPCore::INode_v1</a>
+</li>
+<li>GetSerializer()
+: <a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html#afa13c6385c515368135185b5f53814ad">AdobeXMPCore::IDOMImplementationRegistry_v1</a>
+</li>
+<li>GetSeverity()
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a62944c723bd7bf40207521ac966a6b02">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>GetSimpleNode()
+: <a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html#ade5c1340391031ffccef4ba9122845c0">AdobeXMPCore::INodeIterator_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a23ea406052e9201f3b35e59cc2b206a5">AdobeXMPCore::IStructureNode_v1</a>
+</li>
+<li>GetSimpleNodeAtIndex()
+: <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a37ba080075f5158ffdffbb36437e2622">AdobeXMPCore::IArrayNode_v1</a>
+</li>
+<li>GetSimpleNodeAtPath()
+: <a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a93d1009b739d8a6c40ebbf4aa75051af">AdobeXMPCore::ICompositeNode_v1</a>
+</li>
+<li>GetSimpleQualifier()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2831fe03981afd9af12e775bda89361e">AdobeXMPCore::INode_v1</a>
+</li>
+<li>GetStructField()
+: <a class="el" href="classTXMPMeta.html#a885ef7127b897e349f71fa493ace3c94">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>GetStructureNode()
+: <a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html#aeb5758def29eb45d016205f8c2f3349f">AdobeXMPCore::INodeIterator_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a9b380e96dca941b5f9c3143931f7f633">AdobeXMPCore::IStructureNode_v1</a>
+</li>
+<li>GetStructureNodeAtIndex()
+: <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#aaf0ef3b97a41d1035f789dc3ab127bae">AdobeXMPCore::IArrayNode_v1</a>
+</li>
+<li>GetStructureNodeAtPath()
+: <a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#ad6ca35dc12323a3a970066beb4c63e84">AdobeXMPCore::ICompositeNode_v1</a>
+</li>
+<li>GetStructureQualifier()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4fb3c837b8c28501b2e7a3376a2cf382">AdobeXMPCore::INode_v1</a>
+</li>
+<li>GetType()
+: <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a0febe9ac58c1a2a3e0a573f1bb9c25c3">AdobeXMPCore::IPathSegment_v1</a>
+</li>
+<li>GetValue()
+: <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#abc957b6cdedc2b4feb8943b42d2d3fe9">AdobeXMPCore::IPathSegment_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html#a92d0fc99b2af5ef28027e693f9b37964">AdobeXMPCore::ISimpleNode_v1</a>
+</li>
+<li>GetVersionInfo()
+: <a class="el" href="classTXMPFiles.html#a6e521c034728b59ab55213a9d8203d1e">TXMPFiles&lt; tStringObj &gt;</a>
+, <a class="el" href="classTXMPMeta.html#a5415cfc01a9cb8786939246571a23a9d">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>GetXMP()
+: <a class="el" href="classTXMPFiles.html#a42ca0bbc5ac66a8de1710e03a7ff17b3">TXMPFiles&lt; tStringObj &gt;</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_h.html b/docs/API/functions_h.html
new file mode 100755
index 0000000..388a7a1
--- /dev/null
+++ b/docs/API/functions_h.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_b.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_g.html#index_g"><span>g</span></a></li>
+ <li class="current"><a href="functions_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_k.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_u.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_y.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_h.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
+<li>HasChanged()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ab78ba3aaadf4b0109e610505e753de50">AdobeXMPCore::INode_v1</a>
+</li>
+<li>HasContent()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa288c34c9bccb73ae73b653f3c769ade">AdobeXMPCore::INode_v1</a>
+</li>
+<li>hasDate
+: <a class="el" href="structXMP__DateTime.html#a62e0f39edef2a82749feed46b16572e8">XMP_DateTime</a>
+</li>
+<li>HasQualifiers()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#adfd1ce7bd20268240769f8a6a405a8ee">AdobeXMPCore::INode_v1</a>
+</li>
+<li>hasTime
+: <a class="el" href="structXMP__DateTime.html#a2c7f3d493a78f6b3fc7978992308d268">XMP_DateTime</a>
+</li>
+<li>hasTimeZone
+: <a class="el" href="structXMP__DateTime.html#a1dd34cdab96f55c120b3289db32bdd1e">XMP_DateTime</a>
+</li>
+<li>hasWrapper
+: <a class="el" href="structXMP__PacketInfo.html#a6725d8ab8b4eedddaac950d2b1b00a7f">XMP_PacketInfo</a>
+</li>
+<li>hour
+: <a class="el" href="structXMP__DateTime.html#abc79cdca8cfa5df6583279e3f3e70e9f">XMP_DateTime</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_i.html b/docs/API/functions_i.html
new file mode 100755
index 0000000..1c279d0
--- /dev/null
+++ b/docs/API/functions_i.html
@@ -0,0 +1,179 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_b.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_h.html#index_h"><span>h</span></a></li>
+ <li class="current"><a href="functions_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_k.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_u.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_y.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_i.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
+<li>IConfigurableProxy
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ac321e3926928c7c9b58bab66d6270da5">AdobeXMPCommon::IConfigurable</a>
+</li>
+<li>IConfigurationManagerProxy()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#aa6e0ad02dd491d0881e35ea0554c93a6">AdobeXMPCommon::IConfigurationManagerProxy</a>
+</li>
+<li>id
+: <a class="el" href="classXMP__Error.html#aad714bd7c428e10eff07a8ab6a4f3125">XMP_Error</a>
+</li>
+<li>Initialize()
+: <a class="el" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html#a5df18f349ed7db99a4bb96660b0008b5">AdobeXMPCore::IClientDOMParser_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#a370646890f776a587f0faff20d590059">AdobeXMPCore::IClientDOMSerializer_v1</a>
+, <a class="el" href="classTXMPFiles.html#a0874bbbf41c9490abfb613bfe297327d">TXMPFiles&lt; tStringObj &gt;</a>
+, <a class="el" href="classTXMPMeta.html#af1defbb73f919eae06456a655dea726c">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>insert()
+: <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#ae19e8581f0cd7c13ada7d465b76d6814">AdobeXMPCommon::IUTF8String_v1</a>
+</li>
+<li>Insert()
+: <a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a1cff14bbc35fabd9fff60706ebfe23e8">AdobeXMPCore::INameSpacePrefixMap_v1</a>
+</li>
+<li>InsertNode()
+: <a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a22d61015856c67f05237af9513e98ff7">AdobeXMPCore::IStructureNode_v1</a>
+</li>
+<li>InsertNodeAtIndex()
+: <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#af206a6ae16faa9083b0c80b0becccde2">AdobeXMPCore::IArrayNode_v1</a>
+</li>
+<li>InsertNodeAtPath()
+: <a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a39f5d9b31976e7a243d11152cd57260b">AdobeXMPCore::ICompositeNode_v1</a>
+</li>
+<li>InsertQualifier()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a5e6dd9a58a288f20fd0a667a30a2ae">AdobeXMPCore::INode_v1</a>
+</li>
+<li>int32Result
+: <a class="el" href="structWXMP__Result.html#a0bef8219ee23d2869ae6701330820794">WXMP_Result</a>
+</li>
+<li>int64Result
+: <a class="el" href="structWXMP__Result.html#af515f52630be278a2334d7d9db587f13">WXMP_Result</a>
+</li>
+<li>int64Value
+: <a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#ad65f4aa42944655754cdabc56befe34c">AdobeXMPCommon::IConfigurable::CombinedDataValue</a>
+</li>
+<li>IsArrayItem()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a3289deed9715f661f5f588dc38642baa">AdobeXMPCore::INode_v1</a>
+</li>
+<li>isDebug
+: <a class="el" href="structXMP__VersionInfo.html#af1643d86f32f5a5a275dc9c5ba843018">XMP_VersionInfo</a>
+</li>
+<li>IsEmpty()
+: <a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a4ba4127d58b778c0148f853d7a60b8fe">AdobeXMPCore::INameSpacePrefixMap_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5075ad988ba61e055b6ee6bbeaf25e25">AdobeXMPCore::INode_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#ac6b2215fb0cf7e14d96915bcbdd6d5c8">AdobeXMPCore::IPath_v1</a>
+</li>
+<li>IsMetadataWritable()
+: <a class="el" href="classTXMPFiles.html#a6dfa135d53143d45e5ff22efa554398e">TXMPFiles&lt; tStringObj &gt;</a>
+</li>
+<li>IsMultiThreaded()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html#a32c1e2b6af5182d30d298be95652a065">AdobeXMPCommon::IConfigurationManager_v1</a>
+</li>
+<li>isMultiThreaded()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a7b99c9d6b1b337c74b240afbdb1ba11a">AdobeXMPCommon::IConfigurationManagerProxy</a>
+</li>
+<li>IsMultiThreaded()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a84324c2d73c81094f9a4ea365b22acb7">AdobeXMPCommon::IConfigurationManagerProxy</a>
+</li>
+<li>IsNameSpacePresent()
+: <a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#ab6fe5421aa97518a85e87bba9f4bc3a6">AdobeXMPCore::INameSpacePrefixMap_v1</a>
+</li>
+<li>IsNotified()
+: <a class="el" href="classXMP__Error.html#a5a0651a9615a6a60e467a96ddb43a6bb">XMP_Error</a>
+</li>
+<li>IsPrefixPresent()
+: <a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a10caae18d32483ff4a5737c448f4f7c3">AdobeXMPCore::INameSpacePrefixMap_v1</a>
+</li>
+<li>IsQualifierNode()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a0d545f6b4b2b9760b63c902317c43a94">AdobeXMPCore::INode_v1</a>
+</li>
+<li>IsThreadSafe()
+: <a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a261e2f6af96b75015e5f8318f32be7f9">AdobeXMPCommon::IThreadSafe</a>
+</li>
+<li>IsURIType()
+: <a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html#a6164e2541b1245d43f1e21b94f75e20c">AdobeXMPCore::ISimpleNode_v1</a>
+</li>
+<li>Iterator()
+: <a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#afa9e587b9293ff99d9f8b38b0cc07cad">AdobeXMPCore::ICompositeNode_v1</a>
+</li>
+<li>iterRef
+: <a class="el" href="classTXMPIterator.html#aeecf240d827e33c8b1d7040a99dc7600">TXMPIterator&lt; tStringObj &gt;</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_k.html b/docs/API/functions_k.html
new file mode 100755
index 0000000..0bfee4a
--- /dev/null
+++ b/docs/API/functions_k.html
@@ -0,0 +1,249 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_b.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_i.html#index_i"><span>i</span></a></li>
+ <li class="current"><a href="functions_k.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_u.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_y.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_k.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_k"></a>- k -</h3><ul>
+<li>kAFAll
+: <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3a7dd5034acb7178341218ab2389bb45cf">AdobeXMPCore::IArrayNode_v1</a>
+</li>
+<li>kAFAlternative
+: <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3a76f68496b69df8d9ff018d0eb7cf214c">AdobeXMPCore::IArrayNode_v1</a>
+</li>
+<li>kAFNone
+: <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3a9e94ffd1d41fc1770ea2430ddb6b0850">AdobeXMPCore::IArrayNode_v1</a>
+</li>
+<li>kAFOrdered
+: <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3ae739b09d3ac25faa60551f181c273163">AdobeXMPCore::IArrayNode_v1</a>
+</li>
+<li>kAFUnordered
+: <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3afbd5e7a5cc72cd12eeec6e4ab370b29c">AdobeXMPCore::IArrayNode_v1</a>
+</li>
+<li>kATAppendAsChildren
+: <a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345a6ce0fb64b1a284951f50aacdf76e28b9">AdobeXMPCore::IDOMParser_v1</a>
+</li>
+<li>kATAppendOrReplaceChildren
+: <a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345a720d171caeb649caf22e27ed4a39bd15">AdobeXMPCore::IDOMParser_v1</a>
+</li>
+<li>kATInsertAfter
+: <a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345a8fca6913cbd9d4f787e53fdcfb54f2bf">AdobeXMPCore::IDOMParser_v1</a>
+</li>
+<li>kATInsertBefore
+: <a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345aabbc604d77794e6cecedf1bdd947d252">AdobeXMPCore::IDOMParser_v1</a>
+</li>
+<li>kATReplace
+: <a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345a2adb910039a572f5e73dbb94f680ed18">AdobeXMPCore::IDOMParser_v1</a>
+</li>
+<li>kATReplaceChildren
+: <a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345ac19566553b38e9bf6c5361a8aa9bb181">AdobeXMPCore::IDOMParser_v1</a>
+</li>
+<li>kDTAll
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1ac5217140bec2fb51971d31759f24b81a">AdobeXMPCommon::IConfigurable</a>
+</li>
+<li>kDTBool
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1abdf14ab0f7a234fc99bc476dc4212f4e">AdobeXMPCommon::IConfigurable</a>
+</li>
+<li>kDTChar
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a01da29c7d11b67856b0e9d5f3fe4cdb4">AdobeXMPCommon::IConfigurable</a>
+</li>
+<li>kDTConstCharBuffer
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a8d6faef7e1737835b5007987ed99c48d">AdobeXMPCommon::IConfigurable</a>
+</li>
+<li>kDTConstVoidPtr
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a242c98a52e8d324027a00ee6f66d4c39">AdobeXMPCommon::IConfigurable</a>
+</li>
+<li>kDTDouble
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a11c2a544d5ac467b22d7d10098237efa">AdobeXMPCommon::IConfigurable</a>
+</li>
+<li>kDTInt64
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a5c57cf68bc47c55815b5bfc1146df0c3">AdobeXMPCommon::IConfigurable</a>
+</li>
+<li>kDTNone
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a0233b4bacf60f59232fd3fc0dee50a27">AdobeXMPCommon::IConfigurable</a>
+</li>
+<li>kDTUint64
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1ad24c2bb370f5fa12dee346051c13409e">AdobeXMPCommon::IConfigurable</a>
+</li>
+<li>kEDAssetManagement
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da495992977fdfefad3c7b51350d952120">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>kEDConfigurable
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0dadea3f136c96a37d23f8f984551bfc320">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>kEDConflictIdentification
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da54f0a72b16e0c1cc0e484ebca6d13708">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>kEDConflictResolution
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da7a0ca7368a9c93d038b635ea7ae0f691">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>kEDDataModel
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da553e7b6dff9e1c9d4d53a155cdb627a7">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>kEDGeneral
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da3ab4caaddd020b4446ef5e52300e7b1f">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>kEDGenericStrategyDatabase
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da500ecdf6b68ffe0f4d901740bae84a6a">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>kEDMaxValue
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da1e77ab380b475ba060d14c489a2ad1bc">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>kEDMemoryManagement
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da259afda1164ca63dc7a5730e36ca35a8">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>kEDMultiThreading
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0dad284da5871c3d7be07ece3e18cfc1313">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>kEDNone
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0dad08de2ff0da8d78befc1e3160d91fb66">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>kEDParser
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da977f7d430590fc0e8e91424479403e54">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>kEDSerializer
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da3ee93ea699a7ad40361aa97bd7bd5cbf">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>kEDThreeWayMerge
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0dae98f9f2ae109cb8f4e20bac749b9096d">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>kEDXMPFiles
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da90c7a2910e189c25b42be36b5342cd8e">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>kESAll
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702aaf28b59c2541f8bd3a4e70a4c7e58908">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>kESMaxValue
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702aa83e26dbed0e72dc086520892693a408">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>kESNone
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702a72d4e6dab6f3c900e504db6ad274f03b">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>kESOperationFatal
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702aad55eb387014908711b915d5877d7d80">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>kESProcessFatal
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702a2aec1db6233320381fa85f9490d95a60">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>kESWarning
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702a20b2b1a43e9ba7559ad49c5fb9ae845c">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>kNTAll
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a68bac77fd8140a60490eb78f0b533e21">AdobeXMPCore::INode_v1</a>
+</li>
+<li>kNTArray
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a60c6b4c3dfc99d8584866f5f18ff2610">AdobeXMPCore::INode_v1</a>
+</li>
+<li>kNTNone
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913aae32cc414cc7adaf3b2a1c375f2cb3bb">AdobeXMPCore::INode_v1</a>
+</li>
+<li>kNTSimple
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a97e0c4fb69029d0d152c068c10736234">AdobeXMPCore::INode_v1</a>
+</li>
+<li>kNTStructure
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a7542b80b3b688cd3d210d62d12dbe471">AdobeXMPCore::INode_v1</a>
+</li>
+<li>kPSTAll
+: <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9a6c99b2ecc364a71db39b2e9ff0a94880">AdobeXMPCore::IPathSegment_v1</a>
+</li>
+<li>kPSTArrayIndex
+: <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9ae86feb38a46c4fb2ecb35bb651dca161">AdobeXMPCore::IPathSegment_v1</a>
+</li>
+<li>kPSTNone
+: <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9ab178c4df00dc4b10c7c5937d82499a84">AdobeXMPCore::IPathSegment_v1</a>
+</li>
+<li>kPSTProperty
+: <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9ac351f884bf338c15a4a619e89216e2b9">AdobeXMPCore::IPathSegment_v1</a>
+</li>
+<li>kPSTQualifier
+: <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9a8d1e54d4a1f97847f03eb7ff36c263a7">AdobeXMPCore::IPathSegment_v1</a>
+</li>
+<li>kPSTQualifierSelector
+: <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9a2eb4a4d89f26c720eb393eb56997ba09">AdobeXMPCore::IPathSegment_v1</a>
+</li>
+<li>kReadAll
+: <a class="el" href="classXMP__IO.html#af77f9218892471ffad4586413ecd0dcaa148a2bca28df5b2d143590aae5153b55">XMP_IO</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_l.html b/docs/API/functions_l.html
new file mode 100755
index 0000000..d0e22f8
--- /dev/null
+++ b/docs/API/functions_l.html
@@ -0,0 +1,96 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_b.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_k.html#index_k"><span>k</span></a></li>
+ <li class="current"><a href="functions_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_u.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_y.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_l.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
+<li>Length()
+: <a class="el" href="classXMP__IO.html#af4fe442d5f7ea3d062bb5dfeadfa2335">XMP_IO</a>
+</li>
+<li>length
+: <a class="el" href="structXMP__PacketInfo.html#af526c582b66e24553f2d4b11eb714a44">XMP_PacketInfo</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_m.html b/docs/API/functions_m.html
new file mode 100755
index 0000000..4cb16d1
--- /dev/null
+++ b/docs/API/functions_m.html
@@ -0,0 +1,120 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_b.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_k.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_l.html#index_l"><span>l</span></a></li>
+ <li class="current"><a href="functions_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_u.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_y.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_m.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
+<li>major
+: <a class="el" href="structXMP__VersionInfo.html#a7edfa1613a58a248fd15267008bd8afb">XMP_VersionInfo</a>
+</li>
+<li>MakeObjectFactory()
+: <a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#a2dc282621cdfef44b424ac91efb965a1">AdobeXMPCommon::IObjectFactory_v1</a>
+</li>
+<li>MergeFromJPEG()
+: <a class="el" href="classTXMPUtils.html#a6187cd5fef0eccecac6805d4114dcd2e">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>message
+: <a class="el" href="structXMP__VersionInfo.html#a19654242b92bffd7517e92882850e834">XMP_VersionInfo</a>
+</li>
+<li>micro
+: <a class="el" href="structXMP__VersionInfo.html#a4b448a8253e26a37d2df35e04ac25d28">XMP_VersionInfo</a>
+</li>
+<li>minor
+: <a class="el" href="structXMP__VersionInfo.html#af5b56598e15febd742b431dadae7c317">XMP_VersionInfo</a>
+</li>
+<li>minute
+: <a class="el" href="structXMP__DateTime.html#ae84965f3296a9c106d1f6c88aa6a7bdf">XMP_DateTime</a>
+</li>
+<li>month
+: <a class="el" href="structXMP__DateTime.html#ab4b71c1a54879d7da1b4135e23d5446f">XMP_DateTime</a>
+</li>
+<li>mRawPtr
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a57ee5dce3f7d579adb79ebc00618aa17">AdobeXMPCommon::IConfigurationManagerProxy</a>
+</li>
+<li>mSafeProc
+: <a class="el" href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html#a3b28d2e68ebbcd5d20781d8b7a48f879">AdobeXMPCommon::ReportErrorAndContinueFunctor</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_n.html b/docs/API/functions_n.html
new file mode 100755
index 0000000..7f07973
--- /dev/null
+++ b/docs/API/functions_n.html
@@ -0,0 +1,103 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_b.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_k.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_m.html#index_m"><span>m</span></a></li>
+ <li class="current"><a href="functions_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_u.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_y.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_n.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
+<li>nanoSecond
+: <a class="el" href="structXMP__DateTime.html#a190c2a19f01e90997ec2973aec37712c">XMP_DateTime</a>
+</li>
+<li>Next()
+: <a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html#a38521f687591c9b57da1b7426d6e33d8">AdobeXMPCore::INodeIterator_v1</a>
+, <a class="el" href="classTXMPIterator.html#a124a1dd1ab3ff0d236e4d4b967dafcd9">TXMPIterator&lt; tStringObj &gt;</a>
+</li>
+<li>notified
+: <a class="el" href="classXMP__Error.html#a2b884dfb0b39689d1cf95105eadc4571">XMP_Error</a>
+</li>
+<li>Notify()
+: <a class="el" href="classAdobeXMPCommon_1_1IErrorNotifier__v1.html#ace4799050050f28ac3706b1de8940769">AdobeXMPCommon::IErrorNotifier_v1</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_o.html b/docs/API/functions_o.html
new file mode 100755
index 0000000..a7e239c
--- /dev/null
+++ b/docs/API/functions_o.html
@@ -0,0 +1,108 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_b.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_k.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_n.html#index_n"><span>n</span></a></li>
+ <li class="current"><a href="functions_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_u.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_y.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_o.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
+<li>Offset()
+: <a class="el" href="classXMP__IO.html#aa14274c6ed95da83a95e8786b7b1a91e">XMP_IO</a>
+</li>
+<li>offset
+: <a class="el" href="structXMP__PacketInfo.html#a20f65fcfd0f3658ab93ff441a9d61d2c">XMP_PacketInfo</a>
+</li>
+<li>OpenFile()
+: <a class="el" href="classTXMPFiles.html#acfef1688f3a62e2f465bb3a27da7b4ac">TXMPFiles&lt; tStringObj &gt;</a>
+</li>
+<li>operator()()
+: <a class="el" href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html#a5dd060eac19acba07ce701dc9ebaa09d">AdobeXMPCommon::ReportErrorAndContinueFunctor</a>
+</li>
+<li>operator=()
+: <a class="el" href="classTXMPFiles.html#a3f1483fcc92860460d3772216dfaef81">TXMPFiles&lt; tStringObj &gt;</a>
+, <a class="el" href="classTXMPIterator.html#ad767d731320d3f4c997c6ce9f7f8fa63">TXMPIterator&lt; tStringObj &gt;</a>
+, <a class="el" href="classTXMPMeta.html#a4d5a601c9b77f6f6ab5f14e658de58ef">TXMPMeta&lt; tStringObj &gt;</a>
+, <a class="el" href="classXMP__IO.html#a18227546a6e759409dfd48a00b9a0748">XMP_IO</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_p.html b/docs/API/functions_p.html
new file mode 100755
index 0000000..ea90217
--- /dev/null
+++ b/docs/API/functions_p.html
@@ -0,0 +1,119 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_b.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_k.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_o.html#index_o"><span>o</span></a></li>
+ <li class="current"><a href="functions_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_u.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_y.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_p.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
+<li>PackageForJPEG()
+: <a class="el" href="classTXMPUtils.html#a6001b4ff54c60fdf0c40e6b78a5c457a">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>pad
+: <a class="el" href="structXMP__PacketInfo.html#a83ec12161a36451fef05d88cc754104e">XMP_PacketInfo</a>
+</li>
+<li>padSize
+: <a class="el" href="structXMP__PacketInfo.html#af4f99e6a5b36b05fdf4a519421875256">XMP_PacketInfo</a>
+</li>
+<li>Parse()
+: <a class="el" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html#a210d5b0bf473045c7f76d856f956d932">AdobeXMPCore::IClientDOMParser_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#adc690f22fbc146bebb91366de7a8739e">AdobeXMPCore::IDOMParser_v1</a>
+</li>
+<li>ParseFromBuffer()
+: <a class="el" href="classTXMPMeta.html#a7b383f5b357fff040cdbde82f4f43f26">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>ParsePath()
+: <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a853dc2ebab4b052d6fb279b261fce2c7">AdobeXMPCore::ICoreObjectFactory_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#a64165b6024ea00ea1cc1c13bd6708a44">AdobeXMPCore::IPath_v1</a>
+</li>
+<li>ParseWithSpecificAction()
+: <a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html#ad57596496a555684497ea918569df7d2">AdobeXMPCore::IDOMParser_v1</a>
+</li>
+<li>ptrResult
+: <a class="el" href="structWXMP__Result.html#ae1b91c50cee342a87f7708dd92a3d538">WXMP_Result</a>
+</li>
+<li>PutXMP()
+: <a class="el" href="classTXMPFiles.html#ad3f7babdc07c7de0d0cd9a3362b4710a">TXMPFiles&lt; tStringObj &gt;</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_q.html b/docs/API/functions_q.html
new file mode 100755
index 0000000..54f012e
--- /dev/null
+++ b/docs/API/functions_q.html
@@ -0,0 +1,96 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_b.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_k.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_p.html#index_p"><span>p</span></a></li>
+ <li class="current"><a href="functions_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_u.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_y.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_q.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_q"></a>- q -</h3><ul>
+<li>QualifiersCount()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#af898813d17af58fb1a828d92a74d7dd3">AdobeXMPCore::INode_v1</a>
+</li>
+<li>QualifiersIterator()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa168f37bc38763df55fb1022d55886bd">AdobeXMPCore::INode_v1</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_r.html b/docs/API/functions_r.html
new file mode 100755
index 0000000..221d5d5
--- /dev/null
+++ b/docs/API/functions_r.html
@@ -0,0 +1,201 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_b.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_k.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_q.html#index_q"><span>q</span></a></li>
+ <li class="current"><a href="functions_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_u.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_y.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_r.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
+<li>Read()
+: <a class="el" href="classXMP__IO.html#a0a0db95509e567f29f34570d5042aa54">XMP_IO</a>
+</li>
+<li>ReadAll()
+: <a class="el" href="classXMP__IO.html#a0d0b45799793c5fa3dc567556f93cceb">XMP_IO</a>
+</li>
+<li>reallocate()
+: <a class="el" href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html#a89ea55ddb2e5a544a93525b227b042f9">AdobeXMPCommon::IMemoryAllocator_v1</a>
+</li>
+<li>RegisterErrorNotifier()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html#af078935e322f611a884061977d015d1d">AdobeXMPCommon::IConfigurationManager_v1</a>
+</li>
+<li>registerErrorNotifier()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#adec0b71edd5e1d6af91ddb57d4c46fe5">AdobeXMPCommon::IConfigurationManagerProxy</a>
+</li>
+<li>RegisterErrorNotifier()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a2f95a01a640809db056c50f3af9969a3">AdobeXMPCommon::IConfigurationManagerProxy</a>
+</li>
+<li>RegisterMemoryAllocator()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html#a4886e0ac409969583acccbe344489a85">AdobeXMPCommon::IConfigurationManager_v1</a>
+, <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a1cd3f0ed28518a855a9adec183f638c5">AdobeXMPCommon::IConfigurationManagerProxy</a>
+</li>
+<li>registerMemoryAllocator()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#aecb05f0b0c1c934c00aab318d6de1daf">AdobeXMPCommon::IConfigurationManagerProxy</a>
+</li>
+<li>RegisterNamespace()
+: <a class="el" href="classTXMPMeta.html#ac0368ddbaa4d689cd5b1aff1c88bb0e1">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>RegisterNameSpacePrefixMap()
+: <a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#a75c08c101e11f3059d7bff2fde6e6817">AdobeXMPCore::IPath_v1</a>
+</li>
+<li>RegisterParser()
+: <a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html#a986a5bee0a91be4d115e6b7dd5a8974b">AdobeXMPCore::IDOMImplementationRegistry_v1</a>
+</li>
+<li>RegisterSerializer()
+: <a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html#a9301ef751ffa40af95bbb95e19fb6c5f">AdobeXMPCore::IDOMImplementationRegistry_v1</a>
+</li>
+<li>Release()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#ad53bcc0d6f8a1978b43a007c040c4c04">AdobeXMPCommon::IConfigurationManagerProxy</a>
+, <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3">AdobeXMPCommon::ISharedObject</a>
+, <a class="el" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html#a1860e905db03346c3c83f5a026008d03">AdobeXMPCore::IClientDOMParser_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#a513bdaeb37f453787f46a5e855ac08ef">AdobeXMPCore::IClientDOMSerializer_v1</a>
+</li>
+<li>RemoveNameSpace()
+: <a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#ab030c648e112799541eb3433967207c7">AdobeXMPCore::INameSpacePrefixMap_v1</a>
+</li>
+<li>RemoveNode()
+: <a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a25d8ec1ee8031cb693bb8c8a8102c8f8">AdobeXMPCore::IStructureNode_v1</a>
+</li>
+<li>RemoveNodeAtIndex()
+: <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a435be63553b76b568fc8a6f980f4eac6">AdobeXMPCore::IArrayNode_v1</a>
+</li>
+<li>RemoveNodeAtPath()
+: <a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a1c713f2e29d6d0e9d4a1ee800a679f06">AdobeXMPCore::ICompositeNode_v1</a>
+</li>
+<li>RemoveParameter()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a046edf1c0c7d4f994295207dea1242f7">AdobeXMPCommon::IConfigurable</a>
+</li>
+<li>RemovePathSegment()
+: <a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#a7de20abb4af96e274ef5476a1e718d77">AdobeXMPCore::IPath_v1</a>
+</li>
+<li>RemovePrefix()
+: <a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#aa4575950788bfa70dee5fad2d851230e">AdobeXMPCore::INameSpacePrefixMap_v1</a>
+</li>
+<li>RemoveProperties()
+: <a class="el" href="classTXMPUtils.html#a40c645803530662e08d042b4b7c6190d">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>RemoveQualifier()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a87f03e9924418ae5f7b6fa63def6eee8">AdobeXMPCore::INode_v1</a>
+</li>
+<li>replace()
+: <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a6873a42d7f1a747fc5461e2c653e97cb">AdobeXMPCommon::IUTF8String_v1</a>
+</li>
+<li>ReplaceNode()
+: <a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html#a5764457c137c97a42af6ca156563e455">AdobeXMPCore::IStructureNode_v1</a>
+</li>
+<li>ReplaceNodeAtIndex()
+: <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html#a484e351f788771cf4500bfe0a2b144ec">AdobeXMPCore::IArrayNode_v1</a>
+</li>
+<li>ReplaceNodeAtPath()
+: <a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html#a2c51c5296da4abb8fa5d5999f686602b">AdobeXMPCore::ICompositeNode_v1</a>
+</li>
+<li>ReplaceQualifier()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a2692b8281984d9fe6de6c169332f2c">AdobeXMPCore::INode_v1</a>
+</li>
+<li>ReportErrorAndContinueFunctor()
+: <a class="el" href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html#a40e6fedd9a880d70095b9468b5cf05db">AdobeXMPCommon::ReportErrorAndContinueFunctor</a>
+</li>
+<li>REQ_FRIEND_CLASS_DECLARATION()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#abb69da6d73e4b56c30e56b43f5a37b9b">AdobeXMPCommon::IConfigurable</a>
+, <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html#ad857109e294bdff85685fa0974020645">AdobeXMPCommon::IConfigurationManager_v1</a>
+, <a class="el" href="classAdobeXMPCommon_1_1IErrorNotifier__v1.html#a6b08a4aa1295fae50fe52c60787b3037">AdobeXMPCommon::IErrorNotifier_v1</a>
+, <a class="el" href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html#aee52f392f1548bffc01b2be3fd9fab28">AdobeXMPCommon::IMemoryAllocator_v1</a>
+, <a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#a2f02bcd4eafa4d318197c39dd55d0957">AdobeXMPCommon::IObjectFactory_v1</a>
+, <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#afcb42109aed83c3b0c133bc413388037">AdobeXMPCommon::ISharedObject</a>
+, <a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a0f31eb9677c4af06288319e363c21ebc">AdobeXMPCommon::IThreadSafe</a>
+, <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f">AdobeXMPCommon::IVersionable</a>
+</li>
+<li>ResetErrorCallbackLimit()
+: <a class="el" href="classTXMPFiles.html#a8e37b25dd1cba1e9a3f45037022717f2">TXMPFiles&lt; tStringObj &gt;</a>
+, <a class="el" href="classTXMPMeta.html#a31c7ef089e8fadff122044afa27d200a">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>resize()
+: <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a94228b12fd752c7051f9cafad0aa1692">AdobeXMPCommon::IUTF8String_v1</a>
+</li>
+<li>Rewind()
+: <a class="el" href="classXMP__IO.html#a456f92ca90a83095dbd90786a26b64e1">XMP_IO</a>
+</li>
+<li>rfind()
+: <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a7b58ccfe2131a133db0e2fdcfc4f6baf">AdobeXMPCommon::IUTF8String_v1</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_rela.html b/docs/API/functions_rela.html
new file mode 100755
index 0000000..d6bd389
--- /dev/null
+++ b/docs/API/functions_rela.html
@@ -0,0 +1,62 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members - Related Functions</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li class="current"><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_rela.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;<ul>
+<li>IConfigurableProxy
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#ac321e3926928c7c9b58bab66d6270da5">AdobeXMPCommon::IConfigurable</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_s.html b/docs/API/functions_s.html
new file mode 100755
index 0000000..6d3d0b1
--- /dev/null
+++ b/docs/API/functions_s.html
@@ -0,0 +1,227 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_b.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_k.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_r.html#index_r"><span>r</span></a></li>
+ <li class="current"><a href="functions_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_u.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_y.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_s.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<li>second
+: <a class="el" href="structXMP__DateTime.html#a675313c70a7e05b7ca50d21300b7d81b">XMP_DateTime</a>
+</li>
+<li>Seek()
+: <a class="el" href="classXMP__IO.html#a9c05bb22ecc75e71ecc546bcb756d628">XMP_IO</a>
+</li>
+<li>SeparateArrayItems()
+: <a class="el" href="classTXMPUtils.html#a1bb2ed614886ff67863744ec56041c43">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>Serialize()
+: <a class="el" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#a604822b9cacd9b1ebaba08e49513f778">AdobeXMPCore::IClientDOMSerializer_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html#ac8e65d9aed0a6afc951e075178d81338">AdobeXMPCore::IDOMSerializer_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#ad5920be57f3243c5601ad214e3b1e0c1">AdobeXMPCore::IPath_v1</a>
+</li>
+<li>SerializeToBuffer()
+: <a class="el" href="classTXMPMeta.html#a2774a6f15ae22f0002201b58c46bfb49">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>SetAbortProc()
+: <a class="el" href="classTXMPFiles.html#a7b86c130fdbd54b5ac158ec3fee93777">TXMPFiles&lt; tStringObj &gt;</a>
+</li>
+<li>SetAboutURI()
+: <a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html#a275726ca1831735fff14119b224f1028">AdobeXMPCore::IMetadata_v1</a>
+</li>
+<li>SetArrayItem()
+: <a class="el" href="classTXMPMeta.html#a1570eb89d613b4a94ca572e4644168cc">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>SetClientString()
+: <a class="el" href="classTXMPFiles.html#ae403e54b9cc5df0f59d79e31cce84e3f">TXMPFiles&lt; tStringObj &gt;</a>
+, <a class="el" href="classTXMPIterator.html#a9a59621f2961ee11b164d82c8c3c0295">TXMPIterator&lt; tStringObj &gt;</a>
+, <a class="el" href="classTXMPMeta.html#a67bbfe3f55af71a5122512ebb695e4ed">TXMPMeta&lt; tStringObj &gt;</a>
+, <a class="el" href="classTXMPUtils.html#aa9bc319ae425f1e371a3c188b1f9010c">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>SetClientStringVector()
+: <a class="el" href="classTXMPFiles.html#afd30a5ad1765a9288e7f6ef118255a73">TXMPFiles&lt; tStringObj &gt;</a>
+</li>
+<li>SetDefaultErrorCallback()
+: <a class="el" href="classTXMPFiles.html#accc6c1cef9f124f6c5ed360251aa5aa7">TXMPFiles&lt; tStringObj &gt;</a>
+, <a class="el" href="classTXMPMeta.html#a1e90e0c8cd8c5670267bb693cf3660fe">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>SetDefaultProgressCallback()
+: <a class="el" href="classTXMPFiles.html#a83335ee20bb3ea543c8c86a5757a7753">TXMPFiles&lt; tStringObj &gt;</a>
+</li>
+<li>SetErrorCallback()
+: <a class="el" href="classTXMPFiles.html#a43a98633a0090fb4ade76edf24302ab1">TXMPFiles&lt; tStringObj &gt;</a>
+, <a class="el" href="classTXMPMeta.html#aee41442af4f049c1d6698fc27ce854d0">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>SetGlobalOptions()
+: <a class="el" href="classTXMPMeta.html#ae7bb38d9b3857b08106630a386b47332">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>SetLocalizedText()
+: <a class="el" href="classTXMPMeta.html#af9531b949a462f5663b1f3fd99464c19">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>SetLocation()
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a02f24319a739eee3b5d246bfc72fa71d">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>SetMessage()
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#aab0339169d7def09682a3afd8a65145e">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>SetName()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa087d2f94e42fdd5ece1bd22dfea66d5">AdobeXMPCore::INode_v1</a>
+</li>
+<li>SetNameSpace()
+: <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a55c6097b36412f9facc8a4cf7e898186">AdobeXMPCore::INode_v1</a>
+</li>
+<li>SetNextError()
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a65e29b8ca5749bb9a5286e2d4a93a2af">AdobeXMPCommon::IError_v1</a>
+</li>
+<li>SetNotified()
+: <a class="el" href="classXMP__Error.html#a9c368db94ca63ad7b9b118051d1f8897">XMP_Error</a>
+</li>
+<li>SetObjectName()
+: <a class="el" href="classTXMPMeta.html#acf1935be8e4849976dfc02325424960a">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>SetObjectOptions()
+: <a class="el" href="classTXMPMeta.html#a92055b3ae18dfd5e5491108f59318f17">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>SetParameter()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a174330a36f7e3d27cc0230698ff59313">AdobeXMPCommon::IConfigurable</a>
+</li>
+<li>SetProgressCallback()
+: <a class="el" href="classTXMPFiles.html#aa283e2a1c16918c86148446859ed1a2d">TXMPFiles&lt; tStringObj &gt;</a>
+</li>
+<li>SetProperty()
+: <a class="el" href="classTXMPMeta.html#a1dfd6a08ebfd1a6364b3a7b6584bcc28">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>SetProperty_Bool()
+: <a class="el" href="classTXMPMeta.html#a9521e3838272ec501ffdb60ff3eb482f">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>SetProperty_Date()
+: <a class="el" href="classTXMPMeta.html#aeee10669445f77139d5634199ff01079">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>SetProperty_Float()
+: <a class="el" href="classTXMPMeta.html#a3b0f2f6bae57931ea96775f03608c0ed">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>SetProperty_Int()
+: <a class="el" href="classTXMPMeta.html#a489e10a6686aa813ee437e93ab2c5943">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>SetProperty_Int64()
+: <a class="el" href="classTXMPMeta.html#a7f749be7699890bbaa2e2dbd05d45a90">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>SetQualifier()
+: <a class="el" href="classTXMPMeta.html#ac395e094cab251a0593d508594b21521">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>SetStructField()
+: <a class="el" href="classTXMPMeta.html#a77d4a1bf7831f39073af9ea1544ebefa">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>SetTimeZone()
+: <a class="el" href="classTXMPUtils.html#a96bcc45febac55f6c49951815b7de2ef">TXMPUtils&lt; tStringObj &gt;</a>
+</li>
+<li>SetupCoreObjectFactory()
+: <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a27a3f1ca72e364fa627aa71b52042da2">AdobeXMPCore::ICoreObjectFactory_v1</a>
+</li>
+<li>SetURIType()
+: <a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html#a8781cf6bb583b419cf5fcaf6cf311bd2">AdobeXMPCore::ISimpleNode_v1</a>
+</li>
+<li>SetValue()
+: <a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html#a0391485cf8c432ba03874d4329c5510e">AdobeXMPCore::ISimpleNode_v1</a>
+</li>
+<li>Size()
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html#a2a1e1d3f515d431478ec309fa9dcd977">AdobeXMPCommon::IConfigurable</a>
+</li>
+<li>size()
+: <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#a5da1566bf196fc58c4c3d5a469e1f4f3">AdobeXMPCommon::IUTF8String_v1</a>
+</li>
+<li>Size()
+: <a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a3dfd0d265952656c9b6641d8ce523e40">AdobeXMPCore::INameSpacePrefixMap_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IPath__v1.html#a6a0bc65d535aabdfd52608b29270c558">AdobeXMPCore::IPath_v1</a>
+</li>
+<li>Skip()
+: <a class="el" href="classTXMPIterator.html#a30b4d78974b347e4fcd275f1f65a61b2">TXMPIterator&lt; tStringObj &gt;</a>
+</li>
+<li>Sort()
+: <a class="el" href="classTXMPMeta.html#a8ac5a02a13d439ff33ed4431986da681">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>substr()
+: <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html#ab960c740e20dd09e26b24e04fd43e357">AdobeXMPCommon::IUTF8String_v1</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_t.html b/docs/API/functions_t.html
new file mode 100755
index 0000000..dfd09cf
--- /dev/null
+++ b/docs/API/functions_t.html
@@ -0,0 +1,118 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_b.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_k.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_s.html#index_s"><span>s</span></a></li>
+ <li class="current"><a href="functions_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_u.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_y.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_t.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
+<li>Terminate()
+: <a class="el" href="classTXMPFiles.html#a1e8de80c252b60b332dc4bc524139fd8">TXMPFiles&lt; tStringObj &gt;</a>
+, <a class="el" href="classTXMPMeta.html#a6c30fae26173167958b6f0da95a53865">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>ToEOF()
+: <a class="el" href="classXMP__IO.html#a51b53ca05c5627da08cd934a9ed8b281">XMP_IO</a>
+</li>
+<li>Truncate()
+: <a class="el" href="classXMP__IO.html#af7dc2bd067498a651597a6b128f02dbb">XMP_IO</a>
+</li>
+<li>TXMPFiles()
+: <a class="el" href="classTXMPFiles.html#acf343fb6771b482ca72d467233a6f920">TXMPFiles&lt; tStringObj &gt;</a>
+</li>
+<li>TXMPIterator()
+: <a class="el" href="classTXMPIterator.html#a88e855c18b2b15f7b8a5ccf3b9398352">TXMPIterator&lt; tStringObj &gt;</a>
+</li>
+<li>TXMPMeta()
+: <a class="el" href="classTXMPMeta.html#a05199e2a4bc61db7aed207759e899bc2">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+<li>tzHour
+: <a class="el" href="structXMP__DateTime.html#a6045133feeef41ac1f78c4664ab13db4">XMP_DateTime</a>
+</li>
+<li>tzMinute
+: <a class="el" href="structXMP__DateTime.html#a45baa70f30a3dc9f88819886cfb91aa1">XMP_DateTime</a>
+</li>
+<li>tzSign
+: <a class="el" href="structXMP__DateTime.html#a2b26282b9f1ab9920a8f05008c776ddb">XMP_DateTime</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_type.html b/docs/API/functions_type.html
new file mode 100755
index 0000000..c44d9ff
--- /dev/null
+++ b/docs/API/functions_type.html
@@ -0,0 +1,62 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members - Typedefs</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li class="current"><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_type.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;<ul>
+<li>eErrorCode
+: <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html#a29cc93a78d4e1111ec8e51e4ca9a82b3">AdobeXMPCommon::IError_v1</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_u.html b/docs/API/functions_u.html
new file mode 100755
index 0000000..7d583e0
--- /dev/null
+++ b/docs/API/functions_u.html
@@ -0,0 +1,96 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_b.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_k.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_t.html#index_t"><span>t</span></a></li>
+ <li class="current"><a href="functions_u.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_y.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_u.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
+<li>uint32Value
+: <a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a6ed591451d1db9b4fd0dac884bfe489e">AdobeXMPCommon::IConfigurable::CombinedDataValue</a>
+</li>
+<li>uint64Value
+: <a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a65e7b5a9f09ea6b684e5e0aaa5f63ee1">AdobeXMPCommon::IConfigurable::CombinedDataValue</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_v.html b/docs/API/functions_v.html
new file mode 100755
index 0000000..696f591
--- /dev/null
+++ b/docs/API/functions_v.html
@@ -0,0 +1,94 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_b.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_k.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_u.html#index_u"><span>u</span></a></li>
+ <li class="current"><a href="functions_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_y.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_v.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_v"></a>- v -</h3><ul>
+<li>Validate()
+: <a class="el" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html#a7d40872cc3ce6ac3b298709232399984">AdobeXMPCore::IClientDOMParser_v1</a>
+, <a class="el" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#a5bcaa25de727ee1e8e9399dd963aa5c3">AdobeXMPCore::IClientDOMSerializer_v1</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_vars.html b/docs/API/functions_vars.html
index 5ab5253..ada54bd 100644..100755
--- a/docs/API/functions_vars.html
+++ b/docs/API/functions_vars.html
@@ -1,91 +1,135 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: Class Members - Variables</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
+<title>Class Members - Variables</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
- <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
- <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
<li><a href="functions.html"><span>All</span></a></li>
<li><a href="functions_func.html"><span>Functions</span></a></li>
<li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="#index_b"><span>b</span></a></li>
+ <li><a href="#index_c"><span>c</span></a></li>
+ <li><a href="#index_d"><span>d</span></a></li>
+ <li><a href="#index_e"><span>e</span></a></li>
+ <li><a href="#index_f"><span>f</span></a></li>
+ <li><a href="#index_h"><span>h</span></a></li>
+ <li><a href="#index_i"><span>i</span></a></li>
+ <li><a href="#index_l"><span>l</span></a></li>
+ <li><a href="#index_m"><span>m</span></a></li>
+ <li><a href="#index_n"><span>n</span></a></li>
+ <li><a href="#index_o"><span>o</span></a></li>
+ <li><a href="#index_p"><span>p</span></a></li>
+ <li><a href="#index_s"><span>s</span></a></li>
+ <li><a href="#index_t"><span>t</span></a></li>
+ <li><a href="#index_u"><span>u</span></a></li>
+ <li><a href="#index_w"><span>w</span></a></li>
+ <li><a href="#index_x"><span>x</span></a></li>
+ <li class="current"><a href="#index_y"><span>y</span></a></li>
</ul>
</div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_vars.html','');});
+</script>
+<div id="doc-content">
<div class="contents">
-&nbsp;<ul>
+&#160;
+
+<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
+<li>boolValue
+: <a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a5cf9ec10ad5942fe67759a8c442817da">AdobeXMPCommon::IConfigurable::CombinedDataValue</a>
+</li>
<li>build
: <a class="el" href="structXMP__VersionInfo.html#a0e20a6bf10da4c17bdfc8027f1586ffc">XMP_VersionInfo</a>
</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
<li>charForm
: <a class="el" href="structXMP__PacketInfo.html#a039ce6665fe8e08d922a46f266799f75">XMP_PacketInfo</a>
</li>
+<li>charValue
+: <a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#acf5eba644510b302a7d351ab06174880">AdobeXMPCommon::IConfigurable::CombinedDataValue</a>
+</li>
+<li>constCharPtrValue
+: <a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a8b483f56604dfd719c6cc0cbd883d9f7">AdobeXMPCommon::IConfigurable::CombinedDataValue</a>
+</li>
+<li>constVoidPtrValue
+: <a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a8f1fc5e55c1cac4aba0b23d9e2f25a5a">AdobeXMPCommon::IConfigurable::CombinedDataValue</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
<li>day
: <a class="el" href="structXMP__DateTime.html#a58496718277eea9dc5e3e19d80a69094">XMP_DateTime</a>
</li>
+<li>doubleValue
+: <a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a0c9f75a96d53c5d03516f233937d6dca">AdobeXMPCommon::IConfigurable::CombinedDataValue</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
+<li>errMessage
+: <a class="el" href="structWXMP__Result.html#ae329adc6d31243687d8bd85987ad6999">WXMP_Result</a>
+</li>
<li>errMsg
: <a class="el" href="classXMP__Error.html#a31fd80098e50026985e05abd16f3e045">XMP_Error</a>
</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
<li>flags
: <a class="el" href="structXMP__VersionInfo.html#ad018f35b382046ca77b1252bafa93f74">XMP_VersionInfo</a>
</li>
+<li>floatResult
+: <a class="el" href="structWXMP__Result.html#a872bf8583413190b991beda67f017fb5">WXMP_Result</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
<li>hasDate
: <a class="el" href="structXMP__DateTime.html#a62e0f39edef2a82749feed46b16572e8">XMP_DateTime</a>
</li>
@@ -101,15 +145,39 @@ window.onload = initDynSections;
<li>hour
: <a class="el" href="structXMP__DateTime.html#abc79cdca8cfa5df6583279e3f3e70e9f">XMP_DateTime</a>
</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
<li>id
: <a class="el" href="classXMP__Error.html#aad714bd7c428e10eff07a8ab6a4f3125">XMP_Error</a>
</li>
+<li>int32Result
+: <a class="el" href="structWXMP__Result.html#a0bef8219ee23d2869ae6701330820794">WXMP_Result</a>
+</li>
+<li>int64Result
+: <a class="el" href="structWXMP__Result.html#af515f52630be278a2334d7d9db587f13">WXMP_Result</a>
+</li>
+<li>int64Value
+: <a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#ad65f4aa42944655754cdabc56befe34c">AdobeXMPCommon::IConfigurable::CombinedDataValue</a>
+</li>
<li>isDebug
: <a class="el" href="structXMP__VersionInfo.html#af1643d86f32f5a5a275dc9c5ba843018">XMP_VersionInfo</a>
</li>
+<li>iterRef
+: <a class="el" href="classTXMPIterator.html#aeecf240d827e33c8b1d7040a99dc7600">TXMPIterator&lt; tStringObj &gt;</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
<li>length
: <a class="el" href="structXMP__PacketInfo.html#af526c582b66e24553f2d4b11eb714a44">XMP_PacketInfo</a>
</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
<li>major
: <a class="el" href="structXMP__VersionInfo.html#a7edfa1613a58a248fd15267008bd8afb">XMP_VersionInfo</a>
</li>
@@ -128,24 +196,53 @@ window.onload = initDynSections;
<li>month
: <a class="el" href="structXMP__DateTime.html#ab4b71c1a54879d7da1b4135e23d5446f">XMP_DateTime</a>
</li>
+<li>mRawPtr
+: <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a57ee5dce3f7d579adb79ebc00618aa17">AdobeXMPCommon::IConfigurationManagerProxy</a>
+</li>
+<li>mSafeProc
+: <a class="el" href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html#a3b28d2e68ebbcd5d20781d8b7a48f879">AdobeXMPCommon::ReportErrorAndContinueFunctor</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
<li>nanoSecond
: <a class="el" href="structXMP__DateTime.html#a190c2a19f01e90997ec2973aec37712c">XMP_DateTime</a>
</li>
<li>notified
: <a class="el" href="classXMP__Error.html#a2b884dfb0b39689d1cf95105eadc4571">XMP_Error</a>
</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
<li>offset
: <a class="el" href="structXMP__PacketInfo.html#a20f65fcfd0f3658ab93ff441a9d61d2c">XMP_PacketInfo</a>
</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
<li>pad
: <a class="el" href="structXMP__PacketInfo.html#a83ec12161a36451fef05d88cc754104e">XMP_PacketInfo</a>
</li>
<li>padSize
: <a class="el" href="structXMP__PacketInfo.html#af4f99e6a5b36b05fdf4a519421875256">XMP_PacketInfo</a>
</li>
+<li>ptrResult
+: <a class="el" href="structWXMP__Result.html#ae1b91c50cee342a87f7708dd92a3d538">WXMP_Result</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
<li>second
: <a class="el" href="structXMP__DateTime.html#a675313c70a7e05b7ca50d21300b7d81b">XMP_DateTime</a>
</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
<li>tzHour
: <a class="el" href="structXMP__DateTime.html#a6045133feeef41ac1f78c4664ab13db4">XMP_DateTime</a>
</li>
@@ -155,15 +252,44 @@ window.onload = initDynSections;
<li>tzSign
: <a class="el" href="structXMP__DateTime.html#a2b26282b9f1ab9920a8f05008c776ddb">XMP_DateTime</a>
</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
+<li>uint32Value
+: <a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a6ed591451d1db9b4fd0dac884bfe489e">AdobeXMPCommon::IConfigurable::CombinedDataValue</a>
+</li>
+<li>uint64Value
+: <a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a65e7b5a9f09ea6b684e5e0aaa5f63ee1">AdobeXMPCommon::IConfigurable::CombinedDataValue</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
<li>writeable
: <a class="el" href="structXMP__PacketInfo.html#a66845c1d5f3f9f36a1543a7322bd7bd1">XMP_PacketInfo</a>
</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_x"></a>- x -</h3><ul>
+<li>xmpFilesRef
+: <a class="el" href="classTXMPFiles.html#a5977d8094086a7c2bfa9abe03af2265c">TXMPFiles&lt; tStringObj &gt;</a>
+</li>
+<li>xmpRef
+: <a class="el" href="classTXMPMeta.html#a8d607eb80edb919fe8b07efe300008d2">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_y"></a>- y -</h3><ul>
<li>year
: <a class="el" href="structXMP__DateTime.html#a2db713deacfd5a5cb2deea660ca2ccad">XMP_DateTime</a>
</li>
</ul>
-</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
</body>
</html>
diff --git a/docs/API/functions_w.html b/docs/API/functions_w.html
new file mode 100755
index 0000000..e227fa4
--- /dev/null
+++ b/docs/API/functions_w.html
@@ -0,0 +1,99 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_b.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_k.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_u.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_v.html#index_v"><span>v</span></a></li>
+ <li class="current"><a href="functions_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_y.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_w.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
+<li>Write()
+: <a class="el" href="classXMP__IO.html#ab48d705ca0e3fb22d84c7a323951f8e4">XMP_IO</a>
+</li>
+<li>writeable
+: <a class="el" href="structXMP__PacketInfo.html#a66845c1d5f3f9f36a1543a7322bd7bd1">XMP_PacketInfo</a>
+</li>
+<li>WXMP_Result()
+: <a class="el" href="structWXMP__Result.html#ad1046c86e2b3eba3109e6ae3f7063352">WXMP_Result</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_x.html b/docs/API/functions_x.html
new file mode 100755
index 0000000..139c619
--- /dev/null
+++ b/docs/API/functions_x.html
@@ -0,0 +1,105 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_b.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_k.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_u.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_w.html#index_w"><span>w</span></a></li>
+ <li class="current"><a href="functions_x.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_y.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_x.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_x"></a>- x -</h3><ul>
+<li>XMP_Error()
+: <a class="el" href="classXMP__Error.html#aa8b3b859899759d679b00237254e30aa">XMP_Error</a>
+</li>
+<li>XMP_IO()
+: <a class="el" href="classXMP__IO.html#a38ca896e79705a0e4228eb67d3426c65">XMP_IO</a>
+</li>
+<li>XMP_PacketInfo()
+: <a class="el" href="structXMP__PacketInfo.html#a2ae03a1b3d03fa9ebc829105037155a8">XMP_PacketInfo</a>
+</li>
+<li>xmpFilesRef
+: <a class="el" href="classTXMPFiles.html#a5977d8094086a7c2bfa9abe03af2265c">TXMPFiles&lt; tStringObj &gt;</a>
+</li>
+<li>xmpRef
+: <a class="el" href="classTXMPMeta.html#a8d607eb80edb919fe8b07efe300008d2">TXMPMeta&lt; tStringObj &gt;</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/functions_y.html b/docs/API/functions_y.html
new file mode 100755
index 0000000..a2c1cba
--- /dev/null
+++ b/docs/API/functions_y.html
@@ -0,0 +1,93 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_b.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_c.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_d.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_e.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_f.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_g.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_h.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_i.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_k.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_l.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_m.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_n.html#index_n"><span>n</span></a></li>
+ <li><a href="functions_o.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_p.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_q.html#index_q"><span>q</span></a></li>
+ <li><a href="functions_r.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_s.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_t.html#index_t"><span>t</span></a></li>
+ <li><a href="functions_u.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_v.html#index_v"><span>v</span></a></li>
+ <li><a href="functions_w.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_x.html#index_x"><span>x</span></a></li>
+ <li class="current"><a href="functions_y.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_y.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_y"></a>- y -</h3><ul>
+<li>year
+: <a class="el" href="structXMP__DateTime.html#a2db713deacfd5a5cb2deea660ca2ccad">XMP_DateTime</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/globals.html b/docs/API/globals.html
index fe9a83b..083719a 100644..100755
--- a/docs/API/globals.html
+++ b/docs/API/globals.html
@@ -1,774 +1,103 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: Class Members</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
+<title>File Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
- <li><a href="files.html"><span>File&nbsp;List</span></a></li>
- <li class="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
<li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Defines</span></a></li>
+ <li><a href="globals_defs.html"><span>Macros</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
- <li class="current"><a href="globals.html#index_k"><span>k</span></a></li>
- <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
- <li><a href="globals_0x78.html#index_x"><span>x</span></a></li>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html#index__"><span>_</span></a></li>
+ <li><a href="globals_b.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_c.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_d.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_e.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_i.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_j.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_k.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_m.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_p.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_q.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_r.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_s.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_w.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_x.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_z.html#index_z"><span>z</span></a></li>
</ul>
</div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals.html','');});
+</script>
+<div id="doc-content">
<div class="contents">
-Here is a list of all documented file members with links to the documentation:
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
-<h3><a class="anchor" id="index_k">- k -</a></h3><ul>
-<li>kXMP_AEFilterPresetFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafd8d3d1c8c84bc6ab773f1298b3938f0">XMP_Const.h</a>
-</li>
-<li>kXMP_AEProjectFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da5fb9e99541bbb2d8e375d0cc9fd92a2e">XMP_Const.h</a>
-</li>
-<li>kXMP_AEProjTemplateFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dada5b138722448c4d4595fe760668c3df">XMP_Const.h</a>
-</li>
-<li>kXMP_AIFFFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf093d01e7e9cc55a7d1e204498521fc3">XMP_Const.h</a>
-</li>
-<li>kXMP_ArrayLastItem
-: <a class="el" href="XMP__Const_8h.html#a9549b9a138a896257b5a70176d125317">XMP_Const.h</a>
-</li>
-<li>kXMP_AVCHDFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafc5ff976e78df2d79d651de818b011f2">XMP_Const.h</a>
-</li>
-<li>kXMP_AVIFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dae3a6333624e5c292caf14ad849a5e26e">XMP_Const.h</a>
-</li>
-<li>kXMP_CanonXFFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafa11d905db1236494e555956cb2f90ef">XMP_Const.h</a>
-</li>
-<li>kXMP_CELFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da6c949ee85f42eaaed035591338be6789">XMP_Const.h</a>
-</li>
-<li>kXMP_Char16BitBig
-: <a class="el" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea0966bca9b241646f6a730f96c5c14a2d">XMP_Const.h</a>
-</li>
-<li>kXMP_Char16BitLittle
-: <a class="el" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea19b97b941d6586031190025225ee0eaa">XMP_Const.h</a>
-</li>
-<li>kXMP_Char32BitBig
-: <a class="el" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea87f8231aec6dd125baf77c9f3f918fbc">XMP_Const.h</a>
-</li>
-<li>kXMP_Char32BitLittle
-: <a class="el" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea859e7aa88e7dfd3f55ad2b6445a4708e">XMP_Const.h</a>
-</li>
-<li>kXMP_Char8Bit
-: <a class="el" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9eaf5b20dd9abbef29169a362b265049637">XMP_Const.h</a>
-</li>
-<li>kXMP_CharUnknown
-: <a class="el" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea6c37f0724299a9c88e2f622d3246d63b">XMP_Const.h</a>
-</li>
-<li>kXMP_CINFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad2935ea79b4f9253891e3a68a002c5bb">XMP_Const.h</a>
-</li>
-<li>kXMP_DeleteExisting
-: <a class="el" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04addd07b4a38b25ab3841e28a9cb169d1c">XMP_Const.h</a>
-</li>
-<li>kXMP_EncodeUTF16Big
-: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea310e4cbf639e783163778566b439f01d">XMP_Const.h</a>
-</li>
-<li>kXMP_EncodeUTF16Little
-: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eafc6417e382c98a2d507830de62fd4830">XMP_Const.h</a>
-</li>
-<li>kXMP_EncodeUTF32Big
-: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea793e99d9ea83f0aadd5b4193a95ea713">XMP_Const.h</a>
-</li>
-<li>kXMP_EncodeUTF32Little
-: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eae0137d98ea990fa23d292489031ba09e">XMP_Const.h</a>
-</li>
-<li>kXMP_EncodeUTF8
-: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadc8f241694f5a758e5ee3f6db69d02ab">XMP_Const.h</a>
-</li>
-<li>kXMP_EncodingMask
-: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eaeb79571cac99ee97feefb0347b1c1845">XMP_Const.h</a>
-</li>
-<li>kXMP_EncoreProjectFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dae28efb65bde55f3f8ddfd1fd8a168e2a">XMP_Const.h</a>
-</li>
-<li>kXMP_EPSFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad947e6da0c4d923195d93e0c53a79c4e">XMP_Const.h</a>
-</li>
-<li>kXMP_ExactPacketLength
-: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadb35599da481cc22ea6342b7b4de6bc6">XMP_Const.h</a>
-</li>
-<li>kXMP_FalseStr
-: <a class="el" href="XMP__Const_8h.html#a2dc55b533ed63ed7ff0c3be16a97e278">XMP_Const.h</a>
-</li>
-<li>kXMP_FLAFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dab1eeba00d1d92e313acfe68cd054daf9">XMP_Const.h</a>
-</li>
-<li>kXMP_FLVFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da455bc501088bbd8061fe3ea386a5066f">XMP_Const.h</a>
-</li>
-<li>kXMP_GIFFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da851d2f4525d705cd2dcabb540d0ddc06">XMP_Const.h</a>
-</li>
-<li>kXMP_HTMLFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da542634e6051139c44fd7b92d08c64760">XMP_Const.h</a>
-</li>
-<li>kXMP_IllustratorFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da82935c41c6222ff4cca954278f18e554">XMP_Const.h</a>
-</li>
-<li>kXMP_ImplReservedMask
-: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5ae154b58429b257b18963ba3503e67974">XMP_Const.h</a>
-</li>
-<li>kXMP_IncludeRDFHash
-: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea23054ea4ab89dfd802f14cb389e18745">XMP_Const.h</a>
-</li>
-<li>kXMP_IncludeThumbnailPad
-: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea0b659b3b544c7a5a076fbd3132cd7f7a">XMP_Const.h</a>
-</li>
-<li>kXMP_InDesignFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da79cbf96ecc4ac3e0ebfb2d182bc75e60">XMP_Const.h</a>
-</li>
-<li>kXMP_InsertAfterItem
-: <a class="el" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04a98cedd5fa29d47abb2ac8903ac7f5a05">XMP_Const.h</a>
-</li>
-<li>kXMP_InsertBeforeItem
-: <a class="el" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04a873411f673fc2a6337083fd024df727f">XMP_Const.h</a>
-</li>
-<li>kXMP_IterAliases
-: <a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a3333450505cd3712320aeac895e541b9">XMP_Const.h</a>
-</li>
-<li>kXMP_IterClassMask
-: <a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a93f77b837d89759af3a721712c13f044">XMP_Const.h</a>
-</li>
-<li>kXMP_IterJustChildren
-: <a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635ab26e1a38d1d0343fcc5bdaab1b60e3ed">XMP_Const.h</a>
-</li>
-<li>kXMP_IterJustLeafName
-: <a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635acf22e638f4144bcec8207b2ab69bb344">XMP_Const.h</a>
-</li>
-<li>kXMP_IterJustLeafNodes
-: <a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a4589f99b5b4a55e785e3baf4fe1d9b19">XMP_Const.h</a>
-</li>
-<li>kXMP_IterNamespaces
-: <a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635aa325d9ffba68a934f0a0a0f6ecfc2f7b">XMP_Const.h</a>
-</li>
-<li>kXMP_IterOmitQualifiers
-: <a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a1b91947105ae68c48c5d5e36aa70d101">XMP_Const.h</a>
-</li>
-<li>kXMP_IterProperties
-: <a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635aa0643c076a3b3737ff88ed20f16afd2b">XMP_Const.h</a>
-</li>
-<li>kXMP_IterSkipSiblings
-: <a class="el" href="XMP__Const_8h.html#a0411cd49bb5b71852cecd93bcbf0ca2da2537b4b8db838f85b47988b198cd2a12">XMP_Const.h</a>
-</li>
-<li>kXMP_IterSkipSubtree
-: <a class="el" href="XMP__Const_8h.html#a0411cd49bb5b71852cecd93bcbf0ca2dab0b540cd3841f411471a827f833c606e">XMP_Const.h</a>
-</li>
-<li>kXMP_JPEG2KFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da78b8fa38aaa2067e3e1baa0dcaa7571d">XMP_Const.h</a>
-</li>
-<li>kXMP_JPEGFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad752b2d3e1139e0745223a9385ef6487">XMP_Const.h</a>
-</li>
-<li>kXMP_MOVFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daebdb172c8a75b4ead2eff2d26ed3dc37">XMP_Const.h</a>
-</li>
-<li>kXMP_MP3File
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf3ee34ed2bc26dec0e2d572eeb0de89b">XMP_Const.h</a>
-</li>
-<li>kXMP_MPEG2File
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dab58eaebed494530072ad990ac7a9807a">XMP_Const.h</a>
-</li>
-<li>kXMP_MPEG4File
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da89e6282c3f0c8966d788500f5d8eaa91">XMP_Const.h</a>
-</li>
-<li>kXMP_MPEGFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da043afdc1db730db9ac03c505140c61c8">XMP_Const.h</a>
-</li>
-<li>kXMP_MXFFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da4b3477bdc53fae1511104fc54f88d134">XMP_Const.h</a>
-</li>
-<li>kXMP_NoOptions
-: <a class="el" href="XMP__Const_8h.html#aff1df9f3cf050f8b8d3a574db3c3326b">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_DC
-: <a class="el" href="XMP__Const_8h.html#a44453f0d0a1dd295d41722c2387b36fa">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_EXIF
-: <a class="el" href="XMP__Const_8h.html#ad12182e1df1652f56b5eec60c1fcdd8f">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_IPTCCore
-: <a class="el" href="XMP__Const_8h.html#ab794d3d798daf75a963398347dcbb79b">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_IPTCExt
-: <a class="el" href="XMP__Const_8h.html#a12ca045d4c12992ec8f6c1003523de20">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_PDF
-: <a class="el" href="XMP__Const_8h.html#a0bcb67d0dd0922504e3da7ca5c40c82a">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_Photoshop
-: <a class="el" href="XMP__Const_8h.html#aa1a6f38ebfcdb281c5bf2809859167c7">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_RDF
-: <a class="el" href="XMP__Const_8h.html#a276fac0f70893607afa3f09030ad84c7">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_TIFF
-: <a class="el" href="XMP__Const_8h.html#a673355818b7b9224e8fec0fbc60ba00c">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_XML
-: <a class="el" href="XMP__Const_8h.html#a97564c70460d1f235c8a41b8ac40cfe9">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_XMP
-: <a class="el" href="XMP__Const_8h.html#a030875c9dc0861c9251a3374ca14a376">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_XMP_BJ
-: <a class="el" href="XMP__Const_8h.html#a308e156c325618acb2172e550929ebee">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_XMP_Dimensions
-: <a class="el" href="XMP__Const_8h.html#a9618e013619aa92ebc808b62243d2ba8">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_XMP_IdentifierQual
-: <a class="el" href="XMP__Const_8h.html#ab466db52a4b85cecfa04710682c1e671">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_XMP_Image
-: <a class="el" href="XMP__Const_8h.html#a935641acc7d01e782ad7a457a7ff338b">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_XMP_MM
-: <a class="el" href="XMP__Const_8h.html#ac67379a9ffa425d0d7976a51c4f2f754">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_XMP_ResourceEvent
-: <a class="el" href="XMP__Const_8h.html#a861613273127156050b456eee11f6b0a">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_XMP_ResourceRef
-: <a class="el" href="XMP__Const_8h.html#a9bf51f2653400645f7b5087e8c4e1c77">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_XMP_Rights
-: <a class="el" href="XMP__Const_8h.html#ae52d761e5a4fc8c8499215d2f3d82b90">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_XMP_ST_Job
-: <a class="el" href="XMP__Const_8h.html#ac7dc4d65bcbba2862e410cc8cfdff6f6">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_XMP_ST_Version
-: <a class="el" href="XMP__Const_8h.html#ab4923bed71ab29c6aa88debe8816c0a2">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_XMP_T
-: <a class="el" href="XMP__Const_8h.html#a0a2d9c5f7beb27553214a7ad1df4f27e">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_XMP_T_PG
-: <a class="el" href="XMP__Const_8h.html#a39afb495ffb24bb3082493c6811e65d0">XMP_Const.h</a>
-</li>
-<li>kXMP_OmitAllFormatting
-: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea79230f1d70d2625f7650db6ff5b1ea29">XMP_Const.h</a>
-</li>
-<li>kXMP_OmitPacketWrapper
-: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadbb9e4c7ee139da0dd4126ddea794c76">XMP_Const.h</a>
-</li>
-<li>kXMP_OmitXMPMetaElement
-: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea9fb498d749d939e2ba9adf555a75b856">XMP_Const.h</a>
-</li>
-<li>kXMP_P2File
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dabad9584845edf66f2f8fc3c336977e34">XMP_Const.h</a>
-</li>
-<li>kXMP_PacketInfoVersion
-: <a class="el" href="XMP__Const_8h.html#a16af7b253440dadd46a80a4b9fddba4da767b4847575a8de28e691be660d43817">XMP_Const.h</a>
-</li>
-<li>kXMP_ParseMoreBuffers
-: <a class="el" href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca79b36427b7bf0c0a1ed010a44dec2d3e">XMP_Const.h</a>
-</li>
-<li>kXMP_PDFFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da17ab6d429c1550eb3cc16d2e544b78eb">XMP_Const.h</a>
-</li>
-<li>kXMP_PhotoshopFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da22b478a9d0d52d12e8e4a1181024eb1c">XMP_Const.h</a>
-</li>
-<li>kXMP_PNGFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dac989381d37de320495e4d13f9ecc6371">XMP_Const.h</a>
-</li>
-<li>kXMP_PostScriptFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da52c90935ee28a0875a49843d463cad70">XMP_Const.h</a>
-</li>
-<li>kXMP_PremiereProjectFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daeff4f68cd5162370f7bf938a868e280d">XMP_Const.h</a>
-</li>
-<li>kXMP_PremiereTitleFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da1ad712bbd349dc899ca1e71971032b0a">XMP_Const.h</a>
-</li>
-<li>kXMP_PropArrayFormMask
-: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a6b5b5f4b869994b7390edc9589745e9f">XMP_Const.h</a>
-</li>
-<li>kXMP_PropArrayIsAlternate
-: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a2596b1f0ea4600270c99102c86b5f1f1">XMP_Const.h</a>
-</li>
-<li>kXMP_PropArrayIsAltText
-: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aba253f67a6cf44b7438a3f96b516846d">XMP_Const.h</a>
-</li>
-<li>kXMP_PropArrayIsOrdered
-: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5af1cdb3b0a3e852ec55e747a1686aba04">XMP_Const.h</a>
-</li>
-<li>kXMP_PropArrayIsUnordered
-: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a0d70c23394c0676657c89de5491192c0">XMP_Const.h</a>
-</li>
-<li>kXMP_PropArrayLocationMask
-: <a class="el" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04aef8c1934a17b0e5d8f0b20a7e89df0df">XMP_Const.h</a>
-</li>
-<li>kXMP_PropCompositeMask
-: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a60a9f26fb66c2e65cf40d9bc44968956">XMP_Const.h</a>
-</li>
-<li>kXMP_PropHasAliases
-: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a1f819ef281d1f52c4c12d5d02f49d3f0">XMP_Const.h</a>
-</li>
-<li>kXMP_PropHasLang
-: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a3fa5ed87edc731bfb3817f58ba70a217">XMP_Const.h</a>
-</li>
-<li>kXMP_PropHasQualifiers
-: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a8e34a33a2eed56499d4f6f62da25d159">XMP_Const.h</a>
-</li>
-<li>kXMP_PropHasType
-: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aeff16fdf167afc73db25b30b529bd9d5">XMP_Const.h</a>
-</li>
-<li>kXMP_PropIsAlias
-: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5ab975c19fb5c50f732a1a0d84dadb7c37">XMP_Const.h</a>
-</li>
-<li>kXMP_PropIsDerived
-: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a0d898ea7f6b3db513bb24f8a6a285877">XMP_Const.h</a>
-</li>
-<li>kXMP_PropIsInternal
-: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a48097c6ea309f240965d77ab564a5464">XMP_Const.h</a>
-</li>
-<li>kXMP_PropIsQualifier
-: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a30146ed5209f5c3eb4eeb1fd8e4fb9fe">XMP_Const.h</a>
-</li>
-<li>kXMP_PropIsStable
-: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a81dcd06251771a0ddee6c1e36128c65c">XMP_Const.h</a>
-</li>
-<li>kXMP_PropValueIsArray
-: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a9b7706e0f0716ac7546bdc24ffedd0bc">XMP_Const.h</a>
-</li>
-<li>kXMP_PropValueIsStruct
-: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e">XMP_Const.h</a>
+<h3><a class="anchor" id="index__"></a>- _ -</h3><ul>
+<li>__NOTHROW__
+: <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">XMPCommonDefines.h</a>
</li>
-<li>kXMP_PropValueIsURI
-: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aab51f87b5c48f47f5cefb9e03293dafb">XMP_Const.h</a>
+<li>__WXMP_Common_hpp__
+: <a class="el" href="WXMP__Common_8hpp.html#a92bfba5db10b3ea02b3ad736c8e11dc7">WXMP_Common.hpp</a>
</li>
-<li>kXMP_PropValueOptionsMask
-: <a class="el" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04ad1b42a8a4c479d9bfaf406b79f2e1465">XMP_Const.h</a>
+<li>__WXMPIterator_hpp__
+: <a class="el" href="WXMPIterator_8hpp.html#a6beaeb3189c8f5675a7ad399a3d443c7">WXMPIterator.hpp</a>
</li>
-<li>kXMP_ReadOnlyPacket
-: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea238c792322c5bd5f9e4db3165e01f9d6">XMP_Const.h</a>
+<li>__WXMPMeta_hpp__
+: <a class="el" href="WXMPMeta_8hpp.html#afff47bd31a726ad7c0b3578a0d8bb9d7">WXMPMeta.hpp</a>
</li>
-<li>kXMP_REDFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daab032aa36aec082c6b3a8300548346f5">XMP_Const.h</a>
+<li>__WXMPUtils_hpp__
+: <a class="el" href="WXMPUtils_8hpp.html#a83a5fcd7213385cfdb6b4d4eb85f1162">WXMPUtils.hpp</a>
</li>
-<li>kXMP_RequireXMPMeta
-: <a class="el" href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca1e533852436acf75f594a4fb50a64400">XMP_Const.h</a>
+<li>_XMP_LittleEndian_Bit
+: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eaa646a732a5b11cd8354ca0c3686ef04d">XMP_Const.h</a>
</li>
-<li>kXMP_SESFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da42cb8767d9cf16eaeb7aec68a4f224e9">XMP_Const.h</a>
+<li>_XMP_UTF16_Bit
+: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea688324384883724626ddd5597eb45739">XMP_Const.h</a>
</li>
-<li>kXMP_SonyHDVFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daa0edb070c11f87c3dad9f8f7a83b9b5e">XMP_Const.h</a>
-</li>
-<li>kXMP_StrictAliasing
-: <a class="el" href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca7107906eab0e1fa6f9f2dc6254ad88b1">XMP_Const.h</a>
-</li>
-<li>kXMP_SWFFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da564a8095f65d951f451e16eb56650597">XMP_Const.h</a>
-</li>
-<li>kXMP_TextFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da27051cd824d3ae7bb59e3af7a7908ffd">XMP_Const.h</a>
-</li>
-<li>kXMP_TIFFFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dadc0edf25d933c2a21b25449692c3ba08">XMP_Const.h</a>
-</li>
-<li>kXMP_TimeEastOfUTC
-: <a class="el" href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a68851b70cc1d2346fa21bc0b0ae6cfec">XMP_Const.h</a>
-</li>
-<li>kXMP_TimeIsUTC
-: <a class="el" href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a3f41be55491204982acb39c9f6c7ad13">XMP_Const.h</a>
-</li>
-<li>kXMP_TimeWestOfUTC
-: <a class="el" href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a511551ce156d5fd96c26ad464b837801">XMP_Const.h</a>
-</li>
-<li>kXMP_TrueStr
-: <a class="el" href="XMP__Const_8h.html#a4c39e0131b0e3d7db66e1cfa82b67141">XMP_Const.h</a>
-</li>
-<li>kXMP_UCFFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da96804f7b8ce83786051c4dac4930aa96">XMP_Const.h</a>
-</li>
-<li>kXMP_UnknownFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719">XMP_Const.h</a>
-</li>
-<li>kXMP_UseCanonicalFormat
-: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea15e3fb0e64614c574ed554f2f72c0a5d">XMP_Const.h</a>
-</li>
-<li>kXMP_UseCompactFormat
-: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea041dc6b7b8684be7112ae40f5f259ebb">XMP_Const.h</a>
-</li>
-<li>kXMP_UseNullTermination
-: <a class="el" href="XMP__Const_8h.html#a8283c9596c03b6d626d5a2b7a90e23ab">XMP_Const.h</a>
-</li>
-<li>kXMP_WAVFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dacc1fcd4e52423c0dd2966a2e92352fb8">XMP_Const.h</a>
-</li>
-<li>kXMP_WMAVFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da78c62f7c10b16b1a862d93f6226a4622">XMP_Const.h</a>
-</li>
-<li>kXMP_XDCAM_EXFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da45bf9b21d5ffed3594fbd585c47cc4fc">XMP_Const.h</a>
-</li>
-<li>kXMP_XDCAM_FAMFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da5f78caa0871695cc92e058e4f4b2dd57">XMP_Const.h</a>
-</li>
-<li>kXMP_XDCAM_SAMFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da64fe7908df6341e13d9d8c8199cdf852">XMP_Const.h</a>
-</li>
-<li>kXMP_XMLFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad217b996403fa13caef3d6e978023124">XMP_Const.h</a>
-</li>
-<li>kXMPErr_AssertFailure
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14bd6c24087d280c722c1a044eec27d6">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadBlockFormat
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aacc6262e9c1fd1a64e3d10cedfb7dcb1">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadFileFormat
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa0a05e07925d1f3daf5f36f6da0840f8">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadIndex
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a31adb57da79b4fb1f1f5f999ec740010">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadIPTC
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a23b2d7cab10b3d80549e6b60855bb15e">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadIterPosition
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2584fc813bfcd9158b7adf28a3454bb9">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadJPEG
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad685e1f839e3bc53dfc55611a0803cee">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadMPEG
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad596daed4ac92f8bf7871669d03effad">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadObject
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a115f3d761d2cad952aab23f35cbdf3a1">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadOptions
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a40ca77d98bd366442bb8d438c420a444">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadParam
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a52d197a8b0af3c55f16958162a4132f1">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadParse
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a052b1b525fba7da8c98be5c135f434b8">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadPSD
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad98fc9a9c050e9fc19c3af9c8abb2d6d">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadPSIR
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a1606a687cb790af16dc561b2a8f2e6a3">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadRDF
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5464b823e619618d9aa58433cdb45a8e">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadSchema
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2bc66eec6ce830979089d5c336f75539">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadSerialize
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4f936ff6788ce17f6098b7cbda77ed9">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadTIFF
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aecd25299aa177de7bc7f3674fcf2e22d">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadUnicode
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4cf86fa29624c5e19111e09a97fe05f">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadValue
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a716956a038782e595ce61d3fbdd1a25a">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadXML
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac57f1cf1c24778536fd32972e87334c5">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadXMP
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a211bb632ed1264d9e2236f35c6414821">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadXPath
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a3f1efec0aa5452f43c55c05aba616ef7">XMP_Const.h</a>
-</li>
-<li>kXMPErr_Deprecated
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14342c486ddf394ebc110a446becbfa7">XMP_Const.h</a>
-</li>
-<li>kXMPErr_DiskSpace
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa2f19dfd8ce27b5713c79e34f2052e40">XMP_Const.h</a>
-</li>
-<li>kXMPErr_EmptyIterator
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a078c69d0d76f25187a11981a2552b179">XMP_Const.h</a>
-</li>
-<li>kXMPErr_EnforceFailure
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa856bb36a9742d8542b483e00fc6511b">XMP_Const.h</a>
-</li>
-<li>kXMPErr_ExternalFailure
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a82941dc15c6ccde6b8fb2f9cc85c2eeb">XMP_Const.h</a>
-</li>
-<li>kXMPErr_FilePathNotAFile
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a0819111429c734ca5ef895c193846351">XMP_Const.h</a>
-</li>
-<li>kXMPErr_FilePermission
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a577b0e80acf44125f0dc49e5885e0824">XMP_Const.h</a>
-</li>
-<li>kXMPErr_InternalFailure
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a8babbd758d2c64fd04e85fa48e0675c0">XMP_Const.h</a>
-</li>
-<li>kXMPErr_NoError
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ae2aec0f3b8db282cbba40e4bcf746ba9">XMP_Const.h</a>
-</li>
-<li>kXMPErr_NoFile
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2874a5dcddf253a17d75a147b2ed4933">XMP_Const.h</a>
-</li>
-<li>kXMPErr_NoFileHandler
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a10fa053f279fed01b075f34a70f11795">XMP_Const.h</a>
-</li>
-<li>kXMPErr_NoMemory
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a69eb7fef422fbca62cdbc554afffd813">XMP_Const.h</a>
-</li>
-<li>kXMPErr_ProgressAbort
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5227060f282a86c8ea1a944107751dd1">XMP_Const.h</a>
-</li>
-<li>kXMPErr_ReadError
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2a17df0c0b690f5b7829bc4ca16efce2">XMP_Const.h</a>
-</li>
-<li>kXMPErr_RejectedFileExtension
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad9d8c98663e3ead894841807ab4548f8">XMP_Const.h</a>
-</li>
-<li>kXMPErr_StdException
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5322df07e2a7792824d2468c4837f1cb">XMP_Const.h</a>
-</li>
-<li>kXMPErr_TBD
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409acd9fa1b621efafd5b218e3a785cbeda1">XMP_Const.h</a>
-</li>
-<li>kXMPErr_TooLargeForJPEG
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa9c1c20e53db12b20068d830a8990c0b">XMP_Const.h</a>
-</li>
-<li>kXMPErr_Unavailable
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac7ac408582c194cc723a24acb8b4e4c3">XMP_Const.h</a>
-</li>
-<li>kXMPErr_Unimplemented
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a3de1ac8f4e4afb705d5a4654cb9579e2">XMP_Const.h</a>
-</li>
-<li>kXMPErr_Unknown
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14813595824de97382fffeae7b6fe581">XMP_Const.h</a>
-</li>
-<li>kXMPErr_UnknownException
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aac7558097a1f5a0f99097199f1bf8ff4">XMP_Const.h</a>
-</li>
-<li>kXMPErr_UserAbort
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4ba7b1a57629e4994a0f7a515d51195">XMP_Const.h</a>
-</li>
-<li>kXMPErr_WriteError
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409afca1d169d7e3cb3ba84c81700c1b9b22">XMP_Const.h</a>
-</li>
-<li>kXMPErrSev_FileFatal
-: <a class="el" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a2bd1ff3ba036640f0c76d68a03cf94f7">XMP_Const.h</a>
-</li>
-<li>kXMPErrSev_OperationFatal
-: <a class="el" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960afb962bdcf570af9aef4e32b5f279d1a4">XMP_Const.h</a>
-</li>
-<li>kXMPErrSev_ProcessFatal
-: <a class="el" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a768126806f8c7b7c107314610125deb3">XMP_Const.h</a>
-</li>
-<li>kXMPErrSev_Recoverable
-: <a class="el" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a068fdc8c88dcce62a7b42788a572af61">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_AllowsOnlyXMP
-: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea4a183c3ec4994cf09993e5b31dee9733">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_AllowsSafeUpdate
-: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea9fe958d4ccde02516a3a267db63874cd">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_CanExpand
-: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea126c9cc056f6569c424431edbcb9521c">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_CanInjectXMP
-: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea23a3eb2a5e95292036a93ad6666fa388">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_CanNotifyProgress
-: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea17578d45ae3c09a8d08189ea544052b1">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_CanReconcile
-: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceafc2bc7cfdd28a326788d563ec0357694">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_CanRewrite
-: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea8957f1ef358b4ab3a1df519903f2ae07">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_FolderBasedFormat
-: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceaa2a6a4b744b40055387234632b688fcd">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_ForceGivenHandler
-: <a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaab8cbbeef0e99d246907a4375766e21a2">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_HandlerOwnsFile
-: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceafc2c5b585e698ebf24a9379de35954b4">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_IgnoreLocalText
-: <a class="el" href="XMP__Const_8h.html#aba01db17f4a2bfbc3db60dc172972a25a9b9c1ef01e49193a167c40156df07b50">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_NeedsPreloading
-: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea798c55f5144eedde76f8329a056210b2">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_NeedsReadOnlyPacket
-: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceaee13099f78018a5e1ce033266c27e999">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_OpenForRead
-: <a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa4c61ec4ed571dbc5f1832ff6772320d2">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_OpenForUpdate
-: <a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa91fa388b3888bcb6a68615537b66a49b">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_OpenLimitedScanning
-: <a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa77f34b1873bb2584feabe26a2c8f1182">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_OpenOnlyXMP
-: <a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaa58279b2b1311242e7374117f455bb96">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_OpenRepairFile
-: <a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa05acd568597f72b4812b432ea6cf606a">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_OpenStrictly
-: <a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa0bef4db2ecdaf82a85df9e9d417aab18">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_OpenUsePacketScanning
-: <a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa77b47c63e579b28cbd25083ceb58c285">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_OpenUseSmartHandler
-: <a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaf6332435c7fc89cb0b7381e13fe43646">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_OptimizeFileLayout
-: <a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaf5f2ebd401758a14dc52c5ee403303b5">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_PrefersInPlace
-: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceab55e1873e67048928de3fc47550678c3">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_ReturnsRawPacket
-: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceadb116eed738d1fcdfe4ab9c1635e08ea">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_ServerMode
-: <a class="el" href="XMP__Const_8h.html#aba01db17f4a2bfbc3db60dc172972a25aee2f09481347c29d6c06951b0d81e145">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_UnknownLength
-: <a class="el" href="XMP__Const_8h.html#ae0901aabcf619f17cff03f08e5ed3658">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_UnknownOffset
-: <a class="el" href="XMP__Const_8h.html#a6a9b77b60c63781a8776f10880856bf4">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_UpdateSafely
-: <a class="el" href="XMP__Const_8h.html#a6b7b47dd702d9e331586d485013fd1eaadbf8d744f355ef9800a4ec44325baf54">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_UsesSidecarXMP
-: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcead3027b786992e2a4762a4fa37c92943c">XMP_Const.h</a>
-</li>
-<li>kXMPTemplate_AddNewProperties
-: <a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a145c259f83048b811c7b35bc3b339c42">XMP_Const.h</a>
-</li>
-<li>kXMPTemplate_ClearUnnamedProperties
-: <a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a9dac536fe6ee25de76d45bf6615abd46">XMP_Const.h</a>
-</li>
-<li>kXMPTemplate_IncludeInternalProperties
-: <a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a872d2b769e775e281984cc63e28714ea">XMP_Const.h</a>
-</li>
-<li>kXMPTemplate_ReplaceExistingProperties
-: <a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57aae2e0fe43295736a15f0bb76ffe02544">XMP_Const.h</a>
-</li>
-<li>kXMPTemplate_ReplaceWithDeleteEmpty
-: <a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a81e1b6fd067fc9ad62bc803c98701bd5">XMP_Const.h</a>
-</li>
-<li>kXMPTS_Maybe
-: <a class="el" href="XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba7a73219cd125bb21e294ba474112a584">XMP_Const.h</a>
-</li>
-<li>kXMPTS_No
-: <a class="el" href="XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba2a88f4d4589bf413377283843f70bc90">XMP_Const.h</a>
-</li>
-<li>kXMPTS_Yes
-: <a class="el" href="XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55bacf4bfe01497bd0d88c2af337e4bac39e">XMP_Const.h</a>
-</li>
-<li>kXMPUtil_AllowCommas
-: <a class="el" href="XMP__Const_8h.html#abed82baf7f470b522273a3e37c24c600ad6d41710c689f16d19ac26dc9f5cc506">XMP_Const.h</a>
-</li>
-<li>kXMPUtil_DeleteEmptyValues
-: <a class="el" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a97753b4c5afda9c55e807e41377d86d9">XMP_Const.h</a>
-</li>
-<li>kXMPUtil_DoAllProperties
-: <a class="el" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a8ddfb0572b7602a52e533d92d8b1e9fb">XMP_Const.h</a>
-</li>
-<li>kXMPUtil_IncludeAliases
-: <a class="el" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a843589b878f53d42d59258f945ad770b">XMP_Const.h</a>
-</li>
-<li>kXMPUtil_ReplaceOldValues
-: <a class="el" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388adab4dad658d2d218c5b1e7d829b12962">XMP_Const.h</a>
+<li>_XMP_UTF32_Bit
+: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea540bbd27859990185eb488442579768b">XMP_Const.h</a>
</li>
</ul>
-</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
</body>
</html>
diff --git a/docs/API/globals_0x73.html b/docs/API/globals_0x73.html
deleted file mode 100644
index 65c0dde..0000000
--- a/docs/API/globals_0x73.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: Class Members</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
-<link href="tabs.css" rel="stylesheet" type="text/css">
-</head><body>
-<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
- <li><a href="annotated.html"><span>Classes</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li><a href="files.html"><span>File&nbsp;List</span></a></li>
- <li class="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li class="current"><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Defines</span></a></li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li><a href="globals.html#index_k"><span>k</span></a></li>
- <li class="current"><a href="globals_0x73.html#index_s"><span>s</span></a></li>
- <li><a href="globals_0x78.html#index_x"><span>x</span></a></li>
- </ul>
- </div>
-</div>
-<div class="contents">
-Here is a list of all documented file members with links to the documentation:
-
-<h3><a class="anchor" id="index_s">- s -</a></h3><ul>
-<li>SeekMode
-: <a class="el" href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563f">XMP_Const.h</a>
-</li>
-</ul>
-</div>
-<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
-</body>
-</html>
diff --git a/docs/API/globals_0x78.html b/docs/API/globals_0x78.html
deleted file mode 100644
index 5694bbf..0000000
--- a/docs/API/globals_0x78.html
+++ /dev/null
@@ -1,216 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: Class Members</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
-<link href="tabs.css" rel="stylesheet" type="text/css">
-</head><body>
-<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
- <li><a href="annotated.html"><span>Classes</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li><a href="files.html"><span>File&nbsp;List</span></a></li>
- <li class="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li class="current"><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Defines</span></a></li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li><a href="globals.html#index_k"><span>k</span></a></li>
- <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
- <li class="current"><a href="globals_0x78.html#index_x"><span>x</span></a></li>
- </ul>
- </div>
-</div>
-<div class="contents">
-Here is a list of all documented file members with links to the documentation:
-
-<h3><a class="anchor" id="index_x">- x -</a></h3><ul>
-<li>XMP_AbortProc
-: <a class="el" href="XMP__Const_8h.html#aa2738ce2fca7f1809b12834b1b5e2d0e">XMP_Const.h</a>
-</li>
-<li>XMP_ArrayIsAlternate
-: <a class="el" href="XMP__Const_8h.html#a86bc34c4e64dec75618c348163a88720">XMP_Const.h</a>
-</li>
-<li>XMP_ArrayIsAltText
-: <a class="el" href="XMP__Const_8h.html#abbef21da7bce1491f780586c3e01cd9e">XMP_Const.h</a>
-</li>
-<li>XMP_ArrayIsOrdered
-: <a class="el" href="XMP__Const_8h.html#a72c7077f3ff3e39804a899533867327d">XMP_Const.h</a>
-</li>
-<li>XMP_ArrayIsUnordered
-: <a class="el" href="XMP__Const_8h.html#a8d763b3d36c7067cd7bccd32d4066b43">XMP_Const.h</a>
-</li>
-<li>XMP_CharFormIs16Bit
-: <a class="el" href="XMP__Const_8h.html#aa7596216164335f926cb91d600cddf99">XMP_Const.h</a>
-</li>
-<li>XMP_CharFormIs32Bit
-: <a class="el" href="XMP__Const_8h.html#a1e99ef08266943f52f5c649ab2836ddf">XMP_Const.h</a>
-</li>
-<li>XMP_CharFormIsBigEndian
-: <a class="el" href="XMP__Const_8h.html#aba2539629b8d238fc56a1901dd07ebca">XMP_Const.h</a>
-</li>
-<li>XMP_CharFormIsLittleEndian
-: <a class="el" href="XMP__Const_8h.html#a906ec1cd2fb1631c1b5ad9ccdf9c0a6b">XMP_Const.h</a>
-</li>
-<li>XMP_CharFromSerializeForm
-: <a class="el" href="XMP__Const_8h.html#a93e7900e6c9fb4057dfd685b5201057d">XMP_Const.h</a>
-</li>
-<li>XMP_CharToSerializeForm
-: <a class="el" href="XMP__Const_8h.html#a8f522964919b742b4138c79611997bae">XMP_Const.h</a>
-</li>
-<li>XMP_ClearOption
-: <a class="el" href="XMP__Const_8h.html#a10c3c9b1b6e266b0b4eb6abe7b03b7d8">XMP_Const.h</a>
-</li>
-<li>XMP_FileFormat
-: <a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_Const.h</a>
-</li>
-<li>XMP_GetCharSize
-: <a class="el" href="XMP__Const_8h.html#a85bbf023b1b799c3c20176aa289d32b0">XMP_Const.h</a>
-</li>
-<li>XMP_Index
-: <a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Const.h</a>
-</li>
-<li>XMP_NodeIsSchema
-: <a class="el" href="XMP__Const_8h.html#a12870d8442720ce5230791abc26f9597">XMP_Const.h</a>
-</li>
-<li>XMP_OptionBits
-: <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_Const.h</a>
-</li>
-<li>XMP_OptionIsClear
-: <a class="el" href="XMP__Const_8h.html#a1d41f53bd1d5c88fad8322ce15e39516">XMP_Const.h</a>
-</li>
-<li>XMP_OptionIsSet
-: <a class="el" href="XMP__Const_8h.html#aba3edaa921326c7916adb0b70b1bcfb4">XMP_Const.h</a>
-</li>
-<li>XMP_ProgressReportProc
-: <a class="el" href="XMP__Const_8h.html#af18be2d0c8accad813e0d8962da24b4e">XMP_Const.h</a>
-</li>
-<li>XMP_ProgressReportWrapper
-: <a class="el" href="XMP__Const_8h.html#abfd6246a6ce8ef90c7fc600b456f3ea9">XMP_Const.h</a>
-</li>
-<li>XMP_PropHasLang
-: <a class="el" href="XMP__Const_8h.html#a7dc82df90f45b0d746b67d8fdc529c83">XMP_Const.h</a>
-</li>
-<li>XMP_PropHasQualifiers
-: <a class="el" href="XMP__Const_8h.html#a10828aa191aa666aa1166c27beead2a6">XMP_Const.h</a>
-</li>
-<li>XMP_PropIsAlias
-: <a class="el" href="XMP__Const_8h.html#a193b1414fa5312da2aa1d833b85612d0">XMP_Const.h</a>
-</li>
-<li>XMP_PropIsArray
-: <a class="el" href="XMP__Const_8h.html#a98ae521b621cfa3611211e3922a0fce8">XMP_Const.h</a>
-</li>
-<li>XMP_PropIsQualifier
-: <a class="el" href="XMP__Const_8h.html#a8d1b4da6b3cb3a67bf4f8e79352eeeaa">XMP_Const.h</a>
-</li>
-<li>XMP_PropIsSimple
-: <a class="el" href="XMP__Const_8h.html#a510b75338bd488ddd8d9bd4e326806f9">XMP_Const.h</a>
-</li>
-<li>XMP_PropIsStruct
-: <a class="el" href="XMP__Const_8h.html#aebea8c35e09da7db613e27d0e3ce945f">XMP_Const.h</a>
-</li>
-<li>XMP_SetOption
-: <a class="el" href="XMP__Const_8h.html#a69c4d1b80c4dd581366e0c60209ef612">XMP_Const.h</a>
-</li>
-<li>XMP_Status
-: <a class="el" href="XMP__Const_8h.html#a05b81829c04746826f4f85fbac76e3dd">XMP_Const.h</a>
-</li>
-<li>XMP_StringLen
-: <a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_Const.h</a>
-</li>
-<li>XMP_StringPtr
-: <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_Const.h</a>
-</li>
-<li>XMP_TestOption
-: <a class="el" href="XMP__Const_8h.html#aa31596e850cb6b208f5920833d67b9f1">XMP_Const.h</a>
-</li>
-<li>XMP_TextOutputProc
-: <a class="el" href="XMP__Const_8h.html#a8ce3570e6e5ac14cd603e96fa9d2936f">XMP_Const.h</a>
-</li>
-<li>XMP_VersionInfo
-: <a class="el" href="XMP__Const_8h.html#a57250ff934e642191654ae49c3a2c6c9">XMP_Const.h</a>
-</li>
-<li>XMPDocOpsRef
-: <a class="el" href="XMP__Const_8h.html#ab516453dd7d906e911f8951983cde5f1">XMP_Const.h</a>
-</li>
-<li>XMPFiles_ErrorCallbackProc
-: <a class="el" href="XMP__Const_8h.html#aaceb0287e961c16649487db026bcfc61">XMP_Const.h</a>
-</li>
-<li>XMPFilesRef
-: <a class="el" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMP_Const.h</a>
-</li>
-<li>XMPIteratorRef
-: <a class="el" href="XMP__Const_8h.html#a6ade57a30fb1e40d6aa9695c440fc3d2">XMP_Const.h</a>
-</li>
-<li>XMPMeta_ErrorCallbackProc
-: <a class="el" href="XMP__Const_8h.html#a6027ee7b7d17a0fec636f812c5346af7">XMP_Const.h</a>
-</li>
-<li>XMPMeta_ErrorCallbackWrapper
-: <a class="el" href="XMP__Const_8h.html#a900dba8ffc9d1d9b89f4e83ac601679b">XMP_Const.h</a>
-</li>
-<li>XMPMetaRef
-: <a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMP_Const.h</a>
-</li>
-</ul>
-</div>
-<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
-</body>
-</html>
diff --git a/docs/API/globals_b.html b/docs/API/globals_b.html
new file mode 100755
index 0000000..449d65c
--- /dev/null
+++ b/docs/API/globals_b.html
@@ -0,0 +1,85 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>File Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals.html#index__"><span>_</span></a></li>
+ <li class="current"><a href="globals_b.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_c.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_d.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_e.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_i.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_j.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_k.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_m.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_p.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_q.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_r.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_s.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_w.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_x.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_z.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_b.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
+<li>BASE_CLASS
+: <a class="el" href="XMPCommonDefines_8h.html#affa2ae123fa7bf387394d5ba499b1441">XMPCommonDefines.h</a>
+</li>
+<li>BUILDING_XMPCOMMON_LIB
+: <a class="el" href="XMPCommonDefines_8h.html#a5686c8f09ffafbdc3b46817eea895bc2">XMPCommonDefines.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/globals_c.html b/docs/API/globals_c.html
new file mode 100755
index 0000000..0a179b2
--- /dev/null
+++ b/docs/API/globals_c.html
@@ -0,0 +1,85 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>File Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals.html#index__"><span>_</span></a></li>
+ <li><a href="globals_b.html#index_b"><span>b</span></a></li>
+ <li class="current"><a href="globals_c.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_d.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_e.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_i.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_j.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_k.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_m.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_p.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_q.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_r.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_s.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_w.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_x.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_z.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_c.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
+<li>ConvertBoolToXMP_Bool
+: <a class="el" href="XMP__Const_8h.html#ae6037ae90db1ec7d7c988aec7a8319cb">XMP_Const.h</a>
+</li>
+<li>ConvertXMP_BoolToBool
+: <a class="el" href="XMP__Const_8h.html#ade06e740748eefe529211dd891bf68f4">XMP_Const.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/globals_d.html b/docs/API/globals_d.html
new file mode 100755
index 0000000..719d214
--- /dev/null
+++ b/docs/API/globals_d.html
@@ -0,0 +1,82 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>File Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals.html#index__"><span>_</span></a></li>
+ <li><a href="globals_b.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_c.html#index_c"><span>c</span></a></li>
+ <li class="current"><a href="globals_d.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_e.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_i.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_j.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_k.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_m.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_p.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_q.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_r.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_s.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_w.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_x.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_z.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_d.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
+<li>DISABLE_SERIALIZED_IMPORT_EXPORT
+: <a class="el" href="XMP__Environment_8h.html#a6bdd4740fca953d5f1722643d9295634">XMP_Environment.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/globals_defs.html b/docs/API/globals_defs.html
index bd798e6..0cb9e35 100644..100755
--- a/docs/API/globals_defs.html
+++ b/docs/API/globals_defs.html
@@ -1,252 +1,93 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: Class Members</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
+<title>File Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
- <li><a href="files.html"><span>File&nbsp;List</span></a></li>
- <li class="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
<li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li class="current"><a href="globals_defs.html"><span>Defines</span></a></li>
+ <li class="current"><a href="globals_defs.html"><span>Macros</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
- <li><a href="#index_k"><span>k</span></a></li>
- <li><a href="#index_x"><span>x</span></a></li>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li class="current"><a href="globals_defs.html#index__"><span>_</span></a></li>
+ <li><a href="globals_defs_b.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_defs_c.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_defs_d.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_defs_e.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_defs_i.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_defs_j.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_defs_k.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_defs_p.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_defs_q.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_defs_r.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_defs_s.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_defs_w.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_defs_x.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_defs_z.html#index_z"><span>z</span></a></li>
</ul>
</div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_defs.html','');});
+</script>
+<div id="doc-content">
<div class="contents">
-&nbsp;
-
-<h3><a class="anchor" id="index_k">- k -</a></h3><ul>
-<li>kXMP_ArrayLastItem
-: <a class="el" href="XMP__Const_8h.html#a9549b9a138a896257b5a70176d125317">XMP_Const.h</a>
-</li>
-<li>kXMP_FalseStr
-: <a class="el" href="XMP__Const_8h.html#a2dc55b533ed63ed7ff0c3be16a97e278">XMP_Const.h</a>
-</li>
-<li>kXMP_NoOptions
-: <a class="el" href="XMP__Const_8h.html#aff1df9f3cf050f8b8d3a574db3c3326b">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_DC
-: <a class="el" href="XMP__Const_8h.html#a44453f0d0a1dd295d41722c2387b36fa">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_EXIF
-: <a class="el" href="XMP__Const_8h.html#ad12182e1df1652f56b5eec60c1fcdd8f">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_IPTCCore
-: <a class="el" href="XMP__Const_8h.html#ab794d3d798daf75a963398347dcbb79b">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_IPTCExt
-: <a class="el" href="XMP__Const_8h.html#a12ca045d4c12992ec8f6c1003523de20">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_PDF
-: <a class="el" href="XMP__Const_8h.html#a0bcb67d0dd0922504e3da7ca5c40c82a">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_Photoshop
-: <a class="el" href="XMP__Const_8h.html#aa1a6f38ebfcdb281c5bf2809859167c7">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_RDF
-: <a class="el" href="XMP__Const_8h.html#a276fac0f70893607afa3f09030ad84c7">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_TIFF
-: <a class="el" href="XMP__Const_8h.html#a673355818b7b9224e8fec0fbc60ba00c">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_XML
-: <a class="el" href="XMP__Const_8h.html#a97564c70460d1f235c8a41b8ac40cfe9">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_XMP
-: <a class="el" href="XMP__Const_8h.html#a030875c9dc0861c9251a3374ca14a376">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_XMP_BJ
-: <a class="el" href="XMP__Const_8h.html#a308e156c325618acb2172e550929ebee">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_XMP_Dimensions
-: <a class="el" href="XMP__Const_8h.html#a9618e013619aa92ebc808b62243d2ba8">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_XMP_IdentifierQual
-: <a class="el" href="XMP__Const_8h.html#ab466db52a4b85cecfa04710682c1e671">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_XMP_Image
-: <a class="el" href="XMP__Const_8h.html#a935641acc7d01e782ad7a457a7ff338b">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_XMP_MM
-: <a class="el" href="XMP__Const_8h.html#ac67379a9ffa425d0d7976a51c4f2f754">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_XMP_ResourceEvent
-: <a class="el" href="XMP__Const_8h.html#a861613273127156050b456eee11f6b0a">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_XMP_ResourceRef
-: <a class="el" href="XMP__Const_8h.html#a9bf51f2653400645f7b5087e8c4e1c77">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_XMP_Rights
-: <a class="el" href="XMP__Const_8h.html#ae52d761e5a4fc8c8499215d2f3d82b90">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_XMP_ST_Job
-: <a class="el" href="XMP__Const_8h.html#ac7dc4d65bcbba2862e410cc8cfdff6f6">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_XMP_ST_Version
-: <a class="el" href="XMP__Const_8h.html#ab4923bed71ab29c6aa88debe8816c0a2">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_XMP_T
-: <a class="el" href="XMP__Const_8h.html#a0a2d9c5f7beb27553214a7ad1df4f27e">XMP_Const.h</a>
-</li>
-<li>kXMP_NS_XMP_T_PG
-: <a class="el" href="XMP__Const_8h.html#a39afb495ffb24bb3082493c6811e65d0">XMP_Const.h</a>
-</li>
-<li>kXMP_TrueStr
-: <a class="el" href="XMP__Const_8h.html#a4c39e0131b0e3d7db66e1cfa82b67141">XMP_Const.h</a>
-</li>
-<li>kXMP_UseNullTermination
-: <a class="el" href="XMP__Const_8h.html#a8283c9596c03b6d626d5a2b7a90e23ab">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_UnknownLength
-: <a class="el" href="XMP__Const_8h.html#ae0901aabcf619f17cff03f08e5ed3658">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_UnknownOffset
-: <a class="el" href="XMP__Const_8h.html#a6a9b77b60c63781a8776f10880856bf4">XMP_Const.h</a>
-</li>
-</ul>
+&#160;
-
-<h3><a class="anchor" id="index_x">- x -</a></h3><ul>
-<li>XMP_ArrayIsAlternate
-: <a class="el" href="XMP__Const_8h.html#a86bc34c4e64dec75618c348163a88720">XMP_Const.h</a>
-</li>
-<li>XMP_ArrayIsAltText
-: <a class="el" href="XMP__Const_8h.html#abbef21da7bce1491f780586c3e01cd9e">XMP_Const.h</a>
-</li>
-<li>XMP_ArrayIsOrdered
-: <a class="el" href="XMP__Const_8h.html#a72c7077f3ff3e39804a899533867327d">XMP_Const.h</a>
-</li>
-<li>XMP_ArrayIsUnordered
-: <a class="el" href="XMP__Const_8h.html#a8d763b3d36c7067cd7bccd32d4066b43">XMP_Const.h</a>
-</li>
-<li>XMP_CharFormIs16Bit
-: <a class="el" href="XMP__Const_8h.html#aa7596216164335f926cb91d600cddf99">XMP_Const.h</a>
-</li>
-<li>XMP_CharFormIs32Bit
-: <a class="el" href="XMP__Const_8h.html#a1e99ef08266943f52f5c649ab2836ddf">XMP_Const.h</a>
-</li>
-<li>XMP_CharFormIsBigEndian
-: <a class="el" href="XMP__Const_8h.html#aba2539629b8d238fc56a1901dd07ebca">XMP_Const.h</a>
+<h3><a class="anchor" id="index__"></a>- _ -</h3><ul>
+<li>__NOTHROW__
+: <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">XMPCommonDefines.h</a>
</li>
-<li>XMP_CharFormIsLittleEndian
-: <a class="el" href="XMP__Const_8h.html#a906ec1cd2fb1631c1b5ad9ccdf9c0a6b">XMP_Const.h</a>
+<li>__WXMP_Common_hpp__
+: <a class="el" href="WXMP__Common_8hpp.html#a92bfba5db10b3ea02b3ad736c8e11dc7">WXMP_Common.hpp</a>
</li>
-<li>XMP_CharFromSerializeForm
-: <a class="el" href="XMP__Const_8h.html#a93e7900e6c9fb4057dfd685b5201057d">XMP_Const.h</a>
+<li>__WXMPIterator_hpp__
+: <a class="el" href="WXMPIterator_8hpp.html#a6beaeb3189c8f5675a7ad399a3d443c7">WXMPIterator.hpp</a>
</li>
-<li>XMP_CharToSerializeForm
-: <a class="el" href="XMP__Const_8h.html#a8f522964919b742b4138c79611997bae">XMP_Const.h</a>
+<li>__WXMPMeta_hpp__
+: <a class="el" href="WXMPMeta_8hpp.html#afff47bd31a726ad7c0b3578a0d8bb9d7">WXMPMeta.hpp</a>
</li>
-<li>XMP_ClearOption
-: <a class="el" href="XMP__Const_8h.html#a10c3c9b1b6e266b0b4eb6abe7b03b7d8">XMP_Const.h</a>
-</li>
-<li>XMP_GetCharSize
-: <a class="el" href="XMP__Const_8h.html#a85bbf023b1b799c3c20176aa289d32b0">XMP_Const.h</a>
-</li>
-<li>XMP_NodeIsSchema
-: <a class="el" href="XMP__Const_8h.html#a12870d8442720ce5230791abc26f9597">XMP_Const.h</a>
-</li>
-<li>XMP_OptionIsClear
-: <a class="el" href="XMP__Const_8h.html#a1d41f53bd1d5c88fad8322ce15e39516">XMP_Const.h</a>
-</li>
-<li>XMP_OptionIsSet
-: <a class="el" href="XMP__Const_8h.html#aba3edaa921326c7916adb0b70b1bcfb4">XMP_Const.h</a>
-</li>
-<li>XMP_PropHasLang
-: <a class="el" href="XMP__Const_8h.html#a7dc82df90f45b0d746b67d8fdc529c83">XMP_Const.h</a>
-</li>
-<li>XMP_PropHasQualifiers
-: <a class="el" href="XMP__Const_8h.html#a10828aa191aa666aa1166c27beead2a6">XMP_Const.h</a>
-</li>
-<li>XMP_PropIsAlias
-: <a class="el" href="XMP__Const_8h.html#a193b1414fa5312da2aa1d833b85612d0">XMP_Const.h</a>
-</li>
-<li>XMP_PropIsArray
-: <a class="el" href="XMP__Const_8h.html#a98ae521b621cfa3611211e3922a0fce8">XMP_Const.h</a>
-</li>
-<li>XMP_PropIsQualifier
-: <a class="el" href="XMP__Const_8h.html#a8d1b4da6b3cb3a67bf4f8e79352eeeaa">XMP_Const.h</a>
-</li>
-<li>XMP_PropIsSimple
-: <a class="el" href="XMP__Const_8h.html#a510b75338bd488ddd8d9bd4e326806f9">XMP_Const.h</a>
-</li>
-<li>XMP_PropIsStruct
-: <a class="el" href="XMP__Const_8h.html#aebea8c35e09da7db613e27d0e3ce945f">XMP_Const.h</a>
-</li>
-<li>XMP_SetOption
-: <a class="el" href="XMP__Const_8h.html#a69c4d1b80c4dd581366e0c60209ef612">XMP_Const.h</a>
-</li>
-<li>XMP_TestOption
-: <a class="el" href="XMP__Const_8h.html#aa31596e850cb6b208f5920833d67b9f1">XMP_Const.h</a>
+<li>__WXMPUtils_hpp__
+: <a class="el" href="WXMPUtils_8hpp.html#a83a5fcd7213385cfdb6b4d4eb85f1162">WXMPUtils.hpp</a>
</li>
</ul>
-</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
</body>
</html>
diff --git a/docs/API/globals_defs.js b/docs/API/globals_defs.js
new file mode 100755
index 0000000..7b84f73
--- /dev/null
+++ b/docs/API/globals_defs.js
@@ -0,0 +1,18 @@
+var globals_defs =
+[
+ [ "_", "globals_defs.html", null ],
+ [ "b", "globals_defs_b.html", null ],
+ [ "c", "globals_defs_c.html", null ],
+ [ "d", "globals_defs_d.html", null ],
+ [ "e", "globals_defs_e.html", null ],
+ [ "i", "globals_defs_i.html", null ],
+ [ "j", "globals_defs_j.html", null ],
+ [ "k", "globals_defs_k.html", null ],
+ [ "p", "globals_defs_p.html", null ],
+ [ "q", "globals_defs_q.html", null ],
+ [ "r", "globals_defs_r.html", null ],
+ [ "s", "globals_defs_s.html", null ],
+ [ "w", "globals_defs_w.html", null ],
+ [ "x", "globals_defs_x.html", null ],
+ [ "z", "globals_defs_z.html", null ]
+]; \ No newline at end of file
diff --git a/docs/API/globals_defs_b.html b/docs/API/globals_defs_b.html
new file mode 100755
index 0000000..e7fe6e2
--- /dev/null
+++ b/docs/API/globals_defs_b.html
@@ -0,0 +1,84 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>File Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li class="current"><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_defs.html#index__"><span>_</span></a></li>
+ <li class="current"><a href="globals_defs_b.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_defs_c.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_defs_d.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_defs_e.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_defs_i.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_defs_j.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_defs_k.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_defs_p.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_defs_q.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_defs_r.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_defs_s.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_defs_w.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_defs_x.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_defs_z.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_defs_b.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
+<li>BASE_CLASS
+: <a class="el" href="XMPCommonDefines_8h.html#affa2ae123fa7bf387394d5ba499b1441">XMPCommonDefines.h</a>
+</li>
+<li>BUILDING_XMPCOMMON_LIB
+: <a class="el" href="XMPCommonDefines_8h.html#a5686c8f09ffafbdc3b46817eea895bc2">XMPCommonDefines.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/globals_defs_c.html b/docs/API/globals_defs_c.html
new file mode 100755
index 0000000..5e46f71
--- /dev/null
+++ b/docs/API/globals_defs_c.html
@@ -0,0 +1,84 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>File Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li class="current"><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_defs.html#index__"><span>_</span></a></li>
+ <li><a href="globals_defs_b.html#index_b"><span>b</span></a></li>
+ <li class="current"><a href="globals_defs_c.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_defs_d.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_defs_e.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_defs_i.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_defs_j.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_defs_k.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_defs_p.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_defs_q.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_defs_r.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_defs_s.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_defs_w.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_defs_x.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_defs_z.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_defs_c.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
+<li>ConvertBoolToXMP_Bool
+: <a class="el" href="XMP__Const_8h.html#ae6037ae90db1ec7d7c988aec7a8319cb">XMP_Const.h</a>
+</li>
+<li>ConvertXMP_BoolToBool
+: <a class="el" href="XMP__Const_8h.html#ade06e740748eefe529211dd891bf68f4">XMP_Const.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/globals_defs_d.html b/docs/API/globals_defs_d.html
new file mode 100755
index 0000000..9add8d4
--- /dev/null
+++ b/docs/API/globals_defs_d.html
@@ -0,0 +1,81 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>File Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li class="current"><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_defs.html#index__"><span>_</span></a></li>
+ <li><a href="globals_defs_b.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_defs_c.html#index_c"><span>c</span></a></li>
+ <li class="current"><a href="globals_defs_d.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_defs_e.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_defs_i.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_defs_j.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_defs_k.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_defs_p.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_defs_q.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_defs_r.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_defs_s.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_defs_w.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_defs_x.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_defs_z.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_defs_d.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
+<li>DISABLE_SERIALIZED_IMPORT_EXPORT
+: <a class="el" href="XMP__Environment_8h.html#a6bdd4740fca953d5f1722643d9295634">XMP_Environment.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/globals_defs_e.html b/docs/API/globals_defs_e.html
new file mode 100755
index 0000000..14fe90e
--- /dev/null
+++ b/docs/API/globals_defs_e.html
@@ -0,0 +1,84 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>File Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li class="current"><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_defs.html#index__"><span>_</span></a></li>
+ <li><a href="globals_defs_b.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_defs_c.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_defs_d.html#index_d"><span>d</span></a></li>
+ <li class="current"><a href="globals_defs_e.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_defs_i.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_defs_j.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_defs_k.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_defs_p.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_defs_q.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_defs_r.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_defs_s.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_defs_w.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_defs_x.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_defs_z.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_defs_e.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
+<li>ENABLE_CPP_DOM_MODEL
+: <a class="el" href="XMPCoreDefines_8h.html#a6919ea0ee288c12c640a170d34d35cbe">XMPCoreDefines.h</a>
+</li>
+<li>EXPAND_MACRO
+: <a class="el" href="XMPCommonDefines_8h.html#a4ec864140f86759daee62dd337b61501">XMPCommonDefines.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/globals_defs_i.html b/docs/API/globals_defs_i.html
new file mode 100755
index 0000000..85ff40c
--- /dev/null
+++ b/docs/API/globals_defs_i.html
@@ -0,0 +1,153 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>File Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li class="current"><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_defs.html#index__"><span>_</span></a></li>
+ <li><a href="globals_defs_b.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_defs_c.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_defs_d.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_defs_e.html#index_e"><span>e</span></a></li>
+ <li class="current"><a href="globals_defs_i.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_defs_j.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_defs_k.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_defs_p.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_defs_q.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_defs_r.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_defs_s.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_defs_w.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_defs_x.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_defs_z.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_defs_i.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
+<li>IARRAYNODE_VERSION
+: <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a1f8464a97acb8671e6cc2a466955d45d">XMPCoreLatestInterfaceVersions.h</a>
+</li>
+<li>ICLIENTDOMPARSER_VERSION
+: <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a64636b4e59a6212968ad30494675603e">XMPCoreLatestInterfaceVersions.h</a>
+</li>
+<li>ICLIENTDOMSERIALIZER_VERSION
+: <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#aa928953eda71cda88699483e1fca4526">XMPCoreLatestInterfaceVersions.h</a>
+</li>
+<li>ICOMPOSITENODE_VERSION
+: <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#aefe5b8d014bd0f2ca4933a16572b51df">XMPCoreLatestInterfaceVersions.h</a>
+</li>
+<li>ICONFIGURABLE_VERSION
+: <a class="el" href="XMPCommonLatestInterfaceVersions_8h.html#a829031e337c57225307b0be2d229a8b4">XMPCommonLatestInterfaceVersions.h</a>
+</li>
+<li>ICONFIGURATIONMANAGER_VERSION
+: <a class="el" href="XMPCommonLatestInterfaceVersions_8h.html#a21492cbe0c77bbbad967232b377855c1">XMPCommonLatestInterfaceVersions.h</a>
+</li>
+<li>ICORECONFIGURATIONMANAGER_VERSION
+: <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#adf7818c7264e7a80b1b3c5a5b283c47c">XMPCoreLatestInterfaceVersions.h</a>
+</li>
+<li>ICOREOBJECTFACTORY_VERSION
+: <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a3d28ba37018741b3794789e5edc6e27e">XMPCoreLatestInterfaceVersions.h</a>
+</li>
+<li>IDOMIMPLEMENTATIONREGISTRY_VERSION
+: <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#aa34dc59f9267eceb6d51235cd778292e">XMPCoreLatestInterfaceVersions.h</a>
+</li>
+<li>IDOMPARSER_VERSION
+: <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a813f82b55a0bb68c1553e8b38592e705">XMPCoreLatestInterfaceVersions.h</a>
+</li>
+<li>IDOMSERIALIZER_VERSION
+: <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a52d6e44f27f19214b38959683d6cc829">XMPCoreLatestInterfaceVersions.h</a>
+</li>
+<li>IERROR_VERSION
+: <a class="el" href="XMPCommonLatestInterfaceVersions_8h.html#a4d8312c0c69be3f57e5f14b7b2d1224d">XMPCommonLatestInterfaceVersions.h</a>
+</li>
+<li>IERRORNOTIFIER_VERSION
+: <a class="el" href="XMPCommonLatestInterfaceVersions_8h.html#ad84704e1c2910ca9d71d41183c3a378c">XMPCommonLatestInterfaceVersions.h</a>
+</li>
+<li>IMEMORYALLOCATOR_VERSION
+: <a class="el" href="XMPCommonLatestInterfaceVersions_8h.html#a5c5712b51cebbbdbf40cc691b4123209">XMPCommonLatestInterfaceVersions.h</a>
+</li>
+<li>IMETADATA_VERSION
+: <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#af7d51c3ccf825fc82fa4a2a6cca26bc8">XMPCoreLatestInterfaceVersions.h</a>
+</li>
+<li>INAMESPACEPREFIXMAP_VERSION
+: <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a79e1c8ec2c46a2cbee3ba9cfd0d78ad4">XMPCoreLatestInterfaceVersions.h</a>
+</li>
+<li>INODE_VERSION
+: <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#aff2b1eabe2ac90a68ba3690930494a17">XMPCoreLatestInterfaceVersions.h</a>
+</li>
+<li>INODEITERATOR_VERSION
+: <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#afe7756c974951e8e78be1cfb96aacc8b">XMPCoreLatestInterfaceVersions.h</a>
+</li>
+<li>InvokeCheck
+: <a class="el" href="WXMP__Common_8hpp.html#a58d0e4857f5a40d6a82eb480832d068e">WXMP_Common.hpp</a>
+</li>
+<li>IOBJECTFACTORY_VERSION
+: <a class="el" href="XMPCommonLatestInterfaceVersions_8h.html#a6844f2fb727f99e352e61045154eba8b">XMPCommonLatestInterfaceVersions.h</a>
+</li>
+<li>IPATH_VERSION
+: <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#adc9fb16e479a79e35a9dc58e166fcbad">XMPCoreLatestInterfaceVersions.h</a>
+</li>
+<li>IPATHSEGMENT_VERSION
+: <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a42cb9bdb3894ac77ff614349e5c371e5">XMPCoreLatestInterfaceVersions.h</a>
+</li>
+<li>ISIMPLENODE_VERSION
+: <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a799da65cf5811707628bb2681a4545ec">XMPCoreLatestInterfaceVersions.h</a>
+</li>
+<li>ISTRUCTURENODE_VERSION
+: <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a28325920d39a80ba79dd3774ce056f45">XMPCoreLatestInterfaceVersions.h</a>
+</li>
+<li>IUTF8STRING_VERSION
+: <a class="el" href="XMPCommonLatestInterfaceVersions_8h.html#a884c112243a29a7b0388b1954efc317b">XMPCommonLatestInterfaceVersions.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/globals_defs_j.html b/docs/API/globals_defs_j.html
new file mode 100755
index 0000000..0075f00
--- /dev/null
+++ b/docs/API/globals_defs_j.html
@@ -0,0 +1,84 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>File Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li class="current"><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_defs.html#index__"><span>_</span></a></li>
+ <li><a href="globals_defs_b.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_defs_c.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_defs_d.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_defs_e.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_defs_i.html#index_i"><span>i</span></a></li>
+ <li class="current"><a href="globals_defs_j.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_defs_k.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_defs_p.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_defs_q.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_defs_r.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_defs_s.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_defs_w.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_defs_x.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_defs_z.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_defs_j.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_j"></a>- j -</h3><ul>
+<li>JOIN_CLASSNAME_WITH_VERSION_NUMBER
+: <a class="el" href="XMPCommonDefines_8h.html#a944a0a31a728943ffb6f1bf62712649a">XMPCommonDefines.h</a>
+</li>
+<li>JOIN_CLASSNAME_WITH_VERSION_NUMBER_INT
+: <a class="el" href="XMPCommonDefines_8h.html#aae4268f82f1d5d97bb483fef36f252ee">XMPCommonDefines.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/globals_defs_k.html b/docs/API/globals_defs_k.html
new file mode 100755
index 0000000..caa0f1a
--- /dev/null
+++ b/docs/API/globals_defs_k.html
@@ -0,0 +1,273 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>File Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li class="current"><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_defs.html#index__"><span>_</span></a></li>
+ <li><a href="globals_defs_b.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_defs_c.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_defs_d.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_defs_e.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_defs_i.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_defs_j.html#index_j"><span>j</span></a></li>
+ <li class="current"><a href="globals_defs_k.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_defs_p.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_defs_q.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_defs_r.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_defs_s.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_defs_w.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_defs_x.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_defs_z.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_defs_k.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_k"></a>- k -</h3><ul>
+<li>kXMP_ArrayLastItem
+: <a class="el" href="XMP__Const_8h.html#a9549b9a138a896257b5a70176d125317">XMP_Const.h</a>
+</li>
+<li>kXMP_FalseStr
+: <a class="el" href="XMP__Const_8h.html#a2dc55b533ed63ed7ff0c3be16a97e278">XMP_Const.h</a>
+</li>
+<li>kXMP_NoOptions
+: <a class="el" href="XMP__Const_8h.html#aff1df9f3cf050f8b8d3a574db3c3326b">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_AdobeStockPhoto
+: <a class="el" href="XMP__Const_8h.html#a9d5b4ecd6214d080645718af1db77650">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_AEScart
+: <a class="el" href="XMP__Const_8h.html#a1245d5cd54d23588e74b883d9fda6a93">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_ASF
+: <a class="el" href="XMP__Const_8h.html#a3ef3c4c015092f8a4b94c4f8895cd955">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_BWF
+: <a class="el" href="XMP__Const_8h.html#a7837e8541712f9f7d5118df1b0905946">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_CameraRaw
+: <a class="el" href="XMP__Const_8h.html#a19da1e091dee6b6b471c05f1b73d6b3a">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_CreatorAtom
+: <a class="el" href="XMP__Const_8h.html#ad9c3d81fdbaf57f20bdf92d263d9d71a">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_DC
+: <a class="el" href="XMP__Const_8h.html#a44453f0d0a1dd295d41722c2387b36fa">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_DICOM
+: <a class="el" href="XMP__Const_8h.html#a10f6b8c9d551ec50ea536026b2c2b315">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_DM
+: <a class="el" href="XMP__Const_8h.html#a66fc3e8331cc92dc01cf2bbe74510baa">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_EXIF
+: <a class="el" href="XMP__Const_8h.html#ad12182e1df1652f56b5eec60c1fcdd8f">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_EXIF_Aux
+: <a class="el" href="XMP__Const_8h.html#ab8f5ed7baf102b78c816f2e86e142cfd">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_ExifEX
+: <a class="el" href="XMP__Const_8h.html#abff75489a4300787e251f60694497ca8">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_IPTCCore
+: <a class="el" href="XMP__Const_8h.html#ab794d3d798daf75a963398347dcbb79b">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_IPTCExt
+: <a class="el" href="XMP__Const_8h.html#a12ca045d4c12992ec8f6c1003523de20">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_iXML
+: <a class="el" href="XMP__Const_8h.html#acc8062c03735e764865786f6064d06ba">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_JP2K
+: <a class="el" href="XMP__Const_8h.html#a7426c6b7314b9b29b443f7f401e49be0">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_JPEG
+: <a class="el" href="XMP__Const_8h.html#a35020e150227e9b8cea205958616f439">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_PDF
+: <a class="el" href="XMP__Const_8h.html#a0bcb67d0dd0922504e3da7ca5c40c82a">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_PDFA_Extension
+: <a class="el" href="XMP__Const_8h.html#ac47561b29c7d5e852e014e1391e38591">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_PDFA_Field
+: <a class="el" href="XMP__Const_8h.html#a4f8605dd83a33b8ef13cb8b06f356b2e">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_PDFA_ID
+: <a class="el" href="XMP__Const_8h.html#ae29f21b2ae6b86fdefc50c92c3157683">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_PDFA_Property
+: <a class="el" href="XMP__Const_8h.html#a66eb8f71efe1b64635ab41ee86673436">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_PDFA_Schema
+: <a class="el" href="XMP__Const_8h.html#acc810bb3c0fbab74ba54fca90153e1a0">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_PDFA_Type
+: <a class="el" href="XMP__Const_8h.html#a02fa37c61718c9712000b834df5d4fdc">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_PDFX
+: <a class="el" href="XMP__Const_8h.html#a74c2a786c7ac349f4226c9694e3be641">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_PDFX_ID
+: <a class="el" href="XMP__Const_8h.html#a77d8c46d01eab6760579ffa049c80724">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_Photoshop
+: <a class="el" href="XMP__Const_8h.html#aa1a6f38ebfcdb281c5bf2809859167c7">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_PLUS
+: <a class="el" href="XMP__Const_8h.html#a650c052a916eefa95f0d0ff7a34eb9a0">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_PNG
+: <a class="el" href="XMP__Const_8h.html#abaf8c3257026b73a8d50cf43fa488c5d">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_PSAlbum
+: <a class="el" href="XMP__Const_8h.html#a465d0a0810455207ffa0346f9c462743">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_RDF
+: <a class="el" href="XMP__Const_8h.html#a276fac0f70893607afa3f09030ad84c7">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_RIFFINFO
+: <a class="el" href="XMP__Const_8h.html#ad1bc498d01dcc4a690e007b68a695e3a">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_Script
+: <a class="el" href="XMP__Const_8h.html#a57ce38d4e4b01739c939d8a46e23895e">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_SWF
+: <a class="el" href="XMP__Const_8h.html#a8749291bd81f9cb64535b10ef996cb73">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_TIFF
+: <a class="el" href="XMP__Const_8h.html#a673355818b7b9224e8fec0fbc60ba00c">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_WAV
+: <a class="el" href="XMP__Const_8h.html#ae802d5ee6fe4802eb5ad692a0b8385ea">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_XML
+: <a class="el" href="XMP__Const_8h.html#a97564c70460d1f235c8a41b8ac40cfe9">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_XMP
+: <a class="el" href="XMP__Const_8h.html#a030875c9dc0861c9251a3374ca14a376">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_XMP_BJ
+: <a class="el" href="XMP__Const_8h.html#a308e156c325618acb2172e550929ebee">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_XMP_Dimensions
+: <a class="el" href="XMP__Const_8h.html#a9618e013619aa92ebc808b62243d2ba8">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_XMP_Font
+: <a class="el" href="XMP__Const_8h.html#a49e25beee90220541ecfc7ac92fb78b5">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_XMP_G_IMG
+: <a class="el" href="XMP__Const_8h.html#a2663db91a956937f0921f67342a31646">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_XMP_Graphics
+: <a class="el" href="XMP__Const_8h.html#a285d88d6d95ce0bfed19bb41c5be485f">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_XMP_IdentifierQual
+: <a class="el" href="XMP__Const_8h.html#ab466db52a4b85cecfa04710682c1e671">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_XMP_Image
+: <a class="el" href="XMP__Const_8h.html#a935641acc7d01e782ad7a457a7ff338b">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_XMP_ManifestItem
+: <a class="el" href="XMP__Const_8h.html#ac91c21a77be4fdc3d8be26fe37b003c8">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_XMP_MM
+: <a class="el" href="XMP__Const_8h.html#ac67379a9ffa425d0d7976a51c4f2f754">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_XMP_Note
+: <a class="el" href="XMP__Const_8h.html#af7950d7399839f17309a9b944a09be5e">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_XMP_PagedFile
+: <a class="el" href="XMP__Const_8h.html#ac5e9bcf97c425cf61d6f466358aab1ca">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_XMP_ResourceEvent
+: <a class="el" href="XMP__Const_8h.html#a861613273127156050b456eee11f6b0a">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_XMP_ResourceRef
+: <a class="el" href="XMP__Const_8h.html#a9bf51f2653400645f7b5087e8c4e1c77">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_XMP_Rights
+: <a class="el" href="XMP__Const_8h.html#ae52d761e5a4fc8c8499215d2f3d82b90">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_XMP_ST_Job
+: <a class="el" href="XMP__Const_8h.html#ac7dc4d65bcbba2862e410cc8cfdff6f6">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_XMP_ST_Version
+: <a class="el" href="XMP__Const_8h.html#ab4923bed71ab29c6aa88debe8816c0a2">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_XMP_T
+: <a class="el" href="XMP__Const_8h.html#a0a2d9c5f7beb27553214a7ad1df4f27e">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_XMP_T_PG
+: <a class="el" href="XMP__Const_8h.html#a39afb495ffb24bb3082493c6811e65d0">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_XMP_Text
+: <a class="el" href="XMP__Const_8h.html#a5e56ed5d1dfcbf69ddd9cdae6eea85f7">XMP_Const.h</a>
+</li>
+<li>kXMP_SchemaNode
+: <a class="el" href="XMP__Const_8h.html#a56197f91b537a0c2b5b9aadbcb404545">XMP_Const.h</a>
+</li>
+<li>kXMP_TrueStr
+: <a class="el" href="XMP__Const_8h.html#a4c39e0131b0e3d7db66e1cfa82b67141">XMP_Const.h</a>
+</li>
+<li>kXMP_UseNullTermination
+: <a class="el" href="XMP__Const_8h.html#a8283c9596c03b6d626d5a2b7a90e23ab">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_UnknownLength
+: <a class="el" href="XMP__Const_8h.html#ae0901aabcf619f17cff03f08e5ed3658">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_UnknownOffset
+: <a class="el" href="XMP__Const_8h.html#a6a9b77b60c63781a8776f10880856bf4">XMP_Const.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/globals_defs_p.html b/docs/API/globals_defs_p.html
new file mode 100755
index 0000000..eb4f872
--- /dev/null
+++ b/docs/API/globals_defs_p.html
@@ -0,0 +1,81 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>File Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li class="current"><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_defs.html#index__"><span>_</span></a></li>
+ <li><a href="globals_defs_b.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_defs_c.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_defs_d.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_defs_e.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_defs_i.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_defs_j.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_defs_k.html#index_k"><span>k</span></a></li>
+ <li class="current"><a href="globals_defs_p.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_defs_q.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_defs_r.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_defs_s.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_defs_w.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_defs_x.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_defs_z.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_defs_p.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
+<li>PropagateException
+: <a class="el" href="WXMP__Common_8hpp.html#a5dfbc13f3139cae2812a1cf0c979999c">WXMP_Common.hpp</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/globals_defs_q.html b/docs/API/globals_defs_q.html
new file mode 100755
index 0000000..196f1e4
--- /dev/null
+++ b/docs/API/globals_defs_q.html
@@ -0,0 +1,84 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>File Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li class="current"><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_defs.html#index__"><span>_</span></a></li>
+ <li><a href="globals_defs_b.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_defs_c.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_defs_d.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_defs_e.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_defs_i.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_defs_j.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_defs_k.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_defs_p.html#index_p"><span>p</span></a></li>
+ <li class="current"><a href="globals_defs_q.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_defs_r.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_defs_s.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_defs_w.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_defs_x.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_defs_z.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_defs_q.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_q"></a>- q -</h3><ul>
+<li>QUOTEME
+: <a class="el" href="XMPCommonDefines_8h.html#a4dd82e6c008275864ab4059ce2e2e4e9">XMPCommonDefines.h</a>
+</li>
+<li>QUOTEME2
+: <a class="el" href="XMPCommonDefines_8h.html#a1fd06a6a11b9c1c9d7998e8ef08d0c77">XMPCommonDefines.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/globals_defs_r.html b/docs/API/globals_defs_r.html
new file mode 100755
index 0000000..9185246
--- /dev/null
+++ b/docs/API/globals_defs_r.html
@@ -0,0 +1,81 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>File Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li class="current"><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_defs.html#index__"><span>_</span></a></li>
+ <li><a href="globals_defs_b.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_defs_c.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_defs_d.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_defs_e.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_defs_i.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_defs_j.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_defs_k.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_defs_p.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_defs_q.html#index_q"><span>q</span></a></li>
+ <li class="current"><a href="globals_defs_r.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_defs_s.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_defs_w.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_defs_x.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_defs_z.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_defs_r.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
+<li>REQ_FRIEND_CLASS_DECLARATION
+: <a class="el" href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">XMPCommonDefines.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/globals_defs_s.html b/docs/API/globals_defs_s.html
new file mode 100755
index 0000000..4303299
--- /dev/null
+++ b/docs/API/globals_defs_s.html
@@ -0,0 +1,84 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>File Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li class="current"><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_defs.html#index__"><span>_</span></a></li>
+ <li><a href="globals_defs_b.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_defs_c.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_defs_d.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_defs_e.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_defs_i.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_defs_j.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_defs_k.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_defs_p.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_defs_q.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_defs_r.html#index_r"><span>r</span></a></li>
+ <li class="current"><a href="globals_defs_s.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_defs_w.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_defs_x.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_defs_z.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_defs_s.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<li>SOURCE_COMPILING_XMPCOMMON_LIB
+: <a class="el" href="XMPCommonDefines_8h.html#a3ad5c0d7b537a67fc621dd30670397df">XMPCommonDefines.h</a>
+</li>
+<li>SUPPORT_VARIADIC_TEMPLATES
+: <a class="el" href="XMPCommonDefines_8h.html#ae1dbf35f9d0d606368d149565ca04006">XMPCommonDefines.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/globals_defs_w.html b/docs/API/globals_defs_w.html
new file mode 100755
index 0000000..dcd20a7
--- /dev/null
+++ b/docs/API/globals_defs_w.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>File Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li class="current"><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_defs.html#index__"><span>_</span></a></li>
+ <li><a href="globals_defs_b.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_defs_c.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_defs_d.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_defs_e.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_defs_i.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_defs_j.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_defs_k.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_defs_p.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_defs_q.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_defs_r.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_defs_s.html#index_s"><span>s</span></a></li>
+ <li class="current"><a href="globals_defs_w.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_defs_x.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_defs_z.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_defs_w.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
+<li>WrapCheckBool
+: <a class="el" href="WXMP__Common_8hpp.html#a31e0519b68ec7cb1f4e54cd480dbc6bd">WXMP_Common.hpp</a>
+</li>
+<li>WrapCheckDocOpsRef
+: <a class="el" href="WXMP__Common_8hpp.html#a00bbfd8bed08cc3ef59534e66a7e55f8">WXMP_Common.hpp</a>
+</li>
+<li>WrapCheckFloat
+: <a class="el" href="WXMP__Common_8hpp.html#a0f0d9f01db5db9c03a3432d3fb43b86a">WXMP_Common.hpp</a>
+</li>
+<li>WrapCheckFormat
+: <a class="el" href="WXMP__Common_8hpp.html#a75478cb5e5f458cd440d87c650dd3673">WXMP_Common.hpp</a>
+</li>
+<li>WrapCheckIndex
+: <a class="el" href="WXMP__Common_8hpp.html#ae20f3a4940eeddcf29a174c86be91788">WXMP_Common.hpp</a>
+</li>
+<li>WrapCheckInt32
+: <a class="el" href="WXMP__Common_8hpp.html#a18b3cd640d64484f12de7f0367d4ccb2">WXMP_Common.hpp</a>
+</li>
+<li>WrapCheckInt64
+: <a class="el" href="WXMP__Common_8hpp.html#a22af7eda5280ca99f2c2e48b20ee4c74">WXMP_Common.hpp</a>
+</li>
+<li>WrapCheckIterRef
+: <a class="el" href="WXMP__Common_8hpp.html#a08838e2c5bcb3f4547172b4cce27a4a4">WXMP_Common.hpp</a>
+</li>
+<li>WrapCheckMetaRef
+: <a class="el" href="WXMP__Common_8hpp.html#a2cb35fa2967a5bce3686dde786db8210">WXMP_Common.hpp</a>
+</li>
+<li>WrapCheckNewMetadata
+: <a class="el" href="WXMP__Common_8hpp.html#ab7a2f115c6388749a3e20928978d3874">WXMP_Common.hpp</a>
+</li>
+<li>WrapCheckOptions
+: <a class="el" href="WXMP__Common_8hpp.html#ab0186f6247d7b051f1ab263c461c14c0">WXMP_Common.hpp</a>
+</li>
+<li>WrapCheckStatus
+: <a class="el" href="WXMP__Common_8hpp.html#aa5157be6b847c59d15e166d6fc7d392d">WXMP_Common.hpp</a>
+</li>
+<li>WrapCheckTriState
+: <a class="el" href="WXMP__Common_8hpp.html#a3ade7afea8e0dd088c4322680712246a">WXMP_Common.hpp</a>
+</li>
+<li>WrapCheckVoid
+: <a class="el" href="WXMP__Common_8hpp.html#a683fa38b9541eb26f91304087acad44d">WXMP_Common.hpp</a>
+</li>
+<li>WrapCheckXMPFilesRef
+: <a class="el" href="WXMPFiles_8hpp.html#a1411fd7ac45a5f6fa362977c962f6234">WXMPFiles.hpp</a>
+</li>
+<li>WrapNoCheckVoid
+: <a class="el" href="WXMP__Common_8hpp.html#ade570a6b1a2c59e509c71b5e82df6f80">WXMP_Common.hpp</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/globals_defs_x.html b/docs/API/globals_defs_x.html
new file mode 100755
index 0000000..c7a00f1
--- /dev/null
+++ b/docs/API/globals_defs_x.html
@@ -0,0 +1,219 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>File Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li class="current"><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_defs.html#index__"><span>_</span></a></li>
+ <li><a href="globals_defs_b.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_defs_c.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_defs_d.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_defs_e.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_defs_i.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_defs_j.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_defs_k.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_defs_p.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_defs_q.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_defs_r.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_defs_s.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_defs_w.html#index_w"><span>w</span></a></li>
+ <li class="current"><a href="globals_defs_x.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_defs_z.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_defs_x.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_x"></a>- x -</h3><ul>
+<li>XMP_64
+: <a class="el" href="XMP__Environment_8h.html#a69ebf613b248c1e76ae5dbdeee505881">XMP_Environment.h</a>
+</li>
+<li>XMP_ArrayIsAlternate
+: <a class="el" href="XMP__Const_8h.html#a4928f3fcb7c05bf25694b63d95aa6ce7">XMP_Const.h</a>
+</li>
+<li>XMP_ArrayIsAltText
+: <a class="el" href="XMP__Const_8h.html#a57d2bb01a830b278c8e6d1ecdead52c4">XMP_Const.h</a>
+</li>
+<li>XMP_ArrayIsOrdered
+: <a class="el" href="XMP__Const_8h.html#aaace3ec19d70712e4eb16f6d36de9cfb">XMP_Const.h</a>
+</li>
+<li>XMP_ArrayIsUnordered
+: <a class="el" href="XMP__Const_8h.html#a67849593ac3ffe237743d301d94f1449">XMP_Const.h</a>
+</li>
+<li>XMP_CharFormIs16Bit
+: <a class="el" href="XMP__Const_8h.html#a72d86d541447456a08e0d29b57a6ae24">XMP_Const.h</a>
+</li>
+<li>XMP_CharFormIs32Bit
+: <a class="el" href="XMP__Const_8h.html#afd02278cadf2132a8cc1e7188715c860">XMP_Const.h</a>
+</li>
+<li>XMP_CharFormIsBigEndian
+: <a class="el" href="XMP__Const_8h.html#ad799046db4440bf02e2d244372ca913c">XMP_Const.h</a>
+</li>
+<li>XMP_CharFormIsLittleEndian
+: <a class="el" href="XMP__Const_8h.html#a906ec1cd2fb1631c1b5ad9ccdf9c0a6b">XMP_Const.h</a>
+</li>
+<li>XMP_CharFromSerializeForm
+: <a class="el" href="XMP__Const_8h.html#a93e7900e6c9fb4057dfd685b5201057d">XMP_Const.h</a>
+</li>
+<li>XMP_CharToSerializeForm
+: <a class="el" href="XMP__Const_8h.html#a42692697b1951300a6c82665ded8f781">XMP_Const.h</a>
+</li>
+<li>XMP_ClearOption
+: <a class="el" href="XMP__Const_8h.html#a04133ceba1ad7a582aa63c8f4a5abf69">XMP_Const.h</a>
+</li>
+<li>XMP_CTorDTorIntro
+: <a class="el" href="WXMP__Common_8hpp.html#a360e92875f1147e47c365950a6560d6c">WXMP_Common.hpp</a>
+</li>
+<li>XMP_DebugBuild
+: <a class="el" href="XMP__Environment_8h.html#abeb16d5e16e7b2120731acb63ad88e9f">XMP_Environment.h</a>
+</li>
+<li>XMP_GetCharSize
+: <a class="el" href="XMP__Const_8h.html#a017e63e6fcd1ede112e8945c49b339e6">XMP_Const.h</a>
+</li>
+<li>XMP_Inline
+: <a class="el" href="WXMP__Common_8hpp.html#acfcb026582fc145095d3667241515353">WXMP_Common.hpp</a>
+</li>
+<li>XMP_MARKER_EXTENSIBILITY_BACKWARD_COMPATIBILITY
+: <a class="el" href="XMP__Const_8h.html#a44054ee28ca59bd6b5823e4e47479483">XMP_Const.h</a>
+</li>
+<li>XMP_MethodIntro
+: <a class="el" href="WXMP__Common_8hpp.html#a9874672542b6adee728f1176b565c141">WXMP_Common.hpp</a>
+</li>
+<li>XMP_NodeIsSchema
+: <a class="el" href="XMP__Const_8h.html#a18d4769112002d84e2ddd1aba6ef473c">XMP_Const.h</a>
+</li>
+<li>XMP_OptionIsClear
+: <a class="el" href="XMP__Const_8h.html#a1d41f53bd1d5c88fad8322ce15e39516">XMP_Const.h</a>
+</li>
+<li>XMP_OptionIsSet
+: <a class="el" href="XMP__Const_8h.html#a8d8d2810a46a2b171107f4a2387e003d">XMP_Const.h</a>
+</li>
+<li>XMP_PRIVATE
+: <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_Environment.h</a>
+</li>
+<li>XMP_PropHasLang
+: <a class="el" href="XMP__Const_8h.html#adc4bc1a5da8c0a3d1a77366e4803680f">XMP_Const.h</a>
+</li>
+<li>XMP_PropHasQualifiers
+: <a class="el" href="XMP__Const_8h.html#a10828aa191aa666aa1166c27beead2a6">XMP_Const.h</a>
+</li>
+<li>XMP_PropIsAlias
+: <a class="el" href="XMP__Const_8h.html#a69a18fc954796cdbaa8771de5a476fab">XMP_Const.h</a>
+</li>
+<li>XMP_PropIsArray
+: <a class="el" href="XMP__Const_8h.html#ab8cf5a7c0f5a8dfc052117638fb55324">XMP_Const.h</a>
+</li>
+<li>XMP_PropIsQualifier
+: <a class="el" href="XMP__Const_8h.html#a9a555a9eb2fabe97dd57e8d2e1b077f5">XMP_Const.h</a>
+</li>
+<li>XMP_PropIsSimple
+: <a class="el" href="XMP__Const_8h.html#a43aeebde901bea1932203107c690a2dc">XMP_Const.h</a>
+</li>
+<li>XMP_PropIsStruct
+: <a class="el" href="XMP__Const_8h.html#a9ecd2dede6b25ecec9a430c151d74d83">XMP_Const.h</a>
+</li>
+<li>XMP_PUBLIC
+: <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_Environment.h</a>
+</li>
+<li>XMP_SetOption
+: <a class="el" href="XMP__Const_8h.html#a10a766c47b5ea01f285501b49d20bc62">XMP_Const.h</a>
+</li>
+<li>XMP_TestOption
+: <a class="el" href="XMP__Const_8h.html#aee6dc47c8013d4514ed363ae16ba2ad3">XMP_Const.h</a>
+</li>
+<li>XMP_TraceClientCalls
+: <a class="el" href="WXMP__Common_8hpp.html#a803c218d593737c645bbea4bf80dd815">WXMP_Common.hpp</a>
+</li>
+<li>XMP_TraceClientCallsToFile
+: <a class="el" href="WXMP__Common_8hpp.html#aab5f92f08cddd67ae7c8bab22b4f0dd7">WXMP_Common.hpp</a>
+</li>
+<li>XMPCORE_API_VERSION
+: <a class="el" href="XMP__Version_8h.html#ac041954a884c9a67412ce45fd8b93ba8">XMP_Version.h</a>
+</li>
+<li>XMPCORE_API_VERSION_MAJOR
+: <a class="el" href="XMP__Version_8h.html#aac716764f5886d3aa2cae548de31914d">XMP_Version.h</a>
+</li>
+<li>XMPCORE_API_VERSION_MICRO
+: <a class="el" href="XMP__Version_8h.html#a23b73225c458457027b81af90253a36d">XMP_Version.h</a>
+</li>
+<li>XMPCORE_API_VERSION_MINOR
+: <a class="el" href="XMP__Version_8h.html#a9c0c98c086845899204c31cd7e40ee66">XMP_Version.h</a>
+</li>
+<li>XMPCORE_API_VERSION_STRING
+: <a class="el" href="XMP__Version_8h.html#a980a28c05c998865f032cda8057530dd">XMP_Version.h</a>
+</li>
+<li>XMPDateTime_ClearTimeZone
+: <a class="el" href="XMP__Const_8h.html#a8d6dc898fe00aeaf567d7af3ec23316a">XMP_Const.h</a>
+</li>
+<li>XMPDateTime_IsDateOnly
+: <a class="el" href="XMP__Const_8h.html#ae12feaba743c6b1ab1a24ae13fecbffb">XMP_Const.h</a>
+</li>
+<li>XMPDateTime_IsTimeOnly
+: <a class="el" href="XMP__Const_8h.html#a10149d273250015e91931cd93b649a2e">XMP_Const.h</a>
+</li>
+<li>XMPFILES_API_VERSION
+: <a class="el" href="XMP__Version_8h.html#ad887c030e319e8ec87b2bb219b411eba">XMP_Version.h</a>
+</li>
+<li>XMPFILES_API_VERSION_MAJOR
+: <a class="el" href="XMP__Version_8h.html#a2d20bc110f01b87d6456f9db1169d0f2">XMP_Version.h</a>
+</li>
+<li>XMPFILES_API_VERSION_MICRO
+: <a class="el" href="XMP__Version_8h.html#ab50f056612c375f3f3ec2c2bd4b15c20">XMP_Version.h</a>
+</li>
+<li>XMPFILES_API_VERSION_MINOR
+: <a class="el" href="XMP__Version_8h.html#a824cb65b80a8e7a2a434e3c7e90e34c1">XMP_Version.h</a>
+</li>
+<li>XMPFILES_API_VERSION_STRING
+: <a class="el" href="XMP__Version_8h.html#a76ec48e8c62eb491e18c98b620d83826">XMP_Version.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/globals_defs_z.html b/docs/API/globals_defs_z.html
new file mode 100755
index 0000000..c01c558
--- /dev/null
+++ b/docs/API/globals_defs_z.html
@@ -0,0 +1,417 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>File Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li class="current"><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_defs.html#index__"><span>_</span></a></li>
+ <li><a href="globals_defs_b.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_defs_c.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_defs_d.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_defs_e.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_defs_i.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_defs_j.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_defs_k.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_defs_p.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_defs_q.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_defs_r.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_defs_s.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_defs_w.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_defs_x.html#index_x"><span>x</span></a></li>
+ <li class="current"><a href="globals_defs_z.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_defs_z.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_z"></a>- z -</h3><ul>
+<li>zXMPFiles_CanPutXMP_1
+: <a class="el" href="WXMPFiles_8hpp.html#a5c8a9971542af98048b1a19b73d65310">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_CheckFileFormat_1
+: <a class="el" href="WXMPFiles_8hpp.html#a91589c63b3c0c034e11c60a4eaaa3de1">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_CheckPackageFormat_1
+: <a class="el" href="WXMPFiles_8hpp.html#a5138829cfbf5712d5afe85109a253de7">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_CloseFile_1
+: <a class="el" href="WXMPFiles_8hpp.html#aae01191749d7b0e1b4700516d3a263cf">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_CTor_1
+: <a class="el" href="WXMPFiles_8hpp.html#ab5ad690470439e4813284756971a606e">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_GetAssociatedResources_1
+: <a class="el" href="WXMPFiles_8hpp.html#a388f91a00251ec7b9d9dfcf60a5663a0">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_GetFileInfo_1
+: <a class="el" href="WXMPFiles_8hpp.html#ab479175bf8e053d15f94561b681b127a">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_GetFileModDate_1
+: <a class="el" href="WXMPFiles_8hpp.html#afc6b46974e9108cde02b74f5b7a6fb97">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_GetFormatInfo_1
+: <a class="el" href="WXMPFiles_8hpp.html#a22159932057a32ae1b7438a4cb38b061">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_GetVersionInfo_1
+: <a class="el" href="WXMPFiles_8hpp.html#a1c07156ac21d3ccd800fbd540fa1894b">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_GetXMP_1
+: <a class="el" href="WXMPFiles_8hpp.html#a5fdbbcc0de3c2b6c8c67c355bc2b73ef">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_Initialize_1
+: <a class="el" href="WXMPFiles_8hpp.html#aa4bd33393eec73960abad65df45555e1">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_Initialize_2
+: <a class="el" href="WXMPFiles_8hpp.html#a3d2fb0bb2d758c818c2d7a544e89235b">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_IsMetadataWritable_1
+: <a class="el" href="WXMPFiles_8hpp.html#a306bb7b988eec6378c2a9fc487caf617">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_OpenFile_1
+: <a class="el" href="WXMPFiles_8hpp.html#a8a739d2d110756df76a6560bf024d7db">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_PutXMP_1
+: <a class="el" href="WXMPFiles_8hpp.html#a1d4f17626f5426e949d89a826b47e139">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_ResetErrorCallbackLimit_1
+: <a class="el" href="WXMPFiles_8hpp.html#a98022dc34d13e606183e09b65ec48c46">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_SetAbortProc_1
+: <a class="el" href="WXMPFiles_8hpp.html#aaeee52c59e243c3aec3a1f155052cda7">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_SetDefaultErrorCallback_1
+: <a class="el" href="WXMPFiles_8hpp.html#a49db2cb75d6fbed2f76090d9a8fbcd2c">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_SetDefaultProgressCallback_1
+: <a class="el" href="WXMPFiles_8hpp.html#a4fcbcba3b02b01ab8f0e34d4d9db2e81">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_SetErrorCallback_1
+: <a class="el" href="WXMPFiles_8hpp.html#adfc59976766bc8cd2bbafcc512ff22e0">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_SetProgressCallback_1
+: <a class="el" href="WXMPFiles_8hpp.html#a226c2df14f357c12de0503e64d9d14f0">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_Terminate_1
+: <a class="el" href="WXMPFiles_8hpp.html#a08126268000561c2c10af0f0a8226dce">WXMPFiles.hpp</a>
+</li>
+<li>zXMPIterator_Next_1
+: <a class="el" href="WXMPIterator_8hpp.html#ac5cfa7bd53753408e8e6b20225429fa0">WXMPIterator.hpp</a>
+</li>
+<li>zXMPIterator_PropCTor_1
+: <a class="el" href="WXMPIterator_8hpp.html#a490d04bf7641a1fa38dc1d4a4c106de9">WXMPIterator.hpp</a>
+</li>
+<li>zXMPIterator_Skip_1
+: <a class="el" href="WXMPIterator_8hpp.html#aa79ff88d5629b5161a4cef06f1c9d121">WXMPIterator.hpp</a>
+</li>
+<li>zXMPIterator_TableCTor_1
+: <a class="el" href="WXMPIterator_8hpp.html#aa53f3af28fb173ee0f6d01b9f1196d6d">WXMPIterator.hpp</a>
+</li>
+<li>zXMPMeta_AppendArrayItem_1
+: <a class="el" href="WXMPMeta_8hpp.html#a30ce4c07c9e676bd522ba2de196f8f62">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_Clone_1
+: <a class="el" href="WXMPMeta_8hpp.html#a0acf7eccade1539e1c0a69b8ff2887db">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_CountArrayItems_1
+: <a class="el" href="WXMPMeta_8hpp.html#af665276132037f0aad9c3184163ff088">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_CTor_1
+: <a class="el" href="WXMPMeta_8hpp.html#a5407ff91fcbe5cae856e8644e998c396">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_DeleteArrayItem_1
+: <a class="el" href="WXMPMeta_8hpp.html#a97ae24365cb43c4e6e6886d0d7fa9df6">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_DeleteLocalizedText_1
+: <a class="el" href="WXMPMeta_8hpp.html#abac12b12f5dc2ccb20fe28e293f8db1d">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_DeleteNamespace_1
+: <a class="el" href="WXMPMeta_8hpp.html#ad5e74b2f1acce6eab6e090c54ea742cc">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_DeleteProperty_1
+: <a class="el" href="WXMPMeta_8hpp.html#a1fd13036f7844b3b5c75984e8ac1e1e9">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_DeleteQualifier_1
+: <a class="el" href="WXMPMeta_8hpp.html#aa0e45856fae5a4c45f986978dae73843">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_DeleteStructField_1
+: <a class="el" href="WXMPMeta_8hpp.html#aaa1d0c192d952db671b24d38c974824e">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_DoesArrayItemExist_1
+: <a class="el" href="WXMPMeta_8hpp.html#a166e93fe425704a6b9b405b52fd492f8">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_DoesPropertyExist_1
+: <a class="el" href="WXMPMeta_8hpp.html#a2df62a9ced0164bbc4d4d63922d46e3e">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_DoesQualifierExist_1
+: <a class="el" href="WXMPMeta_8hpp.html#aa9370910efc3836b82ab4e24f36f859c">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_DoesStructFieldExist_1
+: <a class="el" href="WXMPMeta_8hpp.html#a0a780565631328197529fd5eda5839ed">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_DumpNamespaces_1
+: <a class="el" href="WXMPMeta_8hpp.html#a5e549c2a44cf580c1f6a25f02ba767af">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_DumpObject_1
+: <a class="el" href="WXMPMeta_8hpp.html#a18308efec56a894bfa2ed9a3967c8feb">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_Erase_1
+: <a class="el" href="WXMPMeta_8hpp.html#ae4b069f217d8e161ea7e972f1c37a641">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_GetArrayItem_1
+: <a class="el" href="WXMPMeta_8hpp.html#a4d079b8cbe5efc658a64b0bd9be60e8e">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_GetGlobalOptions_1
+: <a class="el" href="WXMPMeta_8hpp.html#a042f1cb44600209bed7d27a26ee937a3">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_GetIXMPMetadata_1
+: <a class="el" href="WXMPMeta_8hpp.html#a4b0a23906a0bd1ef87d381a7d940b5b0">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_GetLocalizedText_1
+: <a class="el" href="WXMPMeta_8hpp.html#ad18d48d5755d4318c725919eddeb4bec">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_GetNamespacePrefix_1
+: <a class="el" href="WXMPMeta_8hpp.html#afcbc2ac610c4e23a128ff80203e3a4a5">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_GetNamespaceURI_1
+: <a class="el" href="WXMPMeta_8hpp.html#a21cb3d8399b93c52cb4000cec668c5e3">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_GetObjectName_1
+: <a class="el" href="WXMPMeta_8hpp.html#a2e1e3752c2a1bc7a80c595ab9d08d2ff">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_GetObjectOptions_1
+: <a class="el" href="WXMPMeta_8hpp.html#a04725a82690d7fa41b294237f4a7efeb">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_GetProperty_1
+: <a class="el" href="WXMPMeta_8hpp.html#af4035499938bb4645b207b7ff65f19d7">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_GetProperty_Bool_1
+: <a class="el" href="WXMPMeta_8hpp.html#a7938f68d5243be7813ff405791e36518">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_GetProperty_Date_1
+: <a class="el" href="WXMPMeta_8hpp.html#a17131cb1b6f77db2c6fc56effddb629e">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_GetProperty_Float_1
+: <a class="el" href="WXMPMeta_8hpp.html#ac71c9ef20221ea9bfcf21f8265c35b17">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_GetProperty_Int64_1
+: <a class="el" href="WXMPMeta_8hpp.html#ab5ee5ac8d0de80b02b3d5588c596dfde">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_GetProperty_Int_1
+: <a class="el" href="WXMPMeta_8hpp.html#af95f01dadd596260f8d2833bc650135b">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_GetQualifier_1
+: <a class="el" href="WXMPMeta_8hpp.html#a3490f2d966ecaa048af87a6405128b08">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_GetStructField_1
+: <a class="el" href="WXMPMeta_8hpp.html#aaad2d6874da145ec47c9b4f60b76cfcf">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_GetVersionInfo_1
+: <a class="el" href="WXMPMeta_8hpp.html#a72415a5d17bb47c3d818d11a710f5c0b">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_Initialize_1
+: <a class="el" href="WXMPMeta_8hpp.html#af0ee01859f7324e6668fe372bc54a2a4">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_ParseFromBuffer_1
+: <a class="el" href="WXMPMeta_8hpp.html#a1e85839b8c67c99f43fb15fc2942b34d">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_RegisterNamespace_1
+: <a class="el" href="WXMPMeta_8hpp.html#adde0feeb518ce416f906292542a92d46">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_ResetErrorCallbackLimit_1
+: <a class="el" href="WXMPMeta_8hpp.html#a9128462ca53008ccf87e5fcd96cf966e">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_SerializeToBuffer_1
+: <a class="el" href="WXMPMeta_8hpp.html#a91cf006a6594600c7bff11a4460d077f">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_SetArrayItem_1
+: <a class="el" href="WXMPMeta_8hpp.html#aa5eeb477a58a35f336c4349e08e13600">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_SetDefaultErrorCallback_1
+: <a class="el" href="WXMPMeta_8hpp.html#ab4d6e5d26b15df865d0e96343d31e408">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_SetErrorCallback_1
+: <a class="el" href="WXMPMeta_8hpp.html#a2e349470fb118ebce92e0eabb305f4ff">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_SetGlobalOptions_1
+: <a class="el" href="WXMPMeta_8hpp.html#ab7ed5170b4879381078d0724cbdbbd0f">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_SetLocalizedText_1
+: <a class="el" href="WXMPMeta_8hpp.html#a2cf74d9cb0162bca6f5e024773bff238">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_SetObjectName_1
+: <a class="el" href="WXMPMeta_8hpp.html#a3ce4a228c127f37ebe5085fcbaae8851">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_SetObjectOptions_1
+: <a class="el" href="WXMPMeta_8hpp.html#ad7bf555513506cae450b216eb56dcef1">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_SetProperty_1
+: <a class="el" href="WXMPMeta_8hpp.html#abe56d32dec99c09791850e14fa199fff">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_SetProperty_Bool_1
+: <a class="el" href="WXMPMeta_8hpp.html#a15ef1d6a8788115c277cf74d254eae50">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_SetProperty_Date_1
+: <a class="el" href="WXMPMeta_8hpp.html#a10cd70a1efb7cdf9516842a89c8b42eb">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_SetProperty_Float_1
+: <a class="el" href="WXMPMeta_8hpp.html#a21feb6c743ada14de8277f6bcedd86a5">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_SetProperty_Int64_1
+: <a class="el" href="WXMPMeta_8hpp.html#abe1551b9240e06ba4d2ab972f1efbe85">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_SetProperty_Int_1
+: <a class="el" href="WXMPMeta_8hpp.html#a2224a04bc65b61f1557a4ceedfab2aee">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_SetQualifier_1
+: <a class="el" href="WXMPMeta_8hpp.html#a75913c1b8f26041bd029418d39902830">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_SetStructField_1
+: <a class="el" href="WXMPMeta_8hpp.html#a8faddabe97b832233d6e10aa9ca0fbef">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_Sort_1
+: <a class="el" href="WXMPMeta_8hpp.html#a0ba6dd317cb80ed9acc2bae3faf7a5e4">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_Terminate_1
+: <a class="el" href="WXMPMeta_8hpp.html#af9276110cbdeb3b3098b6bbdf620977f">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_Use_CPP_DOM_APIs_1
+: <a class="el" href="WXMPMeta_8hpp.html#a696f7638346770aecec1a4570098d9fd">WXMPMeta.hpp</a>
+</li>
+<li>zXMPUtils_ApplyTemplate_1
+: <a class="el" href="WXMPUtils_8hpp.html#a862c949794995c58c9ad74737973b6ef">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_CatenateArrayItems_1
+: <a class="el" href="WXMPUtils_8hpp.html#aec36d93389403739f12a162502d56ab5">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_CompareDateTime_1
+: <a class="el" href="WXMPUtils_8hpp.html#a0b273ea840ed328c8b0ebce5ea17873c">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_ComposeArrayItemPath_1
+: <a class="el" href="WXMPUtils_8hpp.html#ad91341db639119d2bf30ff456a29f42c">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_ComposeFieldSelector_1
+: <a class="el" href="WXMPUtils_8hpp.html#ab25f06cea61f5562e1df5efe99922c5e">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_ComposeLangSelector_1
+: <a class="el" href="WXMPUtils_8hpp.html#a85ade86f24f96a54d386b3d9ae7d96ae">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_ComposeQualifierPath_1
+: <a class="el" href="WXMPUtils_8hpp.html#a377a1ad29357867bfcdceda410400b6b">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_ComposeStructFieldPath_1
+: <a class="el" href="WXMPUtils_8hpp.html#a106974fdb19fd470dd25d0913af28246">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_ConvertFromBool_1
+: <a class="el" href="WXMPUtils_8hpp.html#a8a014e86556114f1756815477cad4321">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_ConvertFromDate_1
+: <a class="el" href="WXMPUtils_8hpp.html#acb32764db5b81fa4b0efca35188a4f6a">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_ConvertFromFloat_1
+: <a class="el" href="WXMPUtils_8hpp.html#af8bcd900825782a784239b8fed6a6f6e">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_ConvertFromInt64_1
+: <a class="el" href="WXMPUtils_8hpp.html#a424ca120abc0e6ef6f2354e82757ce5b">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_ConvertFromInt_1
+: <a class="el" href="WXMPUtils_8hpp.html#a6bca9ebbc56f0a9136478d22b43e6bc8">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_ConvertToBool_1
+: <a class="el" href="WXMPUtils_8hpp.html#a3de2ac287d2eb9a3786f187b0b5944d7">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_ConvertToDate_1
+: <a class="el" href="WXMPUtils_8hpp.html#af2017eaec1cabc679e2083dfd4c1f7c8">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_ConvertToFloat_1
+: <a class="el" href="WXMPUtils_8hpp.html#a7a6e1c8d446dd9416b7fc4279cb5c026">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_ConvertToInt64_1
+: <a class="el" href="WXMPUtils_8hpp.html#aaf92038d52fe0a7eee019a9d51350532">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_ConvertToInt_1
+: <a class="el" href="WXMPUtils_8hpp.html#ac089fd797e17f92af27b512b0d96951c">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_ConvertToLocalTime_1
+: <a class="el" href="WXMPUtils_8hpp.html#a7dd59fc7ea99702edee606e30925ee82">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_ConvertToUTCTime_1
+: <a class="el" href="WXMPUtils_8hpp.html#a71770255372756959a29324f2bcdd654">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_CurrentDateTime_1
+: <a class="el" href="WXMPUtils_8hpp.html#a0565337a6234a5e7421586787a29d5b6">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_DecodeFromBase64_1
+: <a class="el" href="WXMPUtils_8hpp.html#aafde1fd448ec36673b9eb70fdac115e8">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_DuplicateSubtree_1
+: <a class="el" href="WXMPUtils_8hpp.html#aa70282eba27fd239e2cfd561b88c08be">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_EncodeToBase64_1
+: <a class="el" href="WXMPUtils_8hpp.html#a844d244df1b48816a3397ef50c7f5f5b">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_MergeFromJPEG_1
+: <a class="el" href="WXMPUtils_8hpp.html#a873b7cbb40f65be873aa2b6ca6cd4eab">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_PackageForJPEG_1
+: <a class="el" href="WXMPUtils_8hpp.html#ad3481cdf333724ff87223d1514dd95cf">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_RemoveProperties_1
+: <a class="el" href="WXMPUtils_8hpp.html#aeb44088490f2951c3491003796ec50a1">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_SeparateArrayItems_1
+: <a class="el" href="WXMPUtils_8hpp.html#a89d6c91a990c8ec93f00832c946fdf37">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_SetTimeZone_1
+: <a class="el" href="WXMPUtils_8hpp.html#a1d51ef9a2d3fd698e664df2dec2c9b13">WXMPUtils.hpp</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/globals_dup.js b/docs/API/globals_dup.js
new file mode 100755
index 0000000..594ca9b
--- /dev/null
+++ b/docs/API/globals_dup.js
@@ -0,0 +1,19 @@
+var globals_dup =
+[
+ [ "_", "globals.html", null ],
+ [ "b", "globals_b.html", null ],
+ [ "c", "globals_c.html", null ],
+ [ "d", "globals_d.html", null ],
+ [ "e", "globals_e.html", null ],
+ [ "i", "globals_i.html", null ],
+ [ "j", "globals_j.html", null ],
+ [ "k", "globals_k.html", null ],
+ [ "m", "globals_m.html", null ],
+ [ "p", "globals_p.html", null ],
+ [ "q", "globals_q.html", null ],
+ [ "r", "globals_r.html", null ],
+ [ "s", "globals_s.html", null ],
+ [ "w", "globals_w.html", null ],
+ [ "x", "globals_x.html", null ],
+ [ "z", "globals_z.html", null ]
+]; \ No newline at end of file
diff --git a/docs/API/globals_e.html b/docs/API/globals_e.html
new file mode 100755
index 0000000..153ac9d
--- /dev/null
+++ b/docs/API/globals_e.html
@@ -0,0 +1,85 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>File Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals.html#index__"><span>_</span></a></li>
+ <li><a href="globals_b.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_c.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_d.html#index_d"><span>d</span></a></li>
+ <li class="current"><a href="globals_e.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_i.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_j.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_k.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_m.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_p.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_q.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_r.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_s.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_w.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_x.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_z.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_e.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
+<li>ENABLE_CPP_DOM_MODEL
+: <a class="el" href="XMPCoreDefines_8h.html#a6919ea0ee288c12c640a170d34d35cbe">XMPCoreDefines.h</a>
+</li>
+<li>EXPAND_MACRO
+: <a class="el" href="XMPCommonDefines_8h.html#a4ec864140f86759daee62dd337b61501">XMPCommonDefines.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/globals_enum.html b/docs/API/globals_enum.html
index eef6d05..fb9ad31 100644..100755
--- a/docs/API/globals_enum.html
+++ b/docs/API/globals_enum.html
@@ -1,84 +1,60 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: Class Members</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
+<title>File Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
- <li><a href="files.html"><span>File&nbsp;List</span></a></li>
- <li class="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
<li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li class="current"><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Defines</span></a></li>
+ <li><a href="globals_defs.html"><span>Macros</span></a></li>
</ul>
</div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_enum.html','');});
+</script>
+<div id="doc-content">
<div class="contents">
-&nbsp;<ul>
+&#160;<ul>
<li>SeekMode
: <a class="el" href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563f">XMP_Const.h</a>
</li>
</ul>
-</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
</body>
</html>
diff --git a/docs/API/globals_eval.html b/docs/API/globals_eval.html
index 107bd38..3bf1926 100644..100755
--- a/docs/API/globals_eval.html
+++ b/docs/API/globals_eval.html
@@ -1,685 +1,74 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: Class Members</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
+<title>File Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
- <li><a href="files.html"><span>File&nbsp;List</span></a></li>
- <li class="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
<li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li class="current"><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Defines</span></a></li>
+ <li><a href="globals_defs.html"><span>Macros</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
- <li><a href="#index_k"><span>k</span></a></li>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li class="current"><a href="globals_eval.html#index__"><span>_</span></a></li>
+ <li><a href="globals_eval_k.html#index_k"><span>k</span></a></li>
</ul>
</div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_eval.html','');});
+</script>
+<div id="doc-content">
<div class="contents">
-&nbsp;
+&#160;
-<h3><a class="anchor" id="index_k">- k -</a></h3><ul>
-<li>kXMP_AEFilterPresetFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafd8d3d1c8c84bc6ab773f1298b3938f0">XMP_Const.h</a>
-</li>
-<li>kXMP_AEProjectFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da5fb9e99541bbb2d8e375d0cc9fd92a2e">XMP_Const.h</a>
-</li>
-<li>kXMP_AEProjTemplateFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dada5b138722448c4d4595fe760668c3df">XMP_Const.h</a>
-</li>
-<li>kXMP_AIFFFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf093d01e7e9cc55a7d1e204498521fc3">XMP_Const.h</a>
-</li>
-<li>kXMP_AVCHDFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafc5ff976e78df2d79d651de818b011f2">XMP_Const.h</a>
-</li>
-<li>kXMP_AVIFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dae3a6333624e5c292caf14ad849a5e26e">XMP_Const.h</a>
-</li>
-<li>kXMP_CanonXFFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafa11d905db1236494e555956cb2f90ef">XMP_Const.h</a>
-</li>
-<li>kXMP_CELFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da6c949ee85f42eaaed035591338be6789">XMP_Const.h</a>
-</li>
-<li>kXMP_Char16BitBig
-: <a class="el" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea0966bca9b241646f6a730f96c5c14a2d">XMP_Const.h</a>
-</li>
-<li>kXMP_Char16BitLittle
-: <a class="el" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea19b97b941d6586031190025225ee0eaa">XMP_Const.h</a>
-</li>
-<li>kXMP_Char32BitBig
-: <a class="el" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea87f8231aec6dd125baf77c9f3f918fbc">XMP_Const.h</a>
-</li>
-<li>kXMP_Char32BitLittle
-: <a class="el" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea859e7aa88e7dfd3f55ad2b6445a4708e">XMP_Const.h</a>
-</li>
-<li>kXMP_Char8Bit
-: <a class="el" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9eaf5b20dd9abbef29169a362b265049637">XMP_Const.h</a>
-</li>
-<li>kXMP_CharUnknown
-: <a class="el" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea6c37f0724299a9c88e2f622d3246d63b">XMP_Const.h</a>
-</li>
-<li>kXMP_CINFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad2935ea79b4f9253891e3a68a002c5bb">XMP_Const.h</a>
-</li>
-<li>kXMP_DeleteExisting
-: <a class="el" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04addd07b4a38b25ab3841e28a9cb169d1c">XMP_Const.h</a>
-</li>
-<li>kXMP_EncodeUTF16Big
-: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea310e4cbf639e783163778566b439f01d">XMP_Const.h</a>
-</li>
-<li>kXMP_EncodeUTF16Little
-: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eafc6417e382c98a2d507830de62fd4830">XMP_Const.h</a>
-</li>
-<li>kXMP_EncodeUTF32Big
-: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea793e99d9ea83f0aadd5b4193a95ea713">XMP_Const.h</a>
-</li>
-<li>kXMP_EncodeUTF32Little
-: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eae0137d98ea990fa23d292489031ba09e">XMP_Const.h</a>
-</li>
-<li>kXMP_EncodeUTF8
-: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadc8f241694f5a758e5ee3f6db69d02ab">XMP_Const.h</a>
-</li>
-<li>kXMP_EncodingMask
-: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eaeb79571cac99ee97feefb0347b1c1845">XMP_Const.h</a>
-</li>
-<li>kXMP_EncoreProjectFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dae28efb65bde55f3f8ddfd1fd8a168e2a">XMP_Const.h</a>
-</li>
-<li>kXMP_EPSFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad947e6da0c4d923195d93e0c53a79c4e">XMP_Const.h</a>
-</li>
-<li>kXMP_ExactPacketLength
-: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadb35599da481cc22ea6342b7b4de6bc6">XMP_Const.h</a>
-</li>
-<li>kXMP_FLAFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dab1eeba00d1d92e313acfe68cd054daf9">XMP_Const.h</a>
-</li>
-<li>kXMP_FLVFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da455bc501088bbd8061fe3ea386a5066f">XMP_Const.h</a>
-</li>
-<li>kXMP_GIFFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da851d2f4525d705cd2dcabb540d0ddc06">XMP_Const.h</a>
-</li>
-<li>kXMP_HTMLFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da542634e6051139c44fd7b92d08c64760">XMP_Const.h</a>
-</li>
-<li>kXMP_IllustratorFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da82935c41c6222ff4cca954278f18e554">XMP_Const.h</a>
-</li>
-<li>kXMP_ImplReservedMask
-: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5ae154b58429b257b18963ba3503e67974">XMP_Const.h</a>
-</li>
-<li>kXMP_IncludeRDFHash
-: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea23054ea4ab89dfd802f14cb389e18745">XMP_Const.h</a>
-</li>
-<li>kXMP_IncludeThumbnailPad
-: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea0b659b3b544c7a5a076fbd3132cd7f7a">XMP_Const.h</a>
-</li>
-<li>kXMP_InDesignFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da79cbf96ecc4ac3e0ebfb2d182bc75e60">XMP_Const.h</a>
-</li>
-<li>kXMP_InsertAfterItem
-: <a class="el" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04a98cedd5fa29d47abb2ac8903ac7f5a05">XMP_Const.h</a>
-</li>
-<li>kXMP_InsertBeforeItem
-: <a class="el" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04a873411f673fc2a6337083fd024df727f">XMP_Const.h</a>
-</li>
-<li>kXMP_IterAliases
-: <a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a3333450505cd3712320aeac895e541b9">XMP_Const.h</a>
-</li>
-<li>kXMP_IterClassMask
-: <a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a93f77b837d89759af3a721712c13f044">XMP_Const.h</a>
-</li>
-<li>kXMP_IterJustChildren
-: <a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635ab26e1a38d1d0343fcc5bdaab1b60e3ed">XMP_Const.h</a>
-</li>
-<li>kXMP_IterJustLeafName
-: <a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635acf22e638f4144bcec8207b2ab69bb344">XMP_Const.h</a>
-</li>
-<li>kXMP_IterJustLeafNodes
-: <a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a4589f99b5b4a55e785e3baf4fe1d9b19">XMP_Const.h</a>
-</li>
-<li>kXMP_IterNamespaces
-: <a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635aa325d9ffba68a934f0a0a0f6ecfc2f7b">XMP_Const.h</a>
-</li>
-<li>kXMP_IterOmitQualifiers
-: <a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a1b91947105ae68c48c5d5e36aa70d101">XMP_Const.h</a>
-</li>
-<li>kXMP_IterProperties
-: <a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635aa0643c076a3b3737ff88ed20f16afd2b">XMP_Const.h</a>
-</li>
-<li>kXMP_IterSkipSiblings
-: <a class="el" href="XMP__Const_8h.html#a0411cd49bb5b71852cecd93bcbf0ca2da2537b4b8db838f85b47988b198cd2a12">XMP_Const.h</a>
-</li>
-<li>kXMP_IterSkipSubtree
-: <a class="el" href="XMP__Const_8h.html#a0411cd49bb5b71852cecd93bcbf0ca2dab0b540cd3841f411471a827f833c606e">XMP_Const.h</a>
-</li>
-<li>kXMP_JPEG2KFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da78b8fa38aaa2067e3e1baa0dcaa7571d">XMP_Const.h</a>
-</li>
-<li>kXMP_JPEGFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad752b2d3e1139e0745223a9385ef6487">XMP_Const.h</a>
-</li>
-<li>kXMP_MOVFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daebdb172c8a75b4ead2eff2d26ed3dc37">XMP_Const.h</a>
-</li>
-<li>kXMP_MP3File
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf3ee34ed2bc26dec0e2d572eeb0de89b">XMP_Const.h</a>
-</li>
-<li>kXMP_MPEG2File
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dab58eaebed494530072ad990ac7a9807a">XMP_Const.h</a>
-</li>
-<li>kXMP_MPEG4File
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da89e6282c3f0c8966d788500f5d8eaa91">XMP_Const.h</a>
-</li>
-<li>kXMP_MPEGFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da043afdc1db730db9ac03c505140c61c8">XMP_Const.h</a>
-</li>
-<li>kXMP_MXFFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da4b3477bdc53fae1511104fc54f88d134">XMP_Const.h</a>
-</li>
-<li>kXMP_OmitAllFormatting
-: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea79230f1d70d2625f7650db6ff5b1ea29">XMP_Const.h</a>
-</li>
-<li>kXMP_OmitPacketWrapper
-: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadbb9e4c7ee139da0dd4126ddea794c76">XMP_Const.h</a>
-</li>
-<li>kXMP_OmitXMPMetaElement
-: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea9fb498d749d939e2ba9adf555a75b856">XMP_Const.h</a>
-</li>
-<li>kXMP_P2File
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dabad9584845edf66f2f8fc3c336977e34">XMP_Const.h</a>
-</li>
-<li>kXMP_PacketInfoVersion
-: <a class="el" href="XMP__Const_8h.html#a16af7b253440dadd46a80a4b9fddba4da767b4847575a8de28e691be660d43817">XMP_Const.h</a>
-</li>
-<li>kXMP_ParseMoreBuffers
-: <a class="el" href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca79b36427b7bf0c0a1ed010a44dec2d3e">XMP_Const.h</a>
-</li>
-<li>kXMP_PDFFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da17ab6d429c1550eb3cc16d2e544b78eb">XMP_Const.h</a>
-</li>
-<li>kXMP_PhotoshopFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da22b478a9d0d52d12e8e4a1181024eb1c">XMP_Const.h</a>
-</li>
-<li>kXMP_PNGFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dac989381d37de320495e4d13f9ecc6371">XMP_Const.h</a>
-</li>
-<li>kXMP_PostScriptFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da52c90935ee28a0875a49843d463cad70">XMP_Const.h</a>
-</li>
-<li>kXMP_PremiereProjectFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daeff4f68cd5162370f7bf938a868e280d">XMP_Const.h</a>
-</li>
-<li>kXMP_PremiereTitleFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da1ad712bbd349dc899ca1e71971032b0a">XMP_Const.h</a>
-</li>
-<li>kXMP_PropArrayFormMask
-: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a6b5b5f4b869994b7390edc9589745e9f">XMP_Const.h</a>
-</li>
-<li>kXMP_PropArrayIsAlternate
-: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a2596b1f0ea4600270c99102c86b5f1f1">XMP_Const.h</a>
-</li>
-<li>kXMP_PropArrayIsAltText
-: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aba253f67a6cf44b7438a3f96b516846d">XMP_Const.h</a>
-</li>
-<li>kXMP_PropArrayIsOrdered
-: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5af1cdb3b0a3e852ec55e747a1686aba04">XMP_Const.h</a>
-</li>
-<li>kXMP_PropArrayIsUnordered
-: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a0d70c23394c0676657c89de5491192c0">XMP_Const.h</a>
-</li>
-<li>kXMP_PropArrayLocationMask
-: <a class="el" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04aef8c1934a17b0e5d8f0b20a7e89df0df">XMP_Const.h</a>
-</li>
-<li>kXMP_PropCompositeMask
-: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a60a9f26fb66c2e65cf40d9bc44968956">XMP_Const.h</a>
-</li>
-<li>kXMP_PropHasAliases
-: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a1f819ef281d1f52c4c12d5d02f49d3f0">XMP_Const.h</a>
-</li>
-<li>kXMP_PropHasLang
-: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a3fa5ed87edc731bfb3817f58ba70a217">XMP_Const.h</a>
-</li>
-<li>kXMP_PropHasQualifiers
-: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a8e34a33a2eed56499d4f6f62da25d159">XMP_Const.h</a>
-</li>
-<li>kXMP_PropHasType
-: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aeff16fdf167afc73db25b30b529bd9d5">XMP_Const.h</a>
-</li>
-<li>kXMP_PropIsAlias
-: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5ab975c19fb5c50f732a1a0d84dadb7c37">XMP_Const.h</a>
-</li>
-<li>kXMP_PropIsDerived
-: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a0d898ea7f6b3db513bb24f8a6a285877">XMP_Const.h</a>
-</li>
-<li>kXMP_PropIsInternal
-: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a48097c6ea309f240965d77ab564a5464">XMP_Const.h</a>
-</li>
-<li>kXMP_PropIsQualifier
-: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a30146ed5209f5c3eb4eeb1fd8e4fb9fe">XMP_Const.h</a>
-</li>
-<li>kXMP_PropIsStable
-: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a81dcd06251771a0ddee6c1e36128c65c">XMP_Const.h</a>
-</li>
-<li>kXMP_PropValueIsArray
-: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a9b7706e0f0716ac7546bdc24ffedd0bc">XMP_Const.h</a>
-</li>
-<li>kXMP_PropValueIsStruct
-: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e">XMP_Const.h</a>
-</li>
-<li>kXMP_PropValueIsURI
-: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aab51f87b5c48f47f5cefb9e03293dafb">XMP_Const.h</a>
-</li>
-<li>kXMP_PropValueOptionsMask
-: <a class="el" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04ad1b42a8a4c479d9bfaf406b79f2e1465">XMP_Const.h</a>
-</li>
-<li>kXMP_ReadOnlyPacket
-: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea238c792322c5bd5f9e4db3165e01f9d6">XMP_Const.h</a>
-</li>
-<li>kXMP_REDFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daab032aa36aec082c6b3a8300548346f5">XMP_Const.h</a>
-</li>
-<li>kXMP_RequireXMPMeta
-: <a class="el" href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca1e533852436acf75f594a4fb50a64400">XMP_Const.h</a>
-</li>
-<li>kXMP_SESFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da42cb8767d9cf16eaeb7aec68a4f224e9">XMP_Const.h</a>
-</li>
-<li>kXMP_SonyHDVFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daa0edb070c11f87c3dad9f8f7a83b9b5e">XMP_Const.h</a>
-</li>
-<li>kXMP_StrictAliasing
-: <a class="el" href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca7107906eab0e1fa6f9f2dc6254ad88b1">XMP_Const.h</a>
-</li>
-<li>kXMP_SWFFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da564a8095f65d951f451e16eb56650597">XMP_Const.h</a>
-</li>
-<li>kXMP_TextFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da27051cd824d3ae7bb59e3af7a7908ffd">XMP_Const.h</a>
-</li>
-<li>kXMP_TIFFFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dadc0edf25d933c2a21b25449692c3ba08">XMP_Const.h</a>
-</li>
-<li>kXMP_TimeEastOfUTC
-: <a class="el" href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a68851b70cc1d2346fa21bc0b0ae6cfec">XMP_Const.h</a>
-</li>
-<li>kXMP_TimeIsUTC
-: <a class="el" href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a3f41be55491204982acb39c9f6c7ad13">XMP_Const.h</a>
+<h3><a class="anchor" id="index__"></a>- _ -</h3><ul>
+<li>_XMP_LittleEndian_Bit
+: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eaa646a732a5b11cd8354ca0c3686ef04d">XMP_Const.h</a>
</li>
-<li>kXMP_TimeWestOfUTC
-: <a class="el" href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a511551ce156d5fd96c26ad464b837801">XMP_Const.h</a>
+<li>_XMP_UTF16_Bit
+: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea688324384883724626ddd5597eb45739">XMP_Const.h</a>
</li>
-<li>kXMP_UCFFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da96804f7b8ce83786051c4dac4930aa96">XMP_Const.h</a>
-</li>
-<li>kXMP_UnknownFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719">XMP_Const.h</a>
-</li>
-<li>kXMP_UseCanonicalFormat
-: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea15e3fb0e64614c574ed554f2f72c0a5d">XMP_Const.h</a>
-</li>
-<li>kXMP_UseCompactFormat
-: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea041dc6b7b8684be7112ae40f5f259ebb">XMP_Const.h</a>
-</li>
-<li>kXMP_WAVFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dacc1fcd4e52423c0dd2966a2e92352fb8">XMP_Const.h</a>
-</li>
-<li>kXMP_WMAVFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da78c62f7c10b16b1a862d93f6226a4622">XMP_Const.h</a>
-</li>
-<li>kXMP_XDCAM_EXFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da45bf9b21d5ffed3594fbd585c47cc4fc">XMP_Const.h</a>
-</li>
-<li>kXMP_XDCAM_FAMFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da5f78caa0871695cc92e058e4f4b2dd57">XMP_Const.h</a>
-</li>
-<li>kXMP_XDCAM_SAMFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da64fe7908df6341e13d9d8c8199cdf852">XMP_Const.h</a>
-</li>
-<li>kXMP_XMLFile
-: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad217b996403fa13caef3d6e978023124">XMP_Const.h</a>
-</li>
-<li>kXMPErr_AssertFailure
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14bd6c24087d280c722c1a044eec27d6">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadBlockFormat
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aacc6262e9c1fd1a64e3d10cedfb7dcb1">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadFileFormat
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa0a05e07925d1f3daf5f36f6da0840f8">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadIndex
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a31adb57da79b4fb1f1f5f999ec740010">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadIPTC
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a23b2d7cab10b3d80549e6b60855bb15e">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadIterPosition
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2584fc813bfcd9158b7adf28a3454bb9">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadJPEG
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad685e1f839e3bc53dfc55611a0803cee">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadMPEG
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad596daed4ac92f8bf7871669d03effad">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadObject
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a115f3d761d2cad952aab23f35cbdf3a1">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadOptions
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a40ca77d98bd366442bb8d438c420a444">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadParam
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a52d197a8b0af3c55f16958162a4132f1">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadParse
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a052b1b525fba7da8c98be5c135f434b8">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadPSD
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad98fc9a9c050e9fc19c3af9c8abb2d6d">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadPSIR
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a1606a687cb790af16dc561b2a8f2e6a3">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadRDF
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5464b823e619618d9aa58433cdb45a8e">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadSchema
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2bc66eec6ce830979089d5c336f75539">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadSerialize
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4f936ff6788ce17f6098b7cbda77ed9">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadTIFF
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aecd25299aa177de7bc7f3674fcf2e22d">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadUnicode
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4cf86fa29624c5e19111e09a97fe05f">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadValue
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a716956a038782e595ce61d3fbdd1a25a">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadXML
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac57f1cf1c24778536fd32972e87334c5">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadXMP
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a211bb632ed1264d9e2236f35c6414821">XMP_Const.h</a>
-</li>
-<li>kXMPErr_BadXPath
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a3f1efec0aa5452f43c55c05aba616ef7">XMP_Const.h</a>
-</li>
-<li>kXMPErr_Deprecated
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14342c486ddf394ebc110a446becbfa7">XMP_Const.h</a>
-</li>
-<li>kXMPErr_DiskSpace
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa2f19dfd8ce27b5713c79e34f2052e40">XMP_Const.h</a>
-</li>
-<li>kXMPErr_EmptyIterator
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a078c69d0d76f25187a11981a2552b179">XMP_Const.h</a>
-</li>
-<li>kXMPErr_EnforceFailure
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa856bb36a9742d8542b483e00fc6511b">XMP_Const.h</a>
-</li>
-<li>kXMPErr_ExternalFailure
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a82941dc15c6ccde6b8fb2f9cc85c2eeb">XMP_Const.h</a>
-</li>
-<li>kXMPErr_FilePathNotAFile
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a0819111429c734ca5ef895c193846351">XMP_Const.h</a>
-</li>
-<li>kXMPErr_FilePermission
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a577b0e80acf44125f0dc49e5885e0824">XMP_Const.h</a>
-</li>
-<li>kXMPErr_InternalFailure
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a8babbd758d2c64fd04e85fa48e0675c0">XMP_Const.h</a>
-</li>
-<li>kXMPErr_NoError
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ae2aec0f3b8db282cbba40e4bcf746ba9">XMP_Const.h</a>
-</li>
-<li>kXMPErr_NoFile
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2874a5dcddf253a17d75a147b2ed4933">XMP_Const.h</a>
-</li>
-<li>kXMPErr_NoFileHandler
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a10fa053f279fed01b075f34a70f11795">XMP_Const.h</a>
-</li>
-<li>kXMPErr_NoMemory
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a69eb7fef422fbca62cdbc554afffd813">XMP_Const.h</a>
-</li>
-<li>kXMPErr_ProgressAbort
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5227060f282a86c8ea1a944107751dd1">XMP_Const.h</a>
-</li>
-<li>kXMPErr_ReadError
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2a17df0c0b690f5b7829bc4ca16efce2">XMP_Const.h</a>
-</li>
-<li>kXMPErr_RejectedFileExtension
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad9d8c98663e3ead894841807ab4548f8">XMP_Const.h</a>
-</li>
-<li>kXMPErr_StdException
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5322df07e2a7792824d2468c4837f1cb">XMP_Const.h</a>
-</li>
-<li>kXMPErr_TBD
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409acd9fa1b621efafd5b218e3a785cbeda1">XMP_Const.h</a>
-</li>
-<li>kXMPErr_TooLargeForJPEG
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa9c1c20e53db12b20068d830a8990c0b">XMP_Const.h</a>
-</li>
-<li>kXMPErr_Unavailable
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac7ac408582c194cc723a24acb8b4e4c3">XMP_Const.h</a>
-</li>
-<li>kXMPErr_Unimplemented
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a3de1ac8f4e4afb705d5a4654cb9579e2">XMP_Const.h</a>
-</li>
-<li>kXMPErr_Unknown
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14813595824de97382fffeae7b6fe581">XMP_Const.h</a>
-</li>
-<li>kXMPErr_UnknownException
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aac7558097a1f5a0f99097199f1bf8ff4">XMP_Const.h</a>
-</li>
-<li>kXMPErr_UserAbort
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4ba7b1a57629e4994a0f7a515d51195">XMP_Const.h</a>
-</li>
-<li>kXMPErr_WriteError
-: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409afca1d169d7e3cb3ba84c81700c1b9b22">XMP_Const.h</a>
-</li>
-<li>kXMPErrSev_FileFatal
-: <a class="el" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a2bd1ff3ba036640f0c76d68a03cf94f7">XMP_Const.h</a>
-</li>
-<li>kXMPErrSev_OperationFatal
-: <a class="el" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960afb962bdcf570af9aef4e32b5f279d1a4">XMP_Const.h</a>
-</li>
-<li>kXMPErrSev_ProcessFatal
-: <a class="el" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a768126806f8c7b7c107314610125deb3">XMP_Const.h</a>
-</li>
-<li>kXMPErrSev_Recoverable
-: <a class="el" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a068fdc8c88dcce62a7b42788a572af61">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_AllowsOnlyXMP
-: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea4a183c3ec4994cf09993e5b31dee9733">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_AllowsSafeUpdate
-: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea9fe958d4ccde02516a3a267db63874cd">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_CanExpand
-: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea126c9cc056f6569c424431edbcb9521c">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_CanInjectXMP
-: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea23a3eb2a5e95292036a93ad6666fa388">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_CanNotifyProgress
-: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea17578d45ae3c09a8d08189ea544052b1">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_CanReconcile
-: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceafc2bc7cfdd28a326788d563ec0357694">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_CanRewrite
-: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea8957f1ef358b4ab3a1df519903f2ae07">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_FolderBasedFormat
-: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceaa2a6a4b744b40055387234632b688fcd">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_ForceGivenHandler
-: <a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaab8cbbeef0e99d246907a4375766e21a2">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_HandlerOwnsFile
-: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceafc2c5b585e698ebf24a9379de35954b4">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_IgnoreLocalText
-: <a class="el" href="XMP__Const_8h.html#aba01db17f4a2bfbc3db60dc172972a25a9b9c1ef01e49193a167c40156df07b50">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_NeedsPreloading
-: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea798c55f5144eedde76f8329a056210b2">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_NeedsReadOnlyPacket
-: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceaee13099f78018a5e1ce033266c27e999">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_OpenForRead
-: <a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa4c61ec4ed571dbc5f1832ff6772320d2">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_OpenForUpdate
-: <a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa91fa388b3888bcb6a68615537b66a49b">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_OpenLimitedScanning
-: <a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa77f34b1873bb2584feabe26a2c8f1182">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_OpenOnlyXMP
-: <a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaa58279b2b1311242e7374117f455bb96">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_OpenRepairFile
-: <a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa05acd568597f72b4812b432ea6cf606a">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_OpenStrictly
-: <a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa0bef4db2ecdaf82a85df9e9d417aab18">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_OpenUsePacketScanning
-: <a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa77b47c63e579b28cbd25083ceb58c285">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_OpenUseSmartHandler
-: <a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaf6332435c7fc89cb0b7381e13fe43646">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_OptimizeFileLayout
-: <a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaf5f2ebd401758a14dc52c5ee403303b5">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_PrefersInPlace
-: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceab55e1873e67048928de3fc47550678c3">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_ReturnsRawPacket
-: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceadb116eed738d1fcdfe4ab9c1635e08ea">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_ServerMode
-: <a class="el" href="XMP__Const_8h.html#aba01db17f4a2bfbc3db60dc172972a25aee2f09481347c29d6c06951b0d81e145">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_UpdateSafely
-: <a class="el" href="XMP__Const_8h.html#a6b7b47dd702d9e331586d485013fd1eaadbf8d744f355ef9800a4ec44325baf54">XMP_Const.h</a>
-</li>
-<li>kXMPFiles_UsesSidecarXMP
-: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcead3027b786992e2a4762a4fa37c92943c">XMP_Const.h</a>
-</li>
-<li>kXMPTemplate_AddNewProperties
-: <a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a145c259f83048b811c7b35bc3b339c42">XMP_Const.h</a>
-</li>
-<li>kXMPTemplate_ClearUnnamedProperties
-: <a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a9dac536fe6ee25de76d45bf6615abd46">XMP_Const.h</a>
-</li>
-<li>kXMPTemplate_IncludeInternalProperties
-: <a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a872d2b769e775e281984cc63e28714ea">XMP_Const.h</a>
-</li>
-<li>kXMPTemplate_ReplaceExistingProperties
-: <a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57aae2e0fe43295736a15f0bb76ffe02544">XMP_Const.h</a>
-</li>
-<li>kXMPTemplate_ReplaceWithDeleteEmpty
-: <a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a81e1b6fd067fc9ad62bc803c98701bd5">XMP_Const.h</a>
-</li>
-<li>kXMPTS_Maybe
-: <a class="el" href="XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba7a73219cd125bb21e294ba474112a584">XMP_Const.h</a>
-</li>
-<li>kXMPTS_No
-: <a class="el" href="XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba2a88f4d4589bf413377283843f70bc90">XMP_Const.h</a>
-</li>
-<li>kXMPTS_Yes
-: <a class="el" href="XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55bacf4bfe01497bd0d88c2af337e4bac39e">XMP_Const.h</a>
-</li>
-<li>kXMPUtil_AllowCommas
-: <a class="el" href="XMP__Const_8h.html#abed82baf7f470b522273a3e37c24c600ad6d41710c689f16d19ac26dc9f5cc506">XMP_Const.h</a>
-</li>
-<li>kXMPUtil_DeleteEmptyValues
-: <a class="el" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a97753b4c5afda9c55e807e41377d86d9">XMP_Const.h</a>
-</li>
-<li>kXMPUtil_DoAllProperties
-: <a class="el" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a8ddfb0572b7602a52e533d92d8b1e9fb">XMP_Const.h</a>
-</li>
-<li>kXMPUtil_IncludeAliases
-: <a class="el" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a843589b878f53d42d59258f945ad770b">XMP_Const.h</a>
-</li>
-<li>kXMPUtil_ReplaceOldValues
-: <a class="el" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388adab4dad658d2d218c5b1e7d829b12962">XMP_Const.h</a>
+<li>_XMP_UTF32_Bit
+: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea540bbd27859990185eb488442579768b">XMP_Const.h</a>
</li>
</ul>
-</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
</body>
</html>
diff --git a/docs/API/globals_eval.js b/docs/API/globals_eval.js
new file mode 100755
index 0000000..ba7660e
--- /dev/null
+++ b/docs/API/globals_eval.js
@@ -0,0 +1,5 @@
+var globals_eval =
+[
+ [ "_", "globals_eval.html", null ],
+ [ "k", "globals_eval_k.html", null ]
+]; \ No newline at end of file
diff --git a/docs/API/globals_eval_k.html b/docs/API/globals_eval_k.html
new file mode 100755
index 0000000..3aee3da
--- /dev/null
+++ b/docs/API/globals_eval_k.html
@@ -0,0 +1,686 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>File Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li class="current"><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_eval.html#index__"><span>_</span></a></li>
+ <li class="current"><a href="globals_eval_k.html#index_k"><span>k</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_eval_k.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_k"></a>- k -</h3><ul>
+<li>kXMP_AEFilterPresetFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafd8d3d1c8c84bc6ab773f1298b3938f0">XMP_Const.h</a>
+</li>
+<li>kXMP_AEProjectFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da5fb9e99541bbb2d8e375d0cc9fd92a2e">XMP_Const.h</a>
+</li>
+<li>kXMP_AEProjTemplateFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dada5b138722448c4d4595fe760668c3df">XMP_Const.h</a>
+</li>
+<li>kXMP_AIFFFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf093d01e7e9cc55a7d1e204498521fc3">XMP_Const.h</a>
+</li>
+<li>kXMP_AVCHDFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafc5ff976e78df2d79d651de818b011f2">XMP_Const.h</a>
+</li>
+<li>kXMP_AVCUltraFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf32bab632c45ee7d960a5b74c9d61155">XMP_Const.h</a>
+</li>
+<li>kXMP_AVIFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dae3a6333624e5c292caf14ad849a5e26e">XMP_Const.h</a>
+</li>
+<li>kXMP_CanonXFFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafa11d905db1236494e555956cb2f90ef">XMP_Const.h</a>
+</li>
+<li>kXMP_CELFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da6c949ee85f42eaaed035591338be6789">XMP_Const.h</a>
+</li>
+<li>kXMP_Char16BitBig
+: <a class="el" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea0966bca9b241646f6a730f96c5c14a2d">XMP_Const.h</a>
+</li>
+<li>kXMP_Char16BitLittle
+: <a class="el" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea19b97b941d6586031190025225ee0eaa">XMP_Const.h</a>
+</li>
+<li>kXMP_Char16BitMask
+: <a class="el" href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8ac9b8b24a75e4e325a49e3730b8e3c5ed">XMP_Const.h</a>
+</li>
+<li>kXMP_Char32BitBig
+: <a class="el" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea87f8231aec6dd125baf77c9f3f918fbc">XMP_Const.h</a>
+</li>
+<li>kXMP_Char32BitLittle
+: <a class="el" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea859e7aa88e7dfd3f55ad2b6445a4708e">XMP_Const.h</a>
+</li>
+<li>kXMP_Char32BitMask
+: <a class="el" href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8a705cebe9f5f6700f039a153d394b4f2a">XMP_Const.h</a>
+</li>
+<li>kXMP_Char8Bit
+: <a class="el" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9eaf5b20dd9abbef29169a362b265049637">XMP_Const.h</a>
+</li>
+<li>kXMP_CharLittleEndianMask
+: <a class="el" href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8a0bcf31bfc6bd3bbd5f80ef25f21b4391">XMP_Const.h</a>
+</li>
+<li>kXMP_CharUnknown
+: <a class="el" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea6c37f0724299a9c88e2f622d3246d63b">XMP_Const.h</a>
+</li>
+<li>kXMP_CINFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad2935ea79b4f9253891e3a68a002c5bb">XMP_Const.h</a>
+</li>
+<li>kXMP_DeleteExisting
+: <a class="el" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04addd07b4a38b25ab3841e28a9cb169d1c">XMP_Const.h</a>
+</li>
+<li>kXMP_EncodeUTF16Big
+: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea310e4cbf639e783163778566b439f01d">XMP_Const.h</a>
+</li>
+<li>kXMP_EncodeUTF16Little
+: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eafc6417e382c98a2d507830de62fd4830">XMP_Const.h</a>
+</li>
+<li>kXMP_EncodeUTF32Big
+: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea793e99d9ea83f0aadd5b4193a95ea713">XMP_Const.h</a>
+</li>
+<li>kXMP_EncodeUTF32Little
+: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eae0137d98ea990fa23d292489031ba09e">XMP_Const.h</a>
+</li>
+<li>kXMP_EncodeUTF8
+: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadc8f241694f5a758e5ee3f6db69d02ab">XMP_Const.h</a>
+</li>
+<li>kXMP_EncodingMask
+: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eaeb79571cac99ee97feefb0347b1c1845">XMP_Const.h</a>
+</li>
+<li>kXMP_EncoreProjectFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dae28efb65bde55f3f8ddfd1fd8a168e2a">XMP_Const.h</a>
+</li>
+<li>kXMP_EPSFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad947e6da0c4d923195d93e0c53a79c4e">XMP_Const.h</a>
+</li>
+<li>kXMP_ExactPacketLength
+: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadb35599da481cc22ea6342b7b4de6bc6">XMP_Const.h</a>
+</li>
+<li>kXMP_FLAFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dab1eeba00d1d92e313acfe68cd054daf9">XMP_Const.h</a>
+</li>
+<li>kXMP_FLVFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da455bc501088bbd8061fe3ea386a5066f">XMP_Const.h</a>
+</li>
+<li>kXMP_GIFFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da851d2f4525d705cd2dcabb540d0ddc06">XMP_Const.h</a>
+</li>
+<li>kXMP_HTMLFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da542634e6051139c44fd7b92d08c64760">XMP_Const.h</a>
+</li>
+<li>kXMP_IllustratorFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da82935c41c6222ff4cca954278f18e554">XMP_Const.h</a>
+</li>
+<li>kXMP_ImplReservedMask
+: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5ae154b58429b257b18963ba3503e67974">XMP_Const.h</a>
+</li>
+<li>kXMP_IncludeRDFHash
+: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea23054ea4ab89dfd802f14cb389e18745">XMP_Const.h</a>
+</li>
+<li>kXMP_IncludeThumbnailPad
+: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea0b659b3b544c7a5a076fbd3132cd7f7a">XMP_Const.h</a>
+</li>
+<li>kXMP_InDesignFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da79cbf96ecc4ac3e0ebfb2d182bc75e60">XMP_Const.h</a>
+</li>
+<li>kXMP_InsertAfterItem
+: <a class="el" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04a98cedd5fa29d47abb2ac8903ac7f5a05">XMP_Const.h</a>
+</li>
+<li>kXMP_InsertBeforeItem
+: <a class="el" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04a873411f673fc2a6337083fd024df727f">XMP_Const.h</a>
+</li>
+<li>kXMP_IterAliases
+: <a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a3333450505cd3712320aeac895e541b9">XMP_Const.h</a>
+</li>
+<li>kXMP_IterClassMask
+: <a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a93f77b837d89759af3a721712c13f044">XMP_Const.h</a>
+</li>
+<li>kXMP_IterJustChildren
+: <a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635ab26e1a38d1d0343fcc5bdaab1b60e3ed">XMP_Const.h</a>
+</li>
+<li>kXMP_IterJustLeafName
+: <a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635acf22e638f4144bcec8207b2ab69bb344">XMP_Const.h</a>
+</li>
+<li>kXMP_IterJustLeafNodes
+: <a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a4589f99b5b4a55e785e3baf4fe1d9b19">XMP_Const.h</a>
+</li>
+<li>kXMP_IterNamespaces
+: <a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635aa325d9ffba68a934f0a0a0f6ecfc2f7b">XMP_Const.h</a>
+</li>
+<li>kXMP_IterOmitQualifiers
+: <a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a1b91947105ae68c48c5d5e36aa70d101">XMP_Const.h</a>
+</li>
+<li>kXMP_IterProperties
+: <a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635aa0643c076a3b3737ff88ed20f16afd2b">XMP_Const.h</a>
+</li>
+<li>kXMP_IterSkipSiblings
+: <a class="el" href="XMP__Const_8h.html#a0411cd49bb5b71852cecd93bcbf0ca2da2537b4b8db838f85b47988b198cd2a12">XMP_Const.h</a>
+</li>
+<li>kXMP_IterSkipSubtree
+: <a class="el" href="XMP__Const_8h.html#a0411cd49bb5b71852cecd93bcbf0ca2dab0b540cd3841f411471a827f833c606e">XMP_Const.h</a>
+</li>
+<li>kXMP_JPEG2KFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da78b8fa38aaa2067e3e1baa0dcaa7571d">XMP_Const.h</a>
+</li>
+<li>kXMP_JPEGFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad752b2d3e1139e0745223a9385ef6487">XMP_Const.h</a>
+</li>
+<li>kXMP_MOVFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daebdb172c8a75b4ead2eff2d26ed3dc37">XMP_Const.h</a>
+</li>
+<li>kXMP_MP3File
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf3ee34ed2bc26dec0e2d572eeb0de89b">XMP_Const.h</a>
+</li>
+<li>kXMP_MPEG2File
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dab58eaebed494530072ad990ac7a9807a">XMP_Const.h</a>
+</li>
+<li>kXMP_MPEG4File
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da89e6282c3f0c8966d788500f5d8eaa91">XMP_Const.h</a>
+</li>
+<li>kXMP_MPEGFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da043afdc1db730db9ac03c505140c61c8">XMP_Const.h</a>
+</li>
+<li>kXMP_MXFFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da4b3477bdc53fae1511104fc54f88d134">XMP_Const.h</a>
+</li>
+<li>kXMP_OmitAllFormatting
+: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea79230f1d70d2625f7650db6ff5b1ea29">XMP_Const.h</a>
+</li>
+<li>kXMP_OmitPacketWrapper
+: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadbb9e4c7ee139da0dd4126ddea794c76">XMP_Const.h</a>
+</li>
+<li>kXMP_OmitXMPMetaElement
+: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea9fb498d749d939e2ba9adf555a75b856">XMP_Const.h</a>
+</li>
+<li>kXMP_P2File
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dabad9584845edf66f2f8fc3c336977e34">XMP_Const.h</a>
+</li>
+<li>kXMP_PacketInfoVersion
+: <a class="el" href="XMP__Const_8h.html#a16af7b253440dadd46a80a4b9fddba4da767b4847575a8de28e691be660d43817">XMP_Const.h</a>
+</li>
+<li>kXMP_ParseMoreBuffers
+: <a class="el" href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca79b36427b7bf0c0a1ed010a44dec2d3e">XMP_Const.h</a>
+</li>
+<li>kXMP_PDFFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da17ab6d429c1550eb3cc16d2e544b78eb">XMP_Const.h</a>
+</li>
+<li>kXMP_PhotoshopFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da22b478a9d0d52d12e8e4a1181024eb1c">XMP_Const.h</a>
+</li>
+<li>kXMP_PNGFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dac989381d37de320495e4d13f9ecc6371">XMP_Const.h</a>
+</li>
+<li>kXMP_PostScriptFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da52c90935ee28a0875a49843d463cad70">XMP_Const.h</a>
+</li>
+<li>kXMP_PremiereProjectFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daeff4f68cd5162370f7bf938a868e280d">XMP_Const.h</a>
+</li>
+<li>kXMP_PremiereTitleFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da1ad712bbd349dc899ca1e71971032b0a">XMP_Const.h</a>
+</li>
+<li>kXMP_PropArrayFormMask
+: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a6b5b5f4b869994b7390edc9589745e9f">XMP_Const.h</a>
+</li>
+<li>kXMP_PropArrayIsAlternate
+: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a2596b1f0ea4600270c99102c86b5f1f1">XMP_Const.h</a>
+</li>
+<li>kXMP_PropArrayIsAltText
+: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aba253f67a6cf44b7438a3f96b516846d">XMP_Const.h</a>
+</li>
+<li>kXMP_PropArrayIsOrdered
+: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5af1cdb3b0a3e852ec55e747a1686aba04">XMP_Const.h</a>
+</li>
+<li>kXMP_PropArrayIsUnordered
+: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a0d70c23394c0676657c89de5491192c0">XMP_Const.h</a>
+</li>
+<li>kXMP_PropArrayLocationMask
+: <a class="el" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04aef8c1934a17b0e5d8f0b20a7e89df0df">XMP_Const.h</a>
+</li>
+<li>kXMP_PropCompositeMask
+: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a60a9f26fb66c2e65cf40d9bc44968956">XMP_Const.h</a>
+</li>
+<li>kXMP_PropHasAliases
+: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a1f819ef281d1f52c4c12d5d02f49d3f0">XMP_Const.h</a>
+</li>
+<li>kXMP_PropHasLang
+: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a3fa5ed87edc731bfb3817f58ba70a217">XMP_Const.h</a>
+</li>
+<li>kXMP_PropHasQualifiers
+: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a8e34a33a2eed56499d4f6f62da25d159">XMP_Const.h</a>
+</li>
+<li>kXMP_PropHasType
+: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aeff16fdf167afc73db25b30b529bd9d5">XMP_Const.h</a>
+</li>
+<li>kXMP_PropIsAlias
+: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5ab975c19fb5c50f732a1a0d84dadb7c37">XMP_Const.h</a>
+</li>
+<li>kXMP_PropIsDerived
+: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a0d898ea7f6b3db513bb24f8a6a285877">XMP_Const.h</a>
+</li>
+<li>kXMP_PropIsInternal
+: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a48097c6ea309f240965d77ab564a5464">XMP_Const.h</a>
+</li>
+<li>kXMP_PropIsQualifier
+: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a30146ed5209f5c3eb4eeb1fd8e4fb9fe">XMP_Const.h</a>
+</li>
+<li>kXMP_PropIsStable
+: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a81dcd06251771a0ddee6c1e36128c65c">XMP_Const.h</a>
+</li>
+<li>kXMP_PropValueIsArray
+: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a9b7706e0f0716ac7546bdc24ffedd0bc">XMP_Const.h</a>
+</li>
+<li>kXMP_PropValueIsStruct
+: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e">XMP_Const.h</a>
+</li>
+<li>kXMP_PropValueIsURI
+: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aab51f87b5c48f47f5cefb9e03293dafb">XMP_Const.h</a>
+</li>
+<li>kXMP_PropValueOptionsMask
+: <a class="el" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04ad1b42a8a4c479d9bfaf406b79f2e1465">XMP_Const.h</a>
+</li>
+<li>kXMP_ReadOnlyPacket
+: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea238c792322c5bd5f9e4db3165e01f9d6">XMP_Const.h</a>
+</li>
+<li>kXMP_REDFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daab032aa36aec082c6b3a8300548346f5">XMP_Const.h</a>
+</li>
+<li>kXMP_RequireXMPMeta
+: <a class="el" href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca1e533852436acf75f594a4fb50a64400">XMP_Const.h</a>
+</li>
+<li>kXMP_SeekFromCurrent
+: <a class="el" href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563fa4e179367a02390075e632aca6e115925">XMP_Const.h</a>
+</li>
+<li>kXMP_SeekFromEnd
+: <a class="el" href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563faeedc991a0194b932ae4a47307843baf6">XMP_Const.h</a>
+</li>
+<li>kXMP_SeekFromStart
+: <a class="el" href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563faf52720b8c894653e4a089a9c0331ee47">XMP_Const.h</a>
+</li>
+<li>kXMP_SESFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da42cb8767d9cf16eaeb7aec68a4f224e9">XMP_Const.h</a>
+</li>
+<li>kXMP_SonyHDVFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daa0edb070c11f87c3dad9f8f7a83b9b5e">XMP_Const.h</a>
+</li>
+<li>kXMP_StrictAliasing
+: <a class="el" href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca7107906eab0e1fa6f9f2dc6254ad88b1">XMP_Const.h</a>
+</li>
+<li>kXMP_SVGFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf775c60f1da0e8c34590744a89e66c79">XMP_Const.h</a>
+</li>
+<li>kXMP_SWFFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da564a8095f65d951f451e16eb56650597">XMP_Const.h</a>
+</li>
+<li>kXMP_TextFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da27051cd824d3ae7bb59e3af7a7908ffd">XMP_Const.h</a>
+</li>
+<li>kXMP_TIFFFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dadc0edf25d933c2a21b25449692c3ba08">XMP_Const.h</a>
+</li>
+<li>kXMP_TimeEastOfUTC
+: <a class="el" href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a68851b70cc1d2346fa21bc0b0ae6cfec">XMP_Const.h</a>
+</li>
+<li>kXMP_TimeIsUTC
+: <a class="el" href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a3f41be55491204982acb39c9f6c7ad13">XMP_Const.h</a>
+</li>
+<li>kXMP_TimeWestOfUTC
+: <a class="el" href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a511551ce156d5fd96c26ad464b837801">XMP_Const.h</a>
+</li>
+<li>kXMP_UCFFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da96804f7b8ce83786051c4dac4930aa96">XMP_Const.h</a>
+</li>
+<li>kXMP_UnknownFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719">XMP_Const.h</a>
+</li>
+<li>kXMP_UseCanonicalFormat
+: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea15e3fb0e64614c574ed554f2f72c0a5d">XMP_Const.h</a>
+</li>
+<li>kXMP_UseCompactFormat
+: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea041dc6b7b8684be7112ae40f5f259ebb">XMP_Const.h</a>
+</li>
+<li>kXMP_WAVFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dacc1fcd4e52423c0dd2966a2e92352fb8">XMP_Const.h</a>
+</li>
+<li>kXMP_WMAVFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da78c62f7c10b16b1a862d93f6226a4622">XMP_Const.h</a>
+</li>
+<li>kXMP_XDCAM_EXFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da45bf9b21d5ffed3594fbd585c47cc4fc">XMP_Const.h</a>
+</li>
+<li>kXMP_XDCAM_FAMFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da5f78caa0871695cc92e058e4f4b2dd57">XMP_Const.h</a>
+</li>
+<li>kXMP_XDCAM_SAMFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da64fe7908df6341e13d9d8c8199cdf852">XMP_Const.h</a>
+</li>
+<li>kXMP_XMLFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad217b996403fa13caef3d6e978023124">XMP_Const.h</a>
+</li>
+<li>kXMPErr_AssertFailure
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14bd6c24087d280c722c1a044eec27d6">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadBlockFormat
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aacc6262e9c1fd1a64e3d10cedfb7dcb1">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadFileFormat
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa0a05e07925d1f3daf5f36f6da0840f8">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadIndex
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a31adb57da79b4fb1f1f5f999ec740010">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadIPTC
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a23b2d7cab10b3d80549e6b60855bb15e">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadIterPosition
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2584fc813bfcd9158b7adf28a3454bb9">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadJPEG
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad685e1f839e3bc53dfc55611a0803cee">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadMPEG
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad596daed4ac92f8bf7871669d03effad">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadObject
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a115f3d761d2cad952aab23f35cbdf3a1">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadOptions
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a40ca77d98bd366442bb8d438c420a444">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadParam
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a52d197a8b0af3c55f16958162a4132f1">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadParse
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a052b1b525fba7da8c98be5c135f434b8">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadPSD
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad98fc9a9c050e9fc19c3af9c8abb2d6d">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadPSIR
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a1606a687cb790af16dc561b2a8f2e6a3">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadRDF
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5464b823e619618d9aa58433cdb45a8e">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadSchema
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2bc66eec6ce830979089d5c336f75539">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadSerialize
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4f936ff6788ce17f6098b7cbda77ed9">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadTIFF
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aecd25299aa177de7bc7f3674fcf2e22d">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadUnicode
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4cf86fa29624c5e19111e09a97fe05f">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadValue
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a716956a038782e595ce61d3fbdd1a25a">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadXML
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac57f1cf1c24778536fd32972e87334c5">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadXMP
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a211bb632ed1264d9e2236f35c6414821">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadXPath
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a3f1efec0aa5452f43c55c05aba616ef7">XMP_Const.h</a>
+</li>
+<li>kXMPErr_Deprecated
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14342c486ddf394ebc110a446becbfa7">XMP_Const.h</a>
+</li>
+<li>kXMPErr_DiskSpace
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa2f19dfd8ce27b5713c79e34f2052e40">XMP_Const.h</a>
+</li>
+<li>kXMPErr_EmptyIterator
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a078c69d0d76f25187a11981a2552b179">XMP_Const.h</a>
+</li>
+<li>kXMPErr_EnforceFailure
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa856bb36a9742d8542b483e00fc6511b">XMP_Const.h</a>
+</li>
+<li>kXMPErr_ExternalFailure
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a82941dc15c6ccde6b8fb2f9cc85c2eeb">XMP_Const.h</a>
+</li>
+<li>kXMPErr_FilePathNotAFile
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a0819111429c734ca5ef895c193846351">XMP_Const.h</a>
+</li>
+<li>kXMPErr_FilePermission
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a577b0e80acf44125f0dc49e5885e0824">XMP_Const.h</a>
+</li>
+<li>kXMPErr_InternalFailure
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a8babbd758d2c64fd04e85fa48e0675c0">XMP_Const.h</a>
+</li>
+<li>kXMPErr_NoError
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ae2aec0f3b8db282cbba40e4bcf746ba9">XMP_Const.h</a>
+</li>
+<li>kXMPErr_NoFile
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2874a5dcddf253a17d75a147b2ed4933">XMP_Const.h</a>
+</li>
+<li>kXMPErr_NoFileHandler
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a10fa053f279fed01b075f34a70f11795">XMP_Const.h</a>
+</li>
+<li>kXMPErr_NoMemory
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a69eb7fef422fbca62cdbc554afffd813">XMP_Const.h</a>
+</li>
+<li>kXMPErr_ProgressAbort
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5227060f282a86c8ea1a944107751dd1">XMP_Const.h</a>
+</li>
+<li>kXMPErr_ReadError
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2a17df0c0b690f5b7829bc4ca16efce2">XMP_Const.h</a>
+</li>
+<li>kXMPErr_RejectedFileExtension
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad9d8c98663e3ead894841807ab4548f8">XMP_Const.h</a>
+</li>
+<li>kXMPErr_StdException
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5322df07e2a7792824d2468c4837f1cb">XMP_Const.h</a>
+</li>
+<li>kXMPErr_TBD
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409acd9fa1b621efafd5b218e3a785cbeda1">XMP_Const.h</a>
+</li>
+<li>kXMPErr_TooLargeForJPEG
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa9c1c20e53db12b20068d830a8990c0b">XMP_Const.h</a>
+</li>
+<li>kXMPErr_Unavailable
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac7ac408582c194cc723a24acb8b4e4c3">XMP_Const.h</a>
+</li>
+<li>kXMPErr_Unimplemented
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a3de1ac8f4e4afb705d5a4654cb9579e2">XMP_Const.h</a>
+</li>
+<li>kXMPErr_Unknown
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14813595824de97382fffeae7b6fe581">XMP_Const.h</a>
+</li>
+<li>kXMPErr_UnknownException
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aac7558097a1f5a0f99097199f1bf8ff4">XMP_Const.h</a>
+</li>
+<li>kXMPErr_UserAbort
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4ba7b1a57629e4994a0f7a515d51195">XMP_Const.h</a>
+</li>
+<li>kXMPErr_WriteError
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409afca1d169d7e3cb3ba84c81700c1b9b22">XMP_Const.h</a>
+</li>
+<li>kXMPErrSev_FileFatal
+: <a class="el" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a2bd1ff3ba036640f0c76d68a03cf94f7">XMP_Const.h</a>
+</li>
+<li>kXMPErrSev_OperationFatal
+: <a class="el" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960afb962bdcf570af9aef4e32b5f279d1a4">XMP_Const.h</a>
+</li>
+<li>kXMPErrSev_ProcessFatal
+: <a class="el" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a768126806f8c7b7c107314610125deb3">XMP_Const.h</a>
+</li>
+<li>kXMPErrSev_Recoverable
+: <a class="el" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a068fdc8c88dcce62a7b42788a572af61">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_AllowsOnlyXMP
+: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea4a183c3ec4994cf09993e5b31dee9733">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_AllowsSafeUpdate
+: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea9fe958d4ccde02516a3a267db63874cd">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_CanExpand
+: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea126c9cc056f6569c424431edbcb9521c">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_CanInjectXMP
+: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea23a3eb2a5e95292036a93ad6666fa388">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_CanNotifyProgress
+: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea17578d45ae3c09a8d08189ea544052b1">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_CanReconcile
+: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceafc2bc7cfdd28a326788d563ec0357694">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_CanRewrite
+: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea8957f1ef358b4ab3a1df519903f2ae07">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_FolderBasedFormat
+: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceaa2a6a4b744b40055387234632b688fcd">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_ForceGivenHandler
+: <a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaab8cbbeef0e99d246907a4375766e21a2">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_HandlerOwnsFile
+: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceafc2c5b585e698ebf24a9379de35954b4">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_IgnoreLocalText
+: <a class="el" href="XMP__Const_8h.html#aba01db17f4a2bfbc3db60dc172972a25a9b9c1ef01e49193a167c40156df07b50">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_NeedsPreloading
+: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea798c55f5144eedde76f8329a056210b2">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_NeedsReadOnlyPacket
+: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceaee13099f78018a5e1ce033266c27e999">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_OpenForRead
+: <a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa4c61ec4ed571dbc5f1832ff6772320d2">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_OpenForUpdate
+: <a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa91fa388b3888bcb6a68615537b66a49b">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_OpenLimitedScanning
+: <a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa77f34b1873bb2584feabe26a2c8f1182">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_OpenOnlyXMP
+: <a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaa58279b2b1311242e7374117f455bb96">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_OpenRepairFile
+: <a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa05acd568597f72b4812b432ea6cf606a">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_OpenStrictly
+: <a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa0bef4db2ecdaf82a85df9e9d417aab18">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_OpenUsePacketScanning
+: <a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa77b47c63e579b28cbd25083ceb58c285">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_OpenUseSmartHandler
+: <a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaf6332435c7fc89cb0b7381e13fe43646">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_OptimizeFileLayout
+: <a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaf5f2ebd401758a14dc52c5ee403303b5">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_PrefersInPlace
+: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceab55e1873e67048928de3fc47550678c3">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_ReturnsRawPacket
+: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceadb116eed738d1fcdfe4ab9c1635e08ea">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_ServerMode
+: <a class="el" href="XMP__Const_8h.html#aba01db17f4a2bfbc3db60dc172972a25aee2f09481347c29d6c06951b0d81e145">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_UpdateSafely
+: <a class="el" href="XMP__Const_8h.html#a6b7b47dd702d9e331586d485013fd1eaadbf8d744f355ef9800a4ec44325baf54">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_UsesSidecarXMP
+: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcead3027b786992e2a4762a4fa37c92943c">XMP_Const.h</a>
+</li>
+<li>kXMPTemplate_AddNewProperties
+: <a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a145c259f83048b811c7b35bc3b339c42">XMP_Const.h</a>
+</li>
+<li>kXMPTemplate_ClearUnnamedProperties
+: <a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a9dac536fe6ee25de76d45bf6615abd46">XMP_Const.h</a>
+</li>
+<li>kXMPTemplate_IncludeInternalProperties
+: <a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a872d2b769e775e281984cc63e28714ea">XMP_Const.h</a>
+</li>
+<li>kXMPTemplate_ReplaceExistingProperties
+: <a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57aae2e0fe43295736a15f0bb76ffe02544">XMP_Const.h</a>
+</li>
+<li>kXMPTemplate_ReplaceWithDeleteEmpty
+: <a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a81e1b6fd067fc9ad62bc803c98701bd5">XMP_Const.h</a>
+</li>
+<li>kXMPTS_Maybe
+: <a class="el" href="XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba7a73219cd125bb21e294ba474112a584">XMP_Const.h</a>
+</li>
+<li>kXMPTS_No
+: <a class="el" href="XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba2a88f4d4589bf413377283843f70bc90">XMP_Const.h</a>
+</li>
+<li>kXMPTS_Yes
+: <a class="el" href="XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55bacf4bfe01497bd0d88c2af337e4bac39e">XMP_Const.h</a>
+</li>
+<li>kXMPUtil_AllowCommas
+: <a class="el" href="XMP__Const_8h.html#abed82baf7f470b522273a3e37c24c600ad6d41710c689f16d19ac26dc9f5cc506">XMP_Const.h</a>
+</li>
+<li>kXMPUtil_DeleteEmptyValues
+: <a class="el" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a97753b4c5afda9c55e807e41377d86d9">XMP_Const.h</a>
+</li>
+<li>kXMPUtil_DoAllProperties
+: <a class="el" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a8ddfb0572b7602a52e533d92d8b1e9fb">XMP_Const.h</a>
+</li>
+<li>kXMPUtil_IncludeAliases
+: <a class="el" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a843589b878f53d42d59258f945ad770b">XMP_Const.h</a>
+</li>
+<li>kXMPUtil_ReplaceOldValues
+: <a class="el" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388adab4dad658d2d218c5b1e7d829b12962">XMP_Const.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/globals_func.html b/docs/API/globals_func.html
new file mode 100755
index 0000000..0249143
--- /dev/null
+++ b/docs/API/globals_func.html
@@ -0,0 +1,430 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>File Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li class="current"><a href="#index_w"><span>w</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_func.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
+<li>WrapErrorNotify()
+: <a class="el" href="WXMPMeta_8hpp.html#ab4f052c58b02cfecc26f8f2388249f4c">WXMPMeta.hpp</a>
+</li>
+<li>WrapFilesErrorNotify()
+: <a class="el" href="WXMPFiles_8hpp.html#a06a216001c8aed3b678bc2bbe510f59e">WXMPFiles.hpp</a>
+</li>
+<li>WrapProgressReport()
+: <a class="el" href="WXMPFiles_8hpp.html#a595767f50ed53071f5240a94596a3451">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_CanPutXMP_1()
+: <a class="el" href="WXMPFiles_8hpp.html#a2ef5dde7ef08bd1c25ffc1950e6b93d5">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_CheckFileFormat_1()
+: <a class="el" href="WXMPFiles_8hpp.html#a793167f4d653d6f573dc0f4c4f07b298">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_CheckPackageFormat_1()
+: <a class="el" href="WXMPFiles_8hpp.html#a0cbf8fcfb5d011fa62c6409a2cd84ede">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_CloseFile_1()
+: <a class="el" href="WXMPFiles_8hpp.html#a2484fe15e37f4f2644f3568be0c7690e">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_CTor_1()
+: <a class="el" href="WXMPFiles_8hpp.html#a973b744c33e9a06d56f8b6b3a06394a4">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_DecrementRefCount_1()
+: <a class="el" href="WXMPFiles_8hpp.html#a7d423602bfc12e20d83a36df777c4c97">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_GetAssociatedResources_1()
+: <a class="el" href="WXMPFiles_8hpp.html#af963f839791b4de926e42680c091af32">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_GetFileInfo_1()
+: <a class="el" href="WXMPFiles_8hpp.html#a661d52226bb7f7bffb8f9a053721dcab">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_GetFileModDate_1()
+: <a class="el" href="WXMPFiles_8hpp.html#aefdd49820e9bfede87457429d519c8d2">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_GetFormatInfo_1()
+: <a class="el" href="WXMPFiles_8hpp.html#a71037373c70c18a183c7a9ee7f7babc9">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_GetVersionInfo_1()
+: <a class="el" href="WXMPFiles_8hpp.html#a96877191902363ca391c357b0bdeedf4">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_GetXMP_1()
+: <a class="el" href="WXMPFiles_8hpp.html#afd223e1c41a44dadcf1e4e9ab765ba7a">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_IncrementRefCount_1()
+: <a class="el" href="WXMPFiles_8hpp.html#abd63a02504b3199ea8bd5484a58ff02c">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_Initialize_1()
+: <a class="el" href="WXMPFiles_8hpp.html#a81794d63d62975b313aff0f869c7dded">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_Initialize_2()
+: <a class="el" href="WXMPFiles_8hpp.html#a39fce6bafe20c2847a288c6bded9dcc8">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_IsMetadataWritable_1()
+: <a class="el" href="WXMPFiles_8hpp.html#a5bfb800ea6bf214b5ac4853e2cfff3cc">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_OpenFile_1()
+: <a class="el" href="WXMPFiles_8hpp.html#a58e70573d754cc63966da6fc3fc70a91">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_PutXMP_1()
+: <a class="el" href="WXMPFiles_8hpp.html#aba40b211c434f8265c102c9ad3e801b5">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_ResetErrorCallbackLimit_1()
+: <a class="el" href="WXMPFiles_8hpp.html#ab91f3a925e6288c7fb1dc459019b3405">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_SetAbortProc_1()
+: <a class="el" href="WXMPFiles_8hpp.html#a3334dd84b04167cc3ae55c77a67f9b2a">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_SetDefaultErrorCallback_1()
+: <a class="el" href="WXMPFiles_8hpp.html#a515bb8c705a05236a146cbc7cde59055">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_SetDefaultProgressCallback_1()
+: <a class="el" href="WXMPFiles_8hpp.html#a077600358a735f85573174499356f0c1">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_SetErrorCallback_1()
+: <a class="el" href="WXMPFiles_8hpp.html#a15b59bc5c4c18355b097b3d0c85ecc3d">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_SetProgressCallback_1()
+: <a class="el" href="WXMPFiles_8hpp.html#ae613a8d848ffd06181ef67910ba3dcdd">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_Terminate_1()
+: <a class="el" href="WXMPFiles_8hpp.html#a80f57c97820f7c86ddfccd2814b2c973">WXMPFiles.hpp</a>
+</li>
+<li>WXMPIterator_DecrementRefCount_1()
+: <a class="el" href="WXMPIterator_8hpp.html#a6edb320022815734935207c5d81453c1">WXMPIterator.hpp</a>
+</li>
+<li>WXMPIterator_IncrementRefCount_1()
+: <a class="el" href="WXMPIterator_8hpp.html#aaad6b1b5368943be9cb4ce3285c3f5f3">WXMPIterator.hpp</a>
+</li>
+<li>WXMPIterator_Next_1()
+: <a class="el" href="WXMPIterator_8hpp.html#a3d19f210969f98668bb9a80281722d5b">WXMPIterator.hpp</a>
+</li>
+<li>WXMPIterator_PropCTor_1()
+: <a class="el" href="WXMPIterator_8hpp.html#a6835fb3f1b44169a838466f23f197f4d">WXMPIterator.hpp</a>
+</li>
+<li>WXMPIterator_Skip_1()
+: <a class="el" href="WXMPIterator_8hpp.html#ae6bb05117662013a9a5873f9d8ce4f2c">WXMPIterator.hpp</a>
+</li>
+<li>WXMPIterator_TableCTor_1()
+: <a class="el" href="WXMPIterator_8hpp.html#a4bcacc41e340e5c12ece3814d2a76d9e">WXMPIterator.hpp</a>
+</li>
+<li>WXMPMeta_AppendArrayItem_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a76960e4bc1344208d70a6055448ce591">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_Clone_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a0cc1264e977ecceec1307b490f70cdcd">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_CountArrayItems_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a48f79b8f9005c0cd93e0cf03bbe43024">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_CTor_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a3fb6f849c25f5bf964beb7eb9e98049d">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_DecrementRefCount_1()
+: <a class="el" href="WXMPMeta_8hpp.html#ac9ff1318eb934f05568d7f8f7177acf6">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_DeleteArrayItem_1()
+: <a class="el" href="WXMPMeta_8hpp.html#ae83bc466041e54f8e32b3909b10a63fe">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_DeleteLocalizedText_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a198c0bd7ce71a4a1ee5b4ab6daba500e">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_DeleteNamespace_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a8887351f8aee3cc57ababc137ab0719a">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_DeleteProperty_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a31f0b721c8e755b228a7ae66fa28b0b7">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_DeleteQualifier_1()
+: <a class="el" href="WXMPMeta_8hpp.html#abf5878ee7b66e8c18d45006579ba41d3">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_DeleteStructField_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a50a73f676357dfdbf1c2d5661020e43e">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_DoesArrayItemExist_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a6f0508454f99a854c74744f177c1294d">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_DoesPropertyExist_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a30e8a56bbc8c98a4787a6e6b4a1b9d1f">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_DoesQualifierExist_1()
+: <a class="el" href="WXMPMeta_8hpp.html#ab3c906d916e6dba4f2d422849a642fce">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_DoesStructFieldExist_1()
+: <a class="el" href="WXMPMeta_8hpp.html#adb8b207d7a45ffdc126092c97ce95010">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_DumpNamespaces_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a0328d3f6b63a301c17469f3a636bee8d">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_DumpObject_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a68c7253abe28cd30ad7c7657c388f30e">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_Erase_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a3cce18be810b681d3dcd2a0798fb2990">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_GetArrayItem_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a6d405bbe1c37ddd8ee7423d7be317f52">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_GetGlobalOptions_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a58a125d8a9eeee3a8906d50262faf06c">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_GetIXMPMetadata_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a0685ed8dc59360366c629cdc559076ce">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_GetLocalizedText_1()
+: <a class="el" href="WXMPMeta_8hpp.html#ac166c8171e8e4079cfbaadbc20bfc4cc">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_GetNamespacePrefix_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a7f407dba2b3fee31aad4cc0887ba7a0e">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_GetNamespaceURI_1()
+: <a class="el" href="WXMPMeta_8hpp.html#ae133a695d6efe0db6528395345f3c0c6">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_GetObjectName_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a7e9df8e5480d241a7ef7b033aa4e871f">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_GetObjectOptions_1()
+: <a class="el" href="WXMPMeta_8hpp.html#aaa50f01092ba1f94c9acaa390fb7afe9">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_GetProperty_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a2c650c402ba4850b082c2204eb4ecb43">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_GetProperty_Bool_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a38c91b47500447c40cfb3b38d73c749c">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_GetProperty_Date_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a27bd62e33f3fe7fd6777b1ef394d7af5">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_GetProperty_Float_1()
+: <a class="el" href="WXMPMeta_8hpp.html#ae80228876bb345c97a0fdebc52d9b5e4">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_GetProperty_Int64_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a3c95f29236b9e3a16fec0421479da937">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_GetProperty_Int_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a37107581e02cf1197d04118b0bfcffe5">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_GetQualifier_1()
+: <a class="el" href="WXMPMeta_8hpp.html#ad71ca4432c9e58f29caa355f70bc4f52">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_GetStructField_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a418658d30d2fd04c9080b3298a959c8d">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_GetVersionInfo_1()
+: <a class="el" href="WXMPMeta_8hpp.html#aa678642f09d4bc3ba83b55364112bf25">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_IncrementRefCount_1()
+: <a class="el" href="WXMPMeta_8hpp.html#ac85ab52aa3ea72b7a3a5a0ba90cb58a3">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_Initialize_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a459d905958efba79649c9884ecbfc3d8">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_ParseFromBuffer_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a9f3c397b927d7da7c84ee3a5a03ee2df">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_RegisterNamespace_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a0b32b12b061f62eb3f8ec1784165e03a">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_ResetErrorCallbackLimit_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a4155c5b0ae891213ea2d8f9872c215e8">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_SerializeToBuffer_1()
+: <a class="el" href="WXMPMeta_8hpp.html#af2ffbda0f3e382835296205504517d94">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_SetArrayItem_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a5a3ced9ef902d7281a4d0e3bbed8d0af">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_SetDefaultErrorCallback_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a21071def1d2284a61790b2d971231471">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_SetErrorCallback_1()
+: <a class="el" href="WXMPMeta_8hpp.html#ac4103e2833fe7efa8a46145a38e03ed5">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_SetGlobalOptions_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a1239ebede304d572f34b1319c0b14c05">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_SetLocalizedText_1()
+: <a class="el" href="WXMPMeta_8hpp.html#ae2b5b7330b5a153cc1de292e7ba291e5">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_SetObjectName_1()
+: <a class="el" href="WXMPMeta_8hpp.html#afee2f3c13f8dcb9f72104dd36eff4d68">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_SetObjectOptions_1()
+: <a class="el" href="WXMPMeta_8hpp.html#ae4afaee6e6376e126b919e73a8461e1e">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_SetProperty_1()
+: <a class="el" href="WXMPMeta_8hpp.html#aa9fcfcc4ad994abaa91574b956adc998">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_SetProperty_Bool_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a1e0b97d88538b256724218c24ec2aa06">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_SetProperty_Date_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a9a1bbebe74385a21e8eecd5883d01381">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_SetProperty_Float_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a5cf4a4b8c3ecfa12567ffdca5502f322">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_SetProperty_Int64_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a1659214d8debfaa1a7543ff4b96d700a">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_SetProperty_Int_1()
+: <a class="el" href="WXMPMeta_8hpp.html#abee87dd946056b03a1a650524ae3ce13">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_SetQualifier_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a4fcdf3f4212ff34e0b24a76e11c1c583">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_SetStructField_1()
+: <a class="el" href="WXMPMeta_8hpp.html#ad9ee99501a3dabc327b972ab8c3c000d">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_Sort_1()
+: <a class="el" href="WXMPMeta_8hpp.html#ac1d4f2bc9d0da42cda44f54071220eb5">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_Terminate_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a06d38f8fdf6a46ff8e672a98fb50f2f4">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_Use_CPP_DOM_APIs_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a6d4b43bab339b01d216b29d89e695308">WXMPMeta.hpp</a>
+</li>
+<li>WXMPUtils_ApplyTemplate_1()
+: <a class="el" href="WXMPUtils_8hpp.html#a506f87a34b8f983115c3bbfb4eba46f2">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_CatenateArrayItems_1()
+: <a class="el" href="WXMPUtils_8hpp.html#ae0b2234822da68ea00aeb7485aab9efe">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_CompareDateTime_1()
+: <a class="el" href="WXMPUtils_8hpp.html#ad0b48ebb31c439d092185aa2d4fbfc79">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_ComposeArrayItemPath_1()
+: <a class="el" href="WXMPUtils_8hpp.html#ae6de22173661f35cf6926806cb052554">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_ComposeFieldSelector_1()
+: <a class="el" href="WXMPUtils_8hpp.html#aa7b4576af21a7c816768f1983100d432">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_ComposeLangSelector_1()
+: <a class="el" href="WXMPUtils_8hpp.html#af1bad4b3c7d72cff883c0ab0705e6c69">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_ComposeQualifierPath_1()
+: <a class="el" href="WXMPUtils_8hpp.html#a323219f2ccf286de50a5684a024a25d6">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_ComposeStructFieldPath_1()
+: <a class="el" href="WXMPUtils_8hpp.html#a691c12dfc25a4bb4baf82195248ab1c3">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_ConvertFromBool_1()
+: <a class="el" href="WXMPUtils_8hpp.html#ad80db557044003d1eb9c692a8703dead">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_ConvertFromDate_1()
+: <a class="el" href="WXMPUtils_8hpp.html#a2555ce5bb9789967eb75e591e83772fa">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_ConvertFromFloat_1()
+: <a class="el" href="WXMPUtils_8hpp.html#add25c775ebd8186f611365fb45c513df">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_ConvertFromInt64_1()
+: <a class="el" href="WXMPUtils_8hpp.html#a180b0ae8451b9606003f1e6e38287ae8">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_ConvertFromInt_1()
+: <a class="el" href="WXMPUtils_8hpp.html#ab651b25af61aec9fee3100166911d6c7">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_ConvertToBool_1()
+: <a class="el" href="WXMPUtils_8hpp.html#ac6ea9e5527993203e86849e5d3699bcb">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_ConvertToDate_1()
+: <a class="el" href="WXMPUtils_8hpp.html#ace54acfb2efef9cc192791b8046f6b3d">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_ConvertToFloat_1()
+: <a class="el" href="WXMPUtils_8hpp.html#a7614ad0bb2816ebfe794514f45a10c2e">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_ConvertToInt64_1()
+: <a class="el" href="WXMPUtils_8hpp.html#a59b3c8316d21dde2b2b79863c7527f02">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_ConvertToInt_1()
+: <a class="el" href="WXMPUtils_8hpp.html#aabf211114925d9eba94089f811efe87a">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_ConvertToLocalTime_1()
+: <a class="el" href="WXMPUtils_8hpp.html#a7812f80be0bfa177de3d0bb9d9bd5996">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_ConvertToUTCTime_1()
+: <a class="el" href="WXMPUtils_8hpp.html#a764cfb9c96b1e37dd108cb42014fd6b6">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_CurrentDateTime_1()
+: <a class="el" href="WXMPUtils_8hpp.html#a0b0bf2caafca6f06b8c84936ce4c27d8">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_DecodeFromBase64_1()
+: <a class="el" href="WXMPUtils_8hpp.html#ad31b8453fb086269c1118c51501f2987">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_DuplicateSubtree_1()
+: <a class="el" href="WXMPUtils_8hpp.html#a4a0f5534dae4f34f3b1a233eb04ac54e">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_EncodeToBase64_1()
+: <a class="el" href="WXMPUtils_8hpp.html#a4d4fa0056f55d427c3a0c07f98b86172">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_MergeFromJPEG_1()
+: <a class="el" href="WXMPUtils_8hpp.html#afc180986e0eb5c69a8acd7822780ebfb">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_PackageForJPEG_1()
+: <a class="el" href="WXMPUtils_8hpp.html#a1725e2cfd1509da540038ca426b98c8a">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_RemoveProperties_1()
+: <a class="el" href="WXMPUtils_8hpp.html#a7cc3619ebbd1f2f7527488882729a0cb">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_SeparateArrayItems_1()
+: <a class="el" href="WXMPUtils_8hpp.html#a29b7beb40cc51e935bd941eada601139">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_SetTimeZone_1()
+: <a class="el" href="WXMPUtils_8hpp.html#a777a7e3b9b0f8b7afab51e40dae3a921">WXMPUtils.hpp</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/globals_i.html b/docs/API/globals_i.html
new file mode 100755
index 0000000..667c33b
--- /dev/null
+++ b/docs/API/globals_i.html
@@ -0,0 +1,154 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>File Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals.html#index__"><span>_</span></a></li>
+ <li><a href="globals_b.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_c.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_d.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_e.html#index_e"><span>e</span></a></li>
+ <li class="current"><a href="globals_i.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_j.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_k.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_m.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_p.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_q.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_r.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_s.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_w.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_x.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_z.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_i.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
+<li>IARRAYNODE_VERSION
+: <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a1f8464a97acb8671e6cc2a466955d45d">XMPCoreLatestInterfaceVersions.h</a>
+</li>
+<li>ICLIENTDOMPARSER_VERSION
+: <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a64636b4e59a6212968ad30494675603e">XMPCoreLatestInterfaceVersions.h</a>
+</li>
+<li>ICLIENTDOMSERIALIZER_VERSION
+: <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#aa928953eda71cda88699483e1fca4526">XMPCoreLatestInterfaceVersions.h</a>
+</li>
+<li>ICOMPOSITENODE_VERSION
+: <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#aefe5b8d014bd0f2ca4933a16572b51df">XMPCoreLatestInterfaceVersions.h</a>
+</li>
+<li>ICONFIGURABLE_VERSION
+: <a class="el" href="XMPCommonLatestInterfaceVersions_8h.html#a829031e337c57225307b0be2d229a8b4">XMPCommonLatestInterfaceVersions.h</a>
+</li>
+<li>ICONFIGURATIONMANAGER_VERSION
+: <a class="el" href="XMPCommonLatestInterfaceVersions_8h.html#a21492cbe0c77bbbad967232b377855c1">XMPCommonLatestInterfaceVersions.h</a>
+</li>
+<li>ICORECONFIGURATIONMANAGER_VERSION
+: <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#adf7818c7264e7a80b1b3c5a5b283c47c">XMPCoreLatestInterfaceVersions.h</a>
+</li>
+<li>ICOREOBJECTFACTORY_VERSION
+: <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a3d28ba37018741b3794789e5edc6e27e">XMPCoreLatestInterfaceVersions.h</a>
+</li>
+<li>IDOMIMPLEMENTATIONREGISTRY_VERSION
+: <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#aa34dc59f9267eceb6d51235cd778292e">XMPCoreLatestInterfaceVersions.h</a>
+</li>
+<li>IDOMPARSER_VERSION
+: <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a813f82b55a0bb68c1553e8b38592e705">XMPCoreLatestInterfaceVersions.h</a>
+</li>
+<li>IDOMSERIALIZER_VERSION
+: <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a52d6e44f27f19214b38959683d6cc829">XMPCoreLatestInterfaceVersions.h</a>
+</li>
+<li>IERROR_VERSION
+: <a class="el" href="XMPCommonLatestInterfaceVersions_8h.html#a4d8312c0c69be3f57e5f14b7b2d1224d">XMPCommonLatestInterfaceVersions.h</a>
+</li>
+<li>IERRORNOTIFIER_VERSION
+: <a class="el" href="XMPCommonLatestInterfaceVersions_8h.html#ad84704e1c2910ca9d71d41183c3a378c">XMPCommonLatestInterfaceVersions.h</a>
+</li>
+<li>IMEMORYALLOCATOR_VERSION
+: <a class="el" href="XMPCommonLatestInterfaceVersions_8h.html#a5c5712b51cebbbdbf40cc691b4123209">XMPCommonLatestInterfaceVersions.h</a>
+</li>
+<li>IMETADATA_VERSION
+: <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#af7d51c3ccf825fc82fa4a2a6cca26bc8">XMPCoreLatestInterfaceVersions.h</a>
+</li>
+<li>INAMESPACEPREFIXMAP_VERSION
+: <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a79e1c8ec2c46a2cbee3ba9cfd0d78ad4">XMPCoreLatestInterfaceVersions.h</a>
+</li>
+<li>INODE_VERSION
+: <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#aff2b1eabe2ac90a68ba3690930494a17">XMPCoreLatestInterfaceVersions.h</a>
+</li>
+<li>INODEITERATOR_VERSION
+: <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#afe7756c974951e8e78be1cfb96aacc8b">XMPCoreLatestInterfaceVersions.h</a>
+</li>
+<li>InvokeCheck
+: <a class="el" href="WXMP__Common_8hpp.html#a58d0e4857f5a40d6a82eb480832d068e">WXMP_Common.hpp</a>
+</li>
+<li>IOBJECTFACTORY_VERSION
+: <a class="el" href="XMPCommonLatestInterfaceVersions_8h.html#a6844f2fb727f99e352e61045154eba8b">XMPCommonLatestInterfaceVersions.h</a>
+</li>
+<li>IPATH_VERSION
+: <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#adc9fb16e479a79e35a9dc58e166fcbad">XMPCoreLatestInterfaceVersions.h</a>
+</li>
+<li>IPATHSEGMENT_VERSION
+: <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a42cb9bdb3894ac77ff614349e5c371e5">XMPCoreLatestInterfaceVersions.h</a>
+</li>
+<li>ISIMPLENODE_VERSION
+: <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a799da65cf5811707628bb2681a4545ec">XMPCoreLatestInterfaceVersions.h</a>
+</li>
+<li>ISTRUCTURENODE_VERSION
+: <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a28325920d39a80ba79dd3774ce056f45">XMPCoreLatestInterfaceVersions.h</a>
+</li>
+<li>IUTF8STRING_VERSION
+: <a class="el" href="XMPCommonLatestInterfaceVersions_8h.html#a884c112243a29a7b0388b1954efc317b">XMPCommonLatestInterfaceVersions.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/globals_j.html b/docs/API/globals_j.html
new file mode 100755
index 0000000..0a47529
--- /dev/null
+++ b/docs/API/globals_j.html
@@ -0,0 +1,85 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>File Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals.html#index__"><span>_</span></a></li>
+ <li><a href="globals_b.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_c.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_d.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_e.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_i.html#index_i"><span>i</span></a></li>
+ <li class="current"><a href="globals_j.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_k.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_m.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_p.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_q.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_r.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_s.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_w.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_x.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_z.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_j.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_j"></a>- j -</h3><ul>
+<li>JOIN_CLASSNAME_WITH_VERSION_NUMBER
+: <a class="el" href="XMPCommonDefines_8h.html#a944a0a31a728943ffb6f1bf62712649a">XMPCommonDefines.h</a>
+</li>
+<li>JOIN_CLASSNAME_WITH_VERSION_NUMBER_INT
+: <a class="el" href="XMPCommonDefines_8h.html#aae4268f82f1d5d97bb483fef36f252ee">XMPCommonDefines.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/globals_k.html b/docs/API/globals_k.html
new file mode 100755
index 0000000..18abaaf
--- /dev/null
+++ b/docs/API/globals_k.html
@@ -0,0 +1,898 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>File Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals.html#index__"><span>_</span></a></li>
+ <li><a href="globals_b.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_c.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_d.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_e.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_i.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_j.html#index_j"><span>j</span></a></li>
+ <li class="current"><a href="globals_k.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_m.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_p.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_q.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_r.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_s.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_w.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_x.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_z.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_k.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_k"></a>- k -</h3><ul>
+<li>kXMP_AEFilterPresetFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafd8d3d1c8c84bc6ab773f1298b3938f0">XMP_Const.h</a>
+</li>
+<li>kXMP_AEProjectFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da5fb9e99541bbb2d8e375d0cc9fd92a2e">XMP_Const.h</a>
+</li>
+<li>kXMP_AEProjTemplateFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dada5b138722448c4d4595fe760668c3df">XMP_Const.h</a>
+</li>
+<li>kXMP_AIFFFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf093d01e7e9cc55a7d1e204498521fc3">XMP_Const.h</a>
+</li>
+<li>kXMP_ArrayLastItem
+: <a class="el" href="XMP__Const_8h.html#a9549b9a138a896257b5a70176d125317">XMP_Const.h</a>
+</li>
+<li>kXMP_AVCHDFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafc5ff976e78df2d79d651de818b011f2">XMP_Const.h</a>
+</li>
+<li>kXMP_AVCUltraFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf32bab632c45ee7d960a5b74c9d61155">XMP_Const.h</a>
+</li>
+<li>kXMP_AVIFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dae3a6333624e5c292caf14ad849a5e26e">XMP_Const.h</a>
+</li>
+<li>kXMP_Bool_False
+: <a class="el" href="XMP__Const_8h.html#adc83d1c8e3a881f2a1623f63a6cb9ff0">XMP_Const.h</a>
+</li>
+<li>kXMP_CanonXFFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafa11d905db1236494e555956cb2f90ef">XMP_Const.h</a>
+</li>
+<li>kXMP_CELFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da6c949ee85f42eaaed035591338be6789">XMP_Const.h</a>
+</li>
+<li>kXMP_Char16BitBig
+: <a class="el" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea0966bca9b241646f6a730f96c5c14a2d">XMP_Const.h</a>
+</li>
+<li>kXMP_Char16BitLittle
+: <a class="el" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea19b97b941d6586031190025225ee0eaa">XMP_Const.h</a>
+</li>
+<li>kXMP_Char16BitMask
+: <a class="el" href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8ac9b8b24a75e4e325a49e3730b8e3c5ed">XMP_Const.h</a>
+</li>
+<li>kXMP_Char32BitBig
+: <a class="el" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea87f8231aec6dd125baf77c9f3f918fbc">XMP_Const.h</a>
+</li>
+<li>kXMP_Char32BitLittle
+: <a class="el" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea859e7aa88e7dfd3f55ad2b6445a4708e">XMP_Const.h</a>
+</li>
+<li>kXMP_Char32BitMask
+: <a class="el" href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8a705cebe9f5f6700f039a153d394b4f2a">XMP_Const.h</a>
+</li>
+<li>kXMP_Char8Bit
+: <a class="el" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9eaf5b20dd9abbef29169a362b265049637">XMP_Const.h</a>
+</li>
+<li>kXMP_CharLittleEndianMask
+: <a class="el" href="XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8a0bcf31bfc6bd3bbd5f80ef25f21b4391">XMP_Const.h</a>
+</li>
+<li>kXMP_CharUnknown
+: <a class="el" href="XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea6c37f0724299a9c88e2f622d3246d63b">XMP_Const.h</a>
+</li>
+<li>kXMP_CINFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad2935ea79b4f9253891e3a68a002c5bb">XMP_Const.h</a>
+</li>
+<li>kXMP_DeleteExisting
+: <a class="el" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04addd07b4a38b25ab3841e28a9cb169d1c">XMP_Const.h</a>
+</li>
+<li>kXMP_EncodeUTF16Big
+: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea310e4cbf639e783163778566b439f01d">XMP_Const.h</a>
+</li>
+<li>kXMP_EncodeUTF16Little
+: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eafc6417e382c98a2d507830de62fd4830">XMP_Const.h</a>
+</li>
+<li>kXMP_EncodeUTF32Big
+: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea793e99d9ea83f0aadd5b4193a95ea713">XMP_Const.h</a>
+</li>
+<li>kXMP_EncodeUTF32Little
+: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eae0137d98ea990fa23d292489031ba09e">XMP_Const.h</a>
+</li>
+<li>kXMP_EncodeUTF8
+: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadc8f241694f5a758e5ee3f6db69d02ab">XMP_Const.h</a>
+</li>
+<li>kXMP_EncodingMask
+: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eaeb79571cac99ee97feefb0347b1c1845">XMP_Const.h</a>
+</li>
+<li>kXMP_EncoreProjectFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dae28efb65bde55f3f8ddfd1fd8a168e2a">XMP_Const.h</a>
+</li>
+<li>kXMP_EPSFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad947e6da0c4d923195d93e0c53a79c4e">XMP_Const.h</a>
+</li>
+<li>kXMP_ExactPacketLength
+: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadb35599da481cc22ea6342b7b4de6bc6">XMP_Const.h</a>
+</li>
+<li>kXMP_FalseStr
+: <a class="el" href="XMP__Const_8h.html#a2dc55b533ed63ed7ff0c3be16a97e278">XMP_Const.h</a>
+</li>
+<li>kXMP_FLAFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dab1eeba00d1d92e313acfe68cd054daf9">XMP_Const.h</a>
+</li>
+<li>kXMP_FLVFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da455bc501088bbd8061fe3ea386a5066f">XMP_Const.h</a>
+</li>
+<li>kXMP_GIFFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da851d2f4525d705cd2dcabb540d0ddc06">XMP_Const.h</a>
+</li>
+<li>kXMP_HTMLFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da542634e6051139c44fd7b92d08c64760">XMP_Const.h</a>
+</li>
+<li>kXMP_IllustratorFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da82935c41c6222ff4cca954278f18e554">XMP_Const.h</a>
+</li>
+<li>kXMP_ImplReservedMask
+: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5ae154b58429b257b18963ba3503e67974">XMP_Const.h</a>
+</li>
+<li>kXMP_IncludeRDFHash
+: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea23054ea4ab89dfd802f14cb389e18745">XMP_Const.h</a>
+</li>
+<li>kXMP_IncludeThumbnailPad
+: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea0b659b3b544c7a5a076fbd3132cd7f7a">XMP_Const.h</a>
+</li>
+<li>kXMP_InDesignFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da79cbf96ecc4ac3e0ebfb2d182bc75e60">XMP_Const.h</a>
+</li>
+<li>kXMP_InsertAfterItem
+: <a class="el" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04a98cedd5fa29d47abb2ac8903ac7f5a05">XMP_Const.h</a>
+</li>
+<li>kXMP_InsertBeforeItem
+: <a class="el" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04a873411f673fc2a6337083fd024df727f">XMP_Const.h</a>
+</li>
+<li>kXMP_IterAliases
+: <a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a3333450505cd3712320aeac895e541b9">XMP_Const.h</a>
+</li>
+<li>kXMP_IterClassMask
+: <a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a93f77b837d89759af3a721712c13f044">XMP_Const.h</a>
+</li>
+<li>kXMP_IterJustChildren
+: <a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635ab26e1a38d1d0343fcc5bdaab1b60e3ed">XMP_Const.h</a>
+</li>
+<li>kXMP_IterJustLeafName
+: <a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635acf22e638f4144bcec8207b2ab69bb344">XMP_Const.h</a>
+</li>
+<li>kXMP_IterJustLeafNodes
+: <a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a4589f99b5b4a55e785e3baf4fe1d9b19">XMP_Const.h</a>
+</li>
+<li>kXMP_IterNamespaces
+: <a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635aa325d9ffba68a934f0a0a0f6ecfc2f7b">XMP_Const.h</a>
+</li>
+<li>kXMP_IterOmitQualifiers
+: <a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a1b91947105ae68c48c5d5e36aa70d101">XMP_Const.h</a>
+</li>
+<li>kXMP_IterProperties
+: <a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635aa0643c076a3b3737ff88ed20f16afd2b">XMP_Const.h</a>
+</li>
+<li>kXMP_IterSkipSiblings
+: <a class="el" href="XMP__Const_8h.html#a0411cd49bb5b71852cecd93bcbf0ca2da2537b4b8db838f85b47988b198cd2a12">XMP_Const.h</a>
+</li>
+<li>kXMP_IterSkipSubtree
+: <a class="el" href="XMP__Const_8h.html#a0411cd49bb5b71852cecd93bcbf0ca2dab0b540cd3841f411471a827f833c606e">XMP_Const.h</a>
+</li>
+<li>kXMP_JPEG2KFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da78b8fa38aaa2067e3e1baa0dcaa7571d">XMP_Const.h</a>
+</li>
+<li>kXMP_JPEGFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad752b2d3e1139e0745223a9385ef6487">XMP_Const.h</a>
+</li>
+<li>kXMP_MOVFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daebdb172c8a75b4ead2eff2d26ed3dc37">XMP_Const.h</a>
+</li>
+<li>kXMP_MP3File
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf3ee34ed2bc26dec0e2d572eeb0de89b">XMP_Const.h</a>
+</li>
+<li>kXMP_MPEG2File
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dab58eaebed494530072ad990ac7a9807a">XMP_Const.h</a>
+</li>
+<li>kXMP_MPEG4File
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da89e6282c3f0c8966d788500f5d8eaa91">XMP_Const.h</a>
+</li>
+<li>kXMP_MPEGFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da043afdc1db730db9ac03c505140c61c8">XMP_Const.h</a>
+</li>
+<li>kXMP_MXFFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da4b3477bdc53fae1511104fc54f88d134">XMP_Const.h</a>
+</li>
+<li>kXMP_NoOptions
+: <a class="el" href="XMP__Const_8h.html#aff1df9f3cf050f8b8d3a574db3c3326b">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_AdobeStockPhoto
+: <a class="el" href="XMP__Const_8h.html#a9d5b4ecd6214d080645718af1db77650">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_AEScart
+: <a class="el" href="XMP__Const_8h.html#a1245d5cd54d23588e74b883d9fda6a93">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_ASF
+: <a class="el" href="XMP__Const_8h.html#a3ef3c4c015092f8a4b94c4f8895cd955">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_BWF
+: <a class="el" href="XMP__Const_8h.html#a7837e8541712f9f7d5118df1b0905946">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_CameraRaw
+: <a class="el" href="XMP__Const_8h.html#a19da1e091dee6b6b471c05f1b73d6b3a">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_CreatorAtom
+: <a class="el" href="XMP__Const_8h.html#ad9c3d81fdbaf57f20bdf92d263d9d71a">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_DC
+: <a class="el" href="XMP__Const_8h.html#a44453f0d0a1dd295d41722c2387b36fa">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_DICOM
+: <a class="el" href="XMP__Const_8h.html#a10f6b8c9d551ec50ea536026b2c2b315">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_DM
+: <a class="el" href="XMP__Const_8h.html#a66fc3e8331cc92dc01cf2bbe74510baa">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_EXIF
+: <a class="el" href="XMP__Const_8h.html#ad12182e1df1652f56b5eec60c1fcdd8f">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_EXIF_Aux
+: <a class="el" href="XMP__Const_8h.html#ab8f5ed7baf102b78c816f2e86e142cfd">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_ExifEX
+: <a class="el" href="XMP__Const_8h.html#abff75489a4300787e251f60694497ca8">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_IPTCCore
+: <a class="el" href="XMP__Const_8h.html#ab794d3d798daf75a963398347dcbb79b">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_IPTCExt
+: <a class="el" href="XMP__Const_8h.html#a12ca045d4c12992ec8f6c1003523de20">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_iXML
+: <a class="el" href="XMP__Const_8h.html#acc8062c03735e764865786f6064d06ba">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_JP2K
+: <a class="el" href="XMP__Const_8h.html#a7426c6b7314b9b29b443f7f401e49be0">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_JPEG
+: <a class="el" href="XMP__Const_8h.html#a35020e150227e9b8cea205958616f439">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_PDF
+: <a class="el" href="XMP__Const_8h.html#a0bcb67d0dd0922504e3da7ca5c40c82a">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_PDFA_Extension
+: <a class="el" href="XMP__Const_8h.html#ac47561b29c7d5e852e014e1391e38591">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_PDFA_Field
+: <a class="el" href="XMP__Const_8h.html#a4f8605dd83a33b8ef13cb8b06f356b2e">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_PDFA_ID
+: <a class="el" href="XMP__Const_8h.html#ae29f21b2ae6b86fdefc50c92c3157683">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_PDFA_Property
+: <a class="el" href="XMP__Const_8h.html#a66eb8f71efe1b64635ab41ee86673436">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_PDFA_Schema
+: <a class="el" href="XMP__Const_8h.html#acc810bb3c0fbab74ba54fca90153e1a0">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_PDFA_Type
+: <a class="el" href="XMP__Const_8h.html#a02fa37c61718c9712000b834df5d4fdc">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_PDFX
+: <a class="el" href="XMP__Const_8h.html#a74c2a786c7ac349f4226c9694e3be641">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_PDFX_ID
+: <a class="el" href="XMP__Const_8h.html#a77d8c46d01eab6760579ffa049c80724">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_Photoshop
+: <a class="el" href="XMP__Const_8h.html#aa1a6f38ebfcdb281c5bf2809859167c7">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_PLUS
+: <a class="el" href="XMP__Const_8h.html#a650c052a916eefa95f0d0ff7a34eb9a0">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_PNG
+: <a class="el" href="XMP__Const_8h.html#abaf8c3257026b73a8d50cf43fa488c5d">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_PSAlbum
+: <a class="el" href="XMP__Const_8h.html#a465d0a0810455207ffa0346f9c462743">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_RDF
+: <a class="el" href="XMP__Const_8h.html#a276fac0f70893607afa3f09030ad84c7">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_RIFFINFO
+: <a class="el" href="XMP__Const_8h.html#ad1bc498d01dcc4a690e007b68a695e3a">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_Script
+: <a class="el" href="XMP__Const_8h.html#a57ce38d4e4b01739c939d8a46e23895e">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_SWF
+: <a class="el" href="XMP__Const_8h.html#a8749291bd81f9cb64535b10ef996cb73">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_TIFF
+: <a class="el" href="XMP__Const_8h.html#a673355818b7b9224e8fec0fbc60ba00c">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_WAV
+: <a class="el" href="XMP__Const_8h.html#ae802d5ee6fe4802eb5ad692a0b8385ea">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_XML
+: <a class="el" href="XMP__Const_8h.html#a97564c70460d1f235c8a41b8ac40cfe9">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_XMP
+: <a class="el" href="XMP__Const_8h.html#a030875c9dc0861c9251a3374ca14a376">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_XMP_BJ
+: <a class="el" href="XMP__Const_8h.html#a308e156c325618acb2172e550929ebee">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_XMP_Dimensions
+: <a class="el" href="XMP__Const_8h.html#a9618e013619aa92ebc808b62243d2ba8">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_XMP_Font
+: <a class="el" href="XMP__Const_8h.html#a49e25beee90220541ecfc7ac92fb78b5">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_XMP_G_IMG
+: <a class="el" href="XMP__Const_8h.html#a2663db91a956937f0921f67342a31646">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_XMP_Graphics
+: <a class="el" href="XMP__Const_8h.html#a285d88d6d95ce0bfed19bb41c5be485f">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_XMP_IdentifierQual
+: <a class="el" href="XMP__Const_8h.html#ab466db52a4b85cecfa04710682c1e671">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_XMP_Image
+: <a class="el" href="XMP__Const_8h.html#a935641acc7d01e782ad7a457a7ff338b">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_XMP_ManifestItem
+: <a class="el" href="XMP__Const_8h.html#ac91c21a77be4fdc3d8be26fe37b003c8">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_XMP_MM
+: <a class="el" href="XMP__Const_8h.html#ac67379a9ffa425d0d7976a51c4f2f754">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_XMP_Note
+: <a class="el" href="XMP__Const_8h.html#af7950d7399839f17309a9b944a09be5e">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_XMP_PagedFile
+: <a class="el" href="XMP__Const_8h.html#ac5e9bcf97c425cf61d6f466358aab1ca">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_XMP_ResourceEvent
+: <a class="el" href="XMP__Const_8h.html#a861613273127156050b456eee11f6b0a">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_XMP_ResourceRef
+: <a class="el" href="XMP__Const_8h.html#a9bf51f2653400645f7b5087e8c4e1c77">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_XMP_Rights
+: <a class="el" href="XMP__Const_8h.html#ae52d761e5a4fc8c8499215d2f3d82b90">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_XMP_ST_Job
+: <a class="el" href="XMP__Const_8h.html#ac7dc4d65bcbba2862e410cc8cfdff6f6">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_XMP_ST_Version
+: <a class="el" href="XMP__Const_8h.html#ab4923bed71ab29c6aa88debe8816c0a2">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_XMP_T
+: <a class="el" href="XMP__Const_8h.html#a0a2d9c5f7beb27553214a7ad1df4f27e">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_XMP_T_PG
+: <a class="el" href="XMP__Const_8h.html#a39afb495ffb24bb3082493c6811e65d0">XMP_Const.h</a>
+</li>
+<li>kXMP_NS_XMP_Text
+: <a class="el" href="XMP__Const_8h.html#a5e56ed5d1dfcbf69ddd9cdae6eea85f7">XMP_Const.h</a>
+</li>
+<li>kXMP_OmitAllFormatting
+: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea79230f1d70d2625f7650db6ff5b1ea29">XMP_Const.h</a>
+</li>
+<li>kXMP_OmitPacketWrapper
+: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadbb9e4c7ee139da0dd4126ddea794c76">XMP_Const.h</a>
+</li>
+<li>kXMP_OmitXMPMetaElement
+: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea9fb498d749d939e2ba9adf555a75b856">XMP_Const.h</a>
+</li>
+<li>kXMP_P2File
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dabad9584845edf66f2f8fc3c336977e34">XMP_Const.h</a>
+</li>
+<li>kXMP_PacketInfoVersion
+: <a class="el" href="XMP__Const_8h.html#a16af7b253440dadd46a80a4b9fddba4da767b4847575a8de28e691be660d43817">XMP_Const.h</a>
+</li>
+<li>kXMP_ParseMoreBuffers
+: <a class="el" href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca79b36427b7bf0c0a1ed010a44dec2d3e">XMP_Const.h</a>
+</li>
+<li>kXMP_PDFFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da17ab6d429c1550eb3cc16d2e544b78eb">XMP_Const.h</a>
+</li>
+<li>kXMP_PhotoshopFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da22b478a9d0d52d12e8e4a1181024eb1c">XMP_Const.h</a>
+</li>
+<li>kXMP_PNGFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dac989381d37de320495e4d13f9ecc6371">XMP_Const.h</a>
+</li>
+<li>kXMP_PostScriptFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da52c90935ee28a0875a49843d463cad70">XMP_Const.h</a>
+</li>
+<li>kXMP_PremiereProjectFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daeff4f68cd5162370f7bf938a868e280d">XMP_Const.h</a>
+</li>
+<li>kXMP_PremiereTitleFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da1ad712bbd349dc899ca1e71971032b0a">XMP_Const.h</a>
+</li>
+<li>kXMP_PropArrayFormMask
+: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a6b5b5f4b869994b7390edc9589745e9f">XMP_Const.h</a>
+</li>
+<li>kXMP_PropArrayIsAlternate
+: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a2596b1f0ea4600270c99102c86b5f1f1">XMP_Const.h</a>
+</li>
+<li>kXMP_PropArrayIsAltText
+: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aba253f67a6cf44b7438a3f96b516846d">XMP_Const.h</a>
+</li>
+<li>kXMP_PropArrayIsOrdered
+: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5af1cdb3b0a3e852ec55e747a1686aba04">XMP_Const.h</a>
+</li>
+<li>kXMP_PropArrayIsUnordered
+: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a0d70c23394c0676657c89de5491192c0">XMP_Const.h</a>
+</li>
+<li>kXMP_PropArrayLocationMask
+: <a class="el" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04aef8c1934a17b0e5d8f0b20a7e89df0df">XMP_Const.h</a>
+</li>
+<li>kXMP_PropCompositeMask
+: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a60a9f26fb66c2e65cf40d9bc44968956">XMP_Const.h</a>
+</li>
+<li>kXMP_PropHasAliases
+: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a1f819ef281d1f52c4c12d5d02f49d3f0">XMP_Const.h</a>
+</li>
+<li>kXMP_PropHasLang
+: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a3fa5ed87edc731bfb3817f58ba70a217">XMP_Const.h</a>
+</li>
+<li>kXMP_PropHasQualifiers
+: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a8e34a33a2eed56499d4f6f62da25d159">XMP_Const.h</a>
+</li>
+<li>kXMP_PropHasType
+: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aeff16fdf167afc73db25b30b529bd9d5">XMP_Const.h</a>
+</li>
+<li>kXMP_PropIsAlias
+: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5ab975c19fb5c50f732a1a0d84dadb7c37">XMP_Const.h</a>
+</li>
+<li>kXMP_PropIsDerived
+: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a0d898ea7f6b3db513bb24f8a6a285877">XMP_Const.h</a>
+</li>
+<li>kXMP_PropIsInternal
+: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a48097c6ea309f240965d77ab564a5464">XMP_Const.h</a>
+</li>
+<li>kXMP_PropIsQualifier
+: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a30146ed5209f5c3eb4eeb1fd8e4fb9fe">XMP_Const.h</a>
+</li>
+<li>kXMP_PropIsStable
+: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a81dcd06251771a0ddee6c1e36128c65c">XMP_Const.h</a>
+</li>
+<li>kXMP_PropValueIsArray
+: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a9b7706e0f0716ac7546bdc24ffedd0bc">XMP_Const.h</a>
+</li>
+<li>kXMP_PropValueIsStruct
+: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e">XMP_Const.h</a>
+</li>
+<li>kXMP_PropValueIsURI
+: <a class="el" href="XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aab51f87b5c48f47f5cefb9e03293dafb">XMP_Const.h</a>
+</li>
+<li>kXMP_PropValueOptionsMask
+: <a class="el" href="XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04ad1b42a8a4c479d9bfaf406b79f2e1465">XMP_Const.h</a>
+</li>
+<li>kXMP_ReadOnlyPacket
+: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea238c792322c5bd5f9e4db3165e01f9d6">XMP_Const.h</a>
+</li>
+<li>kXMP_REDFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daab032aa36aec082c6b3a8300548346f5">XMP_Const.h</a>
+</li>
+<li>kXMP_RequireXMPMeta
+: <a class="el" href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca1e533852436acf75f594a4fb50a64400">XMP_Const.h</a>
+</li>
+<li>kXMP_SchemaNode
+: <a class="el" href="XMP__Const_8h.html#a56197f91b537a0c2b5b9aadbcb404545">XMP_Const.h</a>
+</li>
+<li>kXMP_SeekFromCurrent
+: <a class="el" href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563fa4e179367a02390075e632aca6e115925">XMP_Const.h</a>
+</li>
+<li>kXMP_SeekFromEnd
+: <a class="el" href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563faeedc991a0194b932ae4a47307843baf6">XMP_Const.h</a>
+</li>
+<li>kXMP_SeekFromStart
+: <a class="el" href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563faf52720b8c894653e4a089a9c0331ee47">XMP_Const.h</a>
+</li>
+<li>kXMP_SESFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da42cb8767d9cf16eaeb7aec68a4f224e9">XMP_Const.h</a>
+</li>
+<li>kXMP_SonyHDVFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daa0edb070c11f87c3dad9f8f7a83b9b5e">XMP_Const.h</a>
+</li>
+<li>kXMP_StrictAliasing
+: <a class="el" href="XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca7107906eab0e1fa6f9f2dc6254ad88b1">XMP_Const.h</a>
+</li>
+<li>kXMP_SVGFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf775c60f1da0e8c34590744a89e66c79">XMP_Const.h</a>
+</li>
+<li>kXMP_SWFFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da564a8095f65d951f451e16eb56650597">XMP_Const.h</a>
+</li>
+<li>kXMP_TextFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da27051cd824d3ae7bb59e3af7a7908ffd">XMP_Const.h</a>
+</li>
+<li>kXMP_TIFFFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dadc0edf25d933c2a21b25449692c3ba08">XMP_Const.h</a>
+</li>
+<li>kXMP_TimeEastOfUTC
+: <a class="el" href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a68851b70cc1d2346fa21bc0b0ae6cfec">XMP_Const.h</a>
+</li>
+<li>kXMP_TimeIsUTC
+: <a class="el" href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a3f41be55491204982acb39c9f6c7ad13">XMP_Const.h</a>
+</li>
+<li>kXMP_TimeWestOfUTC
+: <a class="el" href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a511551ce156d5fd96c26ad464b837801">XMP_Const.h</a>
+</li>
+<li>kXMP_TrueStr
+: <a class="el" href="XMP__Const_8h.html#a4c39e0131b0e3d7db66e1cfa82b67141">XMP_Const.h</a>
+</li>
+<li>kXMP_UCFFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da96804f7b8ce83786051c4dac4930aa96">XMP_Const.h</a>
+</li>
+<li>kXMP_UnknownFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719">XMP_Const.h</a>
+</li>
+<li>kXMP_UseCanonicalFormat
+: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea15e3fb0e64614c574ed554f2f72c0a5d">XMP_Const.h</a>
+</li>
+<li>kXMP_UseCompactFormat
+: <a class="el" href="XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea041dc6b7b8684be7112ae40f5f259ebb">XMP_Const.h</a>
+</li>
+<li>kXMP_UseNullTermination
+: <a class="el" href="XMP__Const_8h.html#a8283c9596c03b6d626d5a2b7a90e23ab">XMP_Const.h</a>
+</li>
+<li>kXMP_WAVFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dacc1fcd4e52423c0dd2966a2e92352fb8">XMP_Const.h</a>
+</li>
+<li>kXMP_WMAVFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da78c62f7c10b16b1a862d93f6226a4622">XMP_Const.h</a>
+</li>
+<li>kXMP_XDCAM_EXFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da45bf9b21d5ffed3594fbd585c47cc4fc">XMP_Const.h</a>
+</li>
+<li>kXMP_XDCAM_FAMFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da5f78caa0871695cc92e058e4f4b2dd57">XMP_Const.h</a>
+</li>
+<li>kXMP_XDCAM_SAMFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da64fe7908df6341e13d9d8c8199cdf852">XMP_Const.h</a>
+</li>
+<li>kXMP_XMLFile
+: <a class="el" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad217b996403fa13caef3d6e978023124">XMP_Const.h</a>
+</li>
+<li>kXMPErr_AssertFailure
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14bd6c24087d280c722c1a044eec27d6">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadBlockFormat
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aacc6262e9c1fd1a64e3d10cedfb7dcb1">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadFileFormat
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa0a05e07925d1f3daf5f36f6da0840f8">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadIndex
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a31adb57da79b4fb1f1f5f999ec740010">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadIPTC
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a23b2d7cab10b3d80549e6b60855bb15e">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadIterPosition
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2584fc813bfcd9158b7adf28a3454bb9">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadJPEG
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad685e1f839e3bc53dfc55611a0803cee">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadMPEG
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad596daed4ac92f8bf7871669d03effad">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadObject
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a115f3d761d2cad952aab23f35cbdf3a1">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadOptions
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a40ca77d98bd366442bb8d438c420a444">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadParam
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a52d197a8b0af3c55f16958162a4132f1">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadParse
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a052b1b525fba7da8c98be5c135f434b8">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadPSD
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad98fc9a9c050e9fc19c3af9c8abb2d6d">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadPSIR
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a1606a687cb790af16dc561b2a8f2e6a3">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadRDF
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5464b823e619618d9aa58433cdb45a8e">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadSchema
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2bc66eec6ce830979089d5c336f75539">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadSerialize
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4f936ff6788ce17f6098b7cbda77ed9">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadTIFF
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aecd25299aa177de7bc7f3674fcf2e22d">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadUnicode
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4cf86fa29624c5e19111e09a97fe05f">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadValue
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a716956a038782e595ce61d3fbdd1a25a">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadXML
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac57f1cf1c24778536fd32972e87334c5">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadXMP
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a211bb632ed1264d9e2236f35c6414821">XMP_Const.h</a>
+</li>
+<li>kXMPErr_BadXPath
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a3f1efec0aa5452f43c55c05aba616ef7">XMP_Const.h</a>
+</li>
+<li>kXMPErr_Deprecated
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14342c486ddf394ebc110a446becbfa7">XMP_Const.h</a>
+</li>
+<li>kXMPErr_DiskSpace
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa2f19dfd8ce27b5713c79e34f2052e40">XMP_Const.h</a>
+</li>
+<li>kXMPErr_EmptyIterator
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a078c69d0d76f25187a11981a2552b179">XMP_Const.h</a>
+</li>
+<li>kXMPErr_EnforceFailure
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa856bb36a9742d8542b483e00fc6511b">XMP_Const.h</a>
+</li>
+<li>kXMPErr_ExternalFailure
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a82941dc15c6ccde6b8fb2f9cc85c2eeb">XMP_Const.h</a>
+</li>
+<li>kXMPErr_FilePathNotAFile
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a0819111429c734ca5ef895c193846351">XMP_Const.h</a>
+</li>
+<li>kXMPErr_FilePermission
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a577b0e80acf44125f0dc49e5885e0824">XMP_Const.h</a>
+</li>
+<li>kXMPErr_InternalFailure
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a8babbd758d2c64fd04e85fa48e0675c0">XMP_Const.h</a>
+</li>
+<li>kXMPErr_NoError
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ae2aec0f3b8db282cbba40e4bcf746ba9">XMP_Const.h</a>
+</li>
+<li>kXMPErr_NoFile
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2874a5dcddf253a17d75a147b2ed4933">XMP_Const.h</a>
+</li>
+<li>kXMPErr_NoFileHandler
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a10fa053f279fed01b075f34a70f11795">XMP_Const.h</a>
+</li>
+<li>kXMPErr_NoMemory
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a69eb7fef422fbca62cdbc554afffd813">XMP_Const.h</a>
+</li>
+<li>kXMPErr_ProgressAbort
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5227060f282a86c8ea1a944107751dd1">XMP_Const.h</a>
+</li>
+<li>kXMPErr_ReadError
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2a17df0c0b690f5b7829bc4ca16efce2">XMP_Const.h</a>
+</li>
+<li>kXMPErr_RejectedFileExtension
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad9d8c98663e3ead894841807ab4548f8">XMP_Const.h</a>
+</li>
+<li>kXMPErr_StdException
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5322df07e2a7792824d2468c4837f1cb">XMP_Const.h</a>
+</li>
+<li>kXMPErr_TBD
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409acd9fa1b621efafd5b218e3a785cbeda1">XMP_Const.h</a>
+</li>
+<li>kXMPErr_TooLargeForJPEG
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa9c1c20e53db12b20068d830a8990c0b">XMP_Const.h</a>
+</li>
+<li>kXMPErr_Unavailable
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac7ac408582c194cc723a24acb8b4e4c3">XMP_Const.h</a>
+</li>
+<li>kXMPErr_Unimplemented
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a3de1ac8f4e4afb705d5a4654cb9579e2">XMP_Const.h</a>
+</li>
+<li>kXMPErr_Unknown
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14813595824de97382fffeae7b6fe581">XMP_Const.h</a>
+</li>
+<li>kXMPErr_UnknownException
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aac7558097a1f5a0f99097199f1bf8ff4">XMP_Const.h</a>
+</li>
+<li>kXMPErr_UserAbort
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4ba7b1a57629e4994a0f7a515d51195">XMP_Const.h</a>
+</li>
+<li>kXMPErr_WriteError
+: <a class="el" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409afca1d169d7e3cb3ba84c81700c1b9b22">XMP_Const.h</a>
+</li>
+<li>kXMPErrSev_FileFatal
+: <a class="el" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a2bd1ff3ba036640f0c76d68a03cf94f7">XMP_Const.h</a>
+</li>
+<li>kXMPErrSev_OperationFatal
+: <a class="el" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960afb962bdcf570af9aef4e32b5f279d1a4">XMP_Const.h</a>
+</li>
+<li>kXMPErrSev_ProcessFatal
+: <a class="el" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a768126806f8c7b7c107314610125deb3">XMP_Const.h</a>
+</li>
+<li>kXMPErrSev_Recoverable
+: <a class="el" href="XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a068fdc8c88dcce62a7b42788a572af61">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_AllowsOnlyXMP
+: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea4a183c3ec4994cf09993e5b31dee9733">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_AllowsSafeUpdate
+: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea9fe958d4ccde02516a3a267db63874cd">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_CanExpand
+: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea126c9cc056f6569c424431edbcb9521c">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_CanInjectXMP
+: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea23a3eb2a5e95292036a93ad6666fa388">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_CanNotifyProgress
+: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea17578d45ae3c09a8d08189ea544052b1">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_CanReconcile
+: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceafc2bc7cfdd28a326788d563ec0357694">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_CanRewrite
+: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea8957f1ef358b4ab3a1df519903f2ae07">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_FolderBasedFormat
+: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceaa2a6a4b744b40055387234632b688fcd">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_ForceGivenHandler
+: <a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaab8cbbeef0e99d246907a4375766e21a2">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_HandlerOwnsFile
+: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceafc2c5b585e698ebf24a9379de35954b4">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_IgnoreLocalText
+: <a class="el" href="XMP__Const_8h.html#aba01db17f4a2bfbc3db60dc172972a25a9b9c1ef01e49193a167c40156df07b50">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_NeedsPreloading
+: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea798c55f5144eedde76f8329a056210b2">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_NeedsReadOnlyPacket
+: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceaee13099f78018a5e1ce033266c27e999">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_OpenForRead
+: <a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa4c61ec4ed571dbc5f1832ff6772320d2">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_OpenForUpdate
+: <a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa91fa388b3888bcb6a68615537b66a49b">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_OpenLimitedScanning
+: <a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa77f34b1873bb2584feabe26a2c8f1182">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_OpenOnlyXMP
+: <a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaa58279b2b1311242e7374117f455bb96">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_OpenRepairFile
+: <a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa05acd568597f72b4812b432ea6cf606a">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_OpenStrictly
+: <a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa0bef4db2ecdaf82a85df9e9d417aab18">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_OpenUsePacketScanning
+: <a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa77b47c63e579b28cbd25083ceb58c285">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_OpenUseSmartHandler
+: <a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaf6332435c7fc89cb0b7381e13fe43646">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_OptimizeFileLayout
+: <a class="el" href="XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaf5f2ebd401758a14dc52c5ee403303b5">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_PrefersInPlace
+: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceab55e1873e67048928de3fc47550678c3">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_ReturnsRawPacket
+: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceadb116eed738d1fcdfe4ab9c1635e08ea">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_ServerMode
+: <a class="el" href="XMP__Const_8h.html#aba01db17f4a2bfbc3db60dc172972a25aee2f09481347c29d6c06951b0d81e145">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_UnknownLength
+: <a class="el" href="XMP__Const_8h.html#ae0901aabcf619f17cff03f08e5ed3658">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_UnknownOffset
+: <a class="el" href="XMP__Const_8h.html#a6a9b77b60c63781a8776f10880856bf4">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_UpdateSafely
+: <a class="el" href="XMP__Const_8h.html#a6b7b47dd702d9e331586d485013fd1eaadbf8d744f355ef9800a4ec44325baf54">XMP_Const.h</a>
+</li>
+<li>kXMPFiles_UsesSidecarXMP
+: <a class="el" href="XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcead3027b786992e2a4762a4fa37c92943c">XMP_Const.h</a>
+</li>
+<li>kXMPTemplate_AddNewProperties
+: <a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a145c259f83048b811c7b35bc3b339c42">XMP_Const.h</a>
+</li>
+<li>kXMPTemplate_ClearUnnamedProperties
+: <a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a9dac536fe6ee25de76d45bf6615abd46">XMP_Const.h</a>
+</li>
+<li>kXMPTemplate_IncludeInternalProperties
+: <a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a872d2b769e775e281984cc63e28714ea">XMP_Const.h</a>
+</li>
+<li>kXMPTemplate_ReplaceExistingProperties
+: <a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57aae2e0fe43295736a15f0bb76ffe02544">XMP_Const.h</a>
+</li>
+<li>kXMPTemplate_ReplaceWithDeleteEmpty
+: <a class="el" href="XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a81e1b6fd067fc9ad62bc803c98701bd5">XMP_Const.h</a>
+</li>
+<li>kXMPTS_Maybe
+: <a class="el" href="XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba7a73219cd125bb21e294ba474112a584">XMP_Const.h</a>
+</li>
+<li>kXMPTS_No
+: <a class="el" href="XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba2a88f4d4589bf413377283843f70bc90">XMP_Const.h</a>
+</li>
+<li>kXMPTS_Yes
+: <a class="el" href="XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55bacf4bfe01497bd0d88c2af337e4bac39e">XMP_Const.h</a>
+</li>
+<li>kXMPUtil_AllowCommas
+: <a class="el" href="XMP__Const_8h.html#abed82baf7f470b522273a3e37c24c600ad6d41710c689f16d19ac26dc9f5cc506">XMP_Const.h</a>
+</li>
+<li>kXMPUtil_DeleteEmptyValues
+: <a class="el" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a97753b4c5afda9c55e807e41377d86d9">XMP_Const.h</a>
+</li>
+<li>kXMPUtil_DoAllProperties
+: <a class="el" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a8ddfb0572b7602a52e533d92d8b1e9fb">XMP_Const.h</a>
+</li>
+<li>kXMPUtil_IncludeAliases
+: <a class="el" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a843589b878f53d42d59258f945ad770b">XMP_Const.h</a>
+</li>
+<li>kXMPUtil_ReplaceOldValues
+: <a class="el" href="XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388adab4dad658d2d218c5b1e7d829b12962">XMP_Const.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/globals_m.html b/docs/API/globals_m.html
new file mode 100755
index 0000000..78d2aaa
--- /dev/null
+++ b/docs/API/globals_m.html
@@ -0,0 +1,127 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>File Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals.html#index__"><span>_</span></a></li>
+ <li><a href="globals_b.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_c.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_d.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_e.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_i.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_j.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_k.html#index_k"><span>k</span></a></li>
+ <li class="current"><a href="globals_m.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_p.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_q.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_r.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_s.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_w.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_x.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_z.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_m.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
+<li>Max_XMP_Int16
+: <a class="el" href="XMP__Const_8h.html#a7ed33c3b64b4f8a3950f4814487e30e4">XMP_Const.h</a>
+</li>
+<li>Max_XMP_Int32
+: <a class="el" href="XMP__Const_8h.html#ab2a4c6f608993eed8b8e96b875afbaf3">XMP_Const.h</a>
+</li>
+<li>Max_XMP_Int64
+: <a class="el" href="XMP__Const_8h.html#a5783bb97f7a4837bf1938332d65804d8">XMP_Const.h</a>
+</li>
+<li>Max_XMP_Int8
+: <a class="el" href="XMP__Const_8h.html#a914a8ec6b55c89c7ed098e4d3b878989">XMP_Const.h</a>
+</li>
+<li>Max_XMP_Uns16
+: <a class="el" href="XMP__Const_8h.html#a950af5f297a8aba136e4fb0bb69b3167">XMP_Const.h</a>
+</li>
+<li>Max_XMP_Uns32
+: <a class="el" href="XMP__Const_8h.html#adc36ebc09374b4400ebc68df37a5abad">XMP_Const.h</a>
+</li>
+<li>Max_XMP_Uns64
+: <a class="el" href="XMP__Const_8h.html#aa6ce5fadc73345c8db588922dc731c89">XMP_Const.h</a>
+</li>
+<li>Max_XMP_Uns8
+: <a class="el" href="XMP__Const_8h.html#aa803470bc9b20fc47b0108559e4bccb4">XMP_Const.h</a>
+</li>
+<li>Min_XMP_Int16
+: <a class="el" href="XMP__Const_8h.html#abd313c6844b00bcfdbc43b0405fa8364">XMP_Const.h</a>
+</li>
+<li>Min_XMP_Int32
+: <a class="el" href="XMP__Const_8h.html#a778d64a8002543649fcd4e27b332aa38">XMP_Const.h</a>
+</li>
+<li>Min_XMP_Int64
+: <a class="el" href="XMP__Const_8h.html#a422fdf9dc276d3edacde0826d43dfea5">XMP_Const.h</a>
+</li>
+<li>Min_XMP_Int8
+: <a class="el" href="XMP__Const_8h.html#aad7fed121559de43b53067c0bcb9baae">XMP_Const.h</a>
+</li>
+<li>Min_XMP_Uns16
+: <a class="el" href="XMP__Const_8h.html#ae5d5ff926903623a451ada7cb840d815">XMP_Const.h</a>
+</li>
+<li>Min_XMP_Uns32
+: <a class="el" href="XMP__Const_8h.html#ae8936caf3fa038bd64705caf6ab2329f">XMP_Const.h</a>
+</li>
+<li>Min_XMP_Uns64
+: <a class="el" href="XMP__Const_8h.html#ae3052e3b7b6f4c6163331ead175a7e28">XMP_Const.h</a>
+</li>
+<li>Min_XMP_Uns8
+: <a class="el" href="XMP__Const_8h.html#a4abfa333cf45f8849b93c6a630537de2">XMP_Const.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/globals_p.html b/docs/API/globals_p.html
new file mode 100755
index 0000000..331db60
--- /dev/null
+++ b/docs/API/globals_p.html
@@ -0,0 +1,82 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>File Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals.html#index__"><span>_</span></a></li>
+ <li><a href="globals_b.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_c.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_d.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_e.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_i.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_j.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_k.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_m.html#index_m"><span>m</span></a></li>
+ <li class="current"><a href="globals_p.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_q.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_r.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_s.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_w.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_x.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_z.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_p.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
+<li>PropagateException
+: <a class="el" href="WXMP__Common_8hpp.html#a5dfbc13f3139cae2812a1cf0c979999c">WXMP_Common.hpp</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/globals_q.html b/docs/API/globals_q.html
new file mode 100755
index 0000000..06ef836
--- /dev/null
+++ b/docs/API/globals_q.html
@@ -0,0 +1,85 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>File Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals.html#index__"><span>_</span></a></li>
+ <li><a href="globals_b.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_c.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_d.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_e.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_i.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_j.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_k.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_m.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_p.html#index_p"><span>p</span></a></li>
+ <li class="current"><a href="globals_q.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_r.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_s.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_w.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_x.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_z.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_q.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_q"></a>- q -</h3><ul>
+<li>QUOTEME
+: <a class="el" href="XMPCommonDefines_8h.html#a4dd82e6c008275864ab4059ce2e2e4e9">XMPCommonDefines.h</a>
+</li>
+<li>QUOTEME2
+: <a class="el" href="XMPCommonDefines_8h.html#a1fd06a6a11b9c1c9d7998e8ef08d0c77">XMPCommonDefines.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/globals_r.html b/docs/API/globals_r.html
new file mode 100755
index 0000000..a0c720e
--- /dev/null
+++ b/docs/API/globals_r.html
@@ -0,0 +1,82 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>File Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals.html#index__"><span>_</span></a></li>
+ <li><a href="globals_b.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_c.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_d.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_e.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_i.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_j.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_k.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_m.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_p.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_q.html#index_q"><span>q</span></a></li>
+ <li class="current"><a href="globals_r.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_s.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_w.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_x.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_z.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_r.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
+<li>REQ_FRIEND_CLASS_DECLARATION
+: <a class="el" href="XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4">XMPCommonDefines.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/globals_s.html b/docs/API/globals_s.html
new file mode 100755
index 0000000..d2f540d
--- /dev/null
+++ b/docs/API/globals_s.html
@@ -0,0 +1,94 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>File Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals.html#index__"><span>_</span></a></li>
+ <li><a href="globals_b.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_c.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_d.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_e.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_i.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_j.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_k.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_m.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_p.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_q.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_r.html#index_r"><span>r</span></a></li>
+ <li class="current"><a href="globals_s.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_w.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_x.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_z.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_s.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<li>SeekMode
+: <a class="el" href="XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563f">XMP_Const.h</a>
+</li>
+<li>SetClientStringProc
+: <a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">WXMP_Common.hpp</a>
+</li>
+<li>SetClientStringVectorProc
+: <a class="el" href="WXMP__Common_8hpp.html#a657cdd79947744b4c123bf9df9ac1b60">WXMP_Common.hpp</a>
+</li>
+<li>SOURCE_COMPILING_XMPCOMMON_LIB
+: <a class="el" href="XMPCommonDefines_8h.html#a3ad5c0d7b537a67fc621dd30670397df">XMPCommonDefines.h</a>
+</li>
+<li>SUPPORT_VARIADIC_TEMPLATES
+: <a class="el" href="XMPCommonDefines_8h.html#ae1dbf35f9d0d606368d149565ca04006">XMPCommonDefines.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/globals_type.html b/docs/API/globals_type.html
index 2a944ab..6e07444 100644..100755
--- a/docs/API/globals_type.html
+++ b/docs/API/globals_type.html
@@ -1,80 +1,67 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: Class Members</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
+<title>File Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
- <li><a href="files.html"><span>File&nbsp;List</span></a></li>
- <li class="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
<li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
<li class="current"><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Defines</span></a></li>
+ <li><a href="globals_defs.html"><span>Macros</span></a></li>
</ul>
</div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_type.html','');});
+</script>
+<div id="doc-content">
<div class="contents">
-&nbsp;<ul>
+&#160;<ul>
+<li>SetClientStringProc
+: <a class="el" href="WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f">WXMP_Common.hpp</a>
+</li>
+<li>SetClientStringVectorProc
+: <a class="el" href="WXMP__Common_8hpp.html#a657cdd79947744b4c123bf9df9ac1b60">WXMP_Common.hpp</a>
+</li>
<li>XMP_AbortProc
-: <a class="el" href="XMP__Const_8h.html#aa2738ce2fca7f1809b12834b1b5e2d0e">XMP_Const.h</a>
+: <a class="el" href="XMP__Const_8h.html#ac2434559f67332b9d23021b894da838c">XMP_Const.h</a>
+</li>
+<li>XMP_Bool
+: <a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Const.h</a>
+</li>
+<li>XMP_ErrorSeverity
+: <a class="el" href="XMP__Const_8h.html#ae4a7c9347994883250dc440566eb9f52">XMP_Const.h</a>
</li>
<li>XMP_FileFormat
: <a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_Const.h</a>
@@ -86,10 +73,10 @@ window.onload = initDynSections;
: <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_Const.h</a>
</li>
<li>XMP_ProgressReportProc
-: <a class="el" href="XMP__Const_8h.html#af18be2d0c8accad813e0d8962da24b4e">XMP_Const.h</a>
+: <a class="el" href="XMP__Const_8h.html#a01973e700ac2ba7f3debef340ccaa663">XMP_Const.h</a>
</li>
<li>XMP_ProgressReportWrapper
-: <a class="el" href="XMP__Const_8h.html#abfd6246a6ce8ef90c7fc600b456f3ea9">XMP_Const.h</a>
+: <a class="el" href="XMP__Const_8h.html#a61eb4db5a58902c130d3b3929db624db">XMP_Const.h</a>
</li>
<li>XMP_Status
: <a class="el" href="XMP__Const_8h.html#a05b81829c04746826f4f85fbac76e3dd">XMP_Const.h</a>
@@ -101,7 +88,10 @@ window.onload = initDynSections;
: <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_Const.h</a>
</li>
<li>XMP_TextOutputProc
-: <a class="el" href="XMP__Const_8h.html#a8ce3570e6e5ac14cd603e96fa9d2936f">XMP_Const.h</a>
+: <a class="el" href="XMP__Const_8h.html#aa55bae1e6be4ddcefbaf214942e5b272">XMP_Const.h</a>
+</li>
+<li>XMP_TriState
+: <a class="el" href="XMP__Const_8h.html#a377e4a668de99ce6ed176cef5aaf3fcd">XMP_Const.h</a>
</li>
<li>XMP_VersionInfo
: <a class="el" href="XMP__Const_8h.html#a57250ff934e642191654ae49c3a2c6c9">XMP_Const.h</a>
@@ -110,7 +100,10 @@ window.onload = initDynSections;
: <a class="el" href="XMP__Const_8h.html#ab516453dd7d906e911f8951983cde5f1">XMP_Const.h</a>
</li>
<li>XMPFiles_ErrorCallbackProc
-: <a class="el" href="XMP__Const_8h.html#aaceb0287e961c16649487db026bcfc61">XMP_Const.h</a>
+: <a class="el" href="XMP__Const_8h.html#a7bed3dd93335821e5afa0ac2b07a9640">XMP_Const.h</a>
+</li>
+<li>XMPFiles_ErrorCallbackWrapper
+: <a class="el" href="XMP__Const_8h.html#a24670f4db8bda6e113612fa0c81ffe6b">XMP_Const.h</a>
</li>
<li>XMPFilesRef
: <a class="el" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMP_Const.h</a>
@@ -119,17 +112,18 @@ window.onload = initDynSections;
: <a class="el" href="XMP__Const_8h.html#a6ade57a30fb1e40d6aa9695c440fc3d2">XMP_Const.h</a>
</li>
<li>XMPMeta_ErrorCallbackProc
-: <a class="el" href="XMP__Const_8h.html#a6027ee7b7d17a0fec636f812c5346af7">XMP_Const.h</a>
+: <a class="el" href="XMP__Const_8h.html#abb3c238ce96e9198ebe4260200bfb67b">XMP_Const.h</a>
</li>
<li>XMPMeta_ErrorCallbackWrapper
-: <a class="el" href="XMP__Const_8h.html#a900dba8ffc9d1d9b89f4e83ac601679b">XMP_Const.h</a>
+: <a class="el" href="XMP__Const_8h.html#a32cbbc2b93eb9028d441ecb4223eb2a4">XMP_Const.h</a>
</li>
<li>XMPMetaRef
: <a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMP_Const.h</a>
</li>
</ul>
-</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
</body>
</html>
diff --git a/docs/API/globals_vars.html b/docs/API/globals_vars.html
new file mode 100755
index 0000000..8c98bd8
--- /dev/null
+++ b/docs/API/globals_vars.html
@@ -0,0 +1,108 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>File Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li class="current"><a href="globals_vars.html"><span>Variables</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_vars.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;<ul>
+<li>kXMP_Bool_False
+: <a class="el" href="XMP__Const_8h.html#adc83d1c8e3a881f2a1623f63a6cb9ff0">XMP_Const.h</a>
+</li>
+<li>Max_XMP_Int16
+: <a class="el" href="XMP__Const_8h.html#a7ed33c3b64b4f8a3950f4814487e30e4">XMP_Const.h</a>
+</li>
+<li>Max_XMP_Int32
+: <a class="el" href="XMP__Const_8h.html#ab2a4c6f608993eed8b8e96b875afbaf3">XMP_Const.h</a>
+</li>
+<li>Max_XMP_Int64
+: <a class="el" href="XMP__Const_8h.html#a5783bb97f7a4837bf1938332d65804d8">XMP_Const.h</a>
+</li>
+<li>Max_XMP_Int8
+: <a class="el" href="XMP__Const_8h.html#a914a8ec6b55c89c7ed098e4d3b878989">XMP_Const.h</a>
+</li>
+<li>Max_XMP_Uns16
+: <a class="el" href="XMP__Const_8h.html#a950af5f297a8aba136e4fb0bb69b3167">XMP_Const.h</a>
+</li>
+<li>Max_XMP_Uns32
+: <a class="el" href="XMP__Const_8h.html#adc36ebc09374b4400ebc68df37a5abad">XMP_Const.h</a>
+</li>
+<li>Max_XMP_Uns64
+: <a class="el" href="XMP__Const_8h.html#aa6ce5fadc73345c8db588922dc731c89">XMP_Const.h</a>
+</li>
+<li>Max_XMP_Uns8
+: <a class="el" href="XMP__Const_8h.html#aa803470bc9b20fc47b0108559e4bccb4">XMP_Const.h</a>
+</li>
+<li>Min_XMP_Int16
+: <a class="el" href="XMP__Const_8h.html#abd313c6844b00bcfdbc43b0405fa8364">XMP_Const.h</a>
+</li>
+<li>Min_XMP_Int32
+: <a class="el" href="XMP__Const_8h.html#a778d64a8002543649fcd4e27b332aa38">XMP_Const.h</a>
+</li>
+<li>Min_XMP_Int64
+: <a class="el" href="XMP__Const_8h.html#a422fdf9dc276d3edacde0826d43dfea5">XMP_Const.h</a>
+</li>
+<li>Min_XMP_Int8
+: <a class="el" href="XMP__Const_8h.html#aad7fed121559de43b53067c0bcb9baae">XMP_Const.h</a>
+</li>
+<li>Min_XMP_Uns16
+: <a class="el" href="XMP__Const_8h.html#ae5d5ff926903623a451ada7cb840d815">XMP_Const.h</a>
+</li>
+<li>Min_XMP_Uns32
+: <a class="el" href="XMP__Const_8h.html#ae8936caf3fa038bd64705caf6ab2329f">XMP_Const.h</a>
+</li>
+<li>Min_XMP_Uns64
+: <a class="el" href="XMP__Const_8h.html#ae3052e3b7b6f4c6163331ead175a7e28">XMP_Const.h</a>
+</li>
+<li>Min_XMP_Uns8
+: <a class="el" href="XMP__Const_8h.html#a4abfa333cf45f8849b93c6a630537de2">XMP_Const.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/globals_w.html b/docs/API/globals_w.html
new file mode 100755
index 0000000..f55f134
--- /dev/null
+++ b/docs/API/globals_w.html
@@ -0,0 +1,493 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>File Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals.html#index__"><span>_</span></a></li>
+ <li><a href="globals_b.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_c.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_d.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_e.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_i.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_j.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_k.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_m.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_p.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_q.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_r.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_s.html#index_s"><span>s</span></a></li>
+ <li class="current"><a href="globals_w.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_x.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_z.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_w.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
+<li>WrapCheckBool
+: <a class="el" href="WXMP__Common_8hpp.html#a31e0519b68ec7cb1f4e54cd480dbc6bd">WXMP_Common.hpp</a>
+</li>
+<li>WrapCheckDocOpsRef
+: <a class="el" href="WXMP__Common_8hpp.html#a00bbfd8bed08cc3ef59534e66a7e55f8">WXMP_Common.hpp</a>
+</li>
+<li>WrapCheckFloat
+: <a class="el" href="WXMP__Common_8hpp.html#a0f0d9f01db5db9c03a3432d3fb43b86a">WXMP_Common.hpp</a>
+</li>
+<li>WrapCheckFormat
+: <a class="el" href="WXMP__Common_8hpp.html#a75478cb5e5f458cd440d87c650dd3673">WXMP_Common.hpp</a>
+</li>
+<li>WrapCheckIndex
+: <a class="el" href="WXMP__Common_8hpp.html#ae20f3a4940eeddcf29a174c86be91788">WXMP_Common.hpp</a>
+</li>
+<li>WrapCheckInt32
+: <a class="el" href="WXMP__Common_8hpp.html#a18b3cd640d64484f12de7f0367d4ccb2">WXMP_Common.hpp</a>
+</li>
+<li>WrapCheckInt64
+: <a class="el" href="WXMP__Common_8hpp.html#a22af7eda5280ca99f2c2e48b20ee4c74">WXMP_Common.hpp</a>
+</li>
+<li>WrapCheckIterRef
+: <a class="el" href="WXMP__Common_8hpp.html#a08838e2c5bcb3f4547172b4cce27a4a4">WXMP_Common.hpp</a>
+</li>
+<li>WrapCheckMetaRef
+: <a class="el" href="WXMP__Common_8hpp.html#a2cb35fa2967a5bce3686dde786db8210">WXMP_Common.hpp</a>
+</li>
+<li>WrapCheckNewMetadata
+: <a class="el" href="WXMP__Common_8hpp.html#ab7a2f115c6388749a3e20928978d3874">WXMP_Common.hpp</a>
+</li>
+<li>WrapCheckOptions
+: <a class="el" href="WXMP__Common_8hpp.html#ab0186f6247d7b051f1ab263c461c14c0">WXMP_Common.hpp</a>
+</li>
+<li>WrapCheckStatus
+: <a class="el" href="WXMP__Common_8hpp.html#aa5157be6b847c59d15e166d6fc7d392d">WXMP_Common.hpp</a>
+</li>
+<li>WrapCheckTriState
+: <a class="el" href="WXMP__Common_8hpp.html#a3ade7afea8e0dd088c4322680712246a">WXMP_Common.hpp</a>
+</li>
+<li>WrapCheckVoid
+: <a class="el" href="WXMP__Common_8hpp.html#a683fa38b9541eb26f91304087acad44d">WXMP_Common.hpp</a>
+</li>
+<li>WrapCheckXMPFilesRef
+: <a class="el" href="WXMPFiles_8hpp.html#a1411fd7ac45a5f6fa362977c962f6234">WXMPFiles.hpp</a>
+</li>
+<li>WrapErrorNotify()
+: <a class="el" href="WXMPMeta_8hpp.html#ab4f052c58b02cfecc26f8f2388249f4c">WXMPMeta.hpp</a>
+</li>
+<li>WrapFilesErrorNotify()
+: <a class="el" href="WXMPFiles_8hpp.html#a06a216001c8aed3b678bc2bbe510f59e">WXMPFiles.hpp</a>
+</li>
+<li>WrapNoCheckVoid
+: <a class="el" href="WXMP__Common_8hpp.html#ade570a6b1a2c59e509c71b5e82df6f80">WXMP_Common.hpp</a>
+</li>
+<li>WrapProgressReport()
+: <a class="el" href="WXMPFiles_8hpp.html#a595767f50ed53071f5240a94596a3451">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_CanPutXMP_1()
+: <a class="el" href="WXMPFiles_8hpp.html#a2ef5dde7ef08bd1c25ffc1950e6b93d5">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_CheckFileFormat_1()
+: <a class="el" href="WXMPFiles_8hpp.html#a793167f4d653d6f573dc0f4c4f07b298">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_CheckPackageFormat_1()
+: <a class="el" href="WXMPFiles_8hpp.html#a0cbf8fcfb5d011fa62c6409a2cd84ede">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_CloseFile_1()
+: <a class="el" href="WXMPFiles_8hpp.html#a2484fe15e37f4f2644f3568be0c7690e">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_CTor_1()
+: <a class="el" href="WXMPFiles_8hpp.html#a973b744c33e9a06d56f8b6b3a06394a4">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_DecrementRefCount_1()
+: <a class="el" href="WXMPFiles_8hpp.html#a7d423602bfc12e20d83a36df777c4c97">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_GetAssociatedResources_1()
+: <a class="el" href="WXMPFiles_8hpp.html#af963f839791b4de926e42680c091af32">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_GetFileInfo_1()
+: <a class="el" href="WXMPFiles_8hpp.html#a661d52226bb7f7bffb8f9a053721dcab">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_GetFileModDate_1()
+: <a class="el" href="WXMPFiles_8hpp.html#aefdd49820e9bfede87457429d519c8d2">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_GetFormatInfo_1()
+: <a class="el" href="WXMPFiles_8hpp.html#a71037373c70c18a183c7a9ee7f7babc9">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_GetVersionInfo_1()
+: <a class="el" href="WXMPFiles_8hpp.html#a96877191902363ca391c357b0bdeedf4">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_GetXMP_1()
+: <a class="el" href="WXMPFiles_8hpp.html#afd223e1c41a44dadcf1e4e9ab765ba7a">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_IncrementRefCount_1()
+: <a class="el" href="WXMPFiles_8hpp.html#abd63a02504b3199ea8bd5484a58ff02c">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_Initialize_1()
+: <a class="el" href="WXMPFiles_8hpp.html#a81794d63d62975b313aff0f869c7dded">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_Initialize_2()
+: <a class="el" href="WXMPFiles_8hpp.html#a39fce6bafe20c2847a288c6bded9dcc8">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_IsMetadataWritable_1()
+: <a class="el" href="WXMPFiles_8hpp.html#a5bfb800ea6bf214b5ac4853e2cfff3cc">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_OpenFile_1()
+: <a class="el" href="WXMPFiles_8hpp.html#a58e70573d754cc63966da6fc3fc70a91">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_PutXMP_1()
+: <a class="el" href="WXMPFiles_8hpp.html#aba40b211c434f8265c102c9ad3e801b5">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_ResetErrorCallbackLimit_1()
+: <a class="el" href="WXMPFiles_8hpp.html#ab91f3a925e6288c7fb1dc459019b3405">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_SetAbortProc_1()
+: <a class="el" href="WXMPFiles_8hpp.html#a3334dd84b04167cc3ae55c77a67f9b2a">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_SetDefaultErrorCallback_1()
+: <a class="el" href="WXMPFiles_8hpp.html#a515bb8c705a05236a146cbc7cde59055">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_SetDefaultProgressCallback_1()
+: <a class="el" href="WXMPFiles_8hpp.html#a077600358a735f85573174499356f0c1">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_SetErrorCallback_1()
+: <a class="el" href="WXMPFiles_8hpp.html#a15b59bc5c4c18355b097b3d0c85ecc3d">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_SetProgressCallback_1()
+: <a class="el" href="WXMPFiles_8hpp.html#ae613a8d848ffd06181ef67910ba3dcdd">WXMPFiles.hpp</a>
+</li>
+<li>WXMPFiles_Terminate_1()
+: <a class="el" href="WXMPFiles_8hpp.html#a80f57c97820f7c86ddfccd2814b2c973">WXMPFiles.hpp</a>
+</li>
+<li>WXMPIterator_DecrementRefCount_1()
+: <a class="el" href="WXMPIterator_8hpp.html#a6edb320022815734935207c5d81453c1">WXMPIterator.hpp</a>
+</li>
+<li>WXMPIterator_IncrementRefCount_1()
+: <a class="el" href="WXMPIterator_8hpp.html#aaad6b1b5368943be9cb4ce3285c3f5f3">WXMPIterator.hpp</a>
+</li>
+<li>WXMPIterator_Next_1()
+: <a class="el" href="WXMPIterator_8hpp.html#a3d19f210969f98668bb9a80281722d5b">WXMPIterator.hpp</a>
+</li>
+<li>WXMPIterator_PropCTor_1()
+: <a class="el" href="WXMPIterator_8hpp.html#a6835fb3f1b44169a838466f23f197f4d">WXMPIterator.hpp</a>
+</li>
+<li>WXMPIterator_Skip_1()
+: <a class="el" href="WXMPIterator_8hpp.html#ae6bb05117662013a9a5873f9d8ce4f2c">WXMPIterator.hpp</a>
+</li>
+<li>WXMPIterator_TableCTor_1()
+: <a class="el" href="WXMPIterator_8hpp.html#a4bcacc41e340e5c12ece3814d2a76d9e">WXMPIterator.hpp</a>
+</li>
+<li>WXMPMeta_AppendArrayItem_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a76960e4bc1344208d70a6055448ce591">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_Clone_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a0cc1264e977ecceec1307b490f70cdcd">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_CountArrayItems_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a48f79b8f9005c0cd93e0cf03bbe43024">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_CTor_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a3fb6f849c25f5bf964beb7eb9e98049d">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_DecrementRefCount_1()
+: <a class="el" href="WXMPMeta_8hpp.html#ac9ff1318eb934f05568d7f8f7177acf6">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_DeleteArrayItem_1()
+: <a class="el" href="WXMPMeta_8hpp.html#ae83bc466041e54f8e32b3909b10a63fe">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_DeleteLocalizedText_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a198c0bd7ce71a4a1ee5b4ab6daba500e">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_DeleteNamespace_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a8887351f8aee3cc57ababc137ab0719a">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_DeleteProperty_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a31f0b721c8e755b228a7ae66fa28b0b7">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_DeleteQualifier_1()
+: <a class="el" href="WXMPMeta_8hpp.html#abf5878ee7b66e8c18d45006579ba41d3">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_DeleteStructField_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a50a73f676357dfdbf1c2d5661020e43e">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_DoesArrayItemExist_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a6f0508454f99a854c74744f177c1294d">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_DoesPropertyExist_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a30e8a56bbc8c98a4787a6e6b4a1b9d1f">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_DoesQualifierExist_1()
+: <a class="el" href="WXMPMeta_8hpp.html#ab3c906d916e6dba4f2d422849a642fce">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_DoesStructFieldExist_1()
+: <a class="el" href="WXMPMeta_8hpp.html#adb8b207d7a45ffdc126092c97ce95010">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_DumpNamespaces_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a0328d3f6b63a301c17469f3a636bee8d">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_DumpObject_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a68c7253abe28cd30ad7c7657c388f30e">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_Erase_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a3cce18be810b681d3dcd2a0798fb2990">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_GetArrayItem_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a6d405bbe1c37ddd8ee7423d7be317f52">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_GetGlobalOptions_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a58a125d8a9eeee3a8906d50262faf06c">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_GetIXMPMetadata_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a0685ed8dc59360366c629cdc559076ce">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_GetLocalizedText_1()
+: <a class="el" href="WXMPMeta_8hpp.html#ac166c8171e8e4079cfbaadbc20bfc4cc">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_GetNamespacePrefix_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a7f407dba2b3fee31aad4cc0887ba7a0e">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_GetNamespaceURI_1()
+: <a class="el" href="WXMPMeta_8hpp.html#ae133a695d6efe0db6528395345f3c0c6">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_GetObjectName_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a7e9df8e5480d241a7ef7b033aa4e871f">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_GetObjectOptions_1()
+: <a class="el" href="WXMPMeta_8hpp.html#aaa50f01092ba1f94c9acaa390fb7afe9">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_GetProperty_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a2c650c402ba4850b082c2204eb4ecb43">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_GetProperty_Bool_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a38c91b47500447c40cfb3b38d73c749c">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_GetProperty_Date_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a27bd62e33f3fe7fd6777b1ef394d7af5">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_GetProperty_Float_1()
+: <a class="el" href="WXMPMeta_8hpp.html#ae80228876bb345c97a0fdebc52d9b5e4">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_GetProperty_Int64_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a3c95f29236b9e3a16fec0421479da937">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_GetProperty_Int_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a37107581e02cf1197d04118b0bfcffe5">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_GetQualifier_1()
+: <a class="el" href="WXMPMeta_8hpp.html#ad71ca4432c9e58f29caa355f70bc4f52">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_GetStructField_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a418658d30d2fd04c9080b3298a959c8d">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_GetVersionInfo_1()
+: <a class="el" href="WXMPMeta_8hpp.html#aa678642f09d4bc3ba83b55364112bf25">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_IncrementRefCount_1()
+: <a class="el" href="WXMPMeta_8hpp.html#ac85ab52aa3ea72b7a3a5a0ba90cb58a3">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_Initialize_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a459d905958efba79649c9884ecbfc3d8">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_ParseFromBuffer_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a9f3c397b927d7da7c84ee3a5a03ee2df">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_RegisterNamespace_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a0b32b12b061f62eb3f8ec1784165e03a">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_ResetErrorCallbackLimit_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a4155c5b0ae891213ea2d8f9872c215e8">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_SerializeToBuffer_1()
+: <a class="el" href="WXMPMeta_8hpp.html#af2ffbda0f3e382835296205504517d94">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_SetArrayItem_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a5a3ced9ef902d7281a4d0e3bbed8d0af">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_SetDefaultErrorCallback_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a21071def1d2284a61790b2d971231471">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_SetErrorCallback_1()
+: <a class="el" href="WXMPMeta_8hpp.html#ac4103e2833fe7efa8a46145a38e03ed5">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_SetGlobalOptions_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a1239ebede304d572f34b1319c0b14c05">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_SetLocalizedText_1()
+: <a class="el" href="WXMPMeta_8hpp.html#ae2b5b7330b5a153cc1de292e7ba291e5">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_SetObjectName_1()
+: <a class="el" href="WXMPMeta_8hpp.html#afee2f3c13f8dcb9f72104dd36eff4d68">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_SetObjectOptions_1()
+: <a class="el" href="WXMPMeta_8hpp.html#ae4afaee6e6376e126b919e73a8461e1e">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_SetProperty_1()
+: <a class="el" href="WXMPMeta_8hpp.html#aa9fcfcc4ad994abaa91574b956adc998">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_SetProperty_Bool_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a1e0b97d88538b256724218c24ec2aa06">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_SetProperty_Date_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a9a1bbebe74385a21e8eecd5883d01381">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_SetProperty_Float_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a5cf4a4b8c3ecfa12567ffdca5502f322">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_SetProperty_Int64_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a1659214d8debfaa1a7543ff4b96d700a">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_SetProperty_Int_1()
+: <a class="el" href="WXMPMeta_8hpp.html#abee87dd946056b03a1a650524ae3ce13">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_SetQualifier_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a4fcdf3f4212ff34e0b24a76e11c1c583">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_SetStructField_1()
+: <a class="el" href="WXMPMeta_8hpp.html#ad9ee99501a3dabc327b972ab8c3c000d">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_Sort_1()
+: <a class="el" href="WXMPMeta_8hpp.html#ac1d4f2bc9d0da42cda44f54071220eb5">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_Terminate_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a06d38f8fdf6a46ff8e672a98fb50f2f4">WXMPMeta.hpp</a>
+</li>
+<li>WXMPMeta_Use_CPP_DOM_APIs_1()
+: <a class="el" href="WXMPMeta_8hpp.html#a6d4b43bab339b01d216b29d89e695308">WXMPMeta.hpp</a>
+</li>
+<li>WXMPUtils_ApplyTemplate_1()
+: <a class="el" href="WXMPUtils_8hpp.html#a506f87a34b8f983115c3bbfb4eba46f2">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_CatenateArrayItems_1()
+: <a class="el" href="WXMPUtils_8hpp.html#ae0b2234822da68ea00aeb7485aab9efe">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_CompareDateTime_1()
+: <a class="el" href="WXMPUtils_8hpp.html#ad0b48ebb31c439d092185aa2d4fbfc79">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_ComposeArrayItemPath_1()
+: <a class="el" href="WXMPUtils_8hpp.html#ae6de22173661f35cf6926806cb052554">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_ComposeFieldSelector_1()
+: <a class="el" href="WXMPUtils_8hpp.html#aa7b4576af21a7c816768f1983100d432">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_ComposeLangSelector_1()
+: <a class="el" href="WXMPUtils_8hpp.html#af1bad4b3c7d72cff883c0ab0705e6c69">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_ComposeQualifierPath_1()
+: <a class="el" href="WXMPUtils_8hpp.html#a323219f2ccf286de50a5684a024a25d6">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_ComposeStructFieldPath_1()
+: <a class="el" href="WXMPUtils_8hpp.html#a691c12dfc25a4bb4baf82195248ab1c3">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_ConvertFromBool_1()
+: <a class="el" href="WXMPUtils_8hpp.html#ad80db557044003d1eb9c692a8703dead">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_ConvertFromDate_1()
+: <a class="el" href="WXMPUtils_8hpp.html#a2555ce5bb9789967eb75e591e83772fa">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_ConvertFromFloat_1()
+: <a class="el" href="WXMPUtils_8hpp.html#add25c775ebd8186f611365fb45c513df">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_ConvertFromInt64_1()
+: <a class="el" href="WXMPUtils_8hpp.html#a180b0ae8451b9606003f1e6e38287ae8">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_ConvertFromInt_1()
+: <a class="el" href="WXMPUtils_8hpp.html#ab651b25af61aec9fee3100166911d6c7">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_ConvertToBool_1()
+: <a class="el" href="WXMPUtils_8hpp.html#ac6ea9e5527993203e86849e5d3699bcb">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_ConvertToDate_1()
+: <a class="el" href="WXMPUtils_8hpp.html#ace54acfb2efef9cc192791b8046f6b3d">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_ConvertToFloat_1()
+: <a class="el" href="WXMPUtils_8hpp.html#a7614ad0bb2816ebfe794514f45a10c2e">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_ConvertToInt64_1()
+: <a class="el" href="WXMPUtils_8hpp.html#a59b3c8316d21dde2b2b79863c7527f02">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_ConvertToInt_1()
+: <a class="el" href="WXMPUtils_8hpp.html#aabf211114925d9eba94089f811efe87a">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_ConvertToLocalTime_1()
+: <a class="el" href="WXMPUtils_8hpp.html#a7812f80be0bfa177de3d0bb9d9bd5996">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_ConvertToUTCTime_1()
+: <a class="el" href="WXMPUtils_8hpp.html#a764cfb9c96b1e37dd108cb42014fd6b6">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_CurrentDateTime_1()
+: <a class="el" href="WXMPUtils_8hpp.html#a0b0bf2caafca6f06b8c84936ce4c27d8">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_DecodeFromBase64_1()
+: <a class="el" href="WXMPUtils_8hpp.html#ad31b8453fb086269c1118c51501f2987">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_DuplicateSubtree_1()
+: <a class="el" href="WXMPUtils_8hpp.html#a4a0f5534dae4f34f3b1a233eb04ac54e">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_EncodeToBase64_1()
+: <a class="el" href="WXMPUtils_8hpp.html#a4d4fa0056f55d427c3a0c07f98b86172">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_MergeFromJPEG_1()
+: <a class="el" href="WXMPUtils_8hpp.html#afc180986e0eb5c69a8acd7822780ebfb">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_PackageForJPEG_1()
+: <a class="el" href="WXMPUtils_8hpp.html#a1725e2cfd1509da540038ca426b98c8a">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_RemoveProperties_1()
+: <a class="el" href="WXMPUtils_8hpp.html#a7cc3619ebbd1f2f7527488882729a0cb">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_SeparateArrayItems_1()
+: <a class="el" href="WXMPUtils_8hpp.html#a29b7beb40cc51e935bd941eada601139">WXMPUtils.hpp</a>
+</li>
+<li>WXMPUtils_SetTimeZone_1()
+: <a class="el" href="WXMPUtils_8hpp.html#a777a7e3b9b0f8b7afab51e40dae3a921">WXMPUtils.hpp</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/globals_x.html b/docs/API/globals_x.html
new file mode 100755
index 0000000..5faf111
--- /dev/null
+++ b/docs/API/globals_x.html
@@ -0,0 +1,286 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>File Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals.html#index__"><span>_</span></a></li>
+ <li><a href="globals_b.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_c.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_d.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_e.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_i.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_j.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_k.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_m.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_p.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_q.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_r.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_s.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_w.html#index_w"><span>w</span></a></li>
+ <li class="current"><a href="globals_x.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_z.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_x.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_x"></a>- x -</h3><ul>
+<li>XMP_64
+: <a class="el" href="XMP__Environment_8h.html#a69ebf613b248c1e76ae5dbdeee505881">XMP_Environment.h</a>
+</li>
+<li>XMP_AbortProc
+: <a class="el" href="XMP__Const_8h.html#ac2434559f67332b9d23021b894da838c">XMP_Const.h</a>
+</li>
+<li>XMP_ArrayIsAlternate
+: <a class="el" href="XMP__Const_8h.html#a4928f3fcb7c05bf25694b63d95aa6ce7">XMP_Const.h</a>
+</li>
+<li>XMP_ArrayIsAltText
+: <a class="el" href="XMP__Const_8h.html#a57d2bb01a830b278c8e6d1ecdead52c4">XMP_Const.h</a>
+</li>
+<li>XMP_ArrayIsOrdered
+: <a class="el" href="XMP__Const_8h.html#aaace3ec19d70712e4eb16f6d36de9cfb">XMP_Const.h</a>
+</li>
+<li>XMP_ArrayIsUnordered
+: <a class="el" href="XMP__Const_8h.html#a67849593ac3ffe237743d301d94f1449">XMP_Const.h</a>
+</li>
+<li>XMP_Bool
+: <a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Const.h</a>
+</li>
+<li>XMP_CharFormIs16Bit
+: <a class="el" href="XMP__Const_8h.html#a72d86d541447456a08e0d29b57a6ae24">XMP_Const.h</a>
+</li>
+<li>XMP_CharFormIs32Bit
+: <a class="el" href="XMP__Const_8h.html#afd02278cadf2132a8cc1e7188715c860">XMP_Const.h</a>
+</li>
+<li>XMP_CharFormIsBigEndian
+: <a class="el" href="XMP__Const_8h.html#ad799046db4440bf02e2d244372ca913c">XMP_Const.h</a>
+</li>
+<li>XMP_CharFormIsLittleEndian
+: <a class="el" href="XMP__Const_8h.html#a906ec1cd2fb1631c1b5ad9ccdf9c0a6b">XMP_Const.h</a>
+</li>
+<li>XMP_CharFromSerializeForm
+: <a class="el" href="XMP__Const_8h.html#a93e7900e6c9fb4057dfd685b5201057d">XMP_Const.h</a>
+</li>
+<li>XMP_CharToSerializeForm
+: <a class="el" href="XMP__Const_8h.html#a42692697b1951300a6c82665ded8f781">XMP_Const.h</a>
+</li>
+<li>XMP_ClearOption
+: <a class="el" href="XMP__Const_8h.html#a04133ceba1ad7a582aa63c8f4a5abf69">XMP_Const.h</a>
+</li>
+<li>XMP_CTorDTorIntro
+: <a class="el" href="WXMP__Common_8hpp.html#a360e92875f1147e47c365950a6560d6c">WXMP_Common.hpp</a>
+</li>
+<li>XMP_DebugBuild
+: <a class="el" href="XMP__Environment_8h.html#abeb16d5e16e7b2120731acb63ad88e9f">XMP_Environment.h</a>
+</li>
+<li>XMP_ErrorSeverity
+: <a class="el" href="XMP__Const_8h.html#ae4a7c9347994883250dc440566eb9f52">XMP_Const.h</a>
+</li>
+<li>XMP_FileFormat
+: <a class="el" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_Const.h</a>
+</li>
+<li>XMP_GetCharSize
+: <a class="el" href="XMP__Const_8h.html#a017e63e6fcd1ede112e8945c49b339e6">XMP_Const.h</a>
+</li>
+<li>XMP_Index
+: <a class="el" href="XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315">XMP_Const.h</a>
+</li>
+<li>XMP_Inline
+: <a class="el" href="WXMP__Common_8hpp.html#acfcb026582fc145095d3667241515353">WXMP_Common.hpp</a>
+</li>
+<li>XMP_MARKER_EXTENSIBILITY_BACKWARD_COMPATIBILITY
+: <a class="el" href="XMP__Const_8h.html#a44054ee28ca59bd6b5823e4e47479483">XMP_Const.h</a>
+</li>
+<li>XMP_MethodIntro
+: <a class="el" href="WXMP__Common_8hpp.html#a9874672542b6adee728f1176b565c141">WXMP_Common.hpp</a>
+</li>
+<li>XMP_NodeIsSchema
+: <a class="el" href="XMP__Const_8h.html#a18d4769112002d84e2ddd1aba6ef473c">XMP_Const.h</a>
+</li>
+<li>XMP_OptionBits
+: <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_Const.h</a>
+</li>
+<li>XMP_OptionIsClear
+: <a class="el" href="XMP__Const_8h.html#a1d41f53bd1d5c88fad8322ce15e39516">XMP_Const.h</a>
+</li>
+<li>XMP_OptionIsSet
+: <a class="el" href="XMP__Const_8h.html#a8d8d2810a46a2b171107f4a2387e003d">XMP_Const.h</a>
+</li>
+<li>XMP_PRIVATE
+: <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_Environment.h</a>
+</li>
+<li>XMP_ProgressReportProc
+: <a class="el" href="XMP__Const_8h.html#a01973e700ac2ba7f3debef340ccaa663">XMP_Const.h</a>
+</li>
+<li>XMP_ProgressReportWrapper
+: <a class="el" href="XMP__Const_8h.html#a61eb4db5a58902c130d3b3929db624db">XMP_Const.h</a>
+</li>
+<li>XMP_PropHasLang
+: <a class="el" href="XMP__Const_8h.html#adc4bc1a5da8c0a3d1a77366e4803680f">XMP_Const.h</a>
+</li>
+<li>XMP_PropHasQualifiers
+: <a class="el" href="XMP__Const_8h.html#a10828aa191aa666aa1166c27beead2a6">XMP_Const.h</a>
+</li>
+<li>XMP_PropIsAlias
+: <a class="el" href="XMP__Const_8h.html#a69a18fc954796cdbaa8771de5a476fab">XMP_Const.h</a>
+</li>
+<li>XMP_PropIsArray
+: <a class="el" href="XMP__Const_8h.html#ab8cf5a7c0f5a8dfc052117638fb55324">XMP_Const.h</a>
+</li>
+<li>XMP_PropIsQualifier
+: <a class="el" href="XMP__Const_8h.html#a9a555a9eb2fabe97dd57e8d2e1b077f5">XMP_Const.h</a>
+</li>
+<li>XMP_PropIsSimple
+: <a class="el" href="XMP__Const_8h.html#a43aeebde901bea1932203107c690a2dc">XMP_Const.h</a>
+</li>
+<li>XMP_PropIsStruct
+: <a class="el" href="XMP__Const_8h.html#a9ecd2dede6b25ecec9a430c151d74d83">XMP_Const.h</a>
+</li>
+<li>XMP_PUBLIC
+: <a class="el" href="XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b">XMP_Environment.h</a>
+</li>
+<li>XMP_SetOption
+: <a class="el" href="XMP__Const_8h.html#a10a766c47b5ea01f285501b49d20bc62">XMP_Const.h</a>
+</li>
+<li>XMP_Status
+: <a class="el" href="XMP__Const_8h.html#a05b81829c04746826f4f85fbac76e3dd">XMP_Const.h</a>
+</li>
+<li>XMP_StringLen
+: <a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_Const.h</a>
+</li>
+<li>XMP_StringPtr
+: <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_Const.h</a>
+</li>
+<li>XMP_TestOption
+: <a class="el" href="XMP__Const_8h.html#aee6dc47c8013d4514ed363ae16ba2ad3">XMP_Const.h</a>
+</li>
+<li>XMP_TextOutputProc
+: <a class="el" href="XMP__Const_8h.html#aa55bae1e6be4ddcefbaf214942e5b272">XMP_Const.h</a>
+</li>
+<li>XMP_TraceClientCalls
+: <a class="el" href="WXMP__Common_8hpp.html#a803c218d593737c645bbea4bf80dd815">WXMP_Common.hpp</a>
+</li>
+<li>XMP_TraceClientCallsToFile
+: <a class="el" href="WXMP__Common_8hpp.html#aab5f92f08cddd67ae7c8bab22b4f0dd7">WXMP_Common.hpp</a>
+</li>
+<li>XMP_TriState
+: <a class="el" href="XMP__Const_8h.html#a377e4a668de99ce6ed176cef5aaf3fcd">XMP_Const.h</a>
+</li>
+<li>XMP_VersionInfo
+: <a class="el" href="XMP__Const_8h.html#a57250ff934e642191654ae49c3a2c6c9">XMP_Const.h</a>
+</li>
+<li>XMPCORE_API_VERSION
+: <a class="el" href="XMP__Version_8h.html#ac041954a884c9a67412ce45fd8b93ba8">XMP_Version.h</a>
+</li>
+<li>XMPCORE_API_VERSION_MAJOR
+: <a class="el" href="XMP__Version_8h.html#aac716764f5886d3aa2cae548de31914d">XMP_Version.h</a>
+</li>
+<li>XMPCORE_API_VERSION_MICRO
+: <a class="el" href="XMP__Version_8h.html#a23b73225c458457027b81af90253a36d">XMP_Version.h</a>
+</li>
+<li>XMPCORE_API_VERSION_MINOR
+: <a class="el" href="XMP__Version_8h.html#a9c0c98c086845899204c31cd7e40ee66">XMP_Version.h</a>
+</li>
+<li>XMPCORE_API_VERSION_STRING
+: <a class="el" href="XMP__Version_8h.html#a980a28c05c998865f032cda8057530dd">XMP_Version.h</a>
+</li>
+<li>XMPDateTime_ClearTimeZone
+: <a class="el" href="XMP__Const_8h.html#a8d6dc898fe00aeaf567d7af3ec23316a">XMP_Const.h</a>
+</li>
+<li>XMPDateTime_IsDateOnly
+: <a class="el" href="XMP__Const_8h.html#ae12feaba743c6b1ab1a24ae13fecbffb">XMP_Const.h</a>
+</li>
+<li>XMPDateTime_IsTimeOnly
+: <a class="el" href="XMP__Const_8h.html#a10149d273250015e91931cd93b649a2e">XMP_Const.h</a>
+</li>
+<li>XMPDocOpsRef
+: <a class="el" href="XMP__Const_8h.html#ab516453dd7d906e911f8951983cde5f1">XMP_Const.h</a>
+</li>
+<li>XMPFILES_API_VERSION
+: <a class="el" href="XMP__Version_8h.html#ad887c030e319e8ec87b2bb219b411eba">XMP_Version.h</a>
+</li>
+<li>XMPFILES_API_VERSION_MAJOR
+: <a class="el" href="XMP__Version_8h.html#a2d20bc110f01b87d6456f9db1169d0f2">XMP_Version.h</a>
+</li>
+<li>XMPFILES_API_VERSION_MICRO
+: <a class="el" href="XMP__Version_8h.html#ab50f056612c375f3f3ec2c2bd4b15c20">XMP_Version.h</a>
+</li>
+<li>XMPFILES_API_VERSION_MINOR
+: <a class="el" href="XMP__Version_8h.html#a824cb65b80a8e7a2a434e3c7e90e34c1">XMP_Version.h</a>
+</li>
+<li>XMPFILES_API_VERSION_STRING
+: <a class="el" href="XMP__Version_8h.html#a76ec48e8c62eb491e18c98b620d83826">XMP_Version.h</a>
+</li>
+<li>XMPFiles_ErrorCallbackProc
+: <a class="el" href="XMP__Const_8h.html#a7bed3dd93335821e5afa0ac2b07a9640">XMP_Const.h</a>
+</li>
+<li>XMPFiles_ErrorCallbackWrapper
+: <a class="el" href="XMP__Const_8h.html#a24670f4db8bda6e113612fa0c81ffe6b">XMP_Const.h</a>
+</li>
+<li>XMPFilesRef
+: <a class="el" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMP_Const.h</a>
+</li>
+<li>XMPIteratorRef
+: <a class="el" href="XMP__Const_8h.html#a6ade57a30fb1e40d6aa9695c440fc3d2">XMP_Const.h</a>
+</li>
+<li>XMPMeta_ErrorCallbackProc
+: <a class="el" href="XMP__Const_8h.html#abb3c238ce96e9198ebe4260200bfb67b">XMP_Const.h</a>
+</li>
+<li>XMPMeta_ErrorCallbackWrapper
+: <a class="el" href="XMP__Const_8h.html#a32cbbc2b93eb9028d441ecb4223eb2a4">XMP_Const.h</a>
+</li>
+<li>XMPMetaRef
+: <a class="el" href="XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e">XMP_Const.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/globals_z.html b/docs/API/globals_z.html
new file mode 100755
index 0000000..2b2d453
--- /dev/null
+++ b/docs/API/globals_z.html
@@ -0,0 +1,418 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>File Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals.html#index__"><span>_</span></a></li>
+ <li><a href="globals_b.html#index_b"><span>b</span></a></li>
+ <li><a href="globals_c.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_d.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_e.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_i.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_j.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_k.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_m.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_p.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_q.html#index_q"><span>q</span></a></li>
+ <li><a href="globals_r.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_s.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_w.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_x.html#index_x"><span>x</span></a></li>
+ <li class="current"><a href="globals_z.html#index_z"><span>z</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_z.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_z"></a>- z -</h3><ul>
+<li>zXMPFiles_CanPutXMP_1
+: <a class="el" href="WXMPFiles_8hpp.html#a5c8a9971542af98048b1a19b73d65310">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_CheckFileFormat_1
+: <a class="el" href="WXMPFiles_8hpp.html#a91589c63b3c0c034e11c60a4eaaa3de1">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_CheckPackageFormat_1
+: <a class="el" href="WXMPFiles_8hpp.html#a5138829cfbf5712d5afe85109a253de7">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_CloseFile_1
+: <a class="el" href="WXMPFiles_8hpp.html#aae01191749d7b0e1b4700516d3a263cf">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_CTor_1
+: <a class="el" href="WXMPFiles_8hpp.html#ab5ad690470439e4813284756971a606e">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_GetAssociatedResources_1
+: <a class="el" href="WXMPFiles_8hpp.html#a388f91a00251ec7b9d9dfcf60a5663a0">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_GetFileInfo_1
+: <a class="el" href="WXMPFiles_8hpp.html#ab479175bf8e053d15f94561b681b127a">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_GetFileModDate_1
+: <a class="el" href="WXMPFiles_8hpp.html#afc6b46974e9108cde02b74f5b7a6fb97">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_GetFormatInfo_1
+: <a class="el" href="WXMPFiles_8hpp.html#a22159932057a32ae1b7438a4cb38b061">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_GetVersionInfo_1
+: <a class="el" href="WXMPFiles_8hpp.html#a1c07156ac21d3ccd800fbd540fa1894b">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_GetXMP_1
+: <a class="el" href="WXMPFiles_8hpp.html#a5fdbbcc0de3c2b6c8c67c355bc2b73ef">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_Initialize_1
+: <a class="el" href="WXMPFiles_8hpp.html#aa4bd33393eec73960abad65df45555e1">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_Initialize_2
+: <a class="el" href="WXMPFiles_8hpp.html#a3d2fb0bb2d758c818c2d7a544e89235b">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_IsMetadataWritable_1
+: <a class="el" href="WXMPFiles_8hpp.html#a306bb7b988eec6378c2a9fc487caf617">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_OpenFile_1
+: <a class="el" href="WXMPFiles_8hpp.html#a8a739d2d110756df76a6560bf024d7db">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_PutXMP_1
+: <a class="el" href="WXMPFiles_8hpp.html#a1d4f17626f5426e949d89a826b47e139">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_ResetErrorCallbackLimit_1
+: <a class="el" href="WXMPFiles_8hpp.html#a98022dc34d13e606183e09b65ec48c46">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_SetAbortProc_1
+: <a class="el" href="WXMPFiles_8hpp.html#aaeee52c59e243c3aec3a1f155052cda7">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_SetDefaultErrorCallback_1
+: <a class="el" href="WXMPFiles_8hpp.html#a49db2cb75d6fbed2f76090d9a8fbcd2c">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_SetDefaultProgressCallback_1
+: <a class="el" href="WXMPFiles_8hpp.html#a4fcbcba3b02b01ab8f0e34d4d9db2e81">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_SetErrorCallback_1
+: <a class="el" href="WXMPFiles_8hpp.html#adfc59976766bc8cd2bbafcc512ff22e0">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_SetProgressCallback_1
+: <a class="el" href="WXMPFiles_8hpp.html#a226c2df14f357c12de0503e64d9d14f0">WXMPFiles.hpp</a>
+</li>
+<li>zXMPFiles_Terminate_1
+: <a class="el" href="WXMPFiles_8hpp.html#a08126268000561c2c10af0f0a8226dce">WXMPFiles.hpp</a>
+</li>
+<li>zXMPIterator_Next_1
+: <a class="el" href="WXMPIterator_8hpp.html#ac5cfa7bd53753408e8e6b20225429fa0">WXMPIterator.hpp</a>
+</li>
+<li>zXMPIterator_PropCTor_1
+: <a class="el" href="WXMPIterator_8hpp.html#a490d04bf7641a1fa38dc1d4a4c106de9">WXMPIterator.hpp</a>
+</li>
+<li>zXMPIterator_Skip_1
+: <a class="el" href="WXMPIterator_8hpp.html#aa79ff88d5629b5161a4cef06f1c9d121">WXMPIterator.hpp</a>
+</li>
+<li>zXMPIterator_TableCTor_1
+: <a class="el" href="WXMPIterator_8hpp.html#aa53f3af28fb173ee0f6d01b9f1196d6d">WXMPIterator.hpp</a>
+</li>
+<li>zXMPMeta_AppendArrayItem_1
+: <a class="el" href="WXMPMeta_8hpp.html#a30ce4c07c9e676bd522ba2de196f8f62">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_Clone_1
+: <a class="el" href="WXMPMeta_8hpp.html#a0acf7eccade1539e1c0a69b8ff2887db">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_CountArrayItems_1
+: <a class="el" href="WXMPMeta_8hpp.html#af665276132037f0aad9c3184163ff088">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_CTor_1
+: <a class="el" href="WXMPMeta_8hpp.html#a5407ff91fcbe5cae856e8644e998c396">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_DeleteArrayItem_1
+: <a class="el" href="WXMPMeta_8hpp.html#a97ae24365cb43c4e6e6886d0d7fa9df6">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_DeleteLocalizedText_1
+: <a class="el" href="WXMPMeta_8hpp.html#abac12b12f5dc2ccb20fe28e293f8db1d">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_DeleteNamespace_1
+: <a class="el" href="WXMPMeta_8hpp.html#ad5e74b2f1acce6eab6e090c54ea742cc">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_DeleteProperty_1
+: <a class="el" href="WXMPMeta_8hpp.html#a1fd13036f7844b3b5c75984e8ac1e1e9">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_DeleteQualifier_1
+: <a class="el" href="WXMPMeta_8hpp.html#aa0e45856fae5a4c45f986978dae73843">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_DeleteStructField_1
+: <a class="el" href="WXMPMeta_8hpp.html#aaa1d0c192d952db671b24d38c974824e">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_DoesArrayItemExist_1
+: <a class="el" href="WXMPMeta_8hpp.html#a166e93fe425704a6b9b405b52fd492f8">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_DoesPropertyExist_1
+: <a class="el" href="WXMPMeta_8hpp.html#a2df62a9ced0164bbc4d4d63922d46e3e">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_DoesQualifierExist_1
+: <a class="el" href="WXMPMeta_8hpp.html#aa9370910efc3836b82ab4e24f36f859c">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_DoesStructFieldExist_1
+: <a class="el" href="WXMPMeta_8hpp.html#a0a780565631328197529fd5eda5839ed">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_DumpNamespaces_1
+: <a class="el" href="WXMPMeta_8hpp.html#a5e549c2a44cf580c1f6a25f02ba767af">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_DumpObject_1
+: <a class="el" href="WXMPMeta_8hpp.html#a18308efec56a894bfa2ed9a3967c8feb">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_Erase_1
+: <a class="el" href="WXMPMeta_8hpp.html#ae4b069f217d8e161ea7e972f1c37a641">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_GetArrayItem_1
+: <a class="el" href="WXMPMeta_8hpp.html#a4d079b8cbe5efc658a64b0bd9be60e8e">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_GetGlobalOptions_1
+: <a class="el" href="WXMPMeta_8hpp.html#a042f1cb44600209bed7d27a26ee937a3">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_GetIXMPMetadata_1
+: <a class="el" href="WXMPMeta_8hpp.html#a4b0a23906a0bd1ef87d381a7d940b5b0">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_GetLocalizedText_1
+: <a class="el" href="WXMPMeta_8hpp.html#ad18d48d5755d4318c725919eddeb4bec">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_GetNamespacePrefix_1
+: <a class="el" href="WXMPMeta_8hpp.html#afcbc2ac610c4e23a128ff80203e3a4a5">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_GetNamespaceURI_1
+: <a class="el" href="WXMPMeta_8hpp.html#a21cb3d8399b93c52cb4000cec668c5e3">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_GetObjectName_1
+: <a class="el" href="WXMPMeta_8hpp.html#a2e1e3752c2a1bc7a80c595ab9d08d2ff">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_GetObjectOptions_1
+: <a class="el" href="WXMPMeta_8hpp.html#a04725a82690d7fa41b294237f4a7efeb">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_GetProperty_1
+: <a class="el" href="WXMPMeta_8hpp.html#af4035499938bb4645b207b7ff65f19d7">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_GetProperty_Bool_1
+: <a class="el" href="WXMPMeta_8hpp.html#a7938f68d5243be7813ff405791e36518">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_GetProperty_Date_1
+: <a class="el" href="WXMPMeta_8hpp.html#a17131cb1b6f77db2c6fc56effddb629e">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_GetProperty_Float_1
+: <a class="el" href="WXMPMeta_8hpp.html#ac71c9ef20221ea9bfcf21f8265c35b17">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_GetProperty_Int64_1
+: <a class="el" href="WXMPMeta_8hpp.html#ab5ee5ac8d0de80b02b3d5588c596dfde">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_GetProperty_Int_1
+: <a class="el" href="WXMPMeta_8hpp.html#af95f01dadd596260f8d2833bc650135b">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_GetQualifier_1
+: <a class="el" href="WXMPMeta_8hpp.html#a3490f2d966ecaa048af87a6405128b08">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_GetStructField_1
+: <a class="el" href="WXMPMeta_8hpp.html#aaad2d6874da145ec47c9b4f60b76cfcf">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_GetVersionInfo_1
+: <a class="el" href="WXMPMeta_8hpp.html#a72415a5d17bb47c3d818d11a710f5c0b">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_Initialize_1
+: <a class="el" href="WXMPMeta_8hpp.html#af0ee01859f7324e6668fe372bc54a2a4">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_ParseFromBuffer_1
+: <a class="el" href="WXMPMeta_8hpp.html#a1e85839b8c67c99f43fb15fc2942b34d">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_RegisterNamespace_1
+: <a class="el" href="WXMPMeta_8hpp.html#adde0feeb518ce416f906292542a92d46">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_ResetErrorCallbackLimit_1
+: <a class="el" href="WXMPMeta_8hpp.html#a9128462ca53008ccf87e5fcd96cf966e">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_SerializeToBuffer_1
+: <a class="el" href="WXMPMeta_8hpp.html#a91cf006a6594600c7bff11a4460d077f">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_SetArrayItem_1
+: <a class="el" href="WXMPMeta_8hpp.html#aa5eeb477a58a35f336c4349e08e13600">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_SetDefaultErrorCallback_1
+: <a class="el" href="WXMPMeta_8hpp.html#ab4d6e5d26b15df865d0e96343d31e408">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_SetErrorCallback_1
+: <a class="el" href="WXMPMeta_8hpp.html#a2e349470fb118ebce92e0eabb305f4ff">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_SetGlobalOptions_1
+: <a class="el" href="WXMPMeta_8hpp.html#ab7ed5170b4879381078d0724cbdbbd0f">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_SetLocalizedText_1
+: <a class="el" href="WXMPMeta_8hpp.html#a2cf74d9cb0162bca6f5e024773bff238">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_SetObjectName_1
+: <a class="el" href="WXMPMeta_8hpp.html#a3ce4a228c127f37ebe5085fcbaae8851">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_SetObjectOptions_1
+: <a class="el" href="WXMPMeta_8hpp.html#ad7bf555513506cae450b216eb56dcef1">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_SetProperty_1
+: <a class="el" href="WXMPMeta_8hpp.html#abe56d32dec99c09791850e14fa199fff">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_SetProperty_Bool_1
+: <a class="el" href="WXMPMeta_8hpp.html#a15ef1d6a8788115c277cf74d254eae50">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_SetProperty_Date_1
+: <a class="el" href="WXMPMeta_8hpp.html#a10cd70a1efb7cdf9516842a89c8b42eb">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_SetProperty_Float_1
+: <a class="el" href="WXMPMeta_8hpp.html#a21feb6c743ada14de8277f6bcedd86a5">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_SetProperty_Int64_1
+: <a class="el" href="WXMPMeta_8hpp.html#abe1551b9240e06ba4d2ab972f1efbe85">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_SetProperty_Int_1
+: <a class="el" href="WXMPMeta_8hpp.html#a2224a04bc65b61f1557a4ceedfab2aee">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_SetQualifier_1
+: <a class="el" href="WXMPMeta_8hpp.html#a75913c1b8f26041bd029418d39902830">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_SetStructField_1
+: <a class="el" href="WXMPMeta_8hpp.html#a8faddabe97b832233d6e10aa9ca0fbef">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_Sort_1
+: <a class="el" href="WXMPMeta_8hpp.html#a0ba6dd317cb80ed9acc2bae3faf7a5e4">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_Terminate_1
+: <a class="el" href="WXMPMeta_8hpp.html#af9276110cbdeb3b3098b6bbdf620977f">WXMPMeta.hpp</a>
+</li>
+<li>zXMPMeta_Use_CPP_DOM_APIs_1
+: <a class="el" href="WXMPMeta_8hpp.html#a696f7638346770aecec1a4570098d9fd">WXMPMeta.hpp</a>
+</li>
+<li>zXMPUtils_ApplyTemplate_1
+: <a class="el" href="WXMPUtils_8hpp.html#a862c949794995c58c9ad74737973b6ef">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_CatenateArrayItems_1
+: <a class="el" href="WXMPUtils_8hpp.html#aec36d93389403739f12a162502d56ab5">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_CompareDateTime_1
+: <a class="el" href="WXMPUtils_8hpp.html#a0b273ea840ed328c8b0ebce5ea17873c">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_ComposeArrayItemPath_1
+: <a class="el" href="WXMPUtils_8hpp.html#ad91341db639119d2bf30ff456a29f42c">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_ComposeFieldSelector_1
+: <a class="el" href="WXMPUtils_8hpp.html#ab25f06cea61f5562e1df5efe99922c5e">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_ComposeLangSelector_1
+: <a class="el" href="WXMPUtils_8hpp.html#a85ade86f24f96a54d386b3d9ae7d96ae">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_ComposeQualifierPath_1
+: <a class="el" href="WXMPUtils_8hpp.html#a377a1ad29357867bfcdceda410400b6b">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_ComposeStructFieldPath_1
+: <a class="el" href="WXMPUtils_8hpp.html#a106974fdb19fd470dd25d0913af28246">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_ConvertFromBool_1
+: <a class="el" href="WXMPUtils_8hpp.html#a8a014e86556114f1756815477cad4321">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_ConvertFromDate_1
+: <a class="el" href="WXMPUtils_8hpp.html#acb32764db5b81fa4b0efca35188a4f6a">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_ConvertFromFloat_1
+: <a class="el" href="WXMPUtils_8hpp.html#af8bcd900825782a784239b8fed6a6f6e">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_ConvertFromInt64_1
+: <a class="el" href="WXMPUtils_8hpp.html#a424ca120abc0e6ef6f2354e82757ce5b">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_ConvertFromInt_1
+: <a class="el" href="WXMPUtils_8hpp.html#a6bca9ebbc56f0a9136478d22b43e6bc8">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_ConvertToBool_1
+: <a class="el" href="WXMPUtils_8hpp.html#a3de2ac287d2eb9a3786f187b0b5944d7">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_ConvertToDate_1
+: <a class="el" href="WXMPUtils_8hpp.html#af2017eaec1cabc679e2083dfd4c1f7c8">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_ConvertToFloat_1
+: <a class="el" href="WXMPUtils_8hpp.html#a7a6e1c8d446dd9416b7fc4279cb5c026">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_ConvertToInt64_1
+: <a class="el" href="WXMPUtils_8hpp.html#aaf92038d52fe0a7eee019a9d51350532">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_ConvertToInt_1
+: <a class="el" href="WXMPUtils_8hpp.html#ac089fd797e17f92af27b512b0d96951c">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_ConvertToLocalTime_1
+: <a class="el" href="WXMPUtils_8hpp.html#a7dd59fc7ea99702edee606e30925ee82">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_ConvertToUTCTime_1
+: <a class="el" href="WXMPUtils_8hpp.html#a71770255372756959a29324f2bcdd654">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_CurrentDateTime_1
+: <a class="el" href="WXMPUtils_8hpp.html#a0565337a6234a5e7421586787a29d5b6">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_DecodeFromBase64_1
+: <a class="el" href="WXMPUtils_8hpp.html#aafde1fd448ec36673b9eb70fdac115e8">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_DuplicateSubtree_1
+: <a class="el" href="WXMPUtils_8hpp.html#aa70282eba27fd239e2cfd561b88c08be">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_EncodeToBase64_1
+: <a class="el" href="WXMPUtils_8hpp.html#a844d244df1b48816a3397ef50c7f5f5b">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_MergeFromJPEG_1
+: <a class="el" href="WXMPUtils_8hpp.html#a873b7cbb40f65be873aa2b6ca6cd4eab">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_PackageForJPEG_1
+: <a class="el" href="WXMPUtils_8hpp.html#ad3481cdf333724ff87223d1514dd95cf">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_RemoveProperties_1
+: <a class="el" href="WXMPUtils_8hpp.html#aeb44088490f2951c3491003796ec50a1">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_SeparateArrayItems_1
+: <a class="el" href="WXMPUtils_8hpp.html#a89d6c91a990c8ec93f00832c946fdf37">WXMPUtils.hpp</a>
+</li>
+<li>zXMPUtils_SetTimeZone_1
+: <a class="el" href="WXMPUtils_8hpp.html#a1d51ef9a2d3fd698e664df2dec2c9b13">WXMPUtils.hpp</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/graph_legend.dot b/docs/API/graph_legend.dot
deleted file mode 100644
index ec7b113..0000000
--- a/docs/API/graph_legend.dot
+++ /dev/null
@@ -1,23 +0,0 @@
-digraph G
-{
- bgcolor="transparent";
- edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
- node [fontname="FreeSans",fontsize="10",shape=record];
- Node9 [shape="box",label="Inherited",fontsize="10",height=0.2,width=0.4,fontname="FreeSans",fillcolor="grey75",style="filled" fontcolor="black"];
- Node10 -> Node9 [dir=back,color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
- Node10 [shape="box",label="PublicBase",fontsize="10",height=0.2,width=0.4,fontname="FreeSans",color="black",URL="$classPublicBase.html"];
- Node11 -> Node10 [dir=back,color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
- Node11 [shape="box",label="Truncated",fontsize="10",height=0.2,width=0.4,fontname="FreeSans",color="red",URL="$classTruncated.html"];
- Node13 -> Node9 [dir=back,color="darkgreen",fontsize="10",style="solid",fontname="FreeSans"];
- Node13 [shape="box",label="ProtectedBase",fontsize="10",height=0.2,width=0.4,fontname="FreeSans",color="black",URL="$classProtectedBase.html"];
- Node14 -> Node9 [dir=back,color="firebrick4",fontsize="10",style="solid",fontname="FreeSans"];
- Node14 [shape="box",label="PrivateBase",fontsize="10",height=0.2,width=0.4,fontname="FreeSans",color="black",URL="$classPrivateBase.html"];
- Node15 -> Node9 [dir=back,color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
- Node15 [shape="box",label="Undocumented",fontsize="10",height=0.2,width=0.4,fontname="FreeSans",color="grey75"];
- Node16 -> Node9 [dir=back,color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
- Node16 [shape="box",label="Templ< int >",fontsize="10",height=0.2,width=0.4,fontname="FreeSans",color="black",URL="$classTempl.html"];
- Node17 -> Node16 [dir=back,color="orange",fontsize="10",style="dashed",label="< int >",fontname="FreeSans"];
- Node17 [shape="box",label="Templ< T >",fontsize="10",height=0.2,width=0.4,fontname="FreeSans",color="black",URL="$classTempl.html"];
- Node18 -> Node9 [dir=back,color="darkorchid3",fontsize="10",style="dashed",label="m_usedClass",fontname="FreeSans"];
- Node18 [shape="box",label="Used",fontsize="10",height=0.2,width=0.4,fontname="FreeSans",color="black",URL="$classUsed.html"];
-}
diff --git a/docs/API/graph_legend.html b/docs/API/graph_legend.html
deleted file mode 100644
index f1a7a77..0000000
--- a/docs/API/graph_legend.html
+++ /dev/null
@@ -1,128 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: Graph Legend</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
-<link href="tabs.css" rel="stylesheet" type="text/css">
-</head><body>
-<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
- <li><a href="annotated.html"><span>Classes</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
-</div>
-<div class="contents">
-<h1>Graph Legend</h1><p>This page explains how to interpret the graphs that are generated by doxygen.</p>
-<p>Consider the following example: </p>
-<div class="fragment"><pre class="fragment"><span class="comment">/*! Invisible class because of truncation */</span>
-<span class="keyword">class </span>Invisible { };
-<span class="comment"></span>
-<span class="comment">/*! Truncated class, inheritance relation is hidden */</span>
-<span class="keyword">class </span>Truncated : <span class="keyword">public</span> Invisible { };
-
-<span class="comment">/* Class not documented with doxygen comments */</span>
-<span class="keyword">class </span>Undocumented { };
-<span class="comment"></span>
-<span class="comment">/*! Class that is inherited using public inheritance */</span>
-<span class="keyword">class </span>PublicBase : <span class="keyword">public</span> Truncated { };
-<span class="comment"></span>
-<span class="comment">/*! A template class */</span>
-<span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt; <span class="keyword">class </span>Templ { };
-<span class="comment"></span>
-<span class="comment">/*! Class that is inherited using protected inheritance */</span>
-<span class="keyword">class </span>ProtectedBase { };
-<span class="comment"></span>
-<span class="comment">/*! Class that is inherited using private inheritance */</span>
-<span class="keyword">class </span>PrivateBase { };
-<span class="comment"></span>
-<span class="comment">/*! Class that is used by the Inherited class */</span>
-<span class="keyword">class </span>Used { };
-<span class="comment"></span>
-<span class="comment">/*! Super class that inherits a number of other classes */</span>
-<span class="keyword">class </span>Inherited : <span class="keyword">public</span> PublicBase,
- <span class="keyword">protected</span> ProtectedBase,
- <span class="keyword">private</span> PrivateBase,
- <span class="keyword">public</span> Undocumented,
- <span class="keyword">public</span> Templ&lt;int&gt;
-{
- <span class="keyword">private</span>:
- Used *m_usedClass;
-};
-</pre></div><p> This will result in the following graph:</p>
-<center><div align="center">
-<img src="graph_legend.png" alt="graph_legend.png"/>
-</div>
-</center> <p>The boxes in the above graph have the following meaning: </p>
-<ul>
-<li>
-A filled gray box represents the struct or class for which the graph is generated. </li>
-<li>
-A box with a black border denotes a documented struct or class. </li>
-<li>
-A box with a grey border denotes an undocumented struct or class. </li>
-<li>
-A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries. </li>
-</ul>
-<p>The arrows have the following meaning: </p>
-<ul>
-<li>
-A dark blue arrow is used to visualize a public inheritance relation between two classes. </li>
-<li>
-A dark green arrow is used for protected inheritance. </li>
-<li>
-A dark red arrow is used for private inheritance. </li>
-<li>
-A purple dashed arrow is used if a class is contained or used by another class. The arrow is labeled with the variable(s) through which the pointed class or struct is accessible. </li>
-<li>
-A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labeled with the template parameters of the instance. </li>
-</ul>
-</div>
-<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
-</body>
-</html>
diff --git a/docs/API/graph_legend.png b/docs/API/graph_legend.png
deleted file mode 100644
index 5e2a339..0000000
--- a/docs/API/graph_legend.png
+++ /dev/null
Binary files differ
diff --git a/docs/API/hierarchy.html b/docs/API/hierarchy.html
new file mode 100755
index 0000000..ce5e657
--- /dev/null
+++ b/docs/API/hierarchy.html
@@ -0,0 +1,110 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Class Hierarchy</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li class="current"><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('hierarchy.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">Class Hierarchy</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">This inheritance list is sorted roughly, but not completely, alphabetically:</div><div class="directory">
+<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span><span onclick="javascript:toggleLevel(4);">4</span><span onclick="javascript:toggleLevel(5);">5</span>]</div><table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html" target="_self">AdobeXMPCommon::IConfigurable::CombinedDataValue</a></td><td class="desc">A union data type to store all kind of values </td></tr>
+<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html" target="_self">AdobeXMPCore::IClientDOMParser_v1</a></td><td class="desc">Version 1 of the interface that supports parsing by the client supplied parser of the XMP Data Model </td></tr>
+<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html" target="_self">AdobeXMPCore::IClientDOMSerializer_v1</a></td><td class="desc">Version 1 of the interface that supports serializing by the client supplied serializer of the XMP Data Model </td></tr>
+<tr id="row_3_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_3_" class="arrow" onclick="toggleFolder('3_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html" target="_self">AdobeXMPCommon::IConfigurable</a></td><td class="desc">Interface that allows to attach various key-value parameters to the underlying object </td></tr>
+<tr id="row_3_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html" target="_self">AdobeXMPCore::IDOMParser_v1</a></td><td class="desc">Version 1 of the interface that supports parsing of the XMP Data Model </td></tr>
+<tr id="row_3_1_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html" target="_self">AdobeXMPCore::IDOMSerializer_v1</a></td><td class="desc">Version1 of the interface that represents an object that can serialize an XMP Data Model to a buffer. Provides the functions to serialize the XMP Data Model </td></tr>
+<tr id="row_4_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_4_" class="arrow" onclick="toggleFolder('4_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>IConfigurationManager</b></td><td class="desc"></td></tr>
+<tr id="row_4_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html" target="_self">AdobeXMPCommon::IConfigurationManagerProxy</a></td><td class="desc"></td></tr>
+<tr id="row_5_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCommon_1_1IErrorNotifier__v1.html" target="_self">AdobeXMPCommon::IErrorNotifier_v1</a></td><td class="desc">Version1 of the interface that represents an interface to be implemented by client in case he is interested in getting notifications with respect to errors/warnings encountered by library </td></tr>
+<tr id="row_6_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html" target="_self">AdobeXMPCommon::IMemoryAllocator_v1</a></td><td class="desc">Version1 of the interface that represents an interface to be implemented by client in case he is interested in controlling the memory allocation and deallocation on the heap </td></tr>
+<tr id="row_7_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_7_" class="arrow" onclick="toggleFolder('7_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html" target="_self">AdobeXMPCommon::ISharedObject</a></td><td class="desc">Interface that serves as the base interface of all the externally exposed interfaces </td></tr>
+<tr id="row_7_0_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_7_0_" class="arrow" onclick="toggleFolder('7_0_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html" target="_self">AdobeXMPCommon::IConfigurationManager_v1</a></td><td class="desc">Version1 of the interface that represents configuration settings controllable by the client </td></tr>
+<tr id="row_7_0_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html" target="_self">AdobeXMPCore::ICoreConfigurationManager_v1</a></td><td class="desc">Version1 of the interface that represents configuration settings controllable by the client </td></tr>
+<tr id="row_7_1_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html" target="_self">AdobeXMPCommon::IError_v1</a></td><td class="desc">Version1 of the interface that represents an error/warning encountered during processing </td></tr>
+<tr id="row_7_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html" target="_self">AdobeXMPCommon::IUTF8String_v1</a></td><td class="desc">Version1 of the interface that represents an UTF8String </td></tr>
+<tr id="row_7_3_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html" target="_self">AdobeXMPCore::IDOMImplementationRegistry_v1</a></td><td class="desc">Version1 of the interface that serves as a database/registry of all the parsers and serializers available with the XMPCore library </td></tr>
+<tr id="row_7_4_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html" target="_self">AdobeXMPCore::IDOMParser_v1</a></td><td class="desc">Version 1 of the interface that supports parsing of the XMP Data Model </td></tr>
+<tr id="row_7_5_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html" target="_self">AdobeXMPCore::IDOMSerializer_v1</a></td><td class="desc">Version1 of the interface that represents an object that can serialize an XMP Data Model to a buffer. Provides the functions to serialize the XMP Data Model </td></tr>
+<tr id="row_7_6_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html" target="_self">AdobeXMPCore::INameSpacePrefixMap_v1</a></td><td class="desc">Version1 of the interface that represents map where each entry consists of prefix string as the key and corresponding nameSpace string as its value </td></tr>
+<tr id="row_7_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_7_7_" class="arrow" onclick="toggleFolder('7_7_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1INode__v1.html" target="_self">AdobeXMPCore::INode_v1</a></td><td class="desc">Version1 of the interface that serves as a base interface to all types of nodes in the XMP DOM </td></tr>
+<tr id="row_7_7_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_7_7_0_" class="arrow" onclick="toggleFolder('7_7_0_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html" target="_self">AdobeXMPCore::ICompositeNode_v1</a></td><td class="desc">Version1 of the interface that serves as a base interface to all composite types of nodes in the XMP DOM ( like Arrays and Structures ) </td></tr>
+<tr id="row_7_7_0_0_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html" target="_self">AdobeXMPCore::IArrayNode_v1</a></td><td class="desc">Version1 of the interface that represents an Array Node of XMP DOM </td></tr>
+<tr id="row_7_7_0_1_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span id="arr_7_7_0_1_" class="arrow" onclick="toggleFolder('7_7_0_1_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html" target="_self">AdobeXMPCore::IStructureNode_v1</a></td><td class="desc">Version1 of the interface that represents a structure Node of XMP DOM </td></tr>
+<tr id="row_7_7_0_1_0_"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html" target="_self">AdobeXMPCore::IMetadata_v1</a></td><td class="desc">Version1 of the interface that represents the whole xmp metadata for an asset </td></tr>
+<tr id="row_7_7_1_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html" target="_self">AdobeXMPCore::ISimpleNode_v1</a></td><td class="desc">Version1 of the interface that represents a Simple Property Node of XMP DOM </td></tr>
+<tr id="row_7_8_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html" target="_self">AdobeXMPCore::INodeIterator_v1</a></td><td class="desc">Interface that represents an iterator over the mutable children of a XMP DOM Node </td></tr>
+<tr id="row_7_9_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1IPath__v1.html" target="_self">AdobeXMPCore::IPath_v1</a></td><td class="desc">Version1 of the interface that provides an easy iterative description of a specific path into the XMP tree </td></tr>
+<tr id="row_7_10_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html" target="_self">AdobeXMPCore::IPathSegment_v1</a></td><td class="desc">Version1 of the interface that represents one segment in a path to a node into the XMP tree </td></tr>
+<tr id="row_8_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_8_" class="arrow" onclick="toggleFolder('8_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html" target="_self">AdobeXMPCommon::IThreadSafe</a></td><td class="desc">Interface that serves as the base interface for all the externally exposed interfaces which needs to provide client configurable thread safety </td></tr>
+<tr id="row_8_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html" target="_self">AdobeXMPCore::INameSpacePrefixMap_v1</a></td><td class="desc">Version1 of the interface that represents map where each entry consists of prefix string as the key and corresponding nameSpace string as its value </td></tr>
+<tr id="row_8_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1INode__v1.html" target="_self">AdobeXMPCore::INode_v1</a></td><td class="desc">Version1 of the interface that serves as a base interface to all types of nodes in the XMP DOM </td></tr>
+<tr id="row_9_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_9_" class="arrow" onclick="toggleFolder('9_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html" target="_self">AdobeXMPCommon::IVersionable</a></td><td class="desc">Interface that serves as the base interface for all the externally exposed interfaces which needs to provide evolving versions of the interface </td></tr>
+<tr id="row_9_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html" target="_self">AdobeXMPCommon::IConfigurationManager_v1</a></td><td class="desc">Version1 of the interface that represents configuration settings controllable by the client </td></tr>
+<tr id="row_9_1_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html" target="_self">AdobeXMPCommon::IError_v1</a></td><td class="desc">Version1 of the interface that represents an error/warning encountered during processing </td></tr>
+<tr id="row_9_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_9_2_" class="arrow" onclick="toggleFolder('9_2_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html" target="_self">AdobeXMPCommon::IObjectFactory_v1</a></td><td class="desc">Version1 of a interface that represents a factory to create various artifacts defined within <a class="el" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a> namespace </td></tr>
+<tr id="row_9_2_0_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html" target="_self">AdobeXMPCore::ICoreObjectFactory_v1</a></td><td class="desc">Version1 of a interface that represents a factory to create various artifacts of XMP DOM like array, structure, path etc </td></tr>
+<tr id="row_9_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html" target="_self">AdobeXMPCommon::IUTF8String_v1</a></td><td class="desc">Version1 of the interface that represents an UTF8String </td></tr>
+<tr id="row_9_4_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html" target="_self">AdobeXMPCore::IDOMImplementationRegistry_v1</a></td><td class="desc">Version1 of the interface that serves as a database/registry of all the parsers and serializers available with the XMPCore library </td></tr>
+<tr id="row_9_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html" target="_self">AdobeXMPCore::IDOMParser_v1</a></td><td class="desc">Version 1 of the interface that supports parsing of the XMP Data Model </td></tr>
+<tr id="row_9_6_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html" target="_self">AdobeXMPCore::IDOMSerializer_v1</a></td><td class="desc">Version1 of the interface that represents an object that can serialize an XMP Data Model to a buffer. Provides the functions to serialize the XMP Data Model </td></tr>
+<tr id="row_9_7_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html" target="_self">AdobeXMPCore::INameSpacePrefixMap_v1</a></td><td class="desc">Version1 of the interface that represents map where each entry consists of prefix string as the key and corresponding nameSpace string as its value </td></tr>
+<tr id="row_9_8_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1INode__v1.html" target="_self">AdobeXMPCore::INode_v1</a></td><td class="desc">Version1 of the interface that serves as a base interface to all types of nodes in the XMP DOM </td></tr>
+<tr id="row_9_9_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html" target="_self">AdobeXMPCore::INodeIterator_v1</a></td><td class="desc">Interface that represents an iterator over the mutable children of a XMP DOM Node </td></tr>
+<tr id="row_9_10_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1IPath__v1.html" target="_self">AdobeXMPCore::IPath_v1</a></td><td class="desc">Version1 of the interface that provides an easy iterative description of a specific path into the XMP tree </td></tr>
+<tr id="row_9_11_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html" target="_self">AdobeXMPCore::IPathSegment_v1</a></td><td class="desc">Version1 of the interface that represents one segment in a path to a node into the XMP tree </td></tr>
+<tr id="row_10_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html" target="_self">AdobeXMPCommon::ReportErrorAndContinueFunctor</a></td><td class="desc">A Function object used by the client to report back and warnings to the library encountered during the serialization operation </td></tr>
+<tr id="row_11_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classTXMPFiles.html" target="_self">TXMPFiles&lt; tStringObj &gt;</a></td><td class="desc">API for access to the main (document-level) metadata in a file </td></tr>
+<tr id="row_12_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classTXMPIterator.html" target="_self">TXMPIterator&lt; tStringObj &gt;</a></td><td class="desc">API for access to the XMP Toolkit iteration services </td></tr>
+<tr id="row_13_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classTXMPMeta.html" target="_self">TXMPMeta&lt; tStringObj &gt;</a></td><td class="desc">API for access to the XMP Toolkit core services </td></tr>
+<tr id="row_14_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classTXMPUtils.html" target="_self">TXMPUtils&lt; tStringObj &gt;</a></td><td class="desc">API for access to the XMP Toolkit utility services </td></tr>
+<tr id="row_15_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structWXMP__Result.html" target="_self">WXMP_Result</a></td><td class="desc"></td></tr>
+<tr id="row_16_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structXMP__DateTime.html" target="_self">XMP_DateTime</a></td><td class="desc">The expanded type for a date and time </td></tr>
+<tr id="row_17_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classXMP__Error.html" target="_self">XMP_Error</a></td><td class="desc">XMP Toolkit error, associates an error code with a descriptive error string </td></tr>
+<tr id="row_18_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classXMP__IO.html" target="_self">XMP_IO</a></td><td class="desc">Abstract base class for client-managed I/O with <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file. ">TXMPFiles</a></code> </td></tr>
+<tr id="row_19_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structXMP__PacketInfo.html" target="_self">XMP_PacketInfo</a></td><td class="desc">XMP packet description </td></tr>
+<tr id="row_20_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structXMP__VersionInfo.html" target="_self">XMP_VersionInfo</a></td><td class="desc">XMP Toolkit version information </td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/hierarchy.js b/docs/API/hierarchy.js
new file mode 100755
index 0000000..d19e073
--- /dev/null
+++ b/docs/API/hierarchy.js
@@ -0,0 +1,69 @@
+var hierarchy =
+[
+ [ "AdobeXMPCommon::IConfigurable::CombinedDataValue", "unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html", null ],
+ [ "AdobeXMPCore::IClientDOMParser_v1", "classAdobeXMPCore_1_1IClientDOMParser__v1.html", null ],
+ [ "AdobeXMPCore::IClientDOMSerializer_v1", "classAdobeXMPCore_1_1IClientDOMSerializer__v1.html", null ],
+ [ "AdobeXMPCommon::IConfigurable", "classAdobeXMPCommon_1_1IConfigurable.html", [
+ [ "AdobeXMPCore::IDOMParser_v1", "classAdobeXMPCore_1_1IDOMParser__v1.html", null ],
+ [ "AdobeXMPCore::IDOMSerializer_v1", "classAdobeXMPCore_1_1IDOMSerializer__v1.html", null ]
+ ] ],
+ [ "IConfigurationManager", null, [
+ [ "AdobeXMPCommon::IConfigurationManagerProxy", "classAdobeXMPCommon_1_1IConfigurationManagerProxy.html", null ]
+ ] ],
+ [ "AdobeXMPCommon::IErrorNotifier_v1", "classAdobeXMPCommon_1_1IErrorNotifier__v1.html", null ],
+ [ "AdobeXMPCommon::IMemoryAllocator_v1", "classAdobeXMPCommon_1_1IMemoryAllocator__v1.html", null ],
+ [ "AdobeXMPCommon::ISharedObject", "classAdobeXMPCommon_1_1ISharedObject.html", [
+ [ "AdobeXMPCommon::IConfigurationManager_v1", "classAdobeXMPCommon_1_1IConfigurationManager__v1.html", [
+ [ "AdobeXMPCore::ICoreConfigurationManager_v1", "classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html", null ]
+ ] ],
+ [ "AdobeXMPCommon::IError_v1", "classAdobeXMPCommon_1_1IError__v1.html", null ],
+ [ "AdobeXMPCommon::IUTF8String_v1", "classAdobeXMPCommon_1_1IUTF8String__v1.html", null ],
+ [ "AdobeXMPCore::IDOMImplementationRegistry_v1", "classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html", null ],
+ [ "AdobeXMPCore::IDOMParser_v1", "classAdobeXMPCore_1_1IDOMParser__v1.html", null ],
+ [ "AdobeXMPCore::IDOMSerializer_v1", "classAdobeXMPCore_1_1IDOMSerializer__v1.html", null ],
+ [ "AdobeXMPCore::INameSpacePrefixMap_v1", "classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html", null ],
+ [ "AdobeXMPCore::INode_v1", "classAdobeXMPCore_1_1INode__v1.html", [
+ [ "AdobeXMPCore::ICompositeNode_v1", "classAdobeXMPCore_1_1ICompositeNode__v1.html", [
+ [ "AdobeXMPCore::IArrayNode_v1", "classAdobeXMPCore_1_1IArrayNode__v1.html", null ],
+ [ "AdobeXMPCore::IStructureNode_v1", "classAdobeXMPCore_1_1IStructureNode__v1.html", [
+ [ "AdobeXMPCore::IMetadata_v1", "classAdobeXMPCore_1_1IMetadata__v1.html", null ]
+ ] ]
+ ] ],
+ [ "AdobeXMPCore::ISimpleNode_v1", "classAdobeXMPCore_1_1ISimpleNode__v1.html", null ]
+ ] ],
+ [ "AdobeXMPCore::INodeIterator_v1", "classAdobeXMPCore_1_1INodeIterator__v1.html", null ],
+ [ "AdobeXMPCore::IPath_v1", "classAdobeXMPCore_1_1IPath__v1.html", null ],
+ [ "AdobeXMPCore::IPathSegment_v1", "classAdobeXMPCore_1_1IPathSegment__v1.html", null ]
+ ] ],
+ [ "AdobeXMPCommon::IThreadSafe", "classAdobeXMPCommon_1_1IThreadSafe.html", [
+ [ "AdobeXMPCore::INameSpacePrefixMap_v1", "classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html", null ],
+ [ "AdobeXMPCore::INode_v1", "classAdobeXMPCore_1_1INode__v1.html", null ]
+ ] ],
+ [ "AdobeXMPCommon::IVersionable", "classAdobeXMPCommon_1_1IVersionable.html", [
+ [ "AdobeXMPCommon::IConfigurationManager_v1", "classAdobeXMPCommon_1_1IConfigurationManager__v1.html", null ],
+ [ "AdobeXMPCommon::IError_v1", "classAdobeXMPCommon_1_1IError__v1.html", null ],
+ [ "AdobeXMPCommon::IObjectFactory_v1", "classAdobeXMPCommon_1_1IObjectFactory__v1.html", [
+ [ "AdobeXMPCore::ICoreObjectFactory_v1", "classAdobeXMPCore_1_1ICoreObjectFactory__v1.html", null ]
+ ] ],
+ [ "AdobeXMPCommon::IUTF8String_v1", "classAdobeXMPCommon_1_1IUTF8String__v1.html", null ],
+ [ "AdobeXMPCore::IDOMImplementationRegistry_v1", "classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html", null ],
+ [ "AdobeXMPCore::IDOMParser_v1", "classAdobeXMPCore_1_1IDOMParser__v1.html", null ],
+ [ "AdobeXMPCore::IDOMSerializer_v1", "classAdobeXMPCore_1_1IDOMSerializer__v1.html", null ],
+ [ "AdobeXMPCore::INameSpacePrefixMap_v1", "classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html", null ],
+ [ "AdobeXMPCore::INode_v1", "classAdobeXMPCore_1_1INode__v1.html", null ],
+ [ "AdobeXMPCore::INodeIterator_v1", "classAdobeXMPCore_1_1INodeIterator__v1.html", null ],
+ [ "AdobeXMPCore::IPath_v1", "classAdobeXMPCore_1_1IPath__v1.html", null ],
+ [ "AdobeXMPCore::IPathSegment_v1", "classAdobeXMPCore_1_1IPathSegment__v1.html", null ]
+ ] ],
+ [ "AdobeXMPCommon::ReportErrorAndContinueFunctor", "classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html", null ],
+ [ "TXMPFiles< tStringObj >", "classTXMPFiles.html", null ],
+ [ "TXMPIterator< tStringObj >", "classTXMPIterator.html", null ],
+ [ "TXMPMeta< tStringObj >", "classTXMPMeta.html", null ],
+ [ "TXMPUtils< tStringObj >", "classTXMPUtils.html", null ],
+ [ "WXMP_Result", "structWXMP__Result.html", null ],
+ [ "XMP_DateTime", "structXMP__DateTime.html", null ],
+ [ "XMP_Error", "classXMP__Error.html", null ],
+ [ "XMP_IO", "classXMP__IO.html", null ],
+ [ "XMP_PacketInfo", "structXMP__PacketInfo.html", null ],
+ [ "XMP_VersionInfo", "structXMP__VersionInfo.html", null ]
+]; \ No newline at end of file
diff --git a/docs/API/index.html b/docs/API/index.html
index d7ae375..227fd09 100644..100755
--- a/docs/API/index.html
+++ b/docs/API/index.html
@@ -1,115 +1,92 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: XMP Toolkit API Overview</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
+<title>XMP Toolkit API Overview</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li class="current"><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li class="current"><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('index.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">XMP Toolkit API Overview </div> </div>
+</div><!--header-->
<div class="contents">
-<h1>XMP Toolkit API Overview </h1><p>The XMPCore component provides the tools that allow you to parse, manipulate, and serialize XMP data, according to the Data Model and Serialization Model given in the XMP Specification. XMPCore has no knowledge of files. <br/>
-<br/>
+<div class="textblock"><p>The XMPCore component provides the tools that allow you to parse, manipulate, and serialize XMP data, according to the Data Model and Serialization Model given in the XMP Specification. XMPCore has no knowledge of files. <br />
+<br />
The client view of the XMPCore API is provided through these C++ class templates:</p>
<ul>
-<li><code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta</a></code> provides the fundamental methods for manipulating XMP metadata. </li>
-<li><code><a class="el" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services.">TXMPIterator</a></code> provides methods to iterate over existing XMP metadata. </li>
-<li><code><a class="el" href="classTXMPUtils.html" title="API for access to the XMP Toolkit utility services.">TXMPUtils</a></code> provides additional utilities layered on top of <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta</a></code>.</li>
+<li><code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services. ">TXMPMeta</a></code> provides the fundamental methods for manipulating XMP metadata. </li>
+<li><code><a class="el" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services. ">TXMPIterator</a></code> provides methods to iterate over existing XMP metadata. </li>
+<li><code><a class="el" href="classTXMPUtils.html" title="API for access to the XMP Toolkit utility services. ">TXMPUtils</a></code> provides additional utilities layered on top of <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services. ">TXMPMeta</a></code>.</li>
</ul>
-<p>The XMPFiles component provides support for locating the XMP in a file, adding XMP to a file, or updating the XMP in a file. Use it to retrieve an entire XMP packet from a file, which you can either manipulate directly or use to create a <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta</a></code> object, so that you can use the XMPCore component to manipulate the individual XMP properties. XMPFiles contains a number of format-specific file handlers that know how to efficiently access the XMP in particular formats. It also includes a fallback packet scanner that can be used for unknown file formats.</p>
+<p>The XMPFiles component provides support for locating the XMP in a file, adding XMP to a file, or updating the XMP in a file. Use it to retrieve an entire XMP packet from a file, which you can either manipulate directly or use to create a <code><a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services. ">TXMPMeta</a></code> object, so that you can use the XMPCore component to manipulate the individual XMP properties. XMPFiles contains a number of format-specific file handlers that know how to efficiently access the XMP in particular formats. It also includes a fallback packet scanner that can be used for unknown file formats.</p>
<ul>
-<li>The client view of the XMPFiles API is provided through <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file.">TXMPFiles</a></code>.</li>
+<li>The client view of the XMPFiles API is provided through <code><a class="el" href="classTXMPFiles.html" title="API for access to the main (document-level) metadata in a file. ">TXMPFiles</a></code>.</li>
</ul>
-<p>The <code>TXMP*</code> classes are C++ template classes. The templates must be instantiated for use. You can read the template header files, <a class="el" href="TXMPMeta_8hpp.html" title="API for access to the XMP Toolkit core services.">TXMPMeta.hpp</a>, and so on, for detailed information, but do not include them directly in your code.<br/>
-<br/>
- There is one overall header file, XMP.hpp, which is the only one that C++ clients should include with the <code>include</code> directive. Read the instructions in this file for instantiating the template classes. When you have done this, the API is available through the concrete classes <code>SXMPMeta</code>, <code>SXMPUtils</code>, <code>SXMPIterator</code>, and <code>SXMPFiles</code>. <br/>
-<br/>
- You should also read <a class="el" href="XMP__Const_8h.html" title="Common C/C++ types and constants for the XMP toolkit.">XMP_Const.h</a> for detailed information about types and constants for namespace URIs and option flags.</p>
-<h2><a class="anchor" id="second-sec">
-Using of the XMP Toolkit API</a></h2>
-<p>Developers should understand the XMP Data Model before working with the XMP Toolkit. The data model is documented in the XMP Specification. The XMPCoverage sample in the SDK provides an in-depth illustration of the use of the XMP Toolkit. An XMP Programmer's Guide with tutorial examples is provided in the docs folder within the SDK. <br/>
-<br/>
- Use of the XMP Toolkit is reasonably straightforward once you understand the XMP Data Model. An XMP property tree that conforms to the Data Model is encapsulated by a <a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta</a> object, and the functions of that class allow you to manipulate the namespaces, properties, and values.<br/>
-<br/>
+<p>The <code>TXMP*</code> classes are C++ template classes. The templates must be instantiated for use. You can read the template header files, <a class="el" href="TXMPMeta_8hpp.html" title="API for access to the XMP Toolkit core services. ">TXMPMeta.hpp</a>, and so on, for detailed information, but do not include them directly in your code.<br />
+<br />
+ There is one overall header file, <a class="el" href="XMP_8hpp.html" title="Overall header file for the XMP Toolkit. ">XMP.hpp</a>, which is the only one that C++ clients should include with the <code>include</code> directive. Read the instructions in this file for instantiating the template classes. When you have done this, the API is available through the concrete classes <code>SXMPMeta</code>, <code>SXMPUtils</code>, <code>SXMPIterator</code>, and <code>SXMPFiles</code>. <br />
+<br />
+ You should also read <a class="el" href="XMP__Const_8h.html" title="Common C/C++ types and constants for the XMP toolkit. ">XMP_Const.h</a> for detailed information about types and constants for namespace URIs and option flags.</p>
+<h1><a class="anchor" id="second-sec"></a>
+Using of the XMP Toolkit API</h1>
+<p>Developers should understand the XMP Data Model before working with the XMP Toolkit. The data model is documented in the XMP Specification. The XMPCoverage sample in the SDK provides an in-depth illustration of the use of the XMP Toolkit. An XMP Programmer's Guide with tutorial examples is provided in the docs folder within the SDK. <br />
+<br />
+ Use of the XMP Toolkit is reasonably straightforward once you understand the XMP Data Model. An XMP property tree that conforms to the Data Model is encapsulated by a <a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services. ">TXMPMeta</a> object, and the functions of that class allow you to manipulate the namespaces, properties, and values.<br />
+<br />
To prepare XMP data for output (transferring it or embedding it in a file), it must be serialized as XML text (specifically, RDF conforming to the Serialization Model).</p>
<ul>
-<li>Use <code><a class="el" href="classTXMPMeta.html#a2774a6f15ae22f0002201b58c46bfb49" title="SerializeToBuffer() serializes metadata in this XMP object into a string as RDF.">TXMPMeta::SerializeToBuffer()</a></code> to creates the serialized XML for the data contained in the object.</li>
+<li>Use <code><a class="el" href="classTXMPMeta.html#a2774a6f15ae22f0002201b58c46bfb49" title="SerializeToBuffer() serializes metadata in this XMP object into a string as RDF. ">TXMPMeta::SerializeToBuffer()</a></code> to creates the serialized XML for the data contained in the object.</li>
</ul>
<ul>
-<li>Use the XMPFiles component (<code><a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb" title="OpenFile() opens a file for metadata access.">TXMPFiles::OpenFile()</a></code> and <code><a class="el" href="classTXMPFiles.html#ad3f7babdc07c7de0d0cd9a3362b4710a" title="PutXMP() updates the XMP metadata in this object without writing out the file.">TXMPFiles::PutXMP()</a></code>)to write out the serialized XMP as an XMP packet embedded in a file.</li>
+<li>Use the XMPFiles component (<code><a class="el" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb" title="OpenFile() opens a file for metadata access. ">TXMPFiles::OpenFile()</a></code> and <code><a class="el" href="classTXMPFiles.html#ad3f7babdc07c7de0d0cd9a3362b4710a" title="PutXMP() updates the XMP metadata in this object without writing out the file. ">TXMPFiles::PutXMP()</a></code>)to write out the serialized XMP as an XMP packet embedded in a file.</li>
</ul>
-<p>Similarly, you use the XMPFiles component (<code><a class="el" href="classTXMPFiles.html#a42ca0bbc5ac66a8de1710e03a7ff17b3" title="GetXMP() retrieves the XMP metadata from an open file.">TXMPFiles::GetXMP()</a></code>) to extract an XMP packet from a file. To work with the XMP, create a <a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta</a> object and populate it with the data using <code><a class="el" href="classTXMPMeta.html#a7b383f5b357fff040cdbde82f4f43f26" title="ParseFromBuffer() parses RDF from a series of input buffers into this XMP object...">TXMPMeta::ParseFromBuffer()</a></code>. <br/>
-<br/>
+<p>Similarly, you use the XMPFiles component (<code><a class="el" href="classTXMPFiles.html#a42ca0bbc5ac66a8de1710e03a7ff17b3" title="GetXMP() retrieves the XMP metadata from an open file. ">TXMPFiles::GetXMP()</a></code>) to extract an XMP packet from a file. To work with the XMP, create a <a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services. ">TXMPMeta</a> object and populate it with the data using <code><a class="el" href="classTXMPMeta.html#a7b383f5b357fff040cdbde82f4f43f26" title="ParseFromBuffer() parses RDF from a series of input buffers into this XMP object. ...">TXMPMeta::ParseFromBuffer()</a></code>. <br />
+<br />
You can use the XMPCore component to generate new XMP data.</p>
<ul>
-<li>You can create your own private namespaces, but must register them before use, using <code><a class="el" href="classTXMPMeta.html#ac0368ddbaa4d689cd5b1aff1c88bb0e1" title="RegisterNamespace() registers a namespace URI with a suggested prefix.">TXMPMeta::RegisterNamespace()</a></code>.</li>
+<li>You can create your own private namespaces, but must register them before use, using <code><a class="el" href="classTXMPMeta.html#ac0368ddbaa4d689cd5b1aff1c88bb0e1" title="RegisterNamespace() registers a namespace URI with a suggested prefix. ">TXMPMeta::RegisterNamespace()</a></code>.</li>
</ul>
<ul>
<li>Property accessor functions of various kinds allow you to retrieve and set existing property values, and to create new properties.</li>
</ul>
<ul>
-<li>You can get and set property values as strings, or as binary types. <a class="el" href="classTXMPUtils.html" title="API for access to the XMP Toolkit utility services.">TXMPUtils</a> provides functions for converting between types.</li>
+<li>You can get and set property values as strings, or as binary types. <a class="el" href="classTXMPUtils.html" title="API for access to the XMP Toolkit utility services. ">TXMPUtils</a> provides functions for converting between types.</li>
</ul>
<ul>
-<li>Use <code><a class="el" href="classTXMPMeta.html#aeefe49bbf669770d769f4fe0ea566bd0" title="GetLocalizedText() retrieves information about a selected item in an alt-text array...">TXMPMeta::GetLocalizedText()</a></code> and <code><a class="el" href="classTXMPMeta.html#af9531b949a462f5663b1f3fd99464c19" title="SetLocalizedText() modifies the value of a selected item in an alt-text array.">TXMPMeta::SetLocalizedText()</a></code> when dealing with language alternative (alt-text) arrays.</li>
+<li>Use <code><a class="el" href="classTXMPMeta.html#aeefe49bbf669770d769f4fe0ea566bd0" title="GetLocalizedText() retrieves information about a selected item in an alt-text array. ">TXMPMeta::GetLocalizedText()</a></code> and <code><a class="el" href="classTXMPMeta.html#af9531b949a462f5663b1f3fd99464c19" title="SetLocalizedText() modifies the value of a selected item in an alt-text array. ">TXMPMeta::SetLocalizedText()</a></code> when dealing with language alternative (alt-text) arrays.</li>
</ul>
<ul>
-<li>Use the path composition functions provided by <a class="el" href="classTXMPUtils.html" title="API for access to the XMP Toolkit utility services.">TXMPUtils</a> to construct complex paths with nested structs or arrays. It is recommended that you not depend on specific namespace prefixes; rather than hard-coding the prefixes for struct fields, use functions like <code><a class="el" href="classTXMPUtils.html#a706eb85b8401b8682a01348f7e25ee3d" title="ComposeStructFieldPath() composes the path expression for a field in a struct.">TXMPUtils::ComposeStructFieldPath()</a></code> and <code><a class="el" href="classTXMPMeta.html#a0e44c30e7527064909e5f7035d53c4f5" title="SetStructField() creates or sets the value of a field within a nested structure.">TXMPMeta::SetStructField()</a></code>.</li>
+<li>Use the path composition functions provided by <a class="el" href="classTXMPUtils.html" title="API for access to the XMP Toolkit utility services. ">TXMPUtils</a> to construct complex paths with nested structs or arrays. It is recommended that you not depend on specific namespace prefixes; rather than hard-coding the prefixes for struct fields, use functions like <code><a class="el" href="classTXMPUtils.html#a706eb85b8401b8682a01348f7e25ee3d" title="ComposeStructFieldPath() composes the path expression for a field in a struct. ">TXMPUtils::ComposeStructFieldPath()</a></code> and <code><a class="el" href="classTXMPMeta.html#a0e44c30e7527064909e5f7035d53c4f5" title="SetStructField() creates or sets the value of a field within a nested structure. ">TXMPMeta::SetStructField()</a></code>.</li>
</ul>
<ul>
-<li>Create a <a class="el" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services.">TXMPIterator</a> object to operate on all or a subset of the properties in the metadata tree contained in a <a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services.">TXMPMeta</a> object.</li>
+<li>Create a <a class="el" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services. ">TXMPIterator</a> object to operate on all or a subset of the properties in the metadata tree contained in a <a class="el" href="classTXMPMeta.html" title="API for access to the XMP Toolkit core services. ">TXMPMeta</a> object.</li>
</ul>
-<h2><a class="anchor" id="third-sec">
-Overview of XMP Toolkit Internal Architecture.</a></h2>
+<h1><a class="anchor" id="third-sec"></a>
+Overview of XMP Toolkit Internal Architecture.</h1>
<p>The XMP Toolkit is implemented in three layers, which isolate the return of string values, synchronization for multi-threaded use, and exception propagation. While the SDK as provided from Adobe builds a static library, this layering can easily be adapted to build a DLL.</p>
<ul>
<li>The top layer is the implementation of the client template classes. This layer is for copying string results and releasing the threading lock if necessary.</li>
@@ -120,57 +97,14 @@ Overview of XMP Toolkit Internal Architecture.</a></h2>
<ul>
<li>The inner layer is the actual implementation, contained in the three classes <code>XMPMeta</code>, <code>XMPIterator</code>, and <code>XMPUtils</code>.</li>
</ul>
-<h3><a class="anchor" id="callchain">
-Implementation Call Chain</a></h3>
-<p>The implementation of <code>GetProperty</code> provides a good illustration of the toolkit layering. The declaration below for <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">TXMPMeta::GetProperty</a></code> is simplified by hardwiring <code>std::string</code>. The <code>XMP_StringPtr</code> type is simply <code>const char *</code>.</p>
-<div class="fragment"><pre class="fragment"> <span class="keywordtype">bool</span> <a class="code" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value.">TXMPMeta::GetProperty</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
- <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> propName,
- std::string * propValue,
- <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> * options )<span class="keyword"> const</span>
-<span class="keyword"> </span>{
- <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> resultPtr = 0;
- <a class="code" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a" title="The type for string length parameters. A 32-bit unsigned integer, as big as will...">XMP_StringLen</a> resultLen = 0;
-
- <span class="keywordtype">bool</span> found = this-&gt;xmpObj.GetProperty ( schemaNS, propName,
- &amp;resultPtr, &amp;resultLen, options );
-
- <span class="keywordflow">if</span> ( found ) {
- <span class="keywordflow">if</span> ( propValue != 0 ) propValue-&gt;assign ( resultPtr, resultLen );
- this-&gt;xmpObj.UnlockObject ( <a class="code" href="XMP__Const_8h.html#aff1df9f3cf050f8b8d3a574db3c3326b" title="Options macro clears all property-type bits.">kXMP_NoOptions</a> );
- }
- <span class="keywordflow">return</span> found;
-
- }
-</pre></div><p>The template object contains a data member pointer to the underlying <code>WXMPMeta</code> object. This is used to dispatch the call to the middle layer. The actual implementation of the XMP toolkit returns string values as a pointer and length, the pointer references private internal storage of the toolkit. The client code copies the string value to the client's string object. This minimizes the amount of string copying, and should the XMP toolkit be built as a DLL ensures that any memory allocation for the client's value is done on the client side. The call to <code>WXMPMeta::UnlockObject</code> is explained below.</p>
-<div class="fragment"><pre class="fragment"> <span class="keywordtype">bool</span> WXMPMeta::GetProperty ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> schemaNS,
- <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> propName,
- <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6" title="The type for input string parameters. A const char *, a null-terminated UTF-8 string...">XMP_StringPtr</a> * propValue,
- <a class="code" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a" title="The type for string length parameters. A 32-bit unsigned integer, as big as will...">XMP_StringLen</a> * valueSize,
- <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits. Individual flags are defined as enum value...">XMP_OptionBits</a> * options )<span class="keyword"> const</span>
-<span class="keyword"> </span>{
- XMP_Bool found;
- XMP_ENTER_WRAPPER ( <span class="stringliteral">&quot;WXMPMeta::GetProperty&quot;</span> )
-
- if ( (schemaNS == 0) || (*schemaNS == 0) ) {
- XMP_Throw ( <span class="stringliteral">&quot;Empty schema namespace URI&quot;</span>, <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2bc66eec6ce830979089d5c336f75539" title="Bad schema parameter.">kXMPErr_BadSchema</a> );
- }
- <span class="keywordflow">if</span> ( (propName == 0) || (*propName == 0) ) {
- XMP_Throw ( <span class="stringliteral">&quot;Empty property name&quot;</span>, <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a3f1efec0aa5452f43c55c05aba616ef7" title="Bad XPath parameter.">kXMPErr_BadXPath</a> );
- }
-
- <span class="keywordflow">if</span> ( propValue == 0 ) propValue = &amp;voidStringPtr;
- <span class="keywordflow">if</span> ( valueSize == 0 ) valueSize = &amp;voidStringLen;
- <span class="keywordflow">if</span> ( options == 0 ) options = &amp;voidOptionBits;
-
- <span class="keyword">const</span> XMPMeta &amp; meta = WtoXMPMeta_Ref ( *<span class="keyword">this</span> );
- found = meta.GetProperty ( schemaNS, propName, propValue, valueSize, options );
-
- XMP_EXIT_WRAPPER_KEEP_LOCK ( found )
- return found;
- }
-</pre></div><p>The entry and exit macros in the <code>WXMPMeta</code> layer acquire the threading lock on entry and usually release it on exit. The lock is kept on exit whenever a string value is returned. Since a pointer to internal data is returned, the threading lock can't be released until after the template code in the client copies the string. The entry and exit macros also prevent uncontrolled exception propagation from the lower layer back to the client. This is not critical for use of the XMP Toolkit as a static library. But it is generally not safe to propagate C++ exceptions across DLL boundaries. </p>
-</div>
+<h2><a class="anchor" id="callchain"></a>
+Implementation Call Chain</h2>
+<p>The implementation of <code>GetProperty</code> provides a good illustration of the toolkit layering. The declaration below for <code><a class="el" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c" title="GetProperty() reports whether a property exists, and retrieves its value. ">TXMPMeta::GetProperty</a></code> is simplified by hardwiring <code>std::string</code>. The <code>XMP_StringPtr</code> type is simply <code>const char *</code>.</p>
+<div class="fragment"><div class="line"><span class="keywordtype">bool</span> <a class="code" href="classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c">TXMPMeta::GetProperty</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"> <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"> std::string * propValue,</div><div class="line"> <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> * options )<span class="keyword"> const</span></div><div class="line"><span class="keyword"></span>{</div><div class="line"> <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> resultPtr = 0;</div><div class="line"> <a class="code" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> resultLen = 0;</div><div class="line"></div><div class="line"> <span class="keywordtype">bool</span> found = this-&gt;xmpObj.GetProperty ( schemaNS, propName,</div><div class="line"> &amp;resultPtr, &amp;resultLen, options );</div><div class="line"></div><div class="line"> <span class="keywordflow">if</span> ( found ) {</div><div class="line"> <span class="keywordflow">if</span> ( propValue != 0 ) propValue-&gt;assign ( resultPtr, resultLen );</div><div class="line"> this-&gt;xmpObj.UnlockObject ( <a class="code" href="XMP__Const_8h.html#aff1df9f3cf050f8b8d3a574db3c3326b">kXMP_NoOptions</a> );</div><div class="line"> }</div><div class="line"> <span class="keywordflow">return</span> found;</div><div class="line"></div><div class="line">}</div></div><!-- fragment --><p>The template object contains a data member pointer to the underlying <code>WXMPMeta</code> object. This is used to dispatch the call to the middle layer. The actual implementation of the XMP toolkit returns string values as a pointer and length, the pointer references private internal storage of the toolkit. The client code copies the string value to the client's string object. This minimizes the amount of string copying, and should the XMP toolkit be built as a DLL ensures that any memory allocation for the client's value is done on the client side. The call to <code>WXMPMeta::UnlockObject</code> is explained below.</p>
+<div class="fragment"><div class="line"><span class="keywordtype">bool</span> WXMPMeta::GetProperty ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS,</div><div class="line"> <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName,</div><div class="line"> <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> * propValue,</div><div class="line"> <a class="code" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> * valueSize,</div><div class="line"> <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> * options )<span class="keyword"> const</span></div><div class="line"><span class="keyword"></span>{</div><div class="line"> <a class="code" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a> found;</div><div class="line"> XMP_ENTER_WRAPPER ( <span class="stringliteral">&quot;WXMPMeta::GetProperty&quot;</span> )</div><div class="line"></div><div class="line"> if ( (schemaNS == 0) || (*schemaNS == 0) ) {</div><div class="line"> XMP_Throw ( <span class="stringliteral">&quot;Empty schema namespace URI&quot;</span>, <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2bc66eec6ce830979089d5c336f75539">kXMPErr_BadSchema</a> );</div><div class="line"> }</div><div class="line"> <span class="keywordflow">if</span> ( (propName == 0) || (*propName == 0) ) {</div><div class="line"> XMP_Throw ( <span class="stringliteral">&quot;Empty property name&quot;</span>, <a class="code" href="XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a3f1efec0aa5452f43c55c05aba616ef7">kXMPErr_BadXPath</a> );</div><div class="line"> }</div><div class="line"></div><div class="line"> <span class="keywordflow">if</span> ( propValue == 0 ) propValue = &amp;voidStringPtr;</div><div class="line"> <span class="keywordflow">if</span> ( valueSize == 0 ) valueSize = &amp;voidStringLen;</div><div class="line"> <span class="keywordflow">if</span> ( options == 0 ) options = &amp;voidOptionBits;</div><div class="line"></div><div class="line"> <span class="keyword">const</span> XMPMeta &amp; meta = WtoXMPMeta_Ref ( *<span class="keyword">this</span> );</div><div class="line"> found = meta.GetProperty ( schemaNS, propName, propValue, valueSize, options );</div><div class="line"></div><div class="line"> XMP_EXIT_WRAPPER_KEEP_LOCK ( found )</div><div class="line"> return found;</div><div class="line">}</div></div><!-- fragment --><p>The entry and exit macros in the <code>WXMPMeta</code> layer acquire the threading lock on entry and usually release it on exit. The lock is kept on exit whenever a string value is returned. Since a pointer to internal data is returned, the threading lock can't be released until after the template code in the client copies the string. The entry and exit macros also prevent uncontrolled exception propagation from the lower layer back to the client. This is not critical for use of the XMP Toolkit as a static library. But it is generally not safe to propagate C++ exceptions across DLL boundaries. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
</body>
</html>
diff --git a/docs/API/jquery.js b/docs/API/jquery.js
new file mode 100755
index 0000000..1f4d0b4
--- /dev/null
+++ b/docs/API/jquery.js
@@ -0,0 +1,68 @@
+/*!
+ * jQuery JavaScript Library v1.7.1
+ * http://jquery.com/
+ *
+ * Copyright 2011, John Resig
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ * Copyright 2011, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ *
+ * Date: Mon Nov 21 21:11:03 2011 -0500
+ */
+(function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b4<b3;b4++){if((b9=arguments[b4])!=null){for(b2 in b9){b0=b5[b2];b1=b9[b2];if(b5===b1){continue}if(b8&&b1&&(bF.isPlainObject(b1)||(b6=bF.isArray(b1)))){if(b6){b6=false;b7=b0&&bF.isArray(b0)?b0:[]}else{b7=b0&&bF.isPlainObject(b0)?b0:{}}b5[b2]=bF.extend(b8,b7,b1)}else{if(b1!==L){b5[b2]=b1}}}}}return b5};bF.extend({noConflict:function(b0){if(bb.$===bF){bb.$=bH}if(b0&&bb.jQuery===bF){bb.jQuery=bU}return bF},isReady:false,readyWait:1,holdReady:function(b0){if(b0){bF.readyWait++}else{bF.ready(true)}},ready:function(b0){if((b0===true&&!--bF.readyWait)||(b0!==true&&!bF.isReady)){if(!av.body){return setTimeout(bF.ready,1)}bF.isReady=true;if(b0!==true&&--bF.readyWait>0){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b4<b5;){if(b6.apply(b3[b4++],b2)===false){break}}}}else{if(b0){for(b1 in b3){if(b6.call(b3[b1],b1,b3[b1])===false){break}}}else{for(;b4<b5;){if(b6.call(b3[b4],b4,b3[b4++])===false){break}}}}return b3},trim:bO?function(b0){return b0==null?"":bO.call(b0)}:function(b0){return b0==null?"":b0.toString().replace(bI,"").replace(bE,"")},makeArray:function(b3,b1){var b0=b1||[];if(b3!=null){var b2=bF.type(b3);if(b3.length==null||b2==="string"||b2==="function"||b2==="regexp"||bF.isWindow(b3)){bz.call(b0,b3)}else{bF.merge(b0,b3)}}return b0},inArray:function(b2,b3,b1){var b0;if(b3){if(bv){return bv.call(b3,b2,b1)}b0=b3.length;b1=b1?b1<0?Math.max(0,b0+b1):b1:0;for(;b1<b0;b1++){if(b1 in b3&&b3[b1]===b2){return b1}}}return -1},merge:function(b4,b2){var b3=b4.length,b1=0;if(typeof b2.length==="number"){for(var b0=b2.length;b1<b0;b1++){b4[b3++]=b2[b1]}}else{while(b2[b1]!==L){b4[b3++]=b2[b1++]}}b4.length=b3;return b4},grep:function(b1,b6,b0){var b2=[],b5;b0=!!b0;for(var b3=0,b4=b1.length;b3<b4;b3++){b5=!!b6(b1[b3],b3);if(b0!==b5){b2.push(b1[b3])}}return b2},map:function(b0,b7,b8){var b5,b6,b4=[],b2=0,b1=b0.length,b3=b0 instanceof bF||b1!==L&&typeof b1==="number"&&((b1>0&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b2<b1;b2++){b5=b7(b0[b2],b2,b8);if(b5!=null){b4[b4.length]=b5}}}else{for(b6 in b0){b5=b7(b0[b6],b6,b8);if(b5!=null){b4[b4.length]=b5}}}return b4.concat.apply([],b4)},guid:1,proxy:function(b4,b3){if(typeof b3==="string"){var b2=b4[b3];b3=b4;b4=b2}if(!bF.isFunction(b4)){return L}var b0=bK.call(arguments,2),b1=function(){return b4.apply(b3,b0.concat(bK.call(arguments)))};b1.guid=b4.guid=b4.guid||b1.guid||bF.guid++;return b1},access:function(b0,b8,b6,b2,b5,b7){var b1=b0.length;if(typeof b8==="object"){for(var b3 in b8){bF.access(b0,b3,b8[b3],b2,b5,b6)}return b0}if(b6!==L){b2=!b7&&b2&&bF.isFunction(b6);for(var b4=0;b4<b1;b4++){b5(b0[b4],b8,b2?b6.call(b0[b4],b4,b5(b0[b4],b8)):b6,b7)}return b0}return b1?b5(b0[0],b8):L},now:function(){return(new Date()).getTime()},uaMatch:function(b1){b1=b1.toLowerCase();var b0=by.exec(b1)||bR.exec(b1)||bQ.exec(b1)||b1.indexOf("compatible")<0&&bS.exec(b1)||[];return{browser:b0[1]||"",version:b0[2]||"0"}},sub:function(){function b0(b3,b4){return new b0.fn.init(b3,b4)}bF.extend(true,b0,this);b0.superclass=this;b0.fn=b0.prototype=this();b0.fn.constructor=b0;b0.sub=this.sub;b0.fn.init=function b2(b3,b4){if(b4&&b4 instanceof bF&&!(b4 instanceof b0)){b4=b0(b4)}return bF.fn.init.call(this,b3,b4,b1)};b0.fn.init.prototype=b0.fn;var b1=b0(av);return b0},browser:{}});bF.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(b1,b0){bx["[object "+b0+"]"]=b0.toLowerCase()});bV=bF.uaMatch(bX);if(bV.browser){bF.browser[bV.browser]=true;bF.browser.version=bV.version}if(bF.browser.webkit){bF.browser.safari=true}if(bM.test("\xA0")){bI=/^[\s\xA0]+/;bE=/[\s\xA0]+$/}bD=bF(av);if(av.addEventListener){e=function(){av.removeEventListener("DOMContentLoaded",e,false);bF.ready()}}else{if(av.attachEvent){e=function(){if(av.readyState==="complete"){av.detachEvent("onreadystatechange",e);bF.ready()}}}}function bw(){if(bF.isReady){return}try{av.documentElement.doScroll("left")}catch(b0){setTimeout(bw,1);return}bF.ready()}return bF})();var a2={};function X(e){var bv=a2[e]={},bw,bx;e=e.split(/\s+/);for(bw=0,bx=e.length;bw<bx;bw++){bv[e[bw]]=true}return bv}b.Callbacks=function(bw){bw=bw?(a2[bw]||X(bw)):{};var bB=[],bC=[],bx,by,bv,bz,bA,bE=function(bF){var bG,bJ,bI,bH,bK;for(bG=0,bJ=bF.length;bG<bJ;bG++){bI=bF[bG];bH=b.type(bI);if(bH==="array"){bE(bI)}else{if(bH==="function"){if(!bw.unique||!bD.has(bI)){bB.push(bI)}}}}},e=function(bG,bF){bF=bF||[];bx=!bw.memory||[bG,bF];by=true;bA=bv||0;bv=0;bz=bB.length;for(;bB&&bA<bz;bA++){if(bB[bA].apply(bG,bF)===false&&bw.stopOnFalse){bx=true;break}}by=false;if(bB){if(!bw.once){if(bC&&bC.length){bx=bC.shift();bD.fireWith(bx[0],bx[1])}}else{if(bx===true){bD.disable()}else{bB=[]}}}},bD={add:function(){if(bB){var bF=bB.length;bE(arguments);if(by){bz=bB.length}else{if(bx&&bx!==true){bv=bF;e(bx[0],bx[1])}}}return this},remove:function(){if(bB){var bF=arguments,bH=0,bI=bF.length;for(;bH<bI;bH++){for(var bG=0;bG<bB.length;bG++){if(bF[bH]===bB[bG]){if(by){if(bG<=bz){bz--;if(bG<=bA){bA--}}}bB.splice(bG--,1);if(bw.unique){break}}}}}return this},has:function(bG){if(bB){var bF=0,bH=bB.length;for(;bF<bH;bF++){if(bG===bB[bF]){return true}}}return false},empty:function(){bB=[];return this},disable:function(){bB=bC=bx=L;return this},disabled:function(){return !bB},lock:function(){bC=L;if(!bx||bx===true){bD.disable()}return this},locked:function(){return !bC},fireWith:function(bG,bF){if(bC){if(by){if(!bw.once){bC.push([bG,bF])}}else{if(!(bw.once&&bx)){e(bG,bF)}}}return this},fire:function(){bD.fireWith(this,arguments);return this},fired:function(){return !!bx}};return bD};var aJ=[].slice;b.extend({Deferred:function(by){var bx=b.Callbacks("once memory"),bw=b.Callbacks("once memory"),bv=b.Callbacks("memory"),e="pending",bA={resolve:bx,reject:bw,notify:bv},bC={done:bx.add,fail:bw.add,progress:bv.add,state:function(){return e},isResolved:bx.fired,isRejected:bw.fired,then:function(bE,bD,bF){bB.done(bE).fail(bD).progress(bF);return this},always:function(){bB.done.apply(bB,arguments).fail.apply(bB,arguments);return this},pipe:function(bF,bE,bD){return b.Deferred(function(bG){b.each({done:[bF,"resolve"],fail:[bE,"reject"],progress:[bD,"notify"]},function(bI,bL){var bH=bL[0],bK=bL[1],bJ;if(b.isFunction(bH)){bB[bI](function(){bJ=bH.apply(this,arguments);if(bJ&&b.isFunction(bJ.promise)){bJ.promise().then(bG.resolve,bG.reject,bG.notify)}else{bG[bK+"With"](this===bB?bG:this,[bJ])}})}else{bB[bI](bG[bK])}})}).promise()},promise:function(bE){if(bE==null){bE=bC}else{for(var bD in bC){bE[bD]=bC[bD]}}return bE}},bB=bC.promise({}),bz;for(bz in bA){bB[bz]=bA[bz].fire;bB[bz+"With"]=bA[bz].fireWith}bB.done(function(){e="resolved"},bw.disable,bv.lock).fail(function(){e="rejected"},bx.disable,bv.lock);if(by){by.call(bB,bB)}return bB},when:function(bA){var bx=aJ.call(arguments,0),bv=0,e=bx.length,bB=new Array(e),bw=e,by=e,bC=e<=1&&bA&&b.isFunction(bA.promise)?bA:b.Deferred(),bE=bC.promise();function bD(bF){return function(bG){bx[bF]=arguments.length>1?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv<e;bv++){if(bx[bv]&&bx[bv].promise&&b.isFunction(bx[bv].promise)){bx[bv].promise().then(bD(bv),bC.reject,bz(bv))}else{--bw}}if(!bw){bC.resolveWith(bC,bx)}}else{if(bC!==bA){bC.resolveWith(bC,e?[bA]:[])}}return bE}});b.support=(function(){var bJ,bI,bF,bG,bx,bE,bA,bD,bz,bK,bB,by,bw,bv=av.createElement("div"),bH=av.documentElement;bv.setAttribute("className","t");bv.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav></:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="<div "+e+"><div></div></div><table "+e+" cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="<div style='width:4px;'></div>";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA<bz;bA++){delete bB[bv[bA]]}if(!(by?S:b.isEmptyObject)(bB)){return}}}if(!by){delete e[bw].data;if(!S(e[bw])){return}}if(b.support.deleteExpando||!e.setInterval){delete e[bw]}else{e[bw]=null}if(bD){if(b.support.deleteExpando){delete bx[bC]}else{if(bx.removeAttribute){bx.removeAttribute(bC)}else{bx[bC]=null}}}},_data:function(bv,e,bw){return b.data(bv,e,bw,true)},acceptData:function(bv){if(bv.nodeName){var e=b.noData[bv.nodeName.toLowerCase()];if(e){return !(e===true||bv.getAttribute("classid")!==e)}}return true}});b.fn.extend({data:function(by,bA){var bB,e,bw,bz=null;if(typeof by==="undefined"){if(this.length){bz=b.data(this[0]);if(this[0].nodeType===1&&!b._data(this[0],"parsedAttrs")){e=this[0].attributes;for(var bx=0,bv=e.length;bx<bv;bx++){bw=e[bx].name;if(bw.indexOf("data-")===0){bw=b.camelCase(bw.substring(5));a5(this[0],bw,bz[bw])}}b._data(this[0],"parsedAttrs",true)}}return bz}else{if(typeof by==="object"){return this.each(function(){b.data(this,by)})}}bB=by.split(".");bB[1]=bB[1]?"."+bB[1]:"";if(bA===L){bz=this.triggerHandler("getData"+bB[1]+"!",[bB[0]]);if(bz===L&&this.length){bz=b.data(this[0],by);bz=a5(this[0],by,bz)}return bz===L&&bB[1]?this.data(bB[0]):bz}else{return this.each(function(){var bC=b(this),bD=[bB[0],bA];bC.triggerHandler("setData"+bB[1]+"!",bD);b.data(this,by,bA);bC.triggerHandler("changeData"+bB[1]+"!",bD)})}},removeData:function(e){return this.each(function(){b.removeData(this,e)})}});function a5(bx,bw,by){if(by===L&&bx.nodeType===1){var bv="data-"+bw.replace(aA,"-$1").toLowerCase();by=bx.getAttribute(bv);if(typeof by==="string"){try{by=by==="true"?true:by==="false"?false:by==="null"?null:b.isNumeric(by)?parseFloat(by):aS.test(by)?b.parseJSON(by):by}catch(bz){}b.data(bx,bw,by)}else{by=L}}return by}function S(bv){for(var e in bv){if(e==="data"&&b.isEmptyObject(bv[e])){continue}if(e!=="toJSON"){return false}}return true}function bi(by,bx,bA){var bw=bx+"defer",bv=bx+"queue",e=bx+"mark",bz=b._data(by,bw);if(bz&&(bA==="queue"||!b._data(by,bv))&&(bA==="mark"||!b._data(by,e))){setTimeout(function(){if(!b._data(by,bv)&&!b._data(by,e)){b.removeData(by,bw,true);bz.fire()}},0)}}b.extend({_mark:function(bv,e){if(bv){e=(e||"fx")+"mark";b._data(bv,e,(b._data(bv,e)||0)+1)}},_unmark:function(by,bx,bv){if(by!==true){bv=bx;bx=by;by=false}if(bx){bv=bv||"fx";var e=bv+"mark",bw=by?0:((b._data(bx,e)||1)-1);if(bw){b._data(bx,e,bw)}else{b.removeData(bx,e,true);bi(bx,bv,"mark")}}},queue:function(bv,e,bx){var bw;if(bv){e=(e||"fx")+"queue";bw=b._data(bv,e);if(bx){if(!bw||b.isArray(bx)){bw=b._data(bv,e,b.makeArray(bx))}else{bw.push(bx)}}return bw||[]}},dequeue:function(by,bx){bx=bx||"fx";var bv=b.queue(by,bx),bw=bv.shift(),e={};if(bw==="inprogress"){bw=bv.shift()}if(bw){if(bx==="fx"){bv.unshift("inprogress")}b._data(by,bx+".run",e);bw.call(by,function(){b.dequeue(by,bx)},e)}if(!bv.length){b.removeData(by,bx+"queue "+bx+".run",true);bi(by,bx,"queue")}}});b.fn.extend({queue:function(e,bv){if(typeof e!=="string"){bv=e;e="fx"}if(bv===L){return b.queue(this[0],e)}return this.each(function(){var bw=b.queue(this,e,bv);if(e==="fx"&&bw[0]!=="inprogress"){b.dequeue(this,e)}})},dequeue:function(e){return this.each(function(){b.dequeue(this,e)})},delay:function(bv,e){bv=b.fx?b.fx.speeds[bv]||bv:bv;e=e||"fx";return this.queue(e,function(bx,bw){var by=setTimeout(bx,bv);bw.stop=function(){clearTimeout(by)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(bD,bw){if(typeof bD!=="string"){bw=bD;bD=L}bD=bD||"fx";var e=b.Deferred(),bv=this,by=bv.length,bB=1,bz=bD+"defer",bA=bD+"queue",bC=bD+"mark",bx;function bE(){if(!(--bB)){e.resolveWith(bv,[bv])}}while(by--){if((bx=b.data(bv[by],bz,L,true)||(b.data(bv[by],bA,L,true)||b.data(bv[by],bC,L,true))&&b.data(bv[by],bz,b.Callbacks("once memory"),true))){bB++;bx.add(bE)}}bE();return e.promise()}});var aP=/[\n\t\r]/g,af=/\s+/,aU=/\r/g,g=/^(?:button|input)$/i,D=/^(?:button|input|object|select|textarea)$/i,l=/^a(?:rea)?$/i,ao=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,F=b.support.getSetAttribute,be,aY,aF;b.fn.extend({attr:function(e,bv){return b.access(this,e,bv,true,b.attr)},removeAttr:function(e){return this.each(function(){b.removeAttr(this,e)})},prop:function(e,bv){return b.access(this,e,bv,true,b.prop)},removeProp:function(e){e=b.propFix[e]||e;return this.each(function(){try{this[e]=L;delete this[e]}catch(bv){}})},addClass:function(by){var bA,bw,bv,bx,bz,bB,e;if(b.isFunction(by)){return this.each(function(bC){b(this).addClass(by.call(this,bC,this.className))})}if(by&&typeof by==="string"){bA=by.split(af);for(bw=0,bv=this.length;bw<bv;bw++){bx=this[bw];if(bx.nodeType===1){if(!bx.className&&bA.length===1){bx.className=by}else{bz=" "+bx.className+" ";for(bB=0,e=bA.length;bB<e;bB++){if(!~bz.indexOf(" "+bA[bB]+" ")){bz+=bA[bB]+" "}}bx.className=b.trim(bz)}}}}return this},removeClass:function(bz){var bA,bw,bv,by,bx,bB,e;if(b.isFunction(bz)){return this.each(function(bC){b(this).removeClass(bz.call(this,bC,this.className))})}if((bz&&typeof bz==="string")||bz===L){bA=(bz||"").split(af);for(bw=0,bv=this.length;bw<bv;bw++){by=this[bw];if(by.nodeType===1&&by.className){if(bz){bx=(" "+by.className+" ").replace(aP," ");for(bB=0,e=bA.length;bB<e;bB++){bx=bx.replace(" "+bA[bB]+" "," ")}by.className=b.trim(bx)}else{by.className=""}}}}return this},toggleClass:function(bx,bv){var bw=typeof bx,e=typeof bv==="boolean";if(b.isFunction(bx)){return this.each(function(by){b(this).toggleClass(bx.call(this,by,this.className,bv),bv)})}return this.each(function(){if(bw==="string"){var bA,bz=0,by=b(this),bB=bv,bC=bx.split(af);while((bA=bC[bz++])){bB=e?bB:!by.hasClass(bA);by[bB?"addClass":"removeClass"](bA)}}else{if(bw==="undefined"||bw==="boolean"){if(this.className){b._data(this,"__className__",this.className)}this.className=this.className||bx===false?"":b._data(this,"__className__")||""}}})},hasClass:function(e){var bx=" "+e+" ",bw=0,bv=this.length;for(;bw<bv;bw++){if(this[bw].nodeType===1&&(" "+this[bw].className+" ").replace(aP," ").indexOf(bx)>-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv<bz;bv++){bx=bC[bv];if(bx.selected&&(b.support.optDisabled?!bx.disabled:bx.getAttribute("disabled")===null)&&(!bx.parentNode.disabled||!b.nodeName(bx.parentNode,"optgroup"))){bA=b(bx).val();if(bw){return bA}bB.push(bA)}}if(bw&&!bB.length&&bC.length){return b(bC[by]).val()}return bB},set:function(bv,bw){var e=b.makeArray(bw);b(bv).find("option").each(function(){this.selected=b.inArray(b(this).val(),e)>=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType;if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw<e;bw++){bv=bA[bw];if(bv){by=b.propFix[bv]||bv;b.attr(bx,bv,"");bx.removeAttribute(F?bv:by);if(ao.test(bv)&&by in bx){bx[by]=false}}}}},attrHooks:{type:{set:function(e,bv){if(g.test(e.nodeName)&&e.parentNode){b.error("type property can't be changed")}else{if(!b.support.radioValue&&bv==="radio"&&b.nodeName(e,"input")){var bw=e.value;e.setAttribute("type",bv);if(bw){e.value=bw}return bv}}}},value:{get:function(bv,e){if(be&&b.nodeName(bv,"button")){return be.get(bv,e)}return e in bv?bv.value:null},set:function(bv,bw,e){if(be&&b.nodeName(bv,"button")){return be.set(bv,bw,e)}bv.value=bw}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(bz,bx,bA){var bw,e,by,bv=bz.nodeType;if(!bz||bv===3||bv===8||bv===2){return}by=bv!==1||!b.isXMLDoc(bz);if(by){bx=b.propFix[bx]||bx;e=b.propHooks[bx]}if(bA!==L){if(e&&"set" in e&&(bw=e.set(bz,bA,bx))!==L){return bw}else{return(bz[bx]=bA)}}else{if(e&&"get" in e&&(bw=e.get(bz,bx))!==null){return bw}else{return bz[bx]}}},propHooks:{tabIndex:{get:function(bv){var e=bv.getAttributeNode("tabindex");return e&&e.specified?parseInt(e.value,10):D.test(bv.nodeName)||l.test(bv.nodeName)&&bv.href?0:L}}}});b.attrHooks.tabindex=b.propHooks.tabIndex;aY={get:function(bv,e){var bx,bw=b.prop(bv,e);return bw===true||typeof bw!=="boolean"&&(bx=bv.getAttributeNode(e))&&bx.nodeValue!==false?e.toLowerCase():L},set:function(bv,bx,e){var bw;if(bx===false){b.removeAttr(bv,e)}else{bw=b.propFix[e]||e;if(bw in bv){bv[bw]=true}bv.setAttribute(e,e.toLowerCase())}return e}};if(!F){aF={name:true,id:true};be=b.valHooks.button={get:function(bw,bv){var e;e=bw.getAttributeNode(bv);return e&&(aF[bv]?e.nodeValue!=="":e.specified)?e.nodeValue:L},set:function(bw,bx,bv){var e=bw.getAttributeNode(bv);if(!e){e=av.createAttribute(bv);bw.setAttributeNode(e)}return(e.nodeValue=bx+"")}};b.attrHooks.tabindex.set=be.set;b.each(["width","height"],function(bv,e){b.attrHooks[e]=b.extend(b.attrHooks[e],{set:function(bw,bx){if(bx===""){bw.setAttribute(e,"auto");return bx}}})});b.attrHooks.contenteditable={get:be.get,set:function(bv,bw,e){if(bw===""){bw="false"}be.set(bv,bw,e)}}}if(!b.support.hrefNormalized){b.each(["href","src","width","height"],function(bv,e){b.attrHooks[e]=b.extend(b.attrHooks[e],{get:function(bx){var bw=bx.getAttribute(e,2);return bw===null?L:bw}})})}if(!b.support.style){b.attrHooks.style={get:function(e){return e.style.cssText.toLowerCase()||L},set:function(e,bv){return(e.style.cssText=""+bv)}}}if(!b.support.optSelected){b.propHooks.selected=b.extend(b.propHooks.selected,{get:function(bv){var e=bv.parentNode;if(e){e.selectedIndex;if(e.parentNode){e.parentNode.selectedIndex}}return null}})}if(!b.support.enctype){b.propFix.enctype="encoding"}if(!b.support.checkOn){b.each(["radio","checkbox"],function(){b.valHooks[this]={get:function(e){return e.getAttribute("value")===null?"on":e.value}}})}b.each(["radio","checkbox"],function(){b.valHooks[this]=b.extend(b.valHooks[this],{set:function(e,bv){if(b.isArray(bv)){return(e.checked=b.inArray(b(e).val(),bv)>=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI<bC.length;bI++){bH=n.exec(bC[bI])||[];bF=bH[1];e=(bH[2]||"").split(".").sort();bE=b.event.special[bF]||{};bF=(by?bE.delegateType:bE.bindType)||bF;bE=b.event.special[bF]||{};bG=b.extend({type:bF,origType:bH[1],data:bA,handler:bJ,guid:bJ.guid,selector:by,quick:Y(by),namespace:e.join(".")},bv);bw=bK[bF];if(!bw){bw=bK[bF]=[];bw.delegateCount=0;if(!bE.setup||bE.setup.call(bx,bA,e,bB)===false){if(bx.addEventListener){bx.addEventListener(bF,bB,false)}else{if(bx.attachEvent){bx.attachEvent("on"+bF,bB)}}}}if(bE.add){bE.add.call(bx,bG);if(!bG.handler.guid){bG.handler.guid=bJ.guid}}if(by){bw.splice(bw.delegateCount++,0,bG)}else{bw.push(bG)}b.event.global[bF]=true}bx=null},global:{},remove:function(bJ,bE,bv,bH,bB){var bI=b.hasData(bJ)&&b._data(bJ),bF,bx,bz,bL,bC,bA,bG,bw,by,bK,bD,e;if(!bI||!(bw=bI.events)){return}bE=b.trim(bt(bE||"")).split(" ");for(bF=0;bF<bE.length;bF++){bx=n.exec(bE[bF])||[];bz=bL=bx[1];bC=bx[2];if(!bz){for(bz in bw){b.event.remove(bJ,bz+bE[bF],bv,bH,true)}continue}by=b.event.special[bz]||{};bz=(bH?by.delegateType:by.bindType)||bz;bD=bw[bz]||[];bA=bD.length;bC=bC?new RegExp("(^|\\.)"+bC.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(bG=0;bG<bD.length;bG++){e=bD[bG];if((bB||bL===e.origType)&&(!bv||bv.guid===e.guid)&&(!bC||bC.test(e.namespace))&&(!bH||bH===e.selector||bH==="**"&&e.selector)){bD.splice(bG--,1);if(e.selector){bD.delegateCount--}if(by.remove){by.remove.call(bJ,e)}}}if(bD.length===0&&bA!==bD.length){if(!by.teardown||by.teardown.call(bJ,bC)===false){b.removeEvent(bJ,bz,bI.handle)}delete bw[bz]}}if(b.isEmptyObject(bw)){bK=bI.handle;if(bK){bK.elem=null}b.removeData(bJ,["events","handle"],true)}},customEvent:{getData:true,setData:true,changeData:true},trigger:function(bv,bD,bA,bJ){if(bA&&(bA.nodeType===3||bA.nodeType===8)){return}var bG=bv.type||bv,bx=[],e,bw,bC,bH,bz,by,bF,bE,bB,bI;if(T.test(bG+b.event.triggered)){return}if(bG.indexOf("!")>=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bC<bB.length&&!bv.isPropagationStopped();bC++){bH=bB[bC][0];bv.type=bB[bC][1];bE=(b._data(bH,"events")||{})[bv.type]&&b._data(bH,"handle");if(bE){bE.apply(bH,bD)}bE=by&&bH[by];if(bE&&b.acceptData(bH)&&bE.apply(bH,bD)===false){bv.preventDefault()}}bv.type=bG;if(!bJ&&!bv.isDefaultPrevented()){if((!bF._default||bF._default.apply(bA.ownerDocument,bD)===false)&&!(bG==="click"&&b.nodeName(bA,"a"))&&b.acceptData(bA)){if(by&&bA[bG]&&((bG!=="focus"&&bG!=="blur")||bv.target.offsetWidth!==0)&&!b.isWindow(bA)){bz=bA[by];if(bz){bA[by]=null}b.event.triggered=bG;bA[bG]();b.event.triggered=L;if(bz){bA[by]=bz}}}}return bv.result},dispatch:function(e){e=b.event.fix(e||bb.event);var bz=((b._data(this,"events")||{})[e.type]||[]),bA=bz.delegateCount,bG=[].slice.call(arguments,0),by=!e.exclusive&&!e.namespace,bH=[],bC,bB,bK,bx,bF,bE,bv,bD,bI,bw,bJ;bG[0]=e;e.delegateTarget=this;if(bA&&!e.target.disabled&&!(e.button&&e.type==="click")){bx=b(this);bx.context=this.ownerDocument||this;for(bK=e.target;bK!=this;bK=bK.parentNode||this){bE={};bD=[];bx[0]=bK;for(bC=0;bC<bA;bC++){bI=bz[bC];bw=bI.selector;if(bE[bw]===L){bE[bw]=(bI.quick?j(bK,bI.quick):bx.is(bw))}if(bE[bw]){bD.push(bI)}}if(bD.length){bH.push({elem:bK,matches:bD})}}}if(bz.length>bA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC<bH.length&&!e.isPropagationStopped();bC++){bv=bH[bC];e.currentTarget=bv.elem;for(bB=0;bB<bv.matches.length&&!e.isImmediatePropagationStopped();bB++){bI=bv.matches[bB];if(by||(!e.namespace&&!bI.namespace)||e.namespace_re&&e.namespace_re.test(bI.namespace)){e.data=bI.data;e.handleObj=bI;bF=((b.event.special[bI.origType]||{}).handle||bI.handler).apply(bv.elem,bG);if(bF!==L){e.result=bF;if(bF===false){e.preventDefault();e.stopPropagation()}}}}}return e.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(bv,e){if(bv.which==null){bv.which=e.charCode!=null?e.charCode:e.keyCode}return bv}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(bx,bw){var by,bz,e,bv=bw.button,bA=bw.fromElement;if(bx.pageX==null&&bw.clientX!=null){by=bx.target.ownerDocument||av;bz=by.documentElement;e=by.body;bx.pageX=bw.clientX+(bz&&bz.scrollLeft||e&&e.scrollLeft||0)-(bz&&bz.clientLeft||e&&e.clientLeft||0);bx.pageY=bw.clientY+(bz&&bz.scrollTop||e&&e.scrollTop||0)-(bz&&bz.clientTop||e&&e.clientTop||0)}if(!bx.relatedTarget&&bA){bx.relatedTarget=bA===bx.target?bw.toElement:bA}if(!bx.which&&bv!==L){bx.which=(bv&1?1:(bv&2?3:(bv&4?2:0)))}return bx}},fix:function(bw){if(bw[b.expando]){return bw}var bv,bz,e=bw,bx=b.event.fixHooks[bw.type]||{},by=bx.props?this.props.concat(bx.props):this.props;bw=b.Event(e);for(bv=by.length;bv;){bz=by[--bv];bw[bz]=e[bz]}if(!bw.target){bw.target=e.srcElement||av}if(bw.target.nodeType===3){bw.target=bw.target.parentNode}if(bw.metaKey===L){bw.metaKey=bw.ctrlKey}return bx.filter?bx.filter(bw,e):bw},special:{ready:{setup:b.bindReady},load:{noBubble:true},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(bw,bv,e){if(b.isWindow(this)){this.onbeforeunload=e}},teardown:function(bv,e){if(this.onbeforeunload===e){this.onbeforeunload=null}}}},simulate:function(bw,by,bx,bv){var bz=b.extend(new b.Event(),bx,{type:bw,isSimulated:true,originalEvent:{}});if(bv){b.event.trigger(bz,null,by)}else{b.event.dispatch.call(by,bz)}if(bz.isDefaultPrevented()){bx.preventDefault()}}};b.event.handle=b.event.dispatch;b.removeEvent=av.removeEventListener?function(bv,e,bw){if(bv.removeEventListener){bv.removeEventListener(e,bw,false)}}:function(bv,e,bw){if(bv.detachEvent){bv.detachEvent("on"+e,bw)}};b.Event=function(bv,e){if(!(this instanceof b.Event)){return new b.Event(bv,e)}if(bv&&bv.type){this.originalEvent=bv;this.type=bv.type;this.isDefaultPrevented=(bv.defaultPrevented||bv.returnValue===false||bv.getPreventDefault&&bv.getPreventDefault())?i:bk}else{this.type=bv}if(e){b.extend(this,e)}this.timeStamp=bv&&bv.timeStamp||b.now();this[b.expando]=true};function bk(){return false}function i(){return true}b.Event.prototype={preventDefault:function(){this.isDefaultPrevented=i;var bv=this.originalEvent;if(!bv){return}if(bv.preventDefault){bv.preventDefault()}else{bv.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=i;var bv=this.originalEvent;if(!bv){return}if(bv.stopPropagation){bv.stopPropagation()}bv.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=i;this.stopPropagation()},isDefaultPrevented:bk,isPropagationStopped:bk,isImmediatePropagationStopped:bk};b.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(bv,e){b.event.special[bv]={delegateType:e,bindType:e,handle:function(bz){var bB=this,bA=bz.relatedTarget,by=bz.handleObj,bw=by.selector,bx;if(!bA||(bA!==bB&&!b.contains(bB,bA))){bz.type=by.origType;bx=by.handler.apply(this,arguments);bz.type=e}return bx}}});if(!b.support.submitBubbles){b.event.special.submit={setup:function(){if(b.nodeName(this,"form")){return false}b.event.add(this,"click._submit keypress._submit",function(bx){var bw=bx.target,bv=b.nodeName(bw,"input")||b.nodeName(bw,"button")?bw.form:L;if(bv&&!bv._submit_attached){b.event.add(bv,"submit._submit",function(e){if(this.parentNode&&!e.isTrigger){b.event.simulate("submit",this.parentNode,e,true)}});bv._submit_attached=true}})},teardown:function(){if(b.nodeName(this,"form")){return false}b.event.remove(this,"._submit")}}}if(!b.support.changeBubbles){b.event.special.change={setup:function(){if(bd.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio"){b.event.add(this,"propertychange._change",function(e){if(e.originalEvent.propertyName==="checked"){this._just_changed=true}});b.event.add(this,"click._change",function(e){if(this._just_changed&&!e.isTrigger){this._just_changed=false;b.event.simulate("change",this,e,true)}})}return false}b.event.add(this,"beforeactivate._change",function(bw){var bv=bw.target;if(bd.test(bv.nodeName)&&!bv._change_attached){b.event.add(bv,"change._change",function(e){if(this.parentNode&&!e.isSimulated&&!e.isTrigger){b.event.simulate("change",this.parentNode,e,true)}});bv._change_attached=true}})},handle:function(bv){var e=bv.target;if(this!==e||bv.isSimulated||bv.isTrigger||(e.type!=="radio"&&e.type!=="checkbox")){return bv.handleObj.handler.apply(this,arguments)}},teardown:function(){b.event.remove(this,"._change");return bd.test(this.nodeName)}}}if(!b.support.focusinBubbles){b.each({focus:"focusin",blur:"focusout"},function(bx,e){var bv=0,bw=function(by){b.event.simulate(e,by.target,b.event.fix(by),true)};b.event.special[e]={setup:function(){if(bv++===0){av.addEventListener(bx,bw,true)}},teardown:function(){if(--bv===0){av.removeEventListener(bx,bw,true)}}}})}b.fn.extend({on:function(bw,e,bz,by,bv){var bA,bx;if(typeof bw==="object"){if(typeof e!=="string"){bz=e;e=L}for(bx in bw){this.on(bx,e,bz,bw[bx],bv)}return this}if(bz==null&&by==null){by=e;bz=e=L}else{if(by==null){if(typeof e==="string"){by=bz;bz=L}else{by=bz;bz=e;e=L}}}if(by===false){by=bk}else{if(!by){return this}}if(bv===1){bA=by;by=function(bB){b().off(bB);return bA.apply(this,arguments)};by.guid=bA.guid||(bA.guid=b.guid++)}return this.each(function(){b.event.add(this,bw,by,bz,e)})},one:function(bv,e,bx,bw){return this.on.call(this,bv,e,bx,bw,1)},off:function(bw,e,by){if(bw&&bw.preventDefault&&bw.handleObj){var bv=bw.handleObj;b(bw.delegateTarget).off(bv.namespace?bv.type+"."+bv.namespace:bv.type,bv.selector,bv.handler);return this}if(typeof bw==="object"){for(var bx in bw){this.off(bx,e,bw[bx])}return this}if(e===false||typeof e==="function"){by=e;e=L}if(by===false){by=bk}return this.each(function(){b.event.remove(this,bw,by,e)})},bind:function(e,bw,bv){return this.on(e,null,bw,bv)},unbind:function(e,bv){return this.off(e,null,bv)},live:function(e,bw,bv){b(this.context).on(e,this.selector,bw,bv);return this},die:function(e,bv){b(this.context).off(e,this.selector||"**",bv);return this},delegate:function(e,bv,bx,bw){return this.on(bv,e,bx,bw)},undelegate:function(e,bv,bw){return arguments.length==1?this.off(e,"**"):this.off(bv,e,bw)},trigger:function(e,bv){return this.each(function(){b.event.trigger(e,bv,this)})},triggerHandler:function(e,bv){if(this[0]){return b.event.trigger(e,bv,this[0],true)}},toggle:function(bx){var bv=arguments,e=bx.guid||b.guid++,bw=0,by=function(bz){var bA=(b._data(this,"lastToggle"+bx.guid)||0)%bw;b._data(this,"lastToggle"+bx.guid,bA+1);bz.preventDefault();return bv[bA].apply(this,arguments)||false};by.guid=e;while(bw<bv.length){bv[bw++].guid=e}return this.click(by)},hover:function(e,bv){return this.mouseenter(e).mouseleave(bv||e)}});b.each(("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu").split(" "),function(bv,e){b.fn[e]=function(bx,bw){if(bw==null){bw=bx;bx=null}return arguments.length>0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}});
+/*!
+ * Sizzle CSS Selector Engine
+ * Copyright 2011, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ * More information: http://sizzlejs.com/
+ */
+(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e<bR.length;e++){if(bR[e]===bR[e-1]){bR.splice(e--,1)}}}}return bR};by.matches=function(e,bR){return by(e,null,null,bR)};by.matchesSelector=function(e,bR){return by(bR,null,null,[e]).length>0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS<bU;bS++){bV=bE.order[bS];if((bT=bE.leftMatch[bV].exec(bX))){bR=bT[1];bT.splice(1,1);if(bR.substr(bR.length-1)!=="\\"){bT[1]=(bT[1]||"").replace(bK,"");bW=bE.find[bV](bT,e,bY);if(bW!=null){bX=bX.replace(bE.match[bV],"");break}}}}if(!bW){bW=typeof e.getElementsByTagName!=="undefined"?e.getElementsByTagName("*"):[]}return{set:bW,expr:bX}};by.filter=function(b1,b0,b4,bU){var bW,e,bZ,b6,b3,bR,bT,bV,b2,bS=b1,b5=[],bY=b0,bX=b0&&b0[0]&&by.isXML(b0[0]);while(b1&&b0.length){for(bZ in bE.filter){if((bW=bE.leftMatch[bZ].exec(b1))!=null&&bW[2]){bR=bE.filter[bZ];bT=bW[1];e=false;bW.splice(1,1);if(bT.substr(bT.length-1)==="\\"){continue}if(bY===b5){b5=[]}if(bE.preFilter[bZ]){bW=bE.preFilter[bZ](bW,bY,b4,b5,bU,bX);if(!bW){e=b6=true}else{if(bW===true){continue}}}if(bW){for(bV=0;(b3=bY[bV])!=null;bV++){if(b3){b6=bR(b3,bW,bV,bY);b2=bU^b6;if(b4&&b6!=null){if(b2){e=true}else{bY[bV]=false}}else{if(b2){b5.push(b3);e=true}}}}}if(b6!==L){if(!b4){bY=b5}b1=b1.replace(bE.match[bZ],"");if(!e){return[]}break}}}if(b1===bS){if(e==null){by.error(b1)}else{break}}bS=b1}return bY};by.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)};var bw=by.getText=function(bU){var bS,bT,e=bU.nodeType,bR="";if(e){if(e===1||e===9){if(typeof bU.textContent==="string"){return bU.textContent}else{if(typeof bU.innerText==="string"){return bU.innerText.replace(bO,"")}else{for(bU=bU.firstChild;bU;bU=bU.nextSibling){bR+=bw(bU)}}}}else{if(e===3||e===4){return bU.nodeValue}}}else{for(bS=0;(bT=bU[bS]);bS++){if(bT.nodeType!==8){bR+=bw(bT)}}}return bR};var bE=by.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(e){return e.getAttribute("href")},type:function(e){return e.getAttribute("type")}},relative:{"+":function(bW,bR){var bT=typeof bR==="string",bV=bT&&!bQ.test(bR),bX=bT&&!bV;if(bV){bR=bR.toLowerCase()}for(var bS=0,e=bW.length,bU;bS<e;bS++){if((bU=bW[bS])){while((bU=bU.previousSibling)&&bU.nodeType!==1){}bW[bS]=bX||bU&&bU.nodeName.toLowerCase()===bR?bU||false:bU===bR}}if(bX){by.filter(bR,bW,true)}},">":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS<e;bS++){bV=bW[bS];if(bV){var bT=bV.parentNode;bW[bS]=bT.nodeName.toLowerCase()===bR?bT:false}}}else{for(;bS<e;bS++){bV=bW[bS];if(bV){bW[bS]=bU?bV.parentNode:bV.parentNode===bR}}if(bU){by.filter(bR,bW,true)}}},"":function(bT,bR,bV){var bU,bS=bI++,e=bN;if(typeof bR==="string"&&!bQ.test(bR)){bR=bR.toLowerCase();bU=bR;e=bv}e("parentNode",bR,bS,bT,bU,bV)},"~":function(bT,bR,bV){var bU,bS=bI++,e=bN;if(typeof bR==="string"&&!bQ.test(bR)){bR=bR.toLowerCase();bU=bR;e=bv}e("previousSibling",bR,bS,bT,bU,bV)}},find:{ID:function(bR,bS,bT){if(typeof bS.getElementById!=="undefined"&&!bT){var e=bS.getElementById(bR[1]);return e&&e.parentNode?[e]:[]}},NAME:function(bS,bV){if(typeof bV.getElementsByName!=="undefined"){var bR=[],bU=bV.getElementsByName(bS[1]);for(var bT=0,e=bU.length;bT<e;bT++){if(bU[bT].getAttribute("name")===bS[1]){bR.push(bU[bT])}}return bR.length===0?null:bR}},TAG:function(e,bR){if(typeof bR.getElementsByTagName!=="undefined"){return bR.getElementsByTagName(e[1])}}},preFilter:{CLASS:function(bT,bR,bS,e,bW,bX){bT=" "+bT[1].replace(bK,"")+" ";if(bX){return bT}for(var bU=0,bV;(bV=bR[bU])!=null;bU++){if(bV){if(bW^(bV.className&&(" "+bV.className+" ").replace(/[\t\n\r]/g," ").indexOf(bT)>=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1},lt:function(bS,bR,e){return bR<e[3]-0},gt:function(bS,bR,e){return bR>e[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV<bU;bV++){if(bT[bV]===bS){return false}}return true}else{by.error(e)}}}},CHILD:function(bS,bU){var bT,b0,bW,bZ,e,bV,bY,bX=bU[1],bR=bS;switch(bX){case"only":case"first":while((bR=bR.previousSibling)){if(bR.nodeType===1){return false}}if(bX==="first"){return true}bR=bS;case"last":while((bR=bR.nextSibling)){if(bR.nodeType===1){return false}}return true;case"nth":bT=bU[2];b0=bU[3];if(bT===1&&b0===0){return true}bW=bU[0];bZ=bS.parentNode;if(bZ&&(bZ[bC]!==bW||!bS.nodeIndex)){bV=0;for(bR=bZ.firstChild;bR;bR=bR.nextSibling){if(bR.nodeType===1){bR.nodeIndex=++bV}}bZ[bC]=bW}bY=bS.nodeIndex-b0;if(bT===0){return bY===0}else{return(bY%bT===0&&bY/bT>=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS<e;bS++){bR.push(bU[bS])}}else{for(;bU[bS];bS++){bR.push(bU[bS])}}}return bR}}var bJ,bG;if(av.documentElement.compareDocumentPosition){bJ=function(bR,e){if(bR===e){bB=true;return 0}if(!bR.compareDocumentPosition||!e.compareDocumentPosition){return bR.compareDocumentPosition?-1:1}return bR.compareDocumentPosition(e)&4?-1:1}}else{bJ=function(bY,bX){if(bY===bX){bB=true;return 0}else{if(bY.sourceIndex&&bX.sourceIndex){return bY.sourceIndex-bX.sourceIndex}}var bV,bR,bS=[],e=[],bU=bY.parentNode,bW=bX.parentNode,bZ=bU;if(bU===bW){return bG(bY,bX)}else{if(!bU){return -1}else{if(!bW){return 1}}}while(bZ){bS.unshift(bZ);bZ=bZ.parentNode}bZ=bW;while(bZ){e.unshift(bZ);bZ=bZ.parentNode}bV=bS.length;bR=e.length;for(var bT=0;bT<bV&&bT<bR;bT++){if(bS[bT]!==e[bT]){return bG(bS[bT],e[bT])}}return bT===bV?bG(bY,e[bT],-1):bG(bS[bT],bX,1)};bG=function(bR,e,bS){if(bR===e){return bS}var bT=bR.nextSibling;while(bT){if(bT===e){return -1}bT=bT.nextSibling}return 1}}(function(){var bR=av.createElement("div"),bS="script"+(new Date()).getTime(),e=av.documentElement;bR.innerHTML="<a name='"+bS+"'/>";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="<a href='#'></a>";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="<p class='TEST'></p>";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="<div class='test e'></div><div class='test'></div>";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT<bS;bT++){var e=bZ[bT];if(e){var bU=false;e=e[bR];while(e){if(e[bC]===bV){bU=bZ[e.sizset];break}if(e.nodeType===1&&!bY){e[bC]=bV;e.sizset=bT}if(e.nodeName.toLowerCase()===bW){bU=e;break}e=e[bR]}bZ[bT]=bU}}}function bN(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT<bS;bT++){var e=bZ[bT];if(e){var bU=false;e=e[bR];while(e){if(e[bC]===bV){bU=bZ[e.sizset];break}if(e.nodeType===1){if(!bY){e[bC]=bV;e.sizset=bT}if(typeof bW!=="string"){if(e===bW){bU=true;break}}else{if(by.filter(bW,[e]).length>0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT<bR;bT++){by(bS,bY[bT],bX,bW)}return by.filter(bU,bX)};by.attr=b.attr;by.selectors.attrMap={};b.find=by;b.expr=by.selectors;b.expr[":"]=b.expr.filters;b.unique=by.uniqueSort;b.text=by.getText;b.isXMLDoc=by.isXML;b.contains=by.contains})();var ab=/Until$/,aq=/^(?:parents|prevUntil|prevAll)/,a9=/,/,bp=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,H=b.expr.match.POS,ay={children:true,contents:true,next:true,prev:true};b.fn.extend({find:function(e){var bw=this,by,bv;if(typeof e!=="string"){return b(e).filter(function(){for(by=0,bv=bw.length;by<bv;by++){if(b.contains(bw[by],this)){return true}}})}var bx=this.pushStack("","find",e),bA,bB,bz;for(by=0,bv=this.length;by<bv;by++){bA=bx.length;b.find(e,this[by],bx);if(by>0){for(bB=bA;bB<bx.length;bB++){for(bz=0;bz<bA;bz++){if(bx[bz]===bx[bB]){bx.splice(bB--,1);break}}}}}return bx},has:function(bv){var e=b(bv);return this.filter(function(){for(var bx=0,bw=e.length;bx<bw;bx++){if(b.contains(this,e[bx])){return true}}})},not:function(e){return this.pushStack(aG(this,e,false),"not",e)},filter:function(e){return this.pushStack(aG(this,e,true),"filter",e)},is:function(e){return !!e&&(typeof e==="string"?H.test(e)?b(e,this.context).index(this[0])>=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw<by.length;bw++){if(b(bz).is(by[bw])){bv.push({selector:by[bw],elem:bz,level:bB})}}bz=bz.parentNode;bB++}return bv}var bA=H.test(by)||typeof by!=="string"?b(by,bx||this.context):0;for(bw=0,e=this.length;bw<e;bw++){bz=this[bw];while(bz){if(bA?bA.index(bz)>-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/<tbody/i,W=/<|&#?\w+;/,ae=/<(?:script|style)/i,O=/<(?:script|object|embed|option|style)/i,ah=new RegExp("<(?:"+aR+")","i"),o=/checked\s*(?:[^=]|=\s*.checked.)/i,bm=/\/(java|ecma)script/i,aN=/^\s*<!(?:\[CDATA\[|\-\-)/,ax={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},ac=a(av);ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div<div>","</div>"]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1></$2>");try{for(var bw=0,bv=this.length;bw<bv;bw++){if(this[bw].nodeType===1){b.cleanData(this[bw].getElementsByTagName("*"));this[bw].innerHTML=bx}}}catch(by){this.empty().append(bx)}}else{if(b.isFunction(bx)){this.each(function(bz){var e=b(this);e.html(bx.call(this,bz,e.html()))})}else{this.empty().append(bx)}}}return this},replaceWith:function(e){if(this[0]&&this[0].parentNode){if(b.isFunction(e)){return this.each(function(bx){var bw=b(this),bv=bw.html();bw.replaceWith(e.call(this,bx,bv))})}if(typeof e!=="string"){e=b(e).detach()}return this.each(function(){var bw=this.nextSibling,bv=this.parentNode;b(this).remove();if(bw){b(bw).before(e)}else{b(bv).append(e)}})}else{return this.length?this.pushStack(b(b.isFunction(e)?e():e),"replaceWith",e):this}},detach:function(e){return this.remove(e,true)},domManip:function(bB,bF,bE){var bx,by,bA,bD,bC=bB[0],bv=[];if(!b.support.checkClone&&arguments.length===3&&typeof bC==="string"&&o.test(bC)){return this.each(function(){b(this).domManip(bB,bF,bE,true)})}if(b.isFunction(bC)){return this.each(function(bH){var bG=b(this);bB[0]=bC.call(this,bH,bF?bG.html():L);bG.domManip(bB,bF,bE)})}if(this[0]){bD=bC&&bC.parentNode;if(b.support.parentNode&&bD&&bD.nodeType===11&&bD.childNodes.length===this.length){bx={fragment:bD}}else{bx=b.buildFragment(bB,this,bv)}bA=bx.fragment;if(bA.childNodes.length===1){by=bA=bA.firstChild}else{by=bA.firstChild}if(by){bF=bF&&b.nodeName(by,"tr");for(var bw=0,e=this.length,bz=e-1;bw<e;bw++){bE.call(bF?ba(this[bw],by):this[bw],bx.cacheable||(e>1&&bw<bz)?b.clone(bA,true,true):bA)}}if(bv.length){b.each(bv,bo)}}return this}});function ba(e,bv){return b.nodeName(e,"table")?(e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody"))):e}function t(bB,bv){if(bv.nodeType!==1||!b.hasData(bB)){return}var by,bx,e,bA=b._data(bB),bz=b._data(bv,bA),bw=bA.events;if(bw){delete bz.handle;bz.events={};for(by in bw){for(bx=0,e=bw[by].length;bx<e;bx++){b.event.add(bv,by+(bw[by][bx].namespace?".":"")+bw[by][bx].namespace,bw[by][bx],bw[by][bx].data)}}}if(bz.data){bz.data=b.extend({},bz.data)}}function ai(bv,e){var bw;if(e.nodeType!==1){return}if(e.clearAttributes){e.clearAttributes()}if(e.mergeAttributes){e.mergeAttributes(bv)}bw=e.nodeName.toLowerCase();if(bw==="object"){e.outerHTML=bv.outerHTML}else{if(bw==="input"&&(bv.type==="checkbox"||bv.type==="radio")){if(bv.checked){e.defaultChecked=e.checked=bv.checked}if(e.value!==bv.value){e.value=bv.value}}else{if(bw==="option"){e.selected=bv.defaultSelected}else{if(bw==="input"||bw==="textarea"){e.defaultValue=bv.defaultValue}}}}e.removeAttribute(b.expando)}b.buildFragment=function(bz,bx,bv){var by,e,bw,bA,bB=bz[0];if(bx&&bx[0]){bA=bx[0].ownerDocument||bx[0]}if(!bA.createDocumentFragment){bA=av}if(bz.length===1&&typeof bB==="string"&&bB.length<512&&bA===av&&bB.charAt(0)==="<"&&!O.test(bB)&&(b.support.checkClone||!o.test(bB))&&(b.support.html5Clone||!ah.test(bB))){e=true;bw=b.fragments[bB];if(bw&&bw!==1){by=bw}}if(!by){by=bA.createDocumentFragment();b.clean(bz,bA,by,bv)}if(e){b.fragments[bB]=bw?by:1}return{fragment:by,cacheable:e}};b.fragments={};b.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,bv){b.fn[e]=function(bw){var bz=[],bC=b(bw),bB=this.length===1&&this[0].parentNode;if(bB&&bB.nodeType===11&&bB.childNodes.length===1&&bC.length===1){bC[bv](this[0]);return this}else{for(var bA=0,bx=bC.length;bA<bx;bA++){var by=(bA>0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1></$2>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]==="<table>"&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB<bG;bB++){E(bz[bB])}}else{E(bz)}}if(bz.nodeType){bI.push(bz)}else{bI=b.merge(bI,bz)}}if(bH){bF=function(bL){return !bL.type||bm.test(bL.type)};for(bE=0;bI[bE];bE++){if(bA&&b.nodeName(bI[bE],"script")&&(!bI[bE].type||bI[bE].type.toLowerCase()==="text/javascript")){bA.push(bI[bE].parentNode?bI[bE].parentNode.removeChild(bI[bE]):bI[bE])}else{if(bI[bE].nodeType===1){var bJ=b.grep(bI[bE].getElementsByTagName("script"),bF);bI.splice.apply(bI,[bE+1,0].concat(bJ))}bH.appendChild(bI[bE])}}}return bI},cleanData:function(bv){var by,bw,e=b.cache,bB=b.event.special,bA=b.support.deleteExpando;for(var bz=0,bx;(bx=bv[bz])!=null;bz++){if(bx.nodeName&&b.noData[bx.nodeName.toLowerCase()]){continue}bw=bx[b.expando];if(bw){by=e[bw];if(by&&by.events){for(var bC in by.events){if(bB[bC]){b.event.remove(bx,bC)}else{b.removeEvent(bx,bC,by.handle)}}if(by.handle){by.handle.elem=null}}if(bA){delete bx[b.expando]}else{if(bx.removeAttribute){bx.removeAttribute(b.expando)}}delete e[bw]}}}});function bo(e,bv){if(bv.src){b.ajax({url:bv.src,async:false,dataType:"script"})}else{b.globalEval((bv.text||bv.textContent||bv.innerHTML||"").replace(aN,"/*$0*/"))}if(bv.parentNode){bv.parentNode.removeChild(bv)}}var ak=/alpha\([^)]*\)/i,au=/opacity=([^)]*)/,z=/([A-Z]|^ms)/g,bc=/^-?\d+(?:px)?$/i,bn=/^-?\d/,I=/^([\-+])=([\-+.\de]+)/,a7={position:"absolute",visibility:"hidden",display:"block"},an=["Left","Right"],a1=["Top","Bottom"],Z,aI,aX;b.fn.css=function(e,bv){if(arguments.length===2&&bv===L){return this}return b.access(this,e,bv,true,function(bx,bw,by){return by!==L?b.style(bx,bw,by):b.css(bx,bw)})};b.extend({cssHooks:{opacity:{get:function(bw,bv){if(bv){var e=Z(bw,"opacity","opacity");return e===""?"1":e}else{return bw.style.opacity}}}},cssNumber:{fillOpacity:true,fontWeight:true,lineHeight:true,opacity:true,orphans:true,widows:true,zIndex:true,zoom:true},cssProps:{"float":b.support.cssFloat?"cssFloat":"styleFloat"},style:function(bx,bw,bD,by){if(!bx||bx.nodeType===3||bx.nodeType===8||!bx.style){return}var bB,bC,bz=b.camelCase(bw),bv=bx.style,bE=b.cssHooks[bz];bw=b.cssProps[bz]||bz;if(bD!==L){bC=typeof bD;if(bC==="string"&&(bB=I.exec(bD))){bD=(+(bB[1]+1)*+bB[2])+parseFloat(b.css(bx,bw));bC="number"}if(bD==null||bC==="number"&&isNaN(bD)){return}if(bC==="number"&&!b.cssNumber[bz]){bD+="px"}if(!bE||!("set" in bE)||(bD=bE.set(bx,bD))!==L){try{bv[bw]=bD}catch(bA){}}}else{if(bE&&"get" in bE&&(bB=bE.get(bx,false,by))!==L){return bB}return bv[bw]}},css:function(by,bx,bv){var bw,e;bx=b.camelCase(bx);e=b.cssHooks[bx];bx=b.cssProps[bx]||bx;if(bx==="cssFloat"){bx="float"}if(e&&"get" in e&&(bw=e.get(by,true,bv))!==L){return bw}else{if(Z){return Z(by,bx)}}},swap:function(bx,bw,by){var e={};for(var bv in bw){e[bv]=bx.style[bv];bx.style[bv]=bw[bv]}by.call(bx);for(bv in bw){bx.style[bv]=e[bv]}}});b.curCSS=b.css;b.each(["height","width"],function(bv,e){b.cssHooks[e]={get:function(by,bx,bw){var bz;if(bx){if(by.offsetWidth!==0){return p(by,e,bw)}else{b.swap(by,a7,function(){bz=p(by,e,bw)})}return bz}},set:function(bw,bx){if(bc.test(bx)){bx=parseFloat(bx);if(bx>=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length;if(bA>0){if(bv!=="border"){for(;bx<e;bx++){if(!bv){bA-=parseFloat(b.css(by,"padding"+bz[bx]))||0}if(bv==="margin"){bA+=parseFloat(b.css(by,bv+bz[bx]))||0}else{bA-=parseFloat(b.css(by,"border"+bz[bx]+"Width"))||0}}}return bA+"px"}bA=Z(by,bw,bw);if(bA<0||bA==null){bA=by.style[bw]||0}bA=parseFloat(bA)||0;if(bv){for(;bx<e;bx++){bA+=parseFloat(b.css(by,"padding"+bz[bx]))||0;if(bv!=="padding"){bA+=parseFloat(b.css(by,"border"+bz[bx]+"Width"))||0}if(bv==="margin"){bA+=parseFloat(b.css(by,bv+bz[bx]))||0}}}return bA+"px"}if(b.expr&&b.expr.filters){b.expr.filters.hidden=function(bw){var bv=bw.offsetWidth,e=bw.offsetHeight;return(bv===0&&e===0)||(!b.support.reliableHiddenOffsets&&((bw.style&&bw.style.display)||b.css(bw,"display"))==="none")};b.expr.filters.visible=function(e){return !b.expr.filters.hidden(e)}}var k=/%20/g,ap=/\[\]$/,bs=/\r?\n/g,bq=/#.*$/,aD=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,aZ=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,aM=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,aQ=/^(?:GET|HEAD)$/,c=/^\/\//,M=/\?/,a6=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw<bz;bw++){bv=bx[bw];bC=/^\+/.test(bv);if(bC){bv=bv.substr(1)||"*"}bB=e[bv]=e[bv]||[];bB[bC?"unshift":"push"](bA)}}}}function aW(bv,bE,bz,bD,bB,bx){bB=bB||bE.dataTypes[0];bx=bx||{};bx[bB]=true;var bA=bv[bB],bw=0,e=bA?bA.length:0,by=(bv===aa),bC;for(;bw<e&&(by||!bC);bw++){bC=bA[bw](bE,bz,bD);if(typeof bC==="string"){if(!by||bx[bC]){bC=L}else{bE.dataTypes.unshift(bC);bC=aW(bv,bE,bz,bD,bC,bx)}}}if((by||!bC)&&!bx["*"]){bC=aW(bv,bE,bz,bD,"*",bx)}return bC}function am(bw,bx){var bv,e,by=b.ajaxSettings.flatOptions||{};for(bv in bx){if(bx[bv]!==L){(by[bv]?bw:(e||(e={})))[bv]=bx[bv]}}if(e){b.extend(true,bw,e)}}b.fn.extend({load:function(bw,bz,bA){if(typeof bw!=="string"&&A){return A.apply(this,arguments)}else{if(!this.length){return this}}var by=bw.indexOf(" ");if(by>=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("<div>").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA<bw;bA++){if(bA===1){for(bE in bH.converters){if(typeof bE==="string"){bG[bE.toLowerCase()]=bH.converters[bE]}}}bx=bC;bC=bD[bA];if(bC==="*"){bC=bx}else{if(bx!=="*"&&bx!==bC){by=bx+" "+bC;bF=bG[by]||bG["* "+bC];if(!bF){e=L;for(bv in bG){bB=bv.split(" ");if(bB[0]===bx||bB[0]==="*"){e=bG[bB[1]+" "+bC];if(e){bv=bG[bv];if(bv===true){bF=e}else{if(e===true){bF=bv}}break}}}}if(!(bF||e)){b.error("No conversion from "+by.replace(" "," to "))}if(bF!==true){bz=bF?bF(bz):e(bv(bz))}}}}return bz}var aC=b.now(),u=/(\=)\?(&|$)|\?\?/i;b.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return b.expando+"_"+(aC++)}});b.ajaxPrefilter("json jsonp",function(bD,bA,bC){var bx=bD.contentType==="application/x-www-form-urlencoded"&&(typeof bD.data==="string");if(bD.dataTypes[0]==="jsonp"||bD.jsonp!==false&&(u.test(bD.url)||bx&&u.test(bD.data))){var bB,bw=bD.jsonpCallback=b.isFunction(bD.jsonpCallback)?bD.jsonpCallback():bD.jsonpCallback,bz=bb[bw],e=bD.url,by=bD.data,bv="$1"+bw+"$2";if(bD.jsonp!==false){e=e.replace(u,bv);if(bD.url===e){if(bx){by=by.replace(u,bv)}if(bD.data===by){e+=(/\?/.test(e)?"&":"?")+bD.jsonp+"="+bw}}}bD.url=e;bD.data=by;bb[bw]=function(bE){bB=[bE]};bC.always(function(){bb[bw]=bz;if(bB&&b.isFunction(bz)){bb[bw](bB[0])}});bD.converters["script json"]=function(){if(!bB){b.error(bw+" was not called")}return bB[0]};bD.dataTypes[0]="json";return"script"}});b.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){b.globalEval(e);return e}}});b.ajaxPrefilter("script",function(e){if(e.cache===L){e.cache=false}if(e.crossDomain){e.type="GET";e.global=false}});b.ajaxTransport("script",function(bw){if(bw.crossDomain){var e,bv=av.head||av.getElementsByTagName("head")[0]||av.documentElement;return{send:function(bx,by){e=av.createElement("script");e.async="async";if(bw.scriptCharset){e.charset=bw.scriptCharset}e.src=bw.url;e.onload=e.onreadystatechange=function(bA,bz){if(bz||!e.readyState||/loaded|complete/.test(e.readyState)){e.onload=e.onreadystatechange=null;if(bv&&e.parentNode){bv.removeChild(e)}e=L;if(!bz){by(200,"success")}}};bv.insertBefore(e,bv.firstChild)},abort:function(){if(e){e.onload(0,1)}}}}});var B=bb.ActiveXObject?function(){for(var e in N){N[e](0,1)}}:false,y=0,N;function aL(){try{return new bb.XMLHttpRequest()}catch(bv){}}function aj(){try{return new bb.ActiveXObject("Microsoft.XMLHTTP")}catch(bv){}}b.ajaxSettings.xhr=bb.ActiveXObject?function(){return !this.isLocal&&aL()||aj()}:aL;(function(e){b.extend(b.support,{ajax:!!e,cors:!!e&&("withCredentials" in e)})})(b.ajaxSettings.xhr());if(b.support.ajax){b.ajaxTransport(function(e){if(!e.crossDomain||b.support.cors){var bv;return{send:function(bB,bw){var bA=e.xhr(),bz,by;if(e.username){bA.open(e.type,e.url,e.async,e.username,e.password)}else{bA.open(e.type,e.url,e.async)}if(e.xhrFields){for(by in e.xhrFields){bA[by]=e.xhrFields[by]}}if(e.mimeType&&bA.overrideMimeType){bA.overrideMimeType(e.mimeType)}if(!e.crossDomain&&!bB["X-Requested-With"]){bB["X-Requested-With"]="XMLHttpRequest"}try{for(by in bB){bA.setRequestHeader(by,bB[by])}}catch(bx){}bA.send((e.hasContent&&e.data)||null);bv=function(bK,bE){var bF,bD,bC,bI,bH;try{if(bv&&(bE||bA.readyState===4)){bv=L;if(bz){bA.onreadystatechange=b.noop;if(B){delete N[bz]}}if(bE){if(bA.readyState!==4){bA.abort()}}else{bF=bA.status;bC=bA.getAllResponseHeaders();bI={};bH=bA.responseXML;if(bH&&bH.documentElement){bI.xml=bH}bI.text=bA.responseText;try{bD=bA.statusText}catch(bJ){bD=""}if(!bF&&e.isLocal&&!e.crossDomain){bF=bI.text?200:404}else{if(bF===1223){bF=204}}}}}catch(bG){if(!bE){bw(-1,bG)}}if(bI){bw(bF,bD,bI,bC)}};if(!e.async||bA.readyState===4){bv()}else{bz=++y;if(B){if(!N){N={};b(bb).unload(B)}N[bz]=bv}bA.onreadystatechange=bv}},abort:function(){if(bv){bv(0,1)}}}}})}var Q={},a8,m,aB=/^(?:toggle|show|hide)$/,aT=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,a3,aH=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],a4;b.fn.extend({show:function(bx,bA,bz){var bw,by;if(bx||bx===0){return this.animate(a0("show",3),bx,bA,bz)}else{for(var bv=0,e=this.length;bv<e;bv++){bw=this[bv];if(bw.style){by=bw.style.display;if(!b._data(bw,"olddisplay")&&by==="none"){by=bw.style.display=""}if(by===""&&b.css(bw,"display")==="none"){b._data(bw,"olddisplay",x(bw.nodeName))}}}for(bv=0;bv<e;bv++){bw=this[bv];if(bw.style){by=bw.style.display;if(by===""||by==="none"){bw.style.display=b._data(bw,"olddisplay")||""}}}return this}},hide:function(bx,bA,bz){if(bx||bx===0){return this.animate(a0("hide",3),bx,bA,bz)}else{var bw,by,bv=0,e=this.length;for(;bv<e;bv++){bw=this[bv];if(bw.style){by=b.css(bw,"display");if(by!=="none"&&!b._data(bw,"olddisplay")){b._data(bw,"olddisplay",by)}}}for(bv=0;bv<e;bv++){if(this[bv].style){this[bv].style.display="none"}}return this}},_toggle:b.fn.toggle,toggle:function(bw,bv,bx){var e=typeof bw==="boolean";if(b.isFunction(bw)&&b.isFunction(bv)){this._toggle.apply(this,arguments)}else{if(bw==null||e){this.each(function(){var by=e?bw:b(this).is(":hidden");b(this)[by?"show":"hide"]()})}else{this.animate(a0("toggle",3),bw,bv,bx)}}return this},fadeTo:function(e,bx,bw,bv){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:bx},e,bw,bv)},animate:function(bz,bw,by,bx){var e=b.speed(bw,by,bx);if(b.isEmptyObject(bz)){return this.each(e.complete,[false])}bz=b.extend({},bz);function bv(){if(e.queue===false){b._mark(this)}var bE=b.extend({},e),bK=this.nodeType===1,bI=bK&&b(this).is(":hidden"),bB,bF,bD,bJ,bH,bC,bG,bL,bA;bE.animatedProperties={};for(bD in bz){bB=b.camelCase(bD);if(bD!==bB){bz[bB]=bz[bD];delete bz[bD]}bF=bz[bB];if(b.isArray(bF)){bE.animatedProperties[bB]=bF[1];bF=bz[bB]=bF[0]}else{bE.animatedProperties[bB]=bE.specialEasing&&bE.specialEasing[bB]||bE.easing||"swing"}if(bF==="hide"&&bI||bF==="show"&&!bI){return bE.complete.call(this)}if(bK&&(bB==="height"||bB==="width")){bE.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(b.css(this,"display")==="inline"&&b.css(this,"float")==="none"){if(!b.support.inlineBlockNeedsLayout||x(this.nodeName)==="inline"){this.style.display="inline-block"}else{this.style.zoom=1}}}}if(bE.overflow!=null){this.style.overflow="hidden"}for(bD in bz){bJ=new b.fx(this,bE,bD);bF=bz[bD];if(aB.test(bF)){bA=b._data(this,"toggle"+bD)||(bF==="toggle"?bI?"show":"hide":0);if(bA){b._data(this,"toggle"+bD,bA==="show"?"hide":"show");bJ[bA]()}else{bJ[bF]()}}else{bH=aT.exec(bF);bC=bJ.cur();if(bH){bG=parseFloat(bH[2]);bL=bH[3]||(b.cssNumber[bD]?"":"px");if(bL!=="px"){b.style(this,bD,(bG||1)+bL);bC=((bG||1)/bJ.cur())*bC;b.style(this,bD,bC+bL)}if(bH[1]){bG=((bH[1]==="-="?-1:1)*bG)+bC}bJ.custom(bC,bG,bL)}else{bJ.custom(bC,bF,"")}}}return true}return e.queue===false?this.each(bv):this.queue(e.queue,bv)},stop:function(bw,bv,e){if(typeof bw!=="string"){e=bv;bv=bw;bw=L}if(bv&&bw!==false){this.queue(bw||"fx",[])}return this.each(function(){var bx,by=false,bA=b.timers,bz=b._data(this);if(!e){b._unmark(true,this)}function bB(bE,bF,bD){var bC=bF[bD];b.removeData(bE,bD,true);bC.stop(e)}if(bw==null){for(bx in bz){if(bz[bx]&&bz[bx].stop&&bx.indexOf(".run")===bx.length-4){bB(this,bz,bx)}}}else{if(bz[bx=bw+".run"]&&bz[bx].stop){bB(this,bz,bx)}}for(bx=bA.length;bx--;){if(bA[bx].elem===this&&(bw==null||bA[bx].queue===bw)){if(e){bA[bx](true)}else{bA[bx].saveState()}by=true;bA.splice(bx,1)}}if(!(e&&by)){b.dequeue(this,bw)}})}});function bh(){setTimeout(at,0);return(a4=b.now())}function at(){a4=L}function a0(bv,e){var bw={};b.each(aH.concat.apply([],aH.slice(0,e)),function(){bw[this]=bv});return bw}b.each({slideDown:a0("show",1),slideUp:a0("hide",1),slideToggle:a0("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,bv){b.fn[e]=function(bw,by,bx){return this.animate(bv,bw,by,bx)}});b.extend({speed:function(bw,bx,bv){var e=bw&&typeof bw==="object"?b.extend({},bw):{complete:bv||!bv&&bx||b.isFunction(bw)&&bw,duration:bw,easing:bv&&bx||bx&&!b.isFunction(bx)&&bx};e.duration=b.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in b.fx.speeds?b.fx.speeds[e.duration]:b.fx.speeds._default;if(e.queue==null||e.queue===true){e.queue="fx"}e.old=e.complete;e.complete=function(by){if(b.isFunction(e.old)){e.old.call(this)}if(e.queue){b.dequeue(this,e.queue)}else{if(by!==false){b._unmark(this)}}};return e},easing:{linear:function(bw,bx,e,bv){return e+bv*bw},swing:function(bw,bx,e,bv){return((-Math.cos(bw*Math.PI)/2)+0.5)*bv+e}},timers:[],fx:function(bv,e,bw){this.options=e;this.elem=bv;this.prop=bw;e.orig=e.orig||{}}});b.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(b.fx.step[this.prop]||b.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var e,bv=b.css(this.elem,this.prop);return isNaN(e=parseFloat(bv))?!bv||bv==="auto"?0:bv:e},custom:function(bz,by,bx){var e=this,bw=b.fx;this.startTime=a4||bh();this.end=by;this.now=this.start=bz;this.pos=this.state=0;this.unit=bx||this.unit||(b.cssNumber[this.prop]?"":"px");function bv(bA){return e.step(bA)}bv.queue=this.options.queue;bv.elem=this.elem;bv.saveState=function(){if(e.options.hide&&b._data(e.elem,"fxshow"+e.prop)===L){b._data(e.elem,"fxshow"+e.prop,e.start)}};if(bv()&&b.timers.push(bv)&&!a3){a3=setInterval(bw.tick,bw.interval)}},show:function(){var e=b._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=e||b.style(this.elem,this.prop);this.options.show=true;if(e!==L){this.custom(this.cur(),e)}else{this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur())}b(this.elem).show()},hide:function(){this.options.orig[this.prop]=b._data(this.elem,"fxshow"+this.prop)||b.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(by){var bA,bB,bv,bx=a4||bh(),e=true,bz=this.elem,bw=this.options;if(by||bx>=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e<bv.length;e++){bw=bv[e];if(!bw()&&bv[e]===bw){bv.splice(e--,1)}}if(!bv.length){b.fx.stop()}},interval:13,stop:function(){clearInterval(a3);a3=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(e){b.style(e.elem,"opacity",e.now)},_default:function(e){if(e.elem.style&&e.elem.style[e.prop]!=null){e.elem.style[e.prop]=e.now+e.unit}else{e.elem[e.prop]=e.now}}}});b.each(["width","height"],function(e,bv){b.fx.step[bv]=function(bw){b.style(bw.elem,bv,Math.max(0,bw.now)+bw.unit)}});if(b.expr&&b.expr.filters){b.expr.filters.animated=function(e){return b.grep(b.timers,function(bv){return e===bv.elem}).length}}function x(bx){if(!Q[bx]){var e=av.body,bv=b("<"+bx+">").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b})}})(window);/*!
+ * jQuery UI 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI
+ */
+(function(a,d){a.ui=a.ui||{};if(a.ui.version){return}a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(e,f){return typeof e==="number"?this.each(function(){var g=this;setTimeout(function(){a(g).focus();if(f){f.call(g)}},e)}):this._focus.apply(this,arguments)},scrollParent:function(){var e;if((a.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){e=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(a.curCSS(this,"position",1))&&(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}else{e=this.parents().filter(function(){return(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!e.length?a(document):e},zIndex:function(h){if(h!==d){return this.css("zIndex",h)}if(this.length){var f=a(this[0]),e,g;while(f.length&&f[0]!==document){e=f.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){g=parseInt(f.css("zIndex"),10);if(!isNaN(g)&&g!==0){return g}}f=f.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width","Height"],function(g,e){var f=e==="Width"?["Left","Right"]:["Top","Bottom"],h=e.toLowerCase(),k={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};function j(m,l,i,n){a.each(f,function(){l-=parseFloat(a.curCSS(m,"padding"+this,true))||0;if(i){l-=parseFloat(a.curCSS(m,"border"+this+"Width",true))||0}if(n){l-=parseFloat(a.curCSS(m,"margin"+this,true))||0}});return l}a.fn["inner"+e]=function(i){if(i===d){return k["inner"+e].call(this)}return this.each(function(){a(this).css(h,j(this,i)+"px")})};a.fn["outer"+e]=function(i,l){if(typeof i!=="number"){return k["outer"+e].call(this,i)}return this.each(function(){a(this).css(h,j(this,i,true,l)+"px")})}});function c(g,e){var j=g.nodeName.toLowerCase();if("area"===j){var i=g.parentNode,h=i.name,f;if(!g.href||!h||i.nodeName.toLowerCase()!=="map"){return false}f=a("img[usemap=#"+h+"]")[0];return !!f&&b(f)}return(/input|select|textarea|button|object/.test(j)?!g.disabled:"a"==j?g.href||e:e)&&b(g)}function b(e){return !a(e).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.extend(a.expr[":"],{data:function(g,f,e){return !!a.data(g,e[3])},focusable:function(e){return c(e,!isNaN(a.attr(e,"tabindex")))},tabbable:function(g){var e=a.attr(g,"tabindex"),f=isNaN(e);return(f||e>=0)&&c(g,!f)}});a(function(){var e=document.body,f=e.appendChild(f=document.createElement("div"));f.offsetHeight;a.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart" in f;e.removeChild(f).style.display="none"});a.extend(a.ui,{plugin:{add:function(f,g,j){var h=a.ui[f].prototype;for(var e in j){h.plugins[e]=h.plugins[e]||[];h.plugins[e].push([g,j[e]])}},call:function(e,g,f){var j=e.plugins[g];if(!j||!e.element[0].parentNode){return}for(var h=0;h<j.length;h++){if(e.options[j[h][0]]){j[h][1].apply(e.element,f)}}}},contains:function(f,e){return document.compareDocumentPosition?f.compareDocumentPosition(e)&16:f!==e&&f.contains(e)},hasScroll:function(h,f){if(a(h).css("overflow")==="hidden"){return false}var e=(f&&f==="left")?"scrollLeft":"scrollTop",g=false;if(h[e]>0){return true}h[e]=1;g=(h[e]>0);h[e]=0;return g},isOverAxis:function(f,e,g){return(f>e)&&(f<(e+g))},isOver:function(j,f,i,h,e,g){return a.ui.isOverAxis(j,i,e)&&a.ui.isOverAxis(f,h,g)}})})(jQuery);/*!
+ * jQuery UI Widget 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Widget
+ */
+(function(b,d){if(b.cleanData){var c=b.cleanData;b.cleanData=function(f){for(var g=0,h;(h=f[g])!=null;g++){try{b(h).triggerHandler("remove")}catch(j){}}c(f)}}else{var a=b.fn.remove;b.fn.remove=function(e,f){return this.each(function(){if(!f){if(!e||b.filter(e,[this]).length){b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(g){}})}}return a.call(b(this),e,f)})}}b.widget=function(f,h,e){var g=f.split(".")[0],j;f=f.split(".")[1];j=g+"-"+f;if(!e){e=h;h=b.Widget}b.expr[":"][j]=function(k){return !!b.data(k,f)};b[g]=b[g]||{};b[g][f]=function(k,l){if(arguments.length){this._createWidget(k,l)}};var i=new h();i.options=b.extend(true,{},i.options);b[g][f].prototype=b.extend(true,i,{namespace:g,widgetName:f,widgetEventPrefix:b[g][f].prototype.widgetEventPrefix||f,widgetBaseClass:j},e);b.widget.bridge(f,b[g][f])};b.widget.bridge=function(f,e){b.fn[f]=function(i){var g=typeof i==="string",h=Array.prototype.slice.call(arguments,1),j=this;i=!g&&h.length?b.extend.apply(null,[true,i].concat(h)):i;if(g&&i.charAt(0)==="_"){return j}if(g){this.each(function(){var k=b.data(this,f),l=k&&b.isFunction(k[i])?k[i].apply(k,h):k;if(l!==k&&l!==d){j=l;return false}})}else{this.each(function(){var k=b.data(this,f);if(k){k.option(i||{})._init()}else{b.data(this,f,new e(i,this))}})}return j}};b.Widget=function(e,f){if(arguments.length){this._createWidget(e,f)}};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(f,g){b.data(g,this.widgetName,this);this.element=b(g);this.options=b.extend(true,{},this.options,this._getCreateOptions(),f);var e=this;this.element.bind("remove."+this.widgetName,function(){e.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(f,g){var e=f;if(arguments.length===0){return b.extend({},this.options)}if(typeof f==="string"){if(g===d){return this.options[f]}e={};e[f]=g}this._setOptions(e);return this},_setOptions:function(f){var e=this;b.each(f,function(g,h){e._setOption(g,h)});return this},_setOption:function(e,f){this.options[e]=f;if(e==="disabled"){this.widget()[f?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",f)}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(e,f,g){var j,i,h=this.options[e];g=g||{};f=b.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();f.target=this.element[0];i=f.originalEvent;if(i){for(j in i){if(!(j in f)){f[j]=i[j]}}}this.element.trigger(f,g);return !(b.isFunction(h)&&h.call(this.element[0],f,g)===false||f.isDefaultPrevented())}}})(jQuery);/*!
+ * jQuery UI Mouse 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Mouse
+ *
+ * Depends:
+ * jquery.ui.widget.js
+ */
+(function(b,c){var a=false;b(document).mouseup(function(d){a=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(e){return d._mouseDown(e)}).bind("click."+this.widgetName,function(e){if(true===b.data(e.target,d.widgetName+".preventClickEvent")){b.removeData(e.target,d.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this,g=(f.which==1),d=(typeof this.options.cancel=="string"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target,this.widgetName+".preventClickEvent")){b.removeData(f.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);f.preventDefault();a=true;return true},_mouseMove:function(d){if(b.browser.msie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)},_mouseDelayMet:function(d){return this.mouseDelayMet},_mouseStart:function(d){},_mouseDrag:function(d){},_mouseStop:function(d){},_mouseCapture:function(d){return true}})})(jQuery);(function(c,d){c.widget("ui.resizable",c.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000},_create:function(){var f=this,k=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(k.aspectRatio),aspectRatio:k.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var l=this.handles.split(",");this.handles={};for(var g=0;g<l.length;g++){var j=c.trim(l[g]),e="ui-resizable-"+j;var h=c('<div class="ui-resizable-handle '+e+'"></div>');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if("se"==j){h.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[j]=".ui-resizable-"+j;this.element.append(h)}}this._renderAxis=function(q){q=q||this.element;for(var n in this.handles){if(this.handles[n].constructor==String){this.handles[n]=c(this.handles[n],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=c(this.handles[n],this.element),p=0;p=/sw|ne|nw|se|n|s/.test(n)?o.outerHeight():o.outerWidth();var m=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");q.css(m,p);this._proportionallyResize()}if(!c(this.handles[n]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!f.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}f.axis=i&&i[1]?i[1]:"se"}});if(k.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){if(k.disabled){return}c(this).removeClass("ui-resizable-autohide");f._handles.show()},function(){if(k.disabled){return}if(!f.resizing){c(this).addClass("ui-resizable-autohide");f._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var e=function(g){c(g).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){e(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"),width:f.outerWidth(),height:f.outerHeight(),top:f.css("top"),left:f.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);e(this.originalElement);return this},_mouseCapture:function(f){var g=false;for(var e in this.handles){if(c(this.handles[e])[0]==f.target){g=true}}return !this.options.disabled&&g},_mouseStart:function(g){var j=this.options,f=this.element.position(),e=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(e.is(".ui-draggable")||(/absolute/).test(e.css("position"))){e.css({position:"absolute",top:f.top,left:f.left})}this._renderProxy();var k=b(this.helper.css("left")),h=b(this.helper.css("top"));if(j.containment){k+=c(j.containment).scrollLeft()||0;h+=c(j.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:k,top:h};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:k,top:h};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=(typeof j.aspectRatio=="number")?j.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var i=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",i=="auto"?this.axis+"-resize":i);e.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(e){var h=this.helper,g=this.options,m={},q=this,j=this.originalMousePosition,n=this.axis;var r=(e.pageX-j.left)||0,p=(e.pageY-j.top)||0;var i=this._change[n];if(!i){return false}var l=i.apply(this,[e,r,p]),k=c.browser.msie&&c.browser.version<7,f=this.sizeDiff;this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey){l=this._updateRatio(l,e)}l=this._respectSize(l,e);this._propagate("resize",e);h.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(l);this._trigger("resize",e,this.ui());return false},_mouseStop:function(h){this.resizing=false;var i=this.options,m=this;if(this._helper){var g=this._proportionallyResizeElements,e=g.length&&(/textarea/i).test(g[0].nodeName),f=e&&c.ui.hasScroll(g[0],"left")?0:m.sizeDiff.height,k=e?0:m.sizeDiff.width;var n={width:(m.helper.width()-k),height:(m.helper.height()-f)},j=(parseInt(m.element.css("left"),10)+(m.position.left-m.originalPosition.left))||null,l=(parseInt(m.element.css("top"),10)+(m.position.top-m.originalPosition.top))||null;if(!i.animate){this.element.css(c.extend(n,{top:l,left:j}))}m.helper.height(m.size.height);m.helper.width(m.size.width);if(this._helper&&!i.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",h);if(this._helper){this.helper.remove()}return false},_updateVirtualBoundaries:function(g){var j=this.options,i,h,f,k,e;e={minWidth:a(j.minWidth)?j.minWidth:0,maxWidth:a(j.maxWidth)?j.maxWidth:Infinity,minHeight:a(j.minHeight)?j.minHeight:0,maxHeight:a(j.maxHeight)?j.maxHeight:Infinity};if(this._aspectRatio||g){i=e.minHeight*this.aspectRatio;f=e.minWidth/this.aspectRatio;h=e.maxHeight*this.aspectRatio;k=e.maxWidth/this.aspectRatio;if(i>e.minWidth){e.minWidth=i}if(f>e.minHeight){e.minHeight=f}if(h<e.maxWidth){e.maxWidth=h}if(k<e.maxHeight){e.maxHeight=k}}this._vBoundaries=e},_updateCache:function(e){var f=this.options;this.offset=this.helper.offset();if(a(e.left)){this.position.left=e.left}if(a(e.top)){this.position.top=e.top}if(a(e.height)){this.size.height=e.height}if(a(e.width)){this.size.width=e.width}},_updateRatio:function(h,g){var i=this.options,j=this.position,f=this.size,e=this.axis;if(a(h.height)){h.width=(h.height*this.aspectRatio)}else{if(a(h.width)){h.height=(h.width/this.aspectRatio)}}if(e=="sw"){h.left=j.left+(f.width-h.width);h.top=null}if(e=="nw"){h.top=j.top+(f.height-h.height);h.left=j.left+(f.width-h.width)}return h},_respectSize:function(l,g){var j=this.helper,i=this._vBoundaries,r=this._aspectRatio||g.shiftKey,q=this.axis,t=a(l.width)&&i.maxWidth&&(i.maxWidth<l.width),m=a(l.height)&&i.maxHeight&&(i.maxHeight<l.height),h=a(l.width)&&i.minWidth&&(i.minWidth>l.width),s=a(l.height)&&i.minHeight&&(i.minHeight>l.height);if(h){l.width=i.minWidth}if(s){l.height=i.minHeight}if(t){l.width=i.maxWidth}if(m){l.height=i.maxHeight}var f=this.originalPosition.left+this.originalSize.width,p=this.position.top+this.size.height;var k=/sw|nw|w/.test(q),e=/nw|ne|n/.test(q);if(h&&k){l.left=f-i.minWidth}if(t&&k){l.left=f-i.maxWidth}if(s&&e){l.top=p-i.minHeight}if(m&&e){l.top=p-i.maxHeight}var n=!l.width&&!l.height;if(n&&!l.left&&l.top){l.top=null}else{if(n&&!l.top&&l.left){l.left=null}}return l},_proportionallyResize:function(){var k=this.options;if(!this._proportionallyResizeElements.length){return}var g=this.helper||this.element;for(var f=0;f<this._proportionallyResizeElements.length;f++){var h=this._proportionallyResizeElements[f];if(!this.borderDif){var e=[h.css("borderTopWidth"),h.css("borderRightWidth"),h.css("borderBottomWidth"),h.css("borderLeftWidth")],j=[h.css("paddingTop"),h.css("paddingRight"),h.css("paddingBottom"),h.css("paddingLeft")];this.borderDif=c.map(e,function(l,n){var m=parseInt(l,10)||0,o=parseInt(j[n],10)||0;return m+o})}if(c.browser.msie&&!(!(c(g).is(":hidden")||c(g).parents(":hidden").length))){continue}h.css({height:(g.height()-this.borderDif[0]-this.borderDif[2])||0,width:(g.width()-this.borderDif[1]-this.borderDif[3])||0})}},_renderProxy:function(){var f=this.element,i=this.options;this.elementOffset=f.offset();if(this._helper){this.helper=this.helper||c('<div style="overflow:hidden;"></div>');var e=c.browser.msie&&c.browser.version<7,g=(e?1:0),h=(e?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+h,height:this.element.outerHeight()+h,position:"absolute",left:this.elementOffset.left-g+"px",top:this.elementOffset.top-g+"px",zIndex:++i.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(g,f,e){return{width:this.originalSize.width+f}},w:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{left:i.left+f,width:g.width-f}},n:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{top:i.top+e,height:g.height-e}},s:function(g,f,e){return{height:this.originalSize.height+e}},se:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},sw:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,f,e]))},ne:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},nw:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,f,e]))}},_propagate:function(f,e){c.ui.plugin.call(this,f,[e,this.ui()]);(f!="resize"&&this._trigger(f,e,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});c.extend(c.ui.resizable,{version:"1.8.18"});c.ui.plugin.add("resizable","alsoResize",{start:function(f,g){var e=c(this).data("resizable"),i=e.options;var h=function(j){c(j).each(function(){var k=c(this);k.data("resizable-alsoresize",{width:parseInt(k.width(),10),height:parseInt(k.height(),10),left:parseInt(k.css("left"),10),top:parseInt(k.css("top"),10)})})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.parentNode){if(i.alsoResize.length){i.alsoResize=i.alsoResize[0];h(i.alsoResize)}else{c.each(i.alsoResize,function(j){h(j)})}}else{h(i.alsoResize)}},resize:function(g,i){var f=c(this).data("resizable"),j=f.options,h=f.originalSize,l=f.originalPosition;var k={height:(f.size.height-h.height)||0,width:(f.size.width-h.width)||0,top:(f.position.top-l.top)||0,left:(f.position.left-l.left)||0},e=function(m,n){c(m).each(function(){var q=c(this),r=c(this).data("resizable-alsoresize"),p={},o=n&&n.length?n:q.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];c.each(o,function(s,u){var t=(r[u]||0)+(k[u]||0);if(t&&t>=0){p[u]=t||null}});q.css(p)})};if(typeof(j.alsoResize)=="object"&&!j.alsoResize.nodeType){c.each(j.alsoResize,function(m,n){e(m,n)})}else{e(j.alsoResize)}},stop:function(e,f){c(this).removeData("resizable-alsoresize")}});c.ui.plugin.add("resizable","animate",{stop:function(i,n){var p=c(this).data("resizable"),j=p.options;var h=p._proportionallyResizeElements,e=h.length&&(/textarea/i).test(h[0].nodeName),f=e&&c.ui.hasScroll(h[0],"left")?0:p.sizeDiff.height,l=e?0:p.sizeDiff.width;var g={width:(p.size.width-l),height:(p.size.height-f)},k=(parseInt(p.element.css("left"),10)+(p.position.left-p.originalPosition.left))||null,m=(parseInt(p.element.css("top"),10)+(p.position.top-p.originalPosition.top))||null;p.element.animate(c.extend(g,m&&k?{top:m,left:k}:{}),{duration:j.animateDuration,easing:j.animateEasing,step:function(){var o={width:parseInt(p.element.css("width"),10),height:parseInt(p.element.css("height"),10),top:parseInt(p.element.css("top"),10),left:parseInt(p.element.css("left"),10)};if(h&&h.length){c(h[0]).css({width:o.width,height:o.height})}p._updateCache(o);p._propagate("resize",i)}})}});c.ui.plugin.add("resizable","containment",{start:function(f,r){var t=c(this).data("resizable"),j=t.options,l=t.element;var g=j.containment,k=(g instanceof c)?g.get(0):(/parent/.test(g))?l.parent().get(0):g;if(!k){return}t.containerElement=c(k);if(/document/.test(g)||g==document){t.containerOffset={left:0,top:0};t.containerPosition={left:0,top:0};t.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var n=c(k),i=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){i[p]=b(n.css("padding"+o))});t.containerOffset=n.offset();t.containerPosition=n.position();t.containerSize={height:(n.innerHeight()-i[3]),width:(n.innerWidth()-i[1])};var q=t.containerOffset,e=t.containerSize.height,m=t.containerSize.width,h=(c.ui.hasScroll(k,"left")?k.scrollWidth:m),s=(c.ui.hasScroll(k)?k.scrollHeight:e);t.parentData={element:k,left:q.left,top:q.top,width:h,height:s}}},resize:function(g,q){var t=c(this).data("resizable"),i=t.options,f=t.containerSize,p=t.containerOffset,m=t.size,n=t.position,r=t._aspectRatio||g.shiftKey,e={top:0,left:0},h=t.containerElement;if(h[0]!=document&&(/static/).test(h.css("position"))){e=p}if(n.left<(t._helper?p.left:0)){t.size.width=t.size.width+(t._helper?(t.position.left-p.left):(t.position.left-e.left));if(r){t.size.height=t.size.width/i.aspectRatio}t.position.left=i.helper?p.left:0}if(n.top<(t._helper?p.top:0)){t.size.height=t.size.height+(t._helper?(t.position.top-p.top):t.position.top);if(r){t.size.width=t.size.height*i.aspectRatio}t.position.top=t._helper?p.top:0}t.offset.left=t.parentData.left+t.position.left;t.offset.top=t.parentData.top+t.position.top;var l=Math.abs((t._helper?t.offset.left-e.left:(t.offset.left-e.left))+t.sizeDiff.width),s=Math.abs((t._helper?t.offset.top-e.top:(t.offset.top-p.top))+t.sizeDiff.height);var k=t.containerElement.get(0)==t.element.parent().get(0),j=/relative|absolute/.test(t.containerElement.css("position"));if(k&&j){l-=t.parentData.left}if(l+t.size.width>=t.parentData.width){t.size.width=t.parentData.width-l;if(r){t.size.height=t.size.width/t.aspectRatio}}if(s+t.size.height>=t.parentData.height){t.size.height=t.parentData.height-s;if(r){t.size.width=t.size.height*t.aspectRatio}}},stop:function(f,n){var q=c(this).data("resizable"),g=q.options,l=q.position,m=q.containerOffset,e=q.containerPosition,i=q.containerElement;var j=c(q.helper),r=j.offset(),p=j.outerWidth()-q.sizeDiff.width,k=j.outerHeight()-q.sizeDiff.height;if(q._helper&&!g.animate&&(/relative/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}if(q._helper&&!g.animate&&(/static/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}}});c.ui.plugin.add("resizable","ghost",{start:function(g,h){var e=c(this).data("resizable"),i=e.options,f=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:"");e.ghost.appendTo(e.helper)},resize:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost){e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})}},stop:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost&&e.helper){e.helper.get(0).removeChild(e.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(e,m){var p=c(this).data("resizable"),h=p.options,k=p.size,i=p.originalSize,j=p.originalPosition,n=p.axis,l=h._aspectRatio||e.shiftKey;h.grid=typeof h.grid=="number"?[h.grid,h.grid]:h.grid;var g=Math.round((k.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1),f=Math.round((k.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f}else{if(/^(ne)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f}else{if(/^(sw)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.left=j.left-g}else{p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f;p.position.left=j.left-g}}}}});var b=function(e){return parseInt(e,10)||0};var a=function(e){return !isNaN(parseInt(e,10))}})(jQuery);/*!
+ * jQuery hashchange event - v1.3 - 7/21/2010
+ * http://benalman.com/projects/jquery-hashchange-plugin/
+ *
+ * Copyright (c) 2010 "Cowboy" Ben Alman
+ * Dual licensed under the MIT and GPL licenses.
+ * http://benalman.com/about/license/
+ */
+(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$('<iframe tabindex="-1" title="empty"/>').hide().one("load",function(){r||l(a());n()}).attr("src",r||"javascript:0").insertAfter("body")[0].contentWindow;h.onpropertychange=function(){try{if(event.propertyName==="title"){q.document.title=h.title}}catch(s){}}}};j.stop=k;o=function(){return a(q.location.href)};l=function(v,s){var u=q.document,t=$.fn[c].domain;if(v!==s){u.title=h.title;u.open();t&&u.write('<script>document.domain="'+t+'"<\/script>');u.close();q.location.hash=v}}})();return j})()})(jQuery,this);(function(c){var a=c.scrollTo=function(f,e,d){c(window).scrollTo(f,e,d)};a.defaults={axis:"xy",duration:parseFloat(c.fn.jquery)>=1.3?0:1};a.window=function(d){return c(window)._scrollable()};c.fn._scrollable=function(){return this.map(function(){var e=this,d=!e.nodeName||c.inArray(e.nodeName.toLowerCase(),["iframe","#document","html","body"])!=-1;if(!d){return e}var f=(e.contentWindow||e).document||e.ownerDocument||e;return c.browser.safari||f.compatMode=="BackCompat"?f.body:f.documentElement})};c.fn.scrollTo=function(f,e,d){if(typeof e=="object"){d=e;e=0}if(typeof d=="function"){d={onAfter:d}}if(f=="max"){f=9000000000}d=c.extend({},a.defaults,d);e=e||d.speed||d.duration;d.queue=d.queue&&d.axis.length>1;if(d.queue){e/=2}d.offset=b(d.offset);d.over=b(d.over);return this._scrollable().each(function(){var l=this,j=c(l),k=f,i,g={},m=j.is("html,body");switch(typeof k){case"number":case"string":if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(k)){k=b(k);break}k=c(k,this);case"object":if(k.is||k.style){i=(k=c(k)).offset()}}c.each(d.axis.split(""),function(q,r){var s=r=="x"?"Left":"Top",u=s.toLowerCase(),p="scroll"+s,o=l[p],n=a.max(l,r);if(i){g[p]=i[u]+(m?0:o-j.offset()[u]);if(d.margin){g[p]-=parseInt(k.css("margin"+s))||0;g[p]-=parseInt(k.css("border"+s+"Width"))||0}g[p]+=d.offset[u]||0;if(d.over[u]){g[p]+=k[r=="x"?"width":"height"]()*d.over[u]}}else{var t=k[u];g[p]=t.slice&&t.slice(-1)=="%"?parseFloat(t)/100*n:t}if(/^\d+$/.test(g[p])){g[p]=g[p]<=0?0:Math.min(g[p],n)}if(!q&&d.queue){if(o!=g[p]){h(d.onAfterFirst)}delete g[p]}});h(d.onAfter);function h(n){j.animate(g,e,d.easing,n&&function(){n.call(this,f,d)})}}).end()};a.max=function(j,i){var h=i=="x"?"Width":"Height",e="scroll"+h;if(!c(j).is("html,body")){return j[e]-c(j)[h.toLowerCase()]()}var g="client"+h,f=j.ownerDocument.documentElement,d=j.ownerDocument.body;return Math.max(f[e],d[e])-Math.min(f[g],d[g])};function b(d){return typeof d=="object"?d:{top:d,left:d}}})(jQuery);/*!
+ PowerTip - v1.2.0 - 2013-04-03
+ http://stevenbenner.github.com/jquery-powertip/
+ Copyright (c) 2013 Steven Benner (http://stevenbenner.com/).
+ Released under MIT license.
+ https://raw.github.com/stevenbenner/jquery-powertip/master/LICENSE.txt
+*/
+(function(a){if(typeof define==="function"&&define.amd){define(["jquery"],a)}else{a(jQuery)}}(function(k){var A=k(document),s=k(window),w=k("body");var n="displayController",e="hasActiveHover",d="forcedOpen",u="hasMouseMove",f="mouseOnToPopup",g="originalTitle",y="powertip",o="powertipjq",l="powertiptarget",E=180/Math.PI;var c={isTipOpen:false,isFixedTipOpen:false,isClosing:false,tipOpenImminent:false,activeHover:null,currentX:0,currentY:0,previousX:0,previousY:0,desyncTimeout:null,mouseTrackingActive:false,delayInProgress:false,windowWidth:0,windowHeight:0,scrollTop:0,scrollLeft:0};var p={none:0,top:1,bottom:2,left:4,right:8};k.fn.powerTip=function(F,N){if(!this.length){return this}if(k.type(F)==="string"&&k.powerTip[F]){return k.powerTip[F].call(this,this,N)}var O=k.extend({},k.fn.powerTip.defaults,F),G=new x(O);h();this.each(function M(){var R=k(this),Q=R.data(y),P=R.data(o),T=R.data(l),S;if(R.data(n)){k.powerTip.destroy(R)}S=R.attr("title");if(!Q&&!T&&!P&&S){R.data(y,S);R.data(g,S);R.removeAttr("title")}R.data(n,new t(R,O,G))});if(!O.manual){this.on({"mouseenter.powertip":function J(P){k.powerTip.show(this,P)},"mouseleave.powertip":function L(){k.powerTip.hide(this)},"focus.powertip":function K(){k.powerTip.show(this)},"blur.powertip":function H(){k.powerTip.hide(this,true)},"keydown.powertip":function I(P){if(P.keyCode===27){k.powerTip.hide(this,true)}}})}return this};k.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false};k.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};k.powerTip={show:function z(F,G){if(G){i(G);c.previousX=G.pageX;c.previousY=G.pageY;k(F).data(n).show()}else{k(F).first().data(n).show(true,true)}return F},reposition:function r(F){k(F).first().data(n).resetPosition();return F},hide:function D(G,F){if(G){k(G).first().data(n).hide(F)}else{if(c.activeHover){c.activeHover.data(n).hide(true)}}return G},destroy:function C(G){k(G).off(".powertip").each(function F(){var I=k(this),H=[g,n,e,d];if(I.data(g)){I.attr("title",I.data(g));H.push(y)}I.removeData(H)});return G}};k.powerTip.showTip=k.powerTip.show;k.powerTip.closeTip=k.powerTip.hide;function b(){var F=this;F.top="auto";F.left="auto";F.right="auto";F.bottom="auto";F.set=function(H,G){if(k.isNumeric(G)){F[H]=Math.round(G)}}}function t(K,N,F){var J=null;function L(P,Q){M();if(!K.data(e)){if(!P){c.tipOpenImminent=true;J=setTimeout(function O(){J=null;I()},N.intentPollInterval)}else{if(Q){K.data(d,true)}F.showTip(K)}}}function G(P){M();c.tipOpenImminent=false;if(K.data(e)){K.data(d,false);if(!P){c.delayInProgress=true;J=setTimeout(function O(){J=null;F.hideTip(K);c.delayInProgress=false},N.closeDelay)}else{F.hideTip(K)}}}function I(){var Q=Math.abs(c.previousX-c.currentX),O=Math.abs(c.previousY-c.currentY),P=Q+O;if(P<N.intentSensitivity){F.showTip(K)}else{c.previousX=c.currentX;c.previousY=c.currentY;L()}}function M(){J=clearTimeout(J);c.delayInProgress=false}function H(){F.resetPosition(K)}this.show=L;this.hide=G;this.cancel=M;this.resetPosition=H}function j(){function G(M,L,J,O,P){var K=L.split("-")[0],N=new b(),I;if(q(M)){I=H(M,K)}else{I=F(M,K)}switch(L){case"n":N.set("left",I.left-(J/2));N.set("bottom",c.windowHeight-I.top+P);break;case"e":N.set("left",I.left+P);N.set("top",I.top-(O/2));break;case"s":N.set("left",I.left-(J/2));N.set("top",I.top+P);break;case"w":N.set("top",I.top-(O/2));N.set("right",c.windowWidth-I.left+P);break;case"nw":N.set("bottom",c.windowHeight-I.top+P);N.set("right",c.windowWidth-I.left-20);break;case"nw-alt":N.set("left",I.left);N.set("bottom",c.windowHeight-I.top+P);break;case"ne":N.set("left",I.left-20);N.set("bottom",c.windowHeight-I.top+P);break;case"ne-alt":N.set("bottom",c.windowHeight-I.top+P);N.set("right",c.windowWidth-I.left);break;case"sw":N.set("top",I.top+P);N.set("right",c.windowWidth-I.left-20);break;case"sw-alt":N.set("left",I.left);N.set("top",I.top+P);break;case"se":N.set("left",I.left-20);N.set("top",I.top+P);break;case"se-alt":N.set("top",I.top+P);N.set("right",c.windowWidth-I.left);break}return N}function F(K,J){var O=K.offset(),N=K.outerWidth(),I=K.outerHeight(),M,L;switch(J){case"n":M=O.left+N/2;L=O.top;break;case"e":M=O.left+N;L=O.top+I/2;break;case"s":M=O.left+N/2;L=O.top+I;break;case"w":M=O.left;L=O.top+I/2;break;case"nw":M=O.left;L=O.top;break;case"ne":M=O.left+N;L=O.top;break;case"sw":M=O.left;L=O.top+I;break;case"se":M=O.left+N;L=O.top+I;break}return{top:L,left:M}}function H(O,K){var S=O.closest("svg")[0],N=O[0],W=S.createSVGPoint(),L=N.getBBox(),V=N.getScreenCTM(),M=L.width/2,Q=L.height/2,P=[],I=["nw","n","ne","e","se","s","sw","w"],U,X,R,T;function J(){P.push(W.matrixTransform(V))}W.x=L.x;W.y=L.y;J();W.x+=M;J();W.x+=M;J();W.y+=Q;J();W.y+=Q;J();W.x-=M;J();W.x-=M;J();W.y-=Q;J();if(P[0].y!==P[1].y||P[0].x!==P[7].x){X=Math.atan2(V.b,V.a)*E;R=Math.ceil(((X%360)-22.5)/45);if(R<1){R+=8}while(R--){I.push(I.shift())}}for(T=0;T<P.length;T++){if(I[T]===K){U=P[T];break}}return{top:U.y+c.scrollTop,left:U.x+c.scrollLeft}}this.compute=G}function x(Q){var P=new j(),O=k("#"+Q.popupId);if(O.length===0){O=k("<div/>",{id:Q.popupId});if(w.length===0){w=k("body")}w.append(O)}if(Q.followMouse){if(!O.data(u)){A.on("mousemove",M);s.on("scroll",M);O.data(u,true)}}if(Q.mouseOnToPopup){O.on({mouseenter:function L(){if(O.data(f)){if(c.activeHover){c.activeHover.data(n).cancel()}}},mouseleave:function N(){if(c.activeHover){c.activeHover.data(n).hide()}}})}function I(S){S.data(e,true);O.queue(function R(T){H(S);T()})}function H(S){var U;if(!S.data(e)){return}if(c.isTipOpen){if(!c.isClosing){K(c.activeHover)}O.delay(100).queue(function R(V){H(S);V()});return}S.trigger("powerTipPreRender");U=B(S);if(U){O.empty().append(U)}else{return}S.trigger("powerTipRender");c.activeHover=S;c.isTipOpen=true;O.data(f,Q.mouseOnToPopup);if(!Q.followMouse){G(S);c.isFixedTipOpen=true}else{M()}O.fadeIn(Q.fadeInTime,function T(){if(!c.desyncTimeout){c.desyncTimeout=setInterval(J,500)}S.trigger("powerTipOpen")})}function K(R){c.isClosing=true;c.activeHover=null;c.isTipOpen=false;c.desyncTimeout=clearInterval(c.desyncTimeout);R.data(e,false);R.data(d,false);O.fadeOut(Q.fadeOutTime,function S(){var T=new b();c.isClosing=false;c.isFixedTipOpen=false;O.removeClass();T.set("top",c.currentY+Q.offset);T.set("left",c.currentX+Q.offset);O.css(T);R.trigger("powerTipClose")})}function M(){if(!c.isFixedTipOpen&&(c.isTipOpen||(c.tipOpenImminent&&O.data(u)))){var R=O.outerWidth(),V=O.outerHeight(),U=new b(),S,T;U.set("top",c.currentY+Q.offset);U.set("left",c.currentX+Q.offset);S=m(U,R,V);if(S!==p.none){T=a(S);if(T===1){if(S===p.right){U.set("left",c.windowWidth-R)}else{if(S===p.bottom){U.set("top",c.scrollTop+c.windowHeight-V)}}}else{U.set("left",c.currentX-R-Q.offset);U.set("top",c.currentY-V-Q.offset)}}O.css(U)}}function G(S){var R,T;if(Q.smartPlacement){R=k.fn.powerTip.smartPlacementLists[Q.placement];k.each(R,function(U,W){var V=m(F(S,W),O.outerWidth(),O.outerHeight());T=W;if(V===p.none){return false}})}else{F(S,Q.placement);T=Q.placement}O.addClass(T)}function F(U,T){var R=0,S,W,V=new b();V.set("top",0);V.set("left",0);O.css(V);do{S=O.outerWidth();W=O.outerHeight();V=P.compute(U,T,S,W,Q.offset);O.css(V)}while(++R<=5&&(S!==O.outerWidth()||W!==O.outerHeight()));return V}function J(){var R=false;if(c.isTipOpen&&!c.isClosing&&!c.delayInProgress){if(c.activeHover.data(e)===false||c.activeHover.is(":disabled")){R=true}else{if(!v(c.activeHover)&&!c.activeHover.is(":focus")&&!c.activeHover.data(d)){if(O.data(f)){if(!v(O)){R=true}}else{R=true}}}if(R){K(c.activeHover)}}}this.showTip=I;this.hideTip=K;this.resetPosition=G}function q(F){return window.SVGElement&&F[0] instanceof SVGElement}function h(){if(!c.mouseTrackingActive){c.mouseTrackingActive=true;k(function H(){c.scrollLeft=s.scrollLeft();c.scrollTop=s.scrollTop();c.windowWidth=s.width();c.windowHeight=s.height()});A.on("mousemove",i);s.on({resize:function G(){c.windowWidth=s.width();c.windowHeight=s.height()},scroll:function F(){var I=s.scrollLeft(),J=s.scrollTop();if(I!==c.scrollLeft){c.currentX+=I-c.scrollLeft;c.scrollLeft=I}if(J!==c.scrollTop){c.currentY+=J-c.scrollTop;c.scrollTop=J}}})}}function i(F){c.currentX=F.pageX;c.currentY=F.pageY}function v(F){var H=F.offset(),J=F[0].getBoundingClientRect(),I=J.right-J.left,G=J.bottom-J.top;return c.currentX>=H.left&&c.currentX<=H.left+I&&c.currentY>=H.top&&c.currentY<=H.top+G}function B(I){var G=I.data(y),F=I.data(o),K=I.data(l),H,J;if(G){if(k.isFunction(G)){G=G.call(I[0])}J=G}else{if(F){if(k.isFunction(F)){F=F.call(I[0])}if(F.length>0){J=F.clone(true,true)}}else{if(K){H=k("#"+K);if(H.length>0){J=H.html()}}}}return J}function m(M,L,K){var G=c.scrollTop,J=c.scrollLeft,I=G+c.windowHeight,F=J+c.windowWidth,H=p.none;if(M.top<G||Math.abs(M.bottom-c.windowHeight)-K<G){H|=p.top}if(M.top+K>I||Math.abs(M.bottom-c.windowHeight)>I){H|=p.bottom}if(M.left<J||M.right+L>F){H|=p.left}if(M.left+L>F||M.right<J){H|=p.right}return H}function a(G){var F=0;while(G){G&=G-1;F++}return F}})); \ No newline at end of file
diff --git a/docs/API/namespaceAdobeXMPCommon.html b/docs/API/namespaceAdobeXMPCommon.html
new file mode 100755
index 0000000..8ddb7e3
--- /dev/null
+++ b/docs/API/namespaceAdobeXMPCommon.html
@@ -0,0 +1,1741 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>AdobeXMPCommon Namespace Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
+ <li><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('namespaceAdobeXMPCommon.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">AdobeXMPCommon Namespace Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">IConfigurable</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface that allows to attach various key-value parameters to the underlying object. <a href="classAdobeXMPCommon_1_1IConfigurable.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html">IConfigurationManager_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version1 of the interface that represents configuration settings controllable by the client. <a href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IConfigurationManagerProxy.html">IConfigurationManagerProxy</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">IError_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version1 of the interface that represents an error/warning encountered during processing. <a href="classAdobeXMPCommon_1_1IError__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IErrorNotifier__v1.html">IErrorNotifier_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version1 of the interface that represents an interface to be implemented by client in case he is interested in getting notifications with respect to errors/warnings encountered by library. <a href="classAdobeXMPCommon_1_1IErrorNotifier__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html">IMemoryAllocator_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version1 of the interface that represents an interface to be implemented by client in case he is interested in controlling the memory allocation and deallocation on the heap. <a href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html">IObjectFactory_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version1 of a interface that represents a factory to create various artifacts defined within <a class="el" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a> namespace. <a href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">ISharedObject</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface that serves as the base interface of all the externally exposed interfaces. <a href="classAdobeXMPCommon_1_1ISharedObject.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">IThreadSafe</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface that serves as the base interface for all the externally exposed interfaces which needs to provide client configurable thread safety. <a href="classAdobeXMPCommon_1_1IThreadSafe.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">IUTF8String_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version1 of the interface that represents an UTF8String. <a href="classAdobeXMPCommon_1_1IUTF8String__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">IVersionable</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface that serves as the base interface for all the externally exposed interfaces which needs to provide evolving versions of the interface. <a href="classAdobeXMPCommon_1_1IVersionable.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html">ReportErrorAndContinueFunctor</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A Function object used by the client to report back and warnings to the library encountered during the serialization operation. <a href="classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:a8dc9ba4ce78a957c0843998c2468241a"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a8dc9ba4ce78a957c0843998c2468241a">ReportErrorAndContinueABISafeProc</a>) (<a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> errorDomain, <a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> errorCode, <a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> errorSeverity, const char *message, <a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;error)</td></tr>
+<tr class="memdesc:a8dc9ba4ce78a957c0843998c2468241a"><td class="mdescLeft">&#160;</td><td class="mdescRight">A function pointer to report back errors and warnings to the library encountered during the serialization operation. <a href="#a8dc9ba4ce78a957c0843998c2468241a">More...</a><br /></td></tr>
+<tr class="separator:a8dc9ba4ce78a957c0843998c2468241a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aee4f68e01de51c2cf1c1044ecafebc25"><td class="memItemLeft" align="right" valign="top">typedef XMP_Int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#aee4f68e01de51c2cf1c1044ecafebc25">int64</a></td></tr>
+<tr class="separator:aee4f68e01de51c2cf1c1044ecafebc25"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aea1d692da07b844d1f642b47ea6a91bd"><td class="memItemLeft" align="right" valign="top">typedef XMP_Uns64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a></td></tr>
+<tr class="separator:aea1d692da07b844d1f642b47ea6a91bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a070d4ea981e6080468e9a3cdbd82b458"><td class="memItemLeft" align="right" valign="top">typedef XMP_Int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a070d4ea981e6080468e9a3cdbd82b458">int32</a></td></tr>
+<tr class="separator:a070d4ea981e6080468e9a3cdbd82b458"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0b1bbe96e1a757e66974c2f076afe4d2"><td class="memItemLeft" align="right" valign="top">typedef XMP_Uns32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a></td></tr>
+<tr class="separator:a0b1bbe96e1a757e66974c2f076afe4d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1c85c2f558b495c3d41eabe692a96cf2"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a></td></tr>
+<tr class="separator:a1c85c2f558b495c3d41eabe692a96cf2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab59e650373a5efadfbfd2486313258a6"><td class="memItemLeft" align="right" valign="top">typedef void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#ab59e650373a5efadfbfd2486313258a6">pvoid</a></td></tr>
+<tr class="separator:ab59e650373a5efadfbfd2486313258a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a19692335f9547f4bc07d0ff727f14605"><td class="memItemLeft" align="right" valign="top">typedef const void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a19692335f9547f4bc07d0ff727f14605">pcvoid</a></td></tr>
+<tr class="separator:a19692335f9547f4bc07d0ff727f14605"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a28d3e703084f75a411ece4bb7b22fdd4"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; void &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a28d3e703084f75a411ece4bb7b22fdd4">spvoid</a></td></tr>
+<tr class="separator:a28d3e703084f75a411ece4bb7b22fdd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a93bf79ca806273dc229d940504654caa"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const void * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a93bf79ca806273dc229d940504654caa">spcvoid</a></td></tr>
+<tr class="separator:a93bf79ca806273dc229d940504654caa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a25f44f5d5e5c651d20124037a7c3b5c3"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html">IObjectFactory_v1</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a25f44f5d5e5c651d20124037a7c3b5c3">IObjectFactory_base</a></td></tr>
+<tr class="separator:a25f44f5d5e5c651d20124037a7c3b5c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adb1552a01da782d3f1c5ff00e49f48f8"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html">IObjectFactory_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#adb1552a01da782d3f1c5ff00e49f48f8">pIObjectFactory_base</a></td></tr>
+<tr class="separator:adb1552a01da782d3f1c5ff00e49f48f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8d7232279921e3ccaa69fe314052415b"><td class="memItemLeft" align="right" valign="top">typedef const <a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html">IObjectFactory_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a8d7232279921e3ccaa69fe314052415b">pcIObjectFactory_base</a></td></tr>
+<tr class="separator:a8d7232279921e3ccaa69fe314052415b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0863cf1c24764306839671985373b93f"><td class="memItemLeft" align="right" valign="top">typedef IObjectFactory *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a0863cf1c24764306839671985373b93f">pIObjectFactory</a></td></tr>
+<tr class="separator:a0863cf1c24764306839671985373b93f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a272e32106a7573db514736bfb68a1673"><td class="memItemLeft" align="right" valign="top">typedef const IObjectFactory *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a272e32106a7573db514736bfb68a1673">pcIObjectFactory</a></td></tr>
+<tr class="separator:a272e32106a7573db514736bfb68a1673"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5f4d698bf8beb5f6604b61aa1362d2c6"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">IError_v1</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a5f4d698bf8beb5f6604b61aa1362d2c6">IError_base</a></td></tr>
+<tr class="separator:a5f4d698bf8beb5f6604b61aa1362d2c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4e907810e5d5937b974343d279e0181d"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">IError_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a4e907810e5d5937b974343d279e0181d">pIError_base</a></td></tr>
+<tr class="separator:a4e907810e5d5937b974343d279e0181d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae3cc983230819089dc742273902228c5"><td class="memItemLeft" align="right" valign="top">typedef const <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">IError_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a></td></tr>
+<tr class="separator:ae3cc983230819089dc742273902228c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac0db32de8e6a3688ad0dfc36c2757fb4"><td class="memItemLeft" align="right" valign="top">typedef IError *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#ac0db32de8e6a3688ad0dfc36c2757fb4">pIError</a></td></tr>
+<tr class="separator:ac0db32de8e6a3688ad0dfc36c2757fb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0e0c89c232b777fb332e0ddc10b65fc2"><td class="memItemLeft" align="right" valign="top">typedef const IError *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a0e0c89c232b777fb332e0ddc10b65fc2">pcIError</a></td></tr>
+<tr class="separator:a0e0c89c232b777fb332e0ddc10b65fc2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adb05c7ceec43360b84aee536612151f9"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; IError &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#adb05c7ceec43360b84aee536612151f9">spIError</a></td></tr>
+<tr class="separator:adb05c7ceec43360b84aee536612151f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3f0de5ba5753a56896f2941927b23560"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const IError &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a3f0de5ba5753a56896f2941927b23560">spcIError</a></td></tr>
+<tr class="separator:a3f0de5ba5753a56896f2941927b23560"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a169532f774f2b1f3d8501e896d6f1957"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">IUTF8String_v1</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a169532f774f2b1f3d8501e896d6f1957">IUTF8String_base</a></td></tr>
+<tr class="separator:a169532f774f2b1f3d8501e896d6f1957"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0430b250dd00621dcb9f32a3acb87b7f"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">IUTF8String_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a0430b250dd00621dcb9f32a3acb87b7f">pIUTF8String_base</a></td></tr>
+<tr class="separator:a0430b250dd00621dcb9f32a3acb87b7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a34ccf48e077c7308540d98149a4a8b2b"><td class="memItemLeft" align="right" valign="top">typedef const <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">IUTF8String_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a34ccf48e077c7308540d98149a4a8b2b">pcIUTF8String_base</a></td></tr>
+<tr class="separator:a34ccf48e077c7308540d98149a4a8b2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a27ba1868ebc552bef10fe156bd4e340b"><td class="memItemLeft" align="right" valign="top">typedef IUTF8String *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a27ba1868ebc552bef10fe156bd4e340b">pIUTF8String</a></td></tr>
+<tr class="separator:a27ba1868ebc552bef10fe156bd4e340b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa9b2c45fd472c6e0e322a94c87e36e23"><td class="memItemLeft" align="right" valign="top">typedef const IUTF8String *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#aa9b2c45fd472c6e0e322a94c87e36e23">pcIUTF8String</a></td></tr>
+<tr class="separator:aa9b2c45fd472c6e0e322a94c87e36e23"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac9d7760a1805b1e28828511a2c8c5588"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; IUTF8String &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a></td></tr>
+<tr class="separator:ac9d7760a1805b1e28828511a2c8c5588"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a91aaab1f1d7030b26df65258bd131a63"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const IUTF8String &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a></td></tr>
+<tr class="separator:a91aaab1f1d7030b26df65258bd131a63"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae79591aae25236208281cd3e48a2483d"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html">IMemoryAllocator_v1</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#ae79591aae25236208281cd3e48a2483d">IMemoryAllocator_base</a></td></tr>
+<tr class="separator:ae79591aae25236208281cd3e48a2483d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aff75b5c835a8eb072072be6b404aa0d5"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html">IMemoryAllocator_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#aff75b5c835a8eb072072be6b404aa0d5">pIMemoryAllocator_base</a></td></tr>
+<tr class="separator:aff75b5c835a8eb072072be6b404aa0d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a42a89fb94134c8eaed66765f2975b3f9"><td class="memItemLeft" align="right" valign="top">typedef const <a class="el" href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html">IMemoryAllocator_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a42a89fb94134c8eaed66765f2975b3f9">pcIMemoryAllocator_base</a></td></tr>
+<tr class="separator:a42a89fb94134c8eaed66765f2975b3f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a605dcb5281a71a01673c81e6508f932f"><td class="memItemLeft" align="right" valign="top">typedef IMemoryAllocator *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a605dcb5281a71a01673c81e6508f932f">pIMemoryAllocator</a></td></tr>
+<tr class="separator:a605dcb5281a71a01673c81e6508f932f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af5a7d4d78400043e3e49dfa6a2725abb"><td class="memItemLeft" align="right" valign="top">typedef const IMemoryAllocator *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#af5a7d4d78400043e3e49dfa6a2725abb">pcIMemoryAllocator</a></td></tr>
+<tr class="separator:af5a7d4d78400043e3e49dfa6a2725abb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9423cafa21356df5d02adf7a94f4e4b0"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; IMemoryAllocator &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a9423cafa21356df5d02adf7a94f4e4b0">spIMemoryAllocator</a></td></tr>
+<tr class="separator:a9423cafa21356df5d02adf7a94f4e4b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a183fc5e814bdad0ddf9946ddc35c307a"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const IMemoryAllocator &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a183fc5e814bdad0ddf9946ddc35c307a">spcIMemoryAllocator</a></td></tr>
+<tr class="separator:a183fc5e814bdad0ddf9946ddc35c307a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a692c91c0b558cbc476e43e7f0a9112e0"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCommon_1_1IErrorNotifier__v1.html">IErrorNotifier_v1</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a692c91c0b558cbc476e43e7f0a9112e0">IErrorNotifier_base</a></td></tr>
+<tr class="separator:a692c91c0b558cbc476e43e7f0a9112e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4ad7bda9e1289b0bb93510402b6e86f9"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCommon_1_1IErrorNotifier__v1.html">IErrorNotifier_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a4ad7bda9e1289b0bb93510402b6e86f9">pIErrorNotifier_base</a></td></tr>
+<tr class="separator:a4ad7bda9e1289b0bb93510402b6e86f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a15919ce22d7dc4def5a590f0dbb882ca"><td class="memItemLeft" align="right" valign="top">typedef const <a class="el" href="classAdobeXMPCommon_1_1IErrorNotifier__v1.html">IErrorNotifier_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a15919ce22d7dc4def5a590f0dbb882ca">pcIErrorNotifier_base</a></td></tr>
+<tr class="separator:a15919ce22d7dc4def5a590f0dbb882ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9981f3ca088023224e80dbad05090f3c"><td class="memItemLeft" align="right" valign="top">typedef IErrorNotifier *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a9981f3ca088023224e80dbad05090f3c">pIErrorNotifier</a></td></tr>
+<tr class="separator:a9981f3ca088023224e80dbad05090f3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa4baade1a8eb0dbb544860e0c89362f8"><td class="memItemLeft" align="right" valign="top">typedef const IErrorNotifier *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#aa4baade1a8eb0dbb544860e0c89362f8">pcIErrorNotifier</a></td></tr>
+<tr class="separator:aa4baade1a8eb0dbb544860e0c89362f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4d5b76921b44568978986a81d2c19336"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; IErrorNotifier &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a4d5b76921b44568978986a81d2c19336">spIErrorNotifier</a></td></tr>
+<tr class="separator:a4d5b76921b44568978986a81d2c19336"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4eeee081576f932942082744eb05456c"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const IErrorNotifier &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a4eeee081576f932942082744eb05456c">spcIErrorNotifier</a></td></tr>
+<tr class="separator:a4eeee081576f932942082744eb05456c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab6a71f81b4e3c8e5d2d0c90f82fbee08"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html">IConfigurationManager_v1</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#ab6a71f81b4e3c8e5d2d0c90f82fbee08">IConfigurationManager_base</a></td></tr>
+<tr class="separator:ab6a71f81b4e3c8e5d2d0c90f82fbee08"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a20fcfcaa614eba9a9fcdf2353b82fdb7"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html">IConfigurationManager_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a20fcfcaa614eba9a9fcdf2353b82fdb7">pIConfigurationManager_base</a></td></tr>
+<tr class="separator:a20fcfcaa614eba9a9fcdf2353b82fdb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a39556e80a6bda05757b7f2766ddc2ba1"><td class="memItemLeft" align="right" valign="top">typedef const <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html">IConfigurationManager_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a39556e80a6bda05757b7f2766ddc2ba1">pcIConfigurationManager_base</a></td></tr>
+<tr class="separator:a39556e80a6bda05757b7f2766ddc2ba1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a66f57b67d8be6cbf836ad084a3d27d76"><td class="memItemLeft" align="right" valign="top">typedef IConfigurationManager *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a66f57b67d8be6cbf836ad084a3d27d76">pIConfigurationManager</a></td></tr>
+<tr class="separator:a66f57b67d8be6cbf836ad084a3d27d76"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2a6831c5d17f5c9990c01268f67b7bb2"><td class="memItemLeft" align="right" valign="top">typedef const IConfigurationManager *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a2a6831c5d17f5c9990c01268f67b7bb2">pcIConfigurationManager</a></td></tr>
+<tr class="separator:a2a6831c5d17f5c9990c01268f67b7bb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4ebcc3c8cb04d7593dc3250aa720f0d4"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; IConfigurationManager &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a4ebcc3c8cb04d7593dc3250aa720f0d4">spIConfigurationManager</a></td></tr>
+<tr class="separator:a4ebcc3c8cb04d7593dc3250aa720f0d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abe53a5a98ec0d2d6ce76d1d820794177"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const IConfigurationManager &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#abe53a5a98ec0d2d6ce76d1d820794177">spcIConfigurationManager</a></td></tr>
+<tr class="separator:abe53a5a98ec0d2d6ce76d1d820794177"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9befc7ddfe5977c8176eed763d9ce69e"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">IConfigurable</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a9befc7ddfe5977c8176eed763d9ce69e">pIConfigurable</a></td></tr>
+<tr class="separator:a9befc7ddfe5977c8176eed763d9ce69e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a394d772cfe78f1dbeba6059e7a3c65d6"><td class="memItemLeft" align="right" valign="top">typedef const <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">IConfigurable</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a394d772cfe78f1dbeba6059e7a3c65d6">pcIConfigurable</a></td></tr>
+<tr class="separator:a394d772cfe78f1dbeba6059e7a3c65d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac82ab59bdaecb219834ac2ff81573414"><td class="memItemLeft" align="right" valign="top">typedef std::vector&lt; <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#ac82ab59bdaecb219834ac2ff81573414">IUTF8Strings</a></td></tr>
+<tr class="separator:ac82ab59bdaecb219834ac2ff81573414"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aae5dbe164f71188aa24c87fa6306539a"><td class="memItemLeft" align="right" valign="top">typedef std::vector&lt; <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#aae5dbe164f71188aa24c87fa6306539a">cIUTF8Strings</a></td></tr>
+<tr class="separator:aae5dbe164f71188aa24c87fa6306539a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5f4ff8126658f07efbc881778bfea430"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; <a class="el" href="namespaceAdobeXMPCommon.html#ac82ab59bdaecb219834ac2ff81573414">IUTF8Strings</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a5f4ff8126658f07efbc881778bfea430">spIUTF8Strings</a></td></tr>
+<tr class="separator:a5f4ff8126658f07efbc881778bfea430"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a181114a44f34efda2d8b4cb98446de86"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; <a class="el" href="namespaceAdobeXMPCommon.html#aae5dbe164f71188aa24c87fa6306539a">cIUTF8Strings</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a181114a44f34efda2d8b4cb98446de86">spcIUTF8Strings</a></td></tr>
+<tr class="separator:a181114a44f34efda2d8b4cb98446de86"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab4410cb115c4e0fa0800ab6ebf21abf7"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const <a class="el" href="namespaceAdobeXMPCommon.html#ac82ab59bdaecb219834ac2ff81573414">IUTF8Strings</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#ab4410cb115c4e0fa0800ab6ebf21abf7">spIUTF8Strings_const</a></td></tr>
+<tr class="separator:ab4410cb115c4e0fa0800ab6ebf21abf7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeea9f5dbdf44fd5382b0ca50dda8f2cf"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const <a class="el" href="namespaceAdobeXMPCommon.html#aae5dbe164f71188aa24c87fa6306539a">cIUTF8Strings</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#aeea9f5dbdf44fd5382b0ca50dda8f2cf">spcIUTF8Strings_const</a></td></tr>
+<tr class="separator:aeea9f5dbdf44fd5382b0ca50dda8f2cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6ddf5efa8f9b686e5d7fef41d6b10096"><td class="memItemLeft" align="right" valign="top">typedef void *(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a6ddf5efa8f9b686e5d7fef41d6b10096">MemAllocateProc</a>) (<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> sz)</td></tr>
+<tr class="memdesc:a6ddf5efa8f9b686e5d7fef41d6b10096"><td class="mdescLeft">&#160;</td><td class="mdescRight">A function pointer to get the memory allocated from the library. <a href="#a6ddf5efa8f9b686e5d7fef41d6b10096">More...</a><br /></td></tr>
+<tr class="separator:a6ddf5efa8f9b686e5d7fef41d6b10096"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a79edf1f9139609bf6ed70b24cc99a2e0"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a79edf1f9139609bf6ed70b24cc99a2e0">MemReleaseProc</a>) (void *ptr)</td></tr>
+<tr class="memdesc:a79edf1f9139609bf6ed70b24cc99a2e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">A function pointer to get the memory freed from the library. <a href="#a79edf1f9139609bf6ed70b24cc99a2e0">More...</a><br /></td></tr>
+<tr class="separator:a79edf1f9139609bf6ed70b24cc99a2e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:a8f3cda4a2111f1fccbcc182ca1cf5b14"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14">eGeneralErrorCode</a> { <br />
+&#160;&#160;<a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac9bbc6373eb1432da67162e2d3d8ba00">kGECNone</a> = 0,
+<a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac8114fd7fafcae7a7d13793cf32f84e4">kGECParametersNotAsExpected</a> = 1,
+<a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac4d59c9d462932453e1e5b96efce4beb">kGECVersionUnavailable</a> = 2,
+<a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac7ad8bab8d1d8f890d26a13076730473">kGECAssertionFailure</a> = 3,
+<br />
+&#160;&#160;<a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a99ed4bfb1b57eea7e5ed9cdd6f63bb88">kGECLogicalError</a> = 4,
+<a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a4d0d8c80b3932d6160a3117979cf59c7">kGECIndexOutOfBounds</a> = 5,
+<a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aa85fc48596da99b5ac6ec775c5e9d4f1">kGECInternalFailure</a> = 6,
+<a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a34f838480c145031638141ea204b9436">kGECDeprecatedFunctionCall</a> = 7,
+<br />
+&#160;&#160;<a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aa089e0cea5a0b9fb19ed39c8d53ea624">kGECExternalFailure</a> = 8,
+<a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ae5d6719cf38299f4f4bf170467c5e977">kGECUnknownFailure</a> = 9,
+<a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aabc494bfa6cc5c42f4d6203a419943fe">kGECUserAbort</a> = 10,
+<a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14af605e8ceabdf52ced8bf1a2961041719">kGECInterfaceUnavailable</a> = 11,
+<br />
+&#160;&#160;<a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a84f703a7e6aed295b04266ba33e382db">kGECClientThrownExceptionCaught</a> = 100,
+<a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ab6be1e47808269e89bff9854599179f0">kGECStandardException</a> = 101,
+<a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a1ec371ab7db9ac473a04755491b4d996">kGECUnknownExceptionCaught</a> = 200,
+<a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a38faaba6657c0fab6d51f2e7807ab560">kGECNotImplemented</a> = 10000,
+<br />
+&#160;&#160;<a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aa3bc0d5f5b5bae142630473abaee9f1f">kGECMaxValue</a> = kMaxEnumValue
+<br />
+ }<tr class="memdesc:a8f3cda4a2111f1fccbcc182ca1cf5b14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates various types of error codes within General Domain. <a href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:a8f3cda4a2111f1fccbcc182ca1cf5b14"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aba59dd1cfea0b1759617fc53108d92af"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#aba59dd1cfea0b1759617fc53108d92af">eMemoryManagementErrorCode</a> { <a class="el" href="namespaceAdobeXMPCommon.html#aba59dd1cfea0b1759617fc53108d92afa2c2fba02472378e6f5621fa89f662754">kMMECNone</a> = 0,
+<a class="el" href="namespaceAdobeXMPCommon.html#aba59dd1cfea0b1759617fc53108d92afa2bbd2fba1abe18a0abbeeb04276fa5d7">kMMECAllocationFailure</a> = 1,
+<a class="el" href="namespaceAdobeXMPCommon.html#aba59dd1cfea0b1759617fc53108d92afa6c3458ee055e89d620fe6f9941658564">kMMECMaxValue</a> = kMaxEnumValue
+ }<tr class="memdesc:aba59dd1cfea0b1759617fc53108d92af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates various types of error codes within Memory Management domain. <a href="namespaceAdobeXMPCommon.html#aba59dd1cfea0b1759617fc53108d92af">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:aba59dd1cfea0b1759617fc53108d92af"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a87fa911f1ea5a79801b7fe3530637c42"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42">eConfigurableErrorCode</a> { <br />
+&#160;&#160;<a class="el" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a48a521a6e08fd24bef691efb926189f4">kCECNone</a> = 0,
+<a class="el" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a78a9ef459e114b9e66dbd431d47e367f">kCECKeyNotSupported</a> = 1,
+<a class="el" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a318281c6e6734794b732505f77ed7e1e">kCECValueTypeNotSupported</a> = 2,
+<a class="el" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a9459b3f1895defa4a14e42f0d7c44c64">kCECPreviousTypeDifferent</a> = 3,
+<br />
+&#160;&#160;<a class="el" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42ad00affae57206343bb1a2cbfd64a7727">kCECValueTypeMismatch</a> = 4,
+<a class="el" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a4a285133844f12c9db30cac96272ca99">kCECValueNotSupported</a> = 5,
+<a class="el" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a2da955fac9fd8e3e44105ee827c8bca8">kCECodeMaxValue</a> = 0xFFFFFFFF
+<br />
+ }<tr class="memdesc:a87fa911f1ea5a79801b7fe3530637c42"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates various types of error codes within Configurable domain. <a href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:a87fa911f1ea5a79801b7fe3530637c42"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a509d67aa4eb5b6a31db63f448d2a2343"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a509d67aa4eb5b6a31db63f448d2a2343">kMaxSize</a> ((<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>)-1)</td></tr>
+<tr class="separator:a509d67aa4eb5b6a31db63f448d2a2343"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc1bfa88991003b305ab5023b483d3f9"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">npos</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a509d67aa4eb5b6a31db63f448d2a2343">kMaxSize</a>)</td></tr>
+<tr class="separator:afc1bfa88991003b305ab5023b483d3f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8ec7e2a77ea452c3d46bb7dbbc722574"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a8ec7e2a77ea452c3d46bb7dbbc722574">kMaxEnumValue</a> (<a class="el" href="XMP__Const_8h.html#adc36ebc09374b4400ebc68df37a5abad">Max_XMP_Uns32</a>)</td></tr>
+<tr class="separator:a8ec7e2a77ea452c3d46bb7dbbc722574"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3e31c8b25cbf95c42b8e439071bdf865"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a3e31c8b25cbf95c42b8e439071bdf865">kAllBits</a> (0xFFFFFFFF)</td></tr>
+<tr class="separator:a3e31c8b25cbf95c42b8e439071bdf865"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad4c8ddc8db2d27cbcc0d88688fabdd93"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#ad4c8ddc8db2d27cbcc0d88688fabdd93">kIErrorID</a> (0x6e4572726f722020)</td></tr>
+<tr class="separator:ad4c8ddc8db2d27cbcc0d88688fabdd93"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a97f984a3b999db35dd915b17322c8c7f"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a97f984a3b999db35dd915b17322c8c7f">kIUTF8StringID</a> (0x6e55544638537472)</td></tr>
+<tr class="separator:a97f984a3b999db35dd915b17322c8c7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3eaf39cde126acb079462286763ca44a"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a3eaf39cde126acb079462286763ca44a">kIObjectFactoryID</a> (0x6e4f626a46616374)</td></tr>
+<tr class="separator:a3eaf39cde126acb079462286763ca44a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab7bbf3293de0d0539f3cbb65b7680252"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#ab7bbf3293de0d0539f3cbb65b7680252">kIErrorNotifierID</a> (0x6e4572724e6f7466)</td></tr>
+<tr class="separator:ab7bbf3293de0d0539f3cbb65b7680252"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af73d2c15fb6abf10bf2b82be984d9be0"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#af73d2c15fb6abf10bf2b82be984d9be0">kIConfigurationManagerID</a> (0x6e436f6e664d6772)</td></tr>
+<tr class="separator:af73d2c15fb6abf10bf2b82be984d9be0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a376c8e3ade71b2836888a07746dd3882"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a376c8e3ade71b2836888a07746dd3882">BASE_CLASS</a> (IObjectFactory, <a class="el" href="XMPCommonLatestInterfaceVersions_8h.html#a6844f2fb727f99e352e61045154eba8b">IOBJECTFACTORY_VERSION</a>) IObjectFactory</td></tr>
+<tr class="separator:a376c8e3ade71b2836888a07746dd3882"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae2d21f9711d5fdc36354b14a401ec53b"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#ae2d21f9711d5fdc36354b14a401ec53b">BASE_CLASS</a> (IError, <a class="el" href="XMPCommonLatestInterfaceVersions_8h.html#a4d8312c0c69be3f57e5f14b7b2d1224d">IERROR_VERSION</a>) IError</td></tr>
+<tr class="separator:ae2d21f9711d5fdc36354b14a401ec53b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a55f2498472648e9b5647f039202820b2"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a55f2498472648e9b5647f039202820b2">BASE_CLASS</a> (IUTF8String, <a class="el" href="XMPCommonLatestInterfaceVersions_8h.html#a884c112243a29a7b0388b1954efc317b">IUTF8STRING_VERSION</a>) IUTF8String</td></tr>
+<tr class="separator:a55f2498472648e9b5647f039202820b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afee5efdc17ad732ac218b39bb305ed63"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#afee5efdc17ad732ac218b39bb305ed63">BASE_CLASS</a> (IMemoryAllocator, <a class="el" href="XMPCommonLatestInterfaceVersions_8h.html#a5c5712b51cebbbdbf40cc691b4123209">IMEMORYALLOCATOR_VERSION</a>) IMemoryAllocator</td></tr>
+<tr class="separator:afee5efdc17ad732ac218b39bb305ed63"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5d655944f5ebfaff4c6f61d227257035"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a5d655944f5ebfaff4c6f61d227257035">BASE_CLASS</a> (IErrorNotifier, <a class="el" href="XMPCommonLatestInterfaceVersions_8h.html#ad84704e1c2910ca9d71d41183c3a378c">IERRORNOTIFIER_VERSION</a>) IErrorNotifier</td></tr>
+<tr class="separator:a5d655944f5ebfaff4c6f61d227257035"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a41216c3793d99220ce00076ad18f9b44"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a41216c3793d99220ce00076ad18f9b44">BASE_CLASS</a> (IConfigurationManager, <a class="el" href="XMPCommonLatestInterfaceVersions_8h.html#a21492cbe0c77bbbad967232b377855c1">ICONFIGURATIONMANAGER_VERSION</a>) IConfigurationManager</td></tr>
+<tr class="separator:a41216c3793d99220ce00076ad18f9b44"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3349137d458c48d779670626d7b6ba1a"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#a3349137d458c48d779670626d7b6ba1a">MemAllocate</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> size) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:a3349137d458c48d779670626d7b6ba1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad4c125f465214507005d84a360fa83e5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon.html#ad4c125f465214507005d84a360fa83e5">MemRelease</a> (void *ptr) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
+<tr class="separator:ad4c125f465214507005d84a360fa83e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="aae5dbe164f71188aa24c87fa6306539a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef std::vector&lt; <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> &gt; <a class="el" href="namespaceAdobeXMPCommon.html#aae5dbe164f71188aa24c87fa6306539a">AdobeXMPCommon::cIUTF8Strings</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00120">120</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab6a71f81b4e3c8e5d2d0c90f82fbee08"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html">IConfigurationManager_v1</a> <a class="el" href="namespaceAdobeXMPCommon.html#ab6a71f81b4e3c8e5d2d0c90f82fbee08">AdobeXMPCommon::IConfigurationManager_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00103">103</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5f4d698bf8beb5f6604b61aa1362d2c6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">IError_v1</a> <a class="el" href="namespaceAdobeXMPCommon.html#a5f4d698bf8beb5f6604b61aa1362d2c6">AdobeXMPCommon::IError_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00059">59</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a692c91c0b558cbc476e43e7f0a9112e0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCommon_1_1IErrorNotifier__v1.html">IErrorNotifier_v1</a> <a class="el" href="namespaceAdobeXMPCommon.html#a692c91c0b558cbc476e43e7f0a9112e0">AdobeXMPCommon::IErrorNotifier_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00092">92</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae79591aae25236208281cd3e48a2483d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html">IMemoryAllocator_v1</a> <a class="el" href="namespaceAdobeXMPCommon.html#ae79591aae25236208281cd3e48a2483d">AdobeXMPCommon::IMemoryAllocator_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00081">81</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a070d4ea981e6080468e9a3cdbd82b458"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef XMP_Int32 <a class="el" href="namespaceAdobeXMPCommon.html#a070d4ea981e6080468e9a3cdbd82b458">AdobeXMPCommon::int32</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonDefines_8h_source.html#l00143">143</a> of file <a class="el" href="XMPCommonDefines_8h_source.html">XMPCommonDefines.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aee4f68e01de51c2cf1c1044ecafebc25"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef XMP_Int64 <a class="el" href="namespaceAdobeXMPCommon.html#aee4f68e01de51c2cf1c1044ecafebc25">AdobeXMPCommon::int64</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonDefines_8h_source.html#l00141">141</a> of file <a class="el" href="XMPCommonDefines_8h_source.html">XMPCommonDefines.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a25f44f5d5e5c651d20124037a7c3b5c3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html">IObjectFactory_v1</a> <a class="el" href="namespaceAdobeXMPCommon.html#a25f44f5d5e5c651d20124037a7c3b5c3">AdobeXMPCommon::IObjectFactory_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00050">50</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a169532f774f2b1f3d8501e896d6f1957"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">IUTF8String_v1</a> <a class="el" href="namespaceAdobeXMPCommon.html#a169532f774f2b1f3d8501e896d6f1957">AdobeXMPCommon::IUTF8String_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00070">70</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac82ab59bdaecb219834ac2ff81573414"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef std::vector&lt; <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">spIUTF8String</a> &gt; <a class="el" href="namespaceAdobeXMPCommon.html#ac82ab59bdaecb219834ac2ff81573414">AdobeXMPCommon::IUTF8Strings</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00119">119</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6ddf5efa8f9b686e5d7fef41d6b10096"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void*( * AdobeXMPCommon::MemAllocateProc) (<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> sz)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>A function pointer to get the memory allocated from the library. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>a value indicating the number of bytes to be allocated. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>a pointer to memory allocated by the library. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>NULL value is returned in case memory allocation fails. </dd></dl>
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00132">132</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a79edf1f9139609bf6ed70b24cc99a2e0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void( * AdobeXMPCommon::MemReleaseProc) (void *ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>A function pointer to get the memory freed from the library. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>address of the memory location to be freed. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00139">139</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a394d772cfe78f1dbeba6059e7a3c65d6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">IConfigurable</a>* <a class="el" href="namespaceAdobeXMPCommon.html#a394d772cfe78f1dbeba6059e7a3c65d6">AdobeXMPCommon::pcIConfigurable</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00116">116</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2a6831c5d17f5c9990c01268f67b7bb2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const IConfigurationManager* <a class="el" href="namespaceAdobeXMPCommon.html#a2a6831c5d17f5c9990c01268f67b7bb2">AdobeXMPCommon::pcIConfigurationManager</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00109">109</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a39556e80a6bda05757b7f2766ddc2ba1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html">IConfigurationManager_v1</a>* <a class="el" href="namespaceAdobeXMPCommon.html#a39556e80a6bda05757b7f2766ddc2ba1">AdobeXMPCommon::pcIConfigurationManager_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00106">106</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0e0c89c232b777fb332e0ddc10b65fc2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const IError* <a class="el" href="namespaceAdobeXMPCommon.html#a0e0c89c232b777fb332e0ddc10b65fc2">AdobeXMPCommon::pcIError</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00065">65</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae3cc983230819089dc742273902228c5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">IError_v1</a>* <a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">AdobeXMPCommon::pcIError_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00062">62</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa4baade1a8eb0dbb544860e0c89362f8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const IErrorNotifier* <a class="el" href="namespaceAdobeXMPCommon.html#aa4baade1a8eb0dbb544860e0c89362f8">AdobeXMPCommon::pcIErrorNotifier</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00098">98</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a15919ce22d7dc4def5a590f0dbb882ca"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const <a class="el" href="classAdobeXMPCommon_1_1IErrorNotifier__v1.html">IErrorNotifier_v1</a>* <a class="el" href="namespaceAdobeXMPCommon.html#a15919ce22d7dc4def5a590f0dbb882ca">AdobeXMPCommon::pcIErrorNotifier_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00095">95</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af5a7d4d78400043e3e49dfa6a2725abb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const IMemoryAllocator* <a class="el" href="namespaceAdobeXMPCommon.html#af5a7d4d78400043e3e49dfa6a2725abb">AdobeXMPCommon::pcIMemoryAllocator</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00087">87</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a42a89fb94134c8eaed66765f2975b3f9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const <a class="el" href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html">IMemoryAllocator_v1</a>* <a class="el" href="namespaceAdobeXMPCommon.html#a42a89fb94134c8eaed66765f2975b3f9">AdobeXMPCommon::pcIMemoryAllocator_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00084">84</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a272e32106a7573db514736bfb68a1673"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const IObjectFactory* <a class="el" href="namespaceAdobeXMPCommon.html#a272e32106a7573db514736bfb68a1673">AdobeXMPCommon::pcIObjectFactory</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00056">56</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8d7232279921e3ccaa69fe314052415b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const <a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html">IObjectFactory_v1</a>* <a class="el" href="namespaceAdobeXMPCommon.html#a8d7232279921e3ccaa69fe314052415b">AdobeXMPCommon::pcIObjectFactory_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00053">53</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa9b2c45fd472c6e0e322a94c87e36e23"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const IUTF8String* <a class="el" href="namespaceAdobeXMPCommon.html#aa9b2c45fd472c6e0e322a94c87e36e23">AdobeXMPCommon::pcIUTF8String</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00076">76</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a34ccf48e077c7308540d98149a4a8b2b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">IUTF8String_v1</a>* <a class="el" href="namespaceAdobeXMPCommon.html#a34ccf48e077c7308540d98149a4a8b2b">AdobeXMPCommon::pcIUTF8String_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00073">73</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a19692335f9547f4bc07d0ff727f14605"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const void* <a class="el" href="namespaceAdobeXMPCommon.html#a19692335f9547f4bc07d0ff727f14605">AdobeXMPCommon::pcvoid</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00045">45</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9befc7ddfe5977c8176eed763d9ce69e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCommon_1_1IConfigurable.html">IConfigurable</a>* <a class="el" href="namespaceAdobeXMPCommon.html#a9befc7ddfe5977c8176eed763d9ce69e">AdobeXMPCommon::pIConfigurable</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00114">114</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a66f57b67d8be6cbf836ad084a3d27d76"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef IConfigurationManager* <a class="el" href="namespaceAdobeXMPCommon.html#a66f57b67d8be6cbf836ad084a3d27d76">AdobeXMPCommon::pIConfigurationManager</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00108">108</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a20fcfcaa614eba9a9fcdf2353b82fdb7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCommon_1_1IConfigurationManager__v1.html">IConfigurationManager_v1</a>* <a class="el" href="namespaceAdobeXMPCommon.html#a20fcfcaa614eba9a9fcdf2353b82fdb7">AdobeXMPCommon::pIConfigurationManager_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00105">105</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac0db32de8e6a3688ad0dfc36c2757fb4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef IError* <a class="el" href="namespaceAdobeXMPCommon.html#ac0db32de8e6a3688ad0dfc36c2757fb4">AdobeXMPCommon::pIError</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00064">64</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4e907810e5d5937b974343d279e0181d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCommon_1_1IError__v1.html">IError_v1</a>* <a class="el" href="namespaceAdobeXMPCommon.html#a4e907810e5d5937b974343d279e0181d">AdobeXMPCommon::pIError_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00061">61</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9981f3ca088023224e80dbad05090f3c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef IErrorNotifier* <a class="el" href="namespaceAdobeXMPCommon.html#a9981f3ca088023224e80dbad05090f3c">AdobeXMPCommon::pIErrorNotifier</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00097">97</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4ad7bda9e1289b0bb93510402b6e86f9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCommon_1_1IErrorNotifier__v1.html">IErrorNotifier_v1</a>* <a class="el" href="namespaceAdobeXMPCommon.html#a4ad7bda9e1289b0bb93510402b6e86f9">AdobeXMPCommon::pIErrorNotifier_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00094">94</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a605dcb5281a71a01673c81e6508f932f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef IMemoryAllocator* <a class="el" href="namespaceAdobeXMPCommon.html#a605dcb5281a71a01673c81e6508f932f">AdobeXMPCommon::pIMemoryAllocator</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00086">86</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aff75b5c835a8eb072072be6b404aa0d5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCommon_1_1IMemoryAllocator__v1.html">IMemoryAllocator_v1</a>* <a class="el" href="namespaceAdobeXMPCommon.html#aff75b5c835a8eb072072be6b404aa0d5">AdobeXMPCommon::pIMemoryAllocator_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00083">83</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0863cf1c24764306839671985373b93f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef IObjectFactory* <a class="el" href="namespaceAdobeXMPCommon.html#a0863cf1c24764306839671985373b93f">AdobeXMPCommon::pIObjectFactory</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00055">55</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="adb1552a01da782d3f1c5ff00e49f48f8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html">IObjectFactory_v1</a>* <a class="el" href="namespaceAdobeXMPCommon.html#adb1552a01da782d3f1c5ff00e49f48f8">AdobeXMPCommon::pIObjectFactory_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00052">52</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a27ba1868ebc552bef10fe156bd4e340b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef IUTF8String* <a class="el" href="namespaceAdobeXMPCommon.html#a27ba1868ebc552bef10fe156bd4e340b">AdobeXMPCommon::pIUTF8String</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00075">75</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0430b250dd00621dcb9f32a3acb87b7f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCommon_1_1IUTF8String__v1.html">IUTF8String_v1</a>* <a class="el" href="namespaceAdobeXMPCommon.html#a0430b250dd00621dcb9f32a3acb87b7f">AdobeXMPCommon::pIUTF8String_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00072">72</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab59e650373a5efadfbfd2486313258a6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void* <a class="el" href="namespaceAdobeXMPCommon.html#ab59e650373a5efadfbfd2486313258a6">AdobeXMPCommon::pvoid</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00044">44</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8dc9ba4ce78a957c0843998c2468241a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a>( * AdobeXMPCommon::ReportErrorAndContinueABISafeProc) (<a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> errorDomain, <a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> errorCode, <a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> errorSeverity, const char *message, <a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">pcIError_base</a> &amp;error)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>A function pointer to report back errors and warnings to the library encountered during the serialization operation. </p>
+<p>Based on the error condition library can return 0 or non zero to indicate that a particular warning can be ignored and operation can continue. </p><dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">errorDomain</td><td>An unsigned 32 bit integer indicating the domain of the error. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">errorCode</td><td>An unsigned 32 bit integer indicating the code of the error. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">errorSeverity</td><td>An unsigned 32 bit integer indicating the severity of the error. </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">error</td><td>A reference to a pointer to const IError object which will be filled with the error object in case of any error. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>non zero value indicating that process can continue ignoring the warning, otherwise return 0 to indicate it should stop immediately. </dd></dl>
+
+<p>Definition at line <a class="el" href="IError_8h_source.html#l00343">343</a> of file <a class="el" href="IError_8h_source.html">IError.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1c85c2f558b495c3d41eabe692a96cf2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonDefines_8h_source.html#l00146">146</a> of file <a class="el" href="XMPCommonDefines_8h_source.html">XMPCommonDefines.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abe53a5a98ec0d2d6ce76d1d820794177"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; const IConfigurationManager &gt; <a class="el" href="namespaceAdobeXMPCommon.html#abe53a5a98ec0d2d6ce76d1d820794177">AdobeXMPCommon::spcIConfigurationManager</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00111">111</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3f0de5ba5753a56896f2941927b23560"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; const IError &gt; <a class="el" href="namespaceAdobeXMPCommon.html#a3f0de5ba5753a56896f2941927b23560">AdobeXMPCommon::spcIError</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00067">67</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4eeee081576f932942082744eb05456c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; const IErrorNotifier &gt; <a class="el" href="namespaceAdobeXMPCommon.html#a4eeee081576f932942082744eb05456c">AdobeXMPCommon::spcIErrorNotifier</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00100">100</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a183fc5e814bdad0ddf9946ddc35c307a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; const IMemoryAllocator &gt; <a class="el" href="namespaceAdobeXMPCommon.html#a183fc5e814bdad0ddf9946ddc35c307a">AdobeXMPCommon::spcIMemoryAllocator</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00089">89</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a91aaab1f1d7030b26df65258bd131a63"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; const IUTF8String &gt; <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">AdobeXMPCommon::spcIUTF8String</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00078">78</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a181114a44f34efda2d8b4cb98446de86"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; <a class="el" href="namespaceAdobeXMPCommon.html#aae5dbe164f71188aa24c87fa6306539a">cIUTF8Strings</a> &gt; <a class="el" href="namespaceAdobeXMPCommon.html#a181114a44f34efda2d8b4cb98446de86">AdobeXMPCommon::spcIUTF8Strings</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00122">122</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aeea9f5dbdf44fd5382b0ca50dda8f2cf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; const <a class="el" href="namespaceAdobeXMPCommon.html#aae5dbe164f71188aa24c87fa6306539a">cIUTF8Strings</a> &gt; <a class="el" href="namespaceAdobeXMPCommon.html#aeea9f5dbdf44fd5382b0ca50dda8f2cf">AdobeXMPCommon::spcIUTF8Strings_const</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00124">124</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a93bf79ca806273dc229d940504654caa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; const void * &gt; <a class="el" href="namespaceAdobeXMPCommon.html#a93bf79ca806273dc229d940504654caa">AdobeXMPCommon::spcvoid</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00047">47</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4ebcc3c8cb04d7593dc3250aa720f0d4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; IConfigurationManager &gt; <a class="el" href="namespaceAdobeXMPCommon.html#a4ebcc3c8cb04d7593dc3250aa720f0d4">AdobeXMPCommon::spIConfigurationManager</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00110">110</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="adb05c7ceec43360b84aee536612151f9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; IError &gt; <a class="el" href="namespaceAdobeXMPCommon.html#adb05c7ceec43360b84aee536612151f9">AdobeXMPCommon::spIError</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00066">66</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4d5b76921b44568978986a81d2c19336"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; IErrorNotifier &gt; <a class="el" href="namespaceAdobeXMPCommon.html#a4d5b76921b44568978986a81d2c19336">AdobeXMPCommon::spIErrorNotifier</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00099">99</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9423cafa21356df5d02adf7a94f4e4b0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; IMemoryAllocator &gt; <a class="el" href="namespaceAdobeXMPCommon.html#a9423cafa21356df5d02adf7a94f4e4b0">AdobeXMPCommon::spIMemoryAllocator</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00088">88</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac9d7760a1805b1e28828511a2c8c5588"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; IUTF8String &gt; <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">AdobeXMPCommon::spIUTF8String</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00077">77</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5f4ff8126658f07efbc881778bfea430"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; <a class="el" href="namespaceAdobeXMPCommon.html#ac82ab59bdaecb219834ac2ff81573414">IUTF8Strings</a> &gt; <a class="el" href="namespaceAdobeXMPCommon.html#a5f4ff8126658f07efbc881778bfea430">AdobeXMPCommon::spIUTF8Strings</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00121">121</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab4410cb115c4e0fa0800ab6ebf21abf7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; const <a class="el" href="namespaceAdobeXMPCommon.html#ac82ab59bdaecb219834ac2ff81573414">IUTF8Strings</a> &gt; <a class="el" href="namespaceAdobeXMPCommon.html#ab4410cb115c4e0fa0800ab6ebf21abf7">AdobeXMPCommon::spIUTF8Strings_const</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00123">123</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a28d3e703084f75a411ece4bb7b22fdd4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; void &gt; <a class="el" href="namespaceAdobeXMPCommon.html#a28d3e703084f75a411ece4bb7b22fdd4">AdobeXMPCommon::spvoid</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00046">46</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0b1bbe96e1a757e66974c2f076afe4d2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef XMP_Uns32 <a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">AdobeXMPCommon::uint32</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonDefines_8h_source.html#l00144">144</a> of file <a class="el" href="XMPCommonDefines_8h_source.html">XMPCommonDefines.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aea1d692da07b844d1f642b47ea6a91bd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef XMP_Uns64 <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">AdobeXMPCommon::uint64</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonDefines_8h_source.html#l00142">142</a> of file <a class="el" href="XMPCommonDefines_8h_source.html">XMPCommonDefines.h</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Enumeration Type Documentation</h2>
+<a class="anchor" id="a87fa911f1ea5a79801b7fe3530637c42"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42">AdobeXMPCommon::eConfigurableErrorCode</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Indicates various types of error codes within Configurable domain. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a87fa911f1ea5a79801b7fe3530637c42a48a521a6e08fd24bef691efb926189f4"></a>kCECNone&#160;</td><td class="fielddoc">
+<p>Indicates no error. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a87fa911f1ea5a79801b7fe3530637c42a78a9ef459e114b9e66dbd431d47e367f"></a>kCECKeyNotSupported&#160;</td><td class="fielddoc">
+<p>Indicates that key is not supported by the object. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a87fa911f1ea5a79801b7fe3530637c42a318281c6e6734794b732505f77ed7e1e"></a>kCECValueTypeNotSupported&#160;</td><td class="fielddoc">
+<p>Indicates different type of value provided than the one supported for a key. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a87fa911f1ea5a79801b7fe3530637c42a9459b3f1895defa4a14e42f0d7c44c64"></a>kCECPreviousTypeDifferent&#160;</td><td class="fielddoc">
+<p>Indicates that different value type is previously stored for a key. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a87fa911f1ea5a79801b7fe3530637c42ad00affae57206343bb1a2cbfd64a7727"></a>kCECValueTypeMismatch&#160;</td><td class="fielddoc">
+<p>Indicates the type of value stored for a key is different than what client is asking for. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a87fa911f1ea5a79801b7fe3530637c42a4a285133844f12c9db30cac96272ca99"></a>kCECValueNotSupported&#160;</td><td class="fielddoc">
+<p>Indicates an invalid value is provided. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a87fa911f1ea5a79801b7fe3530637c42a2da955fac9fd8e3e44105ee827c8bca8"></a>kCECodeMaxValue&#160;</td><td class="fielddoc">
+<p>Maximum value this enum can hold, should be treated as invalid value. </p>
+</td></tr>
+</table>
+
+<p>Definition at line <a class="el" href="XMPCommonErrorCodes_8h_source.html#l00090">90</a> of file <a class="el" href="XMPCommonErrorCodes_8h_source.html">XMPCommonErrorCodes.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a48a521a6e08fd24bef691efb926189f4">kCECNone</a> = 0,</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a78a9ef459e114b9e66dbd431d47e367f">kCECKeyNotSupported</a> = 1,</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a318281c6e6734794b732505f77ed7e1e">kCECValueTypeNotSupported</a> = 2,</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a9459b3f1895defa4a14e42f0d7c44c64">kCECPreviousTypeDifferent</a> = 3,</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42ad00affae57206343bb1a2cbfd64a7727">kCECValueTypeMismatch</a> = 4,</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a4a285133844f12c9db30cac96272ca99">kCECValueNotSupported</a> = 5,</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a2da955fac9fd8e3e44105ee827c8bca8">kCECodeMaxValue</a> = 0xFFFFFFFF</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; } <a class="code" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42">eConfigurableErrorCode</a>;</div><div class="ttc" id="namespaceAdobeXMPCommon_html_a87fa911f1ea5a79801b7fe3530637c42a318281c6e6734794b732505f77ed7e1e"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a318281c6e6734794b732505f77ed7e1e">AdobeXMPCommon::kCECValueTypeNotSupported</a></div><div class="ttdoc">Indicates different type of value provided than the one supported for a key. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00098">XMPCommonErrorCodes.h:98</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a87fa911f1ea5a79801b7fe3530637c42"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42">AdobeXMPCommon::eConfigurableErrorCode</a></div><div class="ttdeci">eConfigurableErrorCode</div><div class="ttdoc">Indicates various types of error codes within Configurable domain. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00090">XMPCommonErrorCodes.h:90</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a87fa911f1ea5a79801b7fe3530637c42a48a521a6e08fd24bef691efb926189f4"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a48a521a6e08fd24bef691efb926189f4">AdobeXMPCommon::kCECNone</a></div><div class="ttdoc">Indicates no error. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00092">XMPCommonErrorCodes.h:92</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a87fa911f1ea5a79801b7fe3530637c42a4a285133844f12c9db30cac96272ca99"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a4a285133844f12c9db30cac96272ca99">AdobeXMPCommon::kCECValueNotSupported</a></div><div class="ttdoc">Indicates an invalid value is provided. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00107">XMPCommonErrorCodes.h:107</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a87fa911f1ea5a79801b7fe3530637c42a2da955fac9fd8e3e44105ee827c8bca8"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a2da955fac9fd8e3e44105ee827c8bca8">AdobeXMPCommon::kCECodeMaxValue</a></div><div class="ttdoc">Maximum value this enum can hold, should be treated as invalid value. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00110">XMPCommonErrorCodes.h:110</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a87fa911f1ea5a79801b7fe3530637c42a78a9ef459e114b9e66dbd431d47e367f"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a78a9ef459e114b9e66dbd431d47e367f">AdobeXMPCommon::kCECKeyNotSupported</a></div><div class="ttdoc">Indicates that key is not supported by the object. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00095">XMPCommonErrorCodes.h:95</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a87fa911f1ea5a79801b7fe3530637c42a9459b3f1895defa4a14e42f0d7c44c64"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a9459b3f1895defa4a14e42f0d7c44c64">AdobeXMPCommon::kCECPreviousTypeDifferent</a></div><div class="ttdoc">Indicates that different value type is previously stored for a key. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00101">XMPCommonErrorCodes.h:101</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a87fa911f1ea5a79801b7fe3530637c42ad00affae57206343bb1a2cbfd64a7727"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42ad00affae57206343bb1a2cbfd64a7727">AdobeXMPCommon::kCECValueTypeMismatch</a></div><div class="ttdoc">Indicates the type of value stored for a key is different than what client is asking for...</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00104">XMPCommonErrorCodes.h:104</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a8f3cda4a2111f1fccbcc182ca1cf5b14"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14">AdobeXMPCommon::eGeneralErrorCode</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Indicates various types of error codes within General Domain. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a8f3cda4a2111f1fccbcc182ca1cf5b14ac9bbc6373eb1432da67162e2d3d8ba00"></a>kGECNone&#160;</td><td class="fielddoc">
+<p>Indicates no error. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a8f3cda4a2111f1fccbcc182ca1cf5b14ac8114fd7fafcae7a7d13793cf32f84e4"></a>kGECParametersNotAsExpected&#160;</td><td class="fielddoc">
+<p>Indicates that parameters passed to function are not as expected. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a8f3cda4a2111f1fccbcc182ca1cf5b14ac4d59c9d462932453e1e5b96efce4beb"></a>kGECVersionUnavailable&#160;</td><td class="fielddoc">
+<p>Indicates that version expected by client is not available in the library. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a8f3cda4a2111f1fccbcc182ca1cf5b14ac7ad8bab8d1d8f890d26a13076730473"></a>kGECAssertionFailure&#160;</td><td class="fielddoc">
+<p>Indicates that some assertion has failed. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a8f3cda4a2111f1fccbcc182ca1cf5b14a99ed4bfb1b57eea7e5ed9cdd6f63bb88"></a>kGECLogicalError&#160;</td><td class="fielddoc">
+<p>Indicates logic failure. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a8f3cda4a2111f1fccbcc182ca1cf5b14a4d0d8c80b3932d6160a3117979cf59c7"></a>kGECIndexOutOfBounds&#160;</td><td class="fielddoc">
+<p>Indicates index provided is out of bounds. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a8f3cda4a2111f1fccbcc182ca1cf5b14aa85fc48596da99b5ac6ec775c5e9d4f1"></a>kGECInternalFailure&#160;</td><td class="fielddoc">
+<p>Indicates an internal failure. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a8f3cda4a2111f1fccbcc182ca1cf5b14a34f838480c145031638141ea204b9436"></a>kGECDeprecatedFunctionCall&#160;</td><td class="fielddoc">
+<p>Indicates a call to deprecated function. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a8f3cda4a2111f1fccbcc182ca1cf5b14aa089e0cea5a0b9fb19ed39c8d53ea624"></a>kGECExternalFailure&#160;</td><td class="fielddoc">
+<p>Indicates an external failure. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a8f3cda4a2111f1fccbcc182ca1cf5b14ae5d6719cf38299f4f4bf170467c5e977"></a>kGECUnknownFailure&#160;</td><td class="fielddoc">
+<p>Indicates an unknown failure. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a8f3cda4a2111f1fccbcc182ca1cf5b14aabc494bfa6cc5c42f4d6203a419943fe"></a>kGECUserAbort&#160;</td><td class="fielddoc">
+<p>Indicates an error due to User Abort. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a8f3cda4a2111f1fccbcc182ca1cf5b14af605e8ceabdf52ced8bf1a2961041719"></a>kGECInterfaceUnavailable&#160;</td><td class="fielddoc">
+<p>Indicates a particular interface is not available. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a8f3cda4a2111f1fccbcc182ca1cf5b14a84f703a7e6aed295b04266ba33e382db"></a>kGECClientThrownExceptionCaught&#160;</td><td class="fielddoc">
+<p>Indicates that client code has thrown some exception. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a8f3cda4a2111f1fccbcc182ca1cf5b14ab6be1e47808269e89bff9854599179f0"></a>kGECStandardException&#160;</td><td class="fielddoc">
+<p>Indicates that standard exception has occurred. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a8f3cda4a2111f1fccbcc182ca1cf5b14a1ec371ab7db9ac473a04755491b4d996"></a>kGECUnknownExceptionCaught&#160;</td><td class="fielddoc">
+<p>Indicates that some unknown exception has occurred. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a8f3cda4a2111f1fccbcc182ca1cf5b14a38faaba6657c0fab6d51f2e7807ab560"></a>kGECNotImplemented&#160;</td><td class="fielddoc">
+<p>Indicates that functionality is not yet implemented. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a8f3cda4a2111f1fccbcc182ca1cf5b14aa3bc0d5f5b5bae142630473abaee9f1f"></a>kGECMaxValue&#160;</td><td class="fielddoc">
+<p>Maximum value this enum can hold, should be treated as invalid value. </p>
+</td></tr>
+</table>
+
+<p>Definition at line <a class="el" href="XMPCommonErrorCodes_8h_source.html#l00020">20</a> of file <a class="el" href="XMPCommonErrorCodes_8h_source.html">XMPCommonErrorCodes.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; {</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac9bbc6373eb1432da67162e2d3d8ba00">kGECNone</a> = 0,</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac8114fd7fafcae7a7d13793cf32f84e4">kGECParametersNotAsExpected</a> = 1,</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac4d59c9d462932453e1e5b96efce4beb">kGECVersionUnavailable</a> = 2,</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac7ad8bab8d1d8f890d26a13076730473">kGECAssertionFailure</a> = 3,</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a99ed4bfb1b57eea7e5ed9cdd6f63bb88">kGECLogicalError</a> = 4,</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a4d0d8c80b3932d6160a3117979cf59c7">kGECIndexOutOfBounds</a> = 5,</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aa85fc48596da99b5ac6ec775c5e9d4f1">kGECInternalFailure</a> = 6,</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a34f838480c145031638141ea204b9436">kGECDeprecatedFunctionCall</a> = 7,</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aa089e0cea5a0b9fb19ed39c8d53ea624">kGECExternalFailure</a> = 8,</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ae5d6719cf38299f4f4bf170467c5e977">kGECUnknownFailure</a> = 9,</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aabc494bfa6cc5c42f4d6203a419943fe">kGECUserAbort</a> = 10,</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14af605e8ceabdf52ced8bf1a2961041719">kGECInterfaceUnavailable</a> = 11,</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a84f703a7e6aed295b04266ba33e382db">kGECClientThrownExceptionCaught</a> = 100,</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ab6be1e47808269e89bff9854599179f0">kGECStandardException</a> = 101,</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a1ec371ab7db9ac473a04755491b4d996">kGECUnknownExceptionCaught</a> = 200,</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a38faaba6657c0fab6d51f2e7807ab560">kGECNotImplemented</a> = 10000,</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aa3bc0d5f5b5bae142630473abaee9f1f">kGECMaxValue</a> = <a class="code" href="namespaceAdobeXMPCommon.html#a8ec7e2a77ea452c3d46bb7dbbc722574">kMaxEnumValue</a></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; } <a class="code" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14">eGeneralErrorCode</a>;</div><div class="ttc" id="namespaceAdobeXMPCommon_html_a8f3cda4a2111f1fccbcc182ca1cf5b14af605e8ceabdf52ced8bf1a2961041719"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14af605e8ceabdf52ced8bf1a2961041719">AdobeXMPCommon::kGECInterfaceUnavailable</a></div><div class="ttdoc">Indicates a particular interface is not available. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00055">XMPCommonErrorCodes.h:55</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8f3cda4a2111f1fccbcc182ca1cf5b14a99ed4bfb1b57eea7e5ed9cdd6f63bb88"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a99ed4bfb1b57eea7e5ed9cdd6f63bb88">AdobeXMPCommon::kGECLogicalError</a></div><div class="ttdoc">Indicates logic failure. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00034">XMPCommonErrorCodes.h:34</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8f3cda4a2111f1fccbcc182ca1cf5b14a84f703a7e6aed295b04266ba33e382db"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a84f703a7e6aed295b04266ba33e382db">AdobeXMPCommon::kGECClientThrownExceptionCaught</a></div><div class="ttdoc">Indicates that client code has thrown some exception. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00058">XMPCommonErrorCodes.h:58</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8f3cda4a2111f1fccbcc182ca1cf5b14ac9bbc6373eb1432da67162e2d3d8ba00"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac9bbc6373eb1432da67162e2d3d8ba00">AdobeXMPCommon::kGECNone</a></div><div class="ttdoc">Indicates no error. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00022">XMPCommonErrorCodes.h:22</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8f3cda4a2111f1fccbcc182ca1cf5b14a34f838480c145031638141ea204b9436"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a34f838480c145031638141ea204b9436">AdobeXMPCommon::kGECDeprecatedFunctionCall</a></div><div class="ttdoc">Indicates a call to deprecated function. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00043">XMPCommonErrorCodes.h:43</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8f3cda4a2111f1fccbcc182ca1cf5b14ae5d6719cf38299f4f4bf170467c5e977"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ae5d6719cf38299f4f4bf170467c5e977">AdobeXMPCommon::kGECUnknownFailure</a></div><div class="ttdoc">Indicates an unknown failure. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00049">XMPCommonErrorCodes.h:49</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8f3cda4a2111f1fccbcc182ca1cf5b14a38faaba6657c0fab6d51f2e7807ab560"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a38faaba6657c0fab6d51f2e7807ab560">AdobeXMPCommon::kGECNotImplemented</a></div><div class="ttdoc">Indicates that functionality is not yet implemented. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00067">XMPCommonErrorCodes.h:67</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8f3cda4a2111f1fccbcc182ca1cf5b14a1ec371ab7db9ac473a04755491b4d996"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a1ec371ab7db9ac473a04755491b4d996">AdobeXMPCommon::kGECUnknownExceptionCaught</a></div><div class="ttdoc">Indicates that some unknown exception has occurred. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00064">XMPCommonErrorCodes.h:64</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8f3cda4a2111f1fccbcc182ca1cf5b14aabc494bfa6cc5c42f4d6203a419943fe"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aabc494bfa6cc5c42f4d6203a419943fe">AdobeXMPCommon::kGECUserAbort</a></div><div class="ttdoc">Indicates an error due to User Abort. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00052">XMPCommonErrorCodes.h:52</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8f3cda4a2111f1fccbcc182ca1cf5b14a4d0d8c80b3932d6160a3117979cf59c7"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a4d0d8c80b3932d6160a3117979cf59c7">AdobeXMPCommon::kGECIndexOutOfBounds</a></div><div class="ttdoc">Indicates index provided is out of bounds. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00037">XMPCommonErrorCodes.h:37</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8f3cda4a2111f1fccbcc182ca1cf5b14ab6be1e47808269e89bff9854599179f0"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ab6be1e47808269e89bff9854599179f0">AdobeXMPCommon::kGECStandardException</a></div><div class="ttdoc">Indicates that standard exception has occurred. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00061">XMPCommonErrorCodes.h:61</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8f3cda4a2111f1fccbcc182ca1cf5b14aa3bc0d5f5b5bae142630473abaee9f1f"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aa3bc0d5f5b5bae142630473abaee9f1f">AdobeXMPCommon::kGECMaxValue</a></div><div class="ttdoc">Maximum value this enum can hold, should be treated as invalid value. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00070">XMPCommonErrorCodes.h:70</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8f3cda4a2111f1fccbcc182ca1cf5b14aa85fc48596da99b5ac6ec775c5e9d4f1"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aa85fc48596da99b5ac6ec775c5e9d4f1">AdobeXMPCommon::kGECInternalFailure</a></div><div class="ttdoc">Indicates an internal failure. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00040">XMPCommonErrorCodes.h:40</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8f3cda4a2111f1fccbcc182ca1cf5b14aa089e0cea5a0b9fb19ed39c8d53ea624"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aa089e0cea5a0b9fb19ed39c8d53ea624">AdobeXMPCommon::kGECExternalFailure</a></div><div class="ttdoc">Indicates an external failure. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00046">XMPCommonErrorCodes.h:46</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8f3cda4a2111f1fccbcc182ca1cf5b14ac8114fd7fafcae7a7d13793cf32f84e4"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac8114fd7fafcae7a7d13793cf32f84e4">AdobeXMPCommon::kGECParametersNotAsExpected</a></div><div class="ttdoc">Indicates that parameters passed to function are not as expected. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00025">XMPCommonErrorCodes.h:25</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8ec7e2a77ea452c3d46bb7dbbc722574"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8ec7e2a77ea452c3d46bb7dbbc722574">AdobeXMPCommon::kMaxEnumValue</a></div><div class="ttdeci">static const uint32 kMaxEnumValue(Max_XMP_Uns32)</div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8f3cda4a2111f1fccbcc182ca1cf5b14"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14">AdobeXMPCommon::eGeneralErrorCode</a></div><div class="ttdeci">eGeneralErrorCode</div><div class="ttdoc">Indicates various types of error codes within General Domain. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00020">XMPCommonErrorCodes.h:20</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8f3cda4a2111f1fccbcc182ca1cf5b14ac7ad8bab8d1d8f890d26a13076730473"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac7ad8bab8d1d8f890d26a13076730473">AdobeXMPCommon::kGECAssertionFailure</a></div><div class="ttdoc">Indicates that some assertion has failed. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00031">XMPCommonErrorCodes.h:31</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8f3cda4a2111f1fccbcc182ca1cf5b14ac4d59c9d462932453e1e5b96efce4beb"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac4d59c9d462932453e1e5b96efce4beb">AdobeXMPCommon::kGECVersionUnavailable</a></div><div class="ttdoc">Indicates that version expected by client is not available in the library. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00028">XMPCommonErrorCodes.h:28</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="aba59dd1cfea0b1759617fc53108d92af"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="namespaceAdobeXMPCommon.html#aba59dd1cfea0b1759617fc53108d92af">AdobeXMPCommon::eMemoryManagementErrorCode</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Indicates various types of error codes within Memory Management domain. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="aba59dd1cfea0b1759617fc53108d92afa2c2fba02472378e6f5621fa89f662754"></a>kMMECNone&#160;</td><td class="fielddoc">
+<p>Indicates no error. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="aba59dd1cfea0b1759617fc53108d92afa2bbd2fba1abe18a0abbeeb04276fa5d7"></a>kMMECAllocationFailure&#160;</td><td class="fielddoc">
+<p>Indicates that allocation has failed. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="aba59dd1cfea0b1759617fc53108d92afa6c3458ee055e89d620fe6f9941658564"></a>kMMECMaxValue&#160;</td><td class="fielddoc">
+<p>Maximum value this enum can hold, should be treated as invalid value. </p>
+</td></tr>
+</table>
+
+<p>Definition at line <a class="el" href="XMPCommonErrorCodes_8h_source.html#l00076">76</a> of file <a class="el" href="XMPCommonErrorCodes_8h_source.html">XMPCommonErrorCodes.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#aba59dd1cfea0b1759617fc53108d92afa2c2fba02472378e6f5621fa89f662754">kMMECNone</a> = 0,</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#aba59dd1cfea0b1759617fc53108d92afa2bbd2fba1abe18a0abbeeb04276fa5d7">kMMECAllocationFailure</a> = 1,</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <a class="code" href="namespaceAdobeXMPCommon.html#aba59dd1cfea0b1759617fc53108d92afa6c3458ee055e89d620fe6f9941658564">kMMECMaxValue</a> = <a class="code" href="namespaceAdobeXMPCommon.html#a8ec7e2a77ea452c3d46bb7dbbc722574">kMaxEnumValue</a></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; } <a class="code" href="namespaceAdobeXMPCommon.html#aba59dd1cfea0b1759617fc53108d92af">eMemoryManagementErrorCode</a>;</div><div class="ttc" id="namespaceAdobeXMPCommon_html_aba59dd1cfea0b1759617fc53108d92af"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#aba59dd1cfea0b1759617fc53108d92af">AdobeXMPCommon::eMemoryManagementErrorCode</a></div><div class="ttdeci">eMemoryManagementErrorCode</div><div class="ttdoc">Indicates various types of error codes within Memory Management domain. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00076">XMPCommonErrorCodes.h:76</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_aba59dd1cfea0b1759617fc53108d92afa2bbd2fba1abe18a0abbeeb04276fa5d7"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#aba59dd1cfea0b1759617fc53108d92afa2bbd2fba1abe18a0abbeeb04276fa5d7">AdobeXMPCommon::kMMECAllocationFailure</a></div><div class="ttdoc">Indicates that allocation has failed. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00081">XMPCommonErrorCodes.h:81</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_aba59dd1cfea0b1759617fc53108d92afa2c2fba02472378e6f5621fa89f662754"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#aba59dd1cfea0b1759617fc53108d92afa2c2fba02472378e6f5621fa89f662754">AdobeXMPCommon::kMMECNone</a></div><div class="ttdoc">Indicates no error. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00078">XMPCommonErrorCodes.h:78</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_aba59dd1cfea0b1759617fc53108d92afa6c3458ee055e89d620fe6f9941658564"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#aba59dd1cfea0b1759617fc53108d92afa6c3458ee055e89d620fe6f9941658564">AdobeXMPCommon::kMMECMaxValue</a></div><div class="ttdoc">Maximum value this enum can hold, should be treated as invalid value. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonErrorCodes_8h_source.html#l00084">XMPCommonErrorCodes.h:84</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8ec7e2a77ea452c3d46bb7dbbc722574"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8ec7e2a77ea452c3d46bb7dbbc722574">AdobeXMPCommon::kMaxEnumValue</a></div><div class="ttdeci">static const uint32 kMaxEnumValue(Max_XMP_Uns32)</div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a376c8e3ade71b2836888a07746dd3882"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef AdobeXMPCommon::BASE_CLASS </td>
+ <td>(</td>
+ <td class="paramtype">IObjectFactory&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMPCommonLatestInterfaceVersions_8h.html#a6844f2fb727f99e352e61045154eba8b">IOBJECTFACTORY_VERSION</a>&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae2d21f9711d5fdc36354b14a401ec53b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef AdobeXMPCommon::BASE_CLASS </td>
+ <td>(</td>
+ <td class="paramtype">IError&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMPCommonLatestInterfaceVersions_8h.html#a4d8312c0c69be3f57e5f14b7b2d1224d">IERROR_VERSION</a>&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a55f2498472648e9b5647f039202820b2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef AdobeXMPCommon::BASE_CLASS </td>
+ <td>(</td>
+ <td class="paramtype">IUTF8String&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMPCommonLatestInterfaceVersions_8h.html#a884c112243a29a7b0388b1954efc317b">IUTF8STRING_VERSION</a>&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="afee5efdc17ad732ac218b39bb305ed63"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef AdobeXMPCommon::BASE_CLASS </td>
+ <td>(</td>
+ <td class="paramtype">IMemoryAllocator&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMPCommonLatestInterfaceVersions_8h.html#a5c5712b51cebbbdbf40cc691b4123209">IMEMORYALLOCATOR_VERSION</a>&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5d655944f5ebfaff4c6f61d227257035"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef AdobeXMPCommon::BASE_CLASS </td>
+ <td>(</td>
+ <td class="paramtype">IErrorNotifier&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMPCommonLatestInterfaceVersions_8h.html#ad84704e1c2910ca9d71d41183c3a378c">IERRORNOTIFIER_VERSION</a>&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a41216c3793d99220ce00076ad18f9b44"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef AdobeXMPCommon::BASE_CLASS </td>
+ <td>(</td>
+ <td class="paramtype">IConfigurationManager&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMPCommonLatestInterfaceVersions_8h.html#a21492cbe0c77bbbad967232b377855c1">ICONFIGURATIONMANAGER_VERSION</a>&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3e31c8b25cbf95c42b8e439071bdf865"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static const <a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> AdobeXMPCommon::kAllBits </td>
+ <td>(</td>
+ <td class="paramtype">0xFFFFFFFF&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af73d2c15fb6abf10bf2b82be984d9be0"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> AdobeXMPCommon::kIConfigurationManagerID </td>
+ <td>(</td>
+ <td class="paramtype">0x6e436f6e664d6772&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad4c8ddc8db2d27cbcc0d88688fabdd93"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> AdobeXMPCommon::kIErrorID </td>
+ <td>(</td>
+ <td class="paramtype">0x6e4572726f722020&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="IError_8h_source.html#l00171">AdobeXMPCommon::IError_v1::GetNextError()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab7bbf3293de0d0539f3cbb65b7680252"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> AdobeXMPCommon::kIErrorNotifierID </td>
+ <td>(</td>
+ <td class="paramtype">0x6e4572724e6f7466&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3eaf39cde126acb079462286763ca44a"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> AdobeXMPCommon::kIObjectFactoryID </td>
+ <td>(</td>
+ <td class="paramtype">0x6e4f626a46616374&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="IObjectFactory_8h_source.html#l00072">AdobeXMPCommon::IObjectFactory_v1::GetInterfaceID()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a97f984a3b999db35dd915b17322c8c7f"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> AdobeXMPCommon::kIUTF8StringID </td>
+ <td>(</td>
+ <td class="paramtype">0x6e55544638537472&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="IUTF8String_8h_source.html#l00347">AdobeXMPCommon::IUTF8String_v1::compare()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8ec7e2a77ea452c3d46bb7dbbc722574"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static const <a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> AdobeXMPCommon::kMaxEnumValue </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="XMP__Const_8h.html#adc36ebc09374b4400ebc68df37a5abad">Max_XMP_Uns32</a>&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a509d67aa4eb5b6a31db63f448d2a2343"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> AdobeXMPCommon::kMaxSize </td>
+ <td>(</td>
+ <td class="paramtype">(<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>)-&#160;</td>
+ <td class="paramname"><em>1</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="IPath_8h_source.html#l00089">AdobeXMPCore::IPath_v1::IsEmpty()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3349137d458c48d779670626d7b6ba1a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void* AdobeXMPCommon::MemAllocate </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
+ <td class="paramname"><em>size</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad4c125f465214507005d84a360fa83e5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void AdobeXMPCommon::MemRelease </td>
+ <td>(</td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>ptr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="afc1bfa88991003b305ab5023b483d3f9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> AdobeXMPCommon::npos </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a509d67aa4eb5b6a31db63f448d2a2343">kMaxSize</a>&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="IUTF8String_8h_source.html#l00283">AdobeXMPCommon::IUTF8String_v1::compare()</a>, <a class="el" href="IUTF8String_8h_source.html#l00194">AdobeXMPCommon::IUTF8String_v1::find()</a>, <a class="el" href="IError_8h_source.html#l00171">AdobeXMPCommon::IError_v1::GetNextError()</a>, and <a class="el" href="IUTF8String_8h_source.html#l00243">AdobeXMPCommon::IUTF8String_v1::rfind()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/namespaceAdobeXMPCommon.js b/docs/API/namespaceAdobeXMPCommon.js
new file mode 100755
index 0000000..5910e19
--- /dev/null
+++ b/docs/API/namespaceAdobeXMPCommon.js
@@ -0,0 +1,15 @@
+var namespaceAdobeXMPCommon =
+[
+ [ "IConfigurable", "classAdobeXMPCommon_1_1IConfigurable.html", "classAdobeXMPCommon_1_1IConfigurable" ],
+ [ "IConfigurationManager_v1", "classAdobeXMPCommon_1_1IConfigurationManager__v1.html", "classAdobeXMPCommon_1_1IConfigurationManager__v1" ],
+ [ "IConfigurationManagerProxy", "classAdobeXMPCommon_1_1IConfigurationManagerProxy.html", "classAdobeXMPCommon_1_1IConfigurationManagerProxy" ],
+ [ "IError_v1", "classAdobeXMPCommon_1_1IError__v1.html", "classAdobeXMPCommon_1_1IError__v1" ],
+ [ "IErrorNotifier_v1", "classAdobeXMPCommon_1_1IErrorNotifier__v1.html", "classAdobeXMPCommon_1_1IErrorNotifier__v1" ],
+ [ "IMemoryAllocator_v1", "classAdobeXMPCommon_1_1IMemoryAllocator__v1.html", "classAdobeXMPCommon_1_1IMemoryAllocator__v1" ],
+ [ "IObjectFactory_v1", "classAdobeXMPCommon_1_1IObjectFactory__v1.html", "classAdobeXMPCommon_1_1IObjectFactory__v1" ],
+ [ "ISharedObject", "classAdobeXMPCommon_1_1ISharedObject.html", "classAdobeXMPCommon_1_1ISharedObject" ],
+ [ "IThreadSafe", "classAdobeXMPCommon_1_1IThreadSafe.html", "classAdobeXMPCommon_1_1IThreadSafe" ],
+ [ "IUTF8String_v1", "classAdobeXMPCommon_1_1IUTF8String__v1.html", "classAdobeXMPCommon_1_1IUTF8String__v1" ],
+ [ "IVersionable", "classAdobeXMPCommon_1_1IVersionable.html", "classAdobeXMPCommon_1_1IVersionable" ],
+ [ "ReportErrorAndContinueFunctor", "classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html", "classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor" ]
+]; \ No newline at end of file
diff --git a/docs/API/namespaceAdobeXMPCommon__Int.html b/docs/API/namespaceAdobeXMPCommon__Int.html
new file mode 100755
index 0000000..24d07c5
--- /dev/null
+++ b/docs/API/namespaceAdobeXMPCommon__Int.html
@@ -0,0 +1,119 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>AdobeXMPCommon_Int Namespace Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
+ <li><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('namespaceAdobeXMPCommon__Int.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#typedef-members">Typedefs</a> </div>
+ <div class="headertitle">
+<div class="title">AdobeXMPCommon_Int Namespace Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:ada4b051c58f05ef398453930451bc13d"><td class="memItemLeft" align="right" valign="top">typedef ISharedObject_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon__Int.html#ada4b051c58f05ef398453930451bc13d">pISharedObject_I</a></td></tr>
+<tr class="separator:ada4b051c58f05ef398453930451bc13d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:affd72b6c7abbc84fdef10b5a607cd432"><td class="memItemLeft" align="right" valign="top">typedef const ISharedObject_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon__Int.html#affd72b6c7abbc84fdef10b5a607cd432">pcISharedObject_I</a></td></tr>
+<tr class="separator:affd72b6c7abbc84fdef10b5a607cd432"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac9c07c42e647a17838c9314b8d2823d9"><td class="memItemLeft" align="right" valign="top">typedef IThreadSafe_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon__Int.html#ac9c07c42e647a17838c9314b8d2823d9">pIThreadSafe_I</a></td></tr>
+<tr class="separator:ac9c07c42e647a17838c9314b8d2823d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2becb4c0d21c71e1dcecdcaae0e92bd7"><td class="memItemLeft" align="right" valign="top">typedef const IThreadSafe_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCommon__Int.html#a2becb4c0d21c71e1dcecdcaae0e92bd7">pcIThreadSafe_I</a></td></tr>
+<tr class="separator:a2becb4c0d21c71e1dcecdcaae0e92bd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="affd72b6c7abbc84fdef10b5a607cd432"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const ISharedObject_I* <a class="el" href="namespaceAdobeXMPCommon__Int.html#affd72b6c7abbc84fdef10b5a607cd432">AdobeXMPCommon_Int::pcISharedObject_I</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00149">149</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2becb4c0d21c71e1dcecdcaae0e92bd7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const IThreadSafe_I* <a class="el" href="namespaceAdobeXMPCommon__Int.html#a2becb4c0d21c71e1dcecdcaae0e92bd7">AdobeXMPCommon_Int::pcIThreadSafe_I</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00154">154</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ada4b051c58f05ef398453930451bc13d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef ISharedObject_I* <a class="el" href="namespaceAdobeXMPCommon__Int.html#ada4b051c58f05ef398453930451bc13d">AdobeXMPCommon_Int::pISharedObject_I</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00147">147</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac9c07c42e647a17838c9314b8d2823d9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef IThreadSafe_I* <a class="el" href="namespaceAdobeXMPCommon__Int.html#ac9c07c42e647a17838c9314b8d2823d9">AdobeXMPCommon_Int::pIThreadSafe_I</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCommonFwdDeclarations_8h_source.html#l00152">152</a> of file <a class="el" href="XMPCommonFwdDeclarations_8h_source.html">XMPCommonFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/namespaceAdobeXMPCore.html b/docs/API/namespaceAdobeXMPCore.html
new file mode 100755
index 0000000..8e570f7
--- /dev/null
+++ b/docs/API/namespaceAdobeXMPCore.html
@@ -0,0 +1,3020 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>AdobeXMPCore Namespace Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
+ <li><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('namespaceAdobeXMPCore.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">AdobeXMPCore Namespace Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html">IArrayNode_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version1 of the interface that represents an Array Node of XMP DOM. <a href="classAdobeXMPCore_1_1IArrayNode__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html">IClientDOMParser_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version 1 of the interface that supports parsing by the client supplied parser of the XMP Data Model. <a href="classAdobeXMPCore_1_1IClientDOMParser__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html">IClientDOMSerializer_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version 1 of the interface that supports serializing by the client supplied serializer of the XMP Data Model. <a href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">ICompositeNode_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version1 of the interface that serves as a base interface to all composite types of nodes in the XMP DOM ( like Arrays and Structures ). <a href="classAdobeXMPCore_1_1ICompositeNode__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html">ICoreConfigurationManager_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version1 of the interface that represents configuration settings controllable by the client. <a href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html">ICoreObjectFactory_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version1 of a interface that represents a factory to create various artifacts of XMP DOM like array, structure, path etc. <a href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html">IDOMImplementationRegistry_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version1 of the interface that serves as a database/registry of all the parsers and serializers available with the XMPCore library. <a href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html">IDOMParser_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version 1 of the interface that supports parsing of the XMP Data Model. <a href="classAdobeXMPCore_1_1IDOMParser__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html">IDOMSerializer_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version1 of the interface that represents an object that can serialize an XMP Data Model to a buffer. Provides the functions to serialize the XMP Data Model. <a href="classAdobeXMPCore_1_1IDOMSerializer__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html">IMetadata_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version1 of the interface that represents the whole xmp metadata for an asset. <a href="classAdobeXMPCore_1_1IMetadata__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">INameSpacePrefixMap_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version1 of the interface that represents map where each entry consists of prefix string as the key and corresponding nameSpace string as its value. <a href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">INode_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version1 of the interface that serves as a base interface to all types of nodes in the XMP DOM. <a href="classAdobeXMPCore_1_1INode__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html">INodeIterator_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface that represents an iterator over the mutable children of a XMP DOM Node. <a href="classAdobeXMPCore_1_1INodeIterator__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IPath__v1.html">IPath_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version1 of the interface that provides an easy iterative description of a specific path into the XMP tree. <a href="classAdobeXMPCore_1_1IPath__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html">IPathSegment_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version1 of the interface that represents one segment in a path to a node into the XMP tree. <a href="classAdobeXMPCore_1_1IPathSegment__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html">ISimpleNode_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version1 of the interface that represents a Simple Property Node of XMP DOM. <a href="classAdobeXMPCore_1_1ISimpleNode__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html">IStructureNode_v1</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version1 of the interface that represents a structure Node of XMP DOM. <a href="classAdobeXMPCore_1_1IStructureNode__v1.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:a459a371e2e25b93998a16921e3536bc7"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">INameSpacePrefixMap_v1</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a459a371e2e25b93998a16921e3536bc7">INameSpacePrefixMap_base</a></td></tr>
+<tr class="separator:a459a371e2e25b93998a16921e3536bc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad7423726463e791584bdeeb0a699c2d6"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">INameSpacePrefixMap_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ad7423726463e791584bdeeb0a699c2d6">pINameSpacePrefixMap_base</a></td></tr>
+<tr class="separator:ad7423726463e791584bdeeb0a699c2d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad877a19389a4ba0dd5ef226470fd7f5b"><td class="memItemLeft" align="right" valign="top">typedef const <a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">INameSpacePrefixMap_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ad877a19389a4ba0dd5ef226470fd7f5b">pcINameSpacePrefixMap_base</a></td></tr>
+<tr class="separator:ad877a19389a4ba0dd5ef226470fd7f5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7c13887bb991ed5707ebae28d26543b1"><td class="memItemLeft" align="right" valign="top">typedef INameSpacePrefixMap *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a7c13887bb991ed5707ebae28d26543b1">pINameSpacePrefixMap</a></td></tr>
+<tr class="separator:a7c13887bb991ed5707ebae28d26543b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac973b0e26fb1fdf9146be95ab9f12b1e"><td class="memItemLeft" align="right" valign="top">typedef const INameSpacePrefixMap *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ac973b0e26fb1fdf9146be95ab9f12b1e">pcINameSpacePrefixMap</a></td></tr>
+<tr class="separator:ac973b0e26fb1fdf9146be95ab9f12b1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab17b1221c559007c5fbc73cf2c555c6c"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; INameSpacePrefixMap &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ab17b1221c559007c5fbc73cf2c555c6c">spINameSpacePrefixMap</a></td></tr>
+<tr class="separator:ab17b1221c559007c5fbc73cf2c555c6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a22f9e572045a61aa3cfc629a0d877d72"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const INameSpacePrefixMap &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a22f9e572045a61aa3cfc629a0d877d72">spcINameSpacePrefixMap</a></td></tr>
+<tr class="separator:a22f9e572045a61aa3cfc629a0d877d72"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7b83ccf46420d268a2cbce051f61a413"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html">IPathSegment_v1</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a7b83ccf46420d268a2cbce051f61a413">IPathSegment_base</a></td></tr>
+<tr class="separator:a7b83ccf46420d268a2cbce051f61a413"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a11f058662f2f67819f52a97154076b"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html">IPathSegment_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a5a11f058662f2f67819f52a97154076b">pIPathSegment_base</a></td></tr>
+<tr class="separator:a5a11f058662f2f67819f52a97154076b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa1d5ef746b351d46f0d9be2d53538d7b"><td class="memItemLeft" align="right" valign="top">typedef const <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html">IPathSegment_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#aa1d5ef746b351d46f0d9be2d53538d7b">pcIPathSegment_base</a></td></tr>
+<tr class="separator:aa1d5ef746b351d46f0d9be2d53538d7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afcc8116b5f4020c02bc96bd91a4d5235"><td class="memItemLeft" align="right" valign="top">typedef IPathSegment *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#afcc8116b5f4020c02bc96bd91a4d5235">pIPathSegment</a></td></tr>
+<tr class="separator:afcc8116b5f4020c02bc96bd91a4d5235"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6ae7c996eea34342b41719bcc4bf766a"><td class="memItemLeft" align="right" valign="top">typedef const IPathSegment *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a6ae7c996eea34342b41719bcc4bf766a">pcIPathSegment</a></td></tr>
+<tr class="separator:a6ae7c996eea34342b41719bcc4bf766a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae339cdf18168ecc8197e651df8f43854"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; IPathSegment &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ae339cdf18168ecc8197e651df8f43854">spIPathSegment</a></td></tr>
+<tr class="separator:ae339cdf18168ecc8197e651df8f43854"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a98ce40154ef1c1d92f2077c8211f2a9c"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const IPathSegment &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a98ce40154ef1c1d92f2077c8211f2a9c">spcIPathSegment</a></td></tr>
+<tr class="separator:a98ce40154ef1c1d92f2077c8211f2a9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab063c96638c29753c9799d3184319b85"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCore_1_1IPath__v1.html">IPath_v1</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ab063c96638c29753c9799d3184319b85">IPath_base</a></td></tr>
+<tr class="separator:ab063c96638c29753c9799d3184319b85"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8a912843a6b3779781ed27cde7e330d6"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCore_1_1IPath__v1.html">IPath_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a8a912843a6b3779781ed27cde7e330d6">pIPath_base</a></td></tr>
+<tr class="separator:a8a912843a6b3779781ed27cde7e330d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a822c7331a85db496adc520310ac6c144"><td class="memItemLeft" align="right" valign="top">typedef const <a class="el" href="classAdobeXMPCore_1_1IPath__v1.html">IPath_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a822c7331a85db496adc520310ac6c144">pcIPath_base</a></td></tr>
+<tr class="separator:a822c7331a85db496adc520310ac6c144"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abce7d351f3258b3edfb1c96e7d2d4945"><td class="memItemLeft" align="right" valign="top">typedef IPath *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#abce7d351f3258b3edfb1c96e7d2d4945">pIPath</a></td></tr>
+<tr class="separator:abce7d351f3258b3edfb1c96e7d2d4945"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a277f8ceb2e7074edb4ce6c3bc906a71c"><td class="memItemLeft" align="right" valign="top">typedef const IPath *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a277f8ceb2e7074edb4ce6c3bc906a71c">pcIPath</a></td></tr>
+<tr class="separator:a277f8ceb2e7074edb4ce6c3bc906a71c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa54f5ed241da9437ad01c1047a199f56"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; IPath &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#aa54f5ed241da9437ad01c1047a199f56">spIPath</a></td></tr>
+<tr class="separator:aa54f5ed241da9437ad01c1047a199f56"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa01e44df0f17d2a1d959710ec856261c"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const IPath &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">spcIPath</a></td></tr>
+<tr class="separator:aa01e44df0f17d2a1d959710ec856261c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a625f7fd9cabaa743f95f3cbd876285d3"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCore_1_1INode__v1.html">INode_v1</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a625f7fd9cabaa743f95f3cbd876285d3">INode_base</a></td></tr>
+<tr class="separator:a625f7fd9cabaa743f95f3cbd876285d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adb4509f09f05618cebbd4f09a5fbb05a"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCore_1_1INode__v1.html">INode_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#adb4509f09f05618cebbd4f09a5fbb05a">pINode_base</a></td></tr>
+<tr class="separator:adb4509f09f05618cebbd4f09a5fbb05a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4cddd2e1fe643106d1c026481157bdc8"><td class="memItemLeft" align="right" valign="top">typedef const <a class="el" href="classAdobeXMPCore_1_1INode__v1.html">INode_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a4cddd2e1fe643106d1c026481157bdc8">pcINode_base</a></td></tr>
+<tr class="separator:a4cddd2e1fe643106d1c026481157bdc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abc833d7b10347a44a303b973337cf536"><td class="memItemLeft" align="right" valign="top">typedef INode *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#abc833d7b10347a44a303b973337cf536">pINode</a></td></tr>
+<tr class="separator:abc833d7b10347a44a303b973337cf536"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab2c77e55a81c018160035cea22f49a1a"><td class="memItemLeft" align="right" valign="top">typedef const INode *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ab2c77e55a81c018160035cea22f49a1a">pcINode</a></td></tr>
+<tr class="separator:ab2c77e55a81c018160035cea22f49a1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeec2c711a611cbc3c77ef1a0bb026e33"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; INode &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a></td></tr>
+<tr class="separator:aeec2c711a611cbc3c77ef1a0bb026e33"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a597eaeb0ed86794ea01f74a5be0f88ed"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const INode &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">spcINode</a></td></tr>
+<tr class="separator:a597eaeb0ed86794ea01f74a5be0f88ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6bdb87029a97b11b3b8ce4d8eb84e7b7"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html">ISimpleNode_v1</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a6bdb87029a97b11b3b8ce4d8eb84e7b7">ISimpleNode_base</a></td></tr>
+<tr class="separator:a6bdb87029a97b11b3b8ce4d8eb84e7b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a14569c99ffc10ff405f51220851fbe36"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html">ISimpleNode_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a14569c99ffc10ff405f51220851fbe36">pISimpleNode_base</a></td></tr>
+<tr class="separator:a14569c99ffc10ff405f51220851fbe36"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abaf2af5208e93c52361d13dff16c959d"><td class="memItemLeft" align="right" valign="top">typedef const <a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html">ISimpleNode_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#abaf2af5208e93c52361d13dff16c959d">pcISimpleNode_base</a></td></tr>
+<tr class="separator:abaf2af5208e93c52361d13dff16c959d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad9403696e40df26b5d17e0d17d6799f0"><td class="memItemLeft" align="right" valign="top">typedef ISimpleNode *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ad9403696e40df26b5d17e0d17d6799f0">pISimpleNode</a></td></tr>
+<tr class="separator:ad9403696e40df26b5d17e0d17d6799f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acff9cacaf46a6c6923117852e63579b6"><td class="memItemLeft" align="right" valign="top">typedef const ISimpleNode *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#acff9cacaf46a6c6923117852e63579b6">pcISimpleNode</a></td></tr>
+<tr class="separator:acff9cacaf46a6c6923117852e63579b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab20ecb8d094c1dd81cb278370b746343"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; ISimpleNode &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a></td></tr>
+<tr class="separator:ab20ecb8d094c1dd81cb278370b746343"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4cb671d44948c7505c33431ec12f6c1f"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const ISimpleNode &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a></td></tr>
+<tr class="separator:a4cb671d44948c7505c33431ec12f6c1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aab9120a7fc533281e84ead6df110e0a5"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">ICompositeNode_v1</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#aab9120a7fc533281e84ead6df110e0a5">ICompositeNode_base</a></td></tr>
+<tr class="separator:aab9120a7fc533281e84ead6df110e0a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a294ebc2cc2287c14558850dcd8c88f1e"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">ICompositeNode_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a294ebc2cc2287c14558850dcd8c88f1e">pICompositeNode_base</a></td></tr>
+<tr class="separator:a294ebc2cc2287c14558850dcd8c88f1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2bb4ccadea260bcce39d23e45f5d592f"><td class="memItemLeft" align="right" valign="top">typedef const <a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">ICompositeNode_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a2bb4ccadea260bcce39d23e45f5d592f">pcICompositeNode_base</a></td></tr>
+<tr class="separator:a2bb4ccadea260bcce39d23e45f5d592f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aef05040bb5475b170f4816511f0655d0"><td class="memItemLeft" align="right" valign="top">typedef ICompositeNode *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#aef05040bb5475b170f4816511f0655d0">pICompositeNode</a></td></tr>
+<tr class="separator:aef05040bb5475b170f4816511f0655d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a920b0717c8a08d3c68ece64a8f815a"><td class="memItemLeft" align="right" valign="top">typedef const ICompositeNode *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a5a920b0717c8a08d3c68ece64a8f815a">pcICompositeNode</a></td></tr>
+<tr class="separator:a5a920b0717c8a08d3c68ece64a8f815a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acfcbb43bd0f659f554877c4f9dd7d459"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; ICompositeNode &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#acfcbb43bd0f659f554877c4f9dd7d459">spICompositeNode</a></td></tr>
+<tr class="separator:acfcbb43bd0f659f554877c4f9dd7d459"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7c98739d62fca879db910ac0fca82c3c"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const ICompositeNode &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a7c98739d62fca879db910ac0fca82c3c">spcICompositeNode</a></td></tr>
+<tr class="separator:a7c98739d62fca879db910ac0fca82c3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8ed683c00df5d7ccdb8428cfc072ca90"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html">IStructureNode_v1</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a8ed683c00df5d7ccdb8428cfc072ca90">IStructureNode_base</a></td></tr>
+<tr class="separator:a8ed683c00df5d7ccdb8428cfc072ca90"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af51bfb0cbccc377fb76fbc7187eb3456"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html">IStructureNode_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#af51bfb0cbccc377fb76fbc7187eb3456">pIStructureNode_base</a></td></tr>
+<tr class="separator:af51bfb0cbccc377fb76fbc7187eb3456"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae429e590ecce9128e7bb3c8ea91c6b16"><td class="memItemLeft" align="right" valign="top">typedef const <a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html">IStructureNode_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ae429e590ecce9128e7bb3c8ea91c6b16">pcIStructureNode_base</a></td></tr>
+<tr class="separator:ae429e590ecce9128e7bb3c8ea91c6b16"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac7a54801a0cd4ae9441548ccfb1fd608"><td class="memItemLeft" align="right" valign="top">typedef IStructureNode *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ac7a54801a0cd4ae9441548ccfb1fd608">pIStructureNode</a></td></tr>
+<tr class="separator:ac7a54801a0cd4ae9441548ccfb1fd608"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abae00582b217eaa165ccf0006afa23bd"><td class="memItemLeft" align="right" valign="top">typedef const IStructureNode *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#abae00582b217eaa165ccf0006afa23bd">pcIStructureNode</a></td></tr>
+<tr class="separator:abae00582b217eaa165ccf0006afa23bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a957c57fcbb47c704fc5c31cf36dcbde7"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; IStructureNode &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a></td></tr>
+<tr class="separator:a957c57fcbb47c704fc5c31cf36dcbde7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab5807ab783087243a3676a19ad6f9b90"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const IStructureNode &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a></td></tr>
+<tr class="separator:ab5807ab783087243a3676a19ad6f9b90"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a91f2a2df5097022662328e102a56a4ea"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html">IArrayNode_v1</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a91f2a2df5097022662328e102a56a4ea">IArrayNode_base</a></td></tr>
+<tr class="separator:a91f2a2df5097022662328e102a56a4ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a47468e9aeeb0e9d2541bccfbbaf916f7"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html">IArrayNode_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a47468e9aeeb0e9d2541bccfbbaf916f7">pIArrayNode_base</a></td></tr>
+<tr class="separator:a47468e9aeeb0e9d2541bccfbbaf916f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a61344da48c839ebe8d613175563935bf"><td class="memItemLeft" align="right" valign="top">typedef const <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html">IArrayNode_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a61344da48c839ebe8d613175563935bf">pcIArrayNode_base</a></td></tr>
+<tr class="separator:a61344da48c839ebe8d613175563935bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0f163418e9969110fdf767b0092a08cd"><td class="memItemLeft" align="right" valign="top">typedef IArrayNode *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a0f163418e9969110fdf767b0092a08cd">pIArrayNode</a></td></tr>
+<tr class="separator:a0f163418e9969110fdf767b0092a08cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3c61d7ec18d24b058624ff83657ad886"><td class="memItemLeft" align="right" valign="top">typedef const IArrayNode *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a3c61d7ec18d24b058624ff83657ad886">pcIArrayNode</a></td></tr>
+<tr class="separator:a3c61d7ec18d24b058624ff83657ad886"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a24e8e82d63d879d77408ce5c7e30c609"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; IArrayNode &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a></td></tr>
+<tr class="separator:a24e8e82d63d879d77408ce5c7e30c609"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4ea338a9eed923abf6aba47a27926a0f"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const IArrayNode &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a></td></tr>
+<tr class="separator:a4ea338a9eed923abf6aba47a27926a0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad0578d38c94516edb5414524392845b7"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html">INodeIterator_v1</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ad0578d38c94516edb5414524392845b7">INodeIterator_base</a></td></tr>
+<tr class="separator:ad0578d38c94516edb5414524392845b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6e8a84e7b4b342b98bc1af7297c30250"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html">INodeIterator_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a6e8a84e7b4b342b98bc1af7297c30250">pINodeIterator_base</a></td></tr>
+<tr class="separator:a6e8a84e7b4b342b98bc1af7297c30250"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a830414d5b50ee73daa2d85efb174921a"><td class="memItemLeft" align="right" valign="top">typedef const <a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html">INodeIterator_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a830414d5b50ee73daa2d85efb174921a">pcINodeIterator_base</a></td></tr>
+<tr class="separator:a830414d5b50ee73daa2d85efb174921a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac162eebfff7088f633bc0dd401a18862"><td class="memItemLeft" align="right" valign="top">typedef INodeIterator *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ac162eebfff7088f633bc0dd401a18862">pINodeIterator</a></td></tr>
+<tr class="separator:ac162eebfff7088f633bc0dd401a18862"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a634afe8da11f5cea93b0f07e8270da5f"><td class="memItemLeft" align="right" valign="top">typedef const INodeIterator *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a634afe8da11f5cea93b0f07e8270da5f">pcINodeIterator</a></td></tr>
+<tr class="separator:a634afe8da11f5cea93b0f07e8270da5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5386a735d9eb66d5859e4657dfeebb7c"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; INodeIterator &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a5386a735d9eb66d5859e4657dfeebb7c">spINodeIterator</a></td></tr>
+<tr class="separator:a5386a735d9eb66d5859e4657dfeebb7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab423c366f29043e79694f805bceddb56"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const INodeIterator &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ab423c366f29043e79694f805bceddb56">spcINodeIterator</a></td></tr>
+<tr class="separator:ab423c366f29043e79694f805bceddb56"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3600be9aa8da5d9fcfd522c76755866b"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html">IMetadata_v1</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a3600be9aa8da5d9fcfd522c76755866b">IMetadata_base</a></td></tr>
+<tr class="separator:a3600be9aa8da5d9fcfd522c76755866b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa6b155d7624638c88d2b64b551ef1b0c"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html">IMetadata_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#aa6b155d7624638c88d2b64b551ef1b0c">pIMetadata_base</a></td></tr>
+<tr class="separator:aa6b155d7624638c88d2b64b551ef1b0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2987cd583f3105668b529ad5fe385481"><td class="memItemLeft" align="right" valign="top">typedef const <a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html">IMetadata_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a2987cd583f3105668b529ad5fe385481">pcIMetadata_base</a></td></tr>
+<tr class="separator:a2987cd583f3105668b529ad5fe385481"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0c1658ecfb260ac950498f17edd5ebd0"><td class="memItemLeft" align="right" valign="top">typedef IMetadata *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a0c1658ecfb260ac950498f17edd5ebd0">pIMetadata</a></td></tr>
+<tr class="separator:a0c1658ecfb260ac950498f17edd5ebd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa542fbf0ea812dbe340cd7837d68ef9f"><td class="memItemLeft" align="right" valign="top">typedef const IMetadata *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#aa542fbf0ea812dbe340cd7837d68ef9f">pcIMetadata</a></td></tr>
+<tr class="separator:aa542fbf0ea812dbe340cd7837d68ef9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7f1de39fd79aeac4402eba73cb1ffe82"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; IMetadata &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a7f1de39fd79aeac4402eba73cb1ffe82">spIMetadata</a></td></tr>
+<tr class="separator:a7f1de39fd79aeac4402eba73cb1ffe82"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1e81ce748e90e850d0a48b0b5943fce2"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const IMetadata &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a1e81ce748e90e850d0a48b0b5943fce2">spcIMetadata</a></td></tr>
+<tr class="separator:a1e81ce748e90e850d0a48b0b5943fce2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acf6b51a9bb0059c712e6e423ef94fd0d"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html">IClientDOMParser_v1</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#acf6b51a9bb0059c712e6e423ef94fd0d">IClientDOMParser_base</a></td></tr>
+<tr class="separator:acf6b51a9bb0059c712e6e423ef94fd0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9dd27d79138a3d399e48343b626cd3a9"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html">IClientDOMParser_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a9dd27d79138a3d399e48343b626cd3a9">pIClientDOMParser_base</a></td></tr>
+<tr class="separator:a9dd27d79138a3d399e48343b626cd3a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a886c1974205be855cea961bfacc60604"><td class="memItemLeft" align="right" valign="top">typedef const <a class="el" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html">IClientDOMParser_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a886c1974205be855cea961bfacc60604">pcIClientDOMParser_base</a></td></tr>
+<tr class="separator:a886c1974205be855cea961bfacc60604"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab5d69f05635d466dcd976f8b2b8e8617"><td class="memItemLeft" align="right" valign="top">typedef IClientDOMParser *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ab5d69f05635d466dcd976f8b2b8e8617">pIClientDOMParser</a></td></tr>
+<tr class="separator:ab5d69f05635d466dcd976f8b2b8e8617"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:affaedf89b30a42f4aea5bb10619d1801"><td class="memItemLeft" align="right" valign="top">typedef const IClientDOMParser *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#affaedf89b30a42f4aea5bb10619d1801">pcIClientDOMParser</a></td></tr>
+<tr class="separator:affaedf89b30a42f4aea5bb10619d1801"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac50d8fc1c60d397b440d075184e01212"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html">IClientDOMSerializer_v1</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ac50d8fc1c60d397b440d075184e01212">IClientDOMSerializer_base</a></td></tr>
+<tr class="separator:ac50d8fc1c60d397b440d075184e01212"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2dfed76bf986f6fad861aa2323b28caf"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html">IClientDOMSerializer_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a2dfed76bf986f6fad861aa2323b28caf">pIClientDOMSerializer_base</a></td></tr>
+<tr class="separator:a2dfed76bf986f6fad861aa2323b28caf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a871b93cc85748a5d49fe9774d3305203"><td class="memItemLeft" align="right" valign="top">typedef const <a class="el" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html">IClientDOMSerializer_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a871b93cc85748a5d49fe9774d3305203">pcIClientDOMSerializer_base</a></td></tr>
+<tr class="separator:a871b93cc85748a5d49fe9774d3305203"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a901745dcadcfc4387450dd28aaa2d490"><td class="memItemLeft" align="right" valign="top">typedef IClientDOMSerializer *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a901745dcadcfc4387450dd28aaa2d490">pIClientDOMSerializer</a></td></tr>
+<tr class="separator:a901745dcadcfc4387450dd28aaa2d490"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad638e9de1a595aa976f69d3773d46d16"><td class="memItemLeft" align="right" valign="top">typedef const IClientDOMSerializer *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ad638e9de1a595aa976f69d3773d46d16">pcIClientDOMSerializer</a></td></tr>
+<tr class="separator:ad638e9de1a595aa976f69d3773d46d16"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afcc78a159d893be198c97d1af098a9e3"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html">IDOMParser_v1</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#afcc78a159d893be198c97d1af098a9e3">IDOMParser_base</a></td></tr>
+<tr class="separator:afcc78a159d893be198c97d1af098a9e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad8fa3ac657a8506d5d25544060c4af15"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html">IDOMParser_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ad8fa3ac657a8506d5d25544060c4af15">pIDOMParser_base</a></td></tr>
+<tr class="separator:ad8fa3ac657a8506d5d25544060c4af15"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a761f1236009e028ec7c95d4e3fa59b71"><td class="memItemLeft" align="right" valign="top">typedef const <a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html">IDOMParser_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a761f1236009e028ec7c95d4e3fa59b71">pcIDOMParser_base</a></td></tr>
+<tr class="separator:a761f1236009e028ec7c95d4e3fa59b71"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8b003da6674d32c5c628f1d0e1fa45aa"><td class="memItemLeft" align="right" valign="top">typedef IDOMParser *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a8b003da6674d32c5c628f1d0e1fa45aa">pIDOMParser</a></td></tr>
+<tr class="separator:a8b003da6674d32c5c628f1d0e1fa45aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6b5fc097880814213414c58da877fea5"><td class="memItemLeft" align="right" valign="top">typedef const IDOMParser *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a6b5fc097880814213414c58da877fea5">pcIDOMParser</a></td></tr>
+<tr class="separator:a6b5fc097880814213414c58da877fea5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a737ec082bb4e7f817b45e073337c0893"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; IDOMParser &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a737ec082bb4e7f817b45e073337c0893">spIDOMParser</a></td></tr>
+<tr class="separator:a737ec082bb4e7f817b45e073337c0893"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a587ba854add16d5201c974a3a0f7050c"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const IDOMParser &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a587ba854add16d5201c974a3a0f7050c">spcIDOMParser</a></td></tr>
+<tr class="separator:a587ba854add16d5201c974a3a0f7050c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2ab7b53419863c354957c09ce4bbb44c"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html">IDOMSerializer_v1</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a2ab7b53419863c354957c09ce4bbb44c">IDOMSerializer_base</a></td></tr>
+<tr class="separator:a2ab7b53419863c354957c09ce4bbb44c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa83dd7633a221cb189681dff2bbd78a3"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html">IDOMSerializer_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#aa83dd7633a221cb189681dff2bbd78a3">pIDOMSerializer_base</a></td></tr>
+<tr class="separator:aa83dd7633a221cb189681dff2bbd78a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9259d01efe1d26b66d5f60cf79f81296"><td class="memItemLeft" align="right" valign="top">typedef const <a class="el" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html">IDOMSerializer_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a9259d01efe1d26b66d5f60cf79f81296">pcIDOMSerializer_base</a></td></tr>
+<tr class="separator:a9259d01efe1d26b66d5f60cf79f81296"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6b414731e356594947b08382866c9fcf"><td class="memItemLeft" align="right" valign="top">typedef IDOMSerializer *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a6b414731e356594947b08382866c9fcf">pIDOMSerializer</a></td></tr>
+<tr class="separator:a6b414731e356594947b08382866c9fcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1de6f60a0aefc1d42bb656731ff33a9b"><td class="memItemLeft" align="right" valign="top">typedef const IDOMSerializer *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a1de6f60a0aefc1d42bb656731ff33a9b">pcIDOMSerializer</a></td></tr>
+<tr class="separator:a1de6f60a0aefc1d42bb656731ff33a9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af3525e619e07f58d7eb8247b56ddad21"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; IDOMSerializer &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#af3525e619e07f58d7eb8247b56ddad21">spIDOMSerializer</a></td></tr>
+<tr class="separator:af3525e619e07f58d7eb8247b56ddad21"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aee2397438ef33989fb100e5923821eb9"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const IDOMSerializer &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#aee2397438ef33989fb100e5923821eb9">spcIDOMSerializer</a></td></tr>
+<tr class="separator:aee2397438ef33989fb100e5923821eb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeab5d78356ee44cbab72a48443d7a026"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html">IDOMImplementationRegistry_v1</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#aeab5d78356ee44cbab72a48443d7a026">IDOMImplementationRegistry_base</a></td></tr>
+<tr class="separator:aeab5d78356ee44cbab72a48443d7a026"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae600077e4e41eec5ebb90fa7510b8b48"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html">IDOMImplementationRegistry_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ae600077e4e41eec5ebb90fa7510b8b48">pIDOMImplementationRegistry_base</a></td></tr>
+<tr class="separator:ae600077e4e41eec5ebb90fa7510b8b48"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a71d91db5d9f5b30fa16b5790948f11cc"><td class="memItemLeft" align="right" valign="top">typedef const <a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html">IDOMImplementationRegistry_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a71d91db5d9f5b30fa16b5790948f11cc">pcIDOMImplementationRegistry_base</a></td></tr>
+<tr class="separator:a71d91db5d9f5b30fa16b5790948f11cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae332986668c86f3e5c6bbd57fd5f4cad"><td class="memItemLeft" align="right" valign="top">typedef IDOMImplementationRegistry *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ae332986668c86f3e5c6bbd57fd5f4cad">pIDOMImplementationRegistry</a></td></tr>
+<tr class="separator:ae332986668c86f3e5c6bbd57fd5f4cad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3971bab010eb9c01783af14c58ccfe54"><td class="memItemLeft" align="right" valign="top">typedef const IDOMImplementationRegistry *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a3971bab010eb9c01783af14c58ccfe54">pcIDOMImplementationRegistry</a></td></tr>
+<tr class="separator:a3971bab010eb9c01783af14c58ccfe54"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a197acc21ecf883449824a1e87a99586a"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; IDOMImplementationRegistry &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a197acc21ecf883449824a1e87a99586a">spIDOMImplementationRegistry</a></td></tr>
+<tr class="separator:a197acc21ecf883449824a1e87a99586a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6efe4728a027ee77597fe1a05a6bc30c"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const IDOMImplementationRegistry &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a6efe4728a027ee77597fe1a05a6bc30c">spcIDOMImplementationRegistry</a></td></tr>
+<tr class="separator:a6efe4728a027ee77597fe1a05a6bc30c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a77c425a2d9deb50bc0ae4d71232dd98a"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html">ICoreObjectFactory_v1</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a77c425a2d9deb50bc0ae4d71232dd98a">ICoreObjectFactory_base</a></td></tr>
+<tr class="separator:a77c425a2d9deb50bc0ae4d71232dd98a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac062cb6e980601a1eedf6085cca9b850"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html">ICoreObjectFactory_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ac062cb6e980601a1eedf6085cca9b850">pICoreObjectFactory_base</a></td></tr>
+<tr class="separator:ac062cb6e980601a1eedf6085cca9b850"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2ccf603c61b8576fb4a0de760e27f6ba"><td class="memItemLeft" align="right" valign="top">typedef const <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html">ICoreObjectFactory_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a2ccf603c61b8576fb4a0de760e27f6ba">pcICoreObjectFactory_base</a></td></tr>
+<tr class="separator:a2ccf603c61b8576fb4a0de760e27f6ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad925e271d292d0b0af1a24342391219d"><td class="memItemLeft" align="right" valign="top">typedef ICoreObjectFactory *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ad925e271d292d0b0af1a24342391219d">pICoreObjectFactory</a></td></tr>
+<tr class="separator:ad925e271d292d0b0af1a24342391219d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a55e6a583f61b00819b7034f9dd2243f9"><td class="memItemLeft" align="right" valign="top">typedef const ICoreObjectFactory *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a55e6a583f61b00819b7034f9dd2243f9">pcICoreObjectFactory</a></td></tr>
+<tr class="separator:a55e6a583f61b00819b7034f9dd2243f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a51c59c2b14cae80da8b1fa5dfa2f4732"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html">ICoreConfigurationManager_v1</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a51c59c2b14cae80da8b1fa5dfa2f4732">ICoreConfigurationManager_base</a></td></tr>
+<tr class="separator:a51c59c2b14cae80da8b1fa5dfa2f4732"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a55c34a6f458c74682e542edd2a258686"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html">ICoreConfigurationManager_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a55c34a6f458c74682e542edd2a258686">pICoreConfigurationManager_base</a></td></tr>
+<tr class="separator:a55c34a6f458c74682e542edd2a258686"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a748a32416e42b563251d682d49535fb8"><td class="memItemLeft" align="right" valign="top">typedef const <a class="el" href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html">ICoreConfigurationManager_v1</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a748a32416e42b563251d682d49535fb8">pcICoreConfigurationManager_base</a></td></tr>
+<tr class="separator:a748a32416e42b563251d682d49535fb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0476368bde6f3c6e43e3659ae092f6e1"><td class="memItemLeft" align="right" valign="top">typedef ICoreConfigurationManager *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a0476368bde6f3c6e43e3659ae092f6e1">pICoreConfigurationManager</a></td></tr>
+<tr class="separator:a0476368bde6f3c6e43e3659ae092f6e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a691bc74f235854166554f597f777bb5f"><td class="memItemLeft" align="right" valign="top">typedef const ICoreConfigurationManager *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a691bc74f235854166554f597f777bb5f">pcICoreConfigurationManager</a></td></tr>
+<tr class="separator:a691bc74f235854166554f597f777bb5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a123c6e847d41233c9e4ba6c64a650c7f"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; ICoreConfigurationManager &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a123c6e847d41233c9e4ba6c64a650c7f">spICoreConfigurationManager</a></td></tr>
+<tr class="separator:a123c6e847d41233c9e4ba6c64a650c7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a885f02b2d6de4b5403445eb74e5e2ce6"><td class="memItemLeft" align="right" valign="top">typedef shared_ptr&lt; const ICoreConfigurationManager &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a885f02b2d6de4b5403445eb74e5e2ce6">spcICoreConfigurationManager</a></td></tr>
+<tr class="separator:a885f02b2d6de4b5403445eb74e5e2ce6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:aacd1fd7f96affcf9707f45c272f08a00"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00">eDataModelErrorCode</a> { <br />
+&#160;&#160;<a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a2c80efa41e7821f6226aa59f28dfb579">kDMECNone</a> = 0,
+<a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00ac32e4160006f15e60fd7024cf6f7ac97">kDMECNameSpacePrefixMapEntryMissing</a> = 1,
+<a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00ae7e65aa4749b12616a43316687d6a355">kDMECDifferentNodeTypePresent</a> = 2,
+<a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a161dfd9dfc01ba8d6c4e17732f6c0acb">kDMECNodeAlreadyAChild</a> = 3,
+<br />
+&#160;&#160;<a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a92ffb54182a7cf24b2f09851a6e5fa4a">kDMECNodeAlreadyExists</a> = 4,
+<a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00ae89776605ae99914cfe1b32cb4674c26">kDMECNoSuchNodeExists</a> = 5,
+<a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a3b02c3806196f643a69970dd75b25464">kDMECArrayItemTypeDifferent</a> = 6,
+<a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a7643a6753e328945c9f2580bed3366b1">kDMECInvalidPathSegment</a> = 7,
+<br />
+&#160;&#160;<a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a3053414fb4821785a9dc653ec9ac3c64">kDMECBadSchema</a> = 101,
+<a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a5969c9392bfb21fc391de418925e8b4f">kDMECBadXPath</a> = 102,
+<a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a24f924ad842132ebd85573d0f93bd7f2">kDMECBadOptions</a> = 103,
+<a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a9b4b77cfab51a51107011966c97e40e1">kDMECBadIterPosition</a> = 104,
+<br />
+&#160;&#160;<a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a8214373306d98cbb58dd480b825d490f">kDMECBadUnicode</a> = 105,
+<a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00af8aa55dc3ffd9c4d4612463ed430b262">kDMECValidationError</a> = 106,
+<a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00ac1c31716f2bb30971e3b1d33b9993234">kDMECEmptyIterator</a> = 107,
+<a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a301e1376a4475452904ef20167a254a3">kDMECMaxValue</a> = kMaxEnumValue
+<br />
+ }</td></tr>
+<tr class="separator:aacd1fd7f96affcf9707f45c272f08a00"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afab54256094fbdd7a9732e4582675341"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341">eParserErrorCode</a> { <br />
+&#160;&#160;<a class="el" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341aca80ed9623ff6873b2057b4f9a4f82ac">kPECNone</a> = 0,
+<a class="el" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341aa537d1ba3f2a47c9feb5b183338314a9">kPECBadXML</a> = 1,
+<a class="el" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341a05b1bde4783b56530499a6015d7704e9">kPECBadRDF</a> = 2,
+<a class="el" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341a25971d0de364f541b042f0f21df412eb">kPECBadXMP</a> = 3,
+<br />
+&#160;&#160;<a class="el" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341aed1376b733f98e4cb670d9beba0d6339">kPECInvalidContextNode</a> = 4,
+<a class="el" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341a7c8e86e45ec62e9748301065944b38ac">kPECContextNodeIsNonComposite</a> = 5,
+<a class="el" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341a2f23307e996411a65ac6e206f7557264">kPECContextNodeParentIsNonArray</a> = 6,
+<a class="el" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341ae5fc4151a61d73cf47d5ed861dc4ec02">kPECMaxValue</a> = kMaxEnumValue
+<br />
+ }<tr class="memdesc:afab54256094fbdd7a9732e4582675341"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates various errors encountered during parsing. <a href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:afab54256094fbdd7a9732e4582675341"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad4e9bcfc5d25760a93189c0ba2962c3e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3e">eSerializerErrorCode</a> { <a class="el" href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3ea852818fcc062b51ded30ae5cc6943ef8">kSECNone</a> = 0,
+<a class="el" href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3ea199673856ea7c62993fb5850817b9181">kSECSizeExceed</a> = 1,
+<a class="el" href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3ea0f3c48b132df0de45927cf636944ccee">kSECUnRegisteredNameSpace</a> = 2,
+<a class="el" href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3ea2e8b7434f32a1f65875dd7ac184af458">kSECMaxValue</a> = kMaxEnumValue
+ }<tr class="memdesc:ad4e9bcfc5d25760a93189c0ba2962c3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates various errors encountered during serialization. <a href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3e">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:ad4e9bcfc5d25760a93189c0ba2962c3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ab25d27977dd99a041e01a4b8558f08fe"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ab25d27977dd99a041e01a4b8558f08fe">BASE_CLASS</a> (INameSpacePrefixMap, <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a79e1c8ec2c46a2cbee3ba9cfd0d78ad4">INAMESPACEPREFIXMAP_VERSION</a>) INameSpacePrefixMap</td></tr>
+<tr class="separator:ab25d27977dd99a041e01a4b8558f08fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aab6f1fa4adf9d3b8c40d4e8f601ddfdf"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#aab6f1fa4adf9d3b8c40d4e8f601ddfdf">kINameSpacePrefixMapID</a> (0x634e5350724d6170)</td></tr>
+<tr class="separator:aab6f1fa4adf9d3b8c40d4e8f601ddfdf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad4e3ab53add36a4678405f4b1ac5826b"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ad4e3ab53add36a4678405f4b1ac5826b">BASE_CLASS</a> (IPathSegment, <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a42cb9bdb3894ac77ff614349e5c371e5">IPATHSEGMENT_VERSION</a>) IPathSegment</td></tr>
+<tr class="separator:ad4e3ab53add36a4678405f4b1ac5826b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a20562f7f885eacd89465270be790c31f"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a20562f7f885eacd89465270be790c31f">kIPathSegmentID</a> (0x6350617468536567)</td></tr>
+<tr class="separator:a20562f7f885eacd89465270be790c31f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aae83a987190b96eba7659457c737709c"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#aae83a987190b96eba7659457c737709c">BASE_CLASS</a> (IPath, <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#adc9fb16e479a79e35a9dc58e166fcbad">IPATH_VERSION</a>) IPath</td></tr>
+<tr class="separator:aae83a987190b96eba7659457c737709c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a169bb4bbf2a32d4201625eca17bde615"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a169bb4bbf2a32d4201625eca17bde615">kIPathID</a> (0x6350617468202020)</td></tr>
+<tr class="separator:a169bb4bbf2a32d4201625eca17bde615"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa8b539533f4842694b7d5c5ac05e4961"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#aa8b539533f4842694b7d5c5ac05e4961">BASE_CLASS</a> (INode, <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#aff2b1eabe2ac90a68ba3690930494a17">INODE_VERSION</a>) INode</td></tr>
+<tr class="separator:aa8b539533f4842694b7d5c5ac05e4961"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae76eb0e35e0e35e5b476b6fecc6e3603"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ae76eb0e35e0e35e5b476b6fecc6e3603">kINodeID</a> (0x634e6f6465202020)</td></tr>
+<tr class="separator:ae76eb0e35e0e35e5b476b6fecc6e3603"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa13d8ba12f5ac8ec0b73323472a9c977"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#aa13d8ba12f5ac8ec0b73323472a9c977">BASE_CLASS</a> (ISimpleNode, <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a799da65cf5811707628bb2681a4545ec">ISIMPLENODE_VERSION</a>) ISimpleNode</td></tr>
+<tr class="separator:aa13d8ba12f5ac8ec0b73323472a9c977"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a258ec247968bc8e101a087b2f914c95b"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a258ec247968bc8e101a087b2f914c95b">kISimpleNodeID</a> (0x63536d6c4e6f6465)</td></tr>
+<tr class="separator:a258ec247968bc8e101a087b2f914c95b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac94856cb1ce1f56b29673bc3eda30a2b"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ac94856cb1ce1f56b29673bc3eda30a2b">BASE_CLASS</a> (ICompositeNode, <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#aefe5b8d014bd0f2ca4933a16572b51df">ICOMPOSITENODE_VERSION</a>) ICompositeNode</td></tr>
+<tr class="separator:ac94856cb1ce1f56b29673bc3eda30a2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a663e9a570224c4361f5ab883e32cf460"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a663e9a570224c4361f5ab883e32cf460">kICompositeNodeID</a> (0x63436d704e6f6465)</td></tr>
+<tr class="separator:a663e9a570224c4361f5ab883e32cf460"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac94822da2d3427c627df15c4af5824d3"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ac94822da2d3427c627df15c4af5824d3">BASE_CLASS</a> (IStructureNode, <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a28325920d39a80ba79dd3774ce056f45">ISTRUCTURENODE_VERSION</a>) IStructureNode</td></tr>
+<tr class="separator:ac94822da2d3427c627df15c4af5824d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a099de3a79749ee161daf59313861702e"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a099de3a79749ee161daf59313861702e">kIStructureNodeID</a> (0x635374724e6f6465)</td></tr>
+<tr class="separator:a099de3a79749ee161daf59313861702e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aafbff1ea559ac40a588ee191a94b25af"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#aafbff1ea559ac40a588ee191a94b25af">BASE_CLASS</a> (IArrayNode, <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a1f8464a97acb8671e6cc2a466955d45d">IARRAYNODE_VERSION</a>) IArrayNode</td></tr>
+<tr class="separator:aafbff1ea559ac40a588ee191a94b25af"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a865ec7a2af5304ec42d443da038ae5b7"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a865ec7a2af5304ec42d443da038ae5b7">kIArrayNodeID</a> (0x634172724e6f6465)</td></tr>
+<tr class="separator:a865ec7a2af5304ec42d443da038ae5b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a66384130267cdd648e0f677128635123"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a66384130267cdd648e0f677128635123">BASE_CLASS</a> (INodeIterator, <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#afe7756c974951e8e78be1cfb96aacc8b">INODEITERATOR_VERSION</a>) INodeIterator</td></tr>
+<tr class="separator:a66384130267cdd648e0f677128635123"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afb1db1e3afd3cb409aab3c32435b506b"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#afb1db1e3afd3cb409aab3c32435b506b">kINodeIteratorID</a> (0x634e6f6465497420)</td></tr>
+<tr class="separator:afb1db1e3afd3cb409aab3c32435b506b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1da997b938e393546c72aca8811b5300"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a1da997b938e393546c72aca8811b5300">BASE_CLASS</a> (IMetadata, <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#af7d51c3ccf825fc82fa4a2a6cca26bc8">IMETADATA_VERSION</a>) IMetadata</td></tr>
+<tr class="separator:a1da997b938e393546c72aca8811b5300"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae266f1d0a72a69dbbad9443f1b4140e6"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#ae266f1d0a72a69dbbad9443f1b4140e6">kIMetadataID</a> (0x634d657461646174)</td></tr>
+<tr class="separator:ae266f1d0a72a69dbbad9443f1b4140e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a257c4389ad7bddfa28bfdf34d92bd28b"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a257c4389ad7bddfa28bfdf34d92bd28b">BASE_CLASS</a> (IClientDOMParser, <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a64636b4e59a6212968ad30494675603e">ICLIENTDOMPARSER_VERSION</a>) IClientDOMParser</td></tr>
+<tr class="separator:a257c4389ad7bddfa28bfdf34d92bd28b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a207afe21d3d4fcb8cb1170ba646003f4"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a207afe21d3d4fcb8cb1170ba646003f4">BASE_CLASS</a> (IClientDOMSerializer, <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#aa928953eda71cda88699483e1fca4526">ICLIENTDOMSERIALIZER_VERSION</a>) IClientDOMSerializer</td></tr>
+<tr class="separator:a207afe21d3d4fcb8cb1170ba646003f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a812c55394dd0d590ae2ca9a4e0178671"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a812c55394dd0d590ae2ca9a4e0178671">BASE_CLASS</a> (IDOMParser, <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a813f82b55a0bb68c1553e8b38592e705">IDOMPARSER_VERSION</a>) IDOMParser</td></tr>
+<tr class="separator:a812c55394dd0d590ae2ca9a4e0178671"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa11deda1f160ba3bfba36558afcaa0ef"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#aa11deda1f160ba3bfba36558afcaa0ef">kIDOMParserID</a> (0x63444f4d50727372)</td></tr>
+<tr class="separator:aa11deda1f160ba3bfba36558afcaa0ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3dba425488e67755405e5e9b1476babc"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a3dba425488e67755405e5e9b1476babc">BASE_CLASS</a> (IDOMSerializer, <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a52d6e44f27f19214b38959683d6cc829">IDOMSERIALIZER_VERSION</a>) IDOMSerializer</td></tr>
+<tr class="separator:a3dba425488e67755405e5e9b1476babc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a16e22df4b5facaffff284ab0104404a9"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a16e22df4b5facaffff284ab0104404a9">kIDOMSerializerID</a> (0x63444f4d53726c7a)</td></tr>
+<tr class="separator:a16e22df4b5facaffff284ab0104404a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa62775052accb00b04f530857b5fc18a"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#aa62775052accb00b04f530857b5fc18a">BASE_CLASS</a> (IDOMImplementationRegistry, <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#aa34dc59f9267eceb6d51235cd778292e">IDOMIMPLEMENTATIONREGISTRY_VERSION</a>) IDOMImplementationRegistry</td></tr>
+<tr class="separator:aa62775052accb00b04f530857b5fc18a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6d787e316880e838d2a03f641a520a5b"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a6d787e316880e838d2a03f641a520a5b">kIDOMImplementationRegistryID</a> (0x63444f4d52677374)</td></tr>
+<tr class="separator:a6d787e316880e838d2a03f641a520a5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1d1b0939f67456659a36e11ce594690d"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a1d1b0939f67456659a36e11ce594690d">BASE_CLASS</a> (ICoreObjectFactory, <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a3d28ba37018741b3794789e5edc6e27e">ICOREOBJECTFACTORY_VERSION</a>) ICoreObjectFactory</td></tr>
+<tr class="separator:a1d1b0939f67456659a36e11ce594690d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a30bb255921760813b83dfb94449051dd"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a30bb255921760813b83dfb94449051dd">kICoreObjectFactoryID</a> (0x634f626a46616374)</td></tr>
+<tr class="separator:a30bb255921760813b83dfb94449051dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2fea5ada7406b2712ed3bfeecf84c2e2"><td class="memItemLeft" align="right" valign="top">typedef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a2fea5ada7406b2712ed3bfeecf84c2e2">BASE_CLASS</a> (ICoreConfigurationManager, <a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#adf7818c7264e7a80b1b3c5a5b283c47c">ICORECONFIGURATIONMANAGER_VERSION</a>) ICoreConfigurationManager</td></tr>
+<tr class="separator:a2fea5ada7406b2712ed3bfeecf84c2e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1fb39caa1c8eeed351b0fca6eca60577"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore.html#a1fb39caa1c8eeed351b0fca6eca60577">kICoreConfigurationManagerID</a> (0x63436f6e664d6772)</td></tr>
+<tr class="separator:a1fb39caa1c8eeed351b0fca6eca60577"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="a91f2a2df5097022662328e102a56a4ea"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html">IArrayNode_v1</a> <a class="el" href="namespaceAdobeXMPCore.html#a91f2a2df5097022662328e102a56a4ea">AdobeXMPCore::IArrayNode_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00106">106</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="acf6b51a9bb0059c712e6e423ef94fd0d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html">IClientDOMParser_v1</a> <a class="el" href="namespaceAdobeXMPCore.html#acf6b51a9bb0059c712e6e423ef94fd0d">AdobeXMPCore::IClientDOMParser_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00142">142</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac50d8fc1c60d397b440d075184e01212"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html">IClientDOMSerializer_v1</a> <a class="el" href="namespaceAdobeXMPCore.html#ac50d8fc1c60d397b440d075184e01212">AdobeXMPCore::IClientDOMSerializer_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00151">151</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aab9120a7fc533281e84ead6df110e0a5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">ICompositeNode_v1</a> <a class="el" href="namespaceAdobeXMPCore.html#aab9120a7fc533281e84ead6df110e0a5">AdobeXMPCore::ICompositeNode_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00082">82</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a51c59c2b14cae80da8b1fa5dfa2f4732"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html">ICoreConfigurationManager_v1</a> <a class="el" href="namespaceAdobeXMPCore.html#a51c59c2b14cae80da8b1fa5dfa2f4732">AdobeXMPCore::ICoreConfigurationManager_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00206">206</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a77c425a2d9deb50bc0ae4d71232dd98a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html">ICoreObjectFactory_v1</a> <a class="el" href="namespaceAdobeXMPCore.html#a77c425a2d9deb50bc0ae4d71232dd98a">AdobeXMPCore::ICoreObjectFactory_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00196">196</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aeab5d78356ee44cbab72a48443d7a026"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html">IDOMImplementationRegistry_v1</a> <a class="el" href="namespaceAdobeXMPCore.html#aeab5d78356ee44cbab72a48443d7a026">AdobeXMPCore::IDOMImplementationRegistry_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00184">184</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="afcc78a159d893be198c97d1af098a9e3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html">IDOMParser_v1</a> <a class="el" href="namespaceAdobeXMPCore.html#afcc78a159d893be198c97d1af098a9e3">AdobeXMPCore::IDOMParser_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00160">160</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2ab7b53419863c354957c09ce4bbb44c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html">IDOMSerializer_v1</a> <a class="el" href="namespaceAdobeXMPCore.html#a2ab7b53419863c354957c09ce4bbb44c">AdobeXMPCore::IDOMSerializer_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00172">172</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3600be9aa8da5d9fcfd522c76755866b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html">IMetadata_v1</a> <a class="el" href="namespaceAdobeXMPCore.html#a3600be9aa8da5d9fcfd522c76755866b">AdobeXMPCore::IMetadata_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00130">130</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a459a371e2e25b93998a16921e3536bc7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">INameSpacePrefixMap_v1</a> <a class="el" href="namespaceAdobeXMPCore.html#a459a371e2e25b93998a16921e3536bc7">AdobeXMPCore::INameSpacePrefixMap_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00022">22</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a625f7fd9cabaa743f95f3cbd876285d3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCore_1_1INode__v1.html">INode_v1</a> <a class="el" href="namespaceAdobeXMPCore.html#a625f7fd9cabaa743f95f3cbd876285d3">AdobeXMPCore::INode_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00058">58</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad0578d38c94516edb5414524392845b7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html">INodeIterator_v1</a> <a class="el" href="namespaceAdobeXMPCore.html#ad0578d38c94516edb5414524392845b7">AdobeXMPCore::INodeIterator_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00118">118</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab063c96638c29753c9799d3184319b85"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCore_1_1IPath__v1.html">IPath_v1</a> <a class="el" href="namespaceAdobeXMPCore.html#ab063c96638c29753c9799d3184319b85">AdobeXMPCore::IPath_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00046">46</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7b83ccf46420d268a2cbce051f61a413"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html">IPathSegment_v1</a> <a class="el" href="namespaceAdobeXMPCore.html#a7b83ccf46420d268a2cbce051f61a413">AdobeXMPCore::IPathSegment_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00034">34</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6bdb87029a97b11b3b8ce4d8eb84e7b7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html">ISimpleNode_v1</a> <a class="el" href="namespaceAdobeXMPCore.html#a6bdb87029a97b11b3b8ce4d8eb84e7b7">AdobeXMPCore::ISimpleNode_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00070">70</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8ed683c00df5d7ccdb8428cfc072ca90"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html">IStructureNode_v1</a> <a class="el" href="namespaceAdobeXMPCore.html#a8ed683c00df5d7ccdb8428cfc072ca90">AdobeXMPCore::IStructureNode_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00094">94</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3c61d7ec18d24b058624ff83657ad886"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const IArrayNode* <a class="el" href="namespaceAdobeXMPCore.html#a3c61d7ec18d24b058624ff83657ad886">AdobeXMPCore::pcIArrayNode</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00112">112</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a61344da48c839ebe8d613175563935bf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html">IArrayNode_v1</a>* <a class="el" href="namespaceAdobeXMPCore.html#a61344da48c839ebe8d613175563935bf">AdobeXMPCore::pcIArrayNode_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00109">109</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="affaedf89b30a42f4aea5bb10619d1801"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const IClientDOMParser* <a class="el" href="namespaceAdobeXMPCore.html#affaedf89b30a42f4aea5bb10619d1801">AdobeXMPCore::pcIClientDOMParser</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00148">148</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a886c1974205be855cea961bfacc60604"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const <a class="el" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html">IClientDOMParser_v1</a>* <a class="el" href="namespaceAdobeXMPCore.html#a886c1974205be855cea961bfacc60604">AdobeXMPCore::pcIClientDOMParser_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00145">145</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad638e9de1a595aa976f69d3773d46d16"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const IClientDOMSerializer* <a class="el" href="namespaceAdobeXMPCore.html#ad638e9de1a595aa976f69d3773d46d16">AdobeXMPCore::pcIClientDOMSerializer</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00157">157</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a871b93cc85748a5d49fe9774d3305203"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const <a class="el" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html">IClientDOMSerializer_v1</a>* <a class="el" href="namespaceAdobeXMPCore.html#a871b93cc85748a5d49fe9774d3305203">AdobeXMPCore::pcIClientDOMSerializer_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00154">154</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5a920b0717c8a08d3c68ece64a8f815a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const ICompositeNode* <a class="el" href="namespaceAdobeXMPCore.html#a5a920b0717c8a08d3c68ece64a8f815a">AdobeXMPCore::pcICompositeNode</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00088">88</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2bb4ccadea260bcce39d23e45f5d592f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const <a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">ICompositeNode_v1</a>* <a class="el" href="namespaceAdobeXMPCore.html#a2bb4ccadea260bcce39d23e45f5d592f">AdobeXMPCore::pcICompositeNode_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00085">85</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a691bc74f235854166554f597f777bb5f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const ICoreConfigurationManager* <a class="el" href="namespaceAdobeXMPCore.html#a691bc74f235854166554f597f777bb5f">AdobeXMPCore::pcICoreConfigurationManager</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00212">212</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a748a32416e42b563251d682d49535fb8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const <a class="el" href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html">ICoreConfigurationManager_v1</a>* <a class="el" href="namespaceAdobeXMPCore.html#a748a32416e42b563251d682d49535fb8">AdobeXMPCore::pcICoreConfigurationManager_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00209">209</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a55e6a583f61b00819b7034f9dd2243f9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const ICoreObjectFactory* <a class="el" href="namespaceAdobeXMPCore.html#a55e6a583f61b00819b7034f9dd2243f9">AdobeXMPCore::pcICoreObjectFactory</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00202">202</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2ccf603c61b8576fb4a0de760e27f6ba"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html">ICoreObjectFactory_v1</a>* <a class="el" href="namespaceAdobeXMPCore.html#a2ccf603c61b8576fb4a0de760e27f6ba">AdobeXMPCore::pcICoreObjectFactory_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00199">199</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3971bab010eb9c01783af14c58ccfe54"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const IDOMImplementationRegistry* <a class="el" href="namespaceAdobeXMPCore.html#a3971bab010eb9c01783af14c58ccfe54">AdobeXMPCore::pcIDOMImplementationRegistry</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00190">190</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a71d91db5d9f5b30fa16b5790948f11cc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const <a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html">IDOMImplementationRegistry_v1</a>* <a class="el" href="namespaceAdobeXMPCore.html#a71d91db5d9f5b30fa16b5790948f11cc">AdobeXMPCore::pcIDOMImplementationRegistry_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00187">187</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6b5fc097880814213414c58da877fea5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const IDOMParser* <a class="el" href="namespaceAdobeXMPCore.html#a6b5fc097880814213414c58da877fea5">AdobeXMPCore::pcIDOMParser</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00166">166</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a761f1236009e028ec7c95d4e3fa59b71"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const <a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html">IDOMParser_v1</a>* <a class="el" href="namespaceAdobeXMPCore.html#a761f1236009e028ec7c95d4e3fa59b71">AdobeXMPCore::pcIDOMParser_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00163">163</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1de6f60a0aefc1d42bb656731ff33a9b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const IDOMSerializer* <a class="el" href="namespaceAdobeXMPCore.html#a1de6f60a0aefc1d42bb656731ff33a9b">AdobeXMPCore::pcIDOMSerializer</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00178">178</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9259d01efe1d26b66d5f60cf79f81296"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const <a class="el" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html">IDOMSerializer_v1</a>* <a class="el" href="namespaceAdobeXMPCore.html#a9259d01efe1d26b66d5f60cf79f81296">AdobeXMPCore::pcIDOMSerializer_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00175">175</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa542fbf0ea812dbe340cd7837d68ef9f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const IMetadata* <a class="el" href="namespaceAdobeXMPCore.html#aa542fbf0ea812dbe340cd7837d68ef9f">AdobeXMPCore::pcIMetadata</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00136">136</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2987cd583f3105668b529ad5fe385481"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const <a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html">IMetadata_v1</a>* <a class="el" href="namespaceAdobeXMPCore.html#a2987cd583f3105668b529ad5fe385481">AdobeXMPCore::pcIMetadata_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00133">133</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac973b0e26fb1fdf9146be95ab9f12b1e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const INameSpacePrefixMap* <a class="el" href="namespaceAdobeXMPCore.html#ac973b0e26fb1fdf9146be95ab9f12b1e">AdobeXMPCore::pcINameSpacePrefixMap</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00028">28</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad877a19389a4ba0dd5ef226470fd7f5b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const <a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">INameSpacePrefixMap_v1</a>* <a class="el" href="namespaceAdobeXMPCore.html#ad877a19389a4ba0dd5ef226470fd7f5b">AdobeXMPCore::pcINameSpacePrefixMap_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00025">25</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab2c77e55a81c018160035cea22f49a1a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const INode* <a class="el" href="namespaceAdobeXMPCore.html#ab2c77e55a81c018160035cea22f49a1a">AdobeXMPCore::pcINode</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00064">64</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4cddd2e1fe643106d1c026481157bdc8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const <a class="el" href="classAdobeXMPCore_1_1INode__v1.html">INode_v1</a>* <a class="el" href="namespaceAdobeXMPCore.html#a4cddd2e1fe643106d1c026481157bdc8">AdobeXMPCore::pcINode_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00061">61</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a634afe8da11f5cea93b0f07e8270da5f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const INodeIterator* <a class="el" href="namespaceAdobeXMPCore.html#a634afe8da11f5cea93b0f07e8270da5f">AdobeXMPCore::pcINodeIterator</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00124">124</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a830414d5b50ee73daa2d85efb174921a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const <a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html">INodeIterator_v1</a>* <a class="el" href="namespaceAdobeXMPCore.html#a830414d5b50ee73daa2d85efb174921a">AdobeXMPCore::pcINodeIterator_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00121">121</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a277f8ceb2e7074edb4ce6c3bc906a71c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const IPath* <a class="el" href="namespaceAdobeXMPCore.html#a277f8ceb2e7074edb4ce6c3bc906a71c">AdobeXMPCore::pcIPath</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00052">52</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a822c7331a85db496adc520310ac6c144"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const <a class="el" href="classAdobeXMPCore_1_1IPath__v1.html">IPath_v1</a>* <a class="el" href="namespaceAdobeXMPCore.html#a822c7331a85db496adc520310ac6c144">AdobeXMPCore::pcIPath_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00049">49</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6ae7c996eea34342b41719bcc4bf766a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const IPathSegment* <a class="el" href="namespaceAdobeXMPCore.html#a6ae7c996eea34342b41719bcc4bf766a">AdobeXMPCore::pcIPathSegment</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00040">40</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa1d5ef746b351d46f0d9be2d53538d7b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html">IPathSegment_v1</a>* <a class="el" href="namespaceAdobeXMPCore.html#aa1d5ef746b351d46f0d9be2d53538d7b">AdobeXMPCore::pcIPathSegment_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00037">37</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="acff9cacaf46a6c6923117852e63579b6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const ISimpleNode* <a class="el" href="namespaceAdobeXMPCore.html#acff9cacaf46a6c6923117852e63579b6">AdobeXMPCore::pcISimpleNode</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00076">76</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abaf2af5208e93c52361d13dff16c959d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const <a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html">ISimpleNode_v1</a>* <a class="el" href="namespaceAdobeXMPCore.html#abaf2af5208e93c52361d13dff16c959d">AdobeXMPCore::pcISimpleNode_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00073">73</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abae00582b217eaa165ccf0006afa23bd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const IStructureNode* <a class="el" href="namespaceAdobeXMPCore.html#abae00582b217eaa165ccf0006afa23bd">AdobeXMPCore::pcIStructureNode</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00100">100</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae429e590ecce9128e7bb3c8ea91c6b16"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const <a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html">IStructureNode_v1</a>* <a class="el" href="namespaceAdobeXMPCore.html#ae429e590ecce9128e7bb3c8ea91c6b16">AdobeXMPCore::pcIStructureNode_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00097">97</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0f163418e9969110fdf767b0092a08cd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef IArrayNode* <a class="el" href="namespaceAdobeXMPCore.html#a0f163418e9969110fdf767b0092a08cd">AdobeXMPCore::pIArrayNode</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00111">111</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a47468e9aeeb0e9d2541bccfbbaf916f7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCore_1_1IArrayNode__v1.html">IArrayNode_v1</a>* <a class="el" href="namespaceAdobeXMPCore.html#a47468e9aeeb0e9d2541bccfbbaf916f7">AdobeXMPCore::pIArrayNode_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00108">108</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab5d69f05635d466dcd976f8b2b8e8617"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef IClientDOMParser* <a class="el" href="namespaceAdobeXMPCore.html#ab5d69f05635d466dcd976f8b2b8e8617">AdobeXMPCore::pIClientDOMParser</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00147">147</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9dd27d79138a3d399e48343b626cd3a9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCore_1_1IClientDOMParser__v1.html">IClientDOMParser_v1</a>* <a class="el" href="namespaceAdobeXMPCore.html#a9dd27d79138a3d399e48343b626cd3a9">AdobeXMPCore::pIClientDOMParser_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00144">144</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a901745dcadcfc4387450dd28aaa2d490"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef IClientDOMSerializer* <a class="el" href="namespaceAdobeXMPCore.html#a901745dcadcfc4387450dd28aaa2d490">AdobeXMPCore::pIClientDOMSerializer</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00156">156</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2dfed76bf986f6fad861aa2323b28caf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCore_1_1IClientDOMSerializer__v1.html">IClientDOMSerializer_v1</a>* <a class="el" href="namespaceAdobeXMPCore.html#a2dfed76bf986f6fad861aa2323b28caf">AdobeXMPCore::pIClientDOMSerializer_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00153">153</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aef05040bb5475b170f4816511f0655d0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef ICompositeNode* <a class="el" href="namespaceAdobeXMPCore.html#aef05040bb5475b170f4816511f0655d0">AdobeXMPCore::pICompositeNode</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00087">87</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a294ebc2cc2287c14558850dcd8c88f1e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCore_1_1ICompositeNode__v1.html">ICompositeNode_v1</a>* <a class="el" href="namespaceAdobeXMPCore.html#a294ebc2cc2287c14558850dcd8c88f1e">AdobeXMPCore::pICompositeNode_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00084">84</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0476368bde6f3c6e43e3659ae092f6e1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef ICoreConfigurationManager* <a class="el" href="namespaceAdobeXMPCore.html#a0476368bde6f3c6e43e3659ae092f6e1">AdobeXMPCore::pICoreConfigurationManager</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00211">211</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a55c34a6f458c74682e542edd2a258686"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html">ICoreConfigurationManager_v1</a>* <a class="el" href="namespaceAdobeXMPCore.html#a55c34a6f458c74682e542edd2a258686">AdobeXMPCore::pICoreConfigurationManager_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00208">208</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad925e271d292d0b0af1a24342391219d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef ICoreObjectFactory* <a class="el" href="namespaceAdobeXMPCore.html#ad925e271d292d0b0af1a24342391219d">AdobeXMPCore::pICoreObjectFactory</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00201">201</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac062cb6e980601a1eedf6085cca9b850"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html">ICoreObjectFactory_v1</a>* <a class="el" href="namespaceAdobeXMPCore.html#ac062cb6e980601a1eedf6085cca9b850">AdobeXMPCore::pICoreObjectFactory_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00198">198</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae332986668c86f3e5c6bbd57fd5f4cad"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef IDOMImplementationRegistry* <a class="el" href="namespaceAdobeXMPCore.html#ae332986668c86f3e5c6bbd57fd5f4cad">AdobeXMPCore::pIDOMImplementationRegistry</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00189">189</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae600077e4e41eec5ebb90fa7510b8b48"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html">IDOMImplementationRegistry_v1</a>* <a class="el" href="namespaceAdobeXMPCore.html#ae600077e4e41eec5ebb90fa7510b8b48">AdobeXMPCore::pIDOMImplementationRegistry_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00186">186</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8b003da6674d32c5c628f1d0e1fa45aa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef IDOMParser* <a class="el" href="namespaceAdobeXMPCore.html#a8b003da6674d32c5c628f1d0e1fa45aa">AdobeXMPCore::pIDOMParser</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00165">165</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad8fa3ac657a8506d5d25544060c4af15"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCore_1_1IDOMParser__v1.html">IDOMParser_v1</a>* <a class="el" href="namespaceAdobeXMPCore.html#ad8fa3ac657a8506d5d25544060c4af15">AdobeXMPCore::pIDOMParser_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00162">162</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6b414731e356594947b08382866c9fcf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef IDOMSerializer* <a class="el" href="namespaceAdobeXMPCore.html#a6b414731e356594947b08382866c9fcf">AdobeXMPCore::pIDOMSerializer</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00177">177</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa83dd7633a221cb189681dff2bbd78a3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCore_1_1IDOMSerializer__v1.html">IDOMSerializer_v1</a>* <a class="el" href="namespaceAdobeXMPCore.html#aa83dd7633a221cb189681dff2bbd78a3">AdobeXMPCore::pIDOMSerializer_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00174">174</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0c1658ecfb260ac950498f17edd5ebd0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef IMetadata* <a class="el" href="namespaceAdobeXMPCore.html#a0c1658ecfb260ac950498f17edd5ebd0">AdobeXMPCore::pIMetadata</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00135">135</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa6b155d7624638c88d2b64b551ef1b0c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCore_1_1IMetadata__v1.html">IMetadata_v1</a>* <a class="el" href="namespaceAdobeXMPCore.html#aa6b155d7624638c88d2b64b551ef1b0c">AdobeXMPCore::pIMetadata_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00132">132</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7c13887bb991ed5707ebae28d26543b1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef INameSpacePrefixMap* <a class="el" href="namespaceAdobeXMPCore.html#a7c13887bb991ed5707ebae28d26543b1">AdobeXMPCore::pINameSpacePrefixMap</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00027">27</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad7423726463e791584bdeeb0a699c2d6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html">INameSpacePrefixMap_v1</a>* <a class="el" href="namespaceAdobeXMPCore.html#ad7423726463e791584bdeeb0a699c2d6">AdobeXMPCore::pINameSpacePrefixMap_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00024">24</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abc833d7b10347a44a303b973337cf536"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef INode* <a class="el" href="namespaceAdobeXMPCore.html#abc833d7b10347a44a303b973337cf536">AdobeXMPCore::pINode</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00063">63</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="adb4509f09f05618cebbd4f09a5fbb05a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCore_1_1INode__v1.html">INode_v1</a>* <a class="el" href="namespaceAdobeXMPCore.html#adb4509f09f05618cebbd4f09a5fbb05a">AdobeXMPCore::pINode_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00060">60</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac162eebfff7088f633bc0dd401a18862"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef INodeIterator* <a class="el" href="namespaceAdobeXMPCore.html#ac162eebfff7088f633bc0dd401a18862">AdobeXMPCore::pINodeIterator</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00123">123</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6e8a84e7b4b342b98bc1af7297c30250"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCore_1_1INodeIterator__v1.html">INodeIterator_v1</a>* <a class="el" href="namespaceAdobeXMPCore.html#a6e8a84e7b4b342b98bc1af7297c30250">AdobeXMPCore::pINodeIterator_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00120">120</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abce7d351f3258b3edfb1c96e7d2d4945"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef IPath* <a class="el" href="namespaceAdobeXMPCore.html#abce7d351f3258b3edfb1c96e7d2d4945">AdobeXMPCore::pIPath</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00051">51</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8a912843a6b3779781ed27cde7e330d6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCore_1_1IPath__v1.html">IPath_v1</a>* <a class="el" href="namespaceAdobeXMPCore.html#a8a912843a6b3779781ed27cde7e330d6">AdobeXMPCore::pIPath_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00048">48</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="afcc8116b5f4020c02bc96bd91a4d5235"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef IPathSegment* <a class="el" href="namespaceAdobeXMPCore.html#afcc8116b5f4020c02bc96bd91a4d5235">AdobeXMPCore::pIPathSegment</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00039">39</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5a11f058662f2f67819f52a97154076b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCore_1_1IPathSegment__v1.html">IPathSegment_v1</a>* <a class="el" href="namespaceAdobeXMPCore.html#a5a11f058662f2f67819f52a97154076b">AdobeXMPCore::pIPathSegment_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00036">36</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad9403696e40df26b5d17e0d17d6799f0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef ISimpleNode* <a class="el" href="namespaceAdobeXMPCore.html#ad9403696e40df26b5d17e0d17d6799f0">AdobeXMPCore::pISimpleNode</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00075">75</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a14569c99ffc10ff405f51220851fbe36"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCore_1_1ISimpleNode__v1.html">ISimpleNode_v1</a>* <a class="el" href="namespaceAdobeXMPCore.html#a14569c99ffc10ff405f51220851fbe36">AdobeXMPCore::pISimpleNode_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00072">72</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac7a54801a0cd4ae9441548ccfb1fd608"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef IStructureNode* <a class="el" href="namespaceAdobeXMPCore.html#ac7a54801a0cd4ae9441548ccfb1fd608">AdobeXMPCore::pIStructureNode</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00099">99</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af51bfb0cbccc377fb76fbc7187eb3456"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classAdobeXMPCore_1_1IStructureNode__v1.html">IStructureNode_v1</a>* <a class="el" href="namespaceAdobeXMPCore.html#af51bfb0cbccc377fb76fbc7187eb3456">AdobeXMPCore::pIStructureNode_base</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00096">96</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4ea338a9eed923abf6aba47a27926a0f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; const IArrayNode &gt; <a class="el" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">AdobeXMPCore::spcIArrayNode</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00114">114</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7c98739d62fca879db910ac0fca82c3c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; const ICompositeNode &gt; <a class="el" href="namespaceAdobeXMPCore.html#a7c98739d62fca879db910ac0fca82c3c">AdobeXMPCore::spcICompositeNode</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00090">90</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a885f02b2d6de4b5403445eb74e5e2ce6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; const ICoreConfigurationManager &gt; <a class="el" href="namespaceAdobeXMPCore.html#a885f02b2d6de4b5403445eb74e5e2ce6">AdobeXMPCore::spcICoreConfigurationManager</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00214">214</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6efe4728a027ee77597fe1a05a6bc30c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; const IDOMImplementationRegistry &gt; <a class="el" href="namespaceAdobeXMPCore.html#a6efe4728a027ee77597fe1a05a6bc30c">AdobeXMPCore::spcIDOMImplementationRegistry</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00192">192</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a587ba854add16d5201c974a3a0f7050c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; const IDOMParser &gt; <a class="el" href="namespaceAdobeXMPCore.html#a587ba854add16d5201c974a3a0f7050c">AdobeXMPCore::spcIDOMParser</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00168">168</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aee2397438ef33989fb100e5923821eb9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; const IDOMSerializer &gt; <a class="el" href="namespaceAdobeXMPCore.html#aee2397438ef33989fb100e5923821eb9">AdobeXMPCore::spcIDOMSerializer</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00180">180</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1e81ce748e90e850d0a48b0b5943fce2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; const IMetadata &gt; <a class="el" href="namespaceAdobeXMPCore.html#a1e81ce748e90e850d0a48b0b5943fce2">AdobeXMPCore::spcIMetadata</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00138">138</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a22f9e572045a61aa3cfc629a0d877d72"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; const INameSpacePrefixMap &gt; <a class="el" href="namespaceAdobeXMPCore.html#a22f9e572045a61aa3cfc629a0d877d72">AdobeXMPCore::spcINameSpacePrefixMap</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00030">30</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a597eaeb0ed86794ea01f74a5be0f88ed"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; const INode &gt; <a class="el" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">AdobeXMPCore::spcINode</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00066">66</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab423c366f29043e79694f805bceddb56"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; const INodeIterator &gt; <a class="el" href="namespaceAdobeXMPCore.html#ab423c366f29043e79694f805bceddb56">AdobeXMPCore::spcINodeIterator</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00126">126</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa01e44df0f17d2a1d959710ec856261c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; const IPath &gt; <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">AdobeXMPCore::spcIPath</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00054">54</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a98ce40154ef1c1d92f2077c8211f2a9c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; const IPathSegment &gt; <a class="el" href="namespaceAdobeXMPCore.html#a98ce40154ef1c1d92f2077c8211f2a9c">AdobeXMPCore::spcIPathSegment</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00042">42</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4cb671d44948c7505c33431ec12f6c1f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; const ISimpleNode &gt; <a class="el" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">AdobeXMPCore::spcISimpleNode</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00078">78</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab5807ab783087243a3676a19ad6f9b90"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; const IStructureNode &gt; <a class="el" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">AdobeXMPCore::spcIStructureNode</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00102">102</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a24e8e82d63d879d77408ce5c7e30c609"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; IArrayNode &gt; <a class="el" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">AdobeXMPCore::spIArrayNode</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00113">113</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="acfcbb43bd0f659f554877c4f9dd7d459"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; ICompositeNode &gt; <a class="el" href="namespaceAdobeXMPCore.html#acfcbb43bd0f659f554877c4f9dd7d459">AdobeXMPCore::spICompositeNode</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00089">89</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a123c6e847d41233c9e4ba6c64a650c7f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; ICoreConfigurationManager &gt; <a class="el" href="namespaceAdobeXMPCore.html#a123c6e847d41233c9e4ba6c64a650c7f">AdobeXMPCore::spICoreConfigurationManager</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00213">213</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a197acc21ecf883449824a1e87a99586a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; IDOMImplementationRegistry &gt; <a class="el" href="namespaceAdobeXMPCore.html#a197acc21ecf883449824a1e87a99586a">AdobeXMPCore::spIDOMImplementationRegistry</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00191">191</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a737ec082bb4e7f817b45e073337c0893"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; IDOMParser &gt; <a class="el" href="namespaceAdobeXMPCore.html#a737ec082bb4e7f817b45e073337c0893">AdobeXMPCore::spIDOMParser</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00167">167</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af3525e619e07f58d7eb8247b56ddad21"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; IDOMSerializer &gt; <a class="el" href="namespaceAdobeXMPCore.html#af3525e619e07f58d7eb8247b56ddad21">AdobeXMPCore::spIDOMSerializer</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00179">179</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7f1de39fd79aeac4402eba73cb1ffe82"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; IMetadata &gt; <a class="el" href="namespaceAdobeXMPCore.html#a7f1de39fd79aeac4402eba73cb1ffe82">AdobeXMPCore::spIMetadata</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00137">137</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab17b1221c559007c5fbc73cf2c555c6c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; INameSpacePrefixMap &gt; <a class="el" href="namespaceAdobeXMPCore.html#ab17b1221c559007c5fbc73cf2c555c6c">AdobeXMPCore::spINameSpacePrefixMap</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00029">29</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aeec2c711a611cbc3c77ef1a0bb026e33"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; INode &gt; <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">AdobeXMPCore::spINode</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00065">65</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5386a735d9eb66d5859e4657dfeebb7c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; INodeIterator &gt; <a class="el" href="namespaceAdobeXMPCore.html#a5386a735d9eb66d5859e4657dfeebb7c">AdobeXMPCore::spINodeIterator</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00125">125</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa54f5ed241da9437ad01c1047a199f56"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; IPath &gt; <a class="el" href="namespaceAdobeXMPCore.html#aa54f5ed241da9437ad01c1047a199f56">AdobeXMPCore::spIPath</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00053">53</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae339cdf18168ecc8197e651df8f43854"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; IPathSegment &gt; <a class="el" href="namespaceAdobeXMPCore.html#ae339cdf18168ecc8197e651df8f43854">AdobeXMPCore::spIPathSegment</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00041">41</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab20ecb8d094c1dd81cb278370b746343"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; ISimpleNode &gt; <a class="el" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">AdobeXMPCore::spISimpleNode</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00077">77</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a957c57fcbb47c704fc5c31cf36dcbde7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef shared_ptr&lt; IStructureNode &gt; <a class="el" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">AdobeXMPCore::spIStructureNode</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00101">101</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Enumeration Type Documentation</h2>
+<a class="anchor" id="aacd1fd7f96affcf9707f45c272f08a00"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00">AdobeXMPCore::eDataModelErrorCode</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="aacd1fd7f96affcf9707f45c272f08a00a2c80efa41e7821f6226aa59f28dfb579"></a>kDMECNone&#160;</td><td class="fielddoc">
+<p>Indicates no error. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="aacd1fd7f96affcf9707f45c272f08a00ac32e4160006f15e60fd7024cf6f7ac97"></a>kDMECNameSpacePrefixMapEntryMissing&#160;</td><td class="fielddoc">
+<p>Indicates that IXMPNameSpacePrefixMap has an entry missing. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="aacd1fd7f96affcf9707f45c272f08a00ae7e65aa4749b12616a43316687d6a355"></a>kDMECDifferentNodeTypePresent&#160;</td><td class="fielddoc">
+<p>Indicates that a different type of node is present than one user is expecting. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="aacd1fd7f96affcf9707f45c272f08a00a161dfd9dfc01ba8d6c4e17732f6c0acb"></a>kDMECNodeAlreadyAChild&#160;</td><td class="fielddoc">
+<p>Indicates that node is already a child of another parent. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="aacd1fd7f96affcf9707f45c272f08a00a92ffb54182a7cf24b2f09851a6e5fa4a"></a>kDMECNodeAlreadyExists&#160;</td><td class="fielddoc">
+<p>Indicates a node with the same qualified name or index already exists. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="aacd1fd7f96affcf9707f45c272f08a00ae89776605ae99914cfe1b32cb4674c26"></a>kDMECNoSuchNodeExists&#160;</td><td class="fielddoc">
+<p>Indicates no such node exists. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="aacd1fd7f96affcf9707f45c272f08a00a3b02c3806196f643a69970dd75b25464"></a>kDMECArrayItemTypeDifferent&#160;</td><td class="fielddoc">
+<p>Indicates current array element type is not same as that of other child items. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="aacd1fd7f96affcf9707f45c272f08a00a7643a6753e328945c9f2580bed3366b1"></a>kDMECInvalidPathSegment&#160;</td><td class="fielddoc">
+<p>Indicates invalid path segment inside a path. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="aacd1fd7f96affcf9707f45c272f08a00a3053414fb4821785a9dc653ec9ac3c64"></a>kDMECBadSchema&#160;</td><td class="fielddoc">
+<p>Indicates Bad schema parameter. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="aacd1fd7f96affcf9707f45c272f08a00a5969c9392bfb21fc391de418925e8b4f"></a>kDMECBadXPath&#160;</td><td class="fielddoc">
+<p>Indicates Bad XPath parameter. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="aacd1fd7f96affcf9707f45c272f08a00a24f924ad842132ebd85573d0f93bd7f2"></a>kDMECBadOptions&#160;</td><td class="fielddoc">
+<p>Indicates Bad options parameter. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="aacd1fd7f96affcf9707f45c272f08a00a9b4b77cfab51a51107011966c97e40e1"></a>kDMECBadIterPosition&#160;</td><td class="fielddoc">
+<p>Indicates Bad iteration position. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="aacd1fd7f96affcf9707f45c272f08a00a8214373306d98cbb58dd480b825d490f"></a>kDMECBadUnicode&#160;</td><td class="fielddoc">
+<p>Indicates Unicode error. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="aacd1fd7f96affcf9707f45c272f08a00af8aa55dc3ffd9c4d4612463ed430b262"></a>kDMECValidationError&#160;</td><td class="fielddoc">
+<p>Indicates XMP format error. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="aacd1fd7f96affcf9707f45c272f08a00ac1c31716f2bb30971e3b1d33b9993234"></a>kDMECEmptyIterator&#160;</td><td class="fielddoc">
+<p>Indicates Empty iterator. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="aacd1fd7f96affcf9707f45c272f08a00a301e1376a4475452904ef20167a254a3"></a>kDMECMaxValue&#160;</td><td class="fielddoc">
+<p>Maximum value this enum can hold, should be treated as invalid value. </p>
+</td></tr>
+</table>
+
+<p>Definition at line <a class="el" href="XMPCoreErrorCodes_8h_source.html#l00018">18</a> of file <a class="el" href="XMPCoreErrorCodes_8h_source.html">XMPCoreErrorCodes.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; {</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a2c80efa41e7821f6226aa59f28dfb579">kDMECNone</a> = 0,</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00ac32e4160006f15e60fd7024cf6f7ac97">kDMECNameSpacePrefixMapEntryMissing</a> = 1,</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00ae7e65aa4749b12616a43316687d6a355">kDMECDifferentNodeTypePresent</a> = 2,</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a161dfd9dfc01ba8d6c4e17732f6c0acb">kDMECNodeAlreadyAChild</a> = 3,</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a92ffb54182a7cf24b2f09851a6e5fa4a">kDMECNodeAlreadyExists</a> = 4,</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00ae89776605ae99914cfe1b32cb4674c26">kDMECNoSuchNodeExists</a> = 5,</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a3b02c3806196f643a69970dd75b25464">kDMECArrayItemTypeDifferent</a> = 6,</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a7643a6753e328945c9f2580bed3366b1">kDMECInvalidPathSegment</a> = 7,</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a3053414fb4821785a9dc653ec9ac3c64">kDMECBadSchema</a> = 101,</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a5969c9392bfb21fc391de418925e8b4f">kDMECBadXPath</a> = 102,</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a24f924ad842132ebd85573d0f93bd7f2">kDMECBadOptions</a> = 103,</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a9b4b77cfab51a51107011966c97e40e1">kDMECBadIterPosition</a> = 104,</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a8214373306d98cbb58dd480b825d490f">kDMECBadUnicode</a> = 105,</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00af8aa55dc3ffd9c4d4612463ed430b262">kDMECValidationError</a> = 106,</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00ac1c31716f2bb30971e3b1d33b9993234">kDMECEmptyIterator</a> = 107,</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a301e1376a4475452904ef20167a254a3">kDMECMaxValue</a> = <a class="code" href="namespaceAdobeXMPCommon.html#a8ec7e2a77ea452c3d46bb7dbbc722574">kMaxEnumValue</a></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; } <a class="code" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00">eDataModelErrorCode</a>;</div><div class="ttc" id="namespaceAdobeXMPCore_html_aacd1fd7f96affcf9707f45c272f08a00ae89776605ae99914cfe1b32cb4674c26"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00ae89776605ae99914cfe1b32cb4674c26">AdobeXMPCore::kDMECNoSuchNodeExists</a></div><div class="ttdoc">Indicates no such node exists. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00035">XMPCoreErrorCodes.h:35</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aacd1fd7f96affcf9707f45c272f08a00ae7e65aa4749b12616a43316687d6a355"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00ae7e65aa4749b12616a43316687d6a355">AdobeXMPCore::kDMECDifferentNodeTypePresent</a></div><div class="ttdoc">Indicates that a different type of node is present than one user is expecting. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00026">XMPCoreErrorCodes.h:26</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aacd1fd7f96affcf9707f45c272f08a00a301e1376a4475452904ef20167a254a3"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a301e1376a4475452904ef20167a254a3">AdobeXMPCore::kDMECMaxValue</a></div><div class="ttdoc">Maximum value this enum can hold, should be treated as invalid value. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00065">XMPCoreErrorCodes.h:65</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aacd1fd7f96affcf9707f45c272f08a00a3b02c3806196f643a69970dd75b25464"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a3b02c3806196f643a69970dd75b25464">AdobeXMPCore::kDMECArrayItemTypeDifferent</a></div><div class="ttdoc">Indicates current array element type is not same as that of other child items. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00038">XMPCoreErrorCodes.h:38</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aacd1fd7f96affcf9707f45c272f08a00a8214373306d98cbb58dd480b825d490f"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a8214373306d98cbb58dd480b825d490f">AdobeXMPCore::kDMECBadUnicode</a></div><div class="ttdoc">Indicates Unicode error. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00056">XMPCoreErrorCodes.h:56</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aacd1fd7f96affcf9707f45c272f08a00a7643a6753e328945c9f2580bed3366b1"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a7643a6753e328945c9f2580bed3366b1">AdobeXMPCore::kDMECInvalidPathSegment</a></div><div class="ttdoc">Indicates invalid path segment inside a path. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00041">XMPCoreErrorCodes.h:41</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aacd1fd7f96affcf9707f45c272f08a00a2c80efa41e7821f6226aa59f28dfb579"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a2c80efa41e7821f6226aa59f28dfb579">AdobeXMPCore::kDMECNone</a></div><div class="ttdoc">Indicates no error. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00020">XMPCoreErrorCodes.h:20</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aacd1fd7f96affcf9707f45c272f08a00a3053414fb4821785a9dc653ec9ac3c64"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a3053414fb4821785a9dc653ec9ac3c64">AdobeXMPCore::kDMECBadSchema</a></div><div class="ttdoc">Indicates Bad schema parameter. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00044">XMPCoreErrorCodes.h:44</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aacd1fd7f96affcf9707f45c272f08a00a24f924ad842132ebd85573d0f93bd7f2"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a24f924ad842132ebd85573d0f93bd7f2">AdobeXMPCore::kDMECBadOptions</a></div><div class="ttdoc">Indicates Bad options parameter. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00050">XMPCoreErrorCodes.h:50</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aacd1fd7f96affcf9707f45c272f08a00a92ffb54182a7cf24b2f09851a6e5fa4a"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a92ffb54182a7cf24b2f09851a6e5fa4a">AdobeXMPCore::kDMECNodeAlreadyExists</a></div><div class="ttdoc">Indicates a node with the same qualified name or index already exists. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00032">XMPCoreErrorCodes.h:32</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aacd1fd7f96affcf9707f45c272f08a00af8aa55dc3ffd9c4d4612463ed430b262"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00af8aa55dc3ffd9c4d4612463ed430b262">AdobeXMPCore::kDMECValidationError</a></div><div class="ttdoc">Indicates XMP format error. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00059">XMPCoreErrorCodes.h:59</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8ec7e2a77ea452c3d46bb7dbbc722574"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8ec7e2a77ea452c3d46bb7dbbc722574">AdobeXMPCommon::kMaxEnumValue</a></div><div class="ttdeci">static const uint32 kMaxEnumValue(Max_XMP_Uns32)</div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aacd1fd7f96affcf9707f45c272f08a00ac1c31716f2bb30971e3b1d33b9993234"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00ac1c31716f2bb30971e3b1d33b9993234">AdobeXMPCore::kDMECEmptyIterator</a></div><div class="ttdoc">Indicates Empty iterator. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00062">XMPCoreErrorCodes.h:62</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aacd1fd7f96affcf9707f45c272f08a00a5969c9392bfb21fc391de418925e8b4f"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a5969c9392bfb21fc391de418925e8b4f">AdobeXMPCore::kDMECBadXPath</a></div><div class="ttdoc">Indicates Bad XPath parameter. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00047">XMPCoreErrorCodes.h:47</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aacd1fd7f96affcf9707f45c272f08a00a161dfd9dfc01ba8d6c4e17732f6c0acb"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a161dfd9dfc01ba8d6c4e17732f6c0acb">AdobeXMPCore::kDMECNodeAlreadyAChild</a></div><div class="ttdoc">Indicates that node is already a child of another parent. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00029">XMPCoreErrorCodes.h:29</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aacd1fd7f96affcf9707f45c272f08a00"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00">AdobeXMPCore::eDataModelErrorCode</a></div><div class="ttdeci">eDataModelErrorCode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00018">XMPCoreErrorCodes.h:18</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aacd1fd7f96affcf9707f45c272f08a00a9b4b77cfab51a51107011966c97e40e1"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a9b4b77cfab51a51107011966c97e40e1">AdobeXMPCore::kDMECBadIterPosition</a></div><div class="ttdoc">Indicates Bad iteration position. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00053">XMPCoreErrorCodes.h:53</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_aacd1fd7f96affcf9707f45c272f08a00ac32e4160006f15e60fd7024cf6f7ac97"><div class="ttname"><a href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00ac32e4160006f15e60fd7024cf6f7ac97">AdobeXMPCore::kDMECNameSpacePrefixMapEntryMissing</a></div><div class="ttdoc">Indicates that IXMPNameSpacePrefixMap has an entry missing. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00023">XMPCoreErrorCodes.h:23</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="afab54256094fbdd7a9732e4582675341"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341">AdobeXMPCore::eParserErrorCode</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Indicates various errors encountered during parsing. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="afab54256094fbdd7a9732e4582675341aca80ed9623ff6873b2057b4f9a4f82ac"></a>kPECNone&#160;</td><td class="fielddoc">
+<p>Indicates no error. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="afab54256094fbdd7a9732e4582675341aa537d1ba3f2a47c9feb5b183338314a9"></a>kPECBadXML&#160;</td><td class="fielddoc">
+<p>Indicates XML parsing error. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="afab54256094fbdd7a9732e4582675341a05b1bde4783b56530499a6015d7704e9"></a>kPECBadRDF&#160;</td><td class="fielddoc">
+<p>RDF format error. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="afab54256094fbdd7a9732e4582675341a25971d0de364f541b042f0f21df412eb"></a>kPECBadXMP&#160;</td><td class="fielddoc">
+<p>XMP format error. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="afab54256094fbdd7a9732e4582675341aed1376b733f98e4cb670d9beba0d6339"></a>kPECInvalidContextNode&#160;</td><td class="fielddoc">
+<p>Context Node is invalid. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="afab54256094fbdd7a9732e4582675341a7c8e86e45ec62e9748301065944b38ac"></a>kPECContextNodeIsNonComposite&#160;</td><td class="fielddoc">
+<p>Context Node is not a composite node. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="afab54256094fbdd7a9732e4582675341a2f23307e996411a65ac6e206f7557264"></a>kPECContextNodeParentIsNonArray&#160;</td><td class="fielddoc">
+<p>Parent of Context Node is not an array node. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="afab54256094fbdd7a9732e4582675341ae5fc4151a61d73cf47d5ed861dc4ec02"></a>kPECMaxValue&#160;</td><td class="fielddoc">
+<p>Maximum value this enum can hold, should be treated as invalid value. </p>
+</td></tr>
+</table>
+
+<p>Definition at line <a class="el" href="XMPCoreErrorCodes_8h_source.html#l00071">71</a> of file <a class="el" href="XMPCoreErrorCodes_8h_source.html">XMPCoreErrorCodes.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341aca80ed9623ff6873b2057b4f9a4f82ac">kPECNone</a> = 0,</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; </div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341aa537d1ba3f2a47c9feb5b183338314a9">kPECBadXML</a> = 1,</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341a05b1bde4783b56530499a6015d7704e9">kPECBadRDF</a> = 2,</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341a25971d0de364f541b042f0f21df412eb">kPECBadXMP</a> = 3,</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341aed1376b733f98e4cb670d9beba0d6339">kPECInvalidContextNode</a> = 4,</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341a7c8e86e45ec62e9748301065944b38ac">kPECContextNodeIsNonComposite</a> = 5,</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341a2f23307e996411a65ac6e206f7557264">kPECContextNodeParentIsNonArray</a> = 6,</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341ae5fc4151a61d73cf47d5ed861dc4ec02">kPECMaxValue</a> = <a class="code" href="namespaceAdobeXMPCommon.html#a8ec7e2a77ea452c3d46bb7dbbc722574">kMaxEnumValue</a></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; } <a class="code" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341">eParserErrorCode</a>;</div><div class="ttc" id="namespaceAdobeXMPCore_html_afab54256094fbdd7a9732e4582675341a25971d0de364f541b042f0f21df412eb"><div class="ttname"><a href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341a25971d0de364f541b042f0f21df412eb">AdobeXMPCore::kPECBadXMP</a></div><div class="ttdoc">XMP format error. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00082">XMPCoreErrorCodes.h:82</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_afab54256094fbdd7a9732e4582675341a05b1bde4783b56530499a6015d7704e9"><div class="ttname"><a href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341a05b1bde4783b56530499a6015d7704e9">AdobeXMPCore::kPECBadRDF</a></div><div class="ttdoc">RDF format error. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00079">XMPCoreErrorCodes.h:79</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_afab54256094fbdd7a9732e4582675341aca80ed9623ff6873b2057b4f9a4f82ac"><div class="ttname"><a href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341aca80ed9623ff6873b2057b4f9a4f82ac">AdobeXMPCore::kPECNone</a></div><div class="ttdoc">Indicates no error. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00073">XMPCoreErrorCodes.h:73</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_afab54256094fbdd7a9732e4582675341a2f23307e996411a65ac6e206f7557264"><div class="ttname"><a href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341a2f23307e996411a65ac6e206f7557264">AdobeXMPCore::kPECContextNodeParentIsNonArray</a></div><div class="ttdoc">Parent of Context Node is not an array node. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00091">XMPCoreErrorCodes.h:91</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_afab54256094fbdd7a9732e4582675341aed1376b733f98e4cb670d9beba0d6339"><div class="ttname"><a href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341aed1376b733f98e4cb670d9beba0d6339">AdobeXMPCore::kPECInvalidContextNode</a></div><div class="ttdoc">Context Node is invalid. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00085">XMPCoreErrorCodes.h:85</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_afab54256094fbdd7a9732e4582675341ae5fc4151a61d73cf47d5ed861dc4ec02"><div class="ttname"><a href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341ae5fc4151a61d73cf47d5ed861dc4ec02">AdobeXMPCore::kPECMaxValue</a></div><div class="ttdoc">Maximum value this enum can hold, should be treated as invalid value. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00094">XMPCoreErrorCodes.h:94</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_afab54256094fbdd7a9732e4582675341"><div class="ttname"><a href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341">AdobeXMPCore::eParserErrorCode</a></div><div class="ttdeci">eParserErrorCode</div><div class="ttdoc">Indicates various errors encountered during parsing. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00071">XMPCoreErrorCodes.h:71</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8ec7e2a77ea452c3d46bb7dbbc722574"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8ec7e2a77ea452c3d46bb7dbbc722574">AdobeXMPCommon::kMaxEnumValue</a></div><div class="ttdeci">static const uint32 kMaxEnumValue(Max_XMP_Uns32)</div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_afab54256094fbdd7a9732e4582675341a7c8e86e45ec62e9748301065944b38ac"><div class="ttname"><a href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341a7c8e86e45ec62e9748301065944b38ac">AdobeXMPCore::kPECContextNodeIsNonComposite</a></div><div class="ttdoc">Context Node is not a composite node. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00088">XMPCoreErrorCodes.h:88</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_afab54256094fbdd7a9732e4582675341aa537d1ba3f2a47c9feb5b183338314a9"><div class="ttname"><a href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341aa537d1ba3f2a47c9feb5b183338314a9">AdobeXMPCore::kPECBadXML</a></div><div class="ttdoc">Indicates XML parsing error. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00076">XMPCoreErrorCodes.h:76</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="ad4e9bcfc5d25760a93189c0ba2962c3e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3e">AdobeXMPCore::eSerializerErrorCode</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Indicates various errors encountered during serialization. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="ad4e9bcfc5d25760a93189c0ba2962c3ea852818fcc062b51ded30ae5cc6943ef8"></a>kSECNone&#160;</td><td class="fielddoc">
+<p>Indicates no error. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="ad4e9bcfc5d25760a93189c0ba2962c3ea199673856ea7c62993fb5850817b9181"></a>kSECSizeExceed&#160;</td><td class="fielddoc">
+<p>Indicates serialization failed to achieve size requirement. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="ad4e9bcfc5d25760a93189c0ba2962c3ea0f3c48b132df0de45927cf636944ccee"></a>kSECUnRegisteredNameSpace&#160;</td><td class="fielddoc">
+<p>Indicates un registered namespace encountered during serialization. </p>
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="ad4e9bcfc5d25760a93189c0ba2962c3ea2e8b7434f32a1f65875dd7ac184af458"></a>kSECMaxValue&#160;</td><td class="fielddoc">
+<p>Maximum value this enum can hold, should be treated as invalid value. </p>
+</td></tr>
+</table>
+
+<p>Definition at line <a class="el" href="XMPCoreErrorCodes_8h_source.html#l00100">100</a> of file <a class="el" href="XMPCoreErrorCodes_8h_source.html">XMPCoreErrorCodes.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; {</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3ea852818fcc062b51ded30ae5cc6943ef8">kSECNone</a> = 0,</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3ea199673856ea7c62993fb5850817b9181">kSECSizeExceed</a> = 1,</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3ea0f3c48b132df0de45927cf636944ccee">kSECUnRegisteredNameSpace</a> = 2,</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="code" href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3ea2e8b7434f32a1f65875dd7ac184af458">kSECMaxValue</a> = <a class="code" href="namespaceAdobeXMPCommon.html#a8ec7e2a77ea452c3d46bb7dbbc722574">kMaxEnumValue</a></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; } <a class="code" href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3e">eSerializerErrorCode</a>;</div><div class="ttc" id="namespaceAdobeXMPCore_html_ad4e9bcfc5d25760a93189c0ba2962c3ea2e8b7434f32a1f65875dd7ac184af458"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3ea2e8b7434f32a1f65875dd7ac184af458">AdobeXMPCore::kSECMaxValue</a></div><div class="ttdoc">Maximum value this enum can hold, should be treated as invalid value. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00111">XMPCoreErrorCodes.h:111</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ad4e9bcfc5d25760a93189c0ba2962c3ea852818fcc062b51ded30ae5cc6943ef8"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3ea852818fcc062b51ded30ae5cc6943ef8">AdobeXMPCore::kSECNone</a></div><div class="ttdoc">Indicates no error. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00102">XMPCoreErrorCodes.h:102</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ad4e9bcfc5d25760a93189c0ba2962c3ea0f3c48b132df0de45927cf636944ccee"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3ea0f3c48b132df0de45927cf636944ccee">AdobeXMPCore::kSECUnRegisteredNameSpace</a></div><div class="ttdoc">Indicates un registered namespace encountered during serialization. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00108">XMPCoreErrorCodes.h:108</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ad4e9bcfc5d25760a93189c0ba2962c3e"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3e">AdobeXMPCore::eSerializerErrorCode</a></div><div class="ttdeci">eSerializerErrorCode</div><div class="ttdoc">Indicates various errors encountered during serialization. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00100">XMPCoreErrorCodes.h:100</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCore_html_ad4e9bcfc5d25760a93189c0ba2962c3ea199673856ea7c62993fb5850817b9181"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3ea199673856ea7c62993fb5850817b9181">AdobeXMPCore::kSECSizeExceed</a></div><div class="ttdoc">Indicates serialization failed to achieve size requirement. </div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreErrorCodes_8h_source.html#l00105">XMPCoreErrorCodes.h:105</a></div></div>
+<div class="ttc" id="namespaceAdobeXMPCommon_html_a8ec7e2a77ea452c3d46bb7dbbc722574"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a8ec7e2a77ea452c3d46bb7dbbc722574">AdobeXMPCommon::kMaxEnumValue</a></div><div class="ttdeci">static const uint32 kMaxEnumValue(Max_XMP_Uns32)</div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ab25d27977dd99a041e01a4b8558f08fe"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef AdobeXMPCore::BASE_CLASS </td>
+ <td>(</td>
+ <td class="paramtype">INameSpacePrefixMap&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a79e1c8ec2c46a2cbee3ba9cfd0d78ad4">INAMESPACEPREFIXMAP_VERSION</a>&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad4e3ab53add36a4678405f4b1ac5826b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef AdobeXMPCore::BASE_CLASS </td>
+ <td>(</td>
+ <td class="paramtype">IPathSegment&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a42cb9bdb3894ac77ff614349e5c371e5">IPATHSEGMENT_VERSION</a>&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aae83a987190b96eba7659457c737709c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef AdobeXMPCore::BASE_CLASS </td>
+ <td>(</td>
+ <td class="paramtype">IPath&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#adc9fb16e479a79e35a9dc58e166fcbad">IPATH_VERSION</a>&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa8b539533f4842694b7d5c5ac05e4961"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef AdobeXMPCore::BASE_CLASS </td>
+ <td>(</td>
+ <td class="paramtype">INode&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#aff2b1eabe2ac90a68ba3690930494a17">INODE_VERSION</a>&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa13d8ba12f5ac8ec0b73323472a9c977"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef AdobeXMPCore::BASE_CLASS </td>
+ <td>(</td>
+ <td class="paramtype">ISimpleNode&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a799da65cf5811707628bb2681a4545ec">ISIMPLENODE_VERSION</a>&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac94856cb1ce1f56b29673bc3eda30a2b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef AdobeXMPCore::BASE_CLASS </td>
+ <td>(</td>
+ <td class="paramtype">ICompositeNode&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#aefe5b8d014bd0f2ca4933a16572b51df">ICOMPOSITENODE_VERSION</a>&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac94822da2d3427c627df15c4af5824d3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef AdobeXMPCore::BASE_CLASS </td>
+ <td>(</td>
+ <td class="paramtype">IStructureNode&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a28325920d39a80ba79dd3774ce056f45">ISTRUCTURENODE_VERSION</a>&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aafbff1ea559ac40a588ee191a94b25af"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef AdobeXMPCore::BASE_CLASS </td>
+ <td>(</td>
+ <td class="paramtype">IArrayNode&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a1f8464a97acb8671e6cc2a466955d45d">IARRAYNODE_VERSION</a>&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a66384130267cdd648e0f677128635123"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef AdobeXMPCore::BASE_CLASS </td>
+ <td>(</td>
+ <td class="paramtype">INodeIterator&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#afe7756c974951e8e78be1cfb96aacc8b">INODEITERATOR_VERSION</a>&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1da997b938e393546c72aca8811b5300"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef AdobeXMPCore::BASE_CLASS </td>
+ <td>(</td>
+ <td class="paramtype">IMetadata&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#af7d51c3ccf825fc82fa4a2a6cca26bc8">IMETADATA_VERSION</a>&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a257c4389ad7bddfa28bfdf34d92bd28b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef AdobeXMPCore::BASE_CLASS </td>
+ <td>(</td>
+ <td class="paramtype">IClientDOMParser&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a64636b4e59a6212968ad30494675603e">ICLIENTDOMPARSER_VERSION</a>&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a207afe21d3d4fcb8cb1170ba646003f4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef AdobeXMPCore::BASE_CLASS </td>
+ <td>(</td>
+ <td class="paramtype">IClientDOMSerializer&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#aa928953eda71cda88699483e1fca4526">ICLIENTDOMSERIALIZER_VERSION</a>&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a812c55394dd0d590ae2ca9a4e0178671"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef AdobeXMPCore::BASE_CLASS </td>
+ <td>(</td>
+ <td class="paramtype">IDOMParser&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a813f82b55a0bb68c1553e8b38592e705">IDOMPARSER_VERSION</a>&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3dba425488e67755405e5e9b1476babc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef AdobeXMPCore::BASE_CLASS </td>
+ <td>(</td>
+ <td class="paramtype">IDOMSerializer&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a52d6e44f27f19214b38959683d6cc829">IDOMSERIALIZER_VERSION</a>&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa62775052accb00b04f530857b5fc18a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef AdobeXMPCore::BASE_CLASS </td>
+ <td>(</td>
+ <td class="paramtype">IDOMImplementationRegistry&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#aa34dc59f9267eceb6d51235cd778292e">IDOMIMPLEMENTATIONREGISTRY_VERSION</a>&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1d1b0939f67456659a36e11ce594690d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef AdobeXMPCore::BASE_CLASS </td>
+ <td>(</td>
+ <td class="paramtype">ICoreObjectFactory&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#a3d28ba37018741b3794789e5edc6e27e">ICOREOBJECTFACTORY_VERSION</a>&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2fea5ada7406b2712ed3bfeecf84c2e2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef AdobeXMPCore::BASE_CLASS </td>
+ <td>(</td>
+ <td class="paramtype">ICoreConfigurationManager&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="XMPCoreLatestInterfaceVersions_8h.html#adf7818c7264e7a80b1b3c5a5b283c47c">ICORECONFIGURATIONMANAGER_VERSION</a>&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a865ec7a2af5304ec42d443da038ae5b7"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> AdobeXMPCore::kIArrayNodeID </td>
+ <td>(</td>
+ <td class="paramtype">0x634172724e6f6465&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="IArrayNode_8h_source.html#l00139">AdobeXMPCore::IArrayNode_v1::GetArrayNodeAtIndex()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a663e9a570224c4361f5ab883e32cf460"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> AdobeXMPCore::kICompositeNodeID </td>
+ <td>(</td>
+ <td class="paramtype">0x63436d704e6f6465&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="ICompositeNode_8h_source.html#l00191">AdobeXMPCore::ICompositeNode_v1::GetArrayNodeAtPath()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1fb39caa1c8eeed351b0fca6eca60577"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> AdobeXMPCore::kICoreConfigurationManagerID </td>
+ <td>(</td>
+ <td class="paramtype">0x63436f6e664d6772&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a30bb255921760813b83dfb94449051dd"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> AdobeXMPCore::kICoreObjectFactoryID </td>
+ <td>(</td>
+ <td class="paramtype">0x634f626a46616374&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6d787e316880e838d2a03f641a520a5b"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> AdobeXMPCore::kIDOMImplementationRegistryID </td>
+ <td>(</td>
+ <td class="paramtype">0x63444f4d52677374&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa11deda1f160ba3bfba36558afcaa0ef"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> AdobeXMPCore::kIDOMParserID </td>
+ <td>(</td>
+ <td class="paramtype">0x63444f4d50727372&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a16e22df4b5facaffff284ab0104404a9"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> AdobeXMPCore::kIDOMSerializerID </td>
+ <td>(</td>
+ <td class="paramtype">0x63444f4d53726c7a&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae266f1d0a72a69dbbad9443f1b4140e6"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> AdobeXMPCore::kIMetadataID </td>
+ <td>(</td>
+ <td class="paramtype">0x634d657461646174&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aab6f1fa4adf9d3b8c40d4e8f601ddfdf"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> AdobeXMPCore::kINameSpacePrefixMapID </td>
+ <td>(</td>
+ <td class="paramtype">0x634e5350724d6170&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae76eb0e35e0e35e5b476b6fecc6e3603"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> AdobeXMPCore::kINodeID </td>
+ <td>(</td>
+ <td class="paramtype">0x634e6f6465202020&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="INode_8h_source.html#l00372">AdobeXMPCore::INode_v1::ConvertToMetadata()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="afb1db1e3afd3cb409aab3c32435b506b"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> AdobeXMPCore::kINodeIteratorID </td>
+ <td>(</td>
+ <td class="paramtype">0x634e6f6465497420&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="INodeIterator_8h_source.html#l00112">AdobeXMPCore::INodeIterator_v1::Next()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a169bb4bbf2a32d4201625eca17bde615"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> AdobeXMPCore::kIPathID </td>
+ <td>(</td>
+ <td class="paramtype">0x6350617468202020&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="IPath_8h_source.html#l00089">AdobeXMPCore::IPath_v1::IsEmpty()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a20562f7f885eacd89465270be790c31f"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> AdobeXMPCore::kIPathSegmentID </td>
+ <td>(</td>
+ <td class="paramtype">0x6350617468536567&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a258ec247968bc8e101a087b2f914c95b"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> AdobeXMPCore::kISimpleNodeID </td>
+ <td>(</td>
+ <td class="paramtype">0x63536d6c4e6f6465&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a099de3a79749ee161daf59313861702e"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static const <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> AdobeXMPCore::kIStructureNodeID </td>
+ <td>(</td>
+ <td class="paramtype">0x635374724e6f6465&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="IStructureNode_8h_source.html#l00128">AdobeXMPCore::IStructureNode_v1::GetArrayNode()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/namespaceAdobeXMPCore.js b/docs/API/namespaceAdobeXMPCore.js
new file mode 100755
index 0000000..1dbd560
--- /dev/null
+++ b/docs/API/namespaceAdobeXMPCore.js
@@ -0,0 +1,20 @@
+var namespaceAdobeXMPCore =
+[
+ [ "IArrayNode_v1", "classAdobeXMPCore_1_1IArrayNode__v1.html", "classAdobeXMPCore_1_1IArrayNode__v1" ],
+ [ "IClientDOMParser_v1", "classAdobeXMPCore_1_1IClientDOMParser__v1.html", "classAdobeXMPCore_1_1IClientDOMParser__v1" ],
+ [ "IClientDOMSerializer_v1", "classAdobeXMPCore_1_1IClientDOMSerializer__v1.html", "classAdobeXMPCore_1_1IClientDOMSerializer__v1" ],
+ [ "ICompositeNode_v1", "classAdobeXMPCore_1_1ICompositeNode__v1.html", "classAdobeXMPCore_1_1ICompositeNode__v1" ],
+ [ "ICoreConfigurationManager_v1", "classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html", "classAdobeXMPCore_1_1ICoreConfigurationManager__v1" ],
+ [ "ICoreObjectFactory_v1", "classAdobeXMPCore_1_1ICoreObjectFactory__v1.html", "classAdobeXMPCore_1_1ICoreObjectFactory__v1" ],
+ [ "IDOMImplementationRegistry_v1", "classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html", "classAdobeXMPCore_1_1IDOMImplementationRegistry__v1" ],
+ [ "IDOMParser_v1", "classAdobeXMPCore_1_1IDOMParser__v1.html", "classAdobeXMPCore_1_1IDOMParser__v1" ],
+ [ "IDOMSerializer_v1", "classAdobeXMPCore_1_1IDOMSerializer__v1.html", "classAdobeXMPCore_1_1IDOMSerializer__v1" ],
+ [ "IMetadata_v1", "classAdobeXMPCore_1_1IMetadata__v1.html", "classAdobeXMPCore_1_1IMetadata__v1" ],
+ [ "INameSpacePrefixMap_v1", "classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html", "classAdobeXMPCore_1_1INameSpacePrefixMap__v1" ],
+ [ "INode_v1", "classAdobeXMPCore_1_1INode__v1.html", "classAdobeXMPCore_1_1INode__v1" ],
+ [ "INodeIterator_v1", "classAdobeXMPCore_1_1INodeIterator__v1.html", "classAdobeXMPCore_1_1INodeIterator__v1" ],
+ [ "IPath_v1", "classAdobeXMPCore_1_1IPath__v1.html", "classAdobeXMPCore_1_1IPath__v1" ],
+ [ "IPathSegment_v1", "classAdobeXMPCore_1_1IPathSegment__v1.html", "classAdobeXMPCore_1_1IPathSegment__v1" ],
+ [ "ISimpleNode_v1", "classAdobeXMPCore_1_1ISimpleNode__v1.html", "classAdobeXMPCore_1_1ISimpleNode__v1" ],
+ [ "IStructureNode_v1", "classAdobeXMPCore_1_1IStructureNode__v1.html", "classAdobeXMPCore_1_1IStructureNode__v1" ]
+]; \ No newline at end of file
diff --git a/docs/API/namespaceAdobeXMPCore__Int.html b/docs/API/namespaceAdobeXMPCore__Int.html
new file mode 100755
index 0000000..abe3a4f
--- /dev/null
+++ b/docs/API/namespaceAdobeXMPCore__Int.html
@@ -0,0 +1,599 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>AdobeXMPCore_Int Namespace Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
+ <li><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('namespaceAdobeXMPCore__Int.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#typedef-members">Typedefs</a> </div>
+ <div class="headertitle">
+<div class="title">AdobeXMPCore_Int Namespace Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:a0665746b848a075cc4aaf72f553cea95"><td class="memItemLeft" align="right" valign="top">typedef INameSpacePrefixMap_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a0665746b848a075cc4aaf72f553cea95">pINameSpacePrefixMap_I</a></td></tr>
+<tr class="separator:a0665746b848a075cc4aaf72f553cea95"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab7edb8a8ca91f8397965cf85502c2043"><td class="memItemLeft" align="right" valign="top">typedef const INameSpacePrefixMap_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#ab7edb8a8ca91f8397965cf85502c2043">pcINameSpacePrefixMap_I</a></td></tr>
+<tr class="separator:ab7edb8a8ca91f8397965cf85502c2043"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7b86a8447002d8c63c837cffda64dd2a"><td class="memItemLeft" align="right" valign="top">typedef IPathSegment_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a7b86a8447002d8c63c837cffda64dd2a">pIPathSegment_I</a></td></tr>
+<tr class="separator:a7b86a8447002d8c63c837cffda64dd2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8c2801e50baa3f7979aa4a31225bc25d"><td class="memItemLeft" align="right" valign="top">typedef const IPathSegment_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a8c2801e50baa3f7979aa4a31225bc25d">pcIPathSegment_I</a></td></tr>
+<tr class="separator:a8c2801e50baa3f7979aa4a31225bc25d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac72d014801c316df78e38687d0c11aa7"><td class="memItemLeft" align="right" valign="top">typedef IPath_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#ac72d014801c316df78e38687d0c11aa7">pIPath_I</a></td></tr>
+<tr class="separator:ac72d014801c316df78e38687d0c11aa7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa917512a62ab131edf95fab4e6ba7067"><td class="memItemLeft" align="right" valign="top">typedef const IPath_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#aa917512a62ab131edf95fab4e6ba7067">pcIPath_I</a></td></tr>
+<tr class="separator:aa917512a62ab131edf95fab4e6ba7067"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7ab22fbbd637098e7e0db48036864228"><td class="memItemLeft" align="right" valign="top">typedef INode_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a7ab22fbbd637098e7e0db48036864228">pINode_I</a></td></tr>
+<tr class="separator:a7ab22fbbd637098e7e0db48036864228"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a09decb910c24c7929d609f1e29ca16b1"><td class="memItemLeft" align="right" valign="top">typedef const INode_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a09decb910c24c7929d609f1e29ca16b1">pcINode_I</a></td></tr>
+<tr class="separator:a09decb910c24c7929d609f1e29ca16b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9b914b7e3bafee8e830a982810ed2191"><td class="memItemLeft" align="right" valign="top">typedef ISimpleNode_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a9b914b7e3bafee8e830a982810ed2191">pISimpleNode_I</a></td></tr>
+<tr class="separator:a9b914b7e3bafee8e830a982810ed2191"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0de0f06ece9bff0c77df3e519af9f506"><td class="memItemLeft" align="right" valign="top">typedef const ISimpleNode_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a0de0f06ece9bff0c77df3e519af9f506">pcISimpleNode_I</a></td></tr>
+<tr class="separator:a0de0f06ece9bff0c77df3e519af9f506"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a88df781b3af9dc7dfe7cb967b6e9b440"><td class="memItemLeft" align="right" valign="top">typedef ICompositeNode_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a88df781b3af9dc7dfe7cb967b6e9b440">pICompositeNode_I</a></td></tr>
+<tr class="separator:a88df781b3af9dc7dfe7cb967b6e9b440"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa1ac753eb7735e19c3f1a2a21d02a047"><td class="memItemLeft" align="right" valign="top">typedef const ICompositeNode_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#aa1ac753eb7735e19c3f1a2a21d02a047">pcICompositeNode_I</a></td></tr>
+<tr class="separator:aa1ac753eb7735e19c3f1a2a21d02a047"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4d4375869e320dc1596a9d62a4030b05"><td class="memItemLeft" align="right" valign="top">typedef IStructureNode_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a4d4375869e320dc1596a9d62a4030b05">pIStructureNode_I</a></td></tr>
+<tr class="separator:a4d4375869e320dc1596a9d62a4030b05"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a85d314eae1eef235e7c698c5c84bdda1"><td class="memItemLeft" align="right" valign="top">typedef const IStructureNode_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a85d314eae1eef235e7c698c5c84bdda1">pcIStructureNode_I</a></td></tr>
+<tr class="separator:a85d314eae1eef235e7c698c5c84bdda1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af2a081973401c42b5772dc9faec58a58"><td class="memItemLeft" align="right" valign="top">typedef IArrayNode_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#af2a081973401c42b5772dc9faec58a58">pIArrayNode_I</a></td></tr>
+<tr class="separator:af2a081973401c42b5772dc9faec58a58"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad705150e811fbc6ff116e850c444fc2d"><td class="memItemLeft" align="right" valign="top">typedef const IArrayNode_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#ad705150e811fbc6ff116e850c444fc2d">pcIArrayNode_I</a></td></tr>
+<tr class="separator:ad705150e811fbc6ff116e850c444fc2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a71dcb1468c552abdd9fb1666cadc6600"><td class="memItemLeft" align="right" valign="top">typedef INodeIterator_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a71dcb1468c552abdd9fb1666cadc6600">pINodeIterator_I</a></td></tr>
+<tr class="separator:a71dcb1468c552abdd9fb1666cadc6600"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9d8ff928f0b3e120916451e57b1b05bb"><td class="memItemLeft" align="right" valign="top">typedef const INodeIterator_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a9d8ff928f0b3e120916451e57b1b05bb">pcINodeIterator_I</a></td></tr>
+<tr class="separator:a9d8ff928f0b3e120916451e57b1b05bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a70359e8aaa387b24879f1510ac1c4725"><td class="memItemLeft" align="right" valign="top">typedef IMetadata_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a70359e8aaa387b24879f1510ac1c4725">pIMetadata_I</a></td></tr>
+<tr class="separator:a70359e8aaa387b24879f1510ac1c4725"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abf85881909a28303736ad48039524d73"><td class="memItemLeft" align="right" valign="top">typedef const IMetadata_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#abf85881909a28303736ad48039524d73">pcIMetadata_I</a></td></tr>
+<tr class="separator:abf85881909a28303736ad48039524d73"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5c9e417017018f36cdbfdbcaa8cd0585"><td class="memItemLeft" align="right" valign="top">typedef IClientDOMParser_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a5c9e417017018f36cdbfdbcaa8cd0585">pIClientDOMParser_I</a></td></tr>
+<tr class="separator:a5c9e417017018f36cdbfdbcaa8cd0585"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3c5ae6e52bf994fc05ed79ca9c58aae0"><td class="memItemLeft" align="right" valign="top">typedef const IClientDOMParser_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a3c5ae6e52bf994fc05ed79ca9c58aae0">pcIClientDOMParser_I</a></td></tr>
+<tr class="separator:a3c5ae6e52bf994fc05ed79ca9c58aae0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9807c050f5244e2cf017e5f247d22473"><td class="memItemLeft" align="right" valign="top">typedef IClientDOMSerializer_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a9807c050f5244e2cf017e5f247d22473">pIClientDOMSerializer_I</a></td></tr>
+<tr class="separator:a9807c050f5244e2cf017e5f247d22473"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a786137be71601c8a876f6798ba798eea"><td class="memItemLeft" align="right" valign="top">typedef const IClientDOMSerializer_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a786137be71601c8a876f6798ba798eea">pcIClientDOMSerializer_I</a></td></tr>
+<tr class="separator:a786137be71601c8a876f6798ba798eea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4dad9e02be4a3efae9ea99e5f03ae11e"><td class="memItemLeft" align="right" valign="top">typedef IDOMParser_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a4dad9e02be4a3efae9ea99e5f03ae11e">pIDOMParser_I</a></td></tr>
+<tr class="separator:a4dad9e02be4a3efae9ea99e5f03ae11e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3a6d0893476eb4ce3713ca88e5c80b4e"><td class="memItemLeft" align="right" valign="top">typedef const IDOMParser_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a3a6d0893476eb4ce3713ca88e5c80b4e">pcIDOMParser_I</a></td></tr>
+<tr class="separator:a3a6d0893476eb4ce3713ca88e5c80b4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1bbf04f53ef3da6e5e12f535679bb177"><td class="memItemLeft" align="right" valign="top">typedef IDOMSerializer_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a1bbf04f53ef3da6e5e12f535679bb177">pIDOMSerializer_I</a></td></tr>
+<tr class="separator:a1bbf04f53ef3da6e5e12f535679bb177"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a771229361d508f6fc0d427803543d38b"><td class="memItemLeft" align="right" valign="top">typedef const IDOMSerializer_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a771229361d508f6fc0d427803543d38b">pcIDOMSerializer_I</a></td></tr>
+<tr class="separator:a771229361d508f6fc0d427803543d38b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad26aadc3f0926468c34c02cc1a0f1dbd"><td class="memItemLeft" align="right" valign="top">typedef IDOMImplementationRegistry_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#ad26aadc3f0926468c34c02cc1a0f1dbd">pIDOMImplementationRegistry_I</a></td></tr>
+<tr class="separator:ad26aadc3f0926468c34c02cc1a0f1dbd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae7c82f1920d2cbe1956fc5c43d0b10e2"><td class="memItemLeft" align="right" valign="top">typedef const IDOMImplementationRegistry_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#ae7c82f1920d2cbe1956fc5c43d0b10e2">pcIDOMImplementationRegistry_I</a></td></tr>
+<tr class="separator:ae7c82f1920d2cbe1956fc5c43d0b10e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad445bf512b4b3179b131b0a7dec31d86"><td class="memItemLeft" align="right" valign="top">typedef ICoreObjectFactory_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#ad445bf512b4b3179b131b0a7dec31d86">pICoreObjectFactory_I</a></td></tr>
+<tr class="separator:ad445bf512b4b3179b131b0a7dec31d86"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae32d6c403c99fe665bbeff4483a7b144"><td class="memItemLeft" align="right" valign="top">typedef const ICoreObjectFactory_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#ae32d6c403c99fe665bbeff4483a7b144">pcICoreObjectFactory_I</a></td></tr>
+<tr class="separator:ae32d6c403c99fe665bbeff4483a7b144"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a643dfc0500b39ea6d5a81c187fe0e9bc"><td class="memItemLeft" align="right" valign="top">typedef ICoreConfigurationManager_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#a643dfc0500b39ea6d5a81c187fe0e9bc">pICoreConfigurationManager_I</a></td></tr>
+<tr class="separator:a643dfc0500b39ea6d5a81c187fe0e9bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae995733eb74953fd4e8cafe373236938"><td class="memItemLeft" align="right" valign="top">typedef const ICoreConfigurationManager_I *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceAdobeXMPCore__Int.html#ae995733eb74953fd4e8cafe373236938">pcICoreConfigurationManager_I</a></td></tr>
+<tr class="separator:ae995733eb74953fd4e8cafe373236938"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="ad705150e811fbc6ff116e850c444fc2d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const IArrayNode_I* <a class="el" href="namespaceAdobeXMPCore__Int.html#ad705150e811fbc6ff116e850c444fc2d">AdobeXMPCore_Int::pcIArrayNode_I</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00259">259</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3c5ae6e52bf994fc05ed79ca9c58aae0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const IClientDOMParser_I* <a class="el" href="namespaceAdobeXMPCore__Int.html#a3c5ae6e52bf994fc05ed79ca9c58aae0">AdobeXMPCore_Int::pcIClientDOMParser_I</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00274">274</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a786137be71601c8a876f6798ba798eea"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const IClientDOMSerializer_I* <a class="el" href="namespaceAdobeXMPCore__Int.html#a786137be71601c8a876f6798ba798eea">AdobeXMPCore_Int::pcIClientDOMSerializer_I</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00279">279</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa1ac753eb7735e19c3f1a2a21d02a047"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const ICompositeNode_I* <a class="el" href="namespaceAdobeXMPCore__Int.html#aa1ac753eb7735e19c3f1a2a21d02a047">AdobeXMPCore_Int::pcICompositeNode_I</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00249">249</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae995733eb74953fd4e8cafe373236938"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const ICoreConfigurationManager_I* <a class="el" href="namespaceAdobeXMPCore__Int.html#ae995733eb74953fd4e8cafe373236938">AdobeXMPCore_Int::pcICoreConfigurationManager_I</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00304">304</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae32d6c403c99fe665bbeff4483a7b144"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const ICoreObjectFactory_I* <a class="el" href="namespaceAdobeXMPCore__Int.html#ae32d6c403c99fe665bbeff4483a7b144">AdobeXMPCore_Int::pcICoreObjectFactory_I</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00299">299</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae7c82f1920d2cbe1956fc5c43d0b10e2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const IDOMImplementationRegistry_I* <a class="el" href="namespaceAdobeXMPCore__Int.html#ae7c82f1920d2cbe1956fc5c43d0b10e2">AdobeXMPCore_Int::pcIDOMImplementationRegistry_I</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00294">294</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3a6d0893476eb4ce3713ca88e5c80b4e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const IDOMParser_I* <a class="el" href="namespaceAdobeXMPCore__Int.html#a3a6d0893476eb4ce3713ca88e5c80b4e">AdobeXMPCore_Int::pcIDOMParser_I</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00284">284</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a771229361d508f6fc0d427803543d38b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const IDOMSerializer_I* <a class="el" href="namespaceAdobeXMPCore__Int.html#a771229361d508f6fc0d427803543d38b">AdobeXMPCore_Int::pcIDOMSerializer_I</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00289">289</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abf85881909a28303736ad48039524d73"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const IMetadata_I* <a class="el" href="namespaceAdobeXMPCore__Int.html#abf85881909a28303736ad48039524d73">AdobeXMPCore_Int::pcIMetadata_I</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00269">269</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab7edb8a8ca91f8397965cf85502c2043"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const INameSpacePrefixMap_I* <a class="el" href="namespaceAdobeXMPCore__Int.html#ab7edb8a8ca91f8397965cf85502c2043">AdobeXMPCore_Int::pcINameSpacePrefixMap_I</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00224">224</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a09decb910c24c7929d609f1e29ca16b1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const INode_I* <a class="el" href="namespaceAdobeXMPCore__Int.html#a09decb910c24c7929d609f1e29ca16b1">AdobeXMPCore_Int::pcINode_I</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00239">239</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9d8ff928f0b3e120916451e57b1b05bb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const INodeIterator_I* <a class="el" href="namespaceAdobeXMPCore__Int.html#a9d8ff928f0b3e120916451e57b1b05bb">AdobeXMPCore_Int::pcINodeIterator_I</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00264">264</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa917512a62ab131edf95fab4e6ba7067"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const IPath_I* <a class="el" href="namespaceAdobeXMPCore__Int.html#aa917512a62ab131edf95fab4e6ba7067">AdobeXMPCore_Int::pcIPath_I</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00234">234</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8c2801e50baa3f7979aa4a31225bc25d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const IPathSegment_I* <a class="el" href="namespaceAdobeXMPCore__Int.html#a8c2801e50baa3f7979aa4a31225bc25d">AdobeXMPCore_Int::pcIPathSegment_I</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00229">229</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0de0f06ece9bff0c77df3e519af9f506"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const ISimpleNode_I* <a class="el" href="namespaceAdobeXMPCore__Int.html#a0de0f06ece9bff0c77df3e519af9f506">AdobeXMPCore_Int::pcISimpleNode_I</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00244">244</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a85d314eae1eef235e7c698c5c84bdda1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef const IStructureNode_I* <a class="el" href="namespaceAdobeXMPCore__Int.html#a85d314eae1eef235e7c698c5c84bdda1">AdobeXMPCore_Int::pcIStructureNode_I</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00254">254</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af2a081973401c42b5772dc9faec58a58"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef IArrayNode_I* <a class="el" href="namespaceAdobeXMPCore__Int.html#af2a081973401c42b5772dc9faec58a58">AdobeXMPCore_Int::pIArrayNode_I</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00257">257</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5c9e417017018f36cdbfdbcaa8cd0585"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef IClientDOMParser_I* <a class="el" href="namespaceAdobeXMPCore__Int.html#a5c9e417017018f36cdbfdbcaa8cd0585">AdobeXMPCore_Int::pIClientDOMParser_I</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00272">272</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9807c050f5244e2cf017e5f247d22473"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef IClientDOMSerializer_I* <a class="el" href="namespaceAdobeXMPCore__Int.html#a9807c050f5244e2cf017e5f247d22473">AdobeXMPCore_Int::pIClientDOMSerializer_I</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00277">277</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a88df781b3af9dc7dfe7cb967b6e9b440"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef ICompositeNode_I* <a class="el" href="namespaceAdobeXMPCore__Int.html#a88df781b3af9dc7dfe7cb967b6e9b440">AdobeXMPCore_Int::pICompositeNode_I</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00247">247</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a643dfc0500b39ea6d5a81c187fe0e9bc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef ICoreConfigurationManager_I* <a class="el" href="namespaceAdobeXMPCore__Int.html#a643dfc0500b39ea6d5a81c187fe0e9bc">AdobeXMPCore_Int::pICoreConfigurationManager_I</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00302">302</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad445bf512b4b3179b131b0a7dec31d86"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef ICoreObjectFactory_I* <a class="el" href="namespaceAdobeXMPCore__Int.html#ad445bf512b4b3179b131b0a7dec31d86">AdobeXMPCore_Int::pICoreObjectFactory_I</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00297">297</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad26aadc3f0926468c34c02cc1a0f1dbd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef IDOMImplementationRegistry_I* <a class="el" href="namespaceAdobeXMPCore__Int.html#ad26aadc3f0926468c34c02cc1a0f1dbd">AdobeXMPCore_Int::pIDOMImplementationRegistry_I</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00292">292</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4dad9e02be4a3efae9ea99e5f03ae11e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef IDOMParser_I* <a class="el" href="namespaceAdobeXMPCore__Int.html#a4dad9e02be4a3efae9ea99e5f03ae11e">AdobeXMPCore_Int::pIDOMParser_I</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00282">282</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1bbf04f53ef3da6e5e12f535679bb177"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef IDOMSerializer_I* <a class="el" href="namespaceAdobeXMPCore__Int.html#a1bbf04f53ef3da6e5e12f535679bb177">AdobeXMPCore_Int::pIDOMSerializer_I</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00287">287</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a70359e8aaa387b24879f1510ac1c4725"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef IMetadata_I* <a class="el" href="namespaceAdobeXMPCore__Int.html#a70359e8aaa387b24879f1510ac1c4725">AdobeXMPCore_Int::pIMetadata_I</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00267">267</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0665746b848a075cc4aaf72f553cea95"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef INameSpacePrefixMap_I* <a class="el" href="namespaceAdobeXMPCore__Int.html#a0665746b848a075cc4aaf72f553cea95">AdobeXMPCore_Int::pINameSpacePrefixMap_I</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00222">222</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7ab22fbbd637098e7e0db48036864228"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef INode_I* <a class="el" href="namespaceAdobeXMPCore__Int.html#a7ab22fbbd637098e7e0db48036864228">AdobeXMPCore_Int::pINode_I</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00237">237</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a71dcb1468c552abdd9fb1666cadc6600"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef INodeIterator_I* <a class="el" href="namespaceAdobeXMPCore__Int.html#a71dcb1468c552abdd9fb1666cadc6600">AdobeXMPCore_Int::pINodeIterator_I</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00262">262</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac72d014801c316df78e38687d0c11aa7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef IPath_I* <a class="el" href="namespaceAdobeXMPCore__Int.html#ac72d014801c316df78e38687d0c11aa7">AdobeXMPCore_Int::pIPath_I</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00232">232</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7b86a8447002d8c63c837cffda64dd2a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef IPathSegment_I* <a class="el" href="namespaceAdobeXMPCore__Int.html#a7b86a8447002d8c63c837cffda64dd2a">AdobeXMPCore_Int::pIPathSegment_I</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00227">227</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9b914b7e3bafee8e830a982810ed2191"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef ISimpleNode_I* <a class="el" href="namespaceAdobeXMPCore__Int.html#a9b914b7e3bafee8e830a982810ed2191">AdobeXMPCore_Int::pISimpleNode_I</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00242">242</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4d4375869e320dc1596a9d62a4030b05"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef IStructureNode_I* <a class="el" href="namespaceAdobeXMPCore__Int.html#a4d4375869e320dc1596a9d62a4030b05">AdobeXMPCore_Int::pIStructureNode_I</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="XMPCoreFwdDeclarations_8h_source.html#l00252">252</a> of file <a class="el" href="XMPCoreFwdDeclarations_8h_source.html">XMPCoreFwdDeclarations.h</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/namespacemembers.html b/docs/API/namespacemembers.html
new file mode 100755
index 0000000..f5ff272
--- /dev/null
+++ b/docs/API/namespacemembers.html
@@ -0,0 +1,76 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Namespace Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
+ <li class="current"><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="namespacemembers.html"><span>All</span></a></li>
+ <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
+ <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
+ <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li class="current"><a href="namespacemembers.html#index_b"><span>b</span></a></li>
+ <li><a href="namespacemembers_c.html#index_c"><span>c</span></a></li>
+ <li><a href="namespacemembers_e.html#index_e"><span>e</span></a></li>
+ <li><a href="namespacemembers_i.html#index_i"><span>i</span></a></li>
+ <li><a href="namespacemembers_k.html#index_k"><span>k</span></a></li>
+ <li><a href="namespacemembers_m.html#index_m"><span>m</span></a></li>
+ <li><a href="namespacemembers_n.html#index_n"><span>n</span></a></li>
+ <li><a href="namespacemembers_p.html#index_p"><span>p</span></a></li>
+ <li><a href="namespacemembers_r.html#index_r"><span>r</span></a></li>
+ <li><a href="namespacemembers_s.html#index_s"><span>s</span></a></li>
+ <li><a href="namespacemembers_u.html#index_u"><span>u</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('namespacemembers.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all namespace members with links to the namespace documentation for each member:</div>
+
+<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
+<li>BASE_CLASS()
+: <a class="el" href="namespaceAdobeXMPCommon.html#a376c8e3ade71b2836888a07746dd3882">AdobeXMPCommon</a>
+, <a class="el" href="namespaceAdobeXMPCore.html#a207afe21d3d4fcb8cb1170ba646003f4">AdobeXMPCore</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/namespacemembers_c.html b/docs/API/namespacemembers_c.html
new file mode 100755
index 0000000..7f8065b
--- /dev/null
+++ b/docs/API/namespacemembers_c.html
@@ -0,0 +1,75 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Namespace Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
+ <li class="current"><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="namespacemembers.html"><span>All</span></a></li>
+ <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
+ <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
+ <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="namespacemembers.html#index_b"><span>b</span></a></li>
+ <li class="current"><a href="namespacemembers_c.html#index_c"><span>c</span></a></li>
+ <li><a href="namespacemembers_e.html#index_e"><span>e</span></a></li>
+ <li><a href="namespacemembers_i.html#index_i"><span>i</span></a></li>
+ <li><a href="namespacemembers_k.html#index_k"><span>k</span></a></li>
+ <li><a href="namespacemembers_m.html#index_m"><span>m</span></a></li>
+ <li><a href="namespacemembers_n.html#index_n"><span>n</span></a></li>
+ <li><a href="namespacemembers_p.html#index_p"><span>p</span></a></li>
+ <li><a href="namespacemembers_r.html#index_r"><span>r</span></a></li>
+ <li><a href="namespacemembers_s.html#index_s"><span>s</span></a></li>
+ <li><a href="namespacemembers_u.html#index_u"><span>u</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('namespacemembers_c.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all namespace members with links to the namespace documentation for each member:</div>
+
+<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
+<li>cIUTF8Strings
+: <a class="el" href="namespaceAdobeXMPCommon.html#aae5dbe164f71188aa24c87fa6306539a">AdobeXMPCommon</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/namespacemembers_dup.js b/docs/API/namespacemembers_dup.js
new file mode 100755
index 0000000..64c2ca6
--- /dev/null
+++ b/docs/API/namespacemembers_dup.js
@@ -0,0 +1,14 @@
+var namespacemembers_dup =
+[
+ [ "b", "namespacemembers.html", null ],
+ [ "c", "namespacemembers_c.html", null ],
+ [ "e", "namespacemembers_e.html", null ],
+ [ "i", "namespacemembers_i.html", null ],
+ [ "k", "namespacemembers_k.html", null ],
+ [ "m", "namespacemembers_m.html", null ],
+ [ "n", "namespacemembers_n.html", null ],
+ [ "p", "namespacemembers_p.html", null ],
+ [ "r", "namespacemembers_r.html", null ],
+ [ "s", "namespacemembers_s.html", null ],
+ [ "u", "namespacemembers_u.html", null ]
+]; \ No newline at end of file
diff --git a/docs/API/namespacemembers_e.html b/docs/API/namespacemembers_e.html
new file mode 100755
index 0000000..94e5e63
--- /dev/null
+++ b/docs/API/namespacemembers_e.html
@@ -0,0 +1,90 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Namespace Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
+ <li class="current"><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="namespacemembers.html"><span>All</span></a></li>
+ <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
+ <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
+ <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="namespacemembers.html#index_b"><span>b</span></a></li>
+ <li><a href="namespacemembers_c.html#index_c"><span>c</span></a></li>
+ <li class="current"><a href="namespacemembers_e.html#index_e"><span>e</span></a></li>
+ <li><a href="namespacemembers_i.html#index_i"><span>i</span></a></li>
+ <li><a href="namespacemembers_k.html#index_k"><span>k</span></a></li>
+ <li><a href="namespacemembers_m.html#index_m"><span>m</span></a></li>
+ <li><a href="namespacemembers_n.html#index_n"><span>n</span></a></li>
+ <li><a href="namespacemembers_p.html#index_p"><span>p</span></a></li>
+ <li><a href="namespacemembers_r.html#index_r"><span>r</span></a></li>
+ <li><a href="namespacemembers_s.html#index_s"><span>s</span></a></li>
+ <li><a href="namespacemembers_u.html#index_u"><span>u</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('namespacemembers_e.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all namespace members with links to the namespace documentation for each member:</div>
+
+<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
+<li>eConfigurableErrorCode
+: <a class="el" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42">AdobeXMPCommon</a>
+</li>
+<li>eDataModelErrorCode
+: <a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00">AdobeXMPCore</a>
+</li>
+<li>eGeneralErrorCode
+: <a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14">AdobeXMPCommon</a>
+</li>
+<li>eMemoryManagementErrorCode
+: <a class="el" href="namespaceAdobeXMPCommon.html#aba59dd1cfea0b1759617fc53108d92af">AdobeXMPCommon</a>
+</li>
+<li>eParserErrorCode
+: <a class="el" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341">AdobeXMPCore</a>
+</li>
+<li>eSerializerErrorCode
+: <a class="el" href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3e">AdobeXMPCore</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/namespacemembers_enum.html b/docs/API/namespacemembers_enum.html
new file mode 100755
index 0000000..eee6978
--- /dev/null
+++ b/docs/API/namespacemembers_enum.html
@@ -0,0 +1,73 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Namespace Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
+ <li class="current"><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespacemembers.html"><span>All</span></a></li>
+ <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
+ <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
+ <li class="current"><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('namespacemembers_enum.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;<ul>
+<li>eConfigurableErrorCode
+: <a class="el" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42">AdobeXMPCommon</a>
+</li>
+<li>eDataModelErrorCode
+: <a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00">AdobeXMPCore</a>
+</li>
+<li>eGeneralErrorCode
+: <a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14">AdobeXMPCommon</a>
+</li>
+<li>eMemoryManagementErrorCode
+: <a class="el" href="namespaceAdobeXMPCommon.html#aba59dd1cfea0b1759617fc53108d92af">AdobeXMPCommon</a>
+</li>
+<li>eParserErrorCode
+: <a class="el" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341">AdobeXMPCore</a>
+</li>
+<li>eSerializerErrorCode
+: <a class="el" href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3e">AdobeXMPCore</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/namespacemembers_eval.html b/docs/API/namespacemembers_eval.html
new file mode 100755
index 0000000..6db92a7
--- /dev/null
+++ b/docs/API/namespacemembers_eval.html
@@ -0,0 +1,227 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Namespace Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
+ <li class="current"><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespacemembers.html"><span>All</span></a></li>
+ <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
+ <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
+ <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
+ <li class="current"><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li class="current"><a href="#index_k"><span>k</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('namespacemembers_eval.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_k"></a>- k -</h3><ul>
+<li>kCECKeyNotSupported
+: <a class="el" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a78a9ef459e114b9e66dbd431d47e367f">AdobeXMPCommon</a>
+</li>
+<li>kCECNone
+: <a class="el" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a48a521a6e08fd24bef691efb926189f4">AdobeXMPCommon</a>
+</li>
+<li>kCECodeMaxValue
+: <a class="el" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a2da955fac9fd8e3e44105ee827c8bca8">AdobeXMPCommon</a>
+</li>
+<li>kCECPreviousTypeDifferent
+: <a class="el" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a9459b3f1895defa4a14e42f0d7c44c64">AdobeXMPCommon</a>
+</li>
+<li>kCECValueNotSupported
+: <a class="el" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a4a285133844f12c9db30cac96272ca99">AdobeXMPCommon</a>
+</li>
+<li>kCECValueTypeMismatch
+: <a class="el" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42ad00affae57206343bb1a2cbfd64a7727">AdobeXMPCommon</a>
+</li>
+<li>kCECValueTypeNotSupported
+: <a class="el" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a318281c6e6734794b732505f77ed7e1e">AdobeXMPCommon</a>
+</li>
+<li>kDMECArrayItemTypeDifferent
+: <a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a3b02c3806196f643a69970dd75b25464">AdobeXMPCore</a>
+</li>
+<li>kDMECBadIterPosition
+: <a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a9b4b77cfab51a51107011966c97e40e1">AdobeXMPCore</a>
+</li>
+<li>kDMECBadOptions
+: <a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a24f924ad842132ebd85573d0f93bd7f2">AdobeXMPCore</a>
+</li>
+<li>kDMECBadSchema
+: <a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a3053414fb4821785a9dc653ec9ac3c64">AdobeXMPCore</a>
+</li>
+<li>kDMECBadUnicode
+: <a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a8214373306d98cbb58dd480b825d490f">AdobeXMPCore</a>
+</li>
+<li>kDMECBadXPath
+: <a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a5969c9392bfb21fc391de418925e8b4f">AdobeXMPCore</a>
+</li>
+<li>kDMECDifferentNodeTypePresent
+: <a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00ae7e65aa4749b12616a43316687d6a355">AdobeXMPCore</a>
+</li>
+<li>kDMECEmptyIterator
+: <a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00ac1c31716f2bb30971e3b1d33b9993234">AdobeXMPCore</a>
+</li>
+<li>kDMECInvalidPathSegment
+: <a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a7643a6753e328945c9f2580bed3366b1">AdobeXMPCore</a>
+</li>
+<li>kDMECMaxValue
+: <a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a301e1376a4475452904ef20167a254a3">AdobeXMPCore</a>
+</li>
+<li>kDMECNameSpacePrefixMapEntryMissing
+: <a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00ac32e4160006f15e60fd7024cf6f7ac97">AdobeXMPCore</a>
+</li>
+<li>kDMECNodeAlreadyAChild
+: <a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a161dfd9dfc01ba8d6c4e17732f6c0acb">AdobeXMPCore</a>
+</li>
+<li>kDMECNodeAlreadyExists
+: <a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a92ffb54182a7cf24b2f09851a6e5fa4a">AdobeXMPCore</a>
+</li>
+<li>kDMECNone
+: <a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a2c80efa41e7821f6226aa59f28dfb579">AdobeXMPCore</a>
+</li>
+<li>kDMECNoSuchNodeExists
+: <a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00ae89776605ae99914cfe1b32cb4674c26">AdobeXMPCore</a>
+</li>
+<li>kDMECValidationError
+: <a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00af8aa55dc3ffd9c4d4612463ed430b262">AdobeXMPCore</a>
+</li>
+<li>kGECAssertionFailure
+: <a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac7ad8bab8d1d8f890d26a13076730473">AdobeXMPCommon</a>
+</li>
+<li>kGECClientThrownExceptionCaught
+: <a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a84f703a7e6aed295b04266ba33e382db">AdobeXMPCommon</a>
+</li>
+<li>kGECDeprecatedFunctionCall
+: <a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a34f838480c145031638141ea204b9436">AdobeXMPCommon</a>
+</li>
+<li>kGECExternalFailure
+: <a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aa089e0cea5a0b9fb19ed39c8d53ea624">AdobeXMPCommon</a>
+</li>
+<li>kGECIndexOutOfBounds
+: <a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a4d0d8c80b3932d6160a3117979cf59c7">AdobeXMPCommon</a>
+</li>
+<li>kGECInterfaceUnavailable
+: <a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14af605e8ceabdf52ced8bf1a2961041719">AdobeXMPCommon</a>
+</li>
+<li>kGECInternalFailure
+: <a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aa85fc48596da99b5ac6ec775c5e9d4f1">AdobeXMPCommon</a>
+</li>
+<li>kGECLogicalError
+: <a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a99ed4bfb1b57eea7e5ed9cdd6f63bb88">AdobeXMPCommon</a>
+</li>
+<li>kGECMaxValue
+: <a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aa3bc0d5f5b5bae142630473abaee9f1f">AdobeXMPCommon</a>
+</li>
+<li>kGECNone
+: <a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac9bbc6373eb1432da67162e2d3d8ba00">AdobeXMPCommon</a>
+</li>
+<li>kGECNotImplemented
+: <a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a38faaba6657c0fab6d51f2e7807ab560">AdobeXMPCommon</a>
+</li>
+<li>kGECParametersNotAsExpected
+: <a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac8114fd7fafcae7a7d13793cf32f84e4">AdobeXMPCommon</a>
+</li>
+<li>kGECStandardException
+: <a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ab6be1e47808269e89bff9854599179f0">AdobeXMPCommon</a>
+</li>
+<li>kGECUnknownExceptionCaught
+: <a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a1ec371ab7db9ac473a04755491b4d996">AdobeXMPCommon</a>
+</li>
+<li>kGECUnknownFailure
+: <a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ae5d6719cf38299f4f4bf170467c5e977">AdobeXMPCommon</a>
+</li>
+<li>kGECUserAbort
+: <a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aabc494bfa6cc5c42f4d6203a419943fe">AdobeXMPCommon</a>
+</li>
+<li>kGECVersionUnavailable
+: <a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac4d59c9d462932453e1e5b96efce4beb">AdobeXMPCommon</a>
+</li>
+<li>kMMECAllocationFailure
+: <a class="el" href="namespaceAdobeXMPCommon.html#aba59dd1cfea0b1759617fc53108d92afa2bbd2fba1abe18a0abbeeb04276fa5d7">AdobeXMPCommon</a>
+</li>
+<li>kMMECMaxValue
+: <a class="el" href="namespaceAdobeXMPCommon.html#aba59dd1cfea0b1759617fc53108d92afa6c3458ee055e89d620fe6f9941658564">AdobeXMPCommon</a>
+</li>
+<li>kMMECNone
+: <a class="el" href="namespaceAdobeXMPCommon.html#aba59dd1cfea0b1759617fc53108d92afa2c2fba02472378e6f5621fa89f662754">AdobeXMPCommon</a>
+</li>
+<li>kPECBadRDF
+: <a class="el" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341a05b1bde4783b56530499a6015d7704e9">AdobeXMPCore</a>
+</li>
+<li>kPECBadXML
+: <a class="el" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341aa537d1ba3f2a47c9feb5b183338314a9">AdobeXMPCore</a>
+</li>
+<li>kPECBadXMP
+: <a class="el" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341a25971d0de364f541b042f0f21df412eb">AdobeXMPCore</a>
+</li>
+<li>kPECContextNodeIsNonComposite
+: <a class="el" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341a7c8e86e45ec62e9748301065944b38ac">AdobeXMPCore</a>
+</li>
+<li>kPECContextNodeParentIsNonArray
+: <a class="el" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341a2f23307e996411a65ac6e206f7557264">AdobeXMPCore</a>
+</li>
+<li>kPECInvalidContextNode
+: <a class="el" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341aed1376b733f98e4cb670d9beba0d6339">AdobeXMPCore</a>
+</li>
+<li>kPECMaxValue
+: <a class="el" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341ae5fc4151a61d73cf47d5ed861dc4ec02">AdobeXMPCore</a>
+</li>
+<li>kPECNone
+: <a class="el" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341aca80ed9623ff6873b2057b4f9a4f82ac">AdobeXMPCore</a>
+</li>
+<li>kSECMaxValue
+: <a class="el" href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3ea2e8b7434f32a1f65875dd7ac184af458">AdobeXMPCore</a>
+</li>
+<li>kSECNone
+: <a class="el" href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3ea852818fcc062b51ded30ae5cc6943ef8">AdobeXMPCore</a>
+</li>
+<li>kSECSizeExceed
+: <a class="el" href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3ea199673856ea7c62993fb5850817b9181">AdobeXMPCore</a>
+</li>
+<li>kSECUnRegisteredNameSpace
+: <a class="el" href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3ea0f3c48b132df0de45927cf636944ccee">AdobeXMPCore</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/namespacemembers_func.html b/docs/API/namespacemembers_func.html
new file mode 100755
index 0000000..4478d28
--- /dev/null
+++ b/docs/API/namespacemembers_func.html
@@ -0,0 +1,159 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Namespace Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
+ <li class="current"><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespacemembers.html"><span>All</span></a></li>
+ <li class="current"><a href="namespacemembers_func.html"><span>Functions</span></a></li>
+ <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
+ <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="#index_b"><span>b</span></a></li>
+ <li><a href="#index_k"><span>k</span></a></li>
+ <li><a href="#index_m"><span>m</span></a></li>
+ <li class="current"><a href="#index_n"><span>n</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('namespacemembers_func.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
+<li>BASE_CLASS()
+: <a class="el" href="namespaceAdobeXMPCommon.html#a376c8e3ade71b2836888a07746dd3882">AdobeXMPCommon</a>
+, <a class="el" href="namespaceAdobeXMPCore.html#ab25d27977dd99a041e01a4b8558f08fe">AdobeXMPCore</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_k"></a>- k -</h3><ul>
+<li>kAllBits()
+: <a class="el" href="namespaceAdobeXMPCommon.html#a3e31c8b25cbf95c42b8e439071bdf865">AdobeXMPCommon</a>
+</li>
+<li>kIArrayNodeID()
+: <a class="el" href="namespaceAdobeXMPCore.html#a865ec7a2af5304ec42d443da038ae5b7">AdobeXMPCore</a>
+</li>
+<li>kICompositeNodeID()
+: <a class="el" href="namespaceAdobeXMPCore.html#a663e9a570224c4361f5ab883e32cf460">AdobeXMPCore</a>
+</li>
+<li>kIConfigurationManagerID()
+: <a class="el" href="namespaceAdobeXMPCommon.html#af73d2c15fb6abf10bf2b82be984d9be0">AdobeXMPCommon</a>
+</li>
+<li>kICoreConfigurationManagerID()
+: <a class="el" href="namespaceAdobeXMPCore.html#a1fb39caa1c8eeed351b0fca6eca60577">AdobeXMPCore</a>
+</li>
+<li>kICoreObjectFactoryID()
+: <a class="el" href="namespaceAdobeXMPCore.html#a30bb255921760813b83dfb94449051dd">AdobeXMPCore</a>
+</li>
+<li>kIDOMImplementationRegistryID()
+: <a class="el" href="namespaceAdobeXMPCore.html#a6d787e316880e838d2a03f641a520a5b">AdobeXMPCore</a>
+</li>
+<li>kIDOMParserID()
+: <a class="el" href="namespaceAdobeXMPCore.html#aa11deda1f160ba3bfba36558afcaa0ef">AdobeXMPCore</a>
+</li>
+<li>kIDOMSerializerID()
+: <a class="el" href="namespaceAdobeXMPCore.html#a16e22df4b5facaffff284ab0104404a9">AdobeXMPCore</a>
+</li>
+<li>kIErrorID()
+: <a class="el" href="namespaceAdobeXMPCommon.html#ad4c8ddc8db2d27cbcc0d88688fabdd93">AdobeXMPCommon</a>
+</li>
+<li>kIErrorNotifierID()
+: <a class="el" href="namespaceAdobeXMPCommon.html#ab7bbf3293de0d0539f3cbb65b7680252">AdobeXMPCommon</a>
+</li>
+<li>kIMetadataID()
+: <a class="el" href="namespaceAdobeXMPCore.html#ae266f1d0a72a69dbbad9443f1b4140e6">AdobeXMPCore</a>
+</li>
+<li>kINameSpacePrefixMapID()
+: <a class="el" href="namespaceAdobeXMPCore.html#aab6f1fa4adf9d3b8c40d4e8f601ddfdf">AdobeXMPCore</a>
+</li>
+<li>kINodeID()
+: <a class="el" href="namespaceAdobeXMPCore.html#ae76eb0e35e0e35e5b476b6fecc6e3603">AdobeXMPCore</a>
+</li>
+<li>kINodeIteratorID()
+: <a class="el" href="namespaceAdobeXMPCore.html#afb1db1e3afd3cb409aab3c32435b506b">AdobeXMPCore</a>
+</li>
+<li>kIObjectFactoryID()
+: <a class="el" href="namespaceAdobeXMPCommon.html#a3eaf39cde126acb079462286763ca44a">AdobeXMPCommon</a>
+</li>
+<li>kIPathID()
+: <a class="el" href="namespaceAdobeXMPCore.html#a169bb4bbf2a32d4201625eca17bde615">AdobeXMPCore</a>
+</li>
+<li>kIPathSegmentID()
+: <a class="el" href="namespaceAdobeXMPCore.html#a20562f7f885eacd89465270be790c31f">AdobeXMPCore</a>
+</li>
+<li>kISimpleNodeID()
+: <a class="el" href="namespaceAdobeXMPCore.html#a258ec247968bc8e101a087b2f914c95b">AdobeXMPCore</a>
+</li>
+<li>kIStructureNodeID()
+: <a class="el" href="namespaceAdobeXMPCore.html#a099de3a79749ee161daf59313861702e">AdobeXMPCore</a>
+</li>
+<li>kIUTF8StringID()
+: <a class="el" href="namespaceAdobeXMPCommon.html#a97f984a3b999db35dd915b17322c8c7f">AdobeXMPCommon</a>
+</li>
+<li>kMaxEnumValue()
+: <a class="el" href="namespaceAdobeXMPCommon.html#a8ec7e2a77ea452c3d46bb7dbbc722574">AdobeXMPCommon</a>
+</li>
+<li>kMaxSize()
+: <a class="el" href="namespaceAdobeXMPCommon.html#a509d67aa4eb5b6a31db63f448d2a2343">AdobeXMPCommon</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
+<li>MemAllocate()
+: <a class="el" href="namespaceAdobeXMPCommon.html#a3349137d458c48d779670626d7b6ba1a">AdobeXMPCommon</a>
+</li>
+<li>MemRelease()
+: <a class="el" href="namespaceAdobeXMPCommon.html#ad4c125f465214507005d84a360fa83e5">AdobeXMPCommon</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
+<li>npos()
+: <a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/namespacemembers_i.html b/docs/API/namespacemembers_i.html
new file mode 100755
index 0000000..42ed967
--- /dev/null
+++ b/docs/API/namespacemembers_i.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Namespace Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
+ <li class="current"><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="namespacemembers.html"><span>All</span></a></li>
+ <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
+ <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
+ <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="namespacemembers.html#index_b"><span>b</span></a></li>
+ <li><a href="namespacemembers_c.html#index_c"><span>c</span></a></li>
+ <li><a href="namespacemembers_e.html#index_e"><span>e</span></a></li>
+ <li class="current"><a href="namespacemembers_i.html#index_i"><span>i</span></a></li>
+ <li><a href="namespacemembers_k.html#index_k"><span>k</span></a></li>
+ <li><a href="namespacemembers_m.html#index_m"><span>m</span></a></li>
+ <li><a href="namespacemembers_n.html#index_n"><span>n</span></a></li>
+ <li><a href="namespacemembers_p.html#index_p"><span>p</span></a></li>
+ <li><a href="namespacemembers_r.html#index_r"><span>r</span></a></li>
+ <li><a href="namespacemembers_s.html#index_s"><span>s</span></a></li>
+ <li><a href="namespacemembers_u.html#index_u"><span>u</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('namespacemembers_i.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all namespace members with links to the namespace documentation for each member:</div>
+
+<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
+<li>IArrayNode_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a91f2a2df5097022662328e102a56a4ea">AdobeXMPCore</a>
+</li>
+<li>IClientDOMParser_base
+: <a class="el" href="namespaceAdobeXMPCore.html#acf6b51a9bb0059c712e6e423ef94fd0d">AdobeXMPCore</a>
+</li>
+<li>IClientDOMSerializer_base
+: <a class="el" href="namespaceAdobeXMPCore.html#ac50d8fc1c60d397b440d075184e01212">AdobeXMPCore</a>
+</li>
+<li>ICompositeNode_base
+: <a class="el" href="namespaceAdobeXMPCore.html#aab9120a7fc533281e84ead6df110e0a5">AdobeXMPCore</a>
+</li>
+<li>IConfigurationManager_base
+: <a class="el" href="namespaceAdobeXMPCommon.html#ab6a71f81b4e3c8e5d2d0c90f82fbee08">AdobeXMPCommon</a>
+</li>
+<li>ICoreConfigurationManager_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a51c59c2b14cae80da8b1fa5dfa2f4732">AdobeXMPCore</a>
+</li>
+<li>ICoreObjectFactory_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a77c425a2d9deb50bc0ae4d71232dd98a">AdobeXMPCore</a>
+</li>
+<li>IDOMImplementationRegistry_base
+: <a class="el" href="namespaceAdobeXMPCore.html#aeab5d78356ee44cbab72a48443d7a026">AdobeXMPCore</a>
+</li>
+<li>IDOMParser_base
+: <a class="el" href="namespaceAdobeXMPCore.html#afcc78a159d893be198c97d1af098a9e3">AdobeXMPCore</a>
+</li>
+<li>IDOMSerializer_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a2ab7b53419863c354957c09ce4bbb44c">AdobeXMPCore</a>
+</li>
+<li>IError_base
+: <a class="el" href="namespaceAdobeXMPCommon.html#a5f4d698bf8beb5f6604b61aa1362d2c6">AdobeXMPCommon</a>
+</li>
+<li>IErrorNotifier_base
+: <a class="el" href="namespaceAdobeXMPCommon.html#a692c91c0b558cbc476e43e7f0a9112e0">AdobeXMPCommon</a>
+</li>
+<li>IMemoryAllocator_base
+: <a class="el" href="namespaceAdobeXMPCommon.html#ae79591aae25236208281cd3e48a2483d">AdobeXMPCommon</a>
+</li>
+<li>IMetadata_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a3600be9aa8da5d9fcfd522c76755866b">AdobeXMPCore</a>
+</li>
+<li>INameSpacePrefixMap_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a459a371e2e25b93998a16921e3536bc7">AdobeXMPCore</a>
+</li>
+<li>INode_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a625f7fd9cabaa743f95f3cbd876285d3">AdobeXMPCore</a>
+</li>
+<li>INodeIterator_base
+: <a class="el" href="namespaceAdobeXMPCore.html#ad0578d38c94516edb5414524392845b7">AdobeXMPCore</a>
+</li>
+<li>int32
+: <a class="el" href="namespaceAdobeXMPCommon.html#a070d4ea981e6080468e9a3cdbd82b458">AdobeXMPCommon</a>
+</li>
+<li>int64
+: <a class="el" href="namespaceAdobeXMPCommon.html#aee4f68e01de51c2cf1c1044ecafebc25">AdobeXMPCommon</a>
+</li>
+<li>IObjectFactory_base
+: <a class="el" href="namespaceAdobeXMPCommon.html#a25f44f5d5e5c651d20124037a7c3b5c3">AdobeXMPCommon</a>
+</li>
+<li>IPath_base
+: <a class="el" href="namespaceAdobeXMPCore.html#ab063c96638c29753c9799d3184319b85">AdobeXMPCore</a>
+</li>
+<li>IPathSegment_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a7b83ccf46420d268a2cbce051f61a413">AdobeXMPCore</a>
+</li>
+<li>ISimpleNode_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a6bdb87029a97b11b3b8ce4d8eb84e7b7">AdobeXMPCore</a>
+</li>
+<li>IStructureNode_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a8ed683c00df5d7ccdb8428cfc072ca90">AdobeXMPCore</a>
+</li>
+<li>IUTF8String_base
+: <a class="el" href="namespaceAdobeXMPCommon.html#a169532f774f2b1f3d8501e896d6f1957">AdobeXMPCommon</a>
+</li>
+<li>IUTF8Strings
+: <a class="el" href="namespaceAdobeXMPCommon.html#ac82ab59bdaecb219834ac2ff81573414">AdobeXMPCommon</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/namespacemembers_k.html b/docs/API/namespacemembers_k.html
new file mode 100755
index 0000000..eca3797
--- /dev/null
+++ b/docs/API/namespacemembers_k.html
@@ -0,0 +1,306 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Namespace Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
+ <li class="current"><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="namespacemembers.html"><span>All</span></a></li>
+ <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
+ <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
+ <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="namespacemembers.html#index_b"><span>b</span></a></li>
+ <li><a href="namespacemembers_c.html#index_c"><span>c</span></a></li>
+ <li><a href="namespacemembers_e.html#index_e"><span>e</span></a></li>
+ <li><a href="namespacemembers_i.html#index_i"><span>i</span></a></li>
+ <li class="current"><a href="namespacemembers_k.html#index_k"><span>k</span></a></li>
+ <li><a href="namespacemembers_m.html#index_m"><span>m</span></a></li>
+ <li><a href="namespacemembers_n.html#index_n"><span>n</span></a></li>
+ <li><a href="namespacemembers_p.html#index_p"><span>p</span></a></li>
+ <li><a href="namespacemembers_r.html#index_r"><span>r</span></a></li>
+ <li><a href="namespacemembers_s.html#index_s"><span>s</span></a></li>
+ <li><a href="namespacemembers_u.html#index_u"><span>u</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('namespacemembers_k.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all namespace members with links to the namespace documentation for each member:</div>
+
+<h3><a class="anchor" id="index_k"></a>- k -</h3><ul>
+<li>kAllBits()
+: <a class="el" href="namespaceAdobeXMPCommon.html#a3e31c8b25cbf95c42b8e439071bdf865">AdobeXMPCommon</a>
+</li>
+<li>kCECKeyNotSupported
+: <a class="el" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a78a9ef459e114b9e66dbd431d47e367f">AdobeXMPCommon</a>
+</li>
+<li>kCECNone
+: <a class="el" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a48a521a6e08fd24bef691efb926189f4">AdobeXMPCommon</a>
+</li>
+<li>kCECodeMaxValue
+: <a class="el" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a2da955fac9fd8e3e44105ee827c8bca8">AdobeXMPCommon</a>
+</li>
+<li>kCECPreviousTypeDifferent
+: <a class="el" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a9459b3f1895defa4a14e42f0d7c44c64">AdobeXMPCommon</a>
+</li>
+<li>kCECValueNotSupported
+: <a class="el" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a4a285133844f12c9db30cac96272ca99">AdobeXMPCommon</a>
+</li>
+<li>kCECValueTypeMismatch
+: <a class="el" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42ad00affae57206343bb1a2cbfd64a7727">AdobeXMPCommon</a>
+</li>
+<li>kCECValueTypeNotSupported
+: <a class="el" href="namespaceAdobeXMPCommon.html#a87fa911f1ea5a79801b7fe3530637c42a318281c6e6734794b732505f77ed7e1e">AdobeXMPCommon</a>
+</li>
+<li>kDMECArrayItemTypeDifferent
+: <a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a3b02c3806196f643a69970dd75b25464">AdobeXMPCore</a>
+</li>
+<li>kDMECBadIterPosition
+: <a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a9b4b77cfab51a51107011966c97e40e1">AdobeXMPCore</a>
+</li>
+<li>kDMECBadOptions
+: <a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a24f924ad842132ebd85573d0f93bd7f2">AdobeXMPCore</a>
+</li>
+<li>kDMECBadSchema
+: <a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a3053414fb4821785a9dc653ec9ac3c64">AdobeXMPCore</a>
+</li>
+<li>kDMECBadUnicode
+: <a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a8214373306d98cbb58dd480b825d490f">AdobeXMPCore</a>
+</li>
+<li>kDMECBadXPath
+: <a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a5969c9392bfb21fc391de418925e8b4f">AdobeXMPCore</a>
+</li>
+<li>kDMECDifferentNodeTypePresent
+: <a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00ae7e65aa4749b12616a43316687d6a355">AdobeXMPCore</a>
+</li>
+<li>kDMECEmptyIterator
+: <a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00ac1c31716f2bb30971e3b1d33b9993234">AdobeXMPCore</a>
+</li>
+<li>kDMECInvalidPathSegment
+: <a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a7643a6753e328945c9f2580bed3366b1">AdobeXMPCore</a>
+</li>
+<li>kDMECMaxValue
+: <a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a301e1376a4475452904ef20167a254a3">AdobeXMPCore</a>
+</li>
+<li>kDMECNameSpacePrefixMapEntryMissing
+: <a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00ac32e4160006f15e60fd7024cf6f7ac97">AdobeXMPCore</a>
+</li>
+<li>kDMECNodeAlreadyAChild
+: <a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a161dfd9dfc01ba8d6c4e17732f6c0acb">AdobeXMPCore</a>
+</li>
+<li>kDMECNodeAlreadyExists
+: <a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a92ffb54182a7cf24b2f09851a6e5fa4a">AdobeXMPCore</a>
+</li>
+<li>kDMECNone
+: <a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00a2c80efa41e7821f6226aa59f28dfb579">AdobeXMPCore</a>
+</li>
+<li>kDMECNoSuchNodeExists
+: <a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00ae89776605ae99914cfe1b32cb4674c26">AdobeXMPCore</a>
+</li>
+<li>kDMECValidationError
+: <a class="el" href="namespaceAdobeXMPCore.html#aacd1fd7f96affcf9707f45c272f08a00af8aa55dc3ffd9c4d4612463ed430b262">AdobeXMPCore</a>
+</li>
+<li>kGECAssertionFailure
+: <a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac7ad8bab8d1d8f890d26a13076730473">AdobeXMPCommon</a>
+</li>
+<li>kGECClientThrownExceptionCaught
+: <a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a84f703a7e6aed295b04266ba33e382db">AdobeXMPCommon</a>
+</li>
+<li>kGECDeprecatedFunctionCall
+: <a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a34f838480c145031638141ea204b9436">AdobeXMPCommon</a>
+</li>
+<li>kGECExternalFailure
+: <a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aa089e0cea5a0b9fb19ed39c8d53ea624">AdobeXMPCommon</a>
+</li>
+<li>kGECIndexOutOfBounds
+: <a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a4d0d8c80b3932d6160a3117979cf59c7">AdobeXMPCommon</a>
+</li>
+<li>kGECInterfaceUnavailable
+: <a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14af605e8ceabdf52ced8bf1a2961041719">AdobeXMPCommon</a>
+</li>
+<li>kGECInternalFailure
+: <a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aa85fc48596da99b5ac6ec775c5e9d4f1">AdobeXMPCommon</a>
+</li>
+<li>kGECLogicalError
+: <a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a99ed4bfb1b57eea7e5ed9cdd6f63bb88">AdobeXMPCommon</a>
+</li>
+<li>kGECMaxValue
+: <a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aa3bc0d5f5b5bae142630473abaee9f1f">AdobeXMPCommon</a>
+</li>
+<li>kGECNone
+: <a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac9bbc6373eb1432da67162e2d3d8ba00">AdobeXMPCommon</a>
+</li>
+<li>kGECNotImplemented
+: <a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a38faaba6657c0fab6d51f2e7807ab560">AdobeXMPCommon</a>
+</li>
+<li>kGECParametersNotAsExpected
+: <a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac8114fd7fafcae7a7d13793cf32f84e4">AdobeXMPCommon</a>
+</li>
+<li>kGECStandardException
+: <a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ab6be1e47808269e89bff9854599179f0">AdobeXMPCommon</a>
+</li>
+<li>kGECUnknownExceptionCaught
+: <a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a1ec371ab7db9ac473a04755491b4d996">AdobeXMPCommon</a>
+</li>
+<li>kGECUnknownFailure
+: <a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ae5d6719cf38299f4f4bf170467c5e977">AdobeXMPCommon</a>
+</li>
+<li>kGECUserAbort
+: <a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aabc494bfa6cc5c42f4d6203a419943fe">AdobeXMPCommon</a>
+</li>
+<li>kGECVersionUnavailable
+: <a class="el" href="namespaceAdobeXMPCommon.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac4d59c9d462932453e1e5b96efce4beb">AdobeXMPCommon</a>
+</li>
+<li>kIArrayNodeID()
+: <a class="el" href="namespaceAdobeXMPCore.html#a865ec7a2af5304ec42d443da038ae5b7">AdobeXMPCore</a>
+</li>
+<li>kICompositeNodeID()
+: <a class="el" href="namespaceAdobeXMPCore.html#a663e9a570224c4361f5ab883e32cf460">AdobeXMPCore</a>
+</li>
+<li>kIConfigurationManagerID()
+: <a class="el" href="namespaceAdobeXMPCommon.html#af73d2c15fb6abf10bf2b82be984d9be0">AdobeXMPCommon</a>
+</li>
+<li>kICoreConfigurationManagerID()
+: <a class="el" href="namespaceAdobeXMPCore.html#a1fb39caa1c8eeed351b0fca6eca60577">AdobeXMPCore</a>
+</li>
+<li>kICoreObjectFactoryID()
+: <a class="el" href="namespaceAdobeXMPCore.html#a30bb255921760813b83dfb94449051dd">AdobeXMPCore</a>
+</li>
+<li>kIDOMImplementationRegistryID()
+: <a class="el" href="namespaceAdobeXMPCore.html#a6d787e316880e838d2a03f641a520a5b">AdobeXMPCore</a>
+</li>
+<li>kIDOMParserID()
+: <a class="el" href="namespaceAdobeXMPCore.html#aa11deda1f160ba3bfba36558afcaa0ef">AdobeXMPCore</a>
+</li>
+<li>kIDOMSerializerID()
+: <a class="el" href="namespaceAdobeXMPCore.html#a16e22df4b5facaffff284ab0104404a9">AdobeXMPCore</a>
+</li>
+<li>kIErrorID()
+: <a class="el" href="namespaceAdobeXMPCommon.html#ad4c8ddc8db2d27cbcc0d88688fabdd93">AdobeXMPCommon</a>
+</li>
+<li>kIErrorNotifierID()
+: <a class="el" href="namespaceAdobeXMPCommon.html#ab7bbf3293de0d0539f3cbb65b7680252">AdobeXMPCommon</a>
+</li>
+<li>kIMetadataID()
+: <a class="el" href="namespaceAdobeXMPCore.html#ae266f1d0a72a69dbbad9443f1b4140e6">AdobeXMPCore</a>
+</li>
+<li>kINameSpacePrefixMapID()
+: <a class="el" href="namespaceAdobeXMPCore.html#aab6f1fa4adf9d3b8c40d4e8f601ddfdf">AdobeXMPCore</a>
+</li>
+<li>kINodeID()
+: <a class="el" href="namespaceAdobeXMPCore.html#ae76eb0e35e0e35e5b476b6fecc6e3603">AdobeXMPCore</a>
+</li>
+<li>kINodeIteratorID()
+: <a class="el" href="namespaceAdobeXMPCore.html#afb1db1e3afd3cb409aab3c32435b506b">AdobeXMPCore</a>
+</li>
+<li>kIObjectFactoryID()
+: <a class="el" href="namespaceAdobeXMPCommon.html#a3eaf39cde126acb079462286763ca44a">AdobeXMPCommon</a>
+</li>
+<li>kIPathID()
+: <a class="el" href="namespaceAdobeXMPCore.html#a169bb4bbf2a32d4201625eca17bde615">AdobeXMPCore</a>
+</li>
+<li>kIPathSegmentID()
+: <a class="el" href="namespaceAdobeXMPCore.html#a20562f7f885eacd89465270be790c31f">AdobeXMPCore</a>
+</li>
+<li>kISimpleNodeID()
+: <a class="el" href="namespaceAdobeXMPCore.html#a258ec247968bc8e101a087b2f914c95b">AdobeXMPCore</a>
+</li>
+<li>kIStructureNodeID()
+: <a class="el" href="namespaceAdobeXMPCore.html#a099de3a79749ee161daf59313861702e">AdobeXMPCore</a>
+</li>
+<li>kIUTF8StringID()
+: <a class="el" href="namespaceAdobeXMPCommon.html#a97f984a3b999db35dd915b17322c8c7f">AdobeXMPCommon</a>
+</li>
+<li>kMaxEnumValue()
+: <a class="el" href="namespaceAdobeXMPCommon.html#a8ec7e2a77ea452c3d46bb7dbbc722574">AdobeXMPCommon</a>
+</li>
+<li>kMaxSize()
+: <a class="el" href="namespaceAdobeXMPCommon.html#a509d67aa4eb5b6a31db63f448d2a2343">AdobeXMPCommon</a>
+</li>
+<li>kMMECAllocationFailure
+: <a class="el" href="namespaceAdobeXMPCommon.html#aba59dd1cfea0b1759617fc53108d92afa2bbd2fba1abe18a0abbeeb04276fa5d7">AdobeXMPCommon</a>
+</li>
+<li>kMMECMaxValue
+: <a class="el" href="namespaceAdobeXMPCommon.html#aba59dd1cfea0b1759617fc53108d92afa6c3458ee055e89d620fe6f9941658564">AdobeXMPCommon</a>
+</li>
+<li>kMMECNone
+: <a class="el" href="namespaceAdobeXMPCommon.html#aba59dd1cfea0b1759617fc53108d92afa2c2fba02472378e6f5621fa89f662754">AdobeXMPCommon</a>
+</li>
+<li>kPECBadRDF
+: <a class="el" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341a05b1bde4783b56530499a6015d7704e9">AdobeXMPCore</a>
+</li>
+<li>kPECBadXML
+: <a class="el" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341aa537d1ba3f2a47c9feb5b183338314a9">AdobeXMPCore</a>
+</li>
+<li>kPECBadXMP
+: <a class="el" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341a25971d0de364f541b042f0f21df412eb">AdobeXMPCore</a>
+</li>
+<li>kPECContextNodeIsNonComposite
+: <a class="el" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341a7c8e86e45ec62e9748301065944b38ac">AdobeXMPCore</a>
+</li>
+<li>kPECContextNodeParentIsNonArray
+: <a class="el" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341a2f23307e996411a65ac6e206f7557264">AdobeXMPCore</a>
+</li>
+<li>kPECInvalidContextNode
+: <a class="el" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341aed1376b733f98e4cb670d9beba0d6339">AdobeXMPCore</a>
+</li>
+<li>kPECMaxValue
+: <a class="el" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341ae5fc4151a61d73cf47d5ed861dc4ec02">AdobeXMPCore</a>
+</li>
+<li>kPECNone
+: <a class="el" href="namespaceAdobeXMPCore.html#afab54256094fbdd7a9732e4582675341aca80ed9623ff6873b2057b4f9a4f82ac">AdobeXMPCore</a>
+</li>
+<li>kSECMaxValue
+: <a class="el" href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3ea2e8b7434f32a1f65875dd7ac184af458">AdobeXMPCore</a>
+</li>
+<li>kSECNone
+: <a class="el" href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3ea852818fcc062b51ded30ae5cc6943ef8">AdobeXMPCore</a>
+</li>
+<li>kSECSizeExceed
+: <a class="el" href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3ea199673856ea7c62993fb5850817b9181">AdobeXMPCore</a>
+</li>
+<li>kSECUnRegisteredNameSpace
+: <a class="el" href="namespaceAdobeXMPCore.html#ad4e9bcfc5d25760a93189c0ba2962c3ea0f3c48b132df0de45927cf636944ccee">AdobeXMPCore</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/namespacemembers_m.html b/docs/API/namespacemembers_m.html
new file mode 100755
index 0000000..a5f9db2
--- /dev/null
+++ b/docs/API/namespacemembers_m.html
@@ -0,0 +1,84 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Namespace Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
+ <li class="current"><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="namespacemembers.html"><span>All</span></a></li>
+ <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
+ <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
+ <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="namespacemembers.html#index_b"><span>b</span></a></li>
+ <li><a href="namespacemembers_c.html#index_c"><span>c</span></a></li>
+ <li><a href="namespacemembers_e.html#index_e"><span>e</span></a></li>
+ <li><a href="namespacemembers_i.html#index_i"><span>i</span></a></li>
+ <li><a href="namespacemembers_k.html#index_k"><span>k</span></a></li>
+ <li class="current"><a href="namespacemembers_m.html#index_m"><span>m</span></a></li>
+ <li><a href="namespacemembers_n.html#index_n"><span>n</span></a></li>
+ <li><a href="namespacemembers_p.html#index_p"><span>p</span></a></li>
+ <li><a href="namespacemembers_r.html#index_r"><span>r</span></a></li>
+ <li><a href="namespacemembers_s.html#index_s"><span>s</span></a></li>
+ <li><a href="namespacemembers_u.html#index_u"><span>u</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('namespacemembers_m.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all namespace members with links to the namespace documentation for each member:</div>
+
+<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
+<li>MemAllocate()
+: <a class="el" href="namespaceAdobeXMPCommon.html#a3349137d458c48d779670626d7b6ba1a">AdobeXMPCommon</a>
+</li>
+<li>MemAllocateProc
+: <a class="el" href="namespaceAdobeXMPCommon.html#a6ddf5efa8f9b686e5d7fef41d6b10096">AdobeXMPCommon</a>
+</li>
+<li>MemRelease()
+: <a class="el" href="namespaceAdobeXMPCommon.html#ad4c125f465214507005d84a360fa83e5">AdobeXMPCommon</a>
+</li>
+<li>MemReleaseProc
+: <a class="el" href="namespaceAdobeXMPCommon.html#a79edf1f9139609bf6ed70b24cc99a2e0">AdobeXMPCommon</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/namespacemembers_n.html b/docs/API/namespacemembers_n.html
new file mode 100755
index 0000000..af7e23a
--- /dev/null
+++ b/docs/API/namespacemembers_n.html
@@ -0,0 +1,75 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Namespace Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
+ <li class="current"><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="namespacemembers.html"><span>All</span></a></li>
+ <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
+ <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
+ <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="namespacemembers.html#index_b"><span>b</span></a></li>
+ <li><a href="namespacemembers_c.html#index_c"><span>c</span></a></li>
+ <li><a href="namespacemembers_e.html#index_e"><span>e</span></a></li>
+ <li><a href="namespacemembers_i.html#index_i"><span>i</span></a></li>
+ <li><a href="namespacemembers_k.html#index_k"><span>k</span></a></li>
+ <li><a href="namespacemembers_m.html#index_m"><span>m</span></a></li>
+ <li class="current"><a href="namespacemembers_n.html#index_n"><span>n</span></a></li>
+ <li><a href="namespacemembers_p.html#index_p"><span>p</span></a></li>
+ <li><a href="namespacemembers_r.html#index_r"><span>r</span></a></li>
+ <li><a href="namespacemembers_s.html#index_s"><span>s</span></a></li>
+ <li><a href="namespacemembers_u.html#index_u"><span>u</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('namespacemembers_n.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all namespace members with links to the namespace documentation for each member:</div>
+
+<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
+<li>npos()
+: <a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/namespacemembers_p.html b/docs/API/namespacemembers_p.html
new file mode 100755
index 0000000..5825b7f
--- /dev/null
+++ b/docs/API/namespacemembers_p.html
@@ -0,0 +1,474 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Namespace Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
+ <li class="current"><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="namespacemembers.html"><span>All</span></a></li>
+ <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
+ <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
+ <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="namespacemembers.html#index_b"><span>b</span></a></li>
+ <li><a href="namespacemembers_c.html#index_c"><span>c</span></a></li>
+ <li><a href="namespacemembers_e.html#index_e"><span>e</span></a></li>
+ <li><a href="namespacemembers_i.html#index_i"><span>i</span></a></li>
+ <li><a href="namespacemembers_k.html#index_k"><span>k</span></a></li>
+ <li><a href="namespacemembers_m.html#index_m"><span>m</span></a></li>
+ <li><a href="namespacemembers_n.html#index_n"><span>n</span></a></li>
+ <li class="current"><a href="namespacemembers_p.html#index_p"><span>p</span></a></li>
+ <li><a href="namespacemembers_r.html#index_r"><span>r</span></a></li>
+ <li><a href="namespacemembers_s.html#index_s"><span>s</span></a></li>
+ <li><a href="namespacemembers_u.html#index_u"><span>u</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('namespacemembers_p.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all namespace members with links to the namespace documentation for each member:</div>
+
+<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
+<li>pcIArrayNode
+: <a class="el" href="namespaceAdobeXMPCore.html#a3c61d7ec18d24b058624ff83657ad886">AdobeXMPCore</a>
+</li>
+<li>pcIArrayNode_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a61344da48c839ebe8d613175563935bf">AdobeXMPCore</a>
+</li>
+<li>pcIArrayNode_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#ad705150e811fbc6ff116e850c444fc2d">AdobeXMPCore_Int</a>
+</li>
+<li>pcIClientDOMParser
+: <a class="el" href="namespaceAdobeXMPCore.html#affaedf89b30a42f4aea5bb10619d1801">AdobeXMPCore</a>
+</li>
+<li>pcIClientDOMParser_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a886c1974205be855cea961bfacc60604">AdobeXMPCore</a>
+</li>
+<li>pcIClientDOMParser_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a3c5ae6e52bf994fc05ed79ca9c58aae0">AdobeXMPCore_Int</a>
+</li>
+<li>pcIClientDOMSerializer
+: <a class="el" href="namespaceAdobeXMPCore.html#ad638e9de1a595aa976f69d3773d46d16">AdobeXMPCore</a>
+</li>
+<li>pcIClientDOMSerializer_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a871b93cc85748a5d49fe9774d3305203">AdobeXMPCore</a>
+</li>
+<li>pcIClientDOMSerializer_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a786137be71601c8a876f6798ba798eea">AdobeXMPCore_Int</a>
+</li>
+<li>pcICompositeNode
+: <a class="el" href="namespaceAdobeXMPCore.html#a5a920b0717c8a08d3c68ece64a8f815a">AdobeXMPCore</a>
+</li>
+<li>pcICompositeNode_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a2bb4ccadea260bcce39d23e45f5d592f">AdobeXMPCore</a>
+</li>
+<li>pcICompositeNode_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#aa1ac753eb7735e19c3f1a2a21d02a047">AdobeXMPCore_Int</a>
+</li>
+<li>pcIConfigurable
+: <a class="el" href="namespaceAdobeXMPCommon.html#a394d772cfe78f1dbeba6059e7a3c65d6">AdobeXMPCommon</a>
+</li>
+<li>pcIConfigurationManager
+: <a class="el" href="namespaceAdobeXMPCommon.html#a2a6831c5d17f5c9990c01268f67b7bb2">AdobeXMPCommon</a>
+</li>
+<li>pcIConfigurationManager_base
+: <a class="el" href="namespaceAdobeXMPCommon.html#a39556e80a6bda05757b7f2766ddc2ba1">AdobeXMPCommon</a>
+</li>
+<li>pcICoreConfigurationManager
+: <a class="el" href="namespaceAdobeXMPCore.html#a691bc74f235854166554f597f777bb5f">AdobeXMPCore</a>
+</li>
+<li>pcICoreConfigurationManager_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a748a32416e42b563251d682d49535fb8">AdobeXMPCore</a>
+</li>
+<li>pcICoreConfigurationManager_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#ae995733eb74953fd4e8cafe373236938">AdobeXMPCore_Int</a>
+</li>
+<li>pcICoreObjectFactory
+: <a class="el" href="namespaceAdobeXMPCore.html#a55e6a583f61b00819b7034f9dd2243f9">AdobeXMPCore</a>
+</li>
+<li>pcICoreObjectFactory_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a2ccf603c61b8576fb4a0de760e27f6ba">AdobeXMPCore</a>
+</li>
+<li>pcICoreObjectFactory_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#ae32d6c403c99fe665bbeff4483a7b144">AdobeXMPCore_Int</a>
+</li>
+<li>pcIDOMImplementationRegistry
+: <a class="el" href="namespaceAdobeXMPCore.html#a3971bab010eb9c01783af14c58ccfe54">AdobeXMPCore</a>
+</li>
+<li>pcIDOMImplementationRegistry_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a71d91db5d9f5b30fa16b5790948f11cc">AdobeXMPCore</a>
+</li>
+<li>pcIDOMImplementationRegistry_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#ae7c82f1920d2cbe1956fc5c43d0b10e2">AdobeXMPCore_Int</a>
+</li>
+<li>pcIDOMParser
+: <a class="el" href="namespaceAdobeXMPCore.html#a6b5fc097880814213414c58da877fea5">AdobeXMPCore</a>
+</li>
+<li>pcIDOMParser_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a761f1236009e028ec7c95d4e3fa59b71">AdobeXMPCore</a>
+</li>
+<li>pcIDOMParser_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a3a6d0893476eb4ce3713ca88e5c80b4e">AdobeXMPCore_Int</a>
+</li>
+<li>pcIDOMSerializer
+: <a class="el" href="namespaceAdobeXMPCore.html#a1de6f60a0aefc1d42bb656731ff33a9b">AdobeXMPCore</a>
+</li>
+<li>pcIDOMSerializer_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a9259d01efe1d26b66d5f60cf79f81296">AdobeXMPCore</a>
+</li>
+<li>pcIDOMSerializer_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a771229361d508f6fc0d427803543d38b">AdobeXMPCore_Int</a>
+</li>
+<li>pcIError
+: <a class="el" href="namespaceAdobeXMPCommon.html#a0e0c89c232b777fb332e0ddc10b65fc2">AdobeXMPCommon</a>
+</li>
+<li>pcIError_base
+: <a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">AdobeXMPCommon</a>
+</li>
+<li>pcIErrorNotifier
+: <a class="el" href="namespaceAdobeXMPCommon.html#aa4baade1a8eb0dbb544860e0c89362f8">AdobeXMPCommon</a>
+</li>
+<li>pcIErrorNotifier_base
+: <a class="el" href="namespaceAdobeXMPCommon.html#a15919ce22d7dc4def5a590f0dbb882ca">AdobeXMPCommon</a>
+</li>
+<li>pcIMemoryAllocator
+: <a class="el" href="namespaceAdobeXMPCommon.html#af5a7d4d78400043e3e49dfa6a2725abb">AdobeXMPCommon</a>
+</li>
+<li>pcIMemoryAllocator_base
+: <a class="el" href="namespaceAdobeXMPCommon.html#a42a89fb94134c8eaed66765f2975b3f9">AdobeXMPCommon</a>
+</li>
+<li>pcIMetadata
+: <a class="el" href="namespaceAdobeXMPCore.html#aa542fbf0ea812dbe340cd7837d68ef9f">AdobeXMPCore</a>
+</li>
+<li>pcIMetadata_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a2987cd583f3105668b529ad5fe385481">AdobeXMPCore</a>
+</li>
+<li>pcIMetadata_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#abf85881909a28303736ad48039524d73">AdobeXMPCore_Int</a>
+</li>
+<li>pcINameSpacePrefixMap
+: <a class="el" href="namespaceAdobeXMPCore.html#ac973b0e26fb1fdf9146be95ab9f12b1e">AdobeXMPCore</a>
+</li>
+<li>pcINameSpacePrefixMap_base
+: <a class="el" href="namespaceAdobeXMPCore.html#ad877a19389a4ba0dd5ef226470fd7f5b">AdobeXMPCore</a>
+</li>
+<li>pcINameSpacePrefixMap_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#ab7edb8a8ca91f8397965cf85502c2043">AdobeXMPCore_Int</a>
+</li>
+<li>pcINode
+: <a class="el" href="namespaceAdobeXMPCore.html#ab2c77e55a81c018160035cea22f49a1a">AdobeXMPCore</a>
+</li>
+<li>pcINode_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a4cddd2e1fe643106d1c026481157bdc8">AdobeXMPCore</a>
+</li>
+<li>pcINode_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a09decb910c24c7929d609f1e29ca16b1">AdobeXMPCore_Int</a>
+</li>
+<li>pcINodeIterator
+: <a class="el" href="namespaceAdobeXMPCore.html#a634afe8da11f5cea93b0f07e8270da5f">AdobeXMPCore</a>
+</li>
+<li>pcINodeIterator_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a830414d5b50ee73daa2d85efb174921a">AdobeXMPCore</a>
+</li>
+<li>pcINodeIterator_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a9d8ff928f0b3e120916451e57b1b05bb">AdobeXMPCore_Int</a>
+</li>
+<li>pcIObjectFactory
+: <a class="el" href="namespaceAdobeXMPCommon.html#a272e32106a7573db514736bfb68a1673">AdobeXMPCommon</a>
+</li>
+<li>pcIObjectFactory_base
+: <a class="el" href="namespaceAdobeXMPCommon.html#a8d7232279921e3ccaa69fe314052415b">AdobeXMPCommon</a>
+</li>
+<li>pcIPath
+: <a class="el" href="namespaceAdobeXMPCore.html#a277f8ceb2e7074edb4ce6c3bc906a71c">AdobeXMPCore</a>
+</li>
+<li>pcIPath_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a822c7331a85db496adc520310ac6c144">AdobeXMPCore</a>
+</li>
+<li>pcIPath_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#aa917512a62ab131edf95fab4e6ba7067">AdobeXMPCore_Int</a>
+</li>
+<li>pcIPathSegment
+: <a class="el" href="namespaceAdobeXMPCore.html#a6ae7c996eea34342b41719bcc4bf766a">AdobeXMPCore</a>
+</li>
+<li>pcIPathSegment_base
+: <a class="el" href="namespaceAdobeXMPCore.html#aa1d5ef746b351d46f0d9be2d53538d7b">AdobeXMPCore</a>
+</li>
+<li>pcIPathSegment_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a8c2801e50baa3f7979aa4a31225bc25d">AdobeXMPCore_Int</a>
+</li>
+<li>pcISharedObject_I
+: <a class="el" href="namespaceAdobeXMPCommon__Int.html#affd72b6c7abbc84fdef10b5a607cd432">AdobeXMPCommon_Int</a>
+</li>
+<li>pcISimpleNode
+: <a class="el" href="namespaceAdobeXMPCore.html#acff9cacaf46a6c6923117852e63579b6">AdobeXMPCore</a>
+</li>
+<li>pcISimpleNode_base
+: <a class="el" href="namespaceAdobeXMPCore.html#abaf2af5208e93c52361d13dff16c959d">AdobeXMPCore</a>
+</li>
+<li>pcISimpleNode_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a0de0f06ece9bff0c77df3e519af9f506">AdobeXMPCore_Int</a>
+</li>
+<li>pcIStructureNode
+: <a class="el" href="namespaceAdobeXMPCore.html#abae00582b217eaa165ccf0006afa23bd">AdobeXMPCore</a>
+</li>
+<li>pcIStructureNode_base
+: <a class="el" href="namespaceAdobeXMPCore.html#ae429e590ecce9128e7bb3c8ea91c6b16">AdobeXMPCore</a>
+</li>
+<li>pcIStructureNode_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a85d314eae1eef235e7c698c5c84bdda1">AdobeXMPCore_Int</a>
+</li>
+<li>pcIThreadSafe_I
+: <a class="el" href="namespaceAdobeXMPCommon__Int.html#a2becb4c0d21c71e1dcecdcaae0e92bd7">AdobeXMPCommon_Int</a>
+</li>
+<li>pcIUTF8String
+: <a class="el" href="namespaceAdobeXMPCommon.html#aa9b2c45fd472c6e0e322a94c87e36e23">AdobeXMPCommon</a>
+</li>
+<li>pcIUTF8String_base
+: <a class="el" href="namespaceAdobeXMPCommon.html#a34ccf48e077c7308540d98149a4a8b2b">AdobeXMPCommon</a>
+</li>
+<li>pcvoid
+: <a class="el" href="namespaceAdobeXMPCommon.html#a19692335f9547f4bc07d0ff727f14605">AdobeXMPCommon</a>
+</li>
+<li>pIArrayNode
+: <a class="el" href="namespaceAdobeXMPCore.html#a0f163418e9969110fdf767b0092a08cd">AdobeXMPCore</a>
+</li>
+<li>pIArrayNode_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a47468e9aeeb0e9d2541bccfbbaf916f7">AdobeXMPCore</a>
+</li>
+<li>pIArrayNode_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#af2a081973401c42b5772dc9faec58a58">AdobeXMPCore_Int</a>
+</li>
+<li>pIClientDOMParser
+: <a class="el" href="namespaceAdobeXMPCore.html#ab5d69f05635d466dcd976f8b2b8e8617">AdobeXMPCore</a>
+</li>
+<li>pIClientDOMParser_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a9dd27d79138a3d399e48343b626cd3a9">AdobeXMPCore</a>
+</li>
+<li>pIClientDOMParser_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a5c9e417017018f36cdbfdbcaa8cd0585">AdobeXMPCore_Int</a>
+</li>
+<li>pIClientDOMSerializer
+: <a class="el" href="namespaceAdobeXMPCore.html#a901745dcadcfc4387450dd28aaa2d490">AdobeXMPCore</a>
+</li>
+<li>pIClientDOMSerializer_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a2dfed76bf986f6fad861aa2323b28caf">AdobeXMPCore</a>
+</li>
+<li>pIClientDOMSerializer_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a9807c050f5244e2cf017e5f247d22473">AdobeXMPCore_Int</a>
+</li>
+<li>pICompositeNode
+: <a class="el" href="namespaceAdobeXMPCore.html#aef05040bb5475b170f4816511f0655d0">AdobeXMPCore</a>
+</li>
+<li>pICompositeNode_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a294ebc2cc2287c14558850dcd8c88f1e">AdobeXMPCore</a>
+</li>
+<li>pICompositeNode_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a88df781b3af9dc7dfe7cb967b6e9b440">AdobeXMPCore_Int</a>
+</li>
+<li>pIConfigurable
+: <a class="el" href="namespaceAdobeXMPCommon.html#a9befc7ddfe5977c8176eed763d9ce69e">AdobeXMPCommon</a>
+</li>
+<li>pIConfigurationManager
+: <a class="el" href="namespaceAdobeXMPCommon.html#a66f57b67d8be6cbf836ad084a3d27d76">AdobeXMPCommon</a>
+</li>
+<li>pIConfigurationManager_base
+: <a class="el" href="namespaceAdobeXMPCommon.html#a20fcfcaa614eba9a9fcdf2353b82fdb7">AdobeXMPCommon</a>
+</li>
+<li>pICoreConfigurationManager
+: <a class="el" href="namespaceAdobeXMPCore.html#a0476368bde6f3c6e43e3659ae092f6e1">AdobeXMPCore</a>
+</li>
+<li>pICoreConfigurationManager_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a55c34a6f458c74682e542edd2a258686">AdobeXMPCore</a>
+</li>
+<li>pICoreConfigurationManager_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a643dfc0500b39ea6d5a81c187fe0e9bc">AdobeXMPCore_Int</a>
+</li>
+<li>pICoreObjectFactory
+: <a class="el" href="namespaceAdobeXMPCore.html#ad925e271d292d0b0af1a24342391219d">AdobeXMPCore</a>
+</li>
+<li>pICoreObjectFactory_base
+: <a class="el" href="namespaceAdobeXMPCore.html#ac062cb6e980601a1eedf6085cca9b850">AdobeXMPCore</a>
+</li>
+<li>pICoreObjectFactory_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#ad445bf512b4b3179b131b0a7dec31d86">AdobeXMPCore_Int</a>
+</li>
+<li>pIDOMImplementationRegistry
+: <a class="el" href="namespaceAdobeXMPCore.html#ae332986668c86f3e5c6bbd57fd5f4cad">AdobeXMPCore</a>
+</li>
+<li>pIDOMImplementationRegistry_base
+: <a class="el" href="namespaceAdobeXMPCore.html#ae600077e4e41eec5ebb90fa7510b8b48">AdobeXMPCore</a>
+</li>
+<li>pIDOMImplementationRegistry_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#ad26aadc3f0926468c34c02cc1a0f1dbd">AdobeXMPCore_Int</a>
+</li>
+<li>pIDOMParser
+: <a class="el" href="namespaceAdobeXMPCore.html#a8b003da6674d32c5c628f1d0e1fa45aa">AdobeXMPCore</a>
+</li>
+<li>pIDOMParser_base
+: <a class="el" href="namespaceAdobeXMPCore.html#ad8fa3ac657a8506d5d25544060c4af15">AdobeXMPCore</a>
+</li>
+<li>pIDOMParser_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a4dad9e02be4a3efae9ea99e5f03ae11e">AdobeXMPCore_Int</a>
+</li>
+<li>pIDOMSerializer
+: <a class="el" href="namespaceAdobeXMPCore.html#a6b414731e356594947b08382866c9fcf">AdobeXMPCore</a>
+</li>
+<li>pIDOMSerializer_base
+: <a class="el" href="namespaceAdobeXMPCore.html#aa83dd7633a221cb189681dff2bbd78a3">AdobeXMPCore</a>
+</li>
+<li>pIDOMSerializer_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a1bbf04f53ef3da6e5e12f535679bb177">AdobeXMPCore_Int</a>
+</li>
+<li>pIError
+: <a class="el" href="namespaceAdobeXMPCommon.html#ac0db32de8e6a3688ad0dfc36c2757fb4">AdobeXMPCommon</a>
+</li>
+<li>pIError_base
+: <a class="el" href="namespaceAdobeXMPCommon.html#a4e907810e5d5937b974343d279e0181d">AdobeXMPCommon</a>
+</li>
+<li>pIErrorNotifier
+: <a class="el" href="namespaceAdobeXMPCommon.html#a9981f3ca088023224e80dbad05090f3c">AdobeXMPCommon</a>
+</li>
+<li>pIErrorNotifier_base
+: <a class="el" href="namespaceAdobeXMPCommon.html#a4ad7bda9e1289b0bb93510402b6e86f9">AdobeXMPCommon</a>
+</li>
+<li>pIMemoryAllocator
+: <a class="el" href="namespaceAdobeXMPCommon.html#a605dcb5281a71a01673c81e6508f932f">AdobeXMPCommon</a>
+</li>
+<li>pIMemoryAllocator_base
+: <a class="el" href="namespaceAdobeXMPCommon.html#aff75b5c835a8eb072072be6b404aa0d5">AdobeXMPCommon</a>
+</li>
+<li>pIMetadata
+: <a class="el" href="namespaceAdobeXMPCore.html#a0c1658ecfb260ac950498f17edd5ebd0">AdobeXMPCore</a>
+</li>
+<li>pIMetadata_base
+: <a class="el" href="namespaceAdobeXMPCore.html#aa6b155d7624638c88d2b64b551ef1b0c">AdobeXMPCore</a>
+</li>
+<li>pIMetadata_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a70359e8aaa387b24879f1510ac1c4725">AdobeXMPCore_Int</a>
+</li>
+<li>pINameSpacePrefixMap
+: <a class="el" href="namespaceAdobeXMPCore.html#a7c13887bb991ed5707ebae28d26543b1">AdobeXMPCore</a>
+</li>
+<li>pINameSpacePrefixMap_base
+: <a class="el" href="namespaceAdobeXMPCore.html#ad7423726463e791584bdeeb0a699c2d6">AdobeXMPCore</a>
+</li>
+<li>pINameSpacePrefixMap_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a0665746b848a075cc4aaf72f553cea95">AdobeXMPCore_Int</a>
+</li>
+<li>pINode
+: <a class="el" href="namespaceAdobeXMPCore.html#abc833d7b10347a44a303b973337cf536">AdobeXMPCore</a>
+</li>
+<li>pINode_base
+: <a class="el" href="namespaceAdobeXMPCore.html#adb4509f09f05618cebbd4f09a5fbb05a">AdobeXMPCore</a>
+</li>
+<li>pINode_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a7ab22fbbd637098e7e0db48036864228">AdobeXMPCore_Int</a>
+</li>
+<li>pINodeIterator
+: <a class="el" href="namespaceAdobeXMPCore.html#ac162eebfff7088f633bc0dd401a18862">AdobeXMPCore</a>
+</li>
+<li>pINodeIterator_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a6e8a84e7b4b342b98bc1af7297c30250">AdobeXMPCore</a>
+</li>
+<li>pINodeIterator_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a71dcb1468c552abdd9fb1666cadc6600">AdobeXMPCore_Int</a>
+</li>
+<li>pIObjectFactory
+: <a class="el" href="namespaceAdobeXMPCommon.html#a0863cf1c24764306839671985373b93f">AdobeXMPCommon</a>
+</li>
+<li>pIObjectFactory_base
+: <a class="el" href="namespaceAdobeXMPCommon.html#adb1552a01da782d3f1c5ff00e49f48f8">AdobeXMPCommon</a>
+</li>
+<li>pIPath
+: <a class="el" href="namespaceAdobeXMPCore.html#abce7d351f3258b3edfb1c96e7d2d4945">AdobeXMPCore</a>
+</li>
+<li>pIPath_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a8a912843a6b3779781ed27cde7e330d6">AdobeXMPCore</a>
+</li>
+<li>pIPath_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#ac72d014801c316df78e38687d0c11aa7">AdobeXMPCore_Int</a>
+</li>
+<li>pIPathSegment
+: <a class="el" href="namespaceAdobeXMPCore.html#afcc8116b5f4020c02bc96bd91a4d5235">AdobeXMPCore</a>
+</li>
+<li>pIPathSegment_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a5a11f058662f2f67819f52a97154076b">AdobeXMPCore</a>
+</li>
+<li>pIPathSegment_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a7b86a8447002d8c63c837cffda64dd2a">AdobeXMPCore_Int</a>
+</li>
+<li>pISharedObject_I
+: <a class="el" href="namespaceAdobeXMPCommon__Int.html#ada4b051c58f05ef398453930451bc13d">AdobeXMPCommon_Int</a>
+</li>
+<li>pISimpleNode
+: <a class="el" href="namespaceAdobeXMPCore.html#ad9403696e40df26b5d17e0d17d6799f0">AdobeXMPCore</a>
+</li>
+<li>pISimpleNode_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a14569c99ffc10ff405f51220851fbe36">AdobeXMPCore</a>
+</li>
+<li>pISimpleNode_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a9b914b7e3bafee8e830a982810ed2191">AdobeXMPCore_Int</a>
+</li>
+<li>pIStructureNode
+: <a class="el" href="namespaceAdobeXMPCore.html#ac7a54801a0cd4ae9441548ccfb1fd608">AdobeXMPCore</a>
+</li>
+<li>pIStructureNode_base
+: <a class="el" href="namespaceAdobeXMPCore.html#af51bfb0cbccc377fb76fbc7187eb3456">AdobeXMPCore</a>
+</li>
+<li>pIStructureNode_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a4d4375869e320dc1596a9d62a4030b05">AdobeXMPCore_Int</a>
+</li>
+<li>pIThreadSafe_I
+: <a class="el" href="namespaceAdobeXMPCommon__Int.html#ac9c07c42e647a17838c9314b8d2823d9">AdobeXMPCommon_Int</a>
+</li>
+<li>pIUTF8String
+: <a class="el" href="namespaceAdobeXMPCommon.html#a27ba1868ebc552bef10fe156bd4e340b">AdobeXMPCommon</a>
+</li>
+<li>pIUTF8String_base
+: <a class="el" href="namespaceAdobeXMPCommon.html#a0430b250dd00621dcb9f32a3acb87b7f">AdobeXMPCommon</a>
+</li>
+<li>pvoid
+: <a class="el" href="namespaceAdobeXMPCommon.html#ab59e650373a5efadfbfd2486313258a6">AdobeXMPCommon</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/namespacemembers_r.html b/docs/API/namespacemembers_r.html
new file mode 100755
index 0000000..993d358
--- /dev/null
+++ b/docs/API/namespacemembers_r.html
@@ -0,0 +1,75 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Namespace Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
+ <li class="current"><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="namespacemembers.html"><span>All</span></a></li>
+ <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
+ <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
+ <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="namespacemembers.html#index_b"><span>b</span></a></li>
+ <li><a href="namespacemembers_c.html#index_c"><span>c</span></a></li>
+ <li><a href="namespacemembers_e.html#index_e"><span>e</span></a></li>
+ <li><a href="namespacemembers_i.html#index_i"><span>i</span></a></li>
+ <li><a href="namespacemembers_k.html#index_k"><span>k</span></a></li>
+ <li><a href="namespacemembers_m.html#index_m"><span>m</span></a></li>
+ <li><a href="namespacemembers_n.html#index_n"><span>n</span></a></li>
+ <li><a href="namespacemembers_p.html#index_p"><span>p</span></a></li>
+ <li class="current"><a href="namespacemembers_r.html#index_r"><span>r</span></a></li>
+ <li><a href="namespacemembers_s.html#index_s"><span>s</span></a></li>
+ <li><a href="namespacemembers_u.html#index_u"><span>u</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('namespacemembers_r.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all namespace members with links to the namespace documentation for each member:</div>
+
+<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
+<li>ReportErrorAndContinueABISafeProc
+: <a class="el" href="namespaceAdobeXMPCommon.html#a8dc9ba4ce78a957c0843998c2468241a">AdobeXMPCommon</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/namespacemembers_s.html b/docs/API/namespacemembers_s.html
new file mode 100755
index 0000000..475d061
--- /dev/null
+++ b/docs/API/namespacemembers_s.html
@@ -0,0 +1,207 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Namespace Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
+ <li class="current"><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="namespacemembers.html"><span>All</span></a></li>
+ <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
+ <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
+ <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="namespacemembers.html#index_b"><span>b</span></a></li>
+ <li><a href="namespacemembers_c.html#index_c"><span>c</span></a></li>
+ <li><a href="namespacemembers_e.html#index_e"><span>e</span></a></li>
+ <li><a href="namespacemembers_i.html#index_i"><span>i</span></a></li>
+ <li><a href="namespacemembers_k.html#index_k"><span>k</span></a></li>
+ <li><a href="namespacemembers_m.html#index_m"><span>m</span></a></li>
+ <li><a href="namespacemembers_n.html#index_n"><span>n</span></a></li>
+ <li><a href="namespacemembers_p.html#index_p"><span>p</span></a></li>
+ <li><a href="namespacemembers_r.html#index_r"><span>r</span></a></li>
+ <li class="current"><a href="namespacemembers_s.html#index_s"><span>s</span></a></li>
+ <li><a href="namespacemembers_u.html#index_u"><span>u</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('namespacemembers_s.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all namespace members with links to the namespace documentation for each member:</div>
+
+<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<li>sizet
+: <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon</a>
+</li>
+<li>spcIArrayNode
+: <a class="el" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">AdobeXMPCore</a>
+</li>
+<li>spcICompositeNode
+: <a class="el" href="namespaceAdobeXMPCore.html#a7c98739d62fca879db910ac0fca82c3c">AdobeXMPCore</a>
+</li>
+<li>spcIConfigurationManager
+: <a class="el" href="namespaceAdobeXMPCommon.html#abe53a5a98ec0d2d6ce76d1d820794177">AdobeXMPCommon</a>
+</li>
+<li>spcICoreConfigurationManager
+: <a class="el" href="namespaceAdobeXMPCore.html#a885f02b2d6de4b5403445eb74e5e2ce6">AdobeXMPCore</a>
+</li>
+<li>spcIDOMImplementationRegistry
+: <a class="el" href="namespaceAdobeXMPCore.html#a6efe4728a027ee77597fe1a05a6bc30c">AdobeXMPCore</a>
+</li>
+<li>spcIDOMParser
+: <a class="el" href="namespaceAdobeXMPCore.html#a587ba854add16d5201c974a3a0f7050c">AdobeXMPCore</a>
+</li>
+<li>spcIDOMSerializer
+: <a class="el" href="namespaceAdobeXMPCore.html#aee2397438ef33989fb100e5923821eb9">AdobeXMPCore</a>
+</li>
+<li>spcIError
+: <a class="el" href="namespaceAdobeXMPCommon.html#a3f0de5ba5753a56896f2941927b23560">AdobeXMPCommon</a>
+</li>
+<li>spcIErrorNotifier
+: <a class="el" href="namespaceAdobeXMPCommon.html#a4eeee081576f932942082744eb05456c">AdobeXMPCommon</a>
+</li>
+<li>spcIMemoryAllocator
+: <a class="el" href="namespaceAdobeXMPCommon.html#a183fc5e814bdad0ddf9946ddc35c307a">AdobeXMPCommon</a>
+</li>
+<li>spcIMetadata
+: <a class="el" href="namespaceAdobeXMPCore.html#a1e81ce748e90e850d0a48b0b5943fce2">AdobeXMPCore</a>
+</li>
+<li>spcINameSpacePrefixMap
+: <a class="el" href="namespaceAdobeXMPCore.html#a22f9e572045a61aa3cfc629a0d877d72">AdobeXMPCore</a>
+</li>
+<li>spcINode
+: <a class="el" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">AdobeXMPCore</a>
+</li>
+<li>spcINodeIterator
+: <a class="el" href="namespaceAdobeXMPCore.html#ab423c366f29043e79694f805bceddb56">AdobeXMPCore</a>
+</li>
+<li>spcIPath
+: <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">AdobeXMPCore</a>
+</li>
+<li>spcIPathSegment
+: <a class="el" href="namespaceAdobeXMPCore.html#a98ce40154ef1c1d92f2077c8211f2a9c">AdobeXMPCore</a>
+</li>
+<li>spcISimpleNode
+: <a class="el" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">AdobeXMPCore</a>
+</li>
+<li>spcIStructureNode
+: <a class="el" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">AdobeXMPCore</a>
+</li>
+<li>spcIUTF8String
+: <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">AdobeXMPCommon</a>
+</li>
+<li>spcIUTF8Strings
+: <a class="el" href="namespaceAdobeXMPCommon.html#a181114a44f34efda2d8b4cb98446de86">AdobeXMPCommon</a>
+</li>
+<li>spcIUTF8Strings_const
+: <a class="el" href="namespaceAdobeXMPCommon.html#aeea9f5dbdf44fd5382b0ca50dda8f2cf">AdobeXMPCommon</a>
+</li>
+<li>spcvoid
+: <a class="el" href="namespaceAdobeXMPCommon.html#a93bf79ca806273dc229d940504654caa">AdobeXMPCommon</a>
+</li>
+<li>spIArrayNode
+: <a class="el" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">AdobeXMPCore</a>
+</li>
+<li>spICompositeNode
+: <a class="el" href="namespaceAdobeXMPCore.html#acfcbb43bd0f659f554877c4f9dd7d459">AdobeXMPCore</a>
+</li>
+<li>spIConfigurationManager
+: <a class="el" href="namespaceAdobeXMPCommon.html#a4ebcc3c8cb04d7593dc3250aa720f0d4">AdobeXMPCommon</a>
+</li>
+<li>spICoreConfigurationManager
+: <a class="el" href="namespaceAdobeXMPCore.html#a123c6e847d41233c9e4ba6c64a650c7f">AdobeXMPCore</a>
+</li>
+<li>spIDOMImplementationRegistry
+: <a class="el" href="namespaceAdobeXMPCore.html#a197acc21ecf883449824a1e87a99586a">AdobeXMPCore</a>
+</li>
+<li>spIDOMParser
+: <a class="el" href="namespaceAdobeXMPCore.html#a737ec082bb4e7f817b45e073337c0893">AdobeXMPCore</a>
+</li>
+<li>spIDOMSerializer
+: <a class="el" href="namespaceAdobeXMPCore.html#af3525e619e07f58d7eb8247b56ddad21">AdobeXMPCore</a>
+</li>
+<li>spIError
+: <a class="el" href="namespaceAdobeXMPCommon.html#adb05c7ceec43360b84aee536612151f9">AdobeXMPCommon</a>
+</li>
+<li>spIErrorNotifier
+: <a class="el" href="namespaceAdobeXMPCommon.html#a4d5b76921b44568978986a81d2c19336">AdobeXMPCommon</a>
+</li>
+<li>spIMemoryAllocator
+: <a class="el" href="namespaceAdobeXMPCommon.html#a9423cafa21356df5d02adf7a94f4e4b0">AdobeXMPCommon</a>
+</li>
+<li>spIMetadata
+: <a class="el" href="namespaceAdobeXMPCore.html#a7f1de39fd79aeac4402eba73cb1ffe82">AdobeXMPCore</a>
+</li>
+<li>spINameSpacePrefixMap
+: <a class="el" href="namespaceAdobeXMPCore.html#ab17b1221c559007c5fbc73cf2c555c6c">AdobeXMPCore</a>
+</li>
+<li>spINode
+: <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">AdobeXMPCore</a>
+</li>
+<li>spINodeIterator
+: <a class="el" href="namespaceAdobeXMPCore.html#a5386a735d9eb66d5859e4657dfeebb7c">AdobeXMPCore</a>
+</li>
+<li>spIPath
+: <a class="el" href="namespaceAdobeXMPCore.html#aa54f5ed241da9437ad01c1047a199f56">AdobeXMPCore</a>
+</li>
+<li>spIPathSegment
+: <a class="el" href="namespaceAdobeXMPCore.html#ae339cdf18168ecc8197e651df8f43854">AdobeXMPCore</a>
+</li>
+<li>spISimpleNode
+: <a class="el" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">AdobeXMPCore</a>
+</li>
+<li>spIStructureNode
+: <a class="el" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">AdobeXMPCore</a>
+</li>
+<li>spIUTF8String
+: <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">AdobeXMPCommon</a>
+</li>
+<li>spIUTF8Strings
+: <a class="el" href="namespaceAdobeXMPCommon.html#a5f4ff8126658f07efbc881778bfea430">AdobeXMPCommon</a>
+</li>
+<li>spIUTF8Strings_const
+: <a class="el" href="namespaceAdobeXMPCommon.html#ab4410cb115c4e0fa0800ab6ebf21abf7">AdobeXMPCommon</a>
+</li>
+<li>spvoid
+: <a class="el" href="namespaceAdobeXMPCommon.html#a28d3e703084f75a411ece4bb7b22fdd4">AdobeXMPCommon</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/namespacemembers_type.html b/docs/API/namespacemembers_type.html
new file mode 100755
index 0000000..fb07431
--- /dev/null
+++ b/docs/API/namespacemembers_type.html
@@ -0,0 +1,71 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Namespace Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
+ <li class="current"><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespacemembers.html"><span>All</span></a></li>
+ <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
+ <li class="current"><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
+ <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li class="current"><a href="namespacemembers_type.html#index_c"><span>c</span></a></li>
+ <li><a href="namespacemembers_type_i.html#index_i"><span>i</span></a></li>
+ <li><a href="namespacemembers_type_m.html#index_m"><span>m</span></a></li>
+ <li><a href="namespacemembers_type_p.html#index_p"><span>p</span></a></li>
+ <li><a href="namespacemembers_type_r.html#index_r"><span>r</span></a></li>
+ <li><a href="namespacemembers_type_s.html#index_s"><span>s</span></a></li>
+ <li><a href="namespacemembers_type_u.html#index_u"><span>u</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('namespacemembers_type.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
+<li>cIUTF8Strings
+: <a class="el" href="namespaceAdobeXMPCommon.html#aae5dbe164f71188aa24c87fa6306539a">AdobeXMPCommon</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/namespacemembers_type.js b/docs/API/namespacemembers_type.js
new file mode 100755
index 0000000..f69623e
--- /dev/null
+++ b/docs/API/namespacemembers_type.js
@@ -0,0 +1,10 @@
+var namespacemembers_type =
+[
+ [ "c", "namespacemembers_type.html", null ],
+ [ "i", "namespacemembers_type_i.html", null ],
+ [ "m", "namespacemembers_type_m.html", null ],
+ [ "p", "namespacemembers_type_p.html", null ],
+ [ "r", "namespacemembers_type_r.html", null ],
+ [ "s", "namespacemembers_type_s.html", null ],
+ [ "u", "namespacemembers_type_u.html", null ]
+]; \ No newline at end of file
diff --git a/docs/API/namespacemembers_type_i.html b/docs/API/namespacemembers_type_i.html
new file mode 100755
index 0000000..fec9a3d
--- /dev/null
+++ b/docs/API/namespacemembers_type_i.html
@@ -0,0 +1,146 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Namespace Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
+ <li class="current"><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespacemembers.html"><span>All</span></a></li>
+ <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
+ <li class="current"><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
+ <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="namespacemembers_type.html#index_c"><span>c</span></a></li>
+ <li class="current"><a href="namespacemembers_type_i.html#index_i"><span>i</span></a></li>
+ <li><a href="namespacemembers_type_m.html#index_m"><span>m</span></a></li>
+ <li><a href="namespacemembers_type_p.html#index_p"><span>p</span></a></li>
+ <li><a href="namespacemembers_type_r.html#index_r"><span>r</span></a></li>
+ <li><a href="namespacemembers_type_s.html#index_s"><span>s</span></a></li>
+ <li><a href="namespacemembers_type_u.html#index_u"><span>u</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('namespacemembers_type_i.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
+<li>IArrayNode_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a91f2a2df5097022662328e102a56a4ea">AdobeXMPCore</a>
+</li>
+<li>IClientDOMParser_base
+: <a class="el" href="namespaceAdobeXMPCore.html#acf6b51a9bb0059c712e6e423ef94fd0d">AdobeXMPCore</a>
+</li>
+<li>IClientDOMSerializer_base
+: <a class="el" href="namespaceAdobeXMPCore.html#ac50d8fc1c60d397b440d075184e01212">AdobeXMPCore</a>
+</li>
+<li>ICompositeNode_base
+: <a class="el" href="namespaceAdobeXMPCore.html#aab9120a7fc533281e84ead6df110e0a5">AdobeXMPCore</a>
+</li>
+<li>IConfigurationManager_base
+: <a class="el" href="namespaceAdobeXMPCommon.html#ab6a71f81b4e3c8e5d2d0c90f82fbee08">AdobeXMPCommon</a>
+</li>
+<li>ICoreConfigurationManager_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a51c59c2b14cae80da8b1fa5dfa2f4732">AdobeXMPCore</a>
+</li>
+<li>ICoreObjectFactory_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a77c425a2d9deb50bc0ae4d71232dd98a">AdobeXMPCore</a>
+</li>
+<li>IDOMImplementationRegistry_base
+: <a class="el" href="namespaceAdobeXMPCore.html#aeab5d78356ee44cbab72a48443d7a026">AdobeXMPCore</a>
+</li>
+<li>IDOMParser_base
+: <a class="el" href="namespaceAdobeXMPCore.html#afcc78a159d893be198c97d1af098a9e3">AdobeXMPCore</a>
+</li>
+<li>IDOMSerializer_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a2ab7b53419863c354957c09ce4bbb44c">AdobeXMPCore</a>
+</li>
+<li>IError_base
+: <a class="el" href="namespaceAdobeXMPCommon.html#a5f4d698bf8beb5f6604b61aa1362d2c6">AdobeXMPCommon</a>
+</li>
+<li>IErrorNotifier_base
+: <a class="el" href="namespaceAdobeXMPCommon.html#a692c91c0b558cbc476e43e7f0a9112e0">AdobeXMPCommon</a>
+</li>
+<li>IMemoryAllocator_base
+: <a class="el" href="namespaceAdobeXMPCommon.html#ae79591aae25236208281cd3e48a2483d">AdobeXMPCommon</a>
+</li>
+<li>IMetadata_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a3600be9aa8da5d9fcfd522c76755866b">AdobeXMPCore</a>
+</li>
+<li>INameSpacePrefixMap_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a459a371e2e25b93998a16921e3536bc7">AdobeXMPCore</a>
+</li>
+<li>INode_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a625f7fd9cabaa743f95f3cbd876285d3">AdobeXMPCore</a>
+</li>
+<li>INodeIterator_base
+: <a class="el" href="namespaceAdobeXMPCore.html#ad0578d38c94516edb5414524392845b7">AdobeXMPCore</a>
+</li>
+<li>int32
+: <a class="el" href="namespaceAdobeXMPCommon.html#a070d4ea981e6080468e9a3cdbd82b458">AdobeXMPCommon</a>
+</li>
+<li>int64
+: <a class="el" href="namespaceAdobeXMPCommon.html#aee4f68e01de51c2cf1c1044ecafebc25">AdobeXMPCommon</a>
+</li>
+<li>IObjectFactory_base
+: <a class="el" href="namespaceAdobeXMPCommon.html#a25f44f5d5e5c651d20124037a7c3b5c3">AdobeXMPCommon</a>
+</li>
+<li>IPath_base
+: <a class="el" href="namespaceAdobeXMPCore.html#ab063c96638c29753c9799d3184319b85">AdobeXMPCore</a>
+</li>
+<li>IPathSegment_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a7b83ccf46420d268a2cbce051f61a413">AdobeXMPCore</a>
+</li>
+<li>ISimpleNode_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a6bdb87029a97b11b3b8ce4d8eb84e7b7">AdobeXMPCore</a>
+</li>
+<li>IStructureNode_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a8ed683c00df5d7ccdb8428cfc072ca90">AdobeXMPCore</a>
+</li>
+<li>IUTF8String_base
+: <a class="el" href="namespaceAdobeXMPCommon.html#a169532f774f2b1f3d8501e896d6f1957">AdobeXMPCommon</a>
+</li>
+<li>IUTF8Strings
+: <a class="el" href="namespaceAdobeXMPCommon.html#ac82ab59bdaecb219834ac2ff81573414">AdobeXMPCommon</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/namespacemembers_type_m.html b/docs/API/namespacemembers_type_m.html
new file mode 100755
index 0000000..e1d0563
--- /dev/null
+++ b/docs/API/namespacemembers_type_m.html
@@ -0,0 +1,74 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Namespace Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
+ <li class="current"><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespacemembers.html"><span>All</span></a></li>
+ <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
+ <li class="current"><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
+ <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="namespacemembers_type.html#index_c"><span>c</span></a></li>
+ <li><a href="namespacemembers_type_i.html#index_i"><span>i</span></a></li>
+ <li class="current"><a href="namespacemembers_type_m.html#index_m"><span>m</span></a></li>
+ <li><a href="namespacemembers_type_p.html#index_p"><span>p</span></a></li>
+ <li><a href="namespacemembers_type_r.html#index_r"><span>r</span></a></li>
+ <li><a href="namespacemembers_type_s.html#index_s"><span>s</span></a></li>
+ <li><a href="namespacemembers_type_u.html#index_u"><span>u</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('namespacemembers_type_m.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
+<li>MemAllocateProc
+: <a class="el" href="namespaceAdobeXMPCommon.html#a6ddf5efa8f9b686e5d7fef41d6b10096">AdobeXMPCommon</a>
+</li>
+<li>MemReleaseProc
+: <a class="el" href="namespaceAdobeXMPCommon.html#a79edf1f9139609bf6ed70b24cc99a2e0">AdobeXMPCommon</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/namespacemembers_type_p.html b/docs/API/namespacemembers_type_p.html
new file mode 100755
index 0000000..86d516b
--- /dev/null
+++ b/docs/API/namespacemembers_type_p.html
@@ -0,0 +1,470 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Namespace Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
+ <li class="current"><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespacemembers.html"><span>All</span></a></li>
+ <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
+ <li class="current"><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
+ <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="namespacemembers_type.html#index_c"><span>c</span></a></li>
+ <li><a href="namespacemembers_type_i.html#index_i"><span>i</span></a></li>
+ <li><a href="namespacemembers_type_m.html#index_m"><span>m</span></a></li>
+ <li class="current"><a href="namespacemembers_type_p.html#index_p"><span>p</span></a></li>
+ <li><a href="namespacemembers_type_r.html#index_r"><span>r</span></a></li>
+ <li><a href="namespacemembers_type_s.html#index_s"><span>s</span></a></li>
+ <li><a href="namespacemembers_type_u.html#index_u"><span>u</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('namespacemembers_type_p.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
+<li>pcIArrayNode
+: <a class="el" href="namespaceAdobeXMPCore.html#a3c61d7ec18d24b058624ff83657ad886">AdobeXMPCore</a>
+</li>
+<li>pcIArrayNode_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a61344da48c839ebe8d613175563935bf">AdobeXMPCore</a>
+</li>
+<li>pcIArrayNode_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#ad705150e811fbc6ff116e850c444fc2d">AdobeXMPCore_Int</a>
+</li>
+<li>pcIClientDOMParser
+: <a class="el" href="namespaceAdobeXMPCore.html#affaedf89b30a42f4aea5bb10619d1801">AdobeXMPCore</a>
+</li>
+<li>pcIClientDOMParser_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a886c1974205be855cea961bfacc60604">AdobeXMPCore</a>
+</li>
+<li>pcIClientDOMParser_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a3c5ae6e52bf994fc05ed79ca9c58aae0">AdobeXMPCore_Int</a>
+</li>
+<li>pcIClientDOMSerializer
+: <a class="el" href="namespaceAdobeXMPCore.html#ad638e9de1a595aa976f69d3773d46d16">AdobeXMPCore</a>
+</li>
+<li>pcIClientDOMSerializer_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a871b93cc85748a5d49fe9774d3305203">AdobeXMPCore</a>
+</li>
+<li>pcIClientDOMSerializer_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a786137be71601c8a876f6798ba798eea">AdobeXMPCore_Int</a>
+</li>
+<li>pcICompositeNode
+: <a class="el" href="namespaceAdobeXMPCore.html#a5a920b0717c8a08d3c68ece64a8f815a">AdobeXMPCore</a>
+</li>
+<li>pcICompositeNode_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a2bb4ccadea260bcce39d23e45f5d592f">AdobeXMPCore</a>
+</li>
+<li>pcICompositeNode_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#aa1ac753eb7735e19c3f1a2a21d02a047">AdobeXMPCore_Int</a>
+</li>
+<li>pcIConfigurable
+: <a class="el" href="namespaceAdobeXMPCommon.html#a394d772cfe78f1dbeba6059e7a3c65d6">AdobeXMPCommon</a>
+</li>
+<li>pcIConfigurationManager
+: <a class="el" href="namespaceAdobeXMPCommon.html#a2a6831c5d17f5c9990c01268f67b7bb2">AdobeXMPCommon</a>
+</li>
+<li>pcIConfigurationManager_base
+: <a class="el" href="namespaceAdobeXMPCommon.html#a39556e80a6bda05757b7f2766ddc2ba1">AdobeXMPCommon</a>
+</li>
+<li>pcICoreConfigurationManager
+: <a class="el" href="namespaceAdobeXMPCore.html#a691bc74f235854166554f597f777bb5f">AdobeXMPCore</a>
+</li>
+<li>pcICoreConfigurationManager_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a748a32416e42b563251d682d49535fb8">AdobeXMPCore</a>
+</li>
+<li>pcICoreConfigurationManager_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#ae995733eb74953fd4e8cafe373236938">AdobeXMPCore_Int</a>
+</li>
+<li>pcICoreObjectFactory
+: <a class="el" href="namespaceAdobeXMPCore.html#a55e6a583f61b00819b7034f9dd2243f9">AdobeXMPCore</a>
+</li>
+<li>pcICoreObjectFactory_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a2ccf603c61b8576fb4a0de760e27f6ba">AdobeXMPCore</a>
+</li>
+<li>pcICoreObjectFactory_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#ae32d6c403c99fe665bbeff4483a7b144">AdobeXMPCore_Int</a>
+</li>
+<li>pcIDOMImplementationRegistry
+: <a class="el" href="namespaceAdobeXMPCore.html#a3971bab010eb9c01783af14c58ccfe54">AdobeXMPCore</a>
+</li>
+<li>pcIDOMImplementationRegistry_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a71d91db5d9f5b30fa16b5790948f11cc">AdobeXMPCore</a>
+</li>
+<li>pcIDOMImplementationRegistry_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#ae7c82f1920d2cbe1956fc5c43d0b10e2">AdobeXMPCore_Int</a>
+</li>
+<li>pcIDOMParser
+: <a class="el" href="namespaceAdobeXMPCore.html#a6b5fc097880814213414c58da877fea5">AdobeXMPCore</a>
+</li>
+<li>pcIDOMParser_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a761f1236009e028ec7c95d4e3fa59b71">AdobeXMPCore</a>
+</li>
+<li>pcIDOMParser_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a3a6d0893476eb4ce3713ca88e5c80b4e">AdobeXMPCore_Int</a>
+</li>
+<li>pcIDOMSerializer
+: <a class="el" href="namespaceAdobeXMPCore.html#a1de6f60a0aefc1d42bb656731ff33a9b">AdobeXMPCore</a>
+</li>
+<li>pcIDOMSerializer_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a9259d01efe1d26b66d5f60cf79f81296">AdobeXMPCore</a>
+</li>
+<li>pcIDOMSerializer_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a771229361d508f6fc0d427803543d38b">AdobeXMPCore_Int</a>
+</li>
+<li>pcIError
+: <a class="el" href="namespaceAdobeXMPCommon.html#a0e0c89c232b777fb332e0ddc10b65fc2">AdobeXMPCommon</a>
+</li>
+<li>pcIError_base
+: <a class="el" href="namespaceAdobeXMPCommon.html#ae3cc983230819089dc742273902228c5">AdobeXMPCommon</a>
+</li>
+<li>pcIErrorNotifier
+: <a class="el" href="namespaceAdobeXMPCommon.html#aa4baade1a8eb0dbb544860e0c89362f8">AdobeXMPCommon</a>
+</li>
+<li>pcIErrorNotifier_base
+: <a class="el" href="namespaceAdobeXMPCommon.html#a15919ce22d7dc4def5a590f0dbb882ca">AdobeXMPCommon</a>
+</li>
+<li>pcIMemoryAllocator
+: <a class="el" href="namespaceAdobeXMPCommon.html#af5a7d4d78400043e3e49dfa6a2725abb">AdobeXMPCommon</a>
+</li>
+<li>pcIMemoryAllocator_base
+: <a class="el" href="namespaceAdobeXMPCommon.html#a42a89fb94134c8eaed66765f2975b3f9">AdobeXMPCommon</a>
+</li>
+<li>pcIMetadata
+: <a class="el" href="namespaceAdobeXMPCore.html#aa542fbf0ea812dbe340cd7837d68ef9f">AdobeXMPCore</a>
+</li>
+<li>pcIMetadata_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a2987cd583f3105668b529ad5fe385481">AdobeXMPCore</a>
+</li>
+<li>pcIMetadata_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#abf85881909a28303736ad48039524d73">AdobeXMPCore_Int</a>
+</li>
+<li>pcINameSpacePrefixMap
+: <a class="el" href="namespaceAdobeXMPCore.html#ac973b0e26fb1fdf9146be95ab9f12b1e">AdobeXMPCore</a>
+</li>
+<li>pcINameSpacePrefixMap_base
+: <a class="el" href="namespaceAdobeXMPCore.html#ad877a19389a4ba0dd5ef226470fd7f5b">AdobeXMPCore</a>
+</li>
+<li>pcINameSpacePrefixMap_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#ab7edb8a8ca91f8397965cf85502c2043">AdobeXMPCore_Int</a>
+</li>
+<li>pcINode
+: <a class="el" href="namespaceAdobeXMPCore.html#ab2c77e55a81c018160035cea22f49a1a">AdobeXMPCore</a>
+</li>
+<li>pcINode_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a4cddd2e1fe643106d1c026481157bdc8">AdobeXMPCore</a>
+</li>
+<li>pcINode_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a09decb910c24c7929d609f1e29ca16b1">AdobeXMPCore_Int</a>
+</li>
+<li>pcINodeIterator
+: <a class="el" href="namespaceAdobeXMPCore.html#a634afe8da11f5cea93b0f07e8270da5f">AdobeXMPCore</a>
+</li>
+<li>pcINodeIterator_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a830414d5b50ee73daa2d85efb174921a">AdobeXMPCore</a>
+</li>
+<li>pcINodeIterator_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a9d8ff928f0b3e120916451e57b1b05bb">AdobeXMPCore_Int</a>
+</li>
+<li>pcIObjectFactory
+: <a class="el" href="namespaceAdobeXMPCommon.html#a272e32106a7573db514736bfb68a1673">AdobeXMPCommon</a>
+</li>
+<li>pcIObjectFactory_base
+: <a class="el" href="namespaceAdobeXMPCommon.html#a8d7232279921e3ccaa69fe314052415b">AdobeXMPCommon</a>
+</li>
+<li>pcIPath
+: <a class="el" href="namespaceAdobeXMPCore.html#a277f8ceb2e7074edb4ce6c3bc906a71c">AdobeXMPCore</a>
+</li>
+<li>pcIPath_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a822c7331a85db496adc520310ac6c144">AdobeXMPCore</a>
+</li>
+<li>pcIPath_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#aa917512a62ab131edf95fab4e6ba7067">AdobeXMPCore_Int</a>
+</li>
+<li>pcIPathSegment
+: <a class="el" href="namespaceAdobeXMPCore.html#a6ae7c996eea34342b41719bcc4bf766a">AdobeXMPCore</a>
+</li>
+<li>pcIPathSegment_base
+: <a class="el" href="namespaceAdobeXMPCore.html#aa1d5ef746b351d46f0d9be2d53538d7b">AdobeXMPCore</a>
+</li>
+<li>pcIPathSegment_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a8c2801e50baa3f7979aa4a31225bc25d">AdobeXMPCore_Int</a>
+</li>
+<li>pcISharedObject_I
+: <a class="el" href="namespaceAdobeXMPCommon__Int.html#affd72b6c7abbc84fdef10b5a607cd432">AdobeXMPCommon_Int</a>
+</li>
+<li>pcISimpleNode
+: <a class="el" href="namespaceAdobeXMPCore.html#acff9cacaf46a6c6923117852e63579b6">AdobeXMPCore</a>
+</li>
+<li>pcISimpleNode_base
+: <a class="el" href="namespaceAdobeXMPCore.html#abaf2af5208e93c52361d13dff16c959d">AdobeXMPCore</a>
+</li>
+<li>pcISimpleNode_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a0de0f06ece9bff0c77df3e519af9f506">AdobeXMPCore_Int</a>
+</li>
+<li>pcIStructureNode
+: <a class="el" href="namespaceAdobeXMPCore.html#abae00582b217eaa165ccf0006afa23bd">AdobeXMPCore</a>
+</li>
+<li>pcIStructureNode_base
+: <a class="el" href="namespaceAdobeXMPCore.html#ae429e590ecce9128e7bb3c8ea91c6b16">AdobeXMPCore</a>
+</li>
+<li>pcIStructureNode_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a85d314eae1eef235e7c698c5c84bdda1">AdobeXMPCore_Int</a>
+</li>
+<li>pcIThreadSafe_I
+: <a class="el" href="namespaceAdobeXMPCommon__Int.html#a2becb4c0d21c71e1dcecdcaae0e92bd7">AdobeXMPCommon_Int</a>
+</li>
+<li>pcIUTF8String
+: <a class="el" href="namespaceAdobeXMPCommon.html#aa9b2c45fd472c6e0e322a94c87e36e23">AdobeXMPCommon</a>
+</li>
+<li>pcIUTF8String_base
+: <a class="el" href="namespaceAdobeXMPCommon.html#a34ccf48e077c7308540d98149a4a8b2b">AdobeXMPCommon</a>
+</li>
+<li>pcvoid
+: <a class="el" href="namespaceAdobeXMPCommon.html#a19692335f9547f4bc07d0ff727f14605">AdobeXMPCommon</a>
+</li>
+<li>pIArrayNode
+: <a class="el" href="namespaceAdobeXMPCore.html#a0f163418e9969110fdf767b0092a08cd">AdobeXMPCore</a>
+</li>
+<li>pIArrayNode_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a47468e9aeeb0e9d2541bccfbbaf916f7">AdobeXMPCore</a>
+</li>
+<li>pIArrayNode_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#af2a081973401c42b5772dc9faec58a58">AdobeXMPCore_Int</a>
+</li>
+<li>pIClientDOMParser
+: <a class="el" href="namespaceAdobeXMPCore.html#ab5d69f05635d466dcd976f8b2b8e8617">AdobeXMPCore</a>
+</li>
+<li>pIClientDOMParser_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a9dd27d79138a3d399e48343b626cd3a9">AdobeXMPCore</a>
+</li>
+<li>pIClientDOMParser_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a5c9e417017018f36cdbfdbcaa8cd0585">AdobeXMPCore_Int</a>
+</li>
+<li>pIClientDOMSerializer
+: <a class="el" href="namespaceAdobeXMPCore.html#a901745dcadcfc4387450dd28aaa2d490">AdobeXMPCore</a>
+</li>
+<li>pIClientDOMSerializer_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a2dfed76bf986f6fad861aa2323b28caf">AdobeXMPCore</a>
+</li>
+<li>pIClientDOMSerializer_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a9807c050f5244e2cf017e5f247d22473">AdobeXMPCore_Int</a>
+</li>
+<li>pICompositeNode
+: <a class="el" href="namespaceAdobeXMPCore.html#aef05040bb5475b170f4816511f0655d0">AdobeXMPCore</a>
+</li>
+<li>pICompositeNode_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a294ebc2cc2287c14558850dcd8c88f1e">AdobeXMPCore</a>
+</li>
+<li>pICompositeNode_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a88df781b3af9dc7dfe7cb967b6e9b440">AdobeXMPCore_Int</a>
+</li>
+<li>pIConfigurable
+: <a class="el" href="namespaceAdobeXMPCommon.html#a9befc7ddfe5977c8176eed763d9ce69e">AdobeXMPCommon</a>
+</li>
+<li>pIConfigurationManager
+: <a class="el" href="namespaceAdobeXMPCommon.html#a66f57b67d8be6cbf836ad084a3d27d76">AdobeXMPCommon</a>
+</li>
+<li>pIConfigurationManager_base
+: <a class="el" href="namespaceAdobeXMPCommon.html#a20fcfcaa614eba9a9fcdf2353b82fdb7">AdobeXMPCommon</a>
+</li>
+<li>pICoreConfigurationManager
+: <a class="el" href="namespaceAdobeXMPCore.html#a0476368bde6f3c6e43e3659ae092f6e1">AdobeXMPCore</a>
+</li>
+<li>pICoreConfigurationManager_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a55c34a6f458c74682e542edd2a258686">AdobeXMPCore</a>
+</li>
+<li>pICoreConfigurationManager_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a643dfc0500b39ea6d5a81c187fe0e9bc">AdobeXMPCore_Int</a>
+</li>
+<li>pICoreObjectFactory
+: <a class="el" href="namespaceAdobeXMPCore.html#ad925e271d292d0b0af1a24342391219d">AdobeXMPCore</a>
+</li>
+<li>pICoreObjectFactory_base
+: <a class="el" href="namespaceAdobeXMPCore.html#ac062cb6e980601a1eedf6085cca9b850">AdobeXMPCore</a>
+</li>
+<li>pICoreObjectFactory_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#ad445bf512b4b3179b131b0a7dec31d86">AdobeXMPCore_Int</a>
+</li>
+<li>pIDOMImplementationRegistry
+: <a class="el" href="namespaceAdobeXMPCore.html#ae332986668c86f3e5c6bbd57fd5f4cad">AdobeXMPCore</a>
+</li>
+<li>pIDOMImplementationRegistry_base
+: <a class="el" href="namespaceAdobeXMPCore.html#ae600077e4e41eec5ebb90fa7510b8b48">AdobeXMPCore</a>
+</li>
+<li>pIDOMImplementationRegistry_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#ad26aadc3f0926468c34c02cc1a0f1dbd">AdobeXMPCore_Int</a>
+</li>
+<li>pIDOMParser
+: <a class="el" href="namespaceAdobeXMPCore.html#a8b003da6674d32c5c628f1d0e1fa45aa">AdobeXMPCore</a>
+</li>
+<li>pIDOMParser_base
+: <a class="el" href="namespaceAdobeXMPCore.html#ad8fa3ac657a8506d5d25544060c4af15">AdobeXMPCore</a>
+</li>
+<li>pIDOMParser_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a4dad9e02be4a3efae9ea99e5f03ae11e">AdobeXMPCore_Int</a>
+</li>
+<li>pIDOMSerializer
+: <a class="el" href="namespaceAdobeXMPCore.html#a6b414731e356594947b08382866c9fcf">AdobeXMPCore</a>
+</li>
+<li>pIDOMSerializer_base
+: <a class="el" href="namespaceAdobeXMPCore.html#aa83dd7633a221cb189681dff2bbd78a3">AdobeXMPCore</a>
+</li>
+<li>pIDOMSerializer_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a1bbf04f53ef3da6e5e12f535679bb177">AdobeXMPCore_Int</a>
+</li>
+<li>pIError
+: <a class="el" href="namespaceAdobeXMPCommon.html#ac0db32de8e6a3688ad0dfc36c2757fb4">AdobeXMPCommon</a>
+</li>
+<li>pIError_base
+: <a class="el" href="namespaceAdobeXMPCommon.html#a4e907810e5d5937b974343d279e0181d">AdobeXMPCommon</a>
+</li>
+<li>pIErrorNotifier
+: <a class="el" href="namespaceAdobeXMPCommon.html#a9981f3ca088023224e80dbad05090f3c">AdobeXMPCommon</a>
+</li>
+<li>pIErrorNotifier_base
+: <a class="el" href="namespaceAdobeXMPCommon.html#a4ad7bda9e1289b0bb93510402b6e86f9">AdobeXMPCommon</a>
+</li>
+<li>pIMemoryAllocator
+: <a class="el" href="namespaceAdobeXMPCommon.html#a605dcb5281a71a01673c81e6508f932f">AdobeXMPCommon</a>
+</li>
+<li>pIMemoryAllocator_base
+: <a class="el" href="namespaceAdobeXMPCommon.html#aff75b5c835a8eb072072be6b404aa0d5">AdobeXMPCommon</a>
+</li>
+<li>pIMetadata
+: <a class="el" href="namespaceAdobeXMPCore.html#a0c1658ecfb260ac950498f17edd5ebd0">AdobeXMPCore</a>
+</li>
+<li>pIMetadata_base
+: <a class="el" href="namespaceAdobeXMPCore.html#aa6b155d7624638c88d2b64b551ef1b0c">AdobeXMPCore</a>
+</li>
+<li>pIMetadata_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a70359e8aaa387b24879f1510ac1c4725">AdobeXMPCore_Int</a>
+</li>
+<li>pINameSpacePrefixMap
+: <a class="el" href="namespaceAdobeXMPCore.html#a7c13887bb991ed5707ebae28d26543b1">AdobeXMPCore</a>
+</li>
+<li>pINameSpacePrefixMap_base
+: <a class="el" href="namespaceAdobeXMPCore.html#ad7423726463e791584bdeeb0a699c2d6">AdobeXMPCore</a>
+</li>
+<li>pINameSpacePrefixMap_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a0665746b848a075cc4aaf72f553cea95">AdobeXMPCore_Int</a>
+</li>
+<li>pINode
+: <a class="el" href="namespaceAdobeXMPCore.html#abc833d7b10347a44a303b973337cf536">AdobeXMPCore</a>
+</li>
+<li>pINode_base
+: <a class="el" href="namespaceAdobeXMPCore.html#adb4509f09f05618cebbd4f09a5fbb05a">AdobeXMPCore</a>
+</li>
+<li>pINode_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a7ab22fbbd637098e7e0db48036864228">AdobeXMPCore_Int</a>
+</li>
+<li>pINodeIterator
+: <a class="el" href="namespaceAdobeXMPCore.html#ac162eebfff7088f633bc0dd401a18862">AdobeXMPCore</a>
+</li>
+<li>pINodeIterator_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a6e8a84e7b4b342b98bc1af7297c30250">AdobeXMPCore</a>
+</li>
+<li>pINodeIterator_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a71dcb1468c552abdd9fb1666cadc6600">AdobeXMPCore_Int</a>
+</li>
+<li>pIObjectFactory
+: <a class="el" href="namespaceAdobeXMPCommon.html#a0863cf1c24764306839671985373b93f">AdobeXMPCommon</a>
+</li>
+<li>pIObjectFactory_base
+: <a class="el" href="namespaceAdobeXMPCommon.html#adb1552a01da782d3f1c5ff00e49f48f8">AdobeXMPCommon</a>
+</li>
+<li>pIPath
+: <a class="el" href="namespaceAdobeXMPCore.html#abce7d351f3258b3edfb1c96e7d2d4945">AdobeXMPCore</a>
+</li>
+<li>pIPath_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a8a912843a6b3779781ed27cde7e330d6">AdobeXMPCore</a>
+</li>
+<li>pIPath_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#ac72d014801c316df78e38687d0c11aa7">AdobeXMPCore_Int</a>
+</li>
+<li>pIPathSegment
+: <a class="el" href="namespaceAdobeXMPCore.html#afcc8116b5f4020c02bc96bd91a4d5235">AdobeXMPCore</a>
+</li>
+<li>pIPathSegment_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a5a11f058662f2f67819f52a97154076b">AdobeXMPCore</a>
+</li>
+<li>pIPathSegment_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a7b86a8447002d8c63c837cffda64dd2a">AdobeXMPCore_Int</a>
+</li>
+<li>pISharedObject_I
+: <a class="el" href="namespaceAdobeXMPCommon__Int.html#ada4b051c58f05ef398453930451bc13d">AdobeXMPCommon_Int</a>
+</li>
+<li>pISimpleNode
+: <a class="el" href="namespaceAdobeXMPCore.html#ad9403696e40df26b5d17e0d17d6799f0">AdobeXMPCore</a>
+</li>
+<li>pISimpleNode_base
+: <a class="el" href="namespaceAdobeXMPCore.html#a14569c99ffc10ff405f51220851fbe36">AdobeXMPCore</a>
+</li>
+<li>pISimpleNode_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a9b914b7e3bafee8e830a982810ed2191">AdobeXMPCore_Int</a>
+</li>
+<li>pIStructureNode
+: <a class="el" href="namespaceAdobeXMPCore.html#ac7a54801a0cd4ae9441548ccfb1fd608">AdobeXMPCore</a>
+</li>
+<li>pIStructureNode_base
+: <a class="el" href="namespaceAdobeXMPCore.html#af51bfb0cbccc377fb76fbc7187eb3456">AdobeXMPCore</a>
+</li>
+<li>pIStructureNode_I
+: <a class="el" href="namespaceAdobeXMPCore__Int.html#a4d4375869e320dc1596a9d62a4030b05">AdobeXMPCore_Int</a>
+</li>
+<li>pIThreadSafe_I
+: <a class="el" href="namespaceAdobeXMPCommon__Int.html#ac9c07c42e647a17838c9314b8d2823d9">AdobeXMPCommon_Int</a>
+</li>
+<li>pIUTF8String
+: <a class="el" href="namespaceAdobeXMPCommon.html#a27ba1868ebc552bef10fe156bd4e340b">AdobeXMPCommon</a>
+</li>
+<li>pIUTF8String_base
+: <a class="el" href="namespaceAdobeXMPCommon.html#a0430b250dd00621dcb9f32a3acb87b7f">AdobeXMPCommon</a>
+</li>
+<li>pvoid
+: <a class="el" href="namespaceAdobeXMPCommon.html#ab59e650373a5efadfbfd2486313258a6">AdobeXMPCommon</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/namespacemembers_type_r.html b/docs/API/namespacemembers_type_r.html
new file mode 100755
index 0000000..e95b53d
--- /dev/null
+++ b/docs/API/namespacemembers_type_r.html
@@ -0,0 +1,71 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Namespace Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
+ <li class="current"><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespacemembers.html"><span>All</span></a></li>
+ <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
+ <li class="current"><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
+ <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="namespacemembers_type.html#index_c"><span>c</span></a></li>
+ <li><a href="namespacemembers_type_i.html#index_i"><span>i</span></a></li>
+ <li><a href="namespacemembers_type_m.html#index_m"><span>m</span></a></li>
+ <li><a href="namespacemembers_type_p.html#index_p"><span>p</span></a></li>
+ <li class="current"><a href="namespacemembers_type_r.html#index_r"><span>r</span></a></li>
+ <li><a href="namespacemembers_type_s.html#index_s"><span>s</span></a></li>
+ <li><a href="namespacemembers_type_u.html#index_u"><span>u</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('namespacemembers_type_r.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
+<li>ReportErrorAndContinueABISafeProc
+: <a class="el" href="namespaceAdobeXMPCommon.html#a8dc9ba4ce78a957c0843998c2468241a">AdobeXMPCommon</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/namespacemembers_type_s.html b/docs/API/namespacemembers_type_s.html
new file mode 100755
index 0000000..821d501
--- /dev/null
+++ b/docs/API/namespacemembers_type_s.html
@@ -0,0 +1,203 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Namespace Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
+ <li class="current"><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespacemembers.html"><span>All</span></a></li>
+ <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
+ <li class="current"><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
+ <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="namespacemembers_type.html#index_c"><span>c</span></a></li>
+ <li><a href="namespacemembers_type_i.html#index_i"><span>i</span></a></li>
+ <li><a href="namespacemembers_type_m.html#index_m"><span>m</span></a></li>
+ <li><a href="namespacemembers_type_p.html#index_p"><span>p</span></a></li>
+ <li><a href="namespacemembers_type_r.html#index_r"><span>r</span></a></li>
+ <li class="current"><a href="namespacemembers_type_s.html#index_s"><span>s</span></a></li>
+ <li><a href="namespacemembers_type_u.html#index_u"><span>u</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('namespacemembers_type_s.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<li>sizet
+: <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon</a>
+</li>
+<li>spcIArrayNode
+: <a class="el" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">AdobeXMPCore</a>
+</li>
+<li>spcICompositeNode
+: <a class="el" href="namespaceAdobeXMPCore.html#a7c98739d62fca879db910ac0fca82c3c">AdobeXMPCore</a>
+</li>
+<li>spcIConfigurationManager
+: <a class="el" href="namespaceAdobeXMPCommon.html#abe53a5a98ec0d2d6ce76d1d820794177">AdobeXMPCommon</a>
+</li>
+<li>spcICoreConfigurationManager
+: <a class="el" href="namespaceAdobeXMPCore.html#a885f02b2d6de4b5403445eb74e5e2ce6">AdobeXMPCore</a>
+</li>
+<li>spcIDOMImplementationRegistry
+: <a class="el" href="namespaceAdobeXMPCore.html#a6efe4728a027ee77597fe1a05a6bc30c">AdobeXMPCore</a>
+</li>
+<li>spcIDOMParser
+: <a class="el" href="namespaceAdobeXMPCore.html#a587ba854add16d5201c974a3a0f7050c">AdobeXMPCore</a>
+</li>
+<li>spcIDOMSerializer
+: <a class="el" href="namespaceAdobeXMPCore.html#aee2397438ef33989fb100e5923821eb9">AdobeXMPCore</a>
+</li>
+<li>spcIError
+: <a class="el" href="namespaceAdobeXMPCommon.html#a3f0de5ba5753a56896f2941927b23560">AdobeXMPCommon</a>
+</li>
+<li>spcIErrorNotifier
+: <a class="el" href="namespaceAdobeXMPCommon.html#a4eeee081576f932942082744eb05456c">AdobeXMPCommon</a>
+</li>
+<li>spcIMemoryAllocator
+: <a class="el" href="namespaceAdobeXMPCommon.html#a183fc5e814bdad0ddf9946ddc35c307a">AdobeXMPCommon</a>
+</li>
+<li>spcIMetadata
+: <a class="el" href="namespaceAdobeXMPCore.html#a1e81ce748e90e850d0a48b0b5943fce2">AdobeXMPCore</a>
+</li>
+<li>spcINameSpacePrefixMap
+: <a class="el" href="namespaceAdobeXMPCore.html#a22f9e572045a61aa3cfc629a0d877d72">AdobeXMPCore</a>
+</li>
+<li>spcINode
+: <a class="el" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">AdobeXMPCore</a>
+</li>
+<li>spcINodeIterator
+: <a class="el" href="namespaceAdobeXMPCore.html#ab423c366f29043e79694f805bceddb56">AdobeXMPCore</a>
+</li>
+<li>spcIPath
+: <a class="el" href="namespaceAdobeXMPCore.html#aa01e44df0f17d2a1d959710ec856261c">AdobeXMPCore</a>
+</li>
+<li>spcIPathSegment
+: <a class="el" href="namespaceAdobeXMPCore.html#a98ce40154ef1c1d92f2077c8211f2a9c">AdobeXMPCore</a>
+</li>
+<li>spcISimpleNode
+: <a class="el" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">AdobeXMPCore</a>
+</li>
+<li>spcIStructureNode
+: <a class="el" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">AdobeXMPCore</a>
+</li>
+<li>spcIUTF8String
+: <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">AdobeXMPCommon</a>
+</li>
+<li>spcIUTF8Strings
+: <a class="el" href="namespaceAdobeXMPCommon.html#a181114a44f34efda2d8b4cb98446de86">AdobeXMPCommon</a>
+</li>
+<li>spcIUTF8Strings_const
+: <a class="el" href="namespaceAdobeXMPCommon.html#aeea9f5dbdf44fd5382b0ca50dda8f2cf">AdobeXMPCommon</a>
+</li>
+<li>spcvoid
+: <a class="el" href="namespaceAdobeXMPCommon.html#a93bf79ca806273dc229d940504654caa">AdobeXMPCommon</a>
+</li>
+<li>spIArrayNode
+: <a class="el" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">AdobeXMPCore</a>
+</li>
+<li>spICompositeNode
+: <a class="el" href="namespaceAdobeXMPCore.html#acfcbb43bd0f659f554877c4f9dd7d459">AdobeXMPCore</a>
+</li>
+<li>spIConfigurationManager
+: <a class="el" href="namespaceAdobeXMPCommon.html#a4ebcc3c8cb04d7593dc3250aa720f0d4">AdobeXMPCommon</a>
+</li>
+<li>spICoreConfigurationManager
+: <a class="el" href="namespaceAdobeXMPCore.html#a123c6e847d41233c9e4ba6c64a650c7f">AdobeXMPCore</a>
+</li>
+<li>spIDOMImplementationRegistry
+: <a class="el" href="namespaceAdobeXMPCore.html#a197acc21ecf883449824a1e87a99586a">AdobeXMPCore</a>
+</li>
+<li>spIDOMParser
+: <a class="el" href="namespaceAdobeXMPCore.html#a737ec082bb4e7f817b45e073337c0893">AdobeXMPCore</a>
+</li>
+<li>spIDOMSerializer
+: <a class="el" href="namespaceAdobeXMPCore.html#af3525e619e07f58d7eb8247b56ddad21">AdobeXMPCore</a>
+</li>
+<li>spIError
+: <a class="el" href="namespaceAdobeXMPCommon.html#adb05c7ceec43360b84aee536612151f9">AdobeXMPCommon</a>
+</li>
+<li>spIErrorNotifier
+: <a class="el" href="namespaceAdobeXMPCommon.html#a4d5b76921b44568978986a81d2c19336">AdobeXMPCommon</a>
+</li>
+<li>spIMemoryAllocator
+: <a class="el" href="namespaceAdobeXMPCommon.html#a9423cafa21356df5d02adf7a94f4e4b0">AdobeXMPCommon</a>
+</li>
+<li>spIMetadata
+: <a class="el" href="namespaceAdobeXMPCore.html#a7f1de39fd79aeac4402eba73cb1ffe82">AdobeXMPCore</a>
+</li>
+<li>spINameSpacePrefixMap
+: <a class="el" href="namespaceAdobeXMPCore.html#ab17b1221c559007c5fbc73cf2c555c6c">AdobeXMPCore</a>
+</li>
+<li>spINode
+: <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">AdobeXMPCore</a>
+</li>
+<li>spINodeIterator
+: <a class="el" href="namespaceAdobeXMPCore.html#a5386a735d9eb66d5859e4657dfeebb7c">AdobeXMPCore</a>
+</li>
+<li>spIPath
+: <a class="el" href="namespaceAdobeXMPCore.html#aa54f5ed241da9437ad01c1047a199f56">AdobeXMPCore</a>
+</li>
+<li>spIPathSegment
+: <a class="el" href="namespaceAdobeXMPCore.html#ae339cdf18168ecc8197e651df8f43854">AdobeXMPCore</a>
+</li>
+<li>spISimpleNode
+: <a class="el" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">AdobeXMPCore</a>
+</li>
+<li>spIStructureNode
+: <a class="el" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">AdobeXMPCore</a>
+</li>
+<li>spIUTF8String
+: <a class="el" href="namespaceAdobeXMPCommon.html#ac9d7760a1805b1e28828511a2c8c5588">AdobeXMPCommon</a>
+</li>
+<li>spIUTF8Strings
+: <a class="el" href="namespaceAdobeXMPCommon.html#a5f4ff8126658f07efbc881778bfea430">AdobeXMPCommon</a>
+</li>
+<li>spIUTF8Strings_const
+: <a class="el" href="namespaceAdobeXMPCommon.html#ab4410cb115c4e0fa0800ab6ebf21abf7">AdobeXMPCommon</a>
+</li>
+<li>spvoid
+: <a class="el" href="namespaceAdobeXMPCommon.html#a28d3e703084f75a411ece4bb7b22fdd4">AdobeXMPCommon</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/namespacemembers_type_u.html b/docs/API/namespacemembers_type_u.html
new file mode 100755
index 0000000..4f547f3
--- /dev/null
+++ b/docs/API/namespacemembers_type_u.html
@@ -0,0 +1,74 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Namespace Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
+ <li class="current"><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespacemembers.html"><span>All</span></a></li>
+ <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
+ <li class="current"><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
+ <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="namespacemembers_type.html#index_c"><span>c</span></a></li>
+ <li><a href="namespacemembers_type_i.html#index_i"><span>i</span></a></li>
+ <li><a href="namespacemembers_type_m.html#index_m"><span>m</span></a></li>
+ <li><a href="namespacemembers_type_p.html#index_p"><span>p</span></a></li>
+ <li><a href="namespacemembers_type_r.html#index_r"><span>r</span></a></li>
+ <li><a href="namespacemembers_type_s.html#index_s"><span>s</span></a></li>
+ <li class="current"><a href="namespacemembers_type_u.html#index_u"><span>u</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('namespacemembers_type_u.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
+<li>uint32
+: <a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">AdobeXMPCommon</a>
+</li>
+<li>uint64
+: <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">AdobeXMPCommon</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/namespacemembers_u.html b/docs/API/namespacemembers_u.html
new file mode 100755
index 0000000..8d69b50
--- /dev/null
+++ b/docs/API/namespacemembers_u.html
@@ -0,0 +1,78 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Namespace Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
+ <li class="current"><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="namespacemembers.html"><span>All</span></a></li>
+ <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
+ <li><a href="namespacemembers_type.html"><span>Typedefs</span></a></li>
+ <li><a href="namespacemembers_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="namespacemembers_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="namespacemembers.html#index_b"><span>b</span></a></li>
+ <li><a href="namespacemembers_c.html#index_c"><span>c</span></a></li>
+ <li><a href="namespacemembers_e.html#index_e"><span>e</span></a></li>
+ <li><a href="namespacemembers_i.html#index_i"><span>i</span></a></li>
+ <li><a href="namespacemembers_k.html#index_k"><span>k</span></a></li>
+ <li><a href="namespacemembers_m.html#index_m"><span>m</span></a></li>
+ <li><a href="namespacemembers_n.html#index_n"><span>n</span></a></li>
+ <li><a href="namespacemembers_p.html#index_p"><span>p</span></a></li>
+ <li><a href="namespacemembers_r.html#index_r"><span>r</span></a></li>
+ <li><a href="namespacemembers_s.html#index_s"><span>s</span></a></li>
+ <li class="current"><a href="namespacemembers_u.html#index_u"><span>u</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('namespacemembers_u.html','');});
+</script>
+<div id="doc-content">
+<div class="contents">
+<div class="textblock">Here is a list of all namespace members with links to the namespace documentation for each member:</div>
+
+<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
+<li>uint32
+: <a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">AdobeXMPCommon</a>
+</li>
+<li>uint64
+: <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">AdobeXMPCommon</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/namespaces.html b/docs/API/namespaces.html
new file mode 100755
index 0000000..a0f5641
--- /dev/null
+++ b/docs/API/namespaces.html
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Namespace List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
+ <li><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('namespaces.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">Namespace List</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here is a list of all namespaces with brief descriptions:</div><div class="directory">
+<table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceAdobeXMPCommon.html" target="_self">AdobeXMPCommon</a></td><td class="desc"></td></tr>
+<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceAdobeXMPCommon__Int.html" target="_self">AdobeXMPCommon_Int</a></td><td class="desc"></td></tr>
+<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceAdobeXMPCore.html" target="_self">AdobeXMPCore</a></td><td class="desc"></td></tr>
+<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceAdobeXMPCore__Int.html" target="_self">AdobeXMPCore_Int</a></td><td class="desc"></td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/namespaces.js b/docs/API/namespaces.js
new file mode 100755
index 0000000..cb5e775
--- /dev/null
+++ b/docs/API/namespaces.js
@@ -0,0 +1,7 @@
+var namespaces =
+[
+ [ "AdobeXMPCommon", "namespaceAdobeXMPCommon.html", null ],
+ [ "AdobeXMPCommon_Int", "namespaceAdobeXMPCommon__Int.html", null ],
+ [ "AdobeXMPCore", "namespaceAdobeXMPCore.html", null ],
+ [ "AdobeXMPCore_Int", "namespaceAdobeXMPCore__Int.html", null ]
+]; \ No newline at end of file
diff --git a/docs/API/nav_f.png b/docs/API/nav_f.png
new file mode 100755
index 0000000..72a58a5
--- /dev/null
+++ b/docs/API/nav_f.png
Binary files differ
diff --git a/docs/API/nav_g.png b/docs/API/nav_g.png
new file mode 100755
index 0000000..2093a23
--- /dev/null
+++ b/docs/API/nav_g.png
Binary files differ
diff --git a/docs/API/nav_h.png b/docs/API/nav_h.png
new file mode 100755
index 0000000..33389b1
--- /dev/null
+++ b/docs/API/nav_h.png
Binary files differ
diff --git a/docs/API/navtree.css b/docs/API/navtree.css
new file mode 100755
index 0000000..1a868b3
--- /dev/null
+++ b/docs/API/navtree.css
@@ -0,0 +1,143 @@
+#nav-tree .children_ul {
+ margin:0;
+ padding:4px;
+}
+
+#nav-tree ul {
+ list-style:none outside none;
+ margin:0px;
+ padding:0px;
+}
+
+#nav-tree li {
+ white-space:nowrap;
+ margin:0px;
+ padding:0px;
+}
+
+#nav-tree .plus {
+ margin:0px;
+}
+
+#nav-tree .selected {
+ background-image: url('tab_a.png');
+ background-repeat:repeat-x;
+ color: #fff;
+ text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+}
+
+#nav-tree img {
+ margin:0px;
+ padding:0px;
+ border:0px;
+ vertical-align: middle;
+}
+
+#nav-tree a {
+ text-decoration:none;
+ padding:0px;
+ margin:0px;
+ outline:none;
+}
+
+#nav-tree .label {
+ margin:0px;
+ padding:0px;
+ font: 12px 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+}
+
+#nav-tree .label a {
+ padding:2px;
+}
+
+#nav-tree .selected a {
+ text-decoration:none;
+ color:#fff;
+}
+
+#nav-tree .children_ul {
+ margin:0px;
+ padding:0px;
+}
+
+#nav-tree .item {
+ margin:0px;
+ padding:0px;
+}
+
+#nav-tree {
+ padding: 0px 0px;
+ background-color: #FAFAFF;
+ font-size:14px;
+ overflow:auto;
+}
+
+#doc-content {
+ overflow:auto;
+ display:block;
+ padding:0px;
+ margin:0px;
+ -webkit-overflow-scrolling : touch; /* iOS 5+ */
+}
+
+#side-nav {
+ padding:0 6px 0 0;
+ margin: 0px;
+ display:block;
+ position: absolute;
+ left: 0px;
+ width: 250px;
+}
+
+.ui-resizable .ui-resizable-handle {
+ display:block;
+}
+
+.ui-resizable-e {
+ background:url("splitbar.png") repeat scroll right center transparent;
+ cursor:e-resize;
+ height:100%;
+ right:0;
+ top:0;
+ width:6px;
+}
+
+.ui-resizable-handle {
+ display:none;
+ font-size:0.1px;
+ position:absolute;
+ z-index:1;
+}
+
+#nav-tree-contents {
+ margin: 6px 0px 0px 0px;
+}
+
+#nav-tree {
+ background-image:url('nav_h.png');
+ background-repeat:repeat-x;
+ background-color: #F9FAFC;
+ -webkit-overflow-scrolling : touch; /* iOS 5+ */
+}
+
+#nav-sync {
+ position:absolute;
+ top:5px;
+ right:24px;
+ z-index:0;
+}
+
+#nav-sync img {
+ opacity:0.3;
+}
+
+#nav-sync img:hover {
+ opacity:0.9;
+}
+
+@media print
+{
+ #nav-tree { display: none; }
+ div.ui-resizable-handle { display: none; position: relative; }
+}
+
diff --git a/docs/API/navtree.js b/docs/API/navtree.js
new file mode 100755
index 0000000..9df45a7
--- /dev/null
+++ b/docs/API/navtree.js
@@ -0,0 +1,523 @@
+var navTreeSubIndices = new Array();
+
+function getData(varName)
+{
+ var i = varName.lastIndexOf('/');
+ var n = i>=0 ? varName.substring(i+1) : varName;
+ return eval(n.replace(/\-/g,'_'));
+}
+
+function stripPath(uri)
+{
+ return uri.substring(uri.lastIndexOf('/')+1);
+}
+
+function stripPath2(uri)
+{
+ var i = uri.lastIndexOf('/');
+ var s = uri.substring(i+1);
+ var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/);
+ return m ? uri.substring(i-6) : s;
+}
+
+function hashValue()
+{
+ return $(location).attr('hash').substring(1).replace(/[^\w\-]/g,'');
+}
+
+function hashUrl()
+{
+ return '#'+hashValue();
+}
+
+function pathName()
+{
+ return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;\(\)]/g, '');
+}
+
+function localStorageSupported()
+{
+ try {
+ return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem;
+ }
+ catch(e) {
+ return false;
+ }
+}
+
+
+function storeLink(link)
+{
+ if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) {
+ window.localStorage.setItem('navpath',link);
+ }
+}
+
+function deleteLink()
+{
+ if (localStorageSupported()) {
+ window.localStorage.setItem('navpath','');
+ }
+}
+
+function cachedLink()
+{
+ if (localStorageSupported()) {
+ return window.localStorage.getItem('navpath');
+ } else {
+ return '';
+ }
+}
+
+function getScript(scriptName,func,show)
+{
+ var head = document.getElementsByTagName("head")[0];
+ var script = document.createElement('script');
+ script.id = scriptName;
+ script.type = 'text/javascript';
+ script.onload = func;
+ script.src = scriptName+'.js';
+ if ($.browser.msie && $.browser.version<=8) {
+ // script.onload does not work with older versions of IE
+ script.onreadystatechange = function() {
+ if (script.readyState=='complete' || script.readyState=='loaded') {
+ func(); if (show) showRoot();
+ }
+ }
+ }
+ head.appendChild(script);
+}
+
+function createIndent(o,domNode,node,level)
+{
+ var level=-1;
+ var n = node;
+ while (n.parentNode) { level++; n=n.parentNode; }
+ if (node.childrenData) {
+ var imgNode = document.createElement("img");
+ imgNode.style.paddingLeft=(16*level).toString()+'px';
+ imgNode.width = 16;
+ imgNode.height = 22;
+ imgNode.border = 0;
+ node.plus_img = imgNode;
+ node.expandToggle = document.createElement("a");
+ node.expandToggle.href = "javascript:void(0)";
+ node.expandToggle.onclick = function() {
+ if (node.expanded) {
+ $(node.getChildrenUL()).slideUp("fast");
+ node.plus_img.src = node.relpath+"arrowright.png";
+ node.expanded = false;
+ } else {
+ expandNode(o, node, false, false);
+ }
+ }
+ node.expandToggle.appendChild(imgNode);
+ domNode.appendChild(node.expandToggle);
+ imgNode.src = node.relpath+"arrowright.png";
+ } else {
+ var span = document.createElement("span");
+ span.style.display = 'inline-block';
+ span.style.width = 16*(level+1)+'px';
+ span.style.height = '22px';
+ span.innerHTML = '&#160;';
+ domNode.appendChild(span);
+ }
+}
+
+var animationInProgress = false;
+
+function gotoAnchor(anchor,aname,updateLocation)
+{
+ var pos, docContent = $('#doc-content');
+ var ancParent = $(anchor.parent());
+ if (ancParent.hasClass('memItemLeft') ||
+ ancParent.hasClass('fieldname') ||
+ ancParent.hasClass('fieldtype') ||
+ ancParent.is(':header'))
+ {
+ pos = ancParent.position().top;
+ } else if (anchor.position()) {
+ pos = anchor.position().top;
+ }
+ if (pos) {
+ var dist = Math.abs(Math.min(
+ pos-docContent.offset().top,
+ docContent[0].scrollHeight-
+ docContent.height()-docContent.scrollTop()));
+ animationInProgress=true;
+ docContent.animate({
+ scrollTop: pos + docContent.scrollTop() - docContent.offset().top
+ },Math.max(50,Math.min(500,dist)),function(){
+ if (updateLocation) window.location.href=aname;
+ animationInProgress=false;
+ });
+ }
+}
+
+function newNode(o, po, text, link, childrenData, lastNode)
+{
+ var node = new Object();
+ node.children = Array();
+ node.childrenData = childrenData;
+ node.depth = po.depth + 1;
+ node.relpath = po.relpath;
+ node.isLast = lastNode;
+
+ node.li = document.createElement("li");
+ po.getChildrenUL().appendChild(node.li);
+ node.parentNode = po;
+
+ node.itemDiv = document.createElement("div");
+ node.itemDiv.className = "item";
+
+ node.labelSpan = document.createElement("span");
+ node.labelSpan.className = "label";
+
+ createIndent(o,node.itemDiv,node,0);
+ node.itemDiv.appendChild(node.labelSpan);
+ node.li.appendChild(node.itemDiv);
+
+ var a = document.createElement("a");
+ node.labelSpan.appendChild(a);
+ node.label = document.createTextNode(text);
+ node.expanded = false;
+ a.appendChild(node.label);
+ if (link) {
+ var url;
+ if (link.substring(0,1)=='^') {
+ url = link.substring(1);
+ link = url;
+ } else {
+ url = node.relpath+link;
+ }
+ a.className = stripPath(link.replace('#',':'));
+ if (link.indexOf('#')!=-1) {
+ var aname = '#'+link.split('#')[1];
+ var srcPage = stripPath(pathName());
+ var targetPage = stripPath(link.split('#')[0]);
+ a.href = srcPage!=targetPage ? url : "javascript:void(0)";
+ a.onclick = function(){
+ storeLink(link);
+ if (!$(a).parent().parent().hasClass('selected'))
+ {
+ $('.item').removeClass('selected');
+ $('.item').removeAttr('id');
+ $(a).parent().parent().addClass('selected');
+ $(a).parent().parent().attr('id','selected');
+ }
+ var anchor = $(aname);
+ gotoAnchor(anchor,aname,true);
+ };
+ } else {
+ a.href = url;
+ a.onclick = function() { storeLink(link); }
+ }
+ } else {
+ if (childrenData != null)
+ {
+ a.className = "nolink";
+ a.href = "javascript:void(0)";
+ a.onclick = node.expandToggle.onclick;
+ }
+ }
+
+ node.childrenUL = null;
+ node.getChildrenUL = function() {
+ if (!node.childrenUL) {
+ node.childrenUL = document.createElement("ul");
+ node.childrenUL.className = "children_ul";
+ node.childrenUL.style.display = "none";
+ node.li.appendChild(node.childrenUL);
+ }
+ return node.childrenUL;
+ };
+
+ return node;
+}
+
+function showRoot()
+{
+ var headerHeight = $("#top").height();
+ var footerHeight = $("#nav-path").height();
+ var windowHeight = $(window).height() - headerHeight - footerHeight;
+ (function (){ // retry until we can scroll to the selected item
+ try {
+ var navtree=$('#nav-tree');
+ navtree.scrollTo('#selected',0,{offset:-windowHeight/2});
+ } catch (err) {
+ setTimeout(arguments.callee, 0);
+ }
+ })();
+}
+
+function expandNode(o, node, imm, showRoot)
+{
+ if (node.childrenData && !node.expanded) {
+ if (typeof(node.childrenData)==='string') {
+ var varName = node.childrenData;
+ getScript(node.relpath+varName,function(){
+ node.childrenData = getData(varName);
+ expandNode(o, node, imm, showRoot);
+ }, showRoot);
+ } else {
+ if (!node.childrenVisited) {
+ getNode(o, node);
+ } if (imm || ($.browser.msie && $.browser.version>8)) {
+ // somehow slideDown jumps to the start of tree for IE9 :-(
+ $(node.getChildrenUL()).show();
+ } else {
+ $(node.getChildrenUL()).slideDown("fast");
+ }
+ if (node.isLast) {
+ node.plus_img.src = node.relpath+"arrowdown.png";
+ } else {
+ node.plus_img.src = node.relpath+"arrowdown.png";
+ }
+ node.expanded = true;
+ }
+ }
+}
+
+function glowEffect(n,duration)
+{
+ n.addClass('glow').delay(duration).queue(function(next){
+ $(this).removeClass('glow');next();
+ });
+}
+
+function highlightAnchor()
+{
+ var aname = hashUrl();
+ var anchor = $(aname);
+ if (anchor.parent().attr('class')=='memItemLeft'){
+ var rows = $('.memberdecls tr[class$="'+hashValue()+'"]');
+ glowEffect(rows.children(),300); // member without details
+ } else if (anchor.parent().attr('class')=='fieldname'){
+ glowEffect(anchor.parent().parent(),1000); // enum value
+ } else if (anchor.parent().attr('class')=='fieldtype'){
+ glowEffect(anchor.parent().parent(),1000); // struct field
+ } else if (anchor.parent().is(":header")) {
+ glowEffect(anchor.parent(),1000); // section header
+ } else {
+ glowEffect(anchor.next(),1000); // normal member
+ }
+ gotoAnchor(anchor,aname,false);
+}
+
+function selectAndHighlight(hash,n)
+{
+ var a;
+ if (hash) {
+ var link=stripPath(pathName())+':'+hash.substring(1);
+ a=$('.item a[class$="'+link+'"]');
+ }
+ if (a && a.length) {
+ a.parent().parent().addClass('selected');
+ a.parent().parent().attr('id','selected');
+ highlightAnchor();
+ } else if (n) {
+ $(n.itemDiv).addClass('selected');
+ $(n.itemDiv).attr('id','selected');
+ }
+ if ($('#nav-tree-contents .item:first').hasClass('selected')) {
+ $('#nav-sync').css('top','30px');
+ } else {
+ $('#nav-sync').css('top','5px');
+ }
+ showRoot();
+}
+
+function showNode(o, node, index, hash)
+{
+ if (node && node.childrenData) {
+ if (typeof(node.childrenData)==='string') {
+ var varName = node.childrenData;
+ getScript(node.relpath+varName,function(){
+ node.childrenData = getData(varName);
+ showNode(o,node,index,hash);
+ },true);
+ } else {
+ if (!node.childrenVisited) {
+ getNode(o, node);
+ }
+ $(node.getChildrenUL()).css({'display':'block'});
+ node.plus_img.src = node.relpath+"arrowdown.png";
+ node.expanded = true;
+ var n = node.children[o.breadcrumbs[index]];
+ if (index+1<o.breadcrumbs.length) {
+ showNode(o,n,index+1,hash);
+ } else {
+ if (typeof(n.childrenData)==='string') {
+ var varName = n.childrenData;
+ getScript(n.relpath+varName,function(){
+ n.childrenData = getData(varName);
+ node.expanded=false;
+ showNode(o,node,index,hash); // retry with child node expanded
+ },true);
+ } else {
+ var rootBase = stripPath(o.toroot.replace(/\..+$/, ''));
+ if (rootBase=="index" || rootBase=="pages" || rootBase=="search") {
+ expandNode(o, n, true, true);
+ }
+ selectAndHighlight(hash,n);
+ }
+ }
+ }
+ } else {
+ selectAndHighlight(hash);
+ }
+}
+
+function removeToInsertLater(element) {
+ var parentNode = element.parentNode;
+ var nextSibling = element.nextSibling;
+ parentNode.removeChild(element);
+ return function() {
+ if (nextSibling) {
+ parentNode.insertBefore(element, nextSibling);
+ } else {
+ parentNode.appendChild(element);
+ }
+ };
+}
+
+function getNode(o, po)
+{
+ var insertFunction = removeToInsertLater(po.li);
+ po.childrenVisited = true;
+ var l = po.childrenData.length-1;
+ for (var i in po.childrenData) {
+ var nodeData = po.childrenData[i];
+ po.children[i] = newNode(o, po, nodeData[0], nodeData[1], nodeData[2],
+ i==l);
+ }
+ insertFunction();
+}
+
+function gotoNode(o,subIndex,root,hash,relpath)
+{
+ var nti = navTreeSubIndices[subIndex][root+hash];
+ o.breadcrumbs = $.extend(true, [], nti ? nti : navTreeSubIndices[subIndex][root]);
+ if (!o.breadcrumbs && root!=NAVTREE[0][1]) { // fallback: show index
+ navTo(o,NAVTREE[0][1],"",relpath);
+ $('.item').removeClass('selected');
+ $('.item').removeAttr('id');
+ }
+ if (o.breadcrumbs) {
+ o.breadcrumbs.unshift(0); // add 0 for root node
+ showNode(o, o.node, 0, hash);
+ }
+}
+
+function navTo(o,root,hash,relpath)
+{
+ var link = cachedLink();
+ if (link) {
+ var parts = link.split('#');
+ root = parts[0];
+ if (parts.length>1) hash = '#'+parts[1].replace(/[^\w\-]/g,'');
+ else hash='';
+ }
+ if (hash.match(/^#l\d+$/)) {
+ var anchor=$('a[name='+hash.substring(1)+']');
+ glowEffect(anchor.parent(),1000); // line number
+ hash=''; // strip line number anchors
+ }
+ var url=root+hash;
+ var i=-1;
+ while (NAVTREEINDEX[i+1]<=url) i++;
+ if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index
+ if (navTreeSubIndices[i]) {
+ gotoNode(o,i,root,hash,relpath)
+ } else {
+ getScript(relpath+'navtreeindex'+i,function(){
+ navTreeSubIndices[i] = eval('NAVTREEINDEX'+i);
+ if (navTreeSubIndices[i]) {
+ gotoNode(o,i,root,hash,relpath);
+ }
+ },true);
+ }
+}
+
+function showSyncOff(n,relpath)
+{
+ n.html('<img src="'+relpath+'sync_off.png" title="'+SYNCOFFMSG+'"/>');
+}
+
+function showSyncOn(n,relpath)
+{
+ n.html('<img src="'+relpath+'sync_on.png" title="'+SYNCONMSG+'"/>');
+}
+
+function toggleSyncButton(relpath)
+{
+ var navSync = $('#nav-sync');
+ if (navSync.hasClass('sync')) {
+ navSync.removeClass('sync');
+ showSyncOff(navSync,relpath);
+ storeLink(stripPath2(pathName())+hashUrl());
+ } else {
+ navSync.addClass('sync');
+ showSyncOn(navSync,relpath);
+ deleteLink();
+ }
+}
+
+function initNavTree(toroot,relpath)
+{
+ var o = new Object();
+ o.toroot = toroot;
+ o.node = new Object();
+ o.node.li = document.getElementById("nav-tree-contents");
+ o.node.childrenData = NAVTREE;
+ o.node.children = new Array();
+ o.node.childrenUL = document.createElement("ul");
+ o.node.getChildrenUL = function() { return o.node.childrenUL; };
+ o.node.li.appendChild(o.node.childrenUL);
+ o.node.depth = 0;
+ o.node.relpath = relpath;
+ o.node.expanded = false;
+ o.node.isLast = true;
+ o.node.plus_img = document.createElement("img");
+ o.node.plus_img.src = relpath+"arrowright.png";
+ o.node.plus_img.width = 16;
+ o.node.plus_img.height = 22;
+
+ if (localStorageSupported()) {
+ var navSync = $('#nav-sync');
+ if (cachedLink()) {
+ showSyncOff(navSync,relpath);
+ navSync.removeClass('sync');
+ } else {
+ showSyncOn(navSync,relpath);
+ }
+ navSync.click(function(){ toggleSyncButton(relpath); });
+ }
+
+ $(window).load(function(){
+ navTo(o,toroot,hashUrl(),relpath);
+ showRoot();
+ });
+
+ $(window).bind('hashchange', function(){
+ if (window.location.hash && window.location.hash.length>1){
+ var a;
+ if ($(location).attr('hash')){
+ var clslink=stripPath(pathName())+':'+hashValue();
+ a=$('.item a[class$="'+clslink.replace(/</g,'\\3c ')+'"]');
+ }
+ if (a==null || !$(a).parent().parent().hasClass('selected')){
+ $('.item').removeClass('selected');
+ $('.item').removeAttr('id');
+ }
+ var link=stripPath2(pathName());
+ navTo(o,link,hashUrl(),relpath);
+ } else if (!animationInProgress) {
+ $('#doc-content').scrollTop(0);
+ $('.item').removeClass('selected');
+ $('.item').removeAttr('id');
+ navTo(o,toroot,hashUrl(),relpath);
+ }
+ })
+}
+
diff --git a/docs/API/navtreedata.js b/docs/API/navtreedata.js
new file mode 100755
index 0000000..1f74277
--- /dev/null
+++ b/docs/API/navtreedata.js
@@ -0,0 +1,62 @@
+var NAVTREE =
+[
+ [ "XMPToolkit", "index.html", [
+ [ "XMP Toolkit API Overview", "index.html", [
+ [ "Using of the XMP Toolkit API", "index.html#second-sec", null ],
+ [ "Overview of XMP Toolkit Internal Architecture.", "index.html#third-sec", [
+ [ "Implementation Call Chain", "index.html#callchain", null ]
+ ] ]
+ ] ],
+ [ "Namespaces", null, [
+ [ "Namespace List", "namespaces.html", "namespaces" ],
+ [ "Namespace Members", "namespacemembers.html", [
+ [ "All", "namespacemembers.html", "namespacemembers_dup" ],
+ [ "Functions", "namespacemembers_func.html", null ],
+ [ "Typedefs", "namespacemembers_type.html", "namespacemembers_type" ],
+ [ "Enumerations", "namespacemembers_enum.html", null ],
+ [ "Enumerator", "namespacemembers_eval.html", null ]
+ ] ]
+ ] ],
+ [ "Classes", "annotated.html", [
+ [ "Class List", "annotated.html", "annotated_dup" ],
+ [ "Class Index", "classes.html", null ],
+ [ "Class Hierarchy", "hierarchy.html", "hierarchy" ],
+ [ "Class Members", "functions.html", [
+ [ "All", "functions.html", "functions_dup" ],
+ [ "Functions", "functions_func.html", "functions_func" ],
+ [ "Variables", "functions_vars.html", null ],
+ [ "Typedefs", "functions_type.html", null ],
+ [ "Enumerations", "functions_enum.html", null ],
+ [ "Enumerator", "functions_eval.html", null ],
+ [ "Related Functions", "functions_rela.html", null ]
+ ] ]
+ ] ],
+ [ "Files", null, [
+ [ "File List", "files.html", "files" ],
+ [ "File Members", "globals.html", [
+ [ "All", "globals.html", "globals_dup" ],
+ [ "Functions", "globals_func.html", null ],
+ [ "Variables", "globals_vars.html", null ],
+ [ "Typedefs", "globals_type.html", null ],
+ [ "Enumerations", "globals_enum.html", null ],
+ [ "Enumerator", "globals_eval.html", "globals_eval" ],
+ [ "Macros", "globals_defs.html", "globals_defs" ]
+ ] ]
+ ] ]
+ ] ]
+];
+
+var NAVTREEINDEX =
+[
+"IArrayNode_8h.html",
+"WXMPMeta_8hpp.html#afee2f3c13f8dcb9f72104dd36eff4d68",
+"XMPCoreErrorCodes_8h.html#ad4e9bcfc5d25760a93189c0ba2962c3ea199673856ea7c62993fb5850817b9181",
+"XMP__Const_8h.html#a285d88d6d95ce0bfed19bb41c5be485f",
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a31adb57da79b4fb1f1f5f999ec740010",
+"classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070",
+"classTXMPFiles.html#a0de588c4b98086206b3a5d737012106d",
+"functions_vars.html"
+];
+
+var SYNCONMSG = 'click to disable panel synchronisation';
+var SYNCOFFMSG = 'click to enable panel synchronisation'; \ No newline at end of file
diff --git a/docs/API/navtreeindex0.js b/docs/API/navtreeindex0.js
new file mode 100755
index 0000000..401534a
--- /dev/null
+++ b/docs/API/navtreeindex0.js
@@ -0,0 +1,253 @@
+var NAVTREEINDEX0 =
+{
+"IArrayNode_8h.html":[3,0,0,0,2,0,0],
+"IArrayNode_8h_source.html":[3,0,0,0,2,0,0],
+"IClientDOMParser_8h.html":[3,0,0,0,2,0,1],
+"IClientDOMParser_8h_source.html":[3,0,0,0,2,0,1],
+"IClientDOMSerializer_8h.html":[3,0,0,0,2,0,2],
+"IClientDOMSerializer_8h_source.html":[3,0,0,0,2,0,2],
+"ICompositeNode_8h.html":[3,0,0,0,2,0,3],
+"ICompositeNode_8h_source.html":[3,0,0,0,2,0,3],
+"IConfigurable_8h.html":[3,0,0,0,1,0,0,0],
+"IConfigurable_8h_source.html":[3,0,0,0,1,0,0,0],
+"IConfigurationManager_8h.html":[3,0,0,0,1,0,1],
+"IConfigurationManager_8h_source.html":[3,0,0,0,1,0,1],
+"ICoreConfigurationManager_8h.html":[3,0,0,0,2,0,4],
+"ICoreConfigurationManager_8h_source.html":[3,0,0,0,2,0,4],
+"ICoreObjectFactory_8h.html":[3,0,0,0,2,0,5],
+"ICoreObjectFactory_8h_source.html":[3,0,0,0,2,0,5],
+"IDOMImplementationRegistry_8h.html":[3,0,0,0,2,0,6],
+"IDOMImplementationRegistry_8h_source.html":[3,0,0,0,2,0,6],
+"IDOMParser_8h.html":[3,0,0,0,2,0,7],
+"IDOMParser_8h_source.html":[3,0,0,0,2,0,7],
+"IDOMSerializer_8h.html":[3,0,0,0,2,0,8],
+"IDOMSerializer_8h_source.html":[3,0,0,0,2,0,8],
+"IErrorNotifier_8h.html":[3,0,0,0,1,0,3],
+"IErrorNotifier_8h_source.html":[3,0,0,0,1,0,3],
+"IError_8h.html":[3,0,0,0,1,0,2],
+"IError_8h.html#a8dc9ba4ce78a957c0843998c2468241a":[3,0,0,0,1,0,2,2],
+"IError_8h_source.html":[3,0,0,0,1,0,2],
+"IMemoryAllocator_8h.html":[3,0,0,0,1,0,4],
+"IMemoryAllocator_8h_source.html":[3,0,0,0,1,0,4],
+"IMetadata_8h.html":[3,0,0,0,2,0,9],
+"IMetadata_8h_source.html":[3,0,0,0,2,0,9],
+"INameSpacePrefixMap_8h.html":[3,0,0,0,2,0,10],
+"INameSpacePrefixMap_8h_source.html":[3,0,0,0,2,0,10],
+"INodeIterator_8h.html":[3,0,0,0,2,0,12],
+"INodeIterator_8h_source.html":[3,0,0,0,2,0,12],
+"INode_8h.html":[3,0,0,0,2,0,11],
+"INode_8h_source.html":[3,0,0,0,2,0,11],
+"IObjectFactory_8h.html":[3,0,0,0,1,0,5],
+"IObjectFactory_8h_source.html":[3,0,0,0,1,0,5],
+"IPathSegment_8h.html":[3,0,0,0,2,0,14],
+"IPathSegment_8h_source.html":[3,0,0,0,2,0,14],
+"IPath_8h.html":[3,0,0,0,2,0,13],
+"IPath_8h_source.html":[3,0,0,0,2,0,13],
+"ISharedObject_8h.html":[3,0,0,0,1,0,0,1],
+"ISharedObject_8h_source.html":[3,0,0,0,1,0,0,1],
+"ISimpleNode_8h.html":[3,0,0,0,2,0,15],
+"ISimpleNode_8h_source.html":[3,0,0,0,2,0,15],
+"IStructureNode_8h.html":[3,0,0,0,2,0,16],
+"IStructureNode_8h_source.html":[3,0,0,0,2,0,16],
+"IThreadSafe_8h.html":[3,0,0,0,1,0,0,2],
+"IThreadSafe_8h_source.html":[3,0,0,0,1,0,0,2],
+"IUTF8String_8h.html":[3,0,0,0,1,0,6],
+"IUTF8String_8h_source.html":[3,0,0,0,1,0,6],
+"IVersionable_8h.html":[3,0,0,0,1,0,0,3],
+"IVersionable_8h_source.html":[3,0,0,0,1,0,0,3],
+"TWrapperFunctions2_8h.html":[3,0,0,0,1,1,1],
+"TWrapperFunctions2_8h_source.html":[3,0,0,0,1,1,1],
+"TWrapperFunctions_8h.html":[3,0,0,0,1,1,0],
+"TWrapperFunctions_8h_source.html":[3,0,0,0,1,1,0],
+"TXMPFiles_8hpp.html":[3,0,0,0,3],
+"TXMPFiles_8hpp_source.html":[3,0,0,0,3],
+"TXMPIterator_8hpp.html":[3,0,0,0,4],
+"TXMPIterator_8hpp_source.html":[3,0,0,0,4],
+"TXMPMeta_8hpp.html":[3,0,0,0,5],
+"TXMPMeta_8hpp_source.html":[3,0,0,0,5],
+"TXMPUtils_8hpp.html":[3,0,0,0,6],
+"TXMPUtils_8hpp_source.html":[3,0,0,0,6],
+"WXMPFiles_8hpp.html":[3,0,0,0,0,1],
+"WXMPFiles_8hpp.html#a06a216001c8aed3b678bc2bbe510f59e":[3,0,0,0,0,1,24],
+"WXMPFiles_8hpp.html#a077600358a735f85573174499356f0c1":[3,0,0,0,0,1,47],
+"WXMPFiles_8hpp.html#a08126268000561c2c10af0f0a8226dce":[3,0,0,0,0,1,23],
+"WXMPFiles_8hpp.html#a0cbf8fcfb5d011fa62c6409a2cd84ede":[3,0,0,0,0,1,28],
+"WXMPFiles_8hpp.html#a1411fd7ac45a5f6fa362977c962f6234":[3,0,0,0,0,1,0],
+"WXMPFiles_8hpp.html#a15b59bc5c4c18355b097b3d0c85ecc3d":[3,0,0,0,0,1,48],
+"WXMPFiles_8hpp.html#a1c07156ac21d3ccd800fbd540fa1894b":[3,0,0,0,0,1,10],
+"WXMPFiles_8hpp.html#a1d4f17626f5426e949d89a826b47e139":[3,0,0,0,0,1,16],
+"WXMPFiles_8hpp.html#a22159932057a32ae1b7438a4cb38b061":[3,0,0,0,0,1,9],
+"WXMPFiles_8hpp.html#a226c2df14f357c12de0503e64d9d14f0":[3,0,0,0,0,1,22],
+"WXMPFiles_8hpp.html#a2484fe15e37f4f2644f3568be0c7690e":[3,0,0,0,0,1,29],
+"WXMPFiles_8hpp.html#a2ef5dde7ef08bd1c25ffc1950e6b93d5":[3,0,0,0,0,1,26],
+"WXMPFiles_8hpp.html#a306bb7b988eec6378c2a9fc487caf617":[3,0,0,0,0,1,14],
+"WXMPFiles_8hpp.html#a3334dd84b04167cc3ae55c77a67f9b2a":[3,0,0,0,0,1,45],
+"WXMPFiles_8hpp.html#a388f91a00251ec7b9d9dfcf60a5663a0":[3,0,0,0,0,1,6],
+"WXMPFiles_8hpp.html#a39fce6bafe20c2847a288c6bded9dcc8":[3,0,0,0,0,1,40],
+"WXMPFiles_8hpp.html#a3d2fb0bb2d758c818c2d7a544e89235b":[3,0,0,0,0,1,13],
+"WXMPFiles_8hpp.html#a49db2cb75d6fbed2f76090d9a8fbcd2c":[3,0,0,0,0,1,19],
+"WXMPFiles_8hpp.html#a4fcbcba3b02b01ab8f0e34d4d9db2e81":[3,0,0,0,0,1,20],
+"WXMPFiles_8hpp.html#a5138829cfbf5712d5afe85109a253de7":[3,0,0,0,0,1,3],
+"WXMPFiles_8hpp.html#a515bb8c705a05236a146cbc7cde59055":[3,0,0,0,0,1,46],
+"WXMPFiles_8hpp.html#a58e70573d754cc63966da6fc3fc70a91":[3,0,0,0,0,1,42],
+"WXMPFiles_8hpp.html#a595767f50ed53071f5240a94596a3451":[3,0,0,0,0,1,25],
+"WXMPFiles_8hpp.html#a5bfb800ea6bf214b5ac4853e2cfff3cc":[3,0,0,0,0,1,41],
+"WXMPFiles_8hpp.html#a5c8a9971542af98048b1a19b73d65310":[3,0,0,0,0,1,1],
+"WXMPFiles_8hpp.html#a5fdbbcc0de3c2b6c8c67c355bc2b73ef":[3,0,0,0,0,1,11],
+"WXMPFiles_8hpp.html#a661d52226bb7f7bffb8f9a053721dcab":[3,0,0,0,0,1,33],
+"WXMPFiles_8hpp.html#a71037373c70c18a183c7a9ee7f7babc9":[3,0,0,0,0,1,35],
+"WXMPFiles_8hpp.html#a793167f4d653d6f573dc0f4c4f07b298":[3,0,0,0,0,1,27],
+"WXMPFiles_8hpp.html#a7d423602bfc12e20d83a36df777c4c97":[3,0,0,0,0,1,31],
+"WXMPFiles_8hpp.html#a80f57c97820f7c86ddfccd2814b2c973":[3,0,0,0,0,1,50],
+"WXMPFiles_8hpp.html#a81794d63d62975b313aff0f869c7dded":[3,0,0,0,0,1,39],
+"WXMPFiles_8hpp.html#a8a739d2d110756df76a6560bf024d7db":[3,0,0,0,0,1,15],
+"WXMPFiles_8hpp.html#a91589c63b3c0c034e11c60a4eaaa3de1":[3,0,0,0,0,1,2],
+"WXMPFiles_8hpp.html#a96877191902363ca391c357b0bdeedf4":[3,0,0,0,0,1,36],
+"WXMPFiles_8hpp.html#a973b744c33e9a06d56f8b6b3a06394a4":[3,0,0,0,0,1,30],
+"WXMPFiles_8hpp.html#a98022dc34d13e606183e09b65ec48c46":[3,0,0,0,0,1,17],
+"WXMPFiles_8hpp.html#aa4bd33393eec73960abad65df45555e1":[3,0,0,0,0,1,12],
+"WXMPFiles_8hpp.html#aae01191749d7b0e1b4700516d3a263cf":[3,0,0,0,0,1,4],
+"WXMPFiles_8hpp.html#aaeee52c59e243c3aec3a1f155052cda7":[3,0,0,0,0,1,18],
+"WXMPFiles_8hpp.html#ab479175bf8e053d15f94561b681b127a":[3,0,0,0,0,1,7],
+"WXMPFiles_8hpp.html#ab5ad690470439e4813284756971a606e":[3,0,0,0,0,1,5],
+"WXMPFiles_8hpp.html#ab91f3a925e6288c7fb1dc459019b3405":[3,0,0,0,0,1,44],
+"WXMPFiles_8hpp.html#aba40b211c434f8265c102c9ad3e801b5":[3,0,0,0,0,1,43],
+"WXMPFiles_8hpp.html#abd63a02504b3199ea8bd5484a58ff02c":[3,0,0,0,0,1,38],
+"WXMPFiles_8hpp.html#adfc59976766bc8cd2bbafcc512ff22e0":[3,0,0,0,0,1,21],
+"WXMPFiles_8hpp.html#ae613a8d848ffd06181ef67910ba3dcdd":[3,0,0,0,0,1,49],
+"WXMPFiles_8hpp.html#aefdd49820e9bfede87457429d519c8d2":[3,0,0,0,0,1,34],
+"WXMPFiles_8hpp.html#af963f839791b4de926e42680c091af32":[3,0,0,0,0,1,32],
+"WXMPFiles_8hpp.html#afc6b46974e9108cde02b74f5b7a6fb97":[3,0,0,0,0,1,8],
+"WXMPFiles_8hpp.html#afd223e1c41a44dadcf1e4e9ab765ba7a":[3,0,0,0,0,1,37],
+"WXMPFiles_8hpp_source.html":[3,0,0,0,0,1],
+"WXMPIterator_8hpp.html":[3,0,0,0,0,2],
+"WXMPIterator_8hpp.html#a3d19f210969f98668bb9a80281722d5b":[3,0,0,0,0,2,7],
+"WXMPIterator_8hpp.html#a490d04bf7641a1fa38dc1d4a4c106de9":[3,0,0,0,0,2,2],
+"WXMPIterator_8hpp.html#a4bcacc41e340e5c12ece3814d2a76d9e":[3,0,0,0,0,2,10],
+"WXMPIterator_8hpp.html#a6835fb3f1b44169a838466f23f197f4d":[3,0,0,0,0,2,8],
+"WXMPIterator_8hpp.html#a6beaeb3189c8f5675a7ad399a3d443c7":[3,0,0,0,0,2,0],
+"WXMPIterator_8hpp.html#a6edb320022815734935207c5d81453c1":[3,0,0,0,0,2,5],
+"WXMPIterator_8hpp.html#aa53f3af28fb173ee0f6d01b9f1196d6d":[3,0,0,0,0,2,4],
+"WXMPIterator_8hpp.html#aa79ff88d5629b5161a4cef06f1c9d121":[3,0,0,0,0,2,3],
+"WXMPIterator_8hpp.html#aaad6b1b5368943be9cb4ce3285c3f5f3":[3,0,0,0,0,2,6],
+"WXMPIterator_8hpp.html#ac5cfa7bd53753408e8e6b20225429fa0":[3,0,0,0,0,2,1],
+"WXMPIterator_8hpp.html#ae6bb05117662013a9a5873f9d8ce4f2c":[3,0,0,0,0,2,9],
+"WXMPIterator_8hpp_source.html":[3,0,0,0,0,2],
+"WXMPMeta_8hpp.html":[3,0,0,0,0,3],
+"WXMPMeta_8hpp.html#a0328d3f6b63a301c17469f3a636bee8d":[3,0,0,0,0,3,74],
+"WXMPMeta_8hpp.html#a042f1cb44600209bed7d27a26ee937a3":[3,0,0,0,0,3,19],
+"WXMPMeta_8hpp.html#a04725a82690d7fa41b294237f4a7efeb":[3,0,0,0,0,3,25],
+"WXMPMeta_8hpp.html#a0685ed8dc59360366c629cdc559076ce":[3,0,0,0,0,3,79],
+"WXMPMeta_8hpp.html#a06d38f8fdf6a46ff8e672a98fb50f2f4":[3,0,0,0,0,3,116],
+"WXMPMeta_8hpp.html#a0a780565631328197529fd5eda5839ed":[3,0,0,0,0,3,14],
+"WXMPMeta_8hpp.html#a0acf7eccade1539e1c0a69b8ff2887db":[3,0,0,0,0,3,2],
+"WXMPMeta_8hpp.html#a0b32b12b061f62eb3f8ec1784165e03a":[3,0,0,0,0,3,97],
+"WXMPMeta_8hpp.html#a0ba6dd317cb80ed9acc2bae3faf7a5e4":[3,0,0,0,0,3,55],
+"WXMPMeta_8hpp.html#a0cc1264e977ecceec1307b490f70cdcd":[3,0,0,0,0,3,60],
+"WXMPMeta_8hpp.html#a10cd70a1efb7cdf9516842a89c8b42eb":[3,0,0,0,0,3,49],
+"WXMPMeta_8hpp.html#a1239ebede304d572f34b1319c0b14c05":[3,0,0,0,0,3,103],
+"WXMPMeta_8hpp.html#a15ef1d6a8788115c277cf74d254eae50":[3,0,0,0,0,3,48],
+"WXMPMeta_8hpp.html#a1659214d8debfaa1a7543ff4b96d700a":[3,0,0,0,0,3,111],
+"WXMPMeta_8hpp.html#a166e93fe425704a6b9b405b52fd492f8":[3,0,0,0,0,3,11],
+"WXMPMeta_8hpp.html#a17131cb1b6f77db2c6fc56effddb629e":[3,0,0,0,0,3,28],
+"WXMPMeta_8hpp.html#a18308efec56a894bfa2ed9a3967c8feb":[3,0,0,0,0,3,16],
+"WXMPMeta_8hpp.html#a198c0bd7ce71a4a1ee5b4ab6daba500e":[3,0,0,0,0,3,65],
+"WXMPMeta_8hpp.html#a1e0b97d88538b256724218c24ec2aa06":[3,0,0,0,0,3,108],
+"WXMPMeta_8hpp.html#a1e85839b8c67c99f43fb15fc2942b34d":[3,0,0,0,0,3,36],
+"WXMPMeta_8hpp.html#a1fd13036f7844b3b5c75984e8ac1e1e9":[3,0,0,0,0,3,8],
+"WXMPMeta_8hpp.html#a21071def1d2284a61790b2d971231471":[3,0,0,0,0,3,101],
+"WXMPMeta_8hpp.html#a21cb3d8399b93c52cb4000cec668c5e3":[3,0,0,0,0,3,23],
+"WXMPMeta_8hpp.html#a21feb6c743ada14de8277f6bcedd86a5":[3,0,0,0,0,3,50],
+"WXMPMeta_8hpp.html#a2224a04bc65b61f1557a4ceedfab2aee":[3,0,0,0,0,3,52],
+"WXMPMeta_8hpp.html#a27bd62e33f3fe7fd6777b1ef394d7af5":[3,0,0,0,0,3,87],
+"WXMPMeta_8hpp.html#a2c650c402ba4850b082c2204eb4ecb43":[3,0,0,0,0,3,85],
+"WXMPMeta_8hpp.html#a2cf74d9cb0162bca6f5e024773bff238":[3,0,0,0,0,3,44],
+"WXMPMeta_8hpp.html#a2df62a9ced0164bbc4d4d63922d46e3e":[3,0,0,0,0,3,12],
+"WXMPMeta_8hpp.html#a2e1e3752c2a1bc7a80c595ab9d08d2ff":[3,0,0,0,0,3,24],
+"WXMPMeta_8hpp.html#a2e349470fb118ebce92e0eabb305f4ff":[3,0,0,0,0,3,42],
+"WXMPMeta_8hpp.html#a30ce4c07c9e676bd522ba2de196f8f62":[3,0,0,0,0,3,1],
+"WXMPMeta_8hpp.html#a30e8a56bbc8c98a4787a6e6b4a1b9d1f":[3,0,0,0,0,3,71],
+"WXMPMeta_8hpp.html#a31f0b721c8e755b228a7ae66fa28b0b7":[3,0,0,0,0,3,67],
+"WXMPMeta_8hpp.html#a3490f2d966ecaa048af87a6405128b08":[3,0,0,0,0,3,32],
+"WXMPMeta_8hpp.html#a37107581e02cf1197d04118b0bfcffe5":[3,0,0,0,0,3,90],
+"WXMPMeta_8hpp.html#a38c91b47500447c40cfb3b38d73c749c":[3,0,0,0,0,3,86],
+"WXMPMeta_8hpp.html#a3c95f29236b9e3a16fec0421479da937":[3,0,0,0,0,3,89],
+"WXMPMeta_8hpp.html#a3cce18be810b681d3dcd2a0798fb2990":[3,0,0,0,0,3,76],
+"WXMPMeta_8hpp.html#a3ce4a228c127f37ebe5085fcbaae8851":[3,0,0,0,0,3,45],
+"WXMPMeta_8hpp.html#a3fb6f849c25f5bf964beb7eb9e98049d":[3,0,0,0,0,3,62],
+"WXMPMeta_8hpp.html#a4155c5b0ae891213ea2d8f9872c215e8":[3,0,0,0,0,3,98],
+"WXMPMeta_8hpp.html#a418658d30d2fd04c9080b3298a959c8d":[3,0,0,0,0,3,92],
+"WXMPMeta_8hpp.html#a459d905958efba79649c9884ecbfc3d8":[3,0,0,0,0,3,95],
+"WXMPMeta_8hpp.html#a48f79b8f9005c0cd93e0cf03bbe43024":[3,0,0,0,0,3,61],
+"WXMPMeta_8hpp.html#a4b0a23906a0bd1ef87d381a7d940b5b0":[3,0,0,0,0,3,20],
+"WXMPMeta_8hpp.html#a4d079b8cbe5efc658a64b0bd9be60e8e":[3,0,0,0,0,3,18],
+"WXMPMeta_8hpp.html#a4fcdf3f4212ff34e0b24a76e11c1c583":[3,0,0,0,0,3,113],
+"WXMPMeta_8hpp.html#a50a73f676357dfdbf1c2d5661020e43e":[3,0,0,0,0,3,69],
+"WXMPMeta_8hpp.html#a5407ff91fcbe5cae856e8644e998c396":[3,0,0,0,0,3,4],
+"WXMPMeta_8hpp.html#a58a125d8a9eeee3a8906d50262faf06c":[3,0,0,0,0,3,78],
+"WXMPMeta_8hpp.html#a5a3ced9ef902d7281a4d0e3bbed8d0af":[3,0,0,0,0,3,100],
+"WXMPMeta_8hpp.html#a5cf4a4b8c3ecfa12567ffdca5502f322":[3,0,0,0,0,3,110],
+"WXMPMeta_8hpp.html#a5e549c2a44cf580c1f6a25f02ba767af":[3,0,0,0,0,3,15],
+"WXMPMeta_8hpp.html#a68c7253abe28cd30ad7c7657c388f30e":[3,0,0,0,0,3,75],
+"WXMPMeta_8hpp.html#a696f7638346770aecec1a4570098d9fd":[3,0,0,0,0,3,57],
+"WXMPMeta_8hpp.html#a6d405bbe1c37ddd8ee7423d7be317f52":[3,0,0,0,0,3,77],
+"WXMPMeta_8hpp.html#a6d4b43bab339b01d216b29d89e695308":[3,0,0,0,0,3,117],
+"WXMPMeta_8hpp.html#a6f0508454f99a854c74744f177c1294d":[3,0,0,0,0,3,70],
+"WXMPMeta_8hpp.html#a72415a5d17bb47c3d818d11a710f5c0b":[3,0,0,0,0,3,34],
+"WXMPMeta_8hpp.html#a75913c1b8f26041bd029418d39902830":[3,0,0,0,0,3,53],
+"WXMPMeta_8hpp.html#a76960e4bc1344208d70a6055448ce591":[3,0,0,0,0,3,59],
+"WXMPMeta_8hpp.html#a7938f68d5243be7813ff405791e36518":[3,0,0,0,0,3,27],
+"WXMPMeta_8hpp.html#a7e9df8e5480d241a7ef7b033aa4e871f":[3,0,0,0,0,3,83],
+"WXMPMeta_8hpp.html#a7f407dba2b3fee31aad4cc0887ba7a0e":[3,0,0,0,0,3,81],
+"WXMPMeta_8hpp.html#a8887351f8aee3cc57ababc137ab0719a":[3,0,0,0,0,3,66],
+"WXMPMeta_8hpp.html#a8faddabe97b832233d6e10aa9ca0fbef":[3,0,0,0,0,3,54],
+"WXMPMeta_8hpp.html#a9128462ca53008ccf87e5fcd96cf966e":[3,0,0,0,0,3,38],
+"WXMPMeta_8hpp.html#a91cf006a6594600c7bff11a4460d077f":[3,0,0,0,0,3,39],
+"WXMPMeta_8hpp.html#a97ae24365cb43c4e6e6886d0d7fa9df6":[3,0,0,0,0,3,5],
+"WXMPMeta_8hpp.html#a9a1bbebe74385a21e8eecd5883d01381":[3,0,0,0,0,3,109],
+"WXMPMeta_8hpp.html#a9f3c397b927d7da7c84ee3a5a03ee2df":[3,0,0,0,0,3,96],
+"WXMPMeta_8hpp.html#aa0e45856fae5a4c45f986978dae73843":[3,0,0,0,0,3,9],
+"WXMPMeta_8hpp.html#aa5eeb477a58a35f336c4349e08e13600":[3,0,0,0,0,3,40],
+"WXMPMeta_8hpp.html#aa678642f09d4bc3ba83b55364112bf25":[3,0,0,0,0,3,93],
+"WXMPMeta_8hpp.html#aa9370910efc3836b82ab4e24f36f859c":[3,0,0,0,0,3,13],
+"WXMPMeta_8hpp.html#aa9fcfcc4ad994abaa91574b956adc998":[3,0,0,0,0,3,107],
+"WXMPMeta_8hpp.html#aaa1d0c192d952db671b24d38c974824e":[3,0,0,0,0,3,10],
+"WXMPMeta_8hpp.html#aaa50f01092ba1f94c9acaa390fb7afe9":[3,0,0,0,0,3,84],
+"WXMPMeta_8hpp.html#aaad2d6874da145ec47c9b4f60b76cfcf":[3,0,0,0,0,3,33],
+"WXMPMeta_8hpp.html#ab3c906d916e6dba4f2d422849a642fce":[3,0,0,0,0,3,72],
+"WXMPMeta_8hpp.html#ab4d6e5d26b15df865d0e96343d31e408":[3,0,0,0,0,3,41],
+"WXMPMeta_8hpp.html#ab4f052c58b02cfecc26f8f2388249f4c":[3,0,0,0,0,3,58],
+"WXMPMeta_8hpp.html#ab5ee5ac8d0de80b02b3d5588c596dfde":[3,0,0,0,0,3,30],
+"WXMPMeta_8hpp.html#ab7ed5170b4879381078d0724cbdbbd0f":[3,0,0,0,0,3,43],
+"WXMPMeta_8hpp.html#abac12b12f5dc2ccb20fe28e293f8db1d":[3,0,0,0,0,3,6],
+"WXMPMeta_8hpp.html#abe1551b9240e06ba4d2ab972f1efbe85":[3,0,0,0,0,3,51],
+"WXMPMeta_8hpp.html#abe56d32dec99c09791850e14fa199fff":[3,0,0,0,0,3,47],
+"WXMPMeta_8hpp.html#abee87dd946056b03a1a650524ae3ce13":[3,0,0,0,0,3,112],
+"WXMPMeta_8hpp.html#abf5878ee7b66e8c18d45006579ba41d3":[3,0,0,0,0,3,68],
+"WXMPMeta_8hpp.html#ac166c8171e8e4079cfbaadbc20bfc4cc":[3,0,0,0,0,3,80],
+"WXMPMeta_8hpp.html#ac1d4f2bc9d0da42cda44f54071220eb5":[3,0,0,0,0,3,115],
+"WXMPMeta_8hpp.html#ac4103e2833fe7efa8a46145a38e03ed5":[3,0,0,0,0,3,102],
+"WXMPMeta_8hpp.html#ac71c9ef20221ea9bfcf21f8265c35b17":[3,0,0,0,0,3,29],
+"WXMPMeta_8hpp.html#ac85ab52aa3ea72b7a3a5a0ba90cb58a3":[3,0,0,0,0,3,94],
+"WXMPMeta_8hpp.html#ac9ff1318eb934f05568d7f8f7177acf6":[3,0,0,0,0,3,63],
+"WXMPMeta_8hpp.html#ad18d48d5755d4318c725919eddeb4bec":[3,0,0,0,0,3,21],
+"WXMPMeta_8hpp.html#ad5e74b2f1acce6eab6e090c54ea742cc":[3,0,0,0,0,3,7],
+"WXMPMeta_8hpp.html#ad71ca4432c9e58f29caa355f70bc4f52":[3,0,0,0,0,3,91],
+"WXMPMeta_8hpp.html#ad7bf555513506cae450b216eb56dcef1":[3,0,0,0,0,3,46],
+"WXMPMeta_8hpp.html#ad9ee99501a3dabc327b972ab8c3c000d":[3,0,0,0,0,3,114],
+"WXMPMeta_8hpp.html#adb8b207d7a45ffdc126092c97ce95010":[3,0,0,0,0,3,73],
+"WXMPMeta_8hpp.html#adde0feeb518ce416f906292542a92d46":[3,0,0,0,0,3,37],
+"WXMPMeta_8hpp.html#ae133a695d6efe0db6528395345f3c0c6":[3,0,0,0,0,3,82],
+"WXMPMeta_8hpp.html#ae2b5b7330b5a153cc1de292e7ba291e5":[3,0,0,0,0,3,104],
+"WXMPMeta_8hpp.html#ae4afaee6e6376e126b919e73a8461e1e":[3,0,0,0,0,3,106],
+"WXMPMeta_8hpp.html#ae4b069f217d8e161ea7e972f1c37a641":[3,0,0,0,0,3,17],
+"WXMPMeta_8hpp.html#ae80228876bb345c97a0fdebc52d9b5e4":[3,0,0,0,0,3,88],
+"WXMPMeta_8hpp.html#ae83bc466041e54f8e32b3909b10a63fe":[3,0,0,0,0,3,64],
+"WXMPMeta_8hpp.html#af0ee01859f7324e6668fe372bc54a2a4":[3,0,0,0,0,3,35],
+"WXMPMeta_8hpp.html#af2ffbda0f3e382835296205504517d94":[3,0,0,0,0,3,99],
+"WXMPMeta_8hpp.html#af4035499938bb4645b207b7ff65f19d7":[3,0,0,0,0,3,26],
+"WXMPMeta_8hpp.html#af665276132037f0aad9c3184163ff088":[3,0,0,0,0,3,3],
+"WXMPMeta_8hpp.html#af9276110cbdeb3b3098b6bbdf620977f":[3,0,0,0,0,3,56],
+"WXMPMeta_8hpp.html#af95f01dadd596260f8d2833bc650135b":[3,0,0,0,0,3,31],
+"WXMPMeta_8hpp.html#afcbc2ac610c4e23a128ff80203e3a4a5":[3,0,0,0,0,3,22]
+};
diff --git a/docs/API/navtreeindex1.js b/docs/API/navtreeindex1.js
new file mode 100755
index 0000000..a10d146
--- /dev/null
+++ b/docs/API/navtreeindex1.js
@@ -0,0 +1,253 @@
+var NAVTREEINDEX1 =
+{
+"WXMPMeta_8hpp.html#afee2f3c13f8dcb9f72104dd36eff4d68":[3,0,0,0,0,3,105],
+"WXMPMeta_8hpp.html#afff47bd31a726ad7c0b3578a0d8bb9d7":[3,0,0,0,0,3,0],
+"WXMPMeta_8hpp_source.html":[3,0,0,0,0,3],
+"WXMPUtils_8hpp.html":[3,0,0,0,0,4],
+"WXMPUtils_8hpp.html#a0565337a6234a5e7421586787a29d5b6":[3,0,0,0,0,4,21],
+"WXMPUtils_8hpp.html#a0b0bf2caafca6f06b8c84936ce4c27d8":[3,0,0,0,0,4,50],
+"WXMPUtils_8hpp.html#a0b273ea840ed328c8b0ebce5ea17873c":[3,0,0,0,0,4,3],
+"WXMPUtils_8hpp.html#a106974fdb19fd470dd25d0913af28246":[3,0,0,0,0,4,8],
+"WXMPUtils_8hpp.html#a1725e2cfd1509da540038ca426b98c8a":[3,0,0,0,0,4,55],
+"WXMPUtils_8hpp.html#a180b0ae8451b9606003f1e6e38287ae8":[3,0,0,0,0,4,41],
+"WXMPUtils_8hpp.html#a1d51ef9a2d3fd698e664df2dec2c9b13":[3,0,0,0,0,4,29],
+"WXMPUtils_8hpp.html#a2555ce5bb9789967eb75e591e83772fa":[3,0,0,0,0,4,39],
+"WXMPUtils_8hpp.html#a29b7beb40cc51e935bd941eada601139":[3,0,0,0,0,4,57],
+"WXMPUtils_8hpp.html#a323219f2ccf286de50a5684a024a25d6":[3,0,0,0,0,4,36],
+"WXMPUtils_8hpp.html#a377a1ad29357867bfcdceda410400b6b":[3,0,0,0,0,4,7],
+"WXMPUtils_8hpp.html#a3de2ac287d2eb9a3786f187b0b5944d7":[3,0,0,0,0,4,14],
+"WXMPUtils_8hpp.html#a424ca120abc0e6ef6f2354e82757ce5b":[3,0,0,0,0,4,12],
+"WXMPUtils_8hpp.html#a4a0f5534dae4f34f3b1a233eb04ac54e":[3,0,0,0,0,4,52],
+"WXMPUtils_8hpp.html#a4d4fa0056f55d427c3a0c07f98b86172":[3,0,0,0,0,4,53],
+"WXMPUtils_8hpp.html#a506f87a34b8f983115c3bbfb4eba46f2":[3,0,0,0,0,4,30],
+"WXMPUtils_8hpp.html#a59b3c8316d21dde2b2b79863c7527f02":[3,0,0,0,0,4,46],
+"WXMPUtils_8hpp.html#a691c12dfc25a4bb4baf82195248ab1c3":[3,0,0,0,0,4,37],
+"WXMPUtils_8hpp.html#a6bca9ebbc56f0a9136478d22b43e6bc8":[3,0,0,0,0,4,13],
+"WXMPUtils_8hpp.html#a71770255372756959a29324f2bcdd654":[3,0,0,0,0,4,20],
+"WXMPUtils_8hpp.html#a7614ad0bb2816ebfe794514f45a10c2e":[3,0,0,0,0,4,45],
+"WXMPUtils_8hpp.html#a764cfb9c96b1e37dd108cb42014fd6b6":[3,0,0,0,0,4,49],
+"WXMPUtils_8hpp.html#a777a7e3b9b0f8b7afab51e40dae3a921":[3,0,0,0,0,4,58],
+"WXMPUtils_8hpp.html#a7812f80be0bfa177de3d0bb9d9bd5996":[3,0,0,0,0,4,48],
+"WXMPUtils_8hpp.html#a7a6e1c8d446dd9416b7fc4279cb5c026":[3,0,0,0,0,4,16],
+"WXMPUtils_8hpp.html#a7cc3619ebbd1f2f7527488882729a0cb":[3,0,0,0,0,4,56],
+"WXMPUtils_8hpp.html#a7dd59fc7ea99702edee606e30925ee82":[3,0,0,0,0,4,19],
+"WXMPUtils_8hpp.html#a83a5fcd7213385cfdb6b4d4eb85f1162":[3,0,0,0,0,4,0],
+"WXMPUtils_8hpp.html#a844d244df1b48816a3397ef50c7f5f5b":[3,0,0,0,0,4,24],
+"WXMPUtils_8hpp.html#a85ade86f24f96a54d386b3d9ae7d96ae":[3,0,0,0,0,4,6],
+"WXMPUtils_8hpp.html#a862c949794995c58c9ad74737973b6ef":[3,0,0,0,0,4,1],
+"WXMPUtils_8hpp.html#a873b7cbb40f65be873aa2b6ca6cd4eab":[3,0,0,0,0,4,25],
+"WXMPUtils_8hpp.html#a89d6c91a990c8ec93f00832c946fdf37":[3,0,0,0,0,4,28],
+"WXMPUtils_8hpp.html#a8a014e86556114f1756815477cad4321":[3,0,0,0,0,4,9],
+"WXMPUtils_8hpp.html#aa70282eba27fd239e2cfd561b88c08be":[3,0,0,0,0,4,23],
+"WXMPUtils_8hpp.html#aa7b4576af21a7c816768f1983100d432":[3,0,0,0,0,4,34],
+"WXMPUtils_8hpp.html#aabf211114925d9eba94089f811efe87a":[3,0,0,0,0,4,47],
+"WXMPUtils_8hpp.html#aaf92038d52fe0a7eee019a9d51350532":[3,0,0,0,0,4,17],
+"WXMPUtils_8hpp.html#aafde1fd448ec36673b9eb70fdac115e8":[3,0,0,0,0,4,22],
+"WXMPUtils_8hpp.html#ab25f06cea61f5562e1df5efe99922c5e":[3,0,0,0,0,4,5],
+"WXMPUtils_8hpp.html#ab651b25af61aec9fee3100166911d6c7":[3,0,0,0,0,4,42],
+"WXMPUtils_8hpp.html#ac089fd797e17f92af27b512b0d96951c":[3,0,0,0,0,4,18],
+"WXMPUtils_8hpp.html#ac6ea9e5527993203e86849e5d3699bcb":[3,0,0,0,0,4,43],
+"WXMPUtils_8hpp.html#acb32764db5b81fa4b0efca35188a4f6a":[3,0,0,0,0,4,10],
+"WXMPUtils_8hpp.html#ace54acfb2efef9cc192791b8046f6b3d":[3,0,0,0,0,4,44],
+"WXMPUtils_8hpp.html#ad0b48ebb31c439d092185aa2d4fbfc79":[3,0,0,0,0,4,32],
+"WXMPUtils_8hpp.html#ad31b8453fb086269c1118c51501f2987":[3,0,0,0,0,4,51],
+"WXMPUtils_8hpp.html#ad3481cdf333724ff87223d1514dd95cf":[3,0,0,0,0,4,26],
+"WXMPUtils_8hpp.html#ad80db557044003d1eb9c692a8703dead":[3,0,0,0,0,4,38],
+"WXMPUtils_8hpp.html#ad91341db639119d2bf30ff456a29f42c":[3,0,0,0,0,4,4],
+"WXMPUtils_8hpp.html#add25c775ebd8186f611365fb45c513df":[3,0,0,0,0,4,40],
+"WXMPUtils_8hpp.html#ae0b2234822da68ea00aeb7485aab9efe":[3,0,0,0,0,4,31],
+"WXMPUtils_8hpp.html#ae6de22173661f35cf6926806cb052554":[3,0,0,0,0,4,33],
+"WXMPUtils_8hpp.html#aeb44088490f2951c3491003796ec50a1":[3,0,0,0,0,4,27],
+"WXMPUtils_8hpp.html#aec36d93389403739f12a162502d56ab5":[3,0,0,0,0,4,2],
+"WXMPUtils_8hpp.html#af1bad4b3c7d72cff883c0ab0705e6c69":[3,0,0,0,0,4,35],
+"WXMPUtils_8hpp.html#af2017eaec1cabc679e2083dfd4c1f7c8":[3,0,0,0,0,4,15],
+"WXMPUtils_8hpp.html#af8bcd900825782a784239b8fed6a6f6e":[3,0,0,0,0,4,11],
+"WXMPUtils_8hpp.html#afc180986e0eb5c69a8acd7822780ebfb":[3,0,0,0,0,4,54],
+"WXMPUtils_8hpp_source.html":[3,0,0,0,0,4],
+"WXMP__Common_8hpp.html":[3,0,0,0,0,0],
+"WXMP__Common_8hpp.html#a00bbfd8bed08cc3ef59534e66a7e55f8":[3,0,0,0,0,0,5],
+"WXMP__Common_8hpp.html#a08838e2c5bcb3f4547172b4cce27a4a4":[3,0,0,0,0,0,11],
+"WXMP__Common_8hpp.html#a0f0d9f01db5db9c03a3432d3fb43b86a":[3,0,0,0,0,0,6],
+"WXMP__Common_8hpp.html#a18b3cd640d64484f12de7f0367d4ccb2":[3,0,0,0,0,0,9],
+"WXMP__Common_8hpp.html#a22af7eda5280ca99f2c2e48b20ee4c74":[3,0,0,0,0,0,10],
+"WXMP__Common_8hpp.html#a2cb35fa2967a5bce3686dde786db8210":[3,0,0,0,0,0,12],
+"WXMP__Common_8hpp.html#a31e0519b68ec7cb1f4e54cd480dbc6bd":[3,0,0,0,0,0,4],
+"WXMP__Common_8hpp.html#a360e92875f1147e47c365950a6560d6c":[3,0,0,0,0,0,19],
+"WXMP__Common_8hpp.html#a3ade7afea8e0dd088c4322680712246a":[3,0,0,0,0,0,16],
+"WXMP__Common_8hpp.html#a58d0e4857f5a40d6a82eb480832d068e":[3,0,0,0,0,0,2],
+"WXMP__Common_8hpp.html#a5dfbc13f3139cae2812a1cf0c979999c":[3,0,0,0,0,0,3],
+"WXMP__Common_8hpp.html#a657cdd79947744b4c123bf9df9ac1b60":[3,0,0,0,0,0,25],
+"WXMP__Common_8hpp.html#a683fa38b9541eb26f91304087acad44d":[3,0,0,0,0,0,17],
+"WXMP__Common_8hpp.html#a75478cb5e5f458cd440d87c650dd3673":[3,0,0,0,0,0,7],
+"WXMP__Common_8hpp.html#a803c218d593737c645bbea4bf80dd815":[3,0,0,0,0,0,22],
+"WXMP__Common_8hpp.html#a92bfba5db10b3ea02b3ad736c8e11dc7":[3,0,0,0,0,0,1],
+"WXMP__Common_8hpp.html#a9874672542b6adee728f1176b565c141":[3,0,0,0,0,0,21],
+"WXMP__Common_8hpp.html#aa5157be6b847c59d15e166d6fc7d392d":[3,0,0,0,0,0,15],
+"WXMP__Common_8hpp.html#aab5f92f08cddd67ae7c8bab22b4f0dd7":[3,0,0,0,0,0,23],
+"WXMP__Common_8hpp.html#ab0186f6247d7b051f1ab263c461c14c0":[3,0,0,0,0,0,14],
+"WXMP__Common_8hpp.html#ab7a2f115c6388749a3e20928978d3874":[3,0,0,0,0,0,13],
+"WXMP__Common_8hpp.html#acfcb026582fc145095d3667241515353":[3,0,0,0,0,0,20],
+"WXMP__Common_8hpp.html#ade570a6b1a2c59e509c71b5e82df6f80":[3,0,0,0,0,0,18],
+"WXMP__Common_8hpp.html#ae20f3a4940eeddcf29a174c86be91788":[3,0,0,0,0,0,8],
+"WXMP__Common_8hpp.html#ae22e640b3404ce206ad1678841bcd11f":[3,0,0,0,0,0,24],
+"WXMP__Common_8hpp_source.html":[3,0,0,0,0,0],
+"XMPCommonDefines_8h.html":[3,0,0,0,1,2],
+"XMPCommonDefines_8h.html#a070d4ea981e6080468e9a3cdbd82b458":[3,0,0,0,1,2,11],
+"XMPCommonDefines_8h.html#a0b1bbe96e1a757e66974c2f076afe4d2":[3,0,0,0,1,2,14],
+"XMPCommonDefines_8h.html#a1c85c2f558b495c3d41eabe692a96cf2":[3,0,0,0,1,2,13],
+"XMPCommonDefines_8h.html#a1fd06a6a11b9c1c9d7998e8ef08d0c77":[3,0,0,0,1,2,7],
+"XMPCommonDefines_8h.html#a3ad5c0d7b537a67fc621dd30670397df":[3,0,0,0,1,2,9],
+"XMPCommonDefines_8h.html#a3e31c8b25cbf95c42b8e439071bdf865":[3,0,0,0,1,2,16],
+"XMPCommonDefines_8h.html#a3eaf39cde126acb079462286763ca44a":[3,0,0,0,1,2,20],
+"XMPCommonDefines_8h.html#a4dd82e6c008275864ab4059ce2e2e4e9":[3,0,0,0,1,2,6],
+"XMPCommonDefines_8h.html#a4ec864140f86759daee62dd337b61501":[3,0,0,0,1,2,3],
+"XMPCommonDefines_8h.html#a509d67aa4eb5b6a31db63f448d2a2343":[3,0,0,0,1,2,23],
+"XMPCommonDefines_8h.html#a5686c8f09ffafbdc3b46817eea895bc2":[3,0,0,0,1,2,2],
+"XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2":[3,0,0,0,1,2,0],
+"XMPCommonDefines_8h.html#a89e9297f497c2b3f1179788c31d24da4":[3,0,0,0,1,2,8],
+"XMPCommonDefines_8h.html#a8ec7e2a77ea452c3d46bb7dbbc722574":[3,0,0,0,1,2,22],
+"XMPCommonDefines_8h.html#a944a0a31a728943ffb6f1bf62712649a":[3,0,0,0,1,2,4],
+"XMPCommonDefines_8h.html#a97f984a3b999db35dd915b17322c8c7f":[3,0,0,0,1,2,21],
+"XMPCommonDefines_8h.html#aae4268f82f1d5d97bb483fef36f252ee":[3,0,0,0,1,2,5],
+"XMPCommonDefines_8h.html#ab7bbf3293de0d0539f3cbb65b7680252":[3,0,0,0,1,2,19],
+"XMPCommonDefines_8h.html#ad4c8ddc8db2d27cbcc0d88688fabdd93":[3,0,0,0,1,2,18],
+"XMPCommonDefines_8h.html#ae1dbf35f9d0d606368d149565ca04006":[3,0,0,0,1,2,10],
+"XMPCommonDefines_8h.html#aea1d692da07b844d1f642b47ea6a91bd":[3,0,0,0,1,2,15],
+"XMPCommonDefines_8h.html#aee4f68e01de51c2cf1c1044ecafebc25":[3,0,0,0,1,2,12],
+"XMPCommonDefines_8h.html#af73d2c15fb6abf10bf2b82be984d9be0":[3,0,0,0,1,2,17],
+"XMPCommonDefines_8h.html#afc1bfa88991003b305ab5023b483d3f9":[3,0,0,0,1,2,24],
+"XMPCommonDefines_8h.html#affa2ae123fa7bf387394d5ba499b1441":[3,0,0,0,1,2,1],
+"XMPCommonDefines_8h_source.html":[3,0,0,0,1,2],
+"XMPCommonErrorCodes_8h.html":[3,0,0,0,1,3],
+"XMPCommonErrorCodes_8h.html#a87fa911f1ea5a79801b7fe3530637c42":[3,0,0,0,1,3,0],
+"XMPCommonErrorCodes_8h.html#a87fa911f1ea5a79801b7fe3530637c42a2da955fac9fd8e3e44105ee827c8bca8":[3,0,0,0,1,3,0,6],
+"XMPCommonErrorCodes_8h.html#a87fa911f1ea5a79801b7fe3530637c42a318281c6e6734794b732505f77ed7e1e":[3,0,0,0,1,3,0,2],
+"XMPCommonErrorCodes_8h.html#a87fa911f1ea5a79801b7fe3530637c42a48a521a6e08fd24bef691efb926189f4":[3,0,0,0,1,3,0,0],
+"XMPCommonErrorCodes_8h.html#a87fa911f1ea5a79801b7fe3530637c42a4a285133844f12c9db30cac96272ca99":[3,0,0,0,1,3,0,5],
+"XMPCommonErrorCodes_8h.html#a87fa911f1ea5a79801b7fe3530637c42a78a9ef459e114b9e66dbd431d47e367f":[3,0,0,0,1,3,0,1],
+"XMPCommonErrorCodes_8h.html#a87fa911f1ea5a79801b7fe3530637c42a9459b3f1895defa4a14e42f0d7c44c64":[3,0,0,0,1,3,0,3],
+"XMPCommonErrorCodes_8h.html#a87fa911f1ea5a79801b7fe3530637c42ad00affae57206343bb1a2cbfd64a7727":[3,0,0,0,1,3,0,4],
+"XMPCommonErrorCodes_8h.html#a8f3cda4a2111f1fccbcc182ca1cf5b14":[3,0,0,0,1,3,1],
+"XMPCommonErrorCodes_8h.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a1ec371ab7db9ac473a04755491b4d996":[3,0,0,0,1,3,1,14],
+"XMPCommonErrorCodes_8h.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a34f838480c145031638141ea204b9436":[3,0,0,0,1,3,1,7],
+"XMPCommonErrorCodes_8h.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a38faaba6657c0fab6d51f2e7807ab560":[3,0,0,0,1,3,1,15],
+"XMPCommonErrorCodes_8h.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a4d0d8c80b3932d6160a3117979cf59c7":[3,0,0,0,1,3,1,5],
+"XMPCommonErrorCodes_8h.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a84f703a7e6aed295b04266ba33e382db":[3,0,0,0,1,3,1,12],
+"XMPCommonErrorCodes_8h.html#a8f3cda4a2111f1fccbcc182ca1cf5b14a99ed4bfb1b57eea7e5ed9cdd6f63bb88":[3,0,0,0,1,3,1,4],
+"XMPCommonErrorCodes_8h.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aa089e0cea5a0b9fb19ed39c8d53ea624":[3,0,0,0,1,3,1,8],
+"XMPCommonErrorCodes_8h.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aa3bc0d5f5b5bae142630473abaee9f1f":[3,0,0,0,1,3,1,16],
+"XMPCommonErrorCodes_8h.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aa85fc48596da99b5ac6ec775c5e9d4f1":[3,0,0,0,1,3,1,6],
+"XMPCommonErrorCodes_8h.html#a8f3cda4a2111f1fccbcc182ca1cf5b14aabc494bfa6cc5c42f4d6203a419943fe":[3,0,0,0,1,3,1,10],
+"XMPCommonErrorCodes_8h.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ab6be1e47808269e89bff9854599179f0":[3,0,0,0,1,3,1,13],
+"XMPCommonErrorCodes_8h.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac4d59c9d462932453e1e5b96efce4beb":[3,0,0,0,1,3,1,2],
+"XMPCommonErrorCodes_8h.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac7ad8bab8d1d8f890d26a13076730473":[3,0,0,0,1,3,1,3],
+"XMPCommonErrorCodes_8h.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac8114fd7fafcae7a7d13793cf32f84e4":[3,0,0,0,1,3,1,1],
+"XMPCommonErrorCodes_8h.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ac9bbc6373eb1432da67162e2d3d8ba00":[3,0,0,0,1,3,1,0],
+"XMPCommonErrorCodes_8h.html#a8f3cda4a2111f1fccbcc182ca1cf5b14ae5d6719cf38299f4f4bf170467c5e977":[3,0,0,0,1,3,1,9],
+"XMPCommonErrorCodes_8h.html#a8f3cda4a2111f1fccbcc182ca1cf5b14af605e8ceabdf52ced8bf1a2961041719":[3,0,0,0,1,3,1,11],
+"XMPCommonErrorCodes_8h.html#aba59dd1cfea0b1759617fc53108d92af":[3,0,0,0,1,3,2],
+"XMPCommonErrorCodes_8h.html#aba59dd1cfea0b1759617fc53108d92afa2bbd2fba1abe18a0abbeeb04276fa5d7":[3,0,0,0,1,3,2,1],
+"XMPCommonErrorCodes_8h.html#aba59dd1cfea0b1759617fc53108d92afa2c2fba02472378e6f5621fa89f662754":[3,0,0,0,1,3,2,0],
+"XMPCommonErrorCodes_8h.html#aba59dd1cfea0b1759617fc53108d92afa6c3458ee055e89d620fe6f9941658564":[3,0,0,0,1,3,2,2],
+"XMPCommonErrorCodes_8h_source.html":[3,0,0,0,1,3],
+"XMPCommonFwdDeclarations_8h.html":[3,0,0,0,1,4],
+"XMPCommonFwdDeclarations_8h.html#a0430b250dd00621dcb9f32a3acb87b7f":[3,0,0,0,1,4,40],
+"XMPCommonFwdDeclarations_8h.html#a0863cf1c24764306839671985373b93f":[3,0,0,0,1,4,35],
+"XMPCommonFwdDeclarations_8h.html#a0e0c89c232b777fb332e0ddc10b65fc2":[3,0,0,0,1,4,13],
+"XMPCommonFwdDeclarations_8h.html#a15919ce22d7dc4def5a590f0dbb882ca":[3,0,0,0,1,4,16],
+"XMPCommonFwdDeclarations_8h.html#a169532f774f2b1f3d8501e896d6f1957":[3,0,0,0,1,4,6],
+"XMPCommonFwdDeclarations_8h.html#a181114a44f34efda2d8b4cb98446de86":[3,0,0,0,1,4,47],
+"XMPCommonFwdDeclarations_8h.html#a183fc5e814bdad0ddf9946ddc35c307a":[3,0,0,0,1,4,45],
+"XMPCommonFwdDeclarations_8h.html#a19692335f9547f4bc07d0ff727f14605":[3,0,0,0,1,4,25],
+"XMPCommonFwdDeclarations_8h.html#a20fcfcaa614eba9a9fcdf2353b82fdb7":[3,0,0,0,1,4,28],
+"XMPCommonFwdDeclarations_8h.html#a25f44f5d5e5c651d20124037a7c3b5c3":[3,0,0,0,1,4,5],
+"XMPCommonFwdDeclarations_8h.html#a272e32106a7573db514736bfb68a1673":[3,0,0,0,1,4,19],
+"XMPCommonFwdDeclarations_8h.html#a27ba1868ebc552bef10fe156bd4e340b":[3,0,0,0,1,4,39],
+"XMPCommonFwdDeclarations_8h.html#a28d3e703084f75a411ece4bb7b22fdd4":[3,0,0,0,1,4,57],
+"XMPCommonFwdDeclarations_8h.html#a2a6831c5d17f5c9990c01268f67b7bb2":[3,0,0,0,1,4,11],
+"XMPCommonFwdDeclarations_8h.html#a2becb4c0d21c71e1dcecdcaae0e92bd7":[3,0,0,0,1,4,22],
+"XMPCommonFwdDeclarations_8h.html#a3349137d458c48d779670626d7b6ba1a":[3,0,0,0,1,4,64],
+"XMPCommonFwdDeclarations_8h.html#a34ccf48e077c7308540d98149a4a8b2b":[3,0,0,0,1,4,24],
+"XMPCommonFwdDeclarations_8h.html#a376c8e3ade71b2836888a07746dd3882":[3,0,0,0,1,4,58],
+"XMPCommonFwdDeclarations_8h.html#a394d772cfe78f1dbeba6059e7a3c65d6":[3,0,0,0,1,4,10],
+"XMPCommonFwdDeclarations_8h.html#a39556e80a6bda05757b7f2766ddc2ba1":[3,0,0,0,1,4,12],
+"XMPCommonFwdDeclarations_8h.html#a3f0de5ba5753a56896f2941927b23560":[3,0,0,0,1,4,43],
+"XMPCommonFwdDeclarations_8h.html#a41216c3793d99220ce00076ad18f9b44":[3,0,0,0,1,4,63],
+"XMPCommonFwdDeclarations_8h.html#a42a89fb94134c8eaed66765f2975b3f9":[3,0,0,0,1,4,18],
+"XMPCommonFwdDeclarations_8h.html#a4ad7bda9e1289b0bb93510402b6e86f9":[3,0,0,0,1,4,32],
+"XMPCommonFwdDeclarations_8h.html#a4d5b76921b44568978986a81d2c19336":[3,0,0,0,1,4,52],
+"XMPCommonFwdDeclarations_8h.html#a4e907810e5d5937b974343d279e0181d":[3,0,0,0,1,4,30],
+"XMPCommonFwdDeclarations_8h.html#a4ebcc3c8cb04d7593dc3250aa720f0d4":[3,0,0,0,1,4,50],
+"XMPCommonFwdDeclarations_8h.html#a4eeee081576f932942082744eb05456c":[3,0,0,0,1,4,44],
+"XMPCommonFwdDeclarations_8h.html#a55f2498472648e9b5647f039202820b2":[3,0,0,0,1,4,60],
+"XMPCommonFwdDeclarations_8h.html#a5d655944f5ebfaff4c6f61d227257035":[3,0,0,0,1,4,62],
+"XMPCommonFwdDeclarations_8h.html#a5f4d698bf8beb5f6604b61aa1362d2c6":[3,0,0,0,1,4,2],
+"XMPCommonFwdDeclarations_8h.html#a5f4ff8126658f07efbc881778bfea430":[3,0,0,0,1,4,55],
+"XMPCommonFwdDeclarations_8h.html#a605dcb5281a71a01673c81e6508f932f":[3,0,0,0,1,4,33],
+"XMPCommonFwdDeclarations_8h.html#a66f57b67d8be6cbf836ad084a3d27d76":[3,0,0,0,1,4,27],
+"XMPCommonFwdDeclarations_8h.html#a692c91c0b558cbc476e43e7f0a9112e0":[3,0,0,0,1,4,3],
+"XMPCommonFwdDeclarations_8h.html#a6ddf5efa8f9b686e5d7fef41d6b10096":[3,0,0,0,1,4,8],
+"XMPCommonFwdDeclarations_8h.html#a79edf1f9139609bf6ed70b24cc99a2e0":[3,0,0,0,1,4,9],
+"XMPCommonFwdDeclarations_8h.html#a8d7232279921e3ccaa69fe314052415b":[3,0,0,0,1,4,20],
+"XMPCommonFwdDeclarations_8h.html#a91aaab1f1d7030b26df65258bd131a63":[3,0,0,0,1,4,46],
+"XMPCommonFwdDeclarations_8h.html#a93bf79ca806273dc229d940504654caa":[3,0,0,0,1,4,49],
+"XMPCommonFwdDeclarations_8h.html#a9423cafa21356df5d02adf7a94f4e4b0":[3,0,0,0,1,4,53],
+"XMPCommonFwdDeclarations_8h.html#a9981f3ca088023224e80dbad05090f3c":[3,0,0,0,1,4,31],
+"XMPCommonFwdDeclarations_8h.html#a9befc7ddfe5977c8176eed763d9ce69e":[3,0,0,0,1,4,26],
+"XMPCommonFwdDeclarations_8h.html#aa4baade1a8eb0dbb544860e0c89362f8":[3,0,0,0,1,4,15],
+"XMPCommonFwdDeclarations_8h.html#aa9b2c45fd472c6e0e322a94c87e36e23":[3,0,0,0,1,4,23],
+"XMPCommonFwdDeclarations_8h.html#aae5dbe164f71188aa24c87fa6306539a":[3,0,0,0,1,4,0],
+"XMPCommonFwdDeclarations_8h.html#ab4410cb115c4e0fa0800ab6ebf21abf7":[3,0,0,0,1,4,56],
+"XMPCommonFwdDeclarations_8h.html#ab59e650373a5efadfbfd2486313258a6":[3,0,0,0,1,4,41],
+"XMPCommonFwdDeclarations_8h.html#ab6a71f81b4e3c8e5d2d0c90f82fbee08":[3,0,0,0,1,4,1],
+"XMPCommonFwdDeclarations_8h.html#abe53a5a98ec0d2d6ce76d1d820794177":[3,0,0,0,1,4,42],
+"XMPCommonFwdDeclarations_8h.html#ac0db32de8e6a3688ad0dfc36c2757fb4":[3,0,0,0,1,4,29],
+"XMPCommonFwdDeclarations_8h.html#ac82ab59bdaecb219834ac2ff81573414":[3,0,0,0,1,4,7],
+"XMPCommonFwdDeclarations_8h.html#ac9c07c42e647a17838c9314b8d2823d9":[3,0,0,0,1,4,38],
+"XMPCommonFwdDeclarations_8h.html#ac9d7760a1805b1e28828511a2c8c5588":[3,0,0,0,1,4,54],
+"XMPCommonFwdDeclarations_8h.html#ad4c125f465214507005d84a360fa83e5":[3,0,0,0,1,4,65],
+"XMPCommonFwdDeclarations_8h.html#ada4b051c58f05ef398453930451bc13d":[3,0,0,0,1,4,37],
+"XMPCommonFwdDeclarations_8h.html#adb05c7ceec43360b84aee536612151f9":[3,0,0,0,1,4,51],
+"XMPCommonFwdDeclarations_8h.html#adb1552a01da782d3f1c5ff00e49f48f8":[3,0,0,0,1,4,36],
+"XMPCommonFwdDeclarations_8h.html#ae2d21f9711d5fdc36354b14a401ec53b":[3,0,0,0,1,4,59],
+"XMPCommonFwdDeclarations_8h.html#ae3cc983230819089dc742273902228c5":[3,0,0,0,1,4,14],
+"XMPCommonFwdDeclarations_8h.html#ae79591aae25236208281cd3e48a2483d":[3,0,0,0,1,4,4],
+"XMPCommonFwdDeclarations_8h.html#aeea9f5dbdf44fd5382b0ca50dda8f2cf":[3,0,0,0,1,4,48],
+"XMPCommonFwdDeclarations_8h.html#af5a7d4d78400043e3e49dfa6a2725abb":[3,0,0,0,1,4,17],
+"XMPCommonFwdDeclarations_8h.html#afee5efdc17ad732ac218b39bb305ed63":[3,0,0,0,1,4,61],
+"XMPCommonFwdDeclarations_8h.html#aff75b5c835a8eb072072be6b404aa0d5":[3,0,0,0,1,4,34],
+"XMPCommonFwdDeclarations_8h.html#affd72b6c7abbc84fdef10b5a607cd432":[3,0,0,0,1,4,21],
+"XMPCommonFwdDeclarations_8h_source.html":[3,0,0,0,1,4],
+"XMPCommonLatestInterfaceVersions_8h.html":[3,0,0,0,1,5],
+"XMPCommonLatestInterfaceVersions_8h.html#a21492cbe0c77bbbad967232b377855c1":[3,0,0,0,1,5,1],
+"XMPCommonLatestInterfaceVersions_8h.html#a4d8312c0c69be3f57e5f14b7b2d1224d":[3,0,0,0,1,5,2],
+"XMPCommonLatestInterfaceVersions_8h.html#a5c5712b51cebbbdbf40cc691b4123209":[3,0,0,0,1,5,4],
+"XMPCommonLatestInterfaceVersions_8h.html#a6844f2fb727f99e352e61045154eba8b":[3,0,0,0,1,5,5],
+"XMPCommonLatestInterfaceVersions_8h.html#a829031e337c57225307b0be2d229a8b4":[3,0,0,0,1,5,0],
+"XMPCommonLatestInterfaceVersions_8h.html#a884c112243a29a7b0388b1954efc317b":[3,0,0,0,1,5,6],
+"XMPCommonLatestInterfaceVersions_8h.html#ad84704e1c2910ca9d71d41183c3a378c":[3,0,0,0,1,5,3],
+"XMPCommonLatestInterfaceVersions_8h_source.html":[3,0,0,0,1,5],
+"XMPCoreDefines_8h.html":[3,0,0,0,2,1],
+"XMPCoreDefines_8h.html#a6919ea0ee288c12c640a170d34d35cbe":[3,0,0,0,2,1,0],
+"XMPCoreDefines_8h_source.html":[3,0,0,0,2,1],
+"XMPCoreErrorCodes_8h.html":[3,0,0,0,2,2],
+"XMPCoreErrorCodes_8h.html#aacd1fd7f96affcf9707f45c272f08a00":[3,0,0,0,2,2,0],
+"XMPCoreErrorCodes_8h.html#aacd1fd7f96affcf9707f45c272f08a00a161dfd9dfc01ba8d6c4e17732f6c0acb":[3,0,0,0,2,2,0,3],
+"XMPCoreErrorCodes_8h.html#aacd1fd7f96affcf9707f45c272f08a00a24f924ad842132ebd85573d0f93bd7f2":[3,0,0,0,2,2,0,10],
+"XMPCoreErrorCodes_8h.html#aacd1fd7f96affcf9707f45c272f08a00a2c80efa41e7821f6226aa59f28dfb579":[3,0,0,0,2,2,0,0],
+"XMPCoreErrorCodes_8h.html#aacd1fd7f96affcf9707f45c272f08a00a301e1376a4475452904ef20167a254a3":[3,0,0,0,2,2,0,15],
+"XMPCoreErrorCodes_8h.html#aacd1fd7f96affcf9707f45c272f08a00a3053414fb4821785a9dc653ec9ac3c64":[3,0,0,0,2,2,0,8],
+"XMPCoreErrorCodes_8h.html#aacd1fd7f96affcf9707f45c272f08a00a3b02c3806196f643a69970dd75b25464":[3,0,0,0,2,2,0,6],
+"XMPCoreErrorCodes_8h.html#aacd1fd7f96affcf9707f45c272f08a00a5969c9392bfb21fc391de418925e8b4f":[3,0,0,0,2,2,0,9],
+"XMPCoreErrorCodes_8h.html#aacd1fd7f96affcf9707f45c272f08a00a7643a6753e328945c9f2580bed3366b1":[3,0,0,0,2,2,0,7],
+"XMPCoreErrorCodes_8h.html#aacd1fd7f96affcf9707f45c272f08a00a8214373306d98cbb58dd480b825d490f":[3,0,0,0,2,2,0,12],
+"XMPCoreErrorCodes_8h.html#aacd1fd7f96affcf9707f45c272f08a00a92ffb54182a7cf24b2f09851a6e5fa4a":[3,0,0,0,2,2,0,4],
+"XMPCoreErrorCodes_8h.html#aacd1fd7f96affcf9707f45c272f08a00a9b4b77cfab51a51107011966c97e40e1":[3,0,0,0,2,2,0,11],
+"XMPCoreErrorCodes_8h.html#aacd1fd7f96affcf9707f45c272f08a00ac1c31716f2bb30971e3b1d33b9993234":[3,0,0,0,2,2,0,14],
+"XMPCoreErrorCodes_8h.html#aacd1fd7f96affcf9707f45c272f08a00ac32e4160006f15e60fd7024cf6f7ac97":[3,0,0,0,2,2,0,1],
+"XMPCoreErrorCodes_8h.html#aacd1fd7f96affcf9707f45c272f08a00ae7e65aa4749b12616a43316687d6a355":[3,0,0,0,2,2,0,2],
+"XMPCoreErrorCodes_8h.html#aacd1fd7f96affcf9707f45c272f08a00ae89776605ae99914cfe1b32cb4674c26":[3,0,0,0,2,2,0,5],
+"XMPCoreErrorCodes_8h.html#aacd1fd7f96affcf9707f45c272f08a00af8aa55dc3ffd9c4d4612463ed430b262":[3,0,0,0,2,2,0,13],
+"XMPCoreErrorCodes_8h.html#ad4e9bcfc5d25760a93189c0ba2962c3e":[3,0,0,0,2,2,2],
+"XMPCoreErrorCodes_8h.html#ad4e9bcfc5d25760a93189c0ba2962c3ea0f3c48b132df0de45927cf636944ccee":[3,0,0,0,2,2,2,2]
+};
diff --git a/docs/API/navtreeindex2.js b/docs/API/navtreeindex2.js
new file mode 100755
index 0000000..93d5721
--- /dev/null
+++ b/docs/API/navtreeindex2.js
@@ -0,0 +1,253 @@
+var NAVTREEINDEX2 =
+{
+"XMPCoreErrorCodes_8h.html#ad4e9bcfc5d25760a93189c0ba2962c3ea199673856ea7c62993fb5850817b9181":[3,0,0,0,2,2,2,1],
+"XMPCoreErrorCodes_8h.html#ad4e9bcfc5d25760a93189c0ba2962c3ea2e8b7434f32a1f65875dd7ac184af458":[3,0,0,0,2,2,2,3],
+"XMPCoreErrorCodes_8h.html#ad4e9bcfc5d25760a93189c0ba2962c3ea852818fcc062b51ded30ae5cc6943ef8":[3,0,0,0,2,2,2,0],
+"XMPCoreErrorCodes_8h.html#afab54256094fbdd7a9732e4582675341":[3,0,0,0,2,2,1],
+"XMPCoreErrorCodes_8h.html#afab54256094fbdd7a9732e4582675341a05b1bde4783b56530499a6015d7704e9":[3,0,0,0,2,2,1,2],
+"XMPCoreErrorCodes_8h.html#afab54256094fbdd7a9732e4582675341a25971d0de364f541b042f0f21df412eb":[3,0,0,0,2,2,1,3],
+"XMPCoreErrorCodes_8h.html#afab54256094fbdd7a9732e4582675341a2f23307e996411a65ac6e206f7557264":[3,0,0,0,2,2,1,6],
+"XMPCoreErrorCodes_8h.html#afab54256094fbdd7a9732e4582675341a7c8e86e45ec62e9748301065944b38ac":[3,0,0,0,2,2,1,5],
+"XMPCoreErrorCodes_8h.html#afab54256094fbdd7a9732e4582675341aa537d1ba3f2a47c9feb5b183338314a9":[3,0,0,0,2,2,1,1],
+"XMPCoreErrorCodes_8h.html#afab54256094fbdd7a9732e4582675341aca80ed9623ff6873b2057b4f9a4f82ac":[3,0,0,0,2,2,1,0],
+"XMPCoreErrorCodes_8h.html#afab54256094fbdd7a9732e4582675341ae5fc4151a61d73cf47d5ed861dc4ec02":[3,0,0,0,2,2,1,7],
+"XMPCoreErrorCodes_8h.html#afab54256094fbdd7a9732e4582675341aed1376b733f98e4cb670d9beba0d6339":[3,0,0,0,2,2,1,4],
+"XMPCoreErrorCodes_8h_source.html":[3,0,0,0,2,2],
+"XMPCoreFwdDeclarations_8h.html":[3,0,0,0,2,3],
+"XMPCoreFwdDeclarations_8h.html#a0476368bde6f3c6e43e3659ae092f6e1":[3,0,0,0,2,3,80],
+"XMPCoreFwdDeclarations_8h.html#a0665746b848a075cc4aaf72f553cea95":[3,0,0,0,2,3,100],
+"XMPCoreFwdDeclarations_8h.html#a099de3a79749ee161daf59313861702e":[3,0,0,0,2,3,178],
+"XMPCoreFwdDeclarations_8h.html#a09decb910c24c7929d609f1e29ca16b1":[3,0,0,0,2,3,52],
+"XMPCoreFwdDeclarations_8h.html#a0c1658ecfb260ac950498f17edd5ebd0":[3,0,0,0,2,3,95],
+"XMPCoreFwdDeclarations_8h.html#a0de0f06ece9bff0c77df3e519af9f506":[3,0,0,0,2,3,64],
+"XMPCoreFwdDeclarations_8h.html#a0f163418e9969110fdf767b0092a08cd":[3,0,0,0,2,3,68],
+"XMPCoreFwdDeclarations_8h.html#a123c6e847d41233c9e4ba6c64a650c7f":[3,0,0,0,2,3,135],
+"XMPCoreFwdDeclarations_8h.html#a14569c99ffc10ff405f51220851fbe36":[3,0,0,0,2,3,114],
+"XMPCoreFwdDeclarations_8h.html#a169bb4bbf2a32d4201625eca17bde615":[3,0,0,0,2,3,175],
+"XMPCoreFwdDeclarations_8h.html#a16e22df4b5facaffff284ab0104404a9":[3,0,0,0,2,3,170],
+"XMPCoreFwdDeclarations_8h.html#a197acc21ecf883449824a1e87a99586a":[3,0,0,0,2,3,136],
+"XMPCoreFwdDeclarations_8h.html#a1bbf04f53ef3da6e5e12f535679bb177":[3,0,0,0,2,3,94],
+"XMPCoreFwdDeclarations_8h.html#a1d1b0939f67456659a36e11ce594690d":[3,0,0,0,2,3,162],
+"XMPCoreFwdDeclarations_8h.html#a1da997b938e393546c72aca8811b5300":[3,0,0,0,2,3,156],
+"XMPCoreFwdDeclarations_8h.html#a1de6f60a0aefc1d42bb656731ff33a9b":[3,0,0,0,2,3,41],
+"XMPCoreFwdDeclarations_8h.html#a1e81ce748e90e850d0a48b0b5943fce2":[3,0,0,0,2,3,125],
+"XMPCoreFwdDeclarations_8h.html#a1fb39caa1c8eeed351b0fca6eca60577":[3,0,0,0,2,3,166],
+"XMPCoreFwdDeclarations_8h.html#a20562f7f885eacd89465270be790c31f":[3,0,0,0,2,3,176],
+"XMPCoreFwdDeclarations_8h.html#a207afe21d3d4fcb8cb1170ba646003f4":[3,0,0,0,2,3,158],
+"XMPCoreFwdDeclarations_8h.html#a22f9e572045a61aa3cfc629a0d877d72":[3,0,0,0,2,3,126],
+"XMPCoreFwdDeclarations_8h.html#a24e8e82d63d879d77408ce5c7e30c609":[3,0,0,0,2,3,133],
+"XMPCoreFwdDeclarations_8h.html#a257c4389ad7bddfa28bfdf34d92bd28b":[3,0,0,0,2,3,157],
+"XMPCoreFwdDeclarations_8h.html#a258ec247968bc8e101a087b2f914c95b":[3,0,0,0,2,3,177],
+"XMPCoreFwdDeclarations_8h.html#a277f8ceb2e7074edb4ce6c3bc906a71c":[3,0,0,0,2,3,56],
+"XMPCoreFwdDeclarations_8h.html#a294ebc2cc2287c14558850dcd8c88f1e":[3,0,0,0,2,3,78],
+"XMPCoreFwdDeclarations_8h.html#a2987cd583f3105668b529ad5fe385481":[3,0,0,0,2,3,45],
+"XMPCoreFwdDeclarations_8h.html#a2ab7b53419863c354957c09ce4bbb44c":[3,0,0,0,2,3,8],
+"XMPCoreFwdDeclarations_8h.html#a2bb4ccadea260bcce39d23e45f5d592f":[3,0,0,0,2,3,27],
+"XMPCoreFwdDeclarations_8h.html#a2ccf603c61b8576fb4a0de760e27f6ba":[3,0,0,0,2,3,33],
+"XMPCoreFwdDeclarations_8h.html#a2dfed76bf986f6fad861aa2323b28caf":[3,0,0,0,2,3,75],
+"XMPCoreFwdDeclarations_8h.html#a2fea5ada7406b2712ed3bfeecf84c2e2":[3,0,0,0,2,3,163],
+"XMPCoreFwdDeclarations_8h.html#a30bb255921760813b83dfb94449051dd":[3,0,0,0,2,3,167],
+"XMPCoreFwdDeclarations_8h.html#a3600be9aa8da5d9fcfd522c76755866b":[3,0,0,0,2,3,9],
+"XMPCoreFwdDeclarations_8h.html#a3971bab010eb9c01783af14c58ccfe54":[3,0,0,0,2,3,35],
+"XMPCoreFwdDeclarations_8h.html#a3a6d0893476eb4ce3713ca88e5c80b4e":[3,0,0,0,2,3,40],
+"XMPCoreFwdDeclarations_8h.html#a3c5ae6e52bf994fc05ed79ca9c58aae0":[3,0,0,0,2,3,22],
+"XMPCoreFwdDeclarations_8h.html#a3c61d7ec18d24b058624ff83657ad886":[3,0,0,0,2,3,17],
+"XMPCoreFwdDeclarations_8h.html#a3dba425488e67755405e5e9b1476babc":[3,0,0,0,2,3,160],
+"XMPCoreFwdDeclarations_8h.html#a459a371e2e25b93998a16921e3536bc7":[3,0,0,0,2,3,10],
+"XMPCoreFwdDeclarations_8h.html#a47468e9aeeb0e9d2541bccfbbaf916f7":[3,0,0,0,2,3,69],
+"XMPCoreFwdDeclarations_8h.html#a4cb671d44948c7505c33431ec12f6c1f":[3,0,0,0,2,3,131],
+"XMPCoreFwdDeclarations_8h.html#a4cddd2e1fe643106d1c026481157bdc8":[3,0,0,0,2,3,51],
+"XMPCoreFwdDeclarations_8h.html#a4d4375869e320dc1596a9d62a4030b05":[3,0,0,0,2,3,118],
+"XMPCoreFwdDeclarations_8h.html#a4dad9e02be4a3efae9ea99e5f03ae11e":[3,0,0,0,2,3,91],
+"XMPCoreFwdDeclarations_8h.html#a4ea338a9eed923abf6aba47a27926a0f":[3,0,0,0,2,3,119],
+"XMPCoreFwdDeclarations_8h.html#a51c59c2b14cae80da8b1fa5dfa2f4732":[3,0,0,0,2,3,4],
+"XMPCoreFwdDeclarations_8h.html#a5386a735d9eb66d5859e4657dfeebb7c":[3,0,0,0,2,3,142],
+"XMPCoreFwdDeclarations_8h.html#a55c34a6f458c74682e542edd2a258686":[3,0,0,0,2,3,81],
+"XMPCoreFwdDeclarations_8h.html#a55e6a583f61b00819b7034f9dd2243f9":[3,0,0,0,2,3,32],
+"XMPCoreFwdDeclarations_8h.html#a587ba854add16d5201c974a3a0f7050c":[3,0,0,0,2,3,123],
+"XMPCoreFwdDeclarations_8h.html#a597eaeb0ed86794ea01f74a5be0f88ed":[3,0,0,0,2,3,127],
+"XMPCoreFwdDeclarations_8h.html#a5a11f058662f2f67819f52a97154076b":[3,0,0,0,2,3,111],
+"XMPCoreFwdDeclarations_8h.html#a5a920b0717c8a08d3c68ece64a8f815a":[3,0,0,0,2,3,26],
+"XMPCoreFwdDeclarations_8h.html#a5c9e417017018f36cdbfdbcaa8cd0585":[3,0,0,0,2,3,73],
+"XMPCoreFwdDeclarations_8h.html#a61344da48c839ebe8d613175563935bf":[3,0,0,0,2,3,18],
+"XMPCoreFwdDeclarations_8h.html#a625f7fd9cabaa743f95f3cbd876285d3":[3,0,0,0,2,3,11],
+"XMPCoreFwdDeclarations_8h.html#a634afe8da11f5cea93b0f07e8270da5f":[3,0,0,0,2,3,53],
+"XMPCoreFwdDeclarations_8h.html#a643dfc0500b39ea6d5a81c187fe0e9bc":[3,0,0,0,2,3,82],
+"XMPCoreFwdDeclarations_8h.html#a66384130267cdd648e0f677128635123":[3,0,0,0,2,3,155],
+"XMPCoreFwdDeclarations_8h.html#a663e9a570224c4361f5ab883e32cf460":[3,0,0,0,2,3,165],
+"XMPCoreFwdDeclarations_8h.html#a691bc74f235854166554f597f777bb5f":[3,0,0,0,2,3,29],
+"XMPCoreFwdDeclarations_8h.html#a6ae7c996eea34342b41719bcc4bf766a":[3,0,0,0,2,3,59],
+"XMPCoreFwdDeclarations_8h.html#a6b414731e356594947b08382866c9fcf":[3,0,0,0,2,3,92],
+"XMPCoreFwdDeclarations_8h.html#a6b5fc097880814213414c58da877fea5":[3,0,0,0,2,3,38],
+"XMPCoreFwdDeclarations_8h.html#a6bdb87029a97b11b3b8ce4d8eb84e7b7":[3,0,0,0,2,3,15],
+"XMPCoreFwdDeclarations_8h.html#a6d787e316880e838d2a03f641a520a5b":[3,0,0,0,2,3,168],
+"XMPCoreFwdDeclarations_8h.html#a6e8a84e7b4b342b98bc1af7297c30250":[3,0,0,0,2,3,105],
+"XMPCoreFwdDeclarations_8h.html#a6efe4728a027ee77597fe1a05a6bc30c":[3,0,0,0,2,3,122],
+"XMPCoreFwdDeclarations_8h.html#a70359e8aaa387b24879f1510ac1c4725":[3,0,0,0,2,3,97],
+"XMPCoreFwdDeclarations_8h.html#a71d91db5d9f5b30fa16b5790948f11cc":[3,0,0,0,2,3,36],
+"XMPCoreFwdDeclarations_8h.html#a71dcb1468c552abdd9fb1666cadc6600":[3,0,0,0,2,3,106],
+"XMPCoreFwdDeclarations_8h.html#a737ec082bb4e7f817b45e073337c0893":[3,0,0,0,2,3,137],
+"XMPCoreFwdDeclarations_8h.html#a748a32416e42b563251d682d49535fb8":[3,0,0,0,2,3,30],
+"XMPCoreFwdDeclarations_8h.html#a761f1236009e028ec7c95d4e3fa59b71":[3,0,0,0,2,3,39],
+"XMPCoreFwdDeclarations_8h.html#a771229361d508f6fc0d427803543d38b":[3,0,0,0,2,3,43],
+"XMPCoreFwdDeclarations_8h.html#a77c425a2d9deb50bc0ae4d71232dd98a":[3,0,0,0,2,3,5],
+"XMPCoreFwdDeclarations_8h.html#a786137be71601c8a876f6798ba798eea":[3,0,0,0,2,3,25],
+"XMPCoreFwdDeclarations_8h.html#a7ab22fbbd637098e7e0db48036864228":[3,0,0,0,2,3,103],
+"XMPCoreFwdDeclarations_8h.html#a7b83ccf46420d268a2cbce051f61a413":[3,0,0,0,2,3,14],
+"XMPCoreFwdDeclarations_8h.html#a7b86a8447002d8c63c837cffda64dd2a":[3,0,0,0,2,3,112],
+"XMPCoreFwdDeclarations_8h.html#a7c13887bb991ed5707ebae28d26543b1":[3,0,0,0,2,3,98],
+"XMPCoreFwdDeclarations_8h.html#a7c98739d62fca879db910ac0fca82c3c":[3,0,0,0,2,3,120],
+"XMPCoreFwdDeclarations_8h.html#a7f1de39fd79aeac4402eba73cb1ffe82":[3,0,0,0,2,3,139],
+"XMPCoreFwdDeclarations_8h.html#a812c55394dd0d590ae2ca9a4e0178671":[3,0,0,0,2,3,159],
+"XMPCoreFwdDeclarations_8h.html#a822c7331a85db496adc520310ac6c144":[3,0,0,0,2,3,57],
+"XMPCoreFwdDeclarations_8h.html#a830414d5b50ee73daa2d85efb174921a":[3,0,0,0,2,3,54],
+"XMPCoreFwdDeclarations_8h.html#a85d314eae1eef235e7c698c5c84bdda1":[3,0,0,0,2,3,67],
+"XMPCoreFwdDeclarations_8h.html#a865ec7a2af5304ec42d443da038ae5b7":[3,0,0,0,2,3,164],
+"XMPCoreFwdDeclarations_8h.html#a871b93cc85748a5d49fe9774d3305203":[3,0,0,0,2,3,24],
+"XMPCoreFwdDeclarations_8h.html#a885f02b2d6de4b5403445eb74e5e2ce6":[3,0,0,0,2,3,121],
+"XMPCoreFwdDeclarations_8h.html#a886c1974205be855cea961bfacc60604":[3,0,0,0,2,3,21],
+"XMPCoreFwdDeclarations_8h.html#a88df781b3af9dc7dfe7cb967b6e9b440":[3,0,0,0,2,3,79],
+"XMPCoreFwdDeclarations_8h.html#a8a912843a6b3779781ed27cde7e330d6":[3,0,0,0,2,3,108],
+"XMPCoreFwdDeclarations_8h.html#a8b003da6674d32c5c628f1d0e1fa45aa":[3,0,0,0,2,3,89],
+"XMPCoreFwdDeclarations_8h.html#a8c2801e50baa3f7979aa4a31225bc25d":[3,0,0,0,2,3,61],
+"XMPCoreFwdDeclarations_8h.html#a8ed683c00df5d7ccdb8428cfc072ca90":[3,0,0,0,2,3,16],
+"XMPCoreFwdDeclarations_8h.html#a901745dcadcfc4387450dd28aaa2d490":[3,0,0,0,2,3,74],
+"XMPCoreFwdDeclarations_8h.html#a91f2a2df5097022662328e102a56a4ea":[3,0,0,0,2,3,0],
+"XMPCoreFwdDeclarations_8h.html#a9259d01efe1d26b66d5f60cf79f81296":[3,0,0,0,2,3,42],
+"XMPCoreFwdDeclarations_8h.html#a957c57fcbb47c704fc5c31cf36dcbde7":[3,0,0,0,2,3,146],
+"XMPCoreFwdDeclarations_8h.html#a9807c050f5244e2cf017e5f247d22473":[3,0,0,0,2,3,76],
+"XMPCoreFwdDeclarations_8h.html#a98ce40154ef1c1d92f2077c8211f2a9c":[3,0,0,0,2,3,130],
+"XMPCoreFwdDeclarations_8h.html#a9b914b7e3bafee8e830a982810ed2191":[3,0,0,0,2,3,115],
+"XMPCoreFwdDeclarations_8h.html#a9d8ff928f0b3e120916451e57b1b05bb":[3,0,0,0,2,3,55],
+"XMPCoreFwdDeclarations_8h.html#a9dd27d79138a3d399e48343b626cd3a9":[3,0,0,0,2,3,72],
+"XMPCoreFwdDeclarations_8h.html#aa01e44df0f17d2a1d959710ec856261c":[3,0,0,0,2,3,129],
+"XMPCoreFwdDeclarations_8h.html#aa11deda1f160ba3bfba36558afcaa0ef":[3,0,0,0,2,3,169],
+"XMPCoreFwdDeclarations_8h.html#aa13d8ba12f5ac8ec0b73323472a9c977":[3,0,0,0,2,3,151],
+"XMPCoreFwdDeclarations_8h.html#aa1ac753eb7735e19c3f1a2a21d02a047":[3,0,0,0,2,3,28],
+"XMPCoreFwdDeclarations_8h.html#aa1d5ef746b351d46f0d9be2d53538d7b":[3,0,0,0,2,3,60],
+"XMPCoreFwdDeclarations_8h.html#aa542fbf0ea812dbe340cd7837d68ef9f":[3,0,0,0,2,3,44],
+"XMPCoreFwdDeclarations_8h.html#aa54f5ed241da9437ad01c1047a199f56":[3,0,0,0,2,3,143],
+"XMPCoreFwdDeclarations_8h.html#aa62775052accb00b04f530857b5fc18a":[3,0,0,0,2,3,161],
+"XMPCoreFwdDeclarations_8h.html#aa6b155d7624638c88d2b64b551ef1b0c":[3,0,0,0,2,3,96],
+"XMPCoreFwdDeclarations_8h.html#aa83dd7633a221cb189681dff2bbd78a3":[3,0,0,0,2,3,93],
+"XMPCoreFwdDeclarations_8h.html#aa8b539533f4842694b7d5c5ac05e4961":[3,0,0,0,2,3,150],
+"XMPCoreFwdDeclarations_8h.html#aa917512a62ab131edf95fab4e6ba7067":[3,0,0,0,2,3,58],
+"XMPCoreFwdDeclarations_8h.html#aab6f1fa4adf9d3b8c40d4e8f601ddfdf":[3,0,0,0,2,3,172],
+"XMPCoreFwdDeclarations_8h.html#aab9120a7fc533281e84ead6df110e0a5":[3,0,0,0,2,3,3],
+"XMPCoreFwdDeclarations_8h.html#aae83a987190b96eba7659457c737709c":[3,0,0,0,2,3,149],
+"XMPCoreFwdDeclarations_8h.html#aafbff1ea559ac40a588ee191a94b25af":[3,0,0,0,2,3,154],
+"XMPCoreFwdDeclarations_8h.html#ab063c96638c29753c9799d3184319b85":[3,0,0,0,2,3,13],
+"XMPCoreFwdDeclarations_8h.html#ab17b1221c559007c5fbc73cf2c555c6c":[3,0,0,0,2,3,140],
+"XMPCoreFwdDeclarations_8h.html#ab20ecb8d094c1dd81cb278370b746343":[3,0,0,0,2,3,145],
+"XMPCoreFwdDeclarations_8h.html#ab25d27977dd99a041e01a4b8558f08fe":[3,0,0,0,2,3,147],
+"XMPCoreFwdDeclarations_8h.html#ab2c77e55a81c018160035cea22f49a1a":[3,0,0,0,2,3,50],
+"XMPCoreFwdDeclarations_8h.html#ab423c366f29043e79694f805bceddb56":[3,0,0,0,2,3,128],
+"XMPCoreFwdDeclarations_8h.html#ab5807ab783087243a3676a19ad6f9b90":[3,0,0,0,2,3,132],
+"XMPCoreFwdDeclarations_8h.html#ab5d69f05635d466dcd976f8b2b8e8617":[3,0,0,0,2,3,71],
+"XMPCoreFwdDeclarations_8h.html#ab7edb8a8ca91f8397965cf85502c2043":[3,0,0,0,2,3,49],
+"XMPCoreFwdDeclarations_8h.html#abae00582b217eaa165ccf0006afa23bd":[3,0,0,0,2,3,65],
+"XMPCoreFwdDeclarations_8h.html#abaf2af5208e93c52361d13dff16c959d":[3,0,0,0,2,3,63],
+"XMPCoreFwdDeclarations_8h.html#abc833d7b10347a44a303b973337cf536":[3,0,0,0,2,3,101],
+"XMPCoreFwdDeclarations_8h.html#abce7d351f3258b3edfb1c96e7d2d4945":[3,0,0,0,2,3,107],
+"XMPCoreFwdDeclarations_8h.html#abf85881909a28303736ad48039524d73":[3,0,0,0,2,3,46],
+"XMPCoreFwdDeclarations_8h.html#ac062cb6e980601a1eedf6085cca9b850":[3,0,0,0,2,3,84],
+"XMPCoreFwdDeclarations_8h.html#ac162eebfff7088f633bc0dd401a18862":[3,0,0,0,2,3,104],
+"XMPCoreFwdDeclarations_8h.html#ac50d8fc1c60d397b440d075184e01212":[3,0,0,0,2,3,2],
+"XMPCoreFwdDeclarations_8h.html#ac72d014801c316df78e38687d0c11aa7":[3,0,0,0,2,3,109],
+"XMPCoreFwdDeclarations_8h.html#ac7a54801a0cd4ae9441548ccfb1fd608":[3,0,0,0,2,3,116],
+"XMPCoreFwdDeclarations_8h.html#ac94822da2d3427c627df15c4af5824d3":[3,0,0,0,2,3,153],
+"XMPCoreFwdDeclarations_8h.html#ac94856cb1ce1f56b29673bc3eda30a2b":[3,0,0,0,2,3,152],
+"XMPCoreFwdDeclarations_8h.html#ac973b0e26fb1fdf9146be95ab9f12b1e":[3,0,0,0,2,3,47],
+"XMPCoreFwdDeclarations_8h.html#acf6b51a9bb0059c712e6e423ef94fd0d":[3,0,0,0,2,3,1],
+"XMPCoreFwdDeclarations_8h.html#acfcbb43bd0f659f554877c4f9dd7d459":[3,0,0,0,2,3,134],
+"XMPCoreFwdDeclarations_8h.html#acff9cacaf46a6c6923117852e63579b6":[3,0,0,0,2,3,62],
+"XMPCoreFwdDeclarations_8h.html#ad0578d38c94516edb5414524392845b7":[3,0,0,0,2,3,12],
+"XMPCoreFwdDeclarations_8h.html#ad26aadc3f0926468c34c02cc1a0f1dbd":[3,0,0,0,2,3,88],
+"XMPCoreFwdDeclarations_8h.html#ad445bf512b4b3179b131b0a7dec31d86":[3,0,0,0,2,3,85],
+"XMPCoreFwdDeclarations_8h.html#ad4e3ab53add36a4678405f4b1ac5826b":[3,0,0,0,2,3,148],
+"XMPCoreFwdDeclarations_8h.html#ad638e9de1a595aa976f69d3773d46d16":[3,0,0,0,2,3,23],
+"XMPCoreFwdDeclarations_8h.html#ad705150e811fbc6ff116e850c444fc2d":[3,0,0,0,2,3,19],
+"XMPCoreFwdDeclarations_8h.html#ad7423726463e791584bdeeb0a699c2d6":[3,0,0,0,2,3,99],
+"XMPCoreFwdDeclarations_8h.html#ad877a19389a4ba0dd5ef226470fd7f5b":[3,0,0,0,2,3,48],
+"XMPCoreFwdDeclarations_8h.html#ad8fa3ac657a8506d5d25544060c4af15":[3,0,0,0,2,3,90],
+"XMPCoreFwdDeclarations_8h.html#ad925e271d292d0b0af1a24342391219d":[3,0,0,0,2,3,83],
+"XMPCoreFwdDeclarations_8h.html#ad9403696e40df26b5d17e0d17d6799f0":[3,0,0,0,2,3,113],
+"XMPCoreFwdDeclarations_8h.html#adb4509f09f05618cebbd4f09a5fbb05a":[3,0,0,0,2,3,102],
+"XMPCoreFwdDeclarations_8h.html#ae266f1d0a72a69dbbad9443f1b4140e6":[3,0,0,0,2,3,171],
+"XMPCoreFwdDeclarations_8h.html#ae32d6c403c99fe665bbeff4483a7b144":[3,0,0,0,2,3,34],
+"XMPCoreFwdDeclarations_8h.html#ae332986668c86f3e5c6bbd57fd5f4cad":[3,0,0,0,2,3,86],
+"XMPCoreFwdDeclarations_8h.html#ae339cdf18168ecc8197e651df8f43854":[3,0,0,0,2,3,144],
+"XMPCoreFwdDeclarations_8h.html#ae429e590ecce9128e7bb3c8ea91c6b16":[3,0,0,0,2,3,66],
+"XMPCoreFwdDeclarations_8h.html#ae600077e4e41eec5ebb90fa7510b8b48":[3,0,0,0,2,3,87],
+"XMPCoreFwdDeclarations_8h.html#ae76eb0e35e0e35e5b476b6fecc6e3603":[3,0,0,0,2,3,173],
+"XMPCoreFwdDeclarations_8h.html#ae7c82f1920d2cbe1956fc5c43d0b10e2":[3,0,0,0,2,3,37],
+"XMPCoreFwdDeclarations_8h.html#ae995733eb74953fd4e8cafe373236938":[3,0,0,0,2,3,31],
+"XMPCoreFwdDeclarations_8h.html#aeab5d78356ee44cbab72a48443d7a026":[3,0,0,0,2,3,6],
+"XMPCoreFwdDeclarations_8h.html#aee2397438ef33989fb100e5923821eb9":[3,0,0,0,2,3,124],
+"XMPCoreFwdDeclarations_8h.html#aeec2c711a611cbc3c77ef1a0bb026e33":[3,0,0,0,2,3,141],
+"XMPCoreFwdDeclarations_8h.html#aef05040bb5475b170f4816511f0655d0":[3,0,0,0,2,3,77],
+"XMPCoreFwdDeclarations_8h.html#af2a081973401c42b5772dc9faec58a58":[3,0,0,0,2,3,70],
+"XMPCoreFwdDeclarations_8h.html#af3525e619e07f58d7eb8247b56ddad21":[3,0,0,0,2,3,138],
+"XMPCoreFwdDeclarations_8h.html#af51bfb0cbccc377fb76fbc7187eb3456":[3,0,0,0,2,3,117],
+"XMPCoreFwdDeclarations_8h.html#afb1db1e3afd3cb409aab3c32435b506b":[3,0,0,0,2,3,174],
+"XMPCoreFwdDeclarations_8h.html#afcc78a159d893be198c97d1af098a9e3":[3,0,0,0,2,3,7],
+"XMPCoreFwdDeclarations_8h.html#afcc8116b5f4020c02bc96bd91a4d5235":[3,0,0,0,2,3,110],
+"XMPCoreFwdDeclarations_8h.html#affaedf89b30a42f4aea5bb10619d1801":[3,0,0,0,2,3,20],
+"XMPCoreFwdDeclarations_8h_source.html":[3,0,0,0,2,3],
+"XMPCoreLatestInterfaceVersions_8h.html":[3,0,0,0,2,4],
+"XMPCoreLatestInterfaceVersions_8h.html#a1f8464a97acb8671e6cc2a466955d45d":[3,0,0,0,2,4,0],
+"XMPCoreLatestInterfaceVersions_8h.html#a28325920d39a80ba79dd3774ce056f45":[3,0,0,0,2,4,16],
+"XMPCoreLatestInterfaceVersions_8h.html#a3d28ba37018741b3794789e5edc6e27e":[3,0,0,0,2,4,5],
+"XMPCoreLatestInterfaceVersions_8h.html#a42cb9bdb3894ac77ff614349e5c371e5":[3,0,0,0,2,4,14],
+"XMPCoreLatestInterfaceVersions_8h.html#a52d6e44f27f19214b38959683d6cc829":[3,0,0,0,2,4,8],
+"XMPCoreLatestInterfaceVersions_8h.html#a64636b4e59a6212968ad30494675603e":[3,0,0,0,2,4,1],
+"XMPCoreLatestInterfaceVersions_8h.html#a799da65cf5811707628bb2681a4545ec":[3,0,0,0,2,4,15],
+"XMPCoreLatestInterfaceVersions_8h.html#a79e1c8ec2c46a2cbee3ba9cfd0d78ad4":[3,0,0,0,2,4,10],
+"XMPCoreLatestInterfaceVersions_8h.html#a813f82b55a0bb68c1553e8b38592e705":[3,0,0,0,2,4,7],
+"XMPCoreLatestInterfaceVersions_8h.html#aa34dc59f9267eceb6d51235cd778292e":[3,0,0,0,2,4,6],
+"XMPCoreLatestInterfaceVersions_8h.html#aa928953eda71cda88699483e1fca4526":[3,0,0,0,2,4,2],
+"XMPCoreLatestInterfaceVersions_8h.html#adc9fb16e479a79e35a9dc58e166fcbad":[3,0,0,0,2,4,13],
+"XMPCoreLatestInterfaceVersions_8h.html#adf7818c7264e7a80b1b3c5a5b283c47c":[3,0,0,0,2,4,4],
+"XMPCoreLatestInterfaceVersions_8h.html#aefe5b8d014bd0f2ca4933a16572b51df":[3,0,0,0,2,4,3],
+"XMPCoreLatestInterfaceVersions_8h.html#af7d51c3ccf825fc82fa4a2a6cca26bc8":[3,0,0,0,2,4,9],
+"XMPCoreLatestInterfaceVersions_8h.html#afe7756c974951e8e78be1cfb96aacc8b":[3,0,0,0,2,4,12],
+"XMPCoreLatestInterfaceVersions_8h.html#aff2b1eabe2ac90a68ba3690930494a17":[3,0,0,0,2,4,11],
+"XMPCoreLatestInterfaceVersions_8h_source.html":[3,0,0,0,2,4],
+"XMP_8hpp.html":[3,0,0,0,7],
+"XMP_8hpp_source.html":[3,0,0,0,7],
+"XMP__Const_8h.html":[3,0,0,0,8],
+"XMP__Const_8h.html#a00e9d9a76c144421105a4c2742203315":[3,0,0,0,8,103],
+"XMP__Const_8h.html#a017e63e6fcd1ede112e8945c49b339e6":[3,0,0,0,8,82],
+"XMP__Const_8h.html#a01973e700ac2ba7f3debef340ccaa663":[3,0,0,0,8,105],
+"XMP__Const_8h.html#a02fa37c61718c9712000b834df5d4fdc":[3,0,0,0,8,32],
+"XMP__Const_8h.html#a030875c9dc0861c9251a3374ca14a376":[3,0,0,0,8,46],
+"XMP__Const_8h.html#a0411cd49bb5b71852cecd93bcbf0ca2da2537b4b8db838f85b47988b198cd2a12":[3,0,0,0,8,321],
+"XMP__Const_8h.html#a0411cd49bb5b71852cecd93bcbf0ca2dab0b540cd3841f411471a827f833c606e":[3,0,0,0,8,320],
+"XMP__Const_8h.html#a04133ceba1ad7a582aa63c8f4a5abf69":[3,0,0,0,8,81],
+"XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea0966bca9b241646f6a730f96c5c14a2d":[3,0,0,0,8,183],
+"XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea19b97b941d6586031190025225ee0eaa":[3,0,0,0,8,184],
+"XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea6c37f0724299a9c88e2f622d3246d63b":[3,0,0,0,8,187],
+"XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea859e7aa88e7dfd3f55ad2b6445a4708e":[3,0,0,0,8,186],
+"XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9ea87f8231aec6dd125baf77c9f3f918fbc":[3,0,0,0,8,185],
+"XMP__Const_8h.html#a05589fbab0657f08285ebdfe93f5ec9eaf5b20dd9abbef29169a362b265049637":[3,0,0,0,8,182],
+"XMP__Const_8h.html#a05b81829c04746826f4f85fbac76e3dd":[3,0,0,0,8,107],
+"XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba2a88f4d4589bf413377283843f70bc90":[3,0,0,0,8,122],
+"XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba7a73219cd125bb21e294ba474112a584":[3,0,0,0,8,123],
+"XMP__Const_8h.html#a06fc87d81c62e9abb8790b6e5713c55bacf4bfe01497bd0d88c2af337e4bac39e":[3,0,0,0,8,121],
+"XMP__Const_8h.html#a0a2d9c5f7beb27553214a7ad1df4f27e":[3,0,0,0,8,63],
+"XMP__Const_8h.html#a0bcb67d0dd0922504e3da7ca5c40c82a":[3,0,0,0,8,26],
+"XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248":[3,0,0,0,8,100],
+"XMP__Const_8h.html#a10149d273250015e91931cd93b649a2e":[3,0,0,0,8,98],
+"XMP__Const_8h.html#a10828aa191aa666aa1166c27beead2a6":[3,0,0,0,8,88],
+"XMP__Const_8h.html#a10a766c47b5ea01f285501b49d20bc62":[3,0,0,0,8,94],
+"XMP__Const_8h.html#a10f6b8c9d551ec50ea536026b2c2b315":[3,0,0,0,8,16],
+"XMP__Const_8h.html#a1245d5cd54d23588e74b883d9fda6a93":[3,0,0,0,8,10],
+"XMP__Const_8h.html#a12ca045d4c12992ec8f6c1003523de20":[3,0,0,0,8,22],
+"XMP__Const_8h.html#a16af7b253440dadd46a80a4b9fddba4da767b4847575a8de28e691be660d43817":[3,0,0,0,8,188],
+"XMP__Const_8h.html#a18d4769112002d84e2ddd1aba6ef473c":[3,0,0,0,8,84],
+"XMP__Const_8h.html#a19da1e091dee6b6b471c05f1b73d6b3a":[3,0,0,0,8,13],
+"XMP__Const_8h.html#a1d41f53bd1d5c88fad8322ce15e39516":[3,0,0,0,8,85],
+"XMP__Const_8h.html#a24670f4db8bda6e113612fa0c81ffe6b":[3,0,0,0,8,115],
+"XMP__Const_8h.html#a2663db91a956937f0921f67342a31646":[3,0,0,0,8,50],
+"XMP__Const_8h.html#a276fac0f70893607afa3f09030ad84c7":[3,0,0,0,8,39]
+};
diff --git a/docs/API/navtreeindex3.js b/docs/API/navtreeindex3.js
new file mode 100755
index 0000000..2f39039
--- /dev/null
+++ b/docs/API/navtreeindex3.js
@@ -0,0 +1,253 @@
+var NAVTREEINDEX3 =
+{
+"XMP__Const_8h.html#a285d88d6d95ce0bfed19bb41c5be485f":[3,0,0,0,8,51],
+"XMP__Const_8h.html#a2dc55b533ed63ed7ff0c3be16a97e278":[3,0,0,0,8,7],
+"XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e":[3,0,0,0,8,102],
+"XMP__Const_8h.html#a308e156c325618acb2172e550929ebee":[3,0,0,0,8,47],
+"XMP__Const_8h.html#a32cbbc2b93eb9028d441ecb4223eb2a4":[3,0,0,0,8,119],
+"XMP__Const_8h.html#a35020e150227e9b8cea205958616f439":[3,0,0,0,8,25],
+"XMP__Const_8h.html#a377e4a668de99ce6ed176cef5aaf3fcd":[3,0,0,0,8,111],
+"XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a843589b878f53d42d59258f945ad770b":[3,0,0,0,8,130],
+"XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a8ddfb0572b7602a52e533d92d8b1e9fb":[3,0,0,0,8,127],
+"XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388a97753b4c5afda9c55e807e41377d86d9":[3,0,0,0,8,129],
+"XMP__Const_8h.html#a385c44f6fb256e5716a2302a5b940388adab4dad658d2d218c5b1e7d829b12962":[3,0,0,0,8,128],
+"XMP__Const_8h.html#a39afb495ffb24bb3082493c6811e65d0":[3,0,0,0,8,64],
+"XMP__Const_8h.html#a3ef3c4c015092f8a4b94c4f8895cd955":[3,0,0,0,8,11],
+"XMP__Const_8h.html#a422fdf9dc276d3edacde0826d43dfea5":[3,0,0,0,8,340],
+"XMP__Const_8h.html#a42692697b1951300a6c82665ded8f781":[3,0,0,0,8,80],
+"XMP__Const_8h.html#a43aeebde901bea1932203107c690a2dc":[3,0,0,0,8,92],
+"XMP__Const_8h.html#a44054ee28ca59bd6b5823e4e47479483":[3,0,0,0,8,83],
+"XMP__Const_8h.html#a44453f0d0a1dd295d41722c2387b36fa":[3,0,0,0,8,15],
+"XMP__Const_8h.html#a465d0a0810455207ffa0346f9c462743":[3,0,0,0,8,38],
+"XMP__Const_8h.html#a4928f3fcb7c05bf25694b63d95aa6ce7":[3,0,0,0,8,71],
+"XMP__Const_8h.html#a49e25beee90220541ecfc7ac92fb78b5":[3,0,0,0,8,49],
+"XMP__Const_8h.html#a4abfa333cf45f8849b93c6a630537de2":[3,0,0,0,8,345],
+"XMP__Const_8h.html#a4c39e0131b0e3d7db66e1cfa82b67141":[3,0,0,0,8,67],
+"XMP__Const_8h.html#a4f8605dd83a33b8ef13cb8b06f356b2e":[3,0,0,0,8,28],
+"XMP__Const_8h.html#a549d5e2cbcb58302d3df840a0205283e":[3,0,0,0,8,120],
+"XMP__Const_8h.html#a56197f91b537a0c2b5b9aadbcb404545":[3,0,0,0,8,66],
+"XMP__Const_8h.html#a57250ff934e642191654ae49c3a2c6c9":[3,0,0,0,8,112],
+"XMP__Const_8h.html#a5783bb97f7a4837bf1938332d65804d8":[3,0,0,0,8,332],
+"XMP__Const_8h.html#a57ce38d4e4b01739c939d8a46e23895e":[3,0,0,0,8,41],
+"XMP__Const_8h.html#a57d2bb01a830b278c8e6d1ecdead52c4":[3,0,0,0,8,72],
+"XMP__Const_8h.html#a5e56ed5d1dfcbf69ddd9cdae6eea85f7":[3,0,0,0,8,65],
+"XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea041dc6b7b8684be7112ae40f5f259ebb":[3,0,0,0,8,296],
+"XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea0b659b3b544c7a5a076fbd3132cd7f7a":[3,0,0,0,8,298],
+"XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea15e3fb0e64614c574ed554f2f72c0a5d":[3,0,0,0,8,297],
+"XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea23054ea4ab89dfd802f14cb389e18745":[3,0,0,0,8,302],
+"XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea238c792322c5bd5f9e4db3165e01f9d6":[3,0,0,0,8,295],
+"XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea310e4cbf639e783163778566b439f01d":[3,0,0,0,8,308],
+"XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea540bbd27859990185eb488442579768b":[3,0,0,0,8,305],
+"XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea688324384883724626ddd5597eb45739":[3,0,0,0,8,304],
+"XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea79230f1d70d2625f7650db6ff5b1ea29":[3,0,0,0,8,300],
+"XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea793e99d9ea83f0aadd5b4193a95ea713":[3,0,0,0,8,310],
+"XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9ea9fb498d749d939e2ba9adf555a75b856":[3,0,0,0,8,301],
+"XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eaa646a732a5b11cd8354ca0c3686ef04d":[3,0,0,0,8,303],
+"XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadb35599da481cc22ea6342b7b4de6bc6":[3,0,0,0,8,299],
+"XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadbb9e4c7ee139da0dd4126ddea794c76":[3,0,0,0,8,294],
+"XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eadc8f241694f5a758e5ee3f6db69d02ab":[3,0,0,0,8,307],
+"XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eae0137d98ea990fa23d292489031ba09e":[3,0,0,0,8,311],
+"XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eaeb79571cac99ee97feefb0347b1c1845":[3,0,0,0,8,306],
+"XMP__Const_8h.html#a61dadd085c1777f559549e05962b2c9eafc6417e382c98a2d507830de62fd4830":[3,0,0,0,8,309],
+"XMP__Const_8h.html#a61eb4db5a58902c130d3b3929db624db":[3,0,0,0,8,106],
+"XMP__Const_8h.html#a650c052a916eefa95f0d0ff7a34eb9a0":[3,0,0,0,8,36],
+"XMP__Const_8h.html#a66eb8f71efe1b64635ab41ee86673436":[3,0,0,0,8,30],
+"XMP__Const_8h.html#a66fc3e8331cc92dc01cf2bbe74510baa":[3,0,0,0,8,17],
+"XMP__Const_8h.html#a673355818b7b9224e8fec0fbc60ba00c":[3,0,0,0,8,43],
+"XMP__Const_8h.html#a67849593ac3ffe237743d301d94f1449":[3,0,0,0,8,74],
+"XMP__Const_8h.html#a69a18fc954796cdbaa8771de5a476fab":[3,0,0,0,8,89],
+"XMP__Const_8h.html#a6a9b77b60c63781a8776f10880856bf4":[3,0,0,0,8,70],
+"XMP__Const_8h.html#a6ade57a30fb1e40d6aa9695c440fc3d2":[3,0,0,0,8,117],
+"XMP__Const_8h.html#a6b7b47dd702d9e331586d485013fd1eaadbf8d744f355ef9800a4ec44325baf54":[3,0,0,0,8,215],
+"XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a1b91947105ae68c48c5d5e36aa70d101":[3,0,0,0,8,319],
+"XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a3333450505cd3712320aeac895e541b9":[3,0,0,0,8,314],
+"XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a4589f99b5b4a55e785e3baf4fe1d9b19":[3,0,0,0,8,317],
+"XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a93f77b837d89759af3a721712c13f044":[3,0,0,0,8,312],
+"XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635aa0643c076a3b3737ff88ed20f16afd2b":[3,0,0,0,8,313],
+"XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635aa325d9ffba68a934f0a0a0f6ecfc2f7b":[3,0,0,0,8,315],
+"XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635ab26e1a38d1d0343fcc5bdaab1b60e3ed":[3,0,0,0,8,316],
+"XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635acf22e638f4144bcec8207b2ab69bb344":[3,0,0,0,8,318],
+"XMP__Const_8h.html#a72d86d541447456a08e0d29b57a6ae24":[3,0,0,0,8,75],
+"XMP__Const_8h.html#a7426c6b7314b9b29b443f7f401e49be0":[3,0,0,0,8,24],
+"XMP__Const_8h.html#a74c2a786c7ac349f4226c9694e3be641":[3,0,0,0,8,33],
+"XMP__Const_8h.html#a778d64a8002543649fcd4e27b332aa38":[3,0,0,0,8,339],
+"XMP__Const_8h.html#a77d8c46d01eab6760579ffa049c80724":[3,0,0,0,8,34],
+"XMP__Const_8h.html#a7837e8541712f9f7d5118df1b0905946":[3,0,0,0,8,12],
+"XMP__Const_8h.html#a7bed3dd93335821e5afa0ac2b07a9640":[3,0,0,0,8,114],
+"XMP__Const_8h.html#a7ed33c3b64b4f8a3950f4814487e30e4":[3,0,0,0,8,330],
+"XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa05acd568597f72b4812b432ea6cf606a":[3,0,0,0,8,213],
+"XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa0bef4db2ecdaf82a85df9e9d417aab18":[3,0,0,0,8,209],
+"XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa4c61ec4ed571dbc5f1832ff6772320d2":[3,0,0,0,8,205],
+"XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa77b47c63e579b28cbd25083ceb58c285":[3,0,0,0,8,211],
+"XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa77f34b1873bb2584feabe26a2c8f1182":[3,0,0,0,8,212],
+"XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaa91fa388b3888bcb6a68615537b66a49b":[3,0,0,0,8,206],
+"XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaa58279b2b1311242e7374117f455bb96":[3,0,0,0,8,207],
+"XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaab8cbbeef0e99d246907a4375766e21a2":[3,0,0,0,8,208],
+"XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaf5f2ebd401758a14dc52c5ee403303b5":[3,0,0,0,8,214],
+"XMP__Const_8h.html#a80155586fa275b28773c9b203f52cabaaf6332435c7fc89cb0b7381e13fe43646":[3,0,0,0,8,210],
+"XMP__Const_8h.html#a8283c9596c03b6d626d5a2b7a90e23ab":[3,0,0,0,8,68],
+"XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563f":[3,0,0,0,8,328],
+"XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563fa4e179367a02390075e632aca6e115925":[3,0,0,0,8,328,1],
+"XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563faeedc991a0194b932ae4a47307843baf6":[3,0,0,0,8,328,2],
+"XMP__Const_8h.html#a84d76d32dd4ef90e5a90cf759b7e563faf52720b8c894653e4a089a9c0331ee47":[3,0,0,0,8,328,0],
+"XMP__Const_8h.html#a861613273127156050b456eee11f6b0a":[3,0,0,0,8,58],
+"XMP__Const_8h.html#a8749291bd81f9cb64535b10ef996cb73":[3,0,0,0,8,42],
+"XMP__Const_8h.html#a8d6dc898fe00aeaf567d7af3ec23316a":[3,0,0,0,8,96],
+"XMP__Const_8h.html#a8d8d2810a46a2b171107f4a2387e003d":[3,0,0,0,8,86],
+"XMP__Const_8h.html#a906ec1cd2fb1631c1b5ad9ccdf9c0a6b":[3,0,0,0,8,78],
+"XMP__Const_8h.html#a914a8ec6b55c89c7ed098e4d3b878989":[3,0,0,0,8,333],
+"XMP__Const_8h.html#a935641acc7d01e782ad7a457a7ff338b":[3,0,0,0,8,53],
+"XMP__Const_8h.html#a93e7900e6c9fb4057dfd685b5201057d":[3,0,0,0,8,79],
+"XMP__Const_8h.html#a950af5f297a8aba136e4fb0bb69b3167":[3,0,0,0,8,334],
+"XMP__Const_8h.html#a9549b9a138a896257b5a70176d125317":[3,0,0,0,8,6],
+"XMP__Const_8h.html#a9618e013619aa92ebc808b62243d2ba8":[3,0,0,0,8,48],
+"XMP__Const_8h.html#a97564c70460d1f235c8a41b8ac40cfe9":[3,0,0,0,8,45],
+"XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a0d70c23394c0676657c89de5491192c0":[3,0,0,0,8,227],
+"XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a0d898ea7f6b3db513bb24f8a6a285877":[3,0,0,0,8,235],
+"XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a1f819ef281d1f52c4c12d5d02f49d3f0":[3,0,0,0,8,232],
+"XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a2596b1f0ea4600270c99102c86b5f1f1":[3,0,0,0,8,229],
+"XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a30146ed5209f5c3eb4eeb1fd8e4fb9fe":[3,0,0,0,8,222],
+"XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a3fa5ed87edc731bfb3817f58ba70a217":[3,0,0,0,8,223],
+"XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a48097c6ea309f240965d77ab564a5464":[3,0,0,0,8,233],
+"XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a60a9f26fb66c2e65cf40d9bc44968956":[3,0,0,0,8,237],
+"XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a6b5b5f4b869994b7390edc9589745e9f":[3,0,0,0,8,236],
+"XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a81dcd06251771a0ddee6c1e36128c65c":[3,0,0,0,8,234],
+"XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a8e34a33a2eed56499d4f6f62da25d159":[3,0,0,0,8,221],
+"XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a90d8e49a828a7e18c64be36a73076a7e":[3,0,0,0,8,225],
+"XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5a9b7706e0f0716ac7546bdc24ffedd0bc":[3,0,0,0,8,226],
+"XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aab51f87b5c48f47f5cefb9e03293dafb":[3,0,0,0,8,220],
+"XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5ab975c19fb5c50f732a1a0d84dadb7c37":[3,0,0,0,8,231],
+"XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aba253f67a6cf44b7438a3f96b516846d":[3,0,0,0,8,230],
+"XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5ae154b58429b257b18963ba3503e67974":[3,0,0,0,8,238],
+"XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5aeff16fdf167afc73db25b30b529bd9d5":[3,0,0,0,8,224],
+"XMP__Const_8h.html#a99fb83031ce9923c84392b4e92f956b5af1cdb3b0a3e852ec55e747a1686aba04":[3,0,0,0,8,228],
+"XMP__Const_8h.html#a9a555a9eb2fabe97dd57e8d2e1b077f5":[3,0,0,0,8,91],
+"XMP__Const_8h.html#a9bf51f2653400645f7b5087e8c4e1c77":[3,0,0,0,8,59],
+"XMP__Const_8h.html#a9d5b4ecd6214d080645718af1db77650":[3,0,0,0,8,9],
+"XMP__Const_8h.html#a9ecd2dede6b25ecec9a430c151d74d83":[3,0,0,0,8,93],
+"XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a":[3,0,0,0,8,108],
+"XMP__Const_8h.html#aa1a6f38ebfcdb281c5bf2809859167c7":[3,0,0,0,8,35],
+"XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25":[3,0,0,0,8,116],
+"XMP__Const_8h.html#aa55bae1e6be4ddcefbaf214942e5b272":[3,0,0,0,8,110],
+"XMP__Const_8h.html#aa6ce5fadc73345c8db588922dc731c89":[3,0,0,0,8,336],
+"XMP__Const_8h.html#aa803470bc9b20fc47b0108559e4bccb4":[3,0,0,0,8,337],
+"XMP__Const_8h.html#aaace3ec19d70712e4eb16f6d36de9cfb":[3,0,0,0,8,73],
+"XMP__Const_8h.html#aad7fed121559de43b53067c0bcb9baae":[3,0,0,0,8,341],
+"XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea126c9cc056f6569c424431edbcb9521c":[3,0,0,0,8,192],
+"XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea17578d45ae3c09a8d08189ea544052b1":[3,0,0,0,8,203],
+"XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea23a3eb2a5e95292036a93ad6666fa388":[3,0,0,0,8,191],
+"XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea4a183c3ec4994cf09993e5b31dee9733":[3,0,0,0,8,196],
+"XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea798c55f5144eedde76f8329a056210b2":[3,0,0,0,8,204],
+"XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea8957f1ef358b4ab3a1df519903f2ae07":[3,0,0,0,8,193],
+"XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcea9fe958d4ccde02516a3a267db63874cd":[3,0,0,0,8,199],
+"XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceaa2a6a4b744b40055387234632b688fcd":[3,0,0,0,8,202],
+"XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceab55e1873e67048928de3fc47550678c3":[3,0,0,0,8,194],
+"XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fcead3027b786992e2a4762a4fa37c92943c":[3,0,0,0,8,201],
+"XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceadb116eed738d1fcdfe4ab9c1635e08ea":[3,0,0,0,8,197],
+"XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceaee13099f78018a5e1ce033266c27e999":[3,0,0,0,8,200],
+"XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceafc2bc7cfdd28a326788d563ec0357694":[3,0,0,0,8,195],
+"XMP__Const_8h.html#aaf105ae5beaca1dee30ae54530691fceafc2c5b585e698ebf24a9379de35954b4":[3,0,0,0,8,198],
+"XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a145c259f83048b811c7b35bc3b339c42":[3,0,0,0,8,326],
+"XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a81e1b6fd067fc9ad62bc803c98701bd5":[3,0,0,0,8,325],
+"XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a872d2b769e775e281984cc63e28714ea":[3,0,0,0,8,323],
+"XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57a9dac536fe6ee25de76d45bf6615abd46":[3,0,0,0,8,327],
+"XMP__Const_8h.html#ab04a0655cd1e3bcac5e8f48c18df1a57aae2e0fe43295736a15f0bb76ffe02544":[3,0,0,0,8,324],
+"XMP__Const_8h.html#ab2a4c6f608993eed8b8e96b875afbaf3":[3,0,0,0,8,331],
+"XMP__Const_8h.html#ab466db52a4b85cecfa04710682c1e671":[3,0,0,0,8,52],
+"XMP__Const_8h.html#ab4923bed71ab29c6aa88debe8816c0a2":[3,0,0,0,8,62],
+"XMP__Const_8h.html#ab516453dd7d906e911f8951983cde5f1":[3,0,0,0,8,113],
+"XMP__Const_8h.html#ab794d3d798daf75a963398347dcbb79b":[3,0,0,0,8,21],
+"XMP__Const_8h.html#ab8cf5a7c0f5a8dfc052117638fb55324":[3,0,0,0,8,90],
+"XMP__Const_8h.html#ab8f5ed7baf102b78c816f2e86e142cfd":[3,0,0,0,8,19],
+"XMP__Const_8h.html#aba01db17f4a2bfbc3db60dc172972a25a9b9c1ef01e49193a167c40156df07b50":[3,0,0,0,8,189],
+"XMP__Const_8h.html#aba01db17f4a2bfbc3db60dc172972a25aee2f09481347c29d6c06951b0d81e145":[3,0,0,0,8,190],
+"XMP__Const_8h.html#abaf8c3257026b73a8d50cf43fa488c5d":[3,0,0,0,8,37],
+"XMP__Const_8h.html#abb3c238ce96e9198ebe4260200bfb67b":[3,0,0,0,8,118],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da043afdc1db730db9ac03c505140c61c8":[3,0,0,0,8,149],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da17ab6d429c1550eb3cc16d2e544b78eb":[3,0,0,0,8,131],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da1ad712bbd349dc899ca1e71971032b0a":[3,0,0,0,8,176],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da22b478a9d0d52d12e8e4a1181024eb1c":[3,0,0,0,8,168],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da27051cd824d3ae7bb59e3af7a7908ffd":[3,0,0,0,8,166],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719":[3,0,0,0,8,178],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da42cb8767d9cf16eaeb7aec68a4f224e9":[3,0,0,0,8,147],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da455bc501088bbd8061fe3ea386a5066f":[3,0,0,0,8,141],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da45bf9b21d5ffed3594fbd585c47cc4fc":[3,0,0,0,8,159],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da4b3477bdc53fae1511104fc54f88d134":[3,0,0,0,8,152],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da52c90935ee28a0875a49843d463cad70":[3,0,0,0,8,132],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da542634e6051139c44fd7b92d08c64760":[3,0,0,0,8,164],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da564a8095f65d951f451e16eb56650597":[3,0,0,0,8,139],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da5f78caa0871695cc92e058e4f4b2dd57":[3,0,0,0,8,157],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da5fb9e99541bbb2d8e375d0cc9fd92a2e":[3,0,0,0,8,171],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da64fe7908df6341e13d9d8c8199cdf852":[3,0,0,0,8,158],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da6c949ee85f42eaaed035591338be6789":[3,0,0,0,8,148],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da78b8fa38aaa2067e3e1baa0dcaa7571d":[3,0,0,0,8,135],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da78c62f7c10b16b1a862d93f6226a4622":[3,0,0,0,8,153],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da79cbf96ecc4ac3e0ebfb2d182bc75e60":[3,0,0,0,8,170],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da82935c41c6222ff4cca954278f18e554":[3,0,0,0,8,169],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da851d2f4525d705cd2dcabb540d0ddc06":[3,0,0,0,8,137],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da89e6282c3f0c8966d788500f5d8eaa91":[3,0,0,0,8,151],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da96804f7b8ce83786051c4dac4930aa96":[3,0,0,0,8,177],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daa0edb070c11f87c3dad9f8f7a83b9b5e":[3,0,0,0,8,161],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daab032aa36aec082c6b3a8300548346f5":[3,0,0,0,8,155],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dab1eeba00d1d92e313acfe68cd054daf9":[3,0,0,0,8,140],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dab58eaebed494530072ad990ac7a9807a":[3,0,0,0,8,150],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dabad9584845edf66f2f8fc3c336977e34":[3,0,0,0,8,156],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dac989381d37de320495e4d13f9ecc6371":[3,0,0,0,8,138],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dacc1fcd4e52423c0dd2966a2e92352fb8":[3,0,0,0,8,145],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad217b996403fa13caef3d6e978023124":[3,0,0,0,8,165],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad2935ea79b4f9253891e3a68a002c5bb":[3,0,0,0,8,144],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad752b2d3e1139e0745223a9385ef6487":[3,0,0,0,8,134],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dad947e6da0c4d923195d93e0c53a79c4e":[3,0,0,0,8,133],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dada5b138722448c4d4595fe760668c3df":[3,0,0,0,8,172],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dadc0edf25d933c2a21b25449692c3ba08":[3,0,0,0,8,136],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dae28efb65bde55f3f8ddfd1fd8a168e2a":[3,0,0,0,8,174],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dae3a6333624e5c292caf14ad849a5e26e":[3,0,0,0,8,143],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daebdb172c8a75b4ead2eff2d26ed3dc37":[3,0,0,0,8,142],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daeff4f68cd5162370f7bf938a868e280d":[3,0,0,0,8,175],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf093d01e7e9cc55a7d1e204498521fc3":[3,0,0,0,8,154],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf32bab632c45ee7d960a5b74c9d61155":[3,0,0,0,8,163],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf3ee34ed2bc26dec0e2d572eeb0de89b":[3,0,0,0,8,146],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035daf775c60f1da0e8c34590744a89e66c79":[3,0,0,0,8,167],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafa11d905db1236494e555956cb2f90ef":[3,0,0,0,8,162],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafc5ff976e78df2d79d651de818b011f2":[3,0,0,0,8,160],
+"XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035dafd8d3d1c8c84bc6ab773f1298b3938f0":[3,0,0,0,8,173],
+"XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04a873411f673fc2a6337083fd024df727f":[3,0,0,0,8,286],
+"XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04a98cedd5fa29d47abb2ac8903ac7f5a05":[3,0,0,0,8,287],
+"XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04ad1b42a8a4c479d9bfaf406b79f2e1465":[3,0,0,0,8,289],
+"XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04addd07b4a38b25ab3841e28a9cb169d1c":[3,0,0,0,8,288],
+"XMP__Const_8h.html#abc6126af1d45847bc59afa0aa3216b04aef8c1934a17b0e5d8f0b20a7e89df0df":[3,0,0,0,8,290],
+"XMP__Const_8h.html#abd313c6844b00bcfdbc43b0405fa8364":[3,0,0,0,8,338],
+"XMP__Const_8h.html#abed82baf7f470b522273a3e37c24c600ad6d41710c689f16d19ac26dc9f5cc506":[3,0,0,0,8,322],
+"XMP__Const_8h.html#abff75489a4300787e251f60694497ca8":[3,0,0,0,8,20],
+"XMP__Const_8h.html#ac2434559f67332b9d23021b894da838c":[3,0,0,0,8,99],
+"XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8a0bcf31bfc6bd3bbd5f80ef25f21b4391":[3,0,0,0,8,179],
+"XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8a705cebe9f5f6700f039a153d394b4f2a":[3,0,0,0,8,181],
+"XMP__Const_8h.html#ac36f475ca5b446f4fde4c9b90bec77c8ac9b8b24a75e4e325a49e3730b8e3c5ed":[3,0,0,0,8,180],
+"XMP__Const_8h.html#ac47561b29c7d5e852e014e1391e38591":[3,0,0,0,8,27],
+"XMP__Const_8h.html#ac5e9bcf97c425cf61d6f466358aab1ca":[3,0,0,0,8,57],
+"XMP__Const_8h.html#ac67379a9ffa425d0d7976a51c4f2f754":[3,0,0,0,8,55],
+"XMP__Const_8h.html#ac7dc4d65bcbba2862e410cc8cfdff6f6":[3,0,0,0,8,61],
+"XMP__Const_8h.html#ac91c21a77be4fdc3d8be26fe37b003c8":[3,0,0,0,8,54],
+"XMP__Const_8h.html#acc8062c03735e764865786f6064d06ba":[3,0,0,0,8,23],
+"XMP__Const_8h.html#acc810bb3c0fbab74ba54fca90153e1a0":[3,0,0,0,8,31],
+"XMP__Const_8h.html#ad12182e1df1652f56b5eec60c1fcdd8f":[3,0,0,0,8,18],
+"XMP__Const_8h.html#ad1bc498d01dcc4a690e007b68a695e3a":[3,0,0,0,8,40],
+"XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6":[3,0,0,0,8,109],
+"XMP__Const_8h.html#ad799046db4440bf02e2d244372ca913c":[3,0,0,0,8,77],
+"XMP__Const_8h.html#ad9c3d81fdbaf57f20bdf92d263d9d71a":[3,0,0,0,8,14],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a052b1b525fba7da8c98be5c135f434b8":[3,0,0,0,8,262],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a078c69d0d76f25187a11981a2552b179":[3,0,0,0,8,278],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a0819111429c734ca5ef895c193846351":[3,0,0,0,8,273],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a10fa053f279fed01b075f34a70f11795":[3,0,0,0,8,265],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a115f3d761d2cad952aab23f35cbdf3a1":[3,0,0,0,8,243],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14342c486ddf394ebc110a446becbfa7":[3,0,0,0,8,250],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14813595824de97382fffeae7b6fe581":[3,0,0,0,8,240],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a14bd6c24087d280c722c1a044eec27d6":[3,0,0,0,8,246],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a1606a687cb790af16dc561b2a8f2e6a3":[3,0,0,0,8,283],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a211bb632ed1264d9e2236f35c6414821":[3,0,0,0,8,277],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a23b2d7cab10b3d80549e6b60855bb15e":[3,0,0,0,8,284],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2584fc813bfcd9158b7adf28a3454bb9":[3,0,0,0,8,261],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2874a5dcddf253a17d75a147b2ed4933":[3,0,0,0,8,267],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2a17df0c0b690f5b7829bc4ca16efce2":[3,0,0,0,8,270],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a2bc66eec6ce830979089d5c336f75539":[3,0,0,0,8,257]
+};
diff --git a/docs/API/navtreeindex4.js b/docs/API/navtreeindex4.js
new file mode 100755
index 0000000..2cf2086
--- /dev/null
+++ b/docs/API/navtreeindex4.js
@@ -0,0 +1,253 @@
+var NAVTREEINDEX4 =
+{
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a31adb57da79b4fb1f1f5f999ec740010":[3,0,0,0,8,260],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a3de1ac8f4e4afb705d5a4654cb9579e2":[3,0,0,0,8,248],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a3f1efec0aa5452f43c55c05aba616ef7":[3,0,0,0,8,258],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a40ca77d98bd366442bb8d438c420a444":[3,0,0,0,8,259],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5227060f282a86c8ea1a944107751dd1":[3,0,0,0,8,256],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a52d197a8b0af3c55f16958162a4132f1":[3,0,0,0,8,244],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5322df07e2a7792824d2468c4837f1cb":[3,0,0,0,8,253],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a5464b823e619618d9aa58433cdb45a8e":[3,0,0,0,8,276],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a577b0e80acf44125f0dc49e5885e0824":[3,0,0,0,8,268],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a69eb7fef422fbca62cdbc554afffd813":[3,0,0,0,8,255],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a716956a038782e595ce61d3fbdd1a25a":[3,0,0,0,8,245],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a82941dc15c6ccde6b8fb2f9cc85c2eeb":[3,0,0,0,8,251],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409a8babbd758d2c64fd04e85fa48e0675c0":[3,0,0,0,8,249],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa0a05e07925d1f3daf5f36f6da0840f8":[3,0,0,0,8,264],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa2f19dfd8ce27b5713c79e34f2052e40":[3,0,0,0,8,269],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa856bb36a9742d8542b483e00fc6511b":[3,0,0,0,8,247],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aa9c1c20e53db12b20068d830a8990c0b":[3,0,0,0,8,266],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aac7558097a1f5a0f99097199f1bf8ff4":[3,0,0,0,8,254],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aacc6262e9c1fd1a64e3d10cedfb7dcb1":[3,0,0,0,8,272],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4ba7b1a57629e4994a0f7a515d51195":[3,0,0,0,8,252],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4cf86fa29624c5e19111e09a97fe05f":[3,0,0,0,8,279],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac4f936ff6788ce17f6098b7cbda77ed9":[3,0,0,0,8,263],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac57f1cf1c24778536fd32972e87334c5":[3,0,0,0,8,275],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ac7ac408582c194cc723a24acb8b4e4c3":[3,0,0,0,8,242],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409acd9fa1b621efafd5b218e3a785cbeda1":[3,0,0,0,8,241],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad596daed4ac92f8bf7871669d03effad":[3,0,0,0,8,285],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad685e1f839e3bc53dfc55611a0803cee":[3,0,0,0,8,281],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad98fc9a9c050e9fc19c3af9c8abb2d6d":[3,0,0,0,8,282],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ad9d8c98663e3ead894841807ab4548f8":[3,0,0,0,8,274],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409ae2aec0f3b8db282cbba40e4bcf746ba9":[3,0,0,0,8,239],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409aecd25299aa177de7bc7f3674fcf2e22d":[3,0,0,0,8,280],
+"XMP__Const_8h.html#adb49720dc49f7d4e4cf9adbf2948e409afca1d169d7e3cb3ba84c81700c1b9b22":[3,0,0,0,8,271],
+"XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca1e533852436acf75f594a4fb50a64400":[3,0,0,0,8,291],
+"XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca7107906eab0e1fa6f9f2dc6254ad88b1":[3,0,0,0,8,293],
+"XMP__Const_8h.html#adc29c2ff13d900c2f185ee95427fb06ca79b36427b7bf0c0a1ed010a44dec2d3e":[3,0,0,0,8,292],
+"XMP__Const_8h.html#adc36ebc09374b4400ebc68df37a5abad":[3,0,0,0,8,335],
+"XMP__Const_8h.html#adc4bc1a5da8c0a3d1a77366e4803680f":[3,0,0,0,8,87],
+"XMP__Const_8h.html#adc83d1c8e3a881f2a1623f63a6cb9ff0":[3,0,0,0,8,329],
+"XMP__Const_8h.html#ade06e740748eefe529211dd891bf68f4":[3,0,0,0,8,5],
+"XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a3f41be55491204982acb39c9f6c7ad13":[3,0,0,0,8,125],
+"XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a511551ce156d5fd96c26ad464b837801":[3,0,0,0,8,124],
+"XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a68851b70cc1d2346fa21bc0b0ae6cfec":[3,0,0,0,8,126],
+"XMP__Const_8h.html#ae0901aabcf619f17cff03f08e5ed3658":[3,0,0,0,8,69],
+"XMP__Const_8h.html#ae12feaba743c6b1ab1a24ae13fecbffb":[3,0,0,0,8,97],
+"XMP__Const_8h.html#ae29f21b2ae6b86fdefc50c92c3157683":[3,0,0,0,8,29],
+"XMP__Const_8h.html#ae3052e3b7b6f4c6163331ead175a7e28":[3,0,0,0,8,344],
+"XMP__Const_8h.html#ae4a7c9347994883250dc440566eb9f52":[3,0,0,0,8,101],
+"XMP__Const_8h.html#ae52d761e5a4fc8c8499215d2f3d82b90":[3,0,0,0,8,60],
+"XMP__Const_8h.html#ae5d5ff926903623a451ada7cb840d815":[3,0,0,0,8,342],
+"XMP__Const_8h.html#ae6037ae90db1ec7d7c988aec7a8319cb":[3,0,0,0,8,4],
+"XMP__Const_8h.html#ae802d5ee6fe4802eb5ad692a0b8385ea":[3,0,0,0,8,44],
+"XMP__Const_8h.html#ae8936caf3fa038bd64705caf6ab2329f":[3,0,0,0,8,343],
+"XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8":[3,0,0,0,8,104],
+"XMP__Const_8h.html#aee6dc47c8013d4514ed363ae16ba2ad3":[3,0,0,0,8,95],
+"XMP__Const_8h.html#af7950d7399839f17309a9b944a09be5e":[3,0,0,0,8,56],
+"XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a068fdc8c88dcce62a7b42788a572af61":[3,0,0,0,8,216],
+"XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a2bd1ff3ba036640f0c76d68a03cf94f7":[3,0,0,0,8,218],
+"XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960a768126806f8c7b7c107314610125deb3":[3,0,0,0,8,219],
+"XMP__Const_8h.html#af9bdc3014f3d54c426b6d2df10de4960afb962bdcf570af9aef4e32b5f279d1a4":[3,0,0,0,8,217],
+"XMP__Const_8h.html#afd02278cadf2132a8cc1e7188715c860":[3,0,0,0,8,76],
+"XMP__Const_8h.html#aff1df9f3cf050f8b8d3a574db3c3326b":[3,0,0,0,8,8],
+"XMP__Const_8h_source.html":[3,0,0,0,8],
+"XMP__Environment_8h.html":[3,0,0,0,9],
+"XMP__Environment_8h.html#a69ebf613b248c1e76ae5dbdeee505881":[3,0,0,0,9,1],
+"XMP__Environment_8h.html#a6bdd4740fca953d5f1722643d9295634":[3,0,0,0,9,0],
+"XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747":[3,0,0,0,9,3],
+"XMP__Environment_8h.html#aac6a4810b1f485f147ab833be63f4d7b":[3,0,0,0,9,4],
+"XMP__Environment_8h.html#abeb16d5e16e7b2120731acb63ad88e9f":[3,0,0,0,9,2],
+"XMP__Environment_8h_source.html":[3,0,0,0,9],
+"XMP__IO_8hpp.html":[3,0,0,0,10],
+"XMP__IO_8hpp_source.html":[3,0,0,0,10],
+"XMP__Version_8h.html":[3,0,0,0,11],
+"XMP__Version_8h.html#a23b73225c458457027b81af90253a36d":[3,0,0,0,11,2],
+"XMP__Version_8h.html#a2d20bc110f01b87d6456f9db1169d0f2":[3,0,0,0,11,6],
+"XMP__Version_8h.html#a76ec48e8c62eb491e18c98b620d83826":[3,0,0,0,11,9],
+"XMP__Version_8h.html#a824cb65b80a8e7a2a434e3c7e90e34c1":[3,0,0,0,11,8],
+"XMP__Version_8h.html#a980a28c05c998865f032cda8057530dd":[3,0,0,0,11,4],
+"XMP__Version_8h.html#a9c0c98c086845899204c31cd7e40ee66":[3,0,0,0,11,3],
+"XMP__Version_8h.html#aac716764f5886d3aa2cae548de31914d":[3,0,0,0,11,1],
+"XMP__Version_8h.html#ab50f056612c375f3f3ec2c2bd4b15c20":[3,0,0,0,11,7],
+"XMP__Version_8h.html#ac041954a884c9a67412ce45fd8b93ba8":[3,0,0,0,11,0],
+"XMP__Version_8h.html#ad887c030e319e8ec87b2bb219b411eba":[3,0,0,0,11,5],
+"XMP__Version_8h_source.html":[3,0,0,0,11],
+"annotated.html":[2,0],
+"classAdobeXMPCommon_1_1IConfigurable.html":[2,0,0,0],
+"classAdobeXMPCommon_1_1IConfigurable.html#a046edf1c0c7d4f994295207dea1242f7":[2,0,0,0,13],
+"classAdobeXMPCommon_1_1IConfigurable.html#a11b855a90f26dee8d87b70ee485e6ec3":[2,0,0,0,7],
+"classAdobeXMPCommon_1_1IConfigurable.html#a174330a36f7e3d27cc0230698ff59313":[2,0,0,0,15],
+"classAdobeXMPCommon_1_1IConfigurable.html#a2a1e1d3f515d431478ec309fa9dcd977":[2,0,0,0,22],
+"classAdobeXMPCommon_1_1IConfigurable.html#a4c35becce65c3cb18075f4cac9d57609":[2,0,0,0,10],
+"classAdobeXMPCommon_1_1IConfigurable.html#a4f5a64d500f2fd8110f31a2b582e0759":[2,0,0,0,19],
+"classAdobeXMPCommon_1_1IConfigurable.html#a6115940df0fe3a07749cbf4a2bb0acbb":[2,0,0,0,11],
+"classAdobeXMPCommon_1_1IConfigurable.html#a75784001a19ac899764807095e648c70":[2,0,0,0,21],
+"classAdobeXMPCommon_1_1IConfigurable.html#a7c19f627db3d07e227e93a6a0e6b20ab":[2,0,0,0,2],
+"classAdobeXMPCommon_1_1IConfigurable.html#a7e71691861d38ae351bdd42392b78af6":[2,0,0,0,5],
+"classAdobeXMPCommon_1_1IConfigurable.html#a932bf0b8f4396de0e29f6c165954e5dc":[2,0,0,0,3],
+"classAdobeXMPCommon_1_1IConfigurable.html#a99fb34ba1e27e2e6cadea3755284cee1":[2,0,0,0,12],
+"classAdobeXMPCommon_1_1IConfigurable.html#abb69da6d73e4b56c30e56b43f5a37b9b":[2,0,0,0,14],
+"classAdobeXMPCommon_1_1IConfigurable.html#abc24d334364271934f6f8f1ac9051836":[2,0,0,0,16],
+"classAdobeXMPCommon_1_1IConfigurable.html#abc8b38df0036ec164aa6c108cdee9a5e":[2,0,0,0,9],
+"classAdobeXMPCommon_1_1IConfigurable.html#ac321e3926928c7c9b58bab66d6270da5":[2,0,0,0,23],
+"classAdobeXMPCommon_1_1IConfigurable.html#ad0e79a0e44353d08139358a56e8510fb":[2,0,0,0,4],
+"classAdobeXMPCommon_1_1IConfigurable.html#ad248a17a9bc7ca1c189f353f62e829c4":[2,0,0,0,17],
+"classAdobeXMPCommon_1_1IConfigurable.html#ad3b3acdbd19e5860d3e5c5cdcffeb016":[2,0,0,0,18],
+"classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1":[2,0,0,0,1],
+"classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a01da29c7d11b67856b0e9d5f3fe4cdb4":[2,0,0,0,1,4],
+"classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a0233b4bacf60f59232fd3fc0dee50a27":[2,0,0,0,1,0],
+"classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a11c2a544d5ac467b22d7d10098237efa":[2,0,0,0,1,5],
+"classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a242c98a52e8d324027a00ee6f66d4c39":[2,0,0,0,1,7],
+"classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a5c57cf68bc47c55815b5bfc1146df0c3":[2,0,0,0,1,3],
+"classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1a8d6faef7e1737835b5007987ed99c48d":[2,0,0,0,1,6],
+"classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1abdf14ab0f7a234fc99bc476dc4212f4e":[2,0,0,0,1,1],
+"classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1ac5217140bec2fb51971d31759f24b81a":[2,0,0,0,1,8],
+"classAdobeXMPCommon_1_1IConfigurable.html#ad64e6ae45633298b7158be2b0dce79a1ad24c2bb370f5fa12dee346051c13409e":[2,0,0,0,1,2],
+"classAdobeXMPCommon_1_1IConfigurable.html#adc0c0be10213808b04e9cef27a0efa4c":[2,0,0,0,6],
+"classAdobeXMPCommon_1_1IConfigurable.html#ae3de9436a04fcd5f6f8bd21fcc9a9edd":[2,0,0,0,20],
+"classAdobeXMPCommon_1_1IConfigurable.html#af655f02a3941826182ea54a2eb012e0d":[2,0,0,0,8],
+"classAdobeXMPCommon_1_1IConfigurationManagerProxy.html":[2,0,0,2],
+"classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a1cd3f0ed28518a855a9adec183f638c5":[2,0,0,2,13],
+"classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a2d3924186af26ed2ea955d155ba8e89c":[2,0,0,2,1],
+"classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a2f95a01a640809db056c50f3af9969a3":[2,0,0,2,11],
+"classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a51a9e283ecad4043182f5ff9c8c38367":[2,0,0,2,5],
+"classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a57ee5dce3f7d579adb79ebc00618aa17":[2,0,0,2,16],
+"classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a7b99c9d6b1b337c74b240afbdb1ba11a":[2,0,0,2,10],
+"classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a84324c2d73c81094f9a4ea365b22acb7":[2,0,0,2,9],
+"classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a8432b3ab3d3e1c344dc006308e34e4bc":[2,0,0,2,3],
+"classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a9d07fe612bdc448ea279f9c6a8f2c905":[2,0,0,2,4],
+"classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#a9efc36a9faf07297c329f1c422659758":[2,0,0,2,8],
+"classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#aa6e0ad02dd491d0881e35ea0554c93a6":[2,0,0,2,0],
+"classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#ab368f307d6f23590d7ee76974cbd87fa":[2,0,0,2,2],
+"classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#acb62caf44deca15cc1a427ff4d437e0b":[2,0,0,2,7],
+"classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#acf184689e6c9862642425392ac80640c":[2,0,0,2,6],
+"classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#ad53bcc0d6f8a1978b43a007c040c4c04":[2,0,0,2,15],
+"classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#adec0b71edd5e1d6af91ddb57d4c46fe5":[2,0,0,2,12],
+"classAdobeXMPCommon_1_1IConfigurationManagerProxy.html#aecb05f0b0c1c934c00aab318d6de1daf":[2,0,0,2,14],
+"classAdobeXMPCommon_1_1IConfigurationManager__v1.html":[2,0,0,1],
+"classAdobeXMPCommon_1_1IConfigurationManager__v1.html#a32c1e2b6af5182d30d298be95652a065":[2,0,0,1,2],
+"classAdobeXMPCommon_1_1IConfigurationManager__v1.html#a4886e0ac409969583acccbe344489a85":[2,0,0,1,4],
+"classAdobeXMPCommon_1_1IConfigurationManager__v1.html#aab2f368cf6883a6cd92fe688a95516b5":[2,0,0,1,0],
+"classAdobeXMPCommon_1_1IConfigurationManager__v1.html#acf69fdd4ec5c1eb47b6a41b052372504":[2,0,0,1,1],
+"classAdobeXMPCommon_1_1IConfigurationManager__v1.html#ad857109e294bdff85685fa0974020645":[2,0,0,1,5],
+"classAdobeXMPCommon_1_1IConfigurationManager__v1.html#af078935e322f611a884061977d015d1d":[2,0,0,1,3],
+"classAdobeXMPCommon_1_1IErrorNotifier__v1.html":[2,0,0,4],
+"classAdobeXMPCommon_1_1IErrorNotifier__v1.html#a6b08a4aa1295fae50fe52c60787b3037":[2,0,0,4,1],
+"classAdobeXMPCommon_1_1IErrorNotifier__v1.html#ace4799050050f28ac3706b1de8940769":[2,0,0,4,0],
+"classAdobeXMPCommon_1_1IError__v1.html":[2,0,0,3],
+"classAdobeXMPCommon_1_1IError__v1.html#a0023512a27c6aea27998fcf18d1a6413":[2,0,0,3,21],
+"classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0d":[2,0,0,3,1],
+"classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da1e77ab380b475ba060d14c489a2ad1bc":[2,0,0,3,1,14],
+"classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da259afda1164ca63dc7a5730e36ca35a8":[2,0,0,3,1,2],
+"classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da3ab4caaddd020b4446ef5e52300e7b1f":[2,0,0,3,1,1],
+"classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da3ee93ea699a7ad40361aa97bd7bd5cbf":[2,0,0,3,1,7],
+"classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da495992977fdfefad3c7b51350d952120":[2,0,0,3,1,13],
+"classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da500ecdf6b68ffe0f4d901740bae84a6a":[2,0,0,3,1,12],
+"classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da54f0a72b16e0c1cc0e484ebca6d13708":[2,0,0,3,1,9],
+"classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da553e7b6dff9e1c9d4d53a155cdb627a7":[2,0,0,3,1,5],
+"classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da7a0ca7368a9c93d038b635ea7ae0f691":[2,0,0,3,1,10],
+"classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da90c7a2910e189c25b42be36b5342cd8e":[2,0,0,3,1,8],
+"classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0da977f7d430590fc0e8e91424479403e54":[2,0,0,3,1,6],
+"classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0dad08de2ff0da8d78befc1e3160d91fb66":[2,0,0,3,1,0],
+"classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0dad284da5871c3d7be07ece3e18cfc1313":[2,0,0,3,1,4],
+"classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0dadea3f136c96a37d23f8f984551bfc320":[2,0,0,3,1,3],
+"classAdobeXMPCommon_1_1IError__v1.html#a00f8c929931409a4bf6eeeb47270bf0dae98f9f2ae109cb8f4e20bac749b9096d":[2,0,0,3,1,11],
+"classAdobeXMPCommon_1_1IError__v1.html#a02f24319a739eee3b5d246bfc72fa71d":[2,0,0,3,23],
+"classAdobeXMPCommon_1_1IError__v1.html#a0bf4ec8969fd74b0d82db0e5c0f47530":[2,0,0,3,17],
+"classAdobeXMPCommon_1_1IError__v1.html#a125e3343c3a6fc979798cfc5a826ffa9":[2,0,0,3,10],
+"classAdobeXMPCommon_1_1IError__v1.html#a18e0f7f012b875b315bb745a96bc4d66":[2,0,0,3,19],
+"classAdobeXMPCommon_1_1IError__v1.html#a1b00f65d8eff4312decbbf374089a73f":[2,0,0,3,16],
+"classAdobeXMPCommon_1_1IError__v1.html#a259f1d92b325fe01991ca5acd2238346":[2,0,0,3,3],
+"classAdobeXMPCommon_1_1IError__v1.html#a29cc93a78d4e1111ec8e51e4ca9a82b3":[2,0,0,3,0],
+"classAdobeXMPCommon_1_1IError__v1.html#a354cf52656e1567eb7bca7f682f39622":[2,0,0,3,9],
+"classAdobeXMPCommon_1_1IError__v1.html#a4daea946019093097749e0a6c0a45cf0":[2,0,0,3,14],
+"classAdobeXMPCommon_1_1IError__v1.html#a62944c723bd7bf40207521ac966a6b02":[2,0,0,3,22],
+"classAdobeXMPCommon_1_1IError__v1.html#a62b066580a0f0b18a7f7fc9c351d1c93":[2,0,0,3,11],
+"classAdobeXMPCommon_1_1IError__v1.html#a65e29b8ca5749bb9a5286e2d4a93a2af":[2,0,0,3,25],
+"classAdobeXMPCommon_1_1IError__v1.html#a6e85bc715a4de6c58b5d8bfa445ddebe":[2,0,0,3,8],
+"classAdobeXMPCommon_1_1IError__v1.html#a78f8b576c87bb5cf22716bd91621cf28":[2,0,0,3,7],
+"classAdobeXMPCommon_1_1IError__v1.html#a8d43b2b1346cf0971e0ca85eb978c24a":[2,0,0,3,5],
+"classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702":[2,0,0,3,2],
+"classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702a20b2b1a43e9ba7559ad49c5fb9ae845c":[2,0,0,3,2,1],
+"classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702a2aec1db6233320381fa85f9490d95a60":[2,0,0,3,2,3],
+"classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702a72d4e6dab6f3c900e504db6ad274f03b":[2,0,0,3,2,0],
+"classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702aa83e26dbed0e72dc086520892693a408":[2,0,0,3,2,4],
+"classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702aad55eb387014908711b915d5877d7d80":[2,0,0,3,2,2],
+"classAdobeXMPCommon_1_1IError__v1.html#a9079d6a31de223baec5db854f826d702aaf28b59c2541f8bd3a4e70a4c7e58908":[2,0,0,3,2,5],
+"classAdobeXMPCommon_1_1IError__v1.html#a9479cedd0dcfd7bfda628178554ceb30":[2,0,0,3,20],
+"classAdobeXMPCommon_1_1IError__v1.html#aab0339169d7def09682a3afd8a65145e":[2,0,0,3,24],
+"classAdobeXMPCommon_1_1IError__v1.html#aac7106e2c1a4fb762f11ef70fb38cb8e":[2,0,0,3,13],
+"classAdobeXMPCommon_1_1IError__v1.html#aaee451537de9ae0fecd92cdf9a2d74bd":[2,0,0,3,6],
+"classAdobeXMPCommon_1_1IError__v1.html#abd77c134aeae1727d3173ab1a49ea3f2":[2,0,0,3,4],
+"classAdobeXMPCommon_1_1IError__v1.html#acde20d4794bd22283a8c86021f979c29":[2,0,0,3,18],
+"classAdobeXMPCommon_1_1IError__v1.html#ae28247d03f397b27bee52b8378366f80":[2,0,0,3,15],
+"classAdobeXMPCommon_1_1IError__v1.html#aebd455b3127a9c030bbcdafe78a8da98":[2,0,0,3,12],
+"classAdobeXMPCommon_1_1IMemoryAllocator__v1.html":[2,0,0,5],
+"classAdobeXMPCommon_1_1IMemoryAllocator__v1.html#a2942e9d8f0d685ae6ebe58c18a11b999":[2,0,0,5,0],
+"classAdobeXMPCommon_1_1IMemoryAllocator__v1.html#a607755ef64bf552482c4a330fcc79120":[2,0,0,5,1],
+"classAdobeXMPCommon_1_1IMemoryAllocator__v1.html#a89ea55ddb2e5a544a93525b227b042f9":[2,0,0,5,2],
+"classAdobeXMPCommon_1_1IMemoryAllocator__v1.html#aee52f392f1548bffc01b2be3fd9fab28":[2,0,0,5,3],
+"classAdobeXMPCommon_1_1IObjectFactory__v1.html":[2,0,0,6],
+"classAdobeXMPCommon_1_1IObjectFactory__v1.html#a2dc282621cdfef44b424ac91efb965a1":[2,0,0,6,5],
+"classAdobeXMPCommon_1_1IObjectFactory__v1.html#a2f02bcd4eafa4d318197c39dd55d0957":[2,0,0,6,7],
+"classAdobeXMPCommon_1_1IObjectFactory__v1.html#a81c25d76569a9249ab3c8a3e4490c73d":[2,0,0,6,4],
+"classAdobeXMPCommon_1_1IObjectFactory__v1.html#a95fcbab435329d052ab42028da563c02":[2,0,0,6,0],
+"classAdobeXMPCommon_1_1IObjectFactory__v1.html#aa906cf2b9efb958e49fd8c5122b8db96":[2,0,0,6,6],
+"classAdobeXMPCommon_1_1IObjectFactory__v1.html#ab61b0ddca88dc76f0499d317f189b918":[2,0,0,6,3],
+"classAdobeXMPCommon_1_1IObjectFactory__v1.html#ae3e9eb977c305e48425654bec514f405":[2,0,0,6,2],
+"classAdobeXMPCommon_1_1IObjectFactory__v1.html#ae86e711336af91dca23f4611b1f03724":[2,0,0,6,1],
+"classAdobeXMPCommon_1_1ISharedObject.html":[2,0,0,7],
+"classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31":[2,0,0,7,0],
+"classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc":[2,0,0,7,1],
+"classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3":[2,0,0,7,2],
+"classAdobeXMPCommon_1_1ISharedObject.html#afcb42109aed83c3b0c133bc413388037":[2,0,0,7,3],
+"classAdobeXMPCommon_1_1IThreadSafe.html":[2,0,0,8],
+"classAdobeXMPCommon_1_1IThreadSafe.html#a0f31eb9677c4af06288319e363c21ebc":[2,0,0,8,3],
+"classAdobeXMPCommon_1_1IThreadSafe.html#a214bb1b5840dbd5576e764dd2220b261":[2,0,0,8,0],
+"classAdobeXMPCommon_1_1IThreadSafe.html#a261e2f6af96b75015e5f8318f32be7f9":[2,0,0,8,2],
+"classAdobeXMPCommon_1_1IThreadSafe.html#afe35614cb88e2bdb32996cf4ac15b211":[2,0,0,8,1],
+"classAdobeXMPCommon_1_1IUTF8String__v1.html":[2,0,0,9],
+"classAdobeXMPCommon_1_1IUTF8String__v1.html#a0699c6ad71960ba770c393dddcfa171d":[2,0,0,9,1],
+"classAdobeXMPCommon_1_1IUTF8String__v1.html#a073b7795a02f6844d2595da422c737f3":[2,0,0,9,26],
+"classAdobeXMPCommon_1_1IUTF8String__v1.html#a09ed6025bf467e1aab61ceab27277ea7":[2,0,0,9,3],
+"classAdobeXMPCommon_1_1IUTF8String__v1.html#a0d2adae65b938d56ff526d67cc9634a3":[2,0,0,9,13],
+"classAdobeXMPCommon_1_1IUTF8String__v1.html#a136133c53ec032e30c10a15f11c7c8b5":[2,0,0,9,17],
+"classAdobeXMPCommon_1_1IUTF8String__v1.html#a34008a94fe509b080c0d1b7f5e650886":[2,0,0,9,16],
+"classAdobeXMPCommon_1_1IUTF8String__v1.html#a382311b08300432549054caa0c351928":[2,0,0,9,8],
+"classAdobeXMPCommon_1_1IUTF8String__v1.html#a3d47695cb24358835d8c904cfbf0856c":[2,0,0,9,15],
+"classAdobeXMPCommon_1_1IUTF8String__v1.html#a4b31b65fa8904172abd35adb388d33cb":[2,0,0,9,21],
+"classAdobeXMPCommon_1_1IUTF8String__v1.html#a5da1566bf196fc58c4c3d5a469e1f4f3":[2,0,0,9,28],
+"classAdobeXMPCommon_1_1IUTF8String__v1.html#a6873a42d7f1a747fc5461e2c653e97cb":[2,0,0,9,22],
+"classAdobeXMPCommon_1_1IUTF8String__v1.html#a709ce9d5053d7fdc30a0735112844305":[2,0,0,9,10],
+"classAdobeXMPCommon_1_1IUTF8String__v1.html#a71882e69cdd1729a498571286dcf752a":[2,0,0,9,12],
+"classAdobeXMPCommon_1_1IUTF8String__v1.html#a745714ed2abbc6a2808fb933cc6b2f46":[2,0,0,9,7],
+"classAdobeXMPCommon_1_1IUTF8String__v1.html#a74f019bc9c2d4a36c689906529abca14":[2,0,0,9,5],
+"classAdobeXMPCommon_1_1IUTF8String__v1.html#a75ef851beb03fa01e9c4232a6a3e749b":[2,0,0,9,18],
+"classAdobeXMPCommon_1_1IUTF8String__v1.html#a7b58ccfe2131a133db0e2fdcfc4f6baf":[2,0,0,9,25],
+"classAdobeXMPCommon_1_1IUTF8String__v1.html#a8c89cae09770d23100e36a7401733e00":[2,0,0,9,6],
+"classAdobeXMPCommon_1_1IUTF8String__v1.html#a90218f86f4baae7d98e75238512c7c5e":[2,0,0,9,23],
+"classAdobeXMPCommon_1_1IUTF8String__v1.html#a94228b12fd752c7051f9cafad0aa1692":[2,0,0,9,24],
+"classAdobeXMPCommon_1_1IUTF8String__v1.html#aa9a26fe32a7bc969628d60575e2cbc37":[2,0,0,9,4],
+"classAdobeXMPCommon_1_1IUTF8String__v1.html#ab960c740e20dd09e26b24e04fd43e357":[2,0,0,9,29],
+"classAdobeXMPCommon_1_1IUTF8String__v1.html#ac4a048a6701b0e8c500bedef4a5ae886":[2,0,0,9,2],
+"classAdobeXMPCommon_1_1IUTF8String__v1.html#ac6d67760974e46520e3517d6cd0f54a6":[2,0,0,9,19],
+"classAdobeXMPCommon_1_1IUTF8String__v1.html#ac71ee072a3ea37023575720d89833f02":[2,0,0,9,11],
+"classAdobeXMPCommon_1_1IUTF8String__v1.html#ade123eab5a2f5e432ce6e50f43eddad3":[2,0,0,9,0],
+"classAdobeXMPCommon_1_1IUTF8String__v1.html#ae19e8581f0cd7c13ada7d465b76d6814":[2,0,0,9,20],
+"classAdobeXMPCommon_1_1IUTF8String__v1.html#aeae90e180292815caf2f4ceb890a8f5a":[2,0,0,9,27],
+"classAdobeXMPCommon_1_1IUTF8String__v1.html#aeef728e7e6133f12bb10282c5fcff69f":[2,0,0,9,9],
+"classAdobeXMPCommon_1_1IUTF8String__v1.html#afcf1d7294c5e3c518c3fcbc3bc16d305":[2,0,0,9,14],
+"classAdobeXMPCommon_1_1IVersionable.html":[2,0,0,10],
+"classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826":[2,0,0,10,0]
+};
diff --git a/docs/API/navtreeindex5.js b/docs/API/navtreeindex5.js
new file mode 100755
index 0000000..d72f67d
--- /dev/null
+++ b/docs/API/navtreeindex5.js
@@ -0,0 +1,253 @@
+var NAVTREEINDEX5 =
+{
+"classAdobeXMPCommon_1_1IVersionable.html#ab93a940e2946c14a76ebbd9552cab070":[2,0,0,10,2],
+"classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f":[2,0,0,10,3],
+"classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54":[2,0,0,10,1],
+"classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html":[2,0,0,11],
+"classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html#a3b28d2e68ebbcd5d20781d8b7a48f879":[2,0,0,11,2],
+"classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html#a40e6fedd9a880d70095b9468b5cf05db":[2,0,0,11,0],
+"classAdobeXMPCommon_1_1ReportErrorAndContinueFunctor.html#a5dd060eac19acba07ce701dc9ebaa09d":[2,0,0,11,1],
+"classAdobeXMPCore_1_1IArrayNode__v1.html":[2,0,1,0],
+"classAdobeXMPCore_1_1IArrayNode__v1.html#a37ba080075f5158ffdffbb36437e2622":[2,0,1,0,12],
+"classAdobeXMPCore_1_1IArrayNode__v1.html#a435be63553b76b568fc8a6f980f4eac6":[2,0,1,0,16],
+"classAdobeXMPCore_1_1IArrayNode__v1.html#a484e351f788771cf4500bfe0a2b144ec":[2,0,1,0,17],
+"classAdobeXMPCore_1_1IArrayNode__v1.html#a57011f7b4cf194ef1a2e52011671b862":[2,0,1,0,6],
+"classAdobeXMPCore_1_1IArrayNode__v1.html#a6e9068b8048a29804fb9d567c6cc8952":[2,0,1,0,3],
+"classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3":[2,0,1,0,0],
+"classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3a76f68496b69df8d9ff018d0eb7cf214c":[2,0,1,0,0,3],
+"classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3a7dd5034acb7178341218ab2389bb45cf":[2,0,1,0,0,4],
+"classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3a9e94ffd1d41fc1770ea2430ddb6b0850":[2,0,1,0,0,0],
+"classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3ae739b09d3ac25faa60551f181c273163":[2,0,1,0,0,2],
+"classAdobeXMPCore_1_1IArrayNode__v1.html#a7b5b5daa606aeb28496f326ac705a9a3afbd5e7a5cc72cd12eeec6e4ab370b29c":[2,0,1,0,0,1],
+"classAdobeXMPCore_1_1IArrayNode__v1.html#a7c2e3c217f7e1bb28504c40da474f01e":[2,0,1,0,9],
+"classAdobeXMPCore_1_1IArrayNode__v1.html#a9b89618c3115efc948bd7fb49dfc570c":[2,0,1,0,4],
+"classAdobeXMPCore_1_1IArrayNode__v1.html#aabcee273a5efdaf57975f52f11ba8e85":[2,0,1,0,13],
+"classAdobeXMPCore_1_1IArrayNode__v1.html#aaf0ef3b97a41d1035f789dc3ab127bae":[2,0,1,0,14],
+"classAdobeXMPCore_1_1IArrayNode__v1.html#ab6cffa23c82a1dee98d634e8b4081510":[2,0,1,0,11],
+"classAdobeXMPCore_1_1IArrayNode__v1.html#ac16b0614e51f8323585d653c0d36faf2":[2,0,1,0,7],
+"classAdobeXMPCore_1_1IArrayNode__v1.html#ad3748958964789cb3d20d5776b1157b5":[2,0,1,0,8],
+"classAdobeXMPCore_1_1IArrayNode__v1.html#ae3bf9368ff5fa36665e21911bbab98b5":[2,0,1,0,10],
+"classAdobeXMPCore_1_1IArrayNode__v1.html#ae72a477964eaa0590d7ee415e044bc02":[2,0,1,0,1],
+"classAdobeXMPCore_1_1IArrayNode__v1.html#ae75dc043c5da4ab09b4700fcbfc065ec":[2,0,1,0,5],
+"classAdobeXMPCore_1_1IArrayNode__v1.html#af206a6ae16faa9083b0c80b0becccde2":[2,0,1,0,15],
+"classAdobeXMPCore_1_1IArrayNode__v1.html#afcb8012075f5c956139bff39f41bae47":[2,0,1,0,2],
+"classAdobeXMPCore_1_1IClientDOMParser__v1.html":[2,0,1,1],
+"classAdobeXMPCore_1_1IClientDOMParser__v1.html#a1860e905db03346c3c83f5a026008d03":[2,0,1,1,4],
+"classAdobeXMPCore_1_1IClientDOMParser__v1.html#a210d5b0bf473045c7f76d856f956d932":[2,0,1,1,3],
+"classAdobeXMPCore_1_1IClientDOMParser__v1.html#a5df18f349ed7db99a4bb96660b0008b5":[2,0,1,1,2],
+"classAdobeXMPCore_1_1IClientDOMParser__v1.html#a7d40872cc3ce6ac3b298709232399984":[2,0,1,1,5],
+"classAdobeXMPCore_1_1IClientDOMParser__v1.html#aaaf9b00cdda11d05f0a5206665096c11":[2,0,1,1,1],
+"classAdobeXMPCore_1_1IClientDOMParser__v1.html#ac9890eb0a1635872a2ed2f86544b0057":[2,0,1,1,0],
+"classAdobeXMPCore_1_1IClientDOMSerializer__v1.html":[2,0,1,2],
+"classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#a370646890f776a587f0faff20d590059":[2,0,1,2,2],
+"classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#a513bdaeb37f453787f46a5e855ac08ef":[2,0,1,2,3],
+"classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#a58ff533c49dcfcf3374097aea70c1107":[2,0,1,2,0],
+"classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#a5bcaa25de727ee1e8e9399dd963aa5c3":[2,0,1,2,5],
+"classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#a604822b9cacd9b1ebaba08e49513f778":[2,0,1,2,4],
+"classAdobeXMPCore_1_1IClientDOMSerializer__v1.html#aa6090a60c51266963005c2fce33ea760":[2,0,1,2,1],
+"classAdobeXMPCore_1_1ICompositeNode__v1.html":[2,0,1,3],
+"classAdobeXMPCore_1_1ICompositeNode__v1.html#a0dd2a64d53b361b96bdfb597c5e35579":[2,0,1,3,6],
+"classAdobeXMPCore_1_1ICompositeNode__v1.html#a1c713f2e29d6d0e9d4a1ee800a679f06":[2,0,1,3,15],
+"classAdobeXMPCore_1_1ICompositeNode__v1.html#a2abb6cdf40e6d4c91e30b736586e89dc":[2,0,1,3,11],
+"classAdobeXMPCore_1_1ICompositeNode__v1.html#a2c51c5296da4abb8fa5d5999f686602b":[2,0,1,3,16],
+"classAdobeXMPCore_1_1ICompositeNode__v1.html#a2e17bda06b20439a0076ea2fae68594d":[2,0,1,3,3],
+"classAdobeXMPCore_1_1ICompositeNode__v1.html#a313df9421df168266a32592732c25d9f":[2,0,1,3,13],
+"classAdobeXMPCore_1_1ICompositeNode__v1.html#a39f5d9b31976e7a243d11152cd57260b":[2,0,1,3,12],
+"classAdobeXMPCore_1_1ICompositeNode__v1.html#a42c91ca3eeded6302163a96903927445":[2,0,1,3,9],
+"classAdobeXMPCore_1_1ICompositeNode__v1.html#a51af220e29b40e8520ae5765f28515bf":[2,0,1,3,0],
+"classAdobeXMPCore_1_1ICompositeNode__v1.html#a5c4cddddb0702e61d85cff16c5e72632":[2,0,1,3,5],
+"classAdobeXMPCore_1_1ICompositeNode__v1.html#a6795e662d9daea5b88de08261488964b":[2,0,1,3,1],
+"classAdobeXMPCore_1_1ICompositeNode__v1.html#a93d1009b739d8a6c40ebbf4aa75051af":[2,0,1,3,8],
+"classAdobeXMPCore_1_1ICompositeNode__v1.html#aba3fc78fab746460b1e7e01fe2e004b6":[2,0,1,3,4],
+"classAdobeXMPCore_1_1ICompositeNode__v1.html#abf3323ce933f5336bc0f64955c0bdd11":[2,0,1,3,2],
+"classAdobeXMPCore_1_1ICompositeNode__v1.html#ac5e3227436e3ee11d0df7f3a176402e0":[2,0,1,3,7],
+"classAdobeXMPCore_1_1ICompositeNode__v1.html#ad6ca35dc12323a3a970066beb4c63e84":[2,0,1,3,10],
+"classAdobeXMPCore_1_1ICompositeNode__v1.html#afa9e587b9293ff99d9f8b38b0cc07cad":[2,0,1,3,14],
+"classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html":[2,0,1,4],
+"classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html#a16df3adfe25d46e47db70e02c1b8afd3":[2,0,1,4,0],
+"classAdobeXMPCore_1_1ICoreConfigurationManager__v1.html#a867de0412ef1c6baf40a35714edd3f9e":[2,0,1,4,1],
+"classAdobeXMPCore_1_1ICoreObjectFactory__v1.html":[2,0,1,5],
+"classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a055e87d1002612143f5104c0e3613336":[2,0,1,5,9],
+"classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a256fa057baeddc10da895731a2e24089":[2,0,1,5,3],
+"classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a27a3f1ca72e364fa627aa71b52042da2":[2,0,1,5,17],
+"classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a385859faf85e5121f6e900da52fe7a51":[2,0,1,5,5],
+"classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a3bfacdef9fe44e03dbe826e5ab4d96a5":[2,0,1,5,1],
+"classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a483da62ca0b16df479b574ce159656a0":[2,0,1,5,2],
+"classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a5c98e5f81eff5b0337347ef9416d2711":[2,0,1,5,12],
+"classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a6976b678d45b6e968eb7cf094c18bc24":[2,0,1,5,10],
+"classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a6aecc832674b0e39a98cdde147fd84d9":[2,0,1,5,13],
+"classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a853dc2ebab4b052d6fb279b261fce2c7":[2,0,1,5,16],
+"classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a86ec61e722ad68c9f09e95a7ceaa4393":[2,0,1,5,0],
+"classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a9226dbf3ca7a02c871cacbe3b4865b6b":[2,0,1,5,15],
+"classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#a970dd5b32ca7601b29426a9384a64f56":[2,0,1,5,11],
+"classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#ac7c3343a39a736921d804796a067acec":[2,0,1,5,8],
+"classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#ac8eb0f7f78f5d0f21575a94c3f279926":[2,0,1,5,14],
+"classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#adbaf560c74694b7ccdd6f26b2d320b35":[2,0,1,5,6],
+"classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#ae212c413d5ef30bdf35e2987f3752a8d":[2,0,1,5,4],
+"classAdobeXMPCore_1_1ICoreObjectFactory__v1.html#ae6c1338b3fc954aac0b3bb75a2f17d71":[2,0,1,5,7],
+"classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html":[2,0,1,6],
+"classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html#a07ba5caa2e3a47de4f35f2ee33fbf554":[2,0,1,6,2],
+"classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html#a6b12abfcc01cea39851ac51977cb1562":[2,0,1,6,1],
+"classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html#a8fab4e8f7a4b6b652c623f58d7e3432b":[2,0,1,6,0],
+"classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html#a9301ef751ffa40af95bbb95e19fb6c5f":[2,0,1,6,5],
+"classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html#a986a5bee0a91be4d115e6b7dd5a8974b":[2,0,1,6,4],
+"classAdobeXMPCore_1_1IDOMImplementationRegistry__v1.html#afa13c6385c515368135185b5f53814ad":[2,0,1,6,3],
+"classAdobeXMPCore_1_1IDOMParser__v1.html":[2,0,1,7],
+"classAdobeXMPCore_1_1IDOMParser__v1.html#a0d771fa042d5c5b3cf015f567f8aea9f":[2,0,1,7,2],
+"classAdobeXMPCore_1_1IDOMParser__v1.html#a8cbde9bf86ebb4ef4a6968e39b601670":[2,0,1,7,1],
+"classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345":[2,0,1,7,0],
+"classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345a2adb910039a572f5e73dbb94f680ed18":[2,0,1,7,0,5],
+"classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345a6ce0fb64b1a284951f50aacdf76e28b9":[2,0,1,7,0,0],
+"classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345a720d171caeb649caf22e27ed4a39bd15":[2,0,1,7,0,2],
+"classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345a8fca6913cbd9d4f787e53fdcfb54f2bf":[2,0,1,7,0,4],
+"classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345aabbc604d77794e6cecedf1bdd947d252":[2,0,1,7,0,3],
+"classAdobeXMPCore_1_1IDOMParser__v1.html#a9f311215532a5fa1d15a491fc7e71345ac19566553b38e9bf6c5361a8aa9bb181":[2,0,1,7,0,1],
+"classAdobeXMPCore_1_1IDOMParser__v1.html#ad57596496a555684497ea918569df7d2":[2,0,1,7,4],
+"classAdobeXMPCore_1_1IDOMParser__v1.html#adc690f22fbc146bebb91366de7a8739e":[2,0,1,7,3],
+"classAdobeXMPCore_1_1IDOMSerializer__v1.html":[2,0,1,8],
+"classAdobeXMPCore_1_1IDOMSerializer__v1.html#a3631ef4b5bf7814d37f9582463d7d453":[2,0,1,8,0],
+"classAdobeXMPCore_1_1IDOMSerializer__v1.html#a4b8a7832e2dbbadfaed717723d3d20d3":[2,0,1,8,1],
+"classAdobeXMPCore_1_1IDOMSerializer__v1.html#ac8e65d9aed0a6afc951e075178d81338":[2,0,1,8,2],
+"classAdobeXMPCore_1_1IMetadata__v1.html":[2,0,1,9],
+"classAdobeXMPCore_1_1IMetadata__v1.html#a114ea75cdd7e1101455af000e01ab17d":[2,0,1,9,1],
+"classAdobeXMPCore_1_1IMetadata__v1.html#a179a82bd3f38996331e9ee0bdee997b9":[2,0,1,9,3],
+"classAdobeXMPCore_1_1IMetadata__v1.html#a275726ca1831735fff14119b224f1028":[2,0,1,9,5],
+"classAdobeXMPCore_1_1IMetadata__v1.html#a451bb5293ea38730bee99853b1d3237b":[2,0,1,9,2],
+"classAdobeXMPCore_1_1IMetadata__v1.html#a707b78542a91b833a6cf45be3516813c":[2,0,1,9,4],
+"classAdobeXMPCore_1_1IMetadata__v1.html#ada50f9f0415ce96ac1df948f510a3f75":[2,0,1,9,0],
+"classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html":[2,0,1,10],
+"classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a10caae18d32483ff4a5737c448f4f7c3":[2,0,1,10,10],
+"classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a16669cda8f88d9af18a248919103df22":[2,0,1,10,4],
+"classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a1cff14bbc35fabd9fff60706ebfe23e8":[2,0,1,10,7],
+"classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a3dfd0d265952656c9b6641d8ce523e40":[2,0,1,10,13],
+"classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a4ba4127d58b778c0148f853d7a60b8fe":[2,0,1,10,8],
+"classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a57a2ef1d7b5f9fb2429220becad03413":[2,0,1,10,5],
+"classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a5a6915e1bdfa1059f4ad690bcf14a342":[2,0,1,10,6],
+"classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a6ed5fd946dfad6406539562178b3caeb":[2,0,1,10,1],
+"classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#a722b12c77879087c26990650d99d3339":[2,0,1,10,3],
+"classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#aa4575950788bfa70dee5fad2d851230e":[2,0,1,10,12],
+"classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#aabfdffd2a782e83a627bbe1c687a922b":[2,0,1,10,0],
+"classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#ab030c648e112799541eb3433967207c7":[2,0,1,10,11],
+"classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#ab6fe5421aa97518a85e87bba9f4bc3a6":[2,0,1,10,9],
+"classAdobeXMPCore_1_1INameSpacePrefixMap__v1.html#ae30d56519a24afe9c22ae353fedbd8f7":[2,0,1,10,2],
+"classAdobeXMPCore_1_1INodeIterator__v1.html":[2,0,1,12],
+"classAdobeXMPCore_1_1INodeIterator__v1.html#a0b15b5a46f9bbd0a522c95a0fe5a8210":[2,0,1,12,2],
+"classAdobeXMPCore_1_1INodeIterator__v1.html#a14aecd54a26e8a4a87f8ec0a347f1757":[2,0,1,12,3],
+"classAdobeXMPCore_1_1INodeIterator__v1.html#a38521f687591c9b57da1b7426d6e33d8":[2,0,1,12,11],
+"classAdobeXMPCore_1_1INodeIterator__v1.html#a43c25618c112c18848e352e73de1dce9":[2,0,1,12,5],
+"classAdobeXMPCore_1_1INodeIterator__v1.html#a6aac63804dfbdbd0a85440da48eb8bb3":[2,0,1,12,10],
+"classAdobeXMPCore_1_1INodeIterator__v1.html#a7a99393cbe890dd34062e969fe57d704":[2,0,1,12,6],
+"classAdobeXMPCore_1_1INodeIterator__v1.html#a9ddc75f7ef4005df31c505d319b2b534":[2,0,1,12,4],
+"classAdobeXMPCore_1_1INodeIterator__v1.html#ad9a22d79ead6cc79fb5bd4da858e99ce":[2,0,1,12,1],
+"classAdobeXMPCore_1_1INodeIterator__v1.html#ade5c1340391031ffccef4ba9122845c0":[2,0,1,12,7],
+"classAdobeXMPCore_1_1INodeIterator__v1.html#aeb5758def29eb45d016205f8c2f3349f":[2,0,1,12,8],
+"classAdobeXMPCore_1_1INodeIterator__v1.html#aebc78681e60a09759ce7ab820716a0a2":[2,0,1,12,0],
+"classAdobeXMPCore_1_1INodeIterator__v1.html#af2a3dac600bde63b628fc701fbce6db2":[2,0,1,12,9],
+"classAdobeXMPCore_1_1INode__v1.html":[2,0,1,11],
+"classAdobeXMPCore_1_1INode__v1.html#a08f9ed4dee6c899f65eb51e3d7f9858d":[2,0,1,11,7],
+"classAdobeXMPCore_1_1INode__v1.html#a0d545f6b4b2b9760b63c902317c43a94":[2,0,1,11,36],
+"classAdobeXMPCore_1_1INode__v1.html#a0d67ad7708fb6f007ea1152b79e65f49":[2,0,1,11,6],
+"classAdobeXMPCore_1_1INode__v1.html#a1524d74e397863cb9324838862f70d7b":[2,0,1,11,26],
+"classAdobeXMPCore_1_1INode__v1.html#a2447e6ea34adbe073a639c703015db90":[2,0,1,11,15],
+"classAdobeXMPCore_1_1INode__v1.html#a2831fe03981afd9af12e775bda89361e":[2,0,1,11,27],
+"classAdobeXMPCore_1_1INode__v1.html#a2866bcde949c37aeb72cdba8dddcac95":[2,0,1,11,25],
+"classAdobeXMPCore_1_1INode__v1.html#a2d613694adcedb569145aff06d0bc595":[2,0,1,11,4],
+"classAdobeXMPCore_1_1INode__v1.html#a2e8319347c3b01638027b4abbe72fda6":[2,0,1,11,17],
+"classAdobeXMPCore_1_1INode__v1.html#a3289deed9715f661f5f588dc38642baa":[2,0,1,11,34],
+"classAdobeXMPCore_1_1INode__v1.html#a4533c1d11fc2d32c166c9ce05fe01b3c":[2,0,1,11,20],
+"classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913":[2,0,1,11,0],
+"classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a60c6b4c3dfc99d8584866f5f18ff2610":[2,0,1,11,0,2],
+"classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a68bac77fd8140a60490eb78f0b533e21":[2,0,1,11,0,4],
+"classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a7542b80b3b688cd3d210d62d12dbe471":[2,0,1,11,0,3],
+"classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a97e0c4fb69029d0d152c068c10736234":[2,0,1,11,0,1],
+"classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913aae32cc414cc7adaf3b2a1c375f2cb3bb":[2,0,1,11,0,0],
+"classAdobeXMPCore_1_1INode__v1.html#a47da5e5605d69d6d6ced761e7c39d24f":[2,0,1,11,21],
+"classAdobeXMPCore_1_1INode__v1.html#a4b615b0eef081f3c23385f28728aa462":[2,0,1,11,3],
+"classAdobeXMPCore_1_1INode__v1.html#a4fb3c837b8c28501b2e7a3376a2cf382":[2,0,1,11,29],
+"classAdobeXMPCore_1_1INode__v1.html#a5075ad988ba61e055b6ee6bbeaf25e25":[2,0,1,11,35],
+"classAdobeXMPCore_1_1INode__v1.html#a549f1adeea470827a6201b3b4c596f1e":[2,0,1,11,22],
+"classAdobeXMPCore_1_1INode__v1.html#a55c6097b36412f9facc8a4cf7e898186":[2,0,1,11,43],
+"classAdobeXMPCore_1_1INode__v1.html#a5a2692b8281984d9fe6de6c169332f2c":[2,0,1,11,41],
+"classAdobeXMPCore_1_1INode__v1.html#a5a2e68d1345ed6ca2e5d1bfada42b13f":[2,0,1,11,14],
+"classAdobeXMPCore_1_1INode__v1.html#a5a5e6dd9a58a288f20fd0a667a30a2ae":[2,0,1,11,33],
+"classAdobeXMPCore_1_1INode__v1.html#a5ea317fcd59694184089a9774c866b22":[2,0,1,11,11],
+"classAdobeXMPCore_1_1INode__v1.html#a673b6b4d69b2c9d85f2fa440d413ace3":[2,0,1,11,2],
+"classAdobeXMPCore_1_1INode__v1.html#a68350da5edc0668811b9bb890d5777b9":[2,0,1,11,16],
+"classAdobeXMPCore_1_1INode__v1.html#a6d9067d66571727b622ffccade5225f0":[2,0,1,11,18],
+"classAdobeXMPCore_1_1INode__v1.html#a72dc534e1af718599ac185563a02612a":[2,0,1,11,8],
+"classAdobeXMPCore_1_1INode__v1.html#a7701069162b4f677026624a5f2b3f788":[2,0,1,11,24],
+"classAdobeXMPCore_1_1INode__v1.html#a844a40cd69e0d87226ce1146d733edd6":[2,0,1,11,28],
+"classAdobeXMPCore_1_1INode__v1.html#a87f03e9924418ae5f7b6fa63def6eee8":[2,0,1,11,40],
+"classAdobeXMPCore_1_1INode__v1.html#a96a99fa56a2b088691ecad5a0cf6e54d":[2,0,1,11,23],
+"classAdobeXMPCore_1_1INode__v1.html#a9972ca54948952083a930166448c05c0":[2,0,1,11,38],
+"classAdobeXMPCore_1_1INode__v1.html#aa087d2f94e42fdd5ece1bd22dfea66d5":[2,0,1,11,42],
+"classAdobeXMPCore_1_1INode__v1.html#aa168f37bc38763df55fb1022d55886bd":[2,0,1,11,39],
+"classAdobeXMPCore_1_1INode__v1.html#aa288c34c9bccb73ae73b653f3c769ade":[2,0,1,11,31],
+"classAdobeXMPCore_1_1INode__v1.html#ab55c9dad49840d58a1c2c16b9f1962ad":[2,0,1,11,13],
+"classAdobeXMPCore_1_1INode__v1.html#ab78ba3aaadf4b0109e610505e753de50":[2,0,1,11,30],
+"classAdobeXMPCore_1_1INode__v1.html#ad5f62a4ae9a9630c8106a04bd0c2a0a3":[2,0,1,11,12],
+"classAdobeXMPCore_1_1INode__v1.html#ad8e7ef140cb5ff094789abfcc879c94b":[2,0,1,11,10],
+"classAdobeXMPCore_1_1INode__v1.html#adfd1ce7bd20268240769f8a6a405a8ee":[2,0,1,11,32],
+"classAdobeXMPCore_1_1INode__v1.html#aeb9797165d96d06998de79dd19a9f846":[2,0,1,11,9],
+"classAdobeXMPCore_1_1INode__v1.html#aee7e1f35ac174874234ba5e913a6bfaa":[2,0,1,11,19],
+"classAdobeXMPCore_1_1INode__v1.html#af180be62ecd26edf90df0fe3ea75941e":[2,0,1,11,5],
+"classAdobeXMPCore_1_1INode__v1.html#af898813d17af58fb1a828d92a74d7dd3":[2,0,1,11,37],
+"classAdobeXMPCore_1_1INode__v1.html#affdbed044179bbde65ffc28b20e28ecb":[2,0,1,11,1],
+"classAdobeXMPCore_1_1IPathSegment__v1.html":[2,0,1,14],
+"classAdobeXMPCore_1_1IPathSegment__v1.html#a0febe9ac58c1a2a3e0a573f1bb9c25c3":[2,0,1,14,9],
+"classAdobeXMPCore_1_1IPathSegment__v1.html#a1ef63ec40233a30d4ec9f165e5332a43":[2,0,1,14,1],
+"classAdobeXMPCore_1_1IPathSegment__v1.html#a49da0c0bed14c7afb07d263570f09221":[2,0,1,14,4],
+"classAdobeXMPCore_1_1IPathSegment__v1.html#a6552774db8039b1ddc02491fc82b2699":[2,0,1,14,6],
+"classAdobeXMPCore_1_1IPathSegment__v1.html#a78df7478295fed763eadac0cefb79e1b":[2,0,1,14,3],
+"classAdobeXMPCore_1_1IPathSegment__v1.html#a854506c44a7acfc0246709a6cd74638d":[2,0,1,14,5],
+"classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9":[2,0,1,14,0],
+"classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9a2eb4a4d89f26c720eb393eb56997ba09":[2,0,1,14,0,4],
+"classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9a6c99b2ecc364a71db39b2e9ff0a94880":[2,0,1,14,0,5],
+"classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9a8d1e54d4a1f97847f03eb7ff36c263a7":[2,0,1,14,0,3],
+"classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9ab178c4df00dc4b10c7c5937d82499a84":[2,0,1,14,0,0],
+"classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9ac351f884bf338c15a4a619e89216e2b9":[2,0,1,14,0,1],
+"classAdobeXMPCore_1_1IPathSegment__v1.html#a8a9f850adf6f3f510298df13896b76b9ae86feb38a46c4fb2ecb35bb651dca161":[2,0,1,14,0,2],
+"classAdobeXMPCore_1_1IPathSegment__v1.html#a9c7e02cccca4d74467483ab442871376":[2,0,1,14,7],
+"classAdobeXMPCore_1_1IPathSegment__v1.html#ab94dc022fdf9edad3423c8f281f95674":[2,0,1,14,2],
+"classAdobeXMPCore_1_1IPathSegment__v1.html#abc957b6cdedc2b4feb8943b42d2d3fe9":[2,0,1,14,10],
+"classAdobeXMPCore_1_1IPathSegment__v1.html#ae6726749b73c1c99caa05e65138f9a64":[2,0,1,14,8],
+"classAdobeXMPCore_1_1IPath__v1.html":[2,0,1,13],
+"classAdobeXMPCore_1_1IPath__v1.html#a054e7cb641a72c7d3e7f35ef1225c6f4":[2,0,1,13,3],
+"classAdobeXMPCore_1_1IPath__v1.html#a0da106657f48b1c8859e31de357015d4":[2,0,1,13,4],
+"classAdobeXMPCore_1_1IPath__v1.html#a64165b6024ea00ea1cc1c13bd6708a44":[2,0,1,13,7],
+"classAdobeXMPCore_1_1IPath__v1.html#a6a0bc65d535aabdfd52608b29270c558":[2,0,1,13,11],
+"classAdobeXMPCore_1_1IPath__v1.html#a75c08c101e11f3059d7bff2fde6e6817":[2,0,1,13,8],
+"classAdobeXMPCore_1_1IPath__v1.html#a7c7c78fcf2aac3af21c3803cb72b0afc":[2,0,1,13,5],
+"classAdobeXMPCore_1_1IPath__v1.html#a7de20abb4af96e274ef5476a1e718d77":[2,0,1,13,9],
+"classAdobeXMPCore_1_1IPath__v1.html#ac6b2215fb0cf7e14d96915bcbdd6d5c8":[2,0,1,13,6],
+"classAdobeXMPCore_1_1IPath__v1.html#ad11a65bed658401f8cfcd41387e2b8a6":[2,0,1,13,1],
+"classAdobeXMPCore_1_1IPath__v1.html#ad2d1a79e6c8e270c1cb9acee09e7881e":[2,0,1,13,0],
+"classAdobeXMPCore_1_1IPath__v1.html#ad5920be57f3243c5601ad214e3b1e0c1":[2,0,1,13,10],
+"classAdobeXMPCore_1_1IPath__v1.html#af056942f9dba913762b258cb5b422300":[2,0,1,13,2],
+"classAdobeXMPCore_1_1ISimpleNode__v1.html":[2,0,1,15],
+"classAdobeXMPCore_1_1ISimpleNode__v1.html#a0391485cf8c432ba03874d4329c5510e":[2,0,1,15,5],
+"classAdobeXMPCore_1_1ISimpleNode__v1.html#a12de1bae1dcb7c8302044df2b4fddb02":[2,0,1,15,0],
+"classAdobeXMPCore_1_1ISimpleNode__v1.html#a6164e2541b1245d43f1e21b94f75e20c":[2,0,1,15,3],
+"classAdobeXMPCore_1_1ISimpleNode__v1.html#a8781cf6bb583b419cf5fcaf6cf311bd2":[2,0,1,15,4],
+"classAdobeXMPCore_1_1ISimpleNode__v1.html#a9221d195ce7d207b65652008666e04d6":[2,0,1,15,1],
+"classAdobeXMPCore_1_1ISimpleNode__v1.html#a92d0fc99b2af5ef28027e693f9b37964":[2,0,1,15,2],
+"classAdobeXMPCore_1_1IStructureNode__v1.html":[2,0,1,16],
+"classAdobeXMPCore_1_1IStructureNode__v1.html#a0cdcce18c6ebbb1764286e3e2456c694":[2,0,1,16,0],
+"classAdobeXMPCore_1_1IStructureNode__v1.html#a1463dda9dea83f54c69ad72f105f5eff":[2,0,1,16,4],
+"classAdobeXMPCore_1_1IStructureNode__v1.html#a22d61015856c67f05237af9513e98ff7":[2,0,1,16,11],
+"classAdobeXMPCore_1_1IStructureNode__v1.html#a23ea406052e9201f3b35e59cc2b206a5":[2,0,1,16,8],
+"classAdobeXMPCore_1_1IStructureNode__v1.html#a25d8ec1ee8031cb693bb8c8a8102c8f8":[2,0,1,16,12],
+"classAdobeXMPCore_1_1IStructureNode__v1.html#a5764457c137c97a42af6ca156563e455":[2,0,1,16,13],
+"classAdobeXMPCore_1_1IStructureNode__v1.html#a8ee43418308bf6f80d1fc90eb84f5db0":[2,0,1,16,2],
+"classAdobeXMPCore_1_1IStructureNode__v1.html#a9b380e96dca941b5f9c3143931f7f633":[2,0,1,16,10],
+"classAdobeXMPCore_1_1IStructureNode__v1.html#aaf000a83b1448eb8453f37fc42543ae7":[2,0,1,16,7],
+"classAdobeXMPCore_1_1IStructureNode__v1.html#ab39f8d743ba67fc4e6a21b08b03fdde2":[2,0,1,16,1],
+"classAdobeXMPCore_1_1IStructureNode__v1.html#ab815d3b2335f27dccc15472196696e08":[2,0,1,16,9],
+"classAdobeXMPCore_1_1IStructureNode__v1.html#af5ce2401c3613c06ccb8b8fa69af4a1c":[2,0,1,16,6],
+"classAdobeXMPCore_1_1IStructureNode__v1.html#af8fe4c8e7c9a5262b1125aea6606fe2e":[2,0,1,16,3],
+"classAdobeXMPCore_1_1IStructureNode__v1.html#afd94de430e29982143eb04315b954b24":[2,0,1,16,5],
+"classTXMPFiles.html":[2,0,2],
+"classTXMPFiles.html#a03e6c681e827666690f0e5567b0b2a8a":[2,0,2,12],
+"classTXMPFiles.html#a07b7c4b44fb0e0a7d115ddd5ba22f926":[2,0,2,9],
+"classTXMPFiles.html#a0874bbbf41c9490abfb613bfe297327d":[2,0,2,19]
+};
diff --git a/docs/API/navtreeindex6.js b/docs/API/navtreeindex6.js
new file mode 100755
index 0000000..9b073ce
--- /dev/null
+++ b/docs/API/navtreeindex6.js
@@ -0,0 +1,253 @@
+var NAVTREEINDEX6 =
+{
+"classTXMPFiles.html#a0de588c4b98086206b3a5d737012106d":[2,0,2,14],
+"classTXMPFiles.html#a14f01e38454178578fd25fff6024fd54":[2,0,2,0],
+"classTXMPFiles.html#a1d3f32c2b95659ada198775e2f67c808":[2,0,2,7],
+"classTXMPFiles.html#a1e8de80c252b60b332dc4bc524139fd8":[2,0,2,38],
+"classTXMPFiles.html#a2303dfcc00f108bda202600e3da9c109":[2,0,2,8],
+"classTXMPFiles.html#a29a11a1539d6300da3fb4c7e9ea02bb6":[2,0,2,6],
+"classTXMPFiles.html#a311fc36fdf7270fe05b1c531cdbbd009":[2,0,2,16],
+"classTXMPFiles.html#a36abe01988d4ca3939138e871c7b75e7":[2,0,2,2],
+"classTXMPFiles.html#a3f1483fcc92860460d3772216dfaef81":[2,0,2,26],
+"classTXMPFiles.html#a42ca0bbc5ac66a8de1710e03a7ff17b3":[2,0,2,18],
+"classTXMPFiles.html#a43a98633a0090fb4ade76edf24302ab1":[2,0,2,36],
+"classTXMPFiles.html#a502ed01119e0421413e773f4f42683ec":[2,0,2,29],
+"classTXMPFiles.html#a5977d8094086a7c2bfa9abe03af2265c":[2,0,2,39],
+"classTXMPFiles.html#a5eaa92724cc82d933a32eff9c4636739":[2,0,2,1],
+"classTXMPFiles.html#a6dfa135d53143d45e5ff22efa554398e":[2,0,2,23],
+"classTXMPFiles.html#a6e521c034728b59ab55213a9d8203d1e":[2,0,2,17],
+"classTXMPFiles.html#a794e1830a84a6328eaa1995ba5aa6874":[2,0,2,20],
+"classTXMPFiles.html#a7b86c130fdbd54b5ac158ec3fee93777":[2,0,2,31],
+"classTXMPFiles.html#a7f505664c41d7304fb757d6009b0751c":[2,0,2,10],
+"classTXMPFiles.html#a83335ee20bb3ea543c8c86a5757a7753":[2,0,2,35],
+"classTXMPFiles.html#a8e37b25dd1cba1e9a3f45037022717f2":[2,0,2,30],
+"classTXMPFiles.html#aa283e2a1c16918c86148446859ed1a2d":[2,0,2,37],
+"classTXMPFiles.html#abf0defebf7ca7d2cba7aed3c5dc107df":[2,0,2,21],
+"classTXMPFiles.html#acb9e16a1477ec67fa6da6d736a9bc131":[2,0,2,15],
+"classTXMPFiles.html#acc4b3bc2109fa98b4083df0d974f7dfb":[2,0,2,22],
+"classTXMPFiles.html#accc6c1cef9f124f6c5ed360251aa5aa7":[2,0,2,34],
+"classTXMPFiles.html#acf343fb6771b482ca72d467233a6f920":[2,0,2,4],
+"classTXMPFiles.html#acfef1688f3a62e2f465bb3a27da7b4ac":[2,0,2,25],
+"classTXMPFiles.html#ad3f7babdc07c7de0d0cd9a3362b4710a":[2,0,2,27],
+"classTXMPFiles.html#ad986c7b2e2d82eaef6cf6a33e9d09b65":[2,0,2,5],
+"classTXMPFiles.html#ada77eab74c3440659db3122f6ec8b7f4":[2,0,2,28],
+"classTXMPFiles.html#ae403e54b9cc5df0f59d79e31cce84e3f":[2,0,2,32],
+"classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927":[2,0,2,11],
+"classTXMPFiles.html#af540b3ea689a6d7381dca4f52132a4ac":[2,0,2,3],
+"classTXMPFiles.html#af9931d081cb19f98c81e41786030765b":[2,0,2,13],
+"classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb":[2,0,2,24],
+"classTXMPFiles.html#afd30a5ad1765a9288e7f6ef118255a73":[2,0,2,33],
+"classTXMPIterator.html":[2,0,3],
+"classTXMPIterator.html#a124a1dd1ab3ff0d236e4d4b967dafcd9":[2,0,3,7],
+"classTXMPIterator.html#a30b4d78974b347e4fcd275f1f65a61b2":[2,0,3,10],
+"classTXMPIterator.html#a3aab7b2ddd84f25e024d7c3e66161cac":[2,0,3,2],
+"classTXMPIterator.html#a5c1bd03e776a91cbb6fd02991fe08e1b":[2,0,3,1],
+"classTXMPIterator.html#a6b2b7a3d6359aec216adf32bdf7fb140":[2,0,3,4],
+"classTXMPIterator.html#a88e855c18b2b15f7b8a5ccf3b9398352":[2,0,3,0],
+"classTXMPIterator.html#a911554533e8a3f09ab8870bd54462196":[2,0,3,5],
+"classTXMPIterator.html#a9a59621f2961ee11b164d82c8c3c0295":[2,0,3,9],
+"classTXMPIterator.html#ab0965286a8cabeafc92fdc52f643003f":[2,0,3,3],
+"classTXMPIterator.html#ad767d731320d3f4c997c6ce9f7f8fa63":[2,0,3,8],
+"classTXMPIterator.html#aeecf240d827e33c8b1d7040a99dc7600":[2,0,3,11],
+"classTXMPIterator.html#af96460ad80e55b76214c48375fda05d7":[2,0,3,6],
+"classTXMPMeta.html":[2,0,4],
+"classTXMPMeta.html#a00d7314dc970ad390499ce9db27d314a":[2,0,4,5],
+"classTXMPMeta.html#a05199e2a4bc61db7aed207759e899bc2":[2,0,4,3],
+"classTXMPMeta.html#a06a3241c7fa5df87f61dff02fca23a0c":[2,0,4,30],
+"classTXMPMeta.html#a0bfc04142a35671a4c8989fcaca6d6c2":[2,0,4,29],
+"classTXMPMeta.html#a0d98bc15bdb0f45737b15fc6822f3bc6":[2,0,4,45],
+"classTXMPMeta.html#a0e44c30e7527064909e5f7035d53c4f5":[2,0,4,66],
+"classTXMPMeta.html#a12b2435ba039c62a164951948c016eb4":[2,0,4,23],
+"classTXMPMeta.html#a1570eb89d613b4a94ca572e4644168cc":[2,0,4,46],
+"classTXMPMeta.html#a15720ee8e732232fa25989870cf99846":[2,0,4,47],
+"classTXMPMeta.html#a1dfd6a08ebfd1a6364b3a7b6584bcc28":[2,0,4,57],
+"classTXMPMeta.html#a1e90e0c8cd8c5670267bb693cf3660fe":[2,0,4,49],
+"classTXMPMeta.html#a2774a6f15ae22f0002201b58c46bfb49":[2,0,4,44],
+"classTXMPMeta.html#a2cc58d8316043b035643e7c21633bc13":[2,0,4,36],
+"classTXMPMeta.html#a2f561295e73047ee90765558d29bd650":[2,0,4,32],
+"classTXMPMeta.html#a31c7ef089e8fadff122044afa27d200a":[2,0,4,43],
+"classTXMPMeta.html#a3b0f2f6bae57931ea96775f03608c0ed":[2,0,4,61],
+"classTXMPMeta.html#a3f989597e95db929676273cacd4ea09a":[2,0,4,11],
+"classTXMPMeta.html#a466fa349c9765f39ca6b1450908e769f":[2,0,4,20],
+"classTXMPMeta.html#a489e10a6686aa813ee437e93ab2c5943":[2,0,4,62],
+"classTXMPMeta.html#a492465c588d6d4cb8e30f94790e66f58":[2,0,4,15],
+"classTXMPMeta.html#a4d5a601c9b77f6f6ab5f14e658de58ef":[2,0,4,40],
+"classTXMPMeta.html#a4f768a8cb35cabff1cf4187aa6a88dd3":[2,0,4,6],
+"classTXMPMeta.html#a5415cfc01a9cb8786939246571a23a9d":[2,0,4,38],
+"classTXMPMeta.html#a61ffb3aa3e387d8ff9c1f4ebd26606c7":[2,0,4,0],
+"classTXMPMeta.html#a67bbfe3f55af71a5122512ebb695e4ed":[2,0,4,48],
+"classTXMPMeta.html#a6c30fae26173167958b6f0da95a53865":[2,0,4,69],
+"classTXMPMeta.html#a6ca653436995bbb76315efe7934afd4c":[2,0,4,7],
+"classTXMPMeta.html#a7708c31c9af3e740b27a4893dcd9aa47":[2,0,4,33],
+"classTXMPMeta.html#a77d4a1bf7831f39073af9ea1544ebefa":[2,0,4,67],
+"classTXMPMeta.html#a7b383f5b357fff040cdbde82f4f43f26":[2,0,4,41],
+"classTXMPMeta.html#a7f749be7699890bbaa2e2dbd05d45a90":[2,0,4,63],
+"classTXMPMeta.html#a81273a152fb7b19e99c62ee39bf723f2":[2,0,4,53],
+"classTXMPMeta.html#a81347a92becd387a14f4d47c582f129a":[2,0,4,17],
+"classTXMPMeta.html#a885ef7127b897e349f71fa493ace3c94":[2,0,4,37],
+"classTXMPMeta.html#a8ac5a02a13d439ff33ed4431986da681":[2,0,4,68],
+"classTXMPMeta.html#a8ce15f7de7fd3b258f07158ab5fa88be":[2,0,4,13],
+"classTXMPMeta.html#a8d607eb80edb919fe8b07efe300008d2":[2,0,4,70],
+"classTXMPMeta.html#a92055b3ae18dfd5e5491108f59318f17":[2,0,4,56],
+"classTXMPMeta.html#a9261b80d62e77a10ff1a89843bfa10a5":[2,0,4,18],
+"classTXMPMeta.html#a9521e3838272ec501ffdb60ff3eb482f":[2,0,4,59],
+"classTXMPMeta.html#aa20c84e7549d0a3252fa29a1e83a757a":[2,0,4,27],
+"classTXMPMeta.html#aaddc5f555de57472939a41346e276817":[2,0,4,19],
+"classTXMPMeta.html#ab0d179ed95487d4fd4f2680c1fbe0d40":[2,0,4,28],
+"classTXMPMeta.html#ab79aae864b3ce190d0699252f48e0acc":[2,0,4,8],
+"classTXMPMeta.html#abab5013870cd47eb0d9d701653735a02":[2,0,4,4],
+"classTXMPMeta.html#abc1211f47225b5973a170ff952743264":[2,0,4,9],
+"classTXMPMeta.html#abc258e027780a15be65a88fcfd4e1fd4":[2,0,4,14],
+"classTXMPMeta.html#ac0368ddbaa4d689cd5b1aff1c88bb0e1":[2,0,4,42],
+"classTXMPMeta.html#ac2e798da5f9d94e486382a41e73fcea3":[2,0,4,64],
+"classTXMPMeta.html#ac395e094cab251a0593d508594b21521":[2,0,4,65],
+"classTXMPMeta.html#ac64a4251d157937f69b73f2ffac4f7cc":[2,0,4,22],
+"classTXMPMeta.html#ac8b555ba99904fa49bb4851a60cc3844":[2,0,4,12],
+"classTXMPMeta.html#acbe8f556a5b32542c44fa9de9648ad41":[2,0,4,2],
+"classTXMPMeta.html#acc50625611f6aad405aa47197b6d0055":[2,0,4,58],
+"classTXMPMeta.html#acf1935be8e4849976dfc02325424960a":[2,0,4,54],
+"classTXMPMeta.html#ada43d63894350e23a4307c41b7335eca":[2,0,4,1],
+"classTXMPMeta.html#adcf8a1959a8bd42641a42cbd4d64a5b7":[2,0,4,31],
+"classTXMPMeta.html#adf57895625ad118782ed48a3931848b7":[2,0,4,21],
+"classTXMPMeta.html#ae4e8ee4cc7441bb9464dac87f2d74650":[2,0,4,34],
+"classTXMPMeta.html#ae7bb38d9b3857b08106630a386b47332":[2,0,4,51],
+"classTXMPMeta.html#aeb7679e92b126800b7bd906acb2f26e8":[2,0,4,10],
+"classTXMPMeta.html#aee41442af4f049c1d6698fc27ce854d0":[2,0,4,50],
+"classTXMPMeta.html#aeee10669445f77139d5634199ff01079":[2,0,4,60],
+"classTXMPMeta.html#aeefe49bbf669770d769f4fe0ea566bd0":[2,0,4,25],
+"classTXMPMeta.html#af1defbb73f919eae06456a655dea726c":[2,0,4,39],
+"classTXMPMeta.html#af22b116d71ecbbebea016ec5337e7066":[2,0,4,16],
+"classTXMPMeta.html#af28589472d8c0397db6cef868f2b8c97":[2,0,4,26],
+"classTXMPMeta.html#af91fa4bc4f51a56e35bcfb554783b050":[2,0,4,35],
+"classTXMPMeta.html#af9531b949a462f5663b1f3fd99464c19":[2,0,4,52],
+"classTXMPMeta.html#afbfebded0b85b08bd9c5ba0d7dae07e0":[2,0,4,24],
+"classTXMPMeta.html#afd059cc7cd9f906e12dab04e380e495c":[2,0,4,55],
+"classTXMPUtils.html":[2,0,5],
+"classTXMPUtils.html#a1bb2ed614886ff67863744ec56041c43":[2,0,5,37],
+"classTXMPUtils.html#a1e61e273065b10517ca127d5a553a8dc":[2,0,5,29],
+"classTXMPUtils.html#a265559d1b4b78e34a460e935c11177d7":[2,0,5,18],
+"classTXMPUtils.html#a39d5de77b29441a30f2f879755b8e7d8":[2,0,5,32],
+"classTXMPUtils.html#a40ae0ce2065fcb71725e37137884e172":[2,0,5,8],
+"classTXMPUtils.html#a40c645803530662e08d042b4b7c6190d":[2,0,5,35],
+"classTXMPUtils.html#a458f8e8729e2334fe54ca8f691a9db23":[2,0,5,4],
+"classTXMPUtils.html#a47d93f9cb4acd9d7ec6b450100209bec":[2,0,5,22],
+"classTXMPUtils.html#a47fa195aa2e1457aa1f74f7e1ed06da6":[2,0,5,3],
+"classTXMPUtils.html#a509691eb270988de6a770c9c8304ab6b":[2,0,5,10],
+"classTXMPUtils.html#a6001b4ff54c60fdf0c40e6b78a5c457a":[2,0,5,34],
+"classTXMPUtils.html#a60d33e6ce30286028acca47b2b6e7a0b":[2,0,5,17],
+"classTXMPUtils.html#a6146a522a3974b4088d6e8241e9cd223":[2,0,5,11],
+"classTXMPUtils.html#a61852aaba494c8fbad5a6c0c4caf21f5":[2,0,5,25],
+"classTXMPUtils.html#a6187cd5fef0eccecac6805d4114dcd2e":[2,0,5,33],
+"classTXMPUtils.html#a66c5ddee47aa36ed906353f94ca18d2e":[2,0,5,36],
+"classTXMPUtils.html#a706eb85b8401b8682a01348f7e25ee3d":[2,0,5,9],
+"classTXMPUtils.html#a711cae0cb1b673ff5e208b4ae458d120":[2,0,5,24],
+"classTXMPUtils.html#a7882bbc2e412ff476c2d97d98808d91c":[2,0,5,7],
+"classTXMPUtils.html#a84f2a7b3960a17315032915674e21960":[2,0,5,16],
+"classTXMPUtils.html#a8a507b006286460814e0486c622d828c":[2,0,5,19],
+"classTXMPUtils.html#a96bcc45febac55f6c49951815b7de2ef":[2,0,5,39],
+"classTXMPUtils.html#a9fc7f1771032f59f9020aeda4f91991d":[2,0,5,2],
+"classTXMPUtils.html#aa17838f062e5414bc0929f67ac94a3aa":[2,0,5,30],
+"classTXMPUtils.html#aa9bc319ae425f1e371a3c188b1f9010c":[2,0,5,38],
+"classTXMPUtils.html#aaaaaadb23f4089daa795f50cba4f405c":[2,0,5,15],
+"classTXMPUtils.html#aabd4e479d2708a9ea3135cd441faa7ea":[2,0,5,20],
+"classTXMPUtils.html#ab73bfa15116e6d702044542e0a43cce9":[2,0,5,0],
+"classTXMPUtils.html#abbd4d691c83287ea2fc6b1e33e5858b8":[2,0,5,26],
+"classTXMPUtils.html#abe5d2dcc03c5442202203bba5ca7b172":[2,0,5,23],
+"classTXMPUtils.html#ac83f0b963ea64d7eee0b481e15a8439c":[2,0,5,27],
+"classTXMPUtils.html#ad2d2361b8a4d0709ec9e3bd837265cba":[2,0,5,5],
+"classTXMPUtils.html#ad7e1aa7928252fb88a24fb5c3aef22ba":[2,0,5,1],
+"classTXMPUtils.html#adfd9d1c522377d5db4ad667a7973ba00":[2,0,5,21],
+"classTXMPUtils.html#ae4989e5c199a2a4287ee3ae89b872e69":[2,0,5,6],
+"classTXMPUtils.html#ae5bdd91c0c3ee9262dc0a8b9f591b921":[2,0,5,28],
+"classTXMPUtils.html#ae67ef3931836432b7e574832f0610ed0":[2,0,5,12],
+"classTXMPUtils.html#aeae4617e05358433015eaa80953c5e60":[2,0,5,14],
+"classTXMPUtils.html#aeec45b4d1a26717290105c9f4e8b4235":[2,0,5,13],
+"classTXMPUtils.html#aef3b23bbc152480f699e269620ecad4a":[2,0,5,31],
+"classXMP__Error.html":[2,0,8],
+"classXMP__Error.html#a2b884dfb0b39689d1cf95105eadc4571":[2,0,8,7],
+"classXMP__Error.html#a31fd80098e50026985e05abd16f3e045":[2,0,8,5],
+"classXMP__Error.html#a56aaa6fc6644ccfc9470ae1af8f3a8cd":[2,0,8,2],
+"classXMP__Error.html#a5a0651a9615a6a60e467a96ddb43a6bb":[2,0,8,3],
+"classXMP__Error.html#a9a3560c67612dec9a6ca37c34eb2c153":[2,0,8,1],
+"classXMP__Error.html#a9c368db94ca63ad7b9b118051d1f8897":[2,0,8,4],
+"classXMP__Error.html#aa8b3b859899759d679b00237254e30aa":[2,0,8,0],
+"classXMP__Error.html#aad714bd7c428e10eff07a8ab6a4f3125":[2,0,8,6],
+"classXMP__IO.html":[2,0,9],
+"classXMP__IO.html#a0a0db95509e567f29f34570d5042aa54":[2,0,9,10],
+"classXMP__IO.html#a0d0b45799793c5fa3dc567556f93cceb":[2,0,9,11],
+"classXMP__IO.html#a18227546a6e759409dfd48a00b9a0748":[2,0,9,9],
+"classXMP__IO.html#a337ddf3f954d2b4e8dce1d70d8c33ddb":[2,0,9,5],
+"classXMP__IO.html#a38ca896e79705a0e4228eb67d3426c65":[2,0,9,1],
+"classXMP__IO.html#a456f92ca90a83095dbd90786a26b64e1":[2,0,9,12],
+"classXMP__IO.html#a4d2db45adc8f5bbe761434d4a8506d07":[2,0,9,3],
+"classXMP__IO.html#a51b53ca05c5627da08cd934a9ed8b281":[2,0,9,14],
+"classXMP__IO.html#a52825d62e1a93ae1ee157d68860b6815":[2,0,9,2],
+"classXMP__IO.html#a9c05bb22ecc75e71ecc546bcb756d628":[2,0,9,13],
+"classXMP__IO.html#aa14274c6ed95da83a95e8786b7b1a91e":[2,0,9,8],
+"classXMP__IO.html#aad4cf42485e9d8319a07f4ecdde4ee34":[2,0,9,4],
+"classXMP__IO.html#ab48d705ca0e3fb22d84c7a323951f8e4":[2,0,9,16],
+"classXMP__IO.html#ac989de23f8fed2efcca71f5a3aa35695":[2,0,9,6],
+"classXMP__IO.html#af4fe442d5f7ea3d062bb5dfeadfa2335":[2,0,9,7],
+"classXMP__IO.html#af77f9218892471ffad4586413ecd0dcaa148a2bca28df5b2d143590aae5153b55":[2,0,9,0],
+"classXMP__IO.html#af7dc2bd067498a651597a6b128f02dbb":[2,0,9,15],
+"classes.html":[2,1],
+"dir_0e5f10c8914b73a2f667b010a9332417.html":[3,0,0,0,0],
+"dir_0fb2101ba02d68f078970216a1fe0334.html":[3,0,0,0],
+"dir_13a16c6fe91841c884a316194c73d6c1.html":[3,0,0,0,1],
+"dir_3ce2d6caf42dd158441e2c69545b6561.html":[3,0,0,0,1,0,0],
+"dir_47a03e1ff379e16c0ff8dae8eab507ef.html":[3,0,0,0,1,1],
+"dir_8223d5ea7844a33492dce354418ea45e.html":[3,0,0,0,2,0],
+"dir_a2aafb81ccb63bf25660f5baa8263a1b.html":[3,0,0,0,1,0],
+"dir_d9f2167f9fcfc7d7593f67aa31e893fd.html":[3,0,0,0,2],
+"dir_f832923ad3cb060bc87ad85e68b8a1c3.html":[3,0,0],
+"files.html":[3,0],
+"functions.html":[2,3,0,0],
+"functions.html":[2,3,0],
+"functions_0x7e.html":[2,3,0,24],
+"functions_b.html":[2,3,0,1],
+"functions_c.html":[2,3,0,2],
+"functions_d.html":[2,3,0,3],
+"functions_e.html":[2,3,0,4],
+"functions_enum.html":[2,3,4],
+"functions_eval.html":[2,3,5],
+"functions_f.html":[2,3,0,5],
+"functions_func.html":[2,3,1,0],
+"functions_func.html":[2,3,1],
+"functions_func_0x7e.html":[2,3,1,20],
+"functions_func_c.html":[2,3,1,1],
+"functions_func_d.html":[2,3,1,2],
+"functions_func_e.html":[2,3,1,3],
+"functions_func_f.html":[2,3,1,4],
+"functions_func_g.html":[2,3,1,5],
+"functions_func_h.html":[2,3,1,6],
+"functions_func_i.html":[2,3,1,7],
+"functions_func_l.html":[2,3,1,8],
+"functions_func_m.html":[2,3,1,9],
+"functions_func_n.html":[2,3,1,10],
+"functions_func_o.html":[2,3,1,11],
+"functions_func_p.html":[2,3,1,12],
+"functions_func_q.html":[2,3,1,13],
+"functions_func_r.html":[2,3,1,14],
+"functions_func_s.html":[2,3,1,15],
+"functions_func_t.html":[2,3,1,16],
+"functions_func_v.html":[2,3,1,17],
+"functions_func_w.html":[2,3,1,18],
+"functions_func_x.html":[2,3,1,19],
+"functions_g.html":[2,3,0,6],
+"functions_h.html":[2,3,0,7],
+"functions_i.html":[2,3,0,8],
+"functions_k.html":[2,3,0,9],
+"functions_l.html":[2,3,0,10],
+"functions_m.html":[2,3,0,11],
+"functions_n.html":[2,3,0,12],
+"functions_o.html":[2,3,0,13],
+"functions_p.html":[2,3,0,14],
+"functions_q.html":[2,3,0,15],
+"functions_r.html":[2,3,0,16],
+"functions_rela.html":[2,3,6],
+"functions_s.html":[2,3,0,17],
+"functions_t.html":[2,3,0,18],
+"functions_type.html":[2,3,3],
+"functions_u.html":[2,3,0,19],
+"functions_v.html":[2,3,0,20]
+};
diff --git a/docs/API/navtreeindex7.js b/docs/API/navtreeindex7.js
new file mode 100755
index 0000000..d78a0f7
--- /dev/null
+++ b/docs/API/navtreeindex7.js
@@ -0,0 +1,131 @@
+var NAVTREEINDEX7 =
+{
+"functions_vars.html":[2,3,2],
+"functions_w.html":[2,3,0,21],
+"functions_x.html":[2,3,0,22],
+"functions_y.html":[2,3,0,23],
+"globals.html":[3,1,0],
+"globals.html":[3,1,0,0],
+"globals_b.html":[3,1,0,1],
+"globals_c.html":[3,1,0,2],
+"globals_d.html":[3,1,0,3],
+"globals_defs.html":[3,1,6,0],
+"globals_defs.html":[3,1,6],
+"globals_defs_b.html":[3,1,6,1],
+"globals_defs_c.html":[3,1,6,2],
+"globals_defs_d.html":[3,1,6,3],
+"globals_defs_e.html":[3,1,6,4],
+"globals_defs_i.html":[3,1,6,5],
+"globals_defs_j.html":[3,1,6,6],
+"globals_defs_k.html":[3,1,6,7],
+"globals_defs_p.html":[3,1,6,8],
+"globals_defs_q.html":[3,1,6,9],
+"globals_defs_r.html":[3,1,6,10],
+"globals_defs_s.html":[3,1,6,11],
+"globals_defs_w.html":[3,1,6,12],
+"globals_defs_x.html":[3,1,6,13],
+"globals_defs_z.html":[3,1,6,14],
+"globals_e.html":[3,1,0,4],
+"globals_enum.html":[3,1,4],
+"globals_eval.html":[3,1,5,0],
+"globals_eval.html":[3,1,5],
+"globals_eval_k.html":[3,1,5,1],
+"globals_func.html":[3,1,1],
+"globals_i.html":[3,1,0,5],
+"globals_j.html":[3,1,0,6],
+"globals_k.html":[3,1,0,7],
+"globals_m.html":[3,1,0,8],
+"globals_p.html":[3,1,0,9],
+"globals_q.html":[3,1,0,10],
+"globals_r.html":[3,1,0,11],
+"globals_s.html":[3,1,0,12],
+"globals_type.html":[3,1,3],
+"globals_vars.html":[3,1,2],
+"globals_w.html":[3,1,0,13],
+"globals_x.html":[3,1,0,14],
+"globals_z.html":[3,1,0,15],
+"hierarchy.html":[2,2],
+"index.html":[],
+"index.html":[0],
+"index.html#callchain":[0,1,0],
+"index.html#second-sec":[0,0],
+"index.html#third-sec":[0,1],
+"namespaceAdobeXMPCommon.html":[2,0,0],
+"namespaceAdobeXMPCommon.html":[1,0,0],
+"namespaceAdobeXMPCommon__Int.html":[1,0,1],
+"namespaceAdobeXMPCore.html":[1,0,2],
+"namespaceAdobeXMPCore.html":[2,0,1],
+"namespaceAdobeXMPCore__Int.html":[1,0,3],
+"namespacemembers.html":[1,1,0],
+"namespacemembers.html":[1,1,0,0],
+"namespacemembers_c.html":[1,1,0,1],
+"namespacemembers_e.html":[1,1,0,2],
+"namespacemembers_enum.html":[1,1,3],
+"namespacemembers_eval.html":[1,1,4],
+"namespacemembers_func.html":[1,1,1],
+"namespacemembers_i.html":[1,1,0,3],
+"namespacemembers_k.html":[1,1,0,4],
+"namespacemembers_m.html":[1,1,0,5],
+"namespacemembers_n.html":[1,1,0,6],
+"namespacemembers_p.html":[1,1,0,7],
+"namespacemembers_r.html":[1,1,0,8],
+"namespacemembers_s.html":[1,1,0,9],
+"namespacemembers_type.html":[1,1,2],
+"namespacemembers_type.html":[1,1,2,0],
+"namespacemembers_type_i.html":[1,1,2,1],
+"namespacemembers_type_m.html":[1,1,2,2],
+"namespacemembers_type_p.html":[1,1,2,3],
+"namespacemembers_type_r.html":[1,1,2,4],
+"namespacemembers_type_s.html":[1,1,2,5],
+"namespacemembers_type_u.html":[1,1,2,6],
+"namespacemembers_u.html":[1,1,0,10],
+"namespaces.html":[1,0],
+"pages.html":[],
+"structWXMP__Result.html":[2,0,6],
+"structWXMP__Result.html#a0bef8219ee23d2869ae6701330820794":[2,0,6,3],
+"structWXMP__Result.html#a872bf8583413190b991beda67f017fb5":[2,0,6,2],
+"structWXMP__Result.html#ad1046c86e2b3eba3109e6ae3f7063352":[2,0,6,0],
+"structWXMP__Result.html#ae1b91c50cee342a87f7708dd92a3d538":[2,0,6,5],
+"structWXMP__Result.html#ae329adc6d31243687d8bd85987ad6999":[2,0,6,1],
+"structWXMP__Result.html#af515f52630be278a2334d7d9db587f13":[2,0,6,4],
+"structXMP__DateTime.html":[2,0,7],
+"structXMP__DateTime.html#a190c2a19f01e90997ec2973aec37712c":[2,0,7,7],
+"structXMP__DateTime.html#a1dd34cdab96f55c120b3289db32bdd1e":[2,0,7,3],
+"structXMP__DateTime.html#a2b26282b9f1ab9920a8f05008c776ddb":[2,0,7,11],
+"structXMP__DateTime.html#a2c7f3d493a78f6b3fc7978992308d268":[2,0,7,2],
+"structXMP__DateTime.html#a2db713deacfd5a5cb2deea660ca2ccad":[2,0,7,12],
+"structXMP__DateTime.html#a45baa70f30a3dc9f88819886cfb91aa1":[2,0,7,10],
+"structXMP__DateTime.html#a58496718277eea9dc5e3e19d80a69094":[2,0,7,0],
+"structXMP__DateTime.html#a6045133feeef41ac1f78c4664ab13db4":[2,0,7,9],
+"structXMP__DateTime.html#a62e0f39edef2a82749feed46b16572e8":[2,0,7,1],
+"structXMP__DateTime.html#a675313c70a7e05b7ca50d21300b7d81b":[2,0,7,8],
+"structXMP__DateTime.html#ab4b71c1a54879d7da1b4135e23d5446f":[2,0,7,6],
+"structXMP__DateTime.html#abc79cdca8cfa5df6583279e3f3e70e9f":[2,0,7,4],
+"structXMP__DateTime.html#ae84965f3296a9c106d1f6c88aa6a7bdf":[2,0,7,5],
+"structXMP__PacketInfo.html":[2,0,10],
+"structXMP__PacketInfo.html#a039ce6665fe8e08d922a46f266799f75":[2,0,10,1],
+"structXMP__PacketInfo.html#a20f65fcfd0f3658ab93ff441a9d61d2c":[2,0,10,4],
+"structXMP__PacketInfo.html#a2ae03a1b3d03fa9ebc829105037155a8":[2,0,10,0],
+"structXMP__PacketInfo.html#a66845c1d5f3f9f36a1543a7322bd7bd1":[2,0,10,7],
+"structXMP__PacketInfo.html#a6725d8ab8b4eedddaac950d2b1b00a7f":[2,0,10,2],
+"structXMP__PacketInfo.html#a83ec12161a36451fef05d88cc754104e":[2,0,10,5],
+"structXMP__PacketInfo.html#af4f99e6a5b36b05fdf4a519421875256":[2,0,10,6],
+"structXMP__PacketInfo.html#af526c582b66e24553f2d4b11eb714a44":[2,0,10,3],
+"structXMP__VersionInfo.html":[2,0,11],
+"structXMP__VersionInfo.html#a0e20a6bf10da4c17bdfc8027f1586ffc":[2,0,11,0],
+"structXMP__VersionInfo.html#a19654242b92bffd7517e92882850e834":[2,0,11,4],
+"structXMP__VersionInfo.html#a4b448a8253e26a37d2df35e04ac25d28":[2,0,11,5],
+"structXMP__VersionInfo.html#a7edfa1613a58a248fd15267008bd8afb":[2,0,11,3],
+"structXMP__VersionInfo.html#ad018f35b382046ca77b1252bafa93f74":[2,0,11,1],
+"structXMP__VersionInfo.html#af1643d86f32f5a5a275dc9c5ba843018":[2,0,11,2],
+"structXMP__VersionInfo.html#af5b56598e15febd742b431dadae7c317":[2,0,11,6],
+"unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html":[2,0,0,0,0],
+"unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a0c9f75a96d53c5d03516f233937d6dca":[2,0,0,0,0,4],
+"unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a5cf9ec10ad5942fe67759a8c442817da":[2,0,0,0,0,0],
+"unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a65e7b5a9f09ea6b684e5e0aaa5f63ee1":[2,0,0,0,0,7],
+"unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a6ed591451d1db9b4fd0dac884bfe489e":[2,0,0,0,0,6],
+"unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a8b483f56604dfd719c6cc0cbd883d9f7":[2,0,0,0,0,2],
+"unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a8f1fc5e55c1cac4aba0b23d9e2f25a5a":[2,0,0,0,0,3],
+"unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#acf5eba644510b302a7d351ab06174880":[2,0,0,0,0,1],
+"unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#ad65f4aa42944655754cdabc56befe34c":[2,0,0,0,0,5]
+};
diff --git a/docs/API/open.gif b/docs/API/open.gif
deleted file mode 100644
index b903009..0000000
--- a/docs/API/open.gif
+++ /dev/null
Binary files differ
diff --git a/docs/API/open.png b/docs/API/open.png
new file mode 100755
index 0000000..30f75c7
--- /dev/null
+++ b/docs/API/open.png
Binary files differ
diff --git a/docs/API/resize.js b/docs/API/resize.js
new file mode 100755
index 0000000..2b86c36
--- /dev/null
+++ b/docs/API/resize.js
@@ -0,0 +1,97 @@
+var cookie_namespace = 'doxygen';
+var sidenav,navtree,content,header;
+
+function readCookie(cookie)
+{
+ var myCookie = cookie_namespace+"_"+cookie+"=";
+ if (document.cookie)
+ {
+ var index = document.cookie.indexOf(myCookie);
+ if (index != -1)
+ {
+ var valStart = index + myCookie.length;
+ var valEnd = document.cookie.indexOf(";", valStart);
+ if (valEnd == -1)
+ {
+ valEnd = document.cookie.length;
+ }
+ var val = document.cookie.substring(valStart, valEnd);
+ return val;
+ }
+ }
+ return 0;
+}
+
+function writeCookie(cookie, val, expiration)
+{
+ if (val==undefined) return;
+ if (expiration == null)
+ {
+ var date = new Date();
+ date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week
+ expiration = date.toGMTString();
+ }
+ document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; expires=" + expiration+"; path=/";
+}
+
+function resizeWidth()
+{
+ var windowWidth = $(window).width() + "px";
+ var sidenavWidth = $(sidenav).outerWidth();
+ content.css({marginLeft:parseInt(sidenavWidth)+"px"});
+ writeCookie('width',sidenavWidth, null);
+}
+
+function restoreWidth(navWidth)
+{
+ var windowWidth = $(window).width() + "px";
+ content.css({marginLeft:parseInt(navWidth)+6+"px"});
+ sidenav.css({width:navWidth + "px"});
+}
+
+function resizeHeight()
+{
+ var headerHeight = header.outerHeight();
+ var footerHeight = footer.outerHeight();
+ var windowHeight = $(window).height() - headerHeight - footerHeight;
+ content.css({height:windowHeight + "px"});
+ navtree.css({height:windowHeight + "px"});
+ sidenav.css({height:windowHeight + "px"});
+}
+
+function initResizable()
+{
+ header = $("#top");
+ sidenav = $("#side-nav");
+ content = $("#doc-content");
+ navtree = $("#nav-tree");
+ footer = $("#nav-path");
+ $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } });
+ $(window).resize(function() { resizeHeight(); });
+ var width = readCookie('width');
+ if (width) { restoreWidth(width); } else { resizeWidth(); }
+ resizeHeight();
+ var url = location.href;
+ var i=url.indexOf("#");
+ if (i>=0) window.location.hash=url.substr(i);
+ var _preventDefault = function(evt) { evt.preventDefault(); };
+ $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault);
+ $(document).bind('touchmove',function(e){
+ var device = navigator.userAgent.toLowerCase();
+ var ios = device.match(/(iphone|ipod|ipad)/);
+ if (ios) {
+ try {
+ var target = e.target;
+ while (target) {
+ if ($(target).css('-webkit-overflow-scrolling')=='touch') return;
+ target = target.parentNode;
+ }
+ e.preventDefault();
+ } catch(err) {
+ e.preventDefault();
+ }
+ }
+ });
+}
+
+
diff --git a/docs/API/splitbar.png b/docs/API/splitbar.png
new file mode 100755
index 0000000..fe895f2
--- /dev/null
+++ b/docs/API/splitbar.png
Binary files differ
diff --git a/docs/API/structWXMP__Result-members.html b/docs/API/structWXMP__Result-members.html
new file mode 100755
index 0000000..f036f5b
--- /dev/null
+++ b/docs/API/structWXMP__Result-members.html
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('structWXMP__Result.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">WXMP_Result Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="structWXMP__Result.html">WXMP_Result</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="structWXMP__Result.html#ae329adc6d31243687d8bd85987ad6999">errMessage</a></td><td class="entry"><a class="el" href="structWXMP__Result.html">WXMP_Result</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="structWXMP__Result.html#a872bf8583413190b991beda67f017fb5">floatResult</a></td><td class="entry"><a class="el" href="structWXMP__Result.html">WXMP_Result</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="structWXMP__Result.html#a0bef8219ee23d2869ae6701330820794">int32Result</a></td><td class="entry"><a class="el" href="structWXMP__Result.html">WXMP_Result</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="structWXMP__Result.html#af515f52630be278a2334d7d9db587f13">int64Result</a></td><td class="entry"><a class="el" href="structWXMP__Result.html">WXMP_Result</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="structWXMP__Result.html#ae1b91c50cee342a87f7708dd92a3d538">ptrResult</a></td><td class="entry"><a class="el" href="structWXMP__Result.html">WXMP_Result</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="structWXMP__Result.html#ad1046c86e2b3eba3109e6ae3f7063352">WXMP_Result</a>()</td><td class="entry"><a class="el" href="structWXMP__Result.html">WXMP_Result</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/structWXMP__Result.html b/docs/API/structWXMP__Result.html
new file mode 100755
index 0000000..61ce710
--- /dev/null
+++ b/docs/API/structWXMP__Result.html
@@ -0,0 +1,183 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>WXMP_Result Struct Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('structWXMP__Result.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-attribs">Public Attributes</a> &#124;
+<a href="structWXMP__Result-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">WXMP_Result Struct Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include &lt;<a class="el" href="WXMP__Common_8hpp_source.html">WXMP_Common.hpp</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:ad1046c86e2b3eba3109e6ae3f7063352"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structWXMP__Result.html#ad1046c86e2b3eba3109e6ae3f7063352">WXMP_Result</a> ()</td></tr>
+<tr class="separator:ad1046c86e2b3eba3109e6ae3f7063352"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr class="memitem:ae329adc6d31243687d8bd85987ad6999"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structWXMP__Result.html#ae329adc6d31243687d8bd85987ad6999">errMessage</a></td></tr>
+<tr class="separator:ae329adc6d31243687d8bd85987ad6999"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae1b91c50cee342a87f7708dd92a3d538"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structWXMP__Result.html#ae1b91c50cee342a87f7708dd92a3d538">ptrResult</a></td></tr>
+<tr class="separator:ae1b91c50cee342a87f7708dd92a3d538"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a872bf8583413190b991beda67f017fb5"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structWXMP__Result.html#a872bf8583413190b991beda67f017fb5">floatResult</a></td></tr>
+<tr class="separator:a872bf8583413190b991beda67f017fb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af515f52630be278a2334d7d9db587f13"><td class="memItemLeft" align="right" valign="top">XMP_Uns64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structWXMP__Result.html#af515f52630be278a2334d7d9db587f13">int64Result</a></td></tr>
+<tr class="separator:af515f52630be278a2334d7d9db587f13"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0bef8219ee23d2869ae6701330820794"><td class="memItemLeft" align="right" valign="top">XMP_Uns32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structWXMP__Result.html#a0bef8219ee23d2869ae6701330820794">int32Result</a></td></tr>
+<tr class="separator:a0bef8219ee23d2869ae6701330820794"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p>Definition at line <a class="el" href="WXMP__Common_8hpp_source.html#l00026">26</a> of file <a class="el" href="WXMP__Common_8hpp_source.html">WXMP_Common.hpp</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="ad1046c86e2b3eba3109e6ae3f7063352"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">WXMP_Result::WXMP_Result </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMP__Common_8hpp_source.html#l00032">32</a> of file <a class="el" href="WXMP__Common_8hpp_source.html">WXMP_Common.hpp</a>.</p>
+<div class="fragment"><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;: <a class="code" href="structWXMP__Result.html#ae329adc6d31243687d8bd85987ad6999">errMessage</a>(0),<a class="code" href="structWXMP__Result.html#ae1b91c50cee342a87f7708dd92a3d538">ptrResult</a>(NULL),<a class="code" href="structWXMP__Result.html#a872bf8583413190b991beda67f017fb5">floatResult</a>(0),<a class="code" href="structWXMP__Result.html#af515f52630be278a2334d7d9db587f13">int64Result</a>(0),<a class="code" href="structWXMP__Result.html#a0bef8219ee23d2869ae6701330820794">int32Result</a>(0){};</div><div class="ttc" id="structWXMP__Result_html_ae329adc6d31243687d8bd85987ad6999"><div class="ttname"><a href="structWXMP__Result.html#ae329adc6d31243687d8bd85987ad6999">WXMP_Result::errMessage</a></div><div class="ttdeci">XMP_StringPtr errMessage</div><div class="ttdef"><b>Definition:</b> <a href="WXMP__Common_8hpp_source.html#l00027">WXMP_Common.hpp:27</a></div></div>
+<div class="ttc" id="structWXMP__Result_html_a0bef8219ee23d2869ae6701330820794"><div class="ttname"><a href="structWXMP__Result.html#a0bef8219ee23d2869ae6701330820794">WXMP_Result::int32Result</a></div><div class="ttdeci">XMP_Uns32 int32Result</div><div class="ttdef"><b>Definition:</b> <a href="WXMP__Common_8hpp_source.html#l00031">WXMP_Common.hpp:31</a></div></div>
+<div class="ttc" id="structWXMP__Result_html_af515f52630be278a2334d7d9db587f13"><div class="ttname"><a href="structWXMP__Result.html#af515f52630be278a2334d7d9db587f13">WXMP_Result::int64Result</a></div><div class="ttdeci">XMP_Uns64 int64Result</div><div class="ttdef"><b>Definition:</b> <a href="WXMP__Common_8hpp_source.html#l00030">WXMP_Common.hpp:30</a></div></div>
+<div class="ttc" id="structWXMP__Result_html_ae1b91c50cee342a87f7708dd92a3d538"><div class="ttname"><a href="structWXMP__Result.html#ae1b91c50cee342a87f7708dd92a3d538">WXMP_Result::ptrResult</a></div><div class="ttdeci">void * ptrResult</div><div class="ttdef"><b>Definition:</b> <a href="WXMP__Common_8hpp_source.html#l00028">WXMP_Common.hpp:28</a></div></div>
+<div class="ttc" id="structWXMP__Result_html_a872bf8583413190b991beda67f017fb5"><div class="ttname"><a href="structWXMP__Result.html#a872bf8583413190b991beda67f017fb5">WXMP_Result::floatResult</a></div><div class="ttdeci">double floatResult</div><div class="ttdef"><b>Definition:</b> <a href="WXMP__Common_8hpp_source.html#l00029">WXMP_Common.hpp:29</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a class="anchor" id="ae329adc6d31243687d8bd85987ad6999"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> WXMP_Result::errMessage</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMP__Common_8hpp_source.html#l00027">27</a> of file <a class="el" href="WXMP__Common_8hpp_source.html">WXMP_Common.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a872bf8583413190b991beda67f017fb5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">double WXMP_Result::floatResult</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMP__Common_8hpp_source.html#l00029">29</a> of file <a class="el" href="WXMP__Common_8hpp_source.html">WXMP_Common.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0bef8219ee23d2869ae6701330820794"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">XMP_Uns32 WXMP_Result::int32Result</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMP__Common_8hpp_source.html#l00031">31</a> of file <a class="el" href="WXMP__Common_8hpp_source.html">WXMP_Common.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af515f52630be278a2334d7d9db587f13"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">XMP_Uns64 WXMP_Result::int64Result</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMP__Common_8hpp_source.html#l00030">30</a> of file <a class="el" href="WXMP__Common_8hpp_source.html">WXMP_Common.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae1b91c50cee342a87f7708dd92a3d538"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void* WXMP_Result::ptrResult</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="WXMP__Common_8hpp_source.html#l00028">28</a> of file <a class="el" href="WXMP__Common_8hpp_source.html">WXMP_Common.hpp</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/client-glue/<a class="el" href="WXMP__Common_8hpp_source.html">WXMP_Common.hpp</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/structWXMP__Result.js b/docs/API/structWXMP__Result.js
new file mode 100755
index 0000000..7a36aa8
--- /dev/null
+++ b/docs/API/structWXMP__Result.js
@@ -0,0 +1,9 @@
+var structWXMP__Result =
+[
+ [ "WXMP_Result", "structWXMP__Result.html#ad1046c86e2b3eba3109e6ae3f7063352", null ],
+ [ "errMessage", "structWXMP__Result.html#ae329adc6d31243687d8bd85987ad6999", null ],
+ [ "floatResult", "structWXMP__Result.html#a872bf8583413190b991beda67f017fb5", null ],
+ [ "int32Result", "structWXMP__Result.html#a0bef8219ee23d2869ae6701330820794", null ],
+ [ "int64Result", "structWXMP__Result.html#af515f52630be278a2334d7d9db587f13", null ],
+ [ "ptrResult", "structWXMP__Result.html#ae1b91c50cee342a87f7708dd92a3d538", null ]
+]; \ No newline at end of file
diff --git a/docs/API/structXMP__DateTime-members.html b/docs/API/structXMP__DateTime-members.html
index cc84936..5698949 100644..100755
--- a/docs/API/structXMP__DateTime-members.html
+++ b/docs/API/structXMP__DateTime-members.html
@@ -1,84 +1,66 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: Member List</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
- <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
- <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('structXMP__DateTime.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">XMP_DateTime Member List</div> </div>
+</div><!--header-->
<div class="contents">
-<h1>XMP_DateTime Member List</h1>This is the complete list of members for <a class="el" href="structXMP__DateTime.html">XMP_DateTime</a>, including all inherited members.<table>
- <tr class="memlist"><td><a class="el" href="structXMP__DateTime.html#a58496718277eea9dc5e3e19d80a69094">day</a></td><td><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="structXMP__DateTime.html#a62e0f39edef2a82749feed46b16572e8">hasDate</a></td><td><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="structXMP__DateTime.html#a2c7f3d493a78f6b3fc7978992308d268">hasTime</a></td><td><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="structXMP__DateTime.html#a1dd34cdab96f55c120b3289db32bdd1e">hasTimeZone</a></td><td><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="structXMP__DateTime.html#abc79cdca8cfa5df6583279e3f3e70e9f">hour</a></td><td><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="structXMP__DateTime.html#ae84965f3296a9c106d1f6c88aa6a7bdf">minute</a></td><td><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="structXMP__DateTime.html#ab4b71c1a54879d7da1b4135e23d5446f">month</a></td><td><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="structXMP__DateTime.html#a190c2a19f01e90997ec2973aec37712c">nanoSecond</a></td><td><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="structXMP__DateTime.html#a675313c70a7e05b7ca50d21300b7d81b">second</a></td><td><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="structXMP__DateTime.html#a6045133feeef41ac1f78c4664ab13db4">tzHour</a></td><td><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="structXMP__DateTime.html#a45baa70f30a3dc9f88819886cfb91aa1">tzMinute</a></td><td><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="structXMP__DateTime.html#a2b26282b9f1ab9920a8f05008c776ddb">tzSign</a></td><td><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="structXMP__DateTime.html#a2db713deacfd5a5cb2deea660ca2ccad">year</a></td><td><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a></td><td></td></tr>
-</table></div>
+
+<p>This is the complete list of members for <a class="el" href="structXMP__DateTime.html">XMP_DateTime</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="structXMP__DateTime.html#a58496718277eea9dc5e3e19d80a69094">day</a></td><td class="entry"><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="structXMP__DateTime.html#a62e0f39edef2a82749feed46b16572e8">hasDate</a></td><td class="entry"><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="structXMP__DateTime.html#a2c7f3d493a78f6b3fc7978992308d268">hasTime</a></td><td class="entry"><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="structXMP__DateTime.html#a1dd34cdab96f55c120b3289db32bdd1e">hasTimeZone</a></td><td class="entry"><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="structXMP__DateTime.html#abc79cdca8cfa5df6583279e3f3e70e9f">hour</a></td><td class="entry"><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="structXMP__DateTime.html#ae84965f3296a9c106d1f6c88aa6a7bdf">minute</a></td><td class="entry"><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="structXMP__DateTime.html#ab4b71c1a54879d7da1b4135e23d5446f">month</a></td><td class="entry"><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="structXMP__DateTime.html#a190c2a19f01e90997ec2973aec37712c">nanoSecond</a></td><td class="entry"><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="structXMP__DateTime.html#a675313c70a7e05b7ca50d21300b7d81b">second</a></td><td class="entry"><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="structXMP__DateTime.html#a6045133feeef41ac1f78c4664ab13db4">tzHour</a></td><td class="entry"><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="structXMP__DateTime.html#a45baa70f30a3dc9f88819886cfb91aa1">tzMinute</a></td><td class="entry"><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="structXMP__DateTime.html#a2b26282b9f1ab9920a8f05008c776ddb">tzSign</a></td><td class="entry"><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="structXMP__DateTime.html#a2db713deacfd5a5cb2deea660ca2ccad">year</a></td><td class="entry"><a class="el" href="structXMP__DateTime.html">XMP_DateTime</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
</body>
</html>
diff --git a/docs/API/structXMP__DateTime.html b/docs/API/structXMP__DateTime.html
index 0731d7b..e6edc02 100644..100755
--- a/docs/API/structXMP__DateTime.html
+++ b/docs/API/structXMP__DateTime.html
@@ -1,142 +1,320 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: XMP_DateTime Struct Reference</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
+<title>XMP_DateTime Struct Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
- <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
- <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('structXMP__DateTime.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Public Attributes</a> &#124;
+<a href="structXMP__DateTime-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">XMP_DateTime Struct Reference</div> </div>
+</div><!--header-->
<div class="contents">
-<h1>XMP_DateTime Struct Reference</h1><!-- doxytag: class="XMP_DateTime" -->
+
<p>The expanded type for a date and time.
-<a href="#_details">More...</a></p>
+ <a href="structXMP__DateTime.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>&gt;</code></p>
-
-<p><a href="structXMP__DateTime-members.html">List of all members.</a></p>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td colspan="2"><h2>Public Attributes</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2db713deacfd5a5cb2deea660ca2ccad"></a><!-- doxytag: member="XMP_DateTime::year" ref="a2db713deacfd5a5cb2deea660ca2ccad" args="" -->
-XMP_Int32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__DateTime.html#a2db713deacfd5a5cb2deea660ca2ccad">year</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The year, can be negative. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab4b71c1a54879d7da1b4135e23d5446f"></a><!-- doxytag: member="XMP_DateTime::month" ref="ab4b71c1a54879d7da1b4135e23d5446f" args="" -->
-XMP_Int32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__DateTime.html#ab4b71c1a54879d7da1b4135e23d5446f">month</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The month in the range 1..12. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a58496718277eea9dc5e3e19d80a69094"></a><!-- doxytag: member="XMP_DateTime::day" ref="a58496718277eea9dc5e3e19d80a69094" args="" -->
-XMP_Int32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__DateTime.html#a58496718277eea9dc5e3e19d80a69094">day</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The day of the month in the range 1..31. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abc79cdca8cfa5df6583279e3f3e70e9f"></a><!-- doxytag: member="XMP_DateTime::hour" ref="abc79cdca8cfa5df6583279e3f3e70e9f" args="" -->
-XMP_Int32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__DateTime.html#abc79cdca8cfa5df6583279e3f3e70e9f">hour</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The hour in the range 0..23. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae84965f3296a9c106d1f6c88aa6a7bdf"></a><!-- doxytag: member="XMP_DateTime::minute" ref="ae84965f3296a9c106d1f6c88aa6a7bdf" args="" -->
-XMP_Int32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__DateTime.html#ae84965f3296a9c106d1f6c88aa6a7bdf">minute</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The minute in the range 0..59. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a675313c70a7e05b7ca50d21300b7d81b"></a><!-- doxytag: member="XMP_DateTime::second" ref="a675313c70a7e05b7ca50d21300b7d81b" args="" -->
-XMP_Int32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__DateTime.html#a675313c70a7e05b7ca50d21300b7d81b">second</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The second in the range 0..59. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a62e0f39edef2a82749feed46b16572e8"></a><!-- doxytag: member="XMP_DateTime::hasDate" ref="a62e0f39edef2a82749feed46b16572e8" args="" -->
-XMP_Bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__DateTime.html#a62e0f39edef2a82749feed46b16572e8">hasDate</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Is the date portion meaningful? <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2c7f3d493a78f6b3fc7978992308d268"></a><!-- doxytag: member="XMP_DateTime::hasTime" ref="a2c7f3d493a78f6b3fc7978992308d268" args="" -->
-XMP_Bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__DateTime.html#a2c7f3d493a78f6b3fc7978992308d268">hasTime</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Is the time portion meaningful? <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1dd34cdab96f55c120b3289db32bdd1e"></a><!-- doxytag: member="XMP_DateTime::hasTimeZone" ref="a1dd34cdab96f55c120b3289db32bdd1e" args="" -->
-XMP_Bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__DateTime.html#a1dd34cdab96f55c120b3289db32bdd1e">hasTimeZone</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Is the time zone meaningful? <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">XMP_Int8&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__DateTime.html#a2b26282b9f1ab9920a8f05008c776ddb">tzSign</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6045133feeef41ac1f78c4664ab13db4"></a><!-- doxytag: member="XMP_DateTime::tzHour" ref="a6045133feeef41ac1f78c4664ab13db4" args="" -->
-XMP_Int32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__DateTime.html#a6045133feeef41ac1f78c4664ab13db4">tzHour</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The time zone hour in the range 0..23. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a45baa70f30a3dc9f88819886cfb91aa1"></a><!-- doxytag: member="XMP_DateTime::tzMinute" ref="a45baa70f30a3dc9f88819886cfb91aa1" args="" -->
-XMP_Int32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__DateTime.html#a45baa70f30a3dc9f88819886cfb91aa1">tzMinute</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The time zone minute in the range 0..59. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a190c2a19f01e90997ec2973aec37712c"></a><!-- doxytag: member="XMP_DateTime::nanoSecond" ref="a190c2a19f01e90997ec2973aec37712c" args="" -->
-XMP_Int32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__DateTime.html#a190c2a19f01e90997ec2973aec37712c">nanoSecond</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Nanoseconds within a second, often left as zero. <br/></td></tr>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr class="memitem:a2db713deacfd5a5cb2deea660ca2ccad"><td class="memItemLeft" align="right" valign="top">XMP_Int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__DateTime.html#a2db713deacfd5a5cb2deea660ca2ccad">year</a></td></tr>
+<tr class="memdesc:a2db713deacfd5a5cb2deea660ca2ccad"><td class="mdescLeft">&#160;</td><td class="mdescRight">The year, can be negative. <a href="#a2db713deacfd5a5cb2deea660ca2ccad">More...</a><br /></td></tr>
+<tr class="separator:a2db713deacfd5a5cb2deea660ca2ccad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab4b71c1a54879d7da1b4135e23d5446f"><td class="memItemLeft" align="right" valign="top">XMP_Int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__DateTime.html#ab4b71c1a54879d7da1b4135e23d5446f">month</a></td></tr>
+<tr class="memdesc:ab4b71c1a54879d7da1b4135e23d5446f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The month in the range 1..12. <a href="#ab4b71c1a54879d7da1b4135e23d5446f">More...</a><br /></td></tr>
+<tr class="separator:ab4b71c1a54879d7da1b4135e23d5446f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a58496718277eea9dc5e3e19d80a69094"><td class="memItemLeft" align="right" valign="top">XMP_Int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__DateTime.html#a58496718277eea9dc5e3e19d80a69094">day</a></td></tr>
+<tr class="memdesc:a58496718277eea9dc5e3e19d80a69094"><td class="mdescLeft">&#160;</td><td class="mdescRight">The day of the month in the range 1..31. <a href="#a58496718277eea9dc5e3e19d80a69094">More...</a><br /></td></tr>
+<tr class="separator:a58496718277eea9dc5e3e19d80a69094"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abc79cdca8cfa5df6583279e3f3e70e9f"><td class="memItemLeft" align="right" valign="top">XMP_Int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__DateTime.html#abc79cdca8cfa5df6583279e3f3e70e9f">hour</a></td></tr>
+<tr class="memdesc:abc79cdca8cfa5df6583279e3f3e70e9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The hour in the range 0..23. <a href="#abc79cdca8cfa5df6583279e3f3e70e9f">More...</a><br /></td></tr>
+<tr class="separator:abc79cdca8cfa5df6583279e3f3e70e9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae84965f3296a9c106d1f6c88aa6a7bdf"><td class="memItemLeft" align="right" valign="top">XMP_Int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__DateTime.html#ae84965f3296a9c106d1f6c88aa6a7bdf">minute</a></td></tr>
+<tr class="memdesc:ae84965f3296a9c106d1f6c88aa6a7bdf"><td class="mdescLeft">&#160;</td><td class="mdescRight">The minute in the range 0..59. <a href="#ae84965f3296a9c106d1f6c88aa6a7bdf">More...</a><br /></td></tr>
+<tr class="separator:ae84965f3296a9c106d1f6c88aa6a7bdf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a675313c70a7e05b7ca50d21300b7d81b"><td class="memItemLeft" align="right" valign="top">XMP_Int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__DateTime.html#a675313c70a7e05b7ca50d21300b7d81b">second</a></td></tr>
+<tr class="memdesc:a675313c70a7e05b7ca50d21300b7d81b"><td class="mdescLeft">&#160;</td><td class="mdescRight">The second in the range 0..59. <a href="#a675313c70a7e05b7ca50d21300b7d81b">More...</a><br /></td></tr>
+<tr class="separator:a675313c70a7e05b7ca50d21300b7d81b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a62e0f39edef2a82749feed46b16572e8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__DateTime.html#a62e0f39edef2a82749feed46b16572e8">hasDate</a></td></tr>
+<tr class="memdesc:a62e0f39edef2a82749feed46b16572e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is the date portion meaningful? <a href="#a62e0f39edef2a82749feed46b16572e8">More...</a><br /></td></tr>
+<tr class="separator:a62e0f39edef2a82749feed46b16572e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2c7f3d493a78f6b3fc7978992308d268"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__DateTime.html#a2c7f3d493a78f6b3fc7978992308d268">hasTime</a></td></tr>
+<tr class="memdesc:a2c7f3d493a78f6b3fc7978992308d268"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is the time portion meaningful? <a href="#a2c7f3d493a78f6b3fc7978992308d268">More...</a><br /></td></tr>
+<tr class="separator:a2c7f3d493a78f6b3fc7978992308d268"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1dd34cdab96f55c120b3289db32bdd1e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__DateTime.html#a1dd34cdab96f55c120b3289db32bdd1e">hasTimeZone</a></td></tr>
+<tr class="memdesc:a1dd34cdab96f55c120b3289db32bdd1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is the time zone meaningful? <a href="#a1dd34cdab96f55c120b3289db32bdd1e">More...</a><br /></td></tr>
+<tr class="separator:a1dd34cdab96f55c120b3289db32bdd1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2b26282b9f1ab9920a8f05008c776ddb"><td class="memItemLeft" align="right" valign="top">XMP_Int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__DateTime.html#a2b26282b9f1ab9920a8f05008c776ddb">tzSign</a></td></tr>
+<tr class="separator:a2b26282b9f1ab9920a8f05008c776ddb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6045133feeef41ac1f78c4664ab13db4"><td class="memItemLeft" align="right" valign="top">XMP_Int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__DateTime.html#a6045133feeef41ac1f78c4664ab13db4">tzHour</a></td></tr>
+<tr class="memdesc:a6045133feeef41ac1f78c4664ab13db4"><td class="mdescLeft">&#160;</td><td class="mdescRight">The time zone hour in the range 0..23. <a href="#a6045133feeef41ac1f78c4664ab13db4">More...</a><br /></td></tr>
+<tr class="separator:a6045133feeef41ac1f78c4664ab13db4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a45baa70f30a3dc9f88819886cfb91aa1"><td class="memItemLeft" align="right" valign="top">XMP_Int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__DateTime.html#a45baa70f30a3dc9f88819886cfb91aa1">tzMinute</a></td></tr>
+<tr class="memdesc:a45baa70f30a3dc9f88819886cfb91aa1"><td class="mdescLeft">&#160;</td><td class="mdescRight">The time zone minute in the range 0..59. <a href="#a45baa70f30a3dc9f88819886cfb91aa1">More...</a><br /></td></tr>
+<tr class="separator:a45baa70f30a3dc9f88819886cfb91aa1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a190c2a19f01e90997ec2973aec37712c"><td class="memItemLeft" align="right" valign="top">XMP_Int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__DateTime.html#a190c2a19f01e90997ec2973aec37712c">nanoSecond</a></td></tr>
+<tr class="memdesc:a190c2a19f01e90997ec2973aec37712c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Nanoseconds within a second, often left as zero. <a href="#a190c2a19f01e90997ec2973aec37712c">More...</a><br /></td></tr>
+<tr class="separator:a190c2a19f01e90997ec2973aec37712c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
-<hr/><a name="_details"></a><h2>Detailed Description</h2>
-<p>The expanded type for a date and time. </p>
-<p>Dates and time in the serialized XMP are ISO 8601 strings. The <code><a class="el" href="structXMP__DateTime.html" title="The expanded type for a date and time.">XMP_DateTime</a></code> struct allows easy conversion with other formats.</p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>The expanded type for a date and time. </p>
+<p>Dates and time in the serialized XMP are ISO 8601 strings. The <code><a class="el" href="structXMP__DateTime.html" title="The expanded type for a date and time. ">XMP_DateTime</a></code> struct allows easy conversion with other formats.</p>
<p>All of the fields are 32 bit, even though most could be 8 bit. This avoids overflow when doing carries for arithmetic or normalization. All fields have signed values for the same reasons.</p>
-<p>Date-time values are occasionally used with only a date or only a time component. A date without a time has zeros in the <code><a class="el" href="structXMP__DateTime.html" title="The expanded type for a date and time.">XMP_DateTime</a></code> struct for all time fields. A time without a date has zeros for all date fields (year, month, and day).</p>
-<p><code><a class="el" href="classTXMPUtils.html" title="API for access to the XMP Toolkit utility services.">TXMPUtils</a></code> provides utility functions for manipulating date-time values.</p>
-<dl class="see"><dt><b>See also:</b></dt><dd><code><a class="el" href="classTXMPUtils.html#a60d33e6ce30286028acca47b2b6e7a0b" title="ConvertToDate() converts a string to a date/time value.">TXMPUtils::ConvertToDate()</a></code>, <code><a class="el" href="classTXMPUtils.html#a6146a522a3974b4088d6e8241e9cd223" title="ConvertFromDate() converts a date/time value to a string.">TXMPUtils::ConvertFromDate()</a></code>, <code><a class="el" href="classTXMPUtils.html#a9fc7f1771032f59f9020aeda4f91991d" title="CompareDateTime() compares the order of two date/time values.">TXMPUtils::CompareDateTime()</a></code>, <code><a class="el" href="classTXMPUtils.html#a61852aaba494c8fbad5a6c0c4caf21f5" title="ConvertToLocalTime() ensures that a time is local.">TXMPUtils::ConvertToLocalTime()</a></code>, <code><a class="el" href="classTXMPUtils.html#abbd4d691c83287ea2fc6b1e33e5858b8" title="ConvertToUTCTime() ensures that a time is UTC.">TXMPUtils::ConvertToUTCTime()</a></code>, <code><a class="el" href="classTXMPUtils.html#ac83f0b963ea64d7eee0b481e15a8439c" title="CurrentDateTime() obtains the current date and time.">TXMPUtils::CurrentDateTime()</a></code>, <code><a class="el" href="classTXMPUtils.html#a96bcc45febac55f6c49951815b7de2ef" title="SetTimeZone() sets the time zone in a date/time value to the local time zone.">TXMPUtils::SetTimeZone()</a></code> </dd></dl>
-<hr/><h2>Member Data Documentation</h2>
-<a class="anchor" id="a2b26282b9f1ab9920a8f05008c776ddb"></a><!-- doxytag: member="XMP_DateTime::tzSign" ref="a2b26282b9f1ab9920a8f05008c776ddb" args="" -->
+<p>Date-time values are occasionally used with only a date or only a time component. A date without a time has zeros in the <code><a class="el" href="structXMP__DateTime.html" title="The expanded type for a date and time. ">XMP_DateTime</a></code> struct for all time fields. A time without a date has zeros for all date fields (year, month, and day).</p>
+<p><code><a class="el" href="classTXMPUtils.html" title="API for access to the XMP Toolkit utility services. ">TXMPUtils</a></code> provides utility functions for manipulating date-time values.</p>
+<dl class="section see"><dt>See also</dt><dd><code><a class="el" href="classTXMPUtils.html#a60d33e6ce30286028acca47b2b6e7a0b" title="ConvertToDate() converts a string to a date/time value. ">TXMPUtils::ConvertToDate()</a></code>, <code><a class="el" href="classTXMPUtils.html#a6146a522a3974b4088d6e8241e9cd223" title="ConvertFromDate() converts a date/time value to a string. ">TXMPUtils::ConvertFromDate()</a></code>, <code><a class="el" href="classTXMPUtils.html#a9fc7f1771032f59f9020aeda4f91991d" title="CompareDateTime() compares the order of two date/time values. ">TXMPUtils::CompareDateTime()</a></code>, <code><a class="el" href="classTXMPUtils.html#a61852aaba494c8fbad5a6c0c4caf21f5" title="ConvertToLocalTime() ensures that a time is local. ">TXMPUtils::ConvertToLocalTime()</a></code>, <code><a class="el" href="classTXMPUtils.html#abbd4d691c83287ea2fc6b1e33e5858b8" title="ConvertToUTCTime() ensures that a time is UTC. ">TXMPUtils::ConvertToUTCTime()</a></code>, <code><a class="el" href="classTXMPUtils.html#ac83f0b963ea64d7eee0b481e15a8439c" title="CurrentDateTime() obtains the current date and time. ">TXMPUtils::CurrentDateTime()</a></code>, <code><a class="el" href="classTXMPUtils.html#a96bcc45febac55f6c49951815b7de2ef" title="SetTimeZone() sets the time zone in a date/time value to the local time zone. ">TXMPUtils::SetTimeZone()</a></code> </dd></dl>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00223">223</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+</div><h2 class="groupheader">Member Data Documentation</h2>
+<a class="anchor" id="a58496718277eea9dc5e3e19d80a69094"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">XMP_Int32 XMP_DateTime::day</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The day of the month in the range 1..31. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00232">232</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a62e0f39edef2a82749feed46b16572e8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a> XMP_DateTime::hasDate</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Is the date portion meaningful? </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00244">244</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2c7f3d493a78f6b3fc7978992308d268"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a> XMP_DateTime::hasTime</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Is the time portion meaningful? </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00247">247</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1dd34cdab96f55c120b3289db32bdd1e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a> XMP_DateTime::hasTimeZone</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Is the time zone meaningful? </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00250">250</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abc79cdca8cfa5df6583279e3f3e70e9f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">XMP_Int32 XMP_DateTime::hour</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The hour in the range 0..23. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00235">235</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae84965f3296a9c106d1f6c88aa6a7bdf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">XMP_Int32 XMP_DateTime::minute</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The minute in the range 0..59. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00238">238</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab4b71c1a54879d7da1b4135e23d5446f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">XMP_Int32 XMP_DateTime::month</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The month in the range 1..12. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00229">229</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a190c2a19f01e90997ec2973aec37712c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">XMP_Int8 <a class="el" href="structXMP__DateTime.html#a2b26282b9f1ab9920a8f05008c776ddb">XMP_DateTime::tzSign</a></td>
+ <td class="memname">XMP_Int32 XMP_DateTime::nanoSecond</td>
</tr>
</table>
+</div><div class="memdoc">
+
+<p>Nanoseconds within a second, often left as zero. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00263">263</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
</div>
-<div class="memdoc">
-<p>The "sign" of the time zone, <code><a class="el" href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a3f41be55491204982acb39c9f6c7ad13" title="UTC time.">kXMP_TimeIsUTC</a></code> (0) means UTC, <code><a class="el" href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a511551ce156d5fd96c26ad464b837801" title="Time zone is west of UTC.">kXMP_TimeWestOfUTC</a></code> (-1) is west, <code><a class="el" href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a68851b70cc1d2346fa21bc0b0ae6cfec" title="Time zone is east of UTC.">kXMP_TimeEastOfUTC</a></code> (+1) is east. </p>
+</div>
+<a class="anchor" id="a675313c70a7e05b7ca50d21300b7d81b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">XMP_Int32 XMP_DateTime::second</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The second in the range 0..59. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00241">241</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6045133feeef41ac1f78c4664ab13db4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">XMP_Int32 XMP_DateTime::tzHour</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The time zone hour in the range 0..23. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00257">257</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a45baa70f30a3dc9f88819886cfb91aa1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">XMP_Int32 XMP_DateTime::tzMinute</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The time zone minute in the range 0..59. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00260">260</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2b26282b9f1ab9920a8f05008c776ddb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">XMP_Int8 XMP_DateTime::tzSign</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>The "sign" of the time zone, <code><a class="el" href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a3f41be55491204982acb39c9f6c7ad13" title="UTC time. ">kXMP_TimeIsUTC</a></code> (0) means UTC, <code><a class="el" href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a511551ce156d5fd96c26ad464b837801" title="Time zone is west of UTC. ">kXMP_TimeWestOfUTC</a></code> (-1) is west, <code><a class="el" href="XMP__Const_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a68851b70cc1d2346fa21bc0b0ae6cfec" title="Time zone is east of UTC. ">kXMP_TimeEastOfUTC</a></code> (+1) is east. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00254">254</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2db713deacfd5a5cb2deea660ca2ccad"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">XMP_Int32 XMP_DateTime::year</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The year, can be negative. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l00226">226</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a></li>
+<li>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/<a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a></li>
</ul>
-</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
</body>
</html>
diff --git a/docs/API/structXMP__DateTime.js b/docs/API/structXMP__DateTime.js
new file mode 100755
index 0000000..54c1d83
--- /dev/null
+++ b/docs/API/structXMP__DateTime.js
@@ -0,0 +1,16 @@
+var structXMP__DateTime =
+[
+ [ "day", "structXMP__DateTime.html#a58496718277eea9dc5e3e19d80a69094", null ],
+ [ "hasDate", "structXMP__DateTime.html#a62e0f39edef2a82749feed46b16572e8", null ],
+ [ "hasTime", "structXMP__DateTime.html#a2c7f3d493a78f6b3fc7978992308d268", null ],
+ [ "hasTimeZone", "structXMP__DateTime.html#a1dd34cdab96f55c120b3289db32bdd1e", null ],
+ [ "hour", "structXMP__DateTime.html#abc79cdca8cfa5df6583279e3f3e70e9f", null ],
+ [ "minute", "structXMP__DateTime.html#ae84965f3296a9c106d1f6c88aa6a7bdf", null ],
+ [ "month", "structXMP__DateTime.html#ab4b71c1a54879d7da1b4135e23d5446f", null ],
+ [ "nanoSecond", "structXMP__DateTime.html#a190c2a19f01e90997ec2973aec37712c", null ],
+ [ "second", "structXMP__DateTime.html#a675313c70a7e05b7ca50d21300b7d81b", null ],
+ [ "tzHour", "structXMP__DateTime.html#a6045133feeef41ac1f78c4664ab13db4", null ],
+ [ "tzMinute", "structXMP__DateTime.html#a45baa70f30a3dc9f88819886cfb91aa1", null ],
+ [ "tzSign", "structXMP__DateTime.html#a2b26282b9f1ab9920a8f05008c776ddb", null ],
+ [ "year", "structXMP__DateTime.html#a2db713deacfd5a5cb2deea660ca2ccad", null ]
+]; \ No newline at end of file
diff --git a/docs/API/structXMP__PacketInfo-members.html b/docs/API/structXMP__PacketInfo-members.html
index fac4f61..7f2de63 100644..100755
--- a/docs/API/structXMP__PacketInfo-members.html
+++ b/docs/API/structXMP__PacketInfo-members.html
@@ -1,79 +1,61 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: Member List</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
- <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
- <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('structXMP__PacketInfo.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">XMP_PacketInfo Member List</div> </div>
+</div><!--header-->
<div class="contents">
-<h1>XMP_PacketInfo Member List</h1>This is the complete list of members for <a class="el" href="structXMP__PacketInfo.html">XMP_PacketInfo</a>, including all inherited members.<table>
- <tr class="memlist"><td><a class="el" href="structXMP__PacketInfo.html#a039ce6665fe8e08d922a46f266799f75">charForm</a></td><td><a class="el" href="structXMP__PacketInfo.html">XMP_PacketInfo</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="structXMP__PacketInfo.html#a6725d8ab8b4eedddaac950d2b1b00a7f">hasWrapper</a></td><td><a class="el" href="structXMP__PacketInfo.html">XMP_PacketInfo</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="structXMP__PacketInfo.html#af526c582b66e24553f2d4b11eb714a44">length</a></td><td><a class="el" href="structXMP__PacketInfo.html">XMP_PacketInfo</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="structXMP__PacketInfo.html#a20f65fcfd0f3658ab93ff441a9d61d2c">offset</a></td><td><a class="el" href="structXMP__PacketInfo.html">XMP_PacketInfo</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="structXMP__PacketInfo.html#a83ec12161a36451fef05d88cc754104e">pad</a></td><td><a class="el" href="structXMP__PacketInfo.html">XMP_PacketInfo</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="structXMP__PacketInfo.html#af4f99e6a5b36b05fdf4a519421875256">padSize</a></td><td><a class="el" href="structXMP__PacketInfo.html">XMP_PacketInfo</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="structXMP__PacketInfo.html#a66845c1d5f3f9f36a1543a7322bd7bd1">writeable</a></td><td><a class="el" href="structXMP__PacketInfo.html">XMP_PacketInfo</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="structXMP__PacketInfo.html#a2ae03a1b3d03fa9ebc829105037155a8">XMP_PacketInfo</a>()</td><td><a class="el" href="structXMP__PacketInfo.html">XMP_PacketInfo</a></td><td><code> [inline]</code></td></tr>
-</table></div>
+
+<p>This is the complete list of members for <a class="el" href="structXMP__PacketInfo.html">XMP_PacketInfo</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="structXMP__PacketInfo.html#a039ce6665fe8e08d922a46f266799f75">charForm</a></td><td class="entry"><a class="el" href="structXMP__PacketInfo.html">XMP_PacketInfo</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="structXMP__PacketInfo.html#a6725d8ab8b4eedddaac950d2b1b00a7f">hasWrapper</a></td><td class="entry"><a class="el" href="structXMP__PacketInfo.html">XMP_PacketInfo</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="structXMP__PacketInfo.html#af526c582b66e24553f2d4b11eb714a44">length</a></td><td class="entry"><a class="el" href="structXMP__PacketInfo.html">XMP_PacketInfo</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="structXMP__PacketInfo.html#a20f65fcfd0f3658ab93ff441a9d61d2c">offset</a></td><td class="entry"><a class="el" href="structXMP__PacketInfo.html">XMP_PacketInfo</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="structXMP__PacketInfo.html#a83ec12161a36451fef05d88cc754104e">pad</a></td><td class="entry"><a class="el" href="structXMP__PacketInfo.html">XMP_PacketInfo</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="structXMP__PacketInfo.html#af4f99e6a5b36b05fdf4a519421875256">padSize</a></td><td class="entry"><a class="el" href="structXMP__PacketInfo.html">XMP_PacketInfo</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="structXMP__PacketInfo.html#a66845c1d5f3f9f36a1543a7322bd7bd1">writeable</a></td><td class="entry"><a class="el" href="structXMP__PacketInfo.html">XMP_PacketInfo</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="structXMP__PacketInfo.html#a2ae03a1b3d03fa9ebc829105037155a8">XMP_PacketInfo</a>()</td><td class="entry"><a class="el" href="structXMP__PacketInfo.html">XMP_PacketInfo</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
</body>
</html>
diff --git a/docs/API/structXMP__PacketInfo.html b/docs/API/structXMP__PacketInfo.html
index 95c897e..7d3f73b 100644..100755
--- a/docs/API/structXMP__PacketInfo.html
+++ b/docs/API/structXMP__PacketInfo.html
@@ -1,110 +1,247 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: XMP_PacketInfo Struct Reference</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
+<title>XMP_PacketInfo Struct Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
- <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
- <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('structXMP__PacketInfo.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-attribs">Public Attributes</a> &#124;
+<a href="structXMP__PacketInfo-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">XMP_PacketInfo Struct Reference</div> </div>
+</div><!--header-->
<div class="contents">
-<h1>XMP_PacketInfo Struct Reference</h1><!-- doxytag: class="XMP_PacketInfo" -->
+
<p>XMP packet description.
-<a href="#_details">More...</a></p>
+ <a href="structXMP__PacketInfo.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a2ae03a1b3d03fa9ebc829105037155a8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__PacketInfo.html#a2ae03a1b3d03fa9ebc829105037155a8">XMP_PacketInfo</a> ()</td></tr>
+<tr class="memdesc:a2ae03a1b3d03fa9ebc829105037155a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor. <a href="#a2ae03a1b3d03fa9ebc829105037155a8">More...</a><br /></td></tr>
+<tr class="separator:a2ae03a1b3d03fa9ebc829105037155a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr class="memitem:a20f65fcfd0f3658ab93ff441a9d61d2c"><td class="memItemLeft" align="right" valign="top">XMP_Int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__PacketInfo.html#a20f65fcfd0f3658ab93ff441a9d61d2c">offset</a></td></tr>
+<tr class="memdesc:a20f65fcfd0f3658ab93ff441a9d61d2c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Packet offset in the file in bytes, -1 if unknown. <a href="#a20f65fcfd0f3658ab93ff441a9d61d2c">More...</a><br /></td></tr>
+<tr class="separator:a20f65fcfd0f3658ab93ff441a9d61d2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af526c582b66e24553f2d4b11eb714a44"><td class="memItemLeft" align="right" valign="top">XMP_Int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__PacketInfo.html#af526c582b66e24553f2d4b11eb714a44">length</a></td></tr>
+<tr class="memdesc:af526c582b66e24553f2d4b11eb714a44"><td class="mdescLeft">&#160;</td><td class="mdescRight">Packet length in the file in bytes, -1 if unknown. <a href="#af526c582b66e24553f2d4b11eb714a44">More...</a><br /></td></tr>
+<tr class="separator:af526c582b66e24553f2d4b11eb714a44"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af4f99e6a5b36b05fdf4a519421875256"><td class="memItemLeft" align="right" valign="top">XMP_Int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__PacketInfo.html#af4f99e6a5b36b05fdf4a519421875256">padSize</a></td></tr>
+<tr class="memdesc:af4f99e6a5b36b05fdf4a519421875256"><td class="mdescLeft">&#160;</td><td class="mdescRight">Packet padding size in bytes, zero if unknown. <a href="#af4f99e6a5b36b05fdf4a519421875256">More...</a><br /></td></tr>
+<tr class="separator:af4f99e6a5b36b05fdf4a519421875256"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a039ce6665fe8e08d922a46f266799f75"><td class="memItemLeft" align="right" valign="top">XMP_Uns8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__PacketInfo.html#a039ce6665fe8e08d922a46f266799f75">charForm</a></td></tr>
+<tr class="memdesc:a039ce6665fe8e08d922a46f266799f75"><td class="mdescLeft">&#160;</td><td class="mdescRight">Character format using the values <code>kXMP_Char8Bit</code>, <code>kXMP_Char16BitBig</code>, etc. <a href="#a039ce6665fe8e08d922a46f266799f75">More...</a><br /></td></tr>
+<tr class="separator:a039ce6665fe8e08d922a46f266799f75"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a66845c1d5f3f9f36a1543a7322bd7bd1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__PacketInfo.html#a66845c1d5f3f9f36a1543a7322bd7bd1">writeable</a></td></tr>
+<tr class="memdesc:a66845c1d5f3f9f36a1543a7322bd7bd1"><td class="mdescLeft">&#160;</td><td class="mdescRight">True if there is a packet wrapper and the trailer says writeable by dumb packet scanners. <a href="#a66845c1d5f3f9f36a1543a7322bd7bd1">More...</a><br /></td></tr>
+<tr class="separator:a66845c1d5f3f9f36a1543a7322bd7bd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6725d8ab8b4eedddaac950d2b1b00a7f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__PacketInfo.html#a6725d8ab8b4eedddaac950d2b1b00a7f">hasWrapper</a></td></tr>
+<tr class="memdesc:a6725d8ab8b4eedddaac950d2b1b00a7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">True if there is a packet wrapper, the "&lt;?xpacket...&gt;" XML processing instructions. <a href="#a6725d8ab8b4eedddaac950d2b1b00a7f">More...</a><br /></td></tr>
+<tr class="separator:a6725d8ab8b4eedddaac950d2b1b00a7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a83ec12161a36451fef05d88cc754104e"><td class="memItemLeft" align="right" valign="top">XMP_Uns8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__PacketInfo.html#a83ec12161a36451fef05d88cc754104e">pad</a></td></tr>
+<tr class="memdesc:a83ec12161a36451fef05d88cc754104e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Padding to make the struct's size be a multiple 4. <a href="#a83ec12161a36451fef05d88cc754104e">More...</a><br /></td></tr>
+<tr class="separator:a83ec12161a36451fef05d88cc754104e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>XMP packet description. </p>
-<p><a href="structXMP__PacketInfo-members.html">List of all members.</a></p>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2ae03a1b3d03fa9ebc829105037155a8"></a><!-- doxytag: member="XMP_PacketInfo::XMP_PacketInfo" ref="a2ae03a1b3d03fa9ebc829105037155a8" args="()" -->
-&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__PacketInfo.html#a2ae03a1b3d03fa9ebc829105037155a8">XMP_PacketInfo</a> ()</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default constructor. <br/></td></tr>
-<tr><td colspan="2"><h2>Public Attributes</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a20f65fcfd0f3658ab93ff441a9d61d2c"></a><!-- doxytag: member="XMP_PacketInfo::offset" ref="a20f65fcfd0f3658ab93ff441a9d61d2c" args="" -->
-XMP_Int64&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__PacketInfo.html#a20f65fcfd0f3658ab93ff441a9d61d2c">offset</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Packet offset in the file in bytes, -1 if unknown. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af526c582b66e24553f2d4b11eb714a44"></a><!-- doxytag: member="XMP_PacketInfo::length" ref="af526c582b66e24553f2d4b11eb714a44" args="" -->
-XMP_Int32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__PacketInfo.html#af526c582b66e24553f2d4b11eb714a44">length</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Packet length in the file in bytes, -1 if unknown. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af4f99e6a5b36b05fdf4a519421875256"></a><!-- doxytag: member="XMP_PacketInfo::padSize" ref="af4f99e6a5b36b05fdf4a519421875256" args="" -->
-XMP_Int32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__PacketInfo.html#af4f99e6a5b36b05fdf4a519421875256">padSize</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Packet padding size in bytes, zero if unknown. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a039ce6665fe8e08d922a46f266799f75"></a><!-- doxytag: member="XMP_PacketInfo::charForm" ref="a039ce6665fe8e08d922a46f266799f75" args="" -->
-XMP_Uns8&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__PacketInfo.html#a039ce6665fe8e08d922a46f266799f75">charForm</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Character format using the values <code>kXMP_Char8Bit</code>, <code>kXMP_Char16BitBig</code>, etc. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a66845c1d5f3f9f36a1543a7322bd7bd1"></a><!-- doxytag: member="XMP_PacketInfo::writeable" ref="a66845c1d5f3f9f36a1543a7322bd7bd1" args="" -->
-XMP_Bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__PacketInfo.html#a66845c1d5f3f9f36a1543a7322bd7bd1">writeable</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">True if there is a packet wrapper and the trailer says writeable by dumb packet scanners. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6725d8ab8b4eedddaac950d2b1b00a7f"></a><!-- doxytag: member="XMP_PacketInfo::hasWrapper" ref="a6725d8ab8b4eedddaac950d2b1b00a7f" args="" -->
-XMP_Bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__PacketInfo.html#a6725d8ab8b4eedddaac950d2b1b00a7f">hasWrapper</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">True if there is a packet wrapper, the "&lt;?xpacket...&gt;" XML processing instructions. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a83ec12161a36451fef05d88cc754104e"></a><!-- doxytag: member="XMP_PacketInfo::pad" ref="a83ec12161a36451fef05d88cc754104e" args="" -->
-XMP_Uns8&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__PacketInfo.html#a83ec12161a36451fef05d88cc754104e">pad</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Padding to make the struct's size be a multiple 4. <br/></td></tr>
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01068">1068</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a2ae03a1b3d03fa9ebc829105037155a8"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">XMP_PacketInfo::XMP_PacketInfo </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
</table>
-<hr/><a name="_details"></a><h2>Detailed Description</h2>
-<p>XMP packet description. </p>
+</div><div class="memdoc">
+
+<p>Default constructor. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01088">1088</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+<div class="fragment"><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160; : <a class="code" href="structXMP__PacketInfo.html#a20f65fcfd0f3658ab93ff441a9d61d2c">offset</a>(<a class="code" href="XMP__Const_8h.html#a6a9b77b60c63781a8776f10880856bf4">kXMPFiles_UnknownOffset</a>), <a class="code" href="structXMP__PacketInfo.html#af526c582b66e24553f2d4b11eb714a44">length</a>(<a class="code" href="XMP__Const_8h.html#ae0901aabcf619f17cff03f08e5ed3658">kXMPFiles_UnknownLength</a>),</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160; <a class="code" href="structXMP__PacketInfo.html#af4f99e6a5b36b05fdf4a519421875256">padSize</a>(0), <a class="code" href="structXMP__PacketInfo.html#a039ce6665fe8e08d922a46f266799f75">charForm</a>(0), <a class="code" href="structXMP__PacketInfo.html#a66845c1d5f3f9f36a1543a7322bd7bd1">writeable</a>(0), <a class="code" href="structXMP__PacketInfo.html#a6725d8ab8b4eedddaac950d2b1b00a7f">hasWrapper</a>(0), <a class="code" href="structXMP__PacketInfo.html#a83ec12161a36451fef05d88cc754104e">pad</a>(0) {};</div><div class="ttc" id="structXMP__PacketInfo_html_a66845c1d5f3f9f36a1543a7322bd7bd1"><div class="ttname"><a href="structXMP__PacketInfo.html#a66845c1d5f3f9f36a1543a7322bd7bd1">XMP_PacketInfo::writeable</a></div><div class="ttdeci">XMP_Bool writeable</div><div class="ttdoc">True if there is a packet wrapper and the trailer says writeable by dumb packet scanners. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01080">XMP_Const.h:1080</a></div></div>
+<div class="ttc" id="structXMP__PacketInfo_html_af526c582b66e24553f2d4b11eb714a44"><div class="ttname"><a href="structXMP__PacketInfo.html#af526c582b66e24553f2d4b11eb714a44">XMP_PacketInfo::length</a></div><div class="ttdeci">XMP_Int32 length</div><div class="ttdoc">Packet length in the file in bytes, -1 if unknown. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01073">XMP_Const.h:1073</a></div></div>
+<div class="ttc" id="structXMP__PacketInfo_html_a039ce6665fe8e08d922a46f266799f75"><div class="ttname"><a href="structXMP__PacketInfo.html#a039ce6665fe8e08d922a46f266799f75">XMP_PacketInfo::charForm</a></div><div class="ttdeci">XMP_Uns8 charForm</div><div class="ttdoc">Character format using the values kXMP_Char8Bit, kXMP_Char16BitBig, etc. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01078">XMP_Const.h:1078</a></div></div>
+<div class="ttc" id="structXMP__PacketInfo_html_a6725d8ab8b4eedddaac950d2b1b00a7f"><div class="ttname"><a href="structXMP__PacketInfo.html#a6725d8ab8b4eedddaac950d2b1b00a7f">XMP_PacketInfo::hasWrapper</a></div><div class="ttdeci">XMP_Bool hasWrapper</div><div class="ttdoc">True if there is a packet wrapper, the &quot;&lt;?xpacket...&gt;&quot; XML processing instructions. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01082">XMP_Const.h:1082</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_a6a9b77b60c63781a8776f10880856bf4"><div class="ttname"><a href="XMP__Const_8h.html#a6a9b77b60c63781a8776f10880856bf4">kXMPFiles_UnknownOffset</a></div><div class="ttdeci">#define kXMPFiles_UnknownOffset</div><div class="ttdoc">Constant for an unknown packet offset within a file. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01061">XMP_Const.h:1061</a></div></div>
+<div class="ttc" id="XMP__Const_8h_html_ae0901aabcf619f17cff03f08e5ed3658"><div class="ttname"><a href="XMP__Const_8h.html#ae0901aabcf619f17cff03f08e5ed3658">kXMPFiles_UnknownLength</a></div><div class="ttdeci">#define kXMPFiles_UnknownLength</div><div class="ttdoc">Constant for an unknown packet length within a file. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01065">XMP_Const.h:1065</a></div></div>
+<div class="ttc" id="structXMP__PacketInfo_html_af4f99e6a5b36b05fdf4a519421875256"><div class="ttname"><a href="structXMP__PacketInfo.html#af4f99e6a5b36b05fdf4a519421875256">XMP_PacketInfo::padSize</a></div><div class="ttdeci">XMP_Int32 padSize</div><div class="ttdoc">Packet padding size in bytes, zero if unknown. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01075">XMP_Const.h:1075</a></div></div>
+<div class="ttc" id="structXMP__PacketInfo_html_a20f65fcfd0f3658ab93ff441a9d61d2c"><div class="ttname"><a href="structXMP__PacketInfo.html#a20f65fcfd0f3658ab93ff441a9d61d2c">XMP_PacketInfo::offset</a></div><div class="ttdeci">XMP_Int64 offset</div><div class="ttdoc">Packet offset in the file in bytes, -1 if unknown. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01071">XMP_Const.h:1071</a></div></div>
+<div class="ttc" id="structXMP__PacketInfo_html_a83ec12161a36451fef05d88cc754104e"><div class="ttname"><a href="structXMP__PacketInfo.html#a83ec12161a36451fef05d88cc754104e">XMP_PacketInfo::pad</a></div><div class="ttdeci">XMP_Uns8 pad</div><div class="ttdoc">Padding to make the struct&amp;#39;s size be a multiple 4. </div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01085">XMP_Const.h:1085</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a class="anchor" id="a039ce6665fe8e08d922a46f266799f75"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">XMP_Uns8 XMP_PacketInfo::charForm</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Character format using the values <code>kXMP_Char8Bit</code>, <code>kXMP_Char16BitBig</code>, etc. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01078">1078</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6725d8ab8b4eedddaac950d2b1b00a7f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a> XMP_PacketInfo::hasWrapper</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>True if there is a packet wrapper, the "&lt;?xpacket...&gt;" XML processing instructions. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01082">1082</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af526c582b66e24553f2d4b11eb714a44"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">XMP_Int32 XMP_PacketInfo::length</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Packet length in the file in bytes, -1 if unknown. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01073">1073</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a20f65fcfd0f3658ab93ff441a9d61d2c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">XMP_Int64 XMP_PacketInfo::offset</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Packet offset in the file in bytes, -1 if unknown. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01071">1071</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a83ec12161a36451fef05d88cc754104e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">XMP_Uns8 XMP_PacketInfo::pad</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Padding to make the struct's size be a multiple 4. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01085">1085</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af4f99e6a5b36b05fdf4a519421875256"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">XMP_Int32 XMP_PacketInfo::padSize</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Packet padding size in bytes, zero if unknown. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01075">1075</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a66845c1d5f3f9f36a1543a7322bd7bd1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a> XMP_PacketInfo::writeable</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>True if there is a packet wrapper and the trailer says writeable by dumb packet scanners. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01080">1080</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a></li>
+<li>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/<a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a></li>
</ul>
-</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
</body>
</html>
diff --git a/docs/API/structXMP__PacketInfo.js b/docs/API/structXMP__PacketInfo.js
new file mode 100755
index 0000000..d7ebdc8
--- /dev/null
+++ b/docs/API/structXMP__PacketInfo.js
@@ -0,0 +1,11 @@
+var structXMP__PacketInfo =
+[
+ [ "XMP_PacketInfo", "structXMP__PacketInfo.html#a2ae03a1b3d03fa9ebc829105037155a8", null ],
+ [ "charForm", "structXMP__PacketInfo.html#a039ce6665fe8e08d922a46f266799f75", null ],
+ [ "hasWrapper", "structXMP__PacketInfo.html#a6725d8ab8b4eedddaac950d2b1b00a7f", null ],
+ [ "length", "structXMP__PacketInfo.html#af526c582b66e24553f2d4b11eb714a44", null ],
+ [ "offset", "structXMP__PacketInfo.html#a20f65fcfd0f3658ab93ff441a9d61d2c", null ],
+ [ "pad", "structXMP__PacketInfo.html#a83ec12161a36451fef05d88cc754104e", null ],
+ [ "padSize", "structXMP__PacketInfo.html#af4f99e6a5b36b05fdf4a519421875256", null ],
+ [ "writeable", "structXMP__PacketInfo.html#a66845c1d5f3f9f36a1543a7322bd7bd1", null ]
+]; \ No newline at end of file
diff --git a/docs/API/structXMP__VersionInfo-members.html b/docs/API/structXMP__VersionInfo-members.html
index 22bdf39..61ba1fd 100644..100755
--- a/docs/API/structXMP__VersionInfo-members.html
+++ b/docs/API/structXMP__VersionInfo-members.html
@@ -1,78 +1,60 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: Member List</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
- <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
- <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('structXMP__VersionInfo.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">XMP_VersionInfo Member List</div> </div>
+</div><!--header-->
<div class="contents">
-<h1>XMP_VersionInfo Member List</h1>This is the complete list of members for <a class="el" href="structXMP__VersionInfo.html">XMP_VersionInfo</a>, including all inherited members.<table>
- <tr class="memlist"><td><a class="el" href="structXMP__VersionInfo.html#a0e20a6bf10da4c17bdfc8027f1586ffc">build</a></td><td><a class="el" href="structXMP__VersionInfo.html">XMP_VersionInfo</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="structXMP__VersionInfo.html#ad018f35b382046ca77b1252bafa93f74">flags</a></td><td><a class="el" href="structXMP__VersionInfo.html">XMP_VersionInfo</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="structXMP__VersionInfo.html#af1643d86f32f5a5a275dc9c5ba843018">isDebug</a></td><td><a class="el" href="structXMP__VersionInfo.html">XMP_VersionInfo</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="structXMP__VersionInfo.html#a7edfa1613a58a248fd15267008bd8afb">major</a></td><td><a class="el" href="structXMP__VersionInfo.html">XMP_VersionInfo</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="structXMP__VersionInfo.html#a19654242b92bffd7517e92882850e834">message</a></td><td><a class="el" href="structXMP__VersionInfo.html">XMP_VersionInfo</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="structXMP__VersionInfo.html#a4b448a8253e26a37d2df35e04ac25d28">micro</a></td><td><a class="el" href="structXMP__VersionInfo.html">XMP_VersionInfo</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="structXMP__VersionInfo.html#af5b56598e15febd742b431dadae7c317">minor</a></td><td><a class="el" href="structXMP__VersionInfo.html">XMP_VersionInfo</a></td><td></td></tr>
-</table></div>
+
+<p>This is the complete list of members for <a class="el" href="structXMP__VersionInfo.html">XMP_VersionInfo</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="structXMP__VersionInfo.html#a0e20a6bf10da4c17bdfc8027f1586ffc">build</a></td><td class="entry"><a class="el" href="structXMP__VersionInfo.html">XMP_VersionInfo</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="structXMP__VersionInfo.html#ad018f35b382046ca77b1252bafa93f74">flags</a></td><td class="entry"><a class="el" href="structXMP__VersionInfo.html">XMP_VersionInfo</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="structXMP__VersionInfo.html#af1643d86f32f5a5a275dc9c5ba843018">isDebug</a></td><td class="entry"><a class="el" href="structXMP__VersionInfo.html">XMP_VersionInfo</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="structXMP__VersionInfo.html#a7edfa1613a58a248fd15267008bd8afb">major</a></td><td class="entry"><a class="el" href="structXMP__VersionInfo.html">XMP_VersionInfo</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="structXMP__VersionInfo.html#a19654242b92bffd7517e92882850e834">message</a></td><td class="entry"><a class="el" href="structXMP__VersionInfo.html">XMP_VersionInfo</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="structXMP__VersionInfo.html#a4b448a8253e26a37d2df35e04ac25d28">micro</a></td><td class="entry"><a class="el" href="structXMP__VersionInfo.html">XMP_VersionInfo</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="structXMP__VersionInfo.html#af5b56598e15febd742b431dadae7c317">minor</a></td><td class="entry"><a class="el" href="structXMP__VersionInfo.html">XMP_VersionInfo</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
</body>
</html>
diff --git a/docs/API/structXMP__VersionInfo.html b/docs/API/structXMP__VersionInfo.html
index 7f0a316..f5059ea 100644..100755
--- a/docs/API/structXMP__VersionInfo.html
+++ b/docs/API/structXMP__VersionInfo.html
@@ -1,106 +1,203 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-<title>XMP-Toolkit-SDK-CC201411-17: XMP_VersionInfo Struct Reference</title>
-<link href="xmp.css" rel="stylesheet" type="text/css">
+<title>XMP_VersionInfo Struct Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
-<!-- Generated by Doxygen 1.6.3 -->
-<script type="text/javascript">
-<!--
-function changeDisplayState (e){
- var num=this.id.replace(/[^[0-9]/g,'');
- var button=this.firstChild;
- var sectionDiv=document.getElementById('dynsection'+num);
- if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
- sectionDiv.style.display='block';
- button.src='open.gif';
- }else{
- sectionDiv.style.display='none';
- button.src='closed.gif';
- }
-}
-function initDynSections(){
- var divs=document.getElementsByTagName('div');
- var sectionCounter=1;
- for(var i=0;i<divs.length-1;i++){
- if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
- var header=divs[i];
- var section=divs[i+1];
- var button=header.firstChild;
- if (button!='IMG'){
- divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
- button=document.createElement('img');
- divs[i].insertBefore(button,divs[i].firstChild);
- }
- header.style.cursor='pointer';
- header.onclick=changeDisplayState;
- header.id='dynheader'+sectionCounter;
- button.src='closed.gif';
- section.id='dynsection'+sectionCounter;
- section.style.display='none';
- section.style.marginLeft='14px';
- sectionCounter++;
- }
- }
-}
-window.onload = initDynSections;
--->
-</script>
-<div class="navigation" id="top">
- <div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
- <div class="tabs">
- <ul>
- <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
- <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('structXMP__VersionInfo.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Public Attributes</a> &#124;
+<a href="structXMP__VersionInfo-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">XMP_VersionInfo Struct Reference</div> </div>
+</div><!--header-->
<div class="contents">
-<h1>XMP_VersionInfo Struct Reference</h1><!-- doxytag: class="XMP_VersionInfo" -->
+
<p>XMP Toolkit version information.
-<a href="#_details">More...</a></p>
+ <a href="structXMP__VersionInfo.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>&gt;</code></p>
-
-<p><a href="structXMP__VersionInfo-members.html">List of all members.</a></p>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td colspan="2"><h2>Public Attributes</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7edfa1613a58a248fd15267008bd8afb"></a><!-- doxytag: member="XMP_VersionInfo::major" ref="a7edfa1613a58a248fd15267008bd8afb" args="" -->
-XMP_Uns8&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__VersionInfo.html#a7edfa1613a58a248fd15267008bd8afb">major</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The primary release number, the "1" in version "1.2.3". <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af5b56598e15febd742b431dadae7c317"></a><!-- doxytag: member="XMP_VersionInfo::minor" ref="af5b56598e15febd742b431dadae7c317" args="" -->
-XMP_Uns8&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__VersionInfo.html#af5b56598e15febd742b431dadae7c317">minor</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The secondary release number, the "2" in version "1.2.3". <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4b448a8253e26a37d2df35e04ac25d28"></a><!-- doxytag: member="XMP_VersionInfo::micro" ref="a4b448a8253e26a37d2df35e04ac25d28" args="" -->
-XMP_Uns8&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__VersionInfo.html#a4b448a8253e26a37d2df35e04ac25d28">micro</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The tertiary release number, the "3" in version "1.2.3". <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af1643d86f32f5a5a275dc9c5ba843018"></a><!-- doxytag: member="XMP_VersionInfo::isDebug" ref="af1643d86f32f5a5a275dc9c5ba843018" args="" -->
-XMP_Bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__VersionInfo.html#af1643d86f32f5a5a275dc9c5ba843018">isDebug</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A 0/1 boolean value, true if this is a debug build. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0e20a6bf10da4c17bdfc8027f1586ffc"></a><!-- doxytag: member="XMP_VersionInfo::build" ref="a0e20a6bf10da4c17bdfc8027f1586ffc" args="" -->
-XMP_Uns32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__VersionInfo.html#a0e20a6bf10da4c17bdfc8027f1586ffc">build</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A rolling build number, monotonically increasing in a release. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad018f35b382046ca77b1252bafa93f74"></a><!-- doxytag: member="XMP_VersionInfo::flags" ref="ad018f35b382046ca77b1252bafa93f74" args="" -->
-XMP_Uns32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__VersionInfo.html#ad018f35b382046ca77b1252bafa93f74">flags</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Individual feature implementation flags. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a19654242b92bffd7517e92882850e834"></a><!-- doxytag: member="XMP_VersionInfo::message" ref="a19654242b92bffd7517e92882850e834" args="" -->
-<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__VersionInfo.html#a19654242b92bffd7517e92882850e834">message</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A comprehensive version information string. <br/></td></tr>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr class="memitem:a7edfa1613a58a248fd15267008bd8afb"><td class="memItemLeft" align="right" valign="top">XMP_Uns8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__VersionInfo.html#a7edfa1613a58a248fd15267008bd8afb">major</a></td></tr>
+<tr class="memdesc:a7edfa1613a58a248fd15267008bd8afb"><td class="mdescLeft">&#160;</td><td class="mdescRight">The primary release number, the "1" in version "1.2.3". <a href="#a7edfa1613a58a248fd15267008bd8afb">More...</a><br /></td></tr>
+<tr class="separator:a7edfa1613a58a248fd15267008bd8afb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af5b56598e15febd742b431dadae7c317"><td class="memItemLeft" align="right" valign="top">XMP_Uns8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__VersionInfo.html#af5b56598e15febd742b431dadae7c317">minor</a></td></tr>
+<tr class="memdesc:af5b56598e15febd742b431dadae7c317"><td class="mdescLeft">&#160;</td><td class="mdescRight">The secondary release number, the "2" in version "1.2.3". <a href="#af5b56598e15febd742b431dadae7c317">More...</a><br /></td></tr>
+<tr class="separator:af5b56598e15febd742b431dadae7c317"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4b448a8253e26a37d2df35e04ac25d28"><td class="memItemLeft" align="right" valign="top">XMP_Uns8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__VersionInfo.html#a4b448a8253e26a37d2df35e04ac25d28">micro</a></td></tr>
+<tr class="memdesc:a4b448a8253e26a37d2df35e04ac25d28"><td class="mdescLeft">&#160;</td><td class="mdescRight">The tertiary release number, the "3" in version "1.2.3". <a href="#a4b448a8253e26a37d2df35e04ac25d28">More...</a><br /></td></tr>
+<tr class="separator:a4b448a8253e26a37d2df35e04ac25d28"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af1643d86f32f5a5a275dc9c5ba843018"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__VersionInfo.html#af1643d86f32f5a5a275dc9c5ba843018">isDebug</a></td></tr>
+<tr class="memdesc:af1643d86f32f5a5a275dc9c5ba843018"><td class="mdescLeft">&#160;</td><td class="mdescRight">A 0/1 boolean value, true if this is a debug build. <a href="#af1643d86f32f5a5a275dc9c5ba843018">More...</a><br /></td></tr>
+<tr class="separator:af1643d86f32f5a5a275dc9c5ba843018"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0e20a6bf10da4c17bdfc8027f1586ffc"><td class="memItemLeft" align="right" valign="top">XMP_Uns32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__VersionInfo.html#a0e20a6bf10da4c17bdfc8027f1586ffc">build</a></td></tr>
+<tr class="memdesc:a0e20a6bf10da4c17bdfc8027f1586ffc"><td class="mdescLeft">&#160;</td><td class="mdescRight">A rolling build number, monotonically increasing in a release. <a href="#a0e20a6bf10da4c17bdfc8027f1586ffc">More...</a><br /></td></tr>
+<tr class="separator:a0e20a6bf10da4c17bdfc8027f1586ffc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad018f35b382046ca77b1252bafa93f74"><td class="memItemLeft" align="right" valign="top">XMP_Uns32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__VersionInfo.html#ad018f35b382046ca77b1252bafa93f74">flags</a></td></tr>
+<tr class="memdesc:ad018f35b382046ca77b1252bafa93f74"><td class="mdescLeft">&#160;</td><td class="mdescRight">Individual feature implementation flags. <a href="#ad018f35b382046ca77b1252bafa93f74">More...</a><br /></td></tr>
+<tr class="separator:ad018f35b382046ca77b1252bafa93f74"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a19654242b92bffd7517e92882850e834"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXMP__VersionInfo.html#a19654242b92bffd7517e92882850e834">message</a></td></tr>
+<tr class="memdesc:a19654242b92bffd7517e92882850e834"><td class="mdescLeft">&#160;</td><td class="mdescRight">A comprehensive version information string. <a href="#a19654242b92bffd7517e92882850e834">More...</a><br /></td></tr>
+<tr class="separator:a19654242b92bffd7517e92882850e834"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
-<hr/><a name="_details"></a><h2>Detailed Description</h2>
-<p>XMP Toolkit version information. </p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>XMP Toolkit version information. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01545">1545</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+</div><h2 class="groupheader">Member Data Documentation</h2>
+<a class="anchor" id="a0e20a6bf10da4c17bdfc8027f1586ffc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">XMP_Uns32 XMP_VersionInfo::build</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>A rolling build number, monotonically increasing in a release. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01555">1555</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad018f35b382046ca77b1252bafa93f74"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">XMP_Uns32 XMP_VersionInfo::flags</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Individual feature implementation flags. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01557">1557</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af1643d86f32f5a5a275dc9c5ba843018"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Const_8h.html#a0cf68b6f47d136ed571a441a9e0d2248">XMP_Bool</a> XMP_VersionInfo::isDebug</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>A 0/1 boolean value, true if this is a debug build. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01553">1553</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7edfa1613a58a248fd15267008bd8afb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">XMP_Uns8 XMP_VersionInfo::major</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The primary release number, the "1" in version "1.2.3". </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01547">1547</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a19654242b92bffd7517e92882850e834"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> XMP_VersionInfo::message</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>A comprehensive version information string. </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01559">1559</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4b448a8253e26a37d2df35e04ac25d28"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">XMP_Uns8 XMP_VersionInfo::micro</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The tertiary release number, the "3" in version "1.2.3". </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01551">1551</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af5b56598e15febd742b431dadae7c317"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">XMP_Uns8 XMP_VersionInfo::minor</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The secondary release number, the "2" in version "1.2.3". </p>
+
+<p>Definition at line <a class="el" href="XMP__Const_8h_source.html#l01549">1549</a> of file <a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a>.</p>
+
+</div>
+</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a></li>
+<li>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/<a class="el" href="XMP__Const_8h_source.html">XMP_Const.h</a></li>
</ul>
-</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
<hr size="1"><address style="text-align: right;"><small>
-XMP-Toolkit-SDK-CC201411-17 documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.6.3</small></address>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
</body>
</html>
diff --git a/docs/API/structXMP__VersionInfo.js b/docs/API/structXMP__VersionInfo.js
new file mode 100755
index 0000000..6d2a156
--- /dev/null
+++ b/docs/API/structXMP__VersionInfo.js
@@ -0,0 +1,10 @@
+var structXMP__VersionInfo =
+[
+ [ "build", "structXMP__VersionInfo.html#a0e20a6bf10da4c17bdfc8027f1586ffc", null ],
+ [ "flags", "structXMP__VersionInfo.html#ad018f35b382046ca77b1252bafa93f74", null ],
+ [ "isDebug", "structXMP__VersionInfo.html#af1643d86f32f5a5a275dc9c5ba843018", null ],
+ [ "major", "structXMP__VersionInfo.html#a7edfa1613a58a248fd15267008bd8afb", null ],
+ [ "message", "structXMP__VersionInfo.html#a19654242b92bffd7517e92882850e834", null ],
+ [ "micro", "structXMP__VersionInfo.html#a4b448a8253e26a37d2df35e04ac25d28", null ],
+ [ "minor", "structXMP__VersionInfo.html#af5b56598e15febd742b431dadae7c317", null ]
+]; \ No newline at end of file
diff --git a/docs/API/sync_off.png b/docs/API/sync_off.png
new file mode 100755
index 0000000..3b443fc
--- /dev/null
+++ b/docs/API/sync_off.png
Binary files differ
diff --git a/docs/API/sync_on.png b/docs/API/sync_on.png
new file mode 100755
index 0000000..e08320f
--- /dev/null
+++ b/docs/API/sync_on.png
Binary files differ
diff --git a/docs/API/tab_a.png b/docs/API/tab_a.png
new file mode 100755
index 0000000..3b725c4
--- /dev/null
+++ b/docs/API/tab_a.png
Binary files differ
diff --git a/docs/API/tab_b.gif b/docs/API/tab_b.gif
deleted file mode 100644
index 0d62348..0000000
--- a/docs/API/tab_b.gif
+++ /dev/null
Binary files differ
diff --git a/docs/API/tab_b.png b/docs/API/tab_b.png
new file mode 100755
index 0000000..e2b4a86
--- /dev/null
+++ b/docs/API/tab_b.png
Binary files differ
diff --git a/docs/API/tab_h.png b/docs/API/tab_h.png
new file mode 100755
index 0000000..fd5cb70
--- /dev/null
+++ b/docs/API/tab_h.png
Binary files differ
diff --git a/docs/API/tab_l.gif b/docs/API/tab_l.gif
deleted file mode 100644
index 9b1e633..0000000
--- a/docs/API/tab_l.gif
+++ /dev/null
Binary files differ
diff --git a/docs/API/tab_r.gif b/docs/API/tab_r.gif
deleted file mode 100644
index ce9dd9f..0000000
--- a/docs/API/tab_r.gif
+++ /dev/null
Binary files differ
diff --git a/docs/API/tab_s.png b/docs/API/tab_s.png
new file mode 100755
index 0000000..ab478c9
--- /dev/null
+++ b/docs/API/tab_s.png
Binary files differ
diff --git a/docs/API/tabs.css b/docs/API/tabs.css
index a444163..9cf578f 100644..100755
--- a/docs/API/tabs.css
+++ b/docs/API/tabs.css
@@ -1,105 +1,60 @@
-/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */
-
-DIV.tabs
-{
- float : left;
- width : 100%;
- background : url("tab_b.gif") repeat-x bottom;
- margin-bottom : 4px;
-}
-
-DIV.tabs UL
-{
- margin : 0px;
- padding-left : 10px;
- list-style : none;
-}
-
-DIV.tabs LI, DIV.tabs FORM
-{
- display : inline;
- margin : 0px;
- padding : 0px;
-}
-
-DIV.tabs FORM
-{
- float : right;
+.tabs, .tabs2, .tabs3 {
+ background-image: url('tab_b.png');
+ width: 100%;
+ z-index: 101;
+ font-size: 13px;
+ font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
}
-DIV.tabs A
-{
- float : left;
- background : url("tab_r.gif") no-repeat right top;
- border-bottom : 1px solid #84B0C7;
- font-size : 80%;
- font-weight : bold;
- text-decoration : none;
+.tabs2 {
+ font-size: 10px;
}
-
-DIV.tabs A:hover
-{
- background-position: 100% -150px;
+.tabs3 {
+ font-size: 9px;
}
-DIV.tabs A:link, DIV.tabs A:visited,
-DIV.tabs A:active, DIV.tabs A:hover
-{
- color: #1A419D;
+.tablist {
+ margin: 0;
+ padding: 0;
+ display: table;
}
-DIV.tabs SPAN
-{
- float : left;
- display : block;
- background : url("tab_l.gif") no-repeat left top;
- padding : 5px 9px;
- white-space : nowrap;
+.tablist li {
+ float: left;
+ display: table-cell;
+ background-image: url('tab_b.png');
+ line-height: 36px;
+ list-style: none;
}
-DIV.tabs #MSearchBox
-{
- float : right;
- display : inline;
- font-size : 1em;
-}
-
-DIV.tabs TD
-{
- font-size : 80%;
- font-weight : bold;
- text-decoration : none;
-}
-
-
-
-/* Commented Backslash Hack hides rule from IE5-Mac \*/
-DIV.tabs SPAN {float : none;}
-/* End IE5-Mac hack */
-
-DIV.tabs A:hover SPAN
-{
- background-position: 0% -150px;
+.tablist a {
+ display: block;
+ padding: 0 20px;
+ font-weight: bold;
+ background-image:url('tab_s.png');
+ background-repeat:no-repeat;
+ background-position:right;
+ color: #283A5D;
+ text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+ text-decoration: none;
+ outline: none;
}
-DIV.tabs LI.current A
-{
- background-position: 100% -150px;
- border-width : 0px;
+.tabs3 .tablist a {
+ padding: 0 10px;
}
-DIV.tabs LI.current SPAN
-{
- background-position: 0% -150px;
- padding-bottom : 6px;
+.tablist a:hover {
+ background-image: url('tab_h.png');
+ background-repeat:repeat-x;
+ color: #fff;
+ text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+ text-decoration: none;
}
-DIV.navpath
-{
- background : none;
- border : none;
- border-bottom : 1px solid #84B0C7;
- text-align : center;
- margin : 2px;
- padding : 2px;
+.tablist li.current a {
+ background-image: url('tab_a.png');
+ background-repeat:repeat-x;
+ color: #fff;
+ text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
}
diff --git a/docs/API/unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue-members.html b/docs/API/unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue-members.html
new file mode 100755
index 0000000..3a904fa
--- /dev/null
+++ b/docs/API/unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue-members.html
@@ -0,0 +1,61 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">AdobeXMPCommon::IConfigurable::CombinedDataValue Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html">AdobeXMPCommon::IConfigurable::CombinedDataValue</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a5cf9ec10ad5942fe67759a8c442817da">boolValue</a></td><td class="entry"><a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html">AdobeXMPCommon::IConfigurable::CombinedDataValue</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#acf5eba644510b302a7d351ab06174880">charValue</a></td><td class="entry"><a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html">AdobeXMPCommon::IConfigurable::CombinedDataValue</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a8b483f56604dfd719c6cc0cbd883d9f7">constCharPtrValue</a></td><td class="entry"><a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html">AdobeXMPCommon::IConfigurable::CombinedDataValue</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a8f1fc5e55c1cac4aba0b23d9e2f25a5a">constVoidPtrValue</a></td><td class="entry"><a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html">AdobeXMPCommon::IConfigurable::CombinedDataValue</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a0c9f75a96d53c5d03516f233937d6dca">doubleValue</a></td><td class="entry"><a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html">AdobeXMPCommon::IConfigurable::CombinedDataValue</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#ad65f4aa42944655754cdabc56befe34c">int64Value</a></td><td class="entry"><a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html">AdobeXMPCommon::IConfigurable::CombinedDataValue</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a6ed591451d1db9b4fd0dac884bfe489e">uint32Value</a></td><td class="entry"><a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html">AdobeXMPCommon::IConfigurable::CombinedDataValue</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a65e7b5a9f09ea6b684e5e0aaa5f63ee1">uint64Value</a></td><td class="entry"><a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html">AdobeXMPCommon::IConfigurable::CombinedDataValue</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html b/docs/API/unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html
new file mode 100755
index 0000000..99ee6bc
--- /dev/null
+++ b/docs/API/unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>AdobeXMPCommon::IConfigurable::CombinedDataValue Union Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<img src="xmp_tagline_small.jpg" width="125" height="50" border="0"><p>
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Public Attributes</a> &#124;
+<a href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">AdobeXMPCommon::IConfigurable::CombinedDataValue Union Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>A union data type to store all kind of values.
+ <a href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="IConfigurable_8h_source.html">IConfigurable.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr class="memitem:a5cf9ec10ad5942fe67759a8c442817da"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a5cf9ec10ad5942fe67759a8c442817da">boolValue</a></td></tr>
+<tr class="separator:a5cf9ec10ad5942fe67759a8c442817da"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6ed591451d1db9b4fd0dac884bfe489e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a6ed591451d1db9b4fd0dac884bfe489e">uint32Value</a></td></tr>
+<tr class="separator:a6ed591451d1db9b4fd0dac884bfe489e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a65e7b5a9f09ea6b684e5e0aaa5f63ee1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a65e7b5a9f09ea6b684e5e0aaa5f63ee1">uint64Value</a></td></tr>
+<tr class="separator:a65e7b5a9f09ea6b684e5e0aaa5f63ee1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad65f4aa42944655754cdabc56befe34c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceAdobeXMPCommon.html#aee4f68e01de51c2cf1c1044ecafebc25">int64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#ad65f4aa42944655754cdabc56befe34c">int64Value</a></td></tr>
+<tr class="separator:ad65f4aa42944655754cdabc56befe34c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0c9f75a96d53c5d03516f233937d6dca"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a0c9f75a96d53c5d03516f233937d6dca">doubleValue</a></td></tr>
+<tr class="separator:a0c9f75a96d53c5d03516f233937d6dca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acf5eba644510b302a7d351ab06174880"><td class="memItemLeft" align="right" valign="top">char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#acf5eba644510b302a7d351ab06174880">charValue</a></td></tr>
+<tr class="separator:acf5eba644510b302a7d351ab06174880"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8b483f56604dfd719c6cc0cbd883d9f7"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a8b483f56604dfd719c6cc0cbd883d9f7">constCharPtrValue</a></td></tr>
+<tr class="separator:a8b483f56604dfd719c6cc0cbd883d9f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8f1fc5e55c1cac4aba0b23d9e2f25a5a"><td class="memItemLeft" align="right" valign="top">const void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a8f1fc5e55c1cac4aba0b23d9e2f25a5a">constVoidPtrValue</a></td></tr>
+<tr class="separator:a8f1fc5e55c1cac4aba0b23d9e2f25a5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>A union data type to store all kind of values. </p>
+
+<p>Definition at line <a class="el" href="IConfigurable_8h_source.html#l00146">146</a> of file <a class="el" href="IConfigurable_8h_source.html">IConfigurable.h</a>.</p>
+</div><h2 class="groupheader">Member Data Documentation</h2>
+<a class="anchor" id="a5cf9ec10ad5942fe67759a8c442817da"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool AdobeXMPCommon::IConfigurable::CombinedDataValue::boolValue</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="IConfigurable_8h_source.html#l00147">147</a> of file <a class="el" href="IConfigurable_8h_source.html">IConfigurable.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="acf5eba644510b302a7d351ab06174880"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">char AdobeXMPCommon::IConfigurable::CombinedDataValue::charValue</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="IConfigurable_8h_source.html#l00152">152</a> of file <a class="el" href="IConfigurable_8h_source.html">IConfigurable.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8b483f56604dfd719c6cc0cbd883d9f7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const char* AdobeXMPCommon::IConfigurable::CombinedDataValue::constCharPtrValue</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="IConfigurable_8h_source.html#l00153">153</a> of file <a class="el" href="IConfigurable_8h_source.html">IConfigurable.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8f1fc5e55c1cac4aba0b23d9e2f25a5a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const void* AdobeXMPCommon::IConfigurable::CombinedDataValue::constVoidPtrValue</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="IConfigurable_8h_source.html#l00154">154</a> of file <a class="el" href="IConfigurable_8h_source.html">IConfigurable.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0c9f75a96d53c5d03516f233937d6dca"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">double AdobeXMPCommon::IConfigurable::CombinedDataValue::doubleValue</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="IConfigurable_8h_source.html#l00151">151</a> of file <a class="el" href="IConfigurable_8h_source.html">IConfigurable.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad65f4aa42944655754cdabc56befe34c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="namespaceAdobeXMPCommon.html#aee4f68e01de51c2cf1c1044ecafebc25">int64</a> AdobeXMPCommon::IConfigurable::CombinedDataValue::int64Value</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="IConfigurable_8h_source.html#l00150">150</a> of file <a class="el" href="IConfigurable_8h_source.html">IConfigurable.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6ed591451d1db9b4fd0dac884bfe489e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> AdobeXMPCommon::IConfigurable::CombinedDataValue::uint32Value</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="IConfigurable_8h_source.html#l00148">148</a> of file <a class="el" href="IConfigurable_8h_source.html">IConfigurable.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a65e7b5a9f09ea6b684e5e0aaa5f63ee1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> AdobeXMPCommon::IConfigurable::CombinedDataValue::uint64Value</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="IConfigurable_8h_source.html#l00149">149</a> of file <a class="el" href="IConfigurable_8h_source.html">IConfigurable.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this union was generated from the following file:<ul>
+<li>C:/XMP/XMP-Toolkit-SDK-CC201607/XMP-Toolkit-SDK-CC201607/public/include/XMPCommon/Interfaces/BaseInterfaces/<a class="el" href="IConfigurable_8h_source.html">IConfigurable.h</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<hr size="1"><address style="text-align: right;"><small>
+XMPToolkit documentation generated by&nbsp;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.11</small></address>
+</body>
+</html>
diff --git a/docs/API/unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.js b/docs/API/unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.js
new file mode 100755
index 0000000..045cd0a
--- /dev/null
+++ b/docs/API/unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.js
@@ -0,0 +1,11 @@
+var unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue =
+[
+ [ "boolValue", "unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a5cf9ec10ad5942fe67759a8c442817da", null ],
+ [ "charValue", "unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#acf5eba644510b302a7d351ab06174880", null ],
+ [ "constCharPtrValue", "unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a8b483f56604dfd719c6cc0cbd883d9f7", null ],
+ [ "constVoidPtrValue", "unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a8f1fc5e55c1cac4aba0b23d9e2f25a5a", null ],
+ [ "doubleValue", "unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a0c9f75a96d53c5d03516f233937d6dca", null ],
+ [ "int64Value", "unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#ad65f4aa42944655754cdabc56befe34c", null ],
+ [ "uint32Value", "unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a6ed591451d1db9b4fd0dac884bfe489e", null ],
+ [ "uint64Value", "unionAdobeXMPCommon_1_1IConfigurable_1_1CombinedDataValue.html#a65e7b5a9f09ea6b684e5e0aaa5f63ee1", null ]
+]; \ No newline at end of file
diff --git a/docs/API/xmp.css b/docs/API/xmp.css
deleted file mode 100644
index 22c4843..0000000
--- a/docs/API/xmp.css
+++ /dev/null
@@ -1,473 +0,0 @@
-BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV {
- font-family: Geneva, Arial, Helvetica, sans-serif;
-}
-BODY,TD {
- font-size: 90%;
-}
-H1 {
- text-align: center;
- font-size: 160%;
-}
-H2 {
- font-size: 120%;
-}
-H3 {
- font-size: 100%;
-}
-CAPTION {
- font-weight: bold
-}
-DIV.qindex {
- width: 100%;
- background-color: #e8eef2;
- border: 1px solid #84b0c7;
- text-align: center;
- margin: 2px;
- padding: 2px;
- line-height: 140%;
-}
-DIV.navpath {
- width: 100%;
- background-color: #e8eef2;
- border: 1px solid #84b0c7;
- text-align: center;
- margin: 2px;
- padding: 2px;
- line-height: 140%;
-}
-DIV.navtab {
- background-color: #e8eef2;
- border: 1px solid #84b0c7;
- text-align: center;
- margin: 2px;
- margin-right: 15px;
- padding: 2px;
-}
-TD.navtab {
- font-size: 70%;
-}
-A.qindex {
- text-decoration: none;
- font-weight: bold;
- color: #1A419D;
-}
-A.qindex:visited {
- text-decoration: none;
- font-weight: bold;
- color: #1A419D
-}
-A.qindex:hover {
- text-decoration: none;
- background-color: #ddddff;
-}
-A.qindexHL {
- text-decoration: none;
- font-weight: bold;
- background-color: #6666cc;
- color: #ffffff;
- border: 1px double #9295C2;
-}
-A.qindexHL:hover {
- text-decoration: none;
- background-color: #6666cc;
- color: #ffffff;
-}
-A.qindexHL:visited {
- text-decoration: none;
- background-color: #6666cc;
- color: #ffffff
-}
-A.el {
- text-decoration: none;
- font-weight: bold
-}
-A.elRef {
- font-weight: bold
-}
-A.code:link {
- text-decoration: none;
- font-weight: normal;
- color: #0000FF
-}
-A.code:visited {
- text-decoration: none;
- font-weight: normal;
- color: #0000FF
-}
-A.codeRef:link {
- font-weight: normal;
- color: #0000FF
-}
-A.codeRef:visited {
- font-weight: normal;
- color: #0000FF
-}
-A:hover {
- text-decoration: none;
- background-color: #f2f2ff
-}
-DL.el {
- margin-left: -1cm
-}
-.fragment {
- font-family: monospace, fixed;
- font-size: 95%;
-}
-PRE.fragment {
- border: 1px solid #CCCCCC;
- background-color: #f5f5f5;
- margin-top: 4px;
- margin-bottom: 4px;
- margin-left: 2px;
- margin-right: 8px;
- padding-left: 6px;
- padding-right: 6px;
- padding-top: 4px;
- padding-bottom: 4px;
-}
-DIV.ah {
- background-color: black;
- font-weight: bold;
- color: #ffffff;
- margin-bottom: 3px;
- margin-top: 3px
-}
-
-DIV.groupHeader {
- margin-left: 16px;
- margin-top: 12px;
- margin-bottom: 6px;
- font-weight: bold;
-}
-DIV.groupText {
- margin-left: 16px;
- font-style: italic;
- font-size: 90%
-}
-BODY {
- background: white;
- color: black;
- margin-right: 20px;
- margin-left: 20px;
-}
-TD.indexkey {
- background-color: #e8eef2;
- font-weight: bold;
- padding-right : 10px;
- padding-top : 2px;
- padding-left : 10px;
- padding-bottom : 2px;
- margin-left : 0px;
- margin-right : 0px;
- margin-top : 2px;
- margin-bottom : 2px;
- border: 1px solid #CCCCCC;
-}
-TD.indexvalue {
- background-color: #e8eef2;
- font-style: italic;
- padding-right : 10px;
- padding-top : 2px;
- padding-left : 10px;
- padding-bottom : 2px;
- margin-left : 0px;
- margin-right : 0px;
- margin-top : 2px;
- margin-bottom : 2px;
- border: 1px solid #CCCCCC;
-}
-TR.memlist {
- background-color: #f0f0f0;
-}
-P.formulaDsp {
- text-align: center;
-}
-IMG.formulaDsp {
-}
-IMG.formulaInl {
- vertical-align: middle;
-}
-SPAN.keyword { color: #008000 }
-SPAN.keywordtype { color: #604020 }
-SPAN.keywordflow { color: #e08000 }
-SPAN.comment { color: #800000 }
-SPAN.preprocessor { color: #806020 }
-SPAN.stringliteral { color: #002080 }
-SPAN.charliteral { color: #008080 }
-SPAN.vhdldigit { color: #ff00ff }
-SPAN.vhdlchar { color: #000000 }
-SPAN.vhdlkeyword { color: #700070 }
-SPAN.vhdllogic { color: #ff0000 }
-
-.mdescLeft {
- padding: 0px 8px 4px 8px;
- font-size: 80%;
- font-style: italic;
- background-color: #FAFAFA;
- border-top: 1px none #E0E0E0;
- border-right: 1px none #E0E0E0;
- border-bottom: 1px none #E0E0E0;
- border-left: 1px none #E0E0E0;
- margin: 0px;
-}
-.mdescRight {
- padding: 0px 8px 4px 8px;
- font-size: 80%;
- font-style: italic;
- background-color: #FAFAFA;
- border-top: 1px none #E0E0E0;
- border-right: 1px none #E0E0E0;
- border-bottom: 1px none #E0E0E0;
- border-left: 1px none #E0E0E0;
- margin: 0px;
-}
-.memItemLeft {
- padding: 1px 0px 0px 8px;
- margin: 4px;
- border-top-width: 1px;
- border-right-width: 1px;
- border-bottom-width: 1px;
- border-left-width: 1px;
- border-top-color: #E0E0E0;
- border-right-color: #E0E0E0;
- border-bottom-color: #E0E0E0;
- border-left-color: #E0E0E0;
- border-top-style: solid;
- border-right-style: none;
- border-bottom-style: none;
- border-left-style: none;
- background-color: #FAFAFA;
- font-size: 80%;
-}
-.memItemRight {
- padding: 1px 8px 0px 8px;
- margin: 4px;
- border-top-width: 1px;
- border-right-width: 1px;
- border-bottom-width: 1px;
- border-left-width: 1px;
- border-top-color: #E0E0E0;
- border-right-color: #E0E0E0;
- border-bottom-color: #E0E0E0;
- border-left-color: #E0E0E0;
- border-top-style: solid;
- border-right-style: none;
- border-bottom-style: none;
- border-left-style: none;
- background-color: #FAFAFA;
- font-size: 80%;
-}
-.memTemplItemLeft {
- padding: 1px 0px 0px 8px;
- margin: 4px;
- border-top-width: 1px;
- border-right-width: 1px;
- border-bottom-width: 1px;
- border-left-width: 1px;
- border-top-color: #E0E0E0;
- border-right-color: #E0E0E0;
- border-bottom-color: #E0E0E0;
- border-left-color: #E0E0E0;
- border-top-style: none;
- border-right-style: none;
- border-bottom-style: none;
- border-left-style: none;
- background-color: #FAFAFA;
- font-size: 80%;
-}
-.memTemplItemRight {
- padding: 1px 8px 0px 8px;
- margin: 4px;
- border-top-width: 1px;
- border-right-width: 1px;
- border-bottom-width: 1px;
- border-left-width: 1px;
- border-top-color: #E0E0E0;
- border-right-color: #E0E0E0;
- border-bottom-color: #E0E0E0;
- border-left-color: #E0E0E0;
- border-top-style: none;
- border-right-style: none;
- border-bottom-style: none;
- border-left-style: none;
- background-color: #FAFAFA;
- font-size: 80%;
-}
-.memTemplParams {
- padding: 1px 0px 0px 8px;
- margin: 4px;
- border-top-width: 1px;
- border-right-width: 1px;
- border-bottom-width: 1px;
- border-left-width: 1px;
- border-top-color: #E0E0E0;
- border-right-color: #E0E0E0;
- border-bottom-color: #E0E0E0;
- border-left-color: #E0E0E0;
- border-top-style: solid;
- border-right-style: none;
- border-bottom-style: none;
- border-left-style: none;
- color: #606060;
- background-color: #FAFAFA;
- font-size: 80%;
-}
-.search {
- color: #003399;
- font-weight: bold;
-}
-FORM.search {
- margin-bottom: 0px;
- margin-top: 0px;
-}
-INPUT.search {
- font-size: 75%;
- color: #000080;
- font-weight: normal;
- background-color: #e8eef2;
-}
-TD.tiny {
- font-size: 75%;
-}
-a {
- color: #1A41A8;
-}
-a:visited {
- color: #2A3798;
-}
-.dirtab {
- padding: 4px;
- border-collapse: collapse;
- border: 1px solid #84b0c7;
-}
-TH.dirtab {
- background: #e8eef2;
- font-weight: bold;
-}
-HR {
- height: 1px;
- border: none;
- border-top: 1px solid black;
-}
-
-/* Style for detailed member documentation */
-.memtemplate {
- font-size: 80%;
- color: #606060;
- font-weight: normal;
- margin-left: 3px;
-}
-.memnav {
- background-color: #e8eef2;
- border: 1px solid #84b0c7;
- text-align: center;
- margin: 2px;
- margin-right: 15px;
- padding: 2px;
-}
-.memitem {
- padding: 4px;
- background-color: #eef3f5;
- border-width: 1px;
- border-style: solid;
- border-color: #dedeee;
- -moz-border-radius: 8px 8px 8px 8px;
-}
-.memname {
- white-space: nowrap;
- font-weight: bold;
-}
-.memdoc{
- padding-left: 10px;
-}
-.memproto {
- background-color: #d5e1e8;
- width: 100%;
- border-width: 1px;
- border-style: solid;
- border-color: #84b0c7;
- font-weight: bold;
- -moz-border-radius: 8px 8px 8px 8px;
-}
-.paramkey {
- text-align: right;
-}
-.paramtype {
- white-space: nowrap;
-}
-.paramname {
- color: #602020;
- font-style: italic;
- white-space: nowrap;
-}
-/* End Styling for detailed member documentation */
-
-/* for the tree view */
-.ftvtree {
- font-family: sans-serif;
- margin:0.5em;
-}
-/* these are for tree view when used as main index */
-.directory {
- font-size: 9pt;
- font-weight: bold;
-}
-.directory h3 {
- margin: 0px;
- margin-top: 1em;
- font-size: 11pt;
-}
-
-/* The following two styles can be used to replace the root node title */
-/* with an image of your choice. Simply uncomment the next two styles, */
-/* specify the name of your image and be sure to set 'height' to the */
-/* proper pixel height of your image. */
-
-/* .directory h3.swap { */
-/* height: 61px; */
-/* background-repeat: no-repeat; */
-/* background-image: url("yourimage.gif"); */
-/* } */
-/* .directory h3.swap span { */
-/* display: none; */
-/* } */
-
-.directory > h3 {
- margin-top: 0;
-}
-.directory p {
- margin: 0px;
- white-space: nowrap;
-}
-.directory div {
- display: none;
- margin: 0px;
-}
-.directory img {
- vertical-align: -30%;
-}
-/* these are for tree view when not used as main index */
-.directory-alt {
- font-size: 100%;
- font-weight: bold;
-}
-.directory-alt h3 {
- margin: 0px;
- margin-top: 1em;
- font-size: 11pt;
-}
-.directory-alt > h3 {
- margin-top: 0;
-}
-.directory-alt p {
- margin: 0px;
- white-space: nowrap;
-}
-.directory-alt div {
- display: none;
- margin: 0px;
-}
-.directory-alt img {
- vertical-align: -30%;
-}
-
diff --git a/docs/XMPAddendumProgrammersGuide.pdf b/docs/XMPAddendumProgrammersGuide.pdf
new file mode 100644
index 0000000..1bd3e98
--- /dev/null
+++ b/docs/XMPAddendumProgrammersGuide.pdf
Binary files differ
diff --git a/docs/XMPFilesPluginSDK.pdf b/docs/XMPFilesPluginSDK.pdf
index 487d4c8..ecaeef1 100644
--- a/docs/XMPFilesPluginSDK.pdf
+++ b/docs/XMPFilesPluginSDK.pdf
Binary files differ
diff --git a/docs/XMPProgrammersGuide.pdf b/docs/XMPProgrammersGuide.pdf
index 0b2c2a1..341cd9d 100644
--- a/docs/XMPProgrammersGuide.pdf
+++ b/docs/XMPProgrammersGuide.pdf
Binary files differ
diff --git a/docs/XMPSpecificationPart2.pdf b/docs/XMPSpecificationPart2.pdf
index cae235a..ac81b9f 100644
--- a/docs/XMPSpecificationPart2.pdf
+++ b/docs/XMPSpecificationPart2.pdf
Binary files differ
diff --git a/docs/XMPSpecificationPart3.pdf b/docs/XMPSpecificationPart3.pdf
index cc845fc..cd9d603 100644
--- a/docs/XMPSpecificationPart3.pdf
+++ b/docs/XMPSpecificationPart3.pdf
Binary files differ
diff --git a/public/include/TXMPFiles.hpp b/public/include/TXMPFiles.hpp
index 27ee413..aeecda9 100644
--- a/public/include/TXMPFiles.hpp
+++ b/public/include/TXMPFiles.hpp
@@ -847,7 +847,6 @@ private:
// involve heap allocations. This ensures the allocations occur within the client.
static void SetClientString ( void * clientPtr, XMP_StringPtr valuePtr, XMP_StringLen valueLen );
static void SetClientStringVector ( void * clientPtr, XMP_StringPtr* arrayPtr, XMP_Uns32 stringCount );
-
}; // class TXMPFiles
// =================================================================================================
diff --git a/public/include/TXMPMeta.hpp b/public/include/TXMPMeta.hpp
index 57aa62a..5a3e576 100644
--- a/public/include/TXMPMeta.hpp
+++ b/public/include/TXMPMeta.hpp
@@ -5,6 +5,11 @@
#error "Do not directly include, use XMP.hpp"
#endif
+#include "XMPCore/XMPCoreDefines.h"
+#if ENABLE_CPP_DOM_MODEL
+ #include "XMPCore/XMPCoreFwdDeclarations.h"
+#endif
+
// =================================================================================================
// ADOBE SYSTEMS INCORPORATED
// Copyright 2002 Adobe Systems Incorporated
@@ -1725,7 +1730,7 @@ public:
// --------------------------------------------------------------------------------------------
/// @brief ResetErrorCallbackLimit() resets the error notification limit and counting. It has no
- /// effect if an error notification callback function is not registered.
+ /// effect if an error notification callback function is not registered.
///
/// @param limit A limit on the number of notifications to be delivered.
diff --git a/public/include/XMPCommon/Interfaces/BaseInterfaces/IConfigurable.h b/public/include/XMPCommon/Interfaces/BaseInterfaces/IConfigurable.h
new file mode 100644
index 0000000..e7ba7c6
--- /dev/null
+++ b/public/include/XMPCommon/Interfaces/BaseInterfaces/IConfigurable.h
@@ -0,0 +1,225 @@
+//!
+//! @file IConfigurable.h
+//!
+
+#ifndef IConfigurable_h__
+#define IConfigurable_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/XMPCommonFwdDeclarations.h"
+
+namespace AdobeXMPCommon {
+
+ //!
+ //! \brief Interface that allows to attach various key-value parameters to the underlying object.
+ //!
+ //! \details Key is an unsigned 64-bit integer value which can be a char buffer of eight characters also.
+ //! \note For all value types except user data ( const void * ) or char buffer ( const char * ) a copy is made
+ //! and is stored, so the scope is maintained internally. But for user data ( const void * ) or char buffer
+ //! ( const char * ) its clients responsibility to make sure these pointers remain valid through out the life
+ //! span of the object or objects derived from it.
+ //!
+ class XMP_PUBLIC IConfigurable
+ {
+ public:
+
+ //!
+ //! @brief Indicates various types of parameter values.
+ //!
+ typedef enum {
+ //!< Data type is none.
+ kDTNone = 0,
+ //!< Data type is boolean.
+ kDTBool = 1 << 0,
+ //!< Data type is unsigned 64 bit integer.
+ kDTUint64 = 1 << 1,
+ //!< Data type is signed 64 bit integer.
+ kDTInt64 = 1 << 2,
+ //!< Data type is character.
+ kDTChar = 1 << 3,
+ //!< Data type is double.
+ kDTDouble = 1 << 4,
+ //!< Data type is char buffer.
+ kDTConstCharBuffer = 1 << 5,
+ //!< Data type is user data ( pointer to const void ).
+ kDTConstVoidPtr = 1 << 6,
+
+ //!< Maximum value this enum can hold.
+ kDTAll = 0xFFFFFFFF
+ } eDataType;
+
+ //!
+ //! @{
+ //! @brief Add/Change a value of a parameter.
+ //! \param[in] key An unsigned 64 bit integer value indicating the key.
+ //! \param[in] value New value of the parameter.
+ //! \attention Error is thrown in case
+ //! - the previous type of value associated with key is of different type.
+ //! - the type of value associated with key is not as expected.
+ //!
+ virtual void APICALL SetParameter( const uint64 & key, bool value ) = 0;
+ virtual void APICALL SetParameter( const uint64 & key, uint64 value ) = 0;
+ virtual void APICALL SetParameter( const uint64 & key, int64 value ) = 0;
+ virtual void APICALL SetParameter( const uint64 & key, double value ) = 0;
+ virtual void APICALL SetParameter( const uint64 & key, char value ) = 0;
+ virtual void APICALL SetParameter( const uint64 & key, const char * value ) = 0;
+ virtual void APICALL SetParameter( const uint64 & key, const void * value ) = 0;
+ //! @}
+
+ //!
+ //! @brief Removes a particular parameter if present.
+ //! \param[in] key An unsigned 64 bit integer value indicating the key.
+ //! \return True in case key was present and is deleted.
+ //! \attention Error is thrown in case
+ //! - key is a must have for the underlying object.
+ //!
+ virtual bool APICALL RemoveParameter( const uint64 & key ) = 0;
+
+ //!
+ //! @{
+ //! @brief Get the value of a parameter if present.
+ //! \param[in] key An unsigned 64 bit integer value indicating the key.
+ //! \param[out] value The value of the parameter.
+ //! \return false if no such parameter is present, otherwise true.
+ //! \attention Error is thrown in case the type of the parameter is not
+ //! the one client is asking for.
+ //!
+ virtual bool APICALL GetParameter( const uint64 & key, bool & value ) const = 0;
+ virtual bool APICALL GetParameter( const uint64 & key, uint64 & value ) const = 0;
+ virtual bool APICALL GetParameter( const uint64 & key, int64 & value ) const = 0;
+ virtual bool APICALL GetParameter( const uint64 & key, double & value ) const = 0;
+ virtual bool APICALL GetParameter( const uint64 & key, char & value ) const = 0;
+ virtual bool APICALL GetParameter( const uint64 & key, const char * & value ) const = 0;
+ virtual bool APICALL GetParameter( const uint64 & key, const void * & value ) const = 0;
+ //! @}
+
+ //!
+ //! @brief Get all the keys of the parameters associated with the object.
+ //! \details Provide a std::vector containing the keys of all the parameters associated with the object.
+ //! \return A std::vector of unsigned 64 bit integers.
+ //!
+ virtual std::vector< uint64 > APICALL GetAllParameters() const = 0;
+
+ //!
+ //! @brief Get the number of parameters associated with the object.
+ //!
+ virtual sizet APICALL Size() const __NOTHROW__ = 0;
+
+ //!
+ //! @brief Get the value type of a particular parameter.
+ //! \param[in] key An unsigned 64 bit integer value indicating the key.
+ //! \return A value of type eDataType indicating the type of value the parameter is supposed to hold.
+ //! \note return kDTNone in case no such key is associated with the object.
+ //!
+ virtual eDataType APICALL GetDataType( const uint64 & key ) const = 0;
+
+ //!
+ //! @brief Utility function to convert character buffer ( maximum of 8 characters ) to uint64 representation.
+ //! \param[in] key A pointer to const char buffer, maximum characters used are 8 provided there is no
+ //! null character present in the buffer between 1st to 8 characters, otherwise characters upto NULL
+ //! character (excluding NULL) are read.
+ //! \return A 64-bit unsigned integer representing the first 8 characters of the character buffer.
+ //! \note Return 0 in case key is NULL.
+ //!
+ static uint64 ConvertCharBufferToUint64( const char * key ) {
+ uint64 keyAsuint64 = 0;
+ if ( key ) {
+ for ( int i = 0; i < 8 && key[ i ] != '\0'; i++ ) {
+ keyAsuint64 = keyAsuint64 << 8;
+ keyAsuint64 += ( unsigned char ) key[ i ];
+ }
+ }
+ return keyAsuint64;
+ }
+
+ //!
+ //! @brief A union data type to store all kind of values.
+ //!
+ union CombinedDataValue {
+ bool boolValue;
+ uint32 uint32Value;
+ uint64 uint64Value;
+ int64 int64Value;
+ double doubleValue;
+ char charValue;
+ const char * constCharPtrValue;
+ const void * constVoidPtrValue;
+ };
+
+ protected:
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+ // all safe functions
+ virtual void APICALL setParameter( const uint64 & key, uint32 dataType, const CombinedDataValue & dataValue, pcIError_base & error ) __NOTHROW__ = 0;
+ virtual uint32 APICALL removeParameter( const uint64 & key, pcIError_base & error ) __NOTHROW__ = 0;
+ virtual uint32 APICALL getParameter( const uint64 & key, uint32 dataType, CombinedDataValue & value, pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual void APICALL getAllParameters( uint64 * array, sizet count ) const __NOTHROW__ = 0;
+ virtual uint32 APICALL getDataType( const uint64 & key, pcIError_base & error ) const __NOTHROW__ = 0;
+ //! \endcond
+
+ protected:
+ //!
+ //! protected Virtual Destructor
+ //!
+ virtual ~IConfigurable() __NOTHROW__ {};
+
+ friend class IConfigurableProxy;
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+
+//! \cond XMP_INTERNAL_DOCUMENTATION
+#if !BUILDING_XMPCOMMON_LIB && !SOURCE_COMPILING_XMP_ALL
+
+ class IConfigurableProxy
+ : public virtual IConfigurable {
+ public:
+ IConfigurableProxy( pIConfigurable configurable );
+ virtual void APICALL SetParameter( const uint64 & key, bool value );
+ virtual void APICALL SetParameter( const uint64 & key, uint64 value );
+ virtual void APICALL SetParameter( const uint64 & key, int64 value );
+ virtual void APICALL SetParameter( const uint64 & key, double value );
+ virtual void APICALL SetParameter( const uint64 & key, char value );
+ virtual void APICALL SetParameter( const uint64 & key, const char * value );
+ virtual void APICALL SetParameter( const uint64 & key, const void * value );
+ virtual void APICALL setParameter( const uint64 & key, uint32 dataType, const CombinedDataValue & dataValue, pcIError_base & error ) __NOTHROW__;
+
+ virtual bool APICALL RemoveParameter( const uint64 & key );
+ virtual uint32 APICALL removeParameter( const uint64 & key, pcIError_base & error ) __NOTHROW__;
+
+ virtual bool APICALL GetParameter( const uint64 & key, bool & value ) const;
+ virtual bool APICALL GetParameter( const uint64 & key, uint64 & value ) const;
+ virtual bool APICALL GetParameter( const uint64 & key, int64 & value ) const;
+ virtual bool APICALL GetParameter( const uint64 & key, double & value ) const;
+ virtual bool APICALL GetParameter( const uint64 & key, char & value ) const;
+ virtual bool APICALL GetParameter( const uint64 & key, const char * & value ) const;
+ virtual bool APICALL GetParameter( const uint64 & key, const void * & value ) const;
+ virtual uint32 APICALL getParameter( const uint64 & key, uint32 dataType, CombinedDataValue & value, pcIError_base & error ) const __NOTHROW__;
+
+ virtual std::vector< uint64 > APICALL GetAllParameters() const;
+ virtual void APICALL getAllParameters( uint64 * array, sizet count ) const __NOTHROW__;
+
+ virtual sizet APICALL Size() const __NOTHROW__;
+
+ virtual eDataType APICALL GetDataType( const uint64 & key ) const;
+ virtual uint32 APICALL getDataType( const uint64 & key, pcIError_base & error ) const __NOTHROW__;
+
+ protected:
+ pIConfigurable mConfigurableRawPtr;
+ };
+
+#endif // !BUILDING_XMPCOMMON_LIB && !SOURCE_COMPILING_XMP_ALL
+//! \endcond
+
+}
+
+#endif // IConfigurable_h__
diff --git a/public/include/XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h b/public/include/XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h
new file mode 100644
index 0000000..4b5f86f
--- /dev/null
+++ b/public/include/XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h
@@ -0,0 +1,71 @@
+#ifndef __ISharedObject_h__
+#define __ISharedObject_h__ 1
+
+// =================================================================================================
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved.
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/XMPCommonFwdDeclarations.h"
+
+namespace AdobeXMPCommon {
+
+ //!
+ //! \brief Interface that serves as the base interface of all the externally exposed interfaces.
+ //! \details This allows all interfaces to be used as shared pointers so as to reduce the burden of
+ //! scope management from the client or library code. It makes the heap allocated object to be self manged in
+ //! in terms of memory and life. This provides functions so as to inform the actual object when a shared pointer
+ //! is created or destroyed and appropriately release the memory during the last call to Release.
+ //! \attention Supports Multi-threading at object level through use of Atomic Variables.
+ //! \note Any interface which inherits from this needs to make sure that its destructor is declared protected
+ //! so that unknowingly also client of this object cannot call delete on the object.
+ //!
+
+ class XMP_PUBLIC ISharedObject {
+ public:
+
+ //!
+ //! @brief Called by the clients of the object to indicate that he has acquired the shared ownership of the object.
+ //!
+ virtual void APICALL Acquire() const __NOTHROW__ = 0;
+
+ //!
+ //! @brief Called by the clients of the object to indicate he has released his shared ownership of the object.
+ //! If this being the last client than this function should call Destroy to delete and release the memory.
+ //!
+ virtual void APICALL Release() const __NOTHROW__ = 0;
+
+ //! @{
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+ //! Return the pointer to the internal Shared Object interface
+ //! \return either a const or non const pointer to internal ISharedObject_I interface.
+ virtual AdobeXMPCommon_Int::pISharedObject_I APICALL GetISharedObject_I() __NOTHROW__ = 0;
+
+ XMP_PRIVATE AdobeXMPCommon_Int::pcISharedObject_I GetISharedObject_I() const __NOTHROW__ {
+ return const_cast< ISharedObject * >( this )->GetISharedObject_I();
+ }
+ //! \endcond
+ //! @}
+
+ protected:
+
+ //!
+ //! protected virtual destructor.
+ //!
+ virtual ~ISharedObject() __NOTHROW__ = 0;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+
+ inline ISharedObject::~ISharedObject() __NOTHROW__ { }
+
+};
+
+#endif // __ISharedObject_h__
diff --git a/public/include/XMPCommon/Interfaces/BaseInterfaces/IThreadSafe.h b/public/include/XMPCommon/Interfaces/BaseInterfaces/IThreadSafe.h
new file mode 100644
index 0000000..b0ed4b5
--- /dev/null
+++ b/public/include/XMPCommon/Interfaces/BaseInterfaces/IThreadSafe.h
@@ -0,0 +1,75 @@
+//! @file IThreadSafe.h
+#ifndef IThreadSafe_h__
+#define IThreadSafe_h__ 1
+
+//
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+//
+
+#include "XMPCommon/XMPCommonFwdDeclarations.h"
+
+namespace AdobeXMPCommon {
+
+ //!
+ //! \brief Interface that serves as the base interface for all the externally exposed interfaces which needs to provide client configurable thread safety.
+ //!
+ //! \attention In case client has disabled thread safety at the module level these functions will
+ //! have no use.
+ //! \note By default all the objects created are not thread safe.
+ //!
+ class XMP_PUBLIC IThreadSafe
+ {
+ public:
+
+ //!
+ //! @brief Enables the thread safety on an object.
+ //! @details After calling this function the object can be used across multiple threads.
+ //!
+ virtual void APICALL EnableThreadSafety() const __NOTHROW__ = 0;
+
+ //!
+ //! @brief Disables the thread safety on an object.
+ //! @details After calling this function the object should not be used across multiple threads.
+ //!
+ virtual void APICALL DisableThreadSafety() const __NOTHROW__ = 0;
+
+ //!
+ //! @brief Informs whether object can be used across multiple threads or not.
+ //! \returns bool value; true in case object can be used across multiple threads, false
+ //! otherwise.
+ //!
+ virtual bool APICALL IsThreadSafe() const = 0;
+
+ //! @{
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+ //! @brief Return the pointer to the internal Thread Safe interface
+ //! \return either a const or non const pointer to internal IThreadSafe_I interface.
+ virtual AdobeXMPCommon_Int::pIThreadSafe_I APICALL GetIThreadSafe_I() __NOTHROW__ = 0;
+
+ XMP_PRIVATE AdobeXMPCommon_Int::pcIThreadSafe_I GetIThreadSafe_I() const __NOTHROW__ {
+ return const_cast< IThreadSafe * >( this )->GetIThreadSafe_I();
+ }
+ //! \endcond
+ //! @}
+
+ protected:
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+ //! @brief all safe functions
+ virtual uint32 APICALL isThreadSafe() const __NOTHROW__ = 0;
+ //! \endcond
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+
+}
+#endif // IThreadSafe_h__
diff --git a/public/include/XMPCommon/Interfaces/BaseInterfaces/IVersionable.h b/public/include/XMPCommon/Interfaces/BaseInterfaces/IVersionable.h
new file mode 100644
index 0000000..ec60747
--- /dev/null
+++ b/public/include/XMPCommon/Interfaces/BaseInterfaces/IVersionable.h
@@ -0,0 +1,71 @@
+#ifndef IVersionable_h__
+#define IVersionable_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/XMPCommonFwdDeclarations.h"
+
+namespace AdobeXMPCommon {
+
+ //!
+ //! \brief Interface that serves as the base interface for all the externally exposed interfaces
+ //! which needs to provide evolving versions of the interface.
+ //! @details Provide pointer to interface requested by client.
+ //! Requirements on the class type
+ //! -# Need to implement a function GetInterfaceID() returning a unique id for the
+ //! interface. Only required to be implemented in first version of the interface.
+ //! -# Need to implement a function GetVersionNumber() returning the version of the
+ //! interface. Required to implemented by each version of the interface.
+ //!
+
+ class XMP_PUBLIC IVersionable {
+ public:
+
+ //!
+ //! @brief Get the raw pointer to an interface object implementing the requested version.
+ //! \return a raw pointer to an interface object implementing the requested version.
+ //! \attention In case a particular version number is not supported than an error is
+ //! thrown.
+ //!
+ template< typename requestedInterface >
+ XMP_PRIVATE requestedInterface * GetInterfacePointer() {
+ pvoid ptr = GetInterfacePointer( requestedInterface::GetInterfaceID(),
+ requestedInterface::GetInterfaceVersion() );
+ return static_cast< requestedInterface * >( ptr );
+ }
+
+ //!
+ //! @brief Get the raw pointer to a const interface object implementing the requested version.
+ //! \return a raw pointer to a const interface object implementing the requested version.
+ //! \attention In case a particular version number is not supported than an error is
+ //! thrown.
+ //!
+ template< typename requestedInterface >
+ XMP_PRIVATE const requestedInterface * GetInterfacePointer() const {
+ return const_cast< IVersionable * >( this )->GetInterfacePointer< requestedInterface >();
+ }
+
+ protected:
+ virtual ~IVersionable() {}
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+ virtual pvoid APICALL GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion ) = 0;
+ // all safe functions
+ virtual pvoid APICALL getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__ = 0;
+ //! \endcond
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+
+}
+
+#endif // IVersionable_h__
diff --git a/public/include/XMPCommon/Interfaces/IConfigurationManager.h b/public/include/XMPCommon/Interfaces/IConfigurationManager.h
new file mode 100644
index 0000000..5581749
--- /dev/null
+++ b/public/include/XMPCommon/Interfaces/IConfigurationManager.h
@@ -0,0 +1,167 @@
+//! @file IConfigurationManager.h
+
+#ifndef IConfigurationManager_h__
+#define IConfigurationManager_h__ 1
+
+//
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+//
+
+#include "XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/IVersionable.h"
+
+#include "XMPCommon/XMPCommonFwdDeclarations.h"
+
+namespace AdobeXMPCommon {
+
+ //!
+ //! @class IConfigurationManager_v1
+ //! \brief Version1 of the interface that represents configuration settings controllable by the client.
+ //! \details Provides functions through which client can plug in its own memory allocators, error notifiers.
+ //! \attention Not Thread Safe as this functionality is generally used at the initialization phase.
+ //!
+ class XMP_PUBLIC IConfigurationManager_v1
+ : public virtual ISharedObject
+ , public virtual IVersionable
+ {
+ public:
+
+ //!
+ //! @brief Allows the client to plug in its own memory allocation procedures which will be used to allocate/deallocate memory from the heap.
+ //!
+ //! \param[in] memoryAllocator A pointer to an object of type AdobeXMPCommon::IMemoryAllocator.
+ //! NULL pointer will switch to default allocator built in the library.
+ //! \return A value of bool type; true means successful and false otherwise.
+ //!
+ virtual bool APICALL RegisterMemoryAllocator( pIMemoryAllocator memoryAllocator ) = 0;
+
+ //!
+ //! @brief Allows the client to plug in its own error notification procedures which will be used to
+ //! inform client about various warnings and errors.
+ //! \param[in] clientErrorNotifier A pointer to an object of type AdobeXMPCommon::IErrorNotifier. NULL
+ //! pointer means client no longer wants to be notified of any warnings or errors.
+ //! \return a value of bool type; true means successful and false otherwise.
+ //!
+ virtual bool APICALL RegisterErrorNotifier( pIErrorNotifier_base clientErrorNotifier ) = 0;
+
+ //!
+ //! @brief Allows the client to disable the support for multi threading inside the library.
+ //! By default library supports multi-threading.
+ //! \return A value of bool type; true means successful and false otherwise.
+ //!
+ virtual bool APICALL DisableMultiThreading() = 0;
+
+ //!
+ //! @brief Returns whether library supports multi threading or not
+ //! \return A value of bool type; true means it supports multi threading and false otherwise.
+ //!
+ virtual bool APICALL IsMultiThreaded() const = 0;
+
+ //!
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+ //! @{
+ //! @brief Returns the actual raw pointer from the shared pointer, which can be a shared pointer of a proxy class.
+ //! \return Either a const or non const pointer to IConfigurationManager interface.
+ //!
+ virtual pIConfigurationManager APICALL GetActualIConfigurationManager() __NOTHROW__ = 0;
+ XMP_PRIVATE pcIConfigurationManager GetActualIConfigurationManager() const __NOTHROW__ {
+ return const_cast< IConfigurationManager_v1 * >( this )->GetActualIConfigurationManager();
+ }
+ //!
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Convert raw pointer to shared pointer.
+ //! @detail The raw pointer is of version 1 interface where as the returned shared pointer depends on the version client is interested in.
+ //!
+ //! \return Shared pointer to const or non constant IConfigurationManager interface.
+ //!
+ XMP_PRIVATE static spIConfigurationManager MakeShared( pIConfigurationManager_base ptr );
+ XMP_PRIVATE static spcIConfigurationManager MakeShared( pcIConfigurationManager_base ptr ) {
+ return MakeShared( const_cast< pIConfigurationManager_base >( ptr ) );
+ }
+ //!
+ //! @}
+
+ //!
+ //! @brief Return the unique ID assigned to the interface.
+ //! \return 64 bit unsigned integer representing the unique ID assigned to the interface.
+ //!
+ XMP_PRIVATE static uint64 GetInterfaceID() { return kIConfigurationManagerID; }
+
+ //!
+ //! @brief Returns the version of the interface.
+ //! \return 32 bit unsigned integer representing the version of the interface.
+ //!
+ XMP_PRIVATE static uint32 GetInterfaceVersion() { return 1; }
+ //! \endcond
+
+ virtual ~IConfigurationManager_v1() __NOTHROW__ {}
+
+ protected:
+
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+ virtual uint32 APICALL registerMemoryAllocator( pIMemoryAllocator_base memoryAllocator, pcIError_base & error ) __NOTHROW__ = 0;
+ virtual uint32 APICALL registerErrorNotifier( pIErrorNotifier_base clientErrorNotifier, pcIError_base & error ) __NOTHROW__ = 0;
+ virtual uint32 APICALL disableMultiThreading( pcIError_base & error ) __NOTHROW__ = 0;
+ virtual uint32 APICALL isMultiThreaded( pcIError_base & error ) const __NOTHROW__ = 0;
+ //! \endcond
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ //! \endcond
+ };
+}
+
+
+#if !BUILDING_XMPCOMMON_LIB && !SOURCE_COMPILING_XMP_ALL
+
+namespace AdobeXMPCommon {
+ class IConfigurationManagerProxy
+ : public virtual IConfigurationManager
+ {
+ private:
+ pIConfigurationManager mRawPtr;
+
+ public:
+ IConfigurationManagerProxy( pIConfigurationManager ptr )
+ : mRawPtr( ptr )
+ {
+ mRawPtr->Acquire();
+ }
+
+ ~IConfigurationManagerProxy() __NOTHROW__ { mRawPtr->Release(); }
+ pIConfigurationManager APICALL GetActualIConfigurationManager() __NOTHROW__ { return mRawPtr; }
+ AdobeXMPCommon_Int::pISharedObject_I APICALL GetISharedObject_I() __NOTHROW__ { return mRawPtr->GetISharedObject_I(); }
+
+ void APICALL Acquire() const __NOTHROW__;
+ void APICALL Release() const __NOTHROW__;
+ pvoid APICALL GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion );
+ virtual bool APICALL RegisterMemoryAllocator( pIMemoryAllocator memoryAllocator );
+ virtual bool APICALL RegisterErrorNotifier( pIErrorNotifier_base clientErrorNotifier );
+ virtual bool APICALL DisableMultiThreading();
+ virtual bool APICALL IsMultiThreaded() const;
+
+ protected:
+ virtual uint32 APICALL registerMemoryAllocator( pIMemoryAllocator_base memoryAllocator, pcIError_base & error ) __NOTHROW__;
+ virtual uint32 APICALL registerErrorNotifier( pIErrorNotifier_base clientErrorNotifier, pcIError_base & error ) __NOTHROW__;
+ virtual uint32 APICALL disableMultiThreading( pcIError_base & error ) __NOTHROW__;
+ virtual uint32 APICALL isMultiThreaded( pcIError_base & error ) const __NOTHROW__;
+ pvoid APICALL getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__;
+ };
+
+}
+
+#endif // BUILDING_XMPCOMMON_LIB && !SOURCE_COMPILING_XMP_LIB
+
+#endif // IConfigurationManager_h__
diff --git a/public/include/XMPCommon/Interfaces/IError.h b/public/include/XMPCommon/Interfaces/IError.h
new file mode 100644
index 0000000..15955ba
--- /dev/null
+++ b/public/include/XMPCommon/Interfaces/IError.h
@@ -0,0 +1,377 @@
+//! @file IError.h
+#ifndef __IError_h__
+#define __IError_h__ 1
+
+// =================================================================================================
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved.
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// ================================================================================================
+
+#include "XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/IVersionable.h"
+
+#include "XMPCommon/XMPCommonFwdDeclarations.h"
+
+namespace AdobeXMPCommon {
+
+ //!
+ //! @brief Version1 of the interface that represents an error/warning encountered during processing.
+ //! \details Provides all the functions to get required information regarding error scenario.
+ //! \attention Do Not support Multi-threading at object level.
+ //! \attention Multi-threading not required since clients will only be provided const objects.
+ //!
+ class XMP_PUBLIC IError_v1
+ : public virtual ISharedObject
+ , public virtual IVersionable
+ {
+ public:
+ //!
+ //! @brief Indicates various types of errors.
+ //!
+ typedef enum {
+ //! No severity, not to be used.
+ kESNone = 0,
+
+ //! Recovery is possible, client can choose to ignore and let library continue with the best possible way.
+ kESWarning = 1 << 0,
+
+ //! Recovery is not possible, an exception of type pcIError_base will be thrown aborting the API call.
+ kESOperationFatal = 1 << 1,
+
+ //! Recovery is not possible, an exception of type pcIError_base will be thrown, client should abort the process.
+ kESProcessFatal = 1 << 2,
+
+ // Add new severities here
+
+ //! Maximum value this enum can hold, should be treated as invalid value.
+ kESMaxValue = 1 << 31,
+
+ //! Union of all severities
+ kESAll = kAllBits,
+ } eErrorSeverity;
+
+
+ //!
+ //! @brief Indicates various types of error domains.
+ //!
+ typedef enum {
+ //! No Domain
+ kEDNone = 0,
+
+ //! Indicates error related to general conditions.
+ kEDGeneral = 1,
+
+ //! Indicates error related to memory allocation-deallocation conditions.
+ kEDMemoryManagement = 2,
+
+ //! Indicates error related to configurable APIs.
+ kEDConfigurable = 3,
+
+ //! Indicates error releated to multithreading.
+ kEDMultiThreading = 4,
+
+ //! Indicates error related to XMP Data Model Management.
+ kEDDataModel = 100,
+
+ //! Indicates error related to XMP Parsing.
+ kEDParser = 101,
+
+ //! Indicates error related to XMP Serializing.
+ kEDSerializer = 102,
+
+
+ //! Indicates error related to dealing with XMP in various file formats.
+ kEDXMPFiles = 200,
+
+
+ //! Indicates error related to Conflict Identification.
+ kEDConflictIdentification = 400,
+
+ //! Indicates error related to Conflict Resolution.
+ kEDConflictResolution = 500,
+
+ //! Indicates error related to 3 Way Merge.
+ kEDThreeWayMerge = 600,
+
+ //! Indicates error related to Generic Strategy Database
+ kEDGenericStrategyDatabase = 601,
+
+ //! Indicates error related to Asset Management.
+ kEDAssetManagement = 10000,
+
+ //! Maximum value this enum can hold, should be treated as invalid value.
+ kEDMaxValue = kMaxEnumValue
+ } eErrorDomain;
+
+ typedef uint32 eErrorCode;
+
+ //!
+ //! @brief Get the error code.
+ //! \return An object of type #eErrorCode indicating the error code.
+ //!
+ virtual eErrorCode APICALL GetCode() const = 0;
+
+ //!
+ //! @brief Get the error domain.
+ //! \return An object of type #eErrorDomain indicating the error domain.
+ //!
+ virtual eErrorDomain APICALL GetDomain() const = 0;
+
+ //!
+ //! @brief Get the error severity.
+ //! \return An object of type #eErrorSeverity indicating the severity of error.
+ //!
+ virtual eErrorSeverity APICALL GetSeverity() const = 0;
+
+ //!
+ //! @brief Get the error message.
+ //! \details Error message contains a descriptive string, for debugging use only. It must not be shown to users
+ //! in a final product. It is written for developers, not users, and never localized.
+ //! \return A shared pointer to const AdobeXMPCommon::IUTF8String object containing message string.
+ //!
+ virtual spcIUTF8String APICALL GetMessage() const = 0;
+
+ //!
+ //! @brief Get the location of the error origin.
+ //! \return A shared pointer to const AdobeXMPCommon::IUTF8String object containing location as like file name
+ //! and line number.
+ //! \note For debugging use only.
+ //!
+ virtual spcIUTF8String APICALL GetLocation() const = 0;
+
+ //!
+ //! @brief Get the value of a parameter at a particular index.
+ //! \details Based on each error condition various parameters are stored along with the error object. Clients can
+ //! one by one get access to each parameter that can be later used for debugging.
+ //! \param[in] index A value of \#AdobeXMPCommon::sizet indicating the index of the parameter client is
+ //! interested in retrieving.
+ //! \return A shared pointer to const \#AdobeXMPCommon::IUTF8String object containing some string.
+ //! \attention Throws \#AdobeXMPCommon::pcIError_base in case index is out of bounds.
+ //! \note For debugging use only.
+ //!
+ virtual spcIUTF8String APICALL GetParameter( sizet index ) const = 0;
+
+ //!
+ //! @brief Get the count of parameters.
+ //! \return An object of type \#AdobeXMPCommon::sizet containing the count of paramaters associated with the error object.
+ //!
+ virtual sizet APICALL GetParametersCount() const __NOTHROW__ = 0;
+
+ //!
+ //! @{
+ //! @brief Get the next error in the chain.
+ //! \return A pointer to const/non-const \#AdobeXMPCommon::IError object which is the next error in the chain.
+ //! \note Return an invalid shared pointer in case it is the last error object in the chain.
+ //!
+ virtual spIError APICALL GetNextError() = 0;
+
+ XMP_PRIVATE spcIError GetNextError() const {
+ return const_cast< IError_v1 * >( this )->GetNextError();
+ }
+ //! @}
+
+ //!
+ //! @brief Set the next error in the chain.
+ //! \param[in] error A pointer to \#AdobeXMP::IError object which will be the next error in the chain.
+ //! \return A pointer to \#AdobeXMPCommon::IError object which is the current next error in the chain.
+ //! \note Return an invalid pointer in case there is no current next error in the chain.
+ //!
+ virtual spIError APICALL SetNextError( const spIError & error ) = 0;
+
+ //!
+ //! @brief Set the error message.
+ //! \param[in] message Pointer to a constant char buffer containing message. It can be null terminated or not.
+ //! NULL pointer will be treated as empty message string.
+ //! \param[in] len A value of \#AdobeXMPCommon::sizet indicating the length in case message is not null
+ //! terminated. In case message is null terminated it can be set to its default value ( npos ).
+ //!
+ virtual void APICALL SetMessage( const char * message, sizet len = npos ) __NOTHROW__ = 0;
+
+ //!
+ //! @brief Set the location of origin of error.
+ //! \param[in] fileName Pointer to a null terminated char buffer containing the file name from which the error
+ //! originated. NULL pointer will be treated as empty fileName.
+ //! \param[in] lineNumber A value of \#AdobeXMPCommon::sizet indicating the line in source file from which the error
+ //! originated.
+ //!
+ virtual void APICALL SetLocation( const char * fileName, sizet lineNumber ) __NOTHROW__ = 0;
+
+ //!
+ //! @brief Appends a parameter to the list of parameters.
+ //! \param[in] parameter Pointer to a constant char buffer containing parameter. It can be null terminated or not.
+ //! NULL pointer will be treated as empty message string.
+ //! \param[in] len A value of AdobeXMPCommon::sizet indicating the length in case parameter is not null
+ //! terminated. In case parameter is null terminated it can be set to its default value ( npos ).
+ //!
+ virtual void APICALL AppendParameter( const char * parameter, sizet len = npos ) __NOTHROW__ = 0;
+
+ //!
+ //! @brief Appends an address as a string to the list of parameters.
+ //! \param[in] addressParameter A value of void * type containing the address of the location to be used as parameter.
+ //!
+ virtual void APICALL AppendParameter( void * addressParameter ) __NOTHROW__ = 0;
+
+ //!
+ //! @brief Appends a 32 bit unsigned integer value as a string to the list of parameters.
+ //! \param[in] integerValue A value of AdobeXMPCommon::uint32 type containing the integral value to be used as parameter.
+ //!
+ virtual void APICALL AppendParameter( const uint32 & integerValue ) __NOTHROW__ = 0;
+
+ //!
+ //! @brief Appends a 64 bit unsigned integer value as a string to the list of parameters.
+ //! \param[in] integerValue A value of AdobeXMPCommon::uint64 type containing the integral value to be used as parameter.
+ //!
+ virtual void APICALL AppendParameter( const uint64 & integerValue ) __NOTHROW__ = 0;
+
+ //!
+ //! @brief Appends a 32 bit integer value as a string to the list of parameters.
+ //! \param[in] integerValue A value of AdobeXMPCommon::int32 type containing the integral value to be used as parameter.
+ //!
+ virtual void APICALL AppendParameter( const int32 & integerValue ) __NOTHROW__ = 0;
+
+ //!
+ //! @brief Appends a 64 bit integer value as a string to the list of parameters.
+ //! \param[in] integerValue A value of AdobeXMPCommon::uint64 type containing the integral value to be used as parameter.
+ //!
+ virtual void APICALL AppendParameter( const int64 & integerValue ) __NOTHROW__ = 0;
+
+ //!
+ //! @brief Appends a floating value as a string to the list of parameters.
+ //! \param[in] floatValue A value of float type containing the floating value to be used as parameter.
+ //!
+ virtual void APICALL AppendParameter( const float & floatValue ) __NOTHROW__ = 0;
+
+ //!
+ //! @brief Appends a double floating value as a string to the list of parameters.
+ //! \param[in] doubleValue A value of double type containing the floating value to be used as parameter.
+ //!
+ virtual void APICALL AppendParameter( const double & doubleValue ) __NOTHROW__ = 0;
+
+ //!
+ //! @brief Appends a boolean value as a string to the list of parameters.
+ //! \param[in] booleanValue A value of bool type containing the boolean value to be used as parameter.
+ //!
+ virtual void APICALL AppendParameter( bool booleanValue ) __NOTHROW__ = 0;
+
+ //!
+ //! @brief Creates an error object.
+ //! \param[in] objFactory A pointer to IObjectFactory object.
+ //! \param[in] errDomain A value of #eErrorDomain indicating the error domain.
+ //! \param[in] errCode A value of #eErrorCode indicating the error code.
+ //! \param[in] errSeverity A value of #eErrorSeverity indicating the severity of the error.
+ //! \return A shared pointer to an object of IError_v1.
+ //!
+ static spIError CreateError( pIObjectFactory objFactory, eErrorDomain errDomain,
+ eErrorCode errCode, eErrorSeverity errSeverity );
+
+ //!
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+ //! @{
+ //! @brief Return the actual raw pointer from the pointer available to client, which can be of a proxy class.
+ //! \return Either a const or non const pointer to IError interface.
+ //!
+ virtual pIError APICALL GetActualIError() __NOTHROW__ = 0;
+ XMP_PRIVATE pcIError GetActualIError() const __NOTHROW__ {
+ return const_cast< IError_v1 * >( this )->GetActualIError();
+ }
+ //!
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Convert raw pointer to shared pointer.
+ //! @details The raw pointer is of version 1 interface where as the returned shared pointer depends on the version client who is interested in.
+ //!
+ //! \return Shared pointer to const or non constant IError interface.
+ //!
+ XMP_PRIVATE static spIError MakeShared( pIError_base ptr );
+ XMP_PRIVATE static spcIError MakeShared( pcIError_base ptr ) {
+ return MakeShared( const_cast< pIError_base >( ptr ) );
+ }
+ //!
+ //! @}
+
+ //!
+ //! @brief Returns the unique ID assigned to the interface.
+ //! \return 64 bit unsigned integer representing the unique ID assigned to the interface.
+ //!
+ XMP_PRIVATE static uint64 GetInterfaceID() { return kIErrorID; }
+
+ //!
+ //! @brief Returns the version of the interface.
+ //! \return 32 bit unsigned integer representing the version of the interface.
+ //!
+ XMP_PRIVATE static uint32 GetInterfaceVersion() { return 1; }
+ //! \endcond
+
+ protected:
+ //!
+ //! Destructor
+ //!
+ virtual ~IError_v1() __NOTHROW__ {}
+
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+ virtual uint32 APICALL getCode( pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual uint32 APICALL getDomain( pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual uint32 APICALL getSeverity( pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual pcIUTF8String_base APICALL getMessage( pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual pcIUTF8String_base APICALL getLocation( pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual pcIUTF8String_base APICALL getParameter( sizet index, pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual pIError_base APICALL getNextError( pcIError_base & error ) __NOTHROW__ = 0;
+ virtual pIError_base APICALL setNextError( pIError_base nextError, pcIError_base & error ) __NOTHROW__ = 0;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ //! \endcond
+ };
+
+ //!
+ //! @brief A function pointer to report back errors and warnings to the library encountered during the serialization operation.
+ //! @details Based on the error condition library can return 0 or non zero to indicate that a particular warning can be ignored
+ //! and operation can continue.
+ //! \param[in] errorDomain An unsigned 32 bit integer indicating the domain of the error.
+ //! \param[in] errorCode An unsigned 32 bit integer indicating the code of the error.
+ //! \param[in] errorSeverity An unsigned 32 bit integer indicating the severity of the error.
+ //! \param[out] error A reference to a pointer to const IError object which will be filled with the error object in case of any error.
+ //! \return non zero value indicating that process can continue ignoring the warning, otherwise return 0 to indicate it should stop immediately.
+ //!
+ typedef uint32( *ReportErrorAndContinueABISafeProc )( uint32 errorDomain, uint32 errorCode, uint32 errorSeverity, const char * message, pcIError_base & error );
+
+ //!
+ //! @brief A Function object used by the client to report back and warnings to the library encountered during the serialization operation.
+ //! @details Based on the error condition library can return 0 or non zero to indicate that a particular warning can be ignored
+ //! and operation can continue.
+ //!
+ class ReportErrorAndContinueFunctor {
+ public:
+ ReportErrorAndContinueFunctor( ReportErrorAndContinueABISafeProc safeProc )
+ : mSafeProc( safeProc ) {}
+
+ //!
+ //! \param[in] errorDomain A value of \#IError_v1::eErrorDomain indicating the domain of the error.
+ //! \param[in] errorCode A value of \#IError_v1::eErrorCode indicating the code of the error.
+ //! \param[in] errorSeverity A value of \#IError_v1::eErrorSeverity indicating the severity of the error.
+ //! \param[in] message Pointer to a constant char buffer containing message.
+ //! \return true value indicating that process can continue ignoring the warning, otherwise return false to indicate it should stop immediately.
+ //!
+ bool operator()( IError_v1::eErrorDomain errorDomain, IError_v1::eErrorCode errorCode, IError_v1::eErrorSeverity errorSeverity, const char * message ) {
+ pcIError_base error( NULL );
+ auto retValue = mSafeProc( static_cast< uint32 >( errorDomain ), static_cast< uint32 >( errorCode ), static_cast< uint32 >( errorSeverity ), message, error );
+ if ( error )
+ throw IError_v1::MakeShared( error );
+ return retValue != 0 ? true : false;
+ }
+
+ protected:
+ ReportErrorAndContinueABISafeProc mSafeProc;
+ };
+
+
+}
+
+#endif // __IError_h__
diff --git a/public/include/XMPCommon/Interfaces/IErrorNotifier.h b/public/include/XMPCommon/Interfaces/IErrorNotifier.h
new file mode 100644
index 0000000..7d17721
--- /dev/null
+++ b/public/include/XMPCommon/Interfaces/IErrorNotifier.h
@@ -0,0 +1,51 @@
+#ifndef IErrorNotifier_h__
+#define IErrorNotifier_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/XMPCommonFwdDeclarations.h"
+
+namespace AdobeXMPCommon {
+
+ //!
+ //! \brief Version1 of the interface that represents an interface to be implemented by client
+ //! in case he is interested in getting notifications with respect to errors/warnings encountered
+ //! by library.
+ //! \details In case client is interested in error notifications he can implement this interface
+ //! and register the same with the \#AdobeXMPCommon::IConfigurationManager. For every warning or error
+ //! encountered the NotifyError function will be called by the library. In case of warnings ( indicated
+ //! by the severity of the error ) the client has the option to continue ignoring the warning by returning
+ //! true else he can return false and the warning will be thrown aborting the current operation.
+ //!
+ class XMP_PUBLIC IErrorNotifier_v1
+ {
+ public:
+ //!
+ //! @brief Called by the library to notify the client about the warning/error.
+ //! \param[in] error const pointer to a \#AdobeXMPCommon::IError. Client can use the information
+ //! in the error to decide what should be the future course of action.
+ //! \return A value of bool type that will indicate the future course of action.
+ //!
+ virtual bool APICALL Notify( const spcIError & error ) = 0;
+
+ protected:
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+ virtual uint32 APICALL notify( pcIError_base error, uint32 & exceptionThrown ) __NOTHROW__;
+ //! \endcond
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ //! \endcond
+ };
+}
+
+#endif // IErrorNotifier_h__
diff --git a/public/include/XMPCommon/Interfaces/IMemoryAllocator.h b/public/include/XMPCommon/Interfaces/IMemoryAllocator.h
new file mode 100644
index 0000000..c2cdef3
--- /dev/null
+++ b/public/include/XMPCommon/Interfaces/IMemoryAllocator.h
@@ -0,0 +1,64 @@
+#ifndef IMemoryAllocator_h__
+#define IMemoryAllocator_h__ 1
+
+// =================================================================================================
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved.
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/Interfaces/BaseInterfaces/IVersionable.h"
+
+#include "XMPCommon/XMPCommonFwdDeclarations.h"
+
+namespace AdobeXMPCommon {
+
+ //!
+ //! \brief Version1 of the interface that represents an interface to be implemented by client in case
+ //! he is interested in controlling the memory allocation and deallocation on the heap.
+ //! \details In case client is interested in controlling the memory allocation and deallocation on
+ //! the heap he can implement this interface and register the same with the
+ //! \#AdobeXMPCommon::IConfigurationManager. For every request of memory allocation or deallocation on
+ //! the heap corresponding function will be called by the library.
+ //! \attention Support for Multi threading is under clients hand.
+ //!
+ class XMP_PUBLIC IMemoryAllocator_v1
+ {
+ public:
+ //!
+ //! @brief Called by the library whenever it needs some space on the heap.
+ //! \param[in] size A value of type \#AdobeXMPCommon::sizet indicating the number of bytes
+ //! required by the library on the heap.
+ //! \return A pointer to memory location on the heap.
+ //!
+ virtual void * APICALL allocate( sizet size ) __NOTHROW__ = 0;
+
+ //!
+ //! @brief Called by the library whenever there is no further need for a previously allocated space on the heap.
+ //! \param[in] ptr A pointer to a memory location which is no longer needed.
+ //!
+ virtual void APICALL deallocate( void * ptr ) __NOTHROW__ = 0;
+
+ //!
+ //! @brief Called by the library whenever it needs to expand or contract some space already allocated on
+ //! the heap, preserving the contents.
+ //! \param[in] ptr A pointer to a memory location which was previously allocated on the heap.
+ //! \param[in] size A value of type \#AdobeXMPCommon::sizet indicating the new number of bytes
+ //! required by the library on the heap.
+ //! \return A pointer to memory location on the heap which is of new size and previous contents are
+ //! preserved.
+ //!
+ virtual void * APICALL reallocate( void * ptr, sizet size ) __NOTHROW__ = 0;
+
+ protected:
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+};
+
+#endif // IMemoryAllocator_h__
diff --git a/public/include/XMPCommon/Interfaces/IObjectFactory.h b/public/include/XMPCommon/Interfaces/IObjectFactory.h
new file mode 100644
index 0000000..0dd86b9
--- /dev/null
+++ b/public/include/XMPCommon/Interfaces/IObjectFactory.h
@@ -0,0 +1,90 @@
+#ifndef IObjectFactory_h__
+#define IObjectFactory_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/XMPCommonFwdDeclarations.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/IVersionable.h"
+
+namespace AdobeXMPCommon {
+
+ //!
+ //! \brief Version1 of a interface that represents a factory to create various artifacts defined within
+ //! AdobeXMPCommon namespace.
+ //! @details Provides all the functions to create instances of various artifacts defined with AdobeXMPCommon namespace. This
+ //! is the interface through which clients of the library actually get access to all other interfaces.
+ //!
+
+ class XMP_PUBLIC IObjectFactory_v1
+ : public IVersionable
+ {
+ public:
+
+ //!
+ //! @brief Creates an IUTF8String object.
+ //! \param[in] buf pointer to a constant char buffer containing content. It can be null
+ //! terminated or not. NULL pointer will be treated as empty string.
+ //! \param[in] count A value of \#AdobeXMPCommon::sizet indicating the length in case buf is not null
+ //! terminated. In case buf is null terminated it can be set to npos.
+ //! \param[out] error A reference to a pointer to const IError object which will be filled with the error object in case of any error.
+ //! \attention The returned pointer is allocated on heap by the module so client is responsible for its release.
+ //! They should call Release once they no longer need this object.
+ //!
+ virtual pIUTF8String_base APICALL CreateUTF8String( const char * buf, sizet count, pcIError_base & error ) __NOTHROW__ = 0;
+
+ //!
+ //! @brief Creates an IError object.
+ //! \param[in] domain An unsigned 32 bit integer value representing the error domain.
+ //! \param[in] code An unsigned 32 bit integer value representing the error code.
+ //! \param[in] severity An unsigned 32 bit integer value representing the severity of the error.
+ //! \param[out] error A reference to a pointer to const IError object which will be filled with the error object in case of any error.
+ //! \attention The returned pointer is allocated on heap by the module so client is responsible for its release.
+ //! They should call Release once they no longer need this object.
+ //!
+ virtual pIError_base APICALL CreateError( uint32 domain, uint32 code, uint32 severity, pcIError_base & error ) __NOTHROW__ = 0;
+
+ //!
+ //! @{
+ //! @details Convert raw pointer to shared pointer. The raw pointer is of version 1 interface
+ //! where as the returned returned pointer depends on the version client is interested in.
+ //! \return Raw pointer to const or non constant IObjectFactory interface.
+ //!
+ XMP_PRIVATE static pIObjectFactory MakeObjectFactory( pIObjectFactory_base ptr ) {
+ return IObjectFactory::GetInterfaceVersion() > 1 ? ptr->GetInterfacePointer< IObjectFactory >() : ptr;
+ }
+ XMP_PRIVATE static pcIObjectFactory MakeObjectFactory( pcIObjectFactory_base ptr ) {
+ return MakeObjectFactory( const_cast< pIObjectFactory_base >( ptr ) );
+ }
+ //!
+ //! @}
+
+ //!
+ //! @brief Returns the unique ID assigned to the interface.
+ //! \return 64 bit unsigned integer representing the unique ID assigned to the interface.
+ //!
+ XMP_PRIVATE static uint64 GetInterfaceID() { return kIObjectFactoryID; }
+
+ //!
+ //! @brief Returns the version of the interface.
+ //! \return 32 bit unsigned integer representing the version of the interface.
+ //!
+ XMP_PRIVATE static uint32 GetInterfaceVersion() { return 1; }
+
+ virtual ~IObjectFactory_v1() __NOTHROW__ {};
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ };
+
+}
+
+#endif // IObjectFactory_h__
diff --git a/public/include/XMPCommon/Interfaces/IUTF8String.h b/public/include/XMPCommon/Interfaces/IUTF8String.h
new file mode 100644
index 0000000..e1cc517
--- /dev/null
+++ b/public/include/XMPCommon/Interfaces/IUTF8String.h
@@ -0,0 +1,504 @@
+#ifndef __IUTF8String_h__
+#define __IUTF8String_h__ 1
+
+// =================================================================================================
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved.
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/IVersionable.h"
+
+namespace AdobeXMPCommon {
+ using AdobeXMPCommon::npos;
+
+ //!
+ //! @brief Version1 of the interface that represents an UTF8String.
+ //! @details Provides all the functions to access properties of the string object, appends or assigns content
+ //! to the existing string objects and clones existing string objects.
+ //!
+ class XMP_PUBLIC IUTF8String_v1
+ : public virtual ISharedObject
+ , public virtual IVersionable
+ {
+ public:
+ //!
+ //! @brief Appends more content into the existing string object through a pointer to char buffer.
+ //! \param[in] buf pointer to a constant char buffer containing new content. It can be null
+ //! terminated or not. NULL pointer will be treated as empty string.
+ //! \param[in] count A value of \#AdobeXMPCommon::sizet indicating the length in case buf is not null
+ //! terminated. In case buf is null terminated it can be set to npos.
+ //! \return The shared pointer to itself of type \#AdobeXMPCommon::IUTF8String.
+ //!
+ virtual spIUTF8String APICALL append( const char * buf, sizet count ) = 0;
+
+ //!
+ //! @brief Appends the contents of another string into the existing string.
+ //! \param[in] src Shared pointer to const \#AdobeXMPCommon::IUTF8String whose contents will be
+ //! appended to existing content in the object. Invalid shared pointer will be treated as empty string.
+ //! \param[in] srcPos A value of \#AdobeXMPCommon::sizet indicating the position of the first character
+ //! in src that is inserted into the object as a substring.
+ //! \param[in] count A value of \#AdobeXMPCommon::sizet indicating the length of the substring to be copied
+ //! (if the string is shorter, as many characters as possible are copied). A value of npos indicates all
+ //! characters until the end of src.
+ //! \return The shared pointer to itself of type \#AdobeXMPCommon::IUTF8String.
+ //! \attention Error is thrown in case
+ //! - srcPos is greater than length of src.
+ //!
+ virtual spIUTF8String APICALL append( const spcIUTF8String & src, sizet srcPos = 0, sizet count = npos ) = 0;
+
+ //!
+ //! @brief Overwrites new string content into the existing string object through a pointer to char buffer.
+ //! \param[in] buf pointer to a constant char buffer containing new content. It can be null
+ //! terminated or not. NULL pointer will be treated as empty string.
+ //! \param[in] count A value of \#AdobeXMPCommon::sizet indicating the length in case buf is not null
+ //! terminated. In case buf is null terminated it can be set to npos.
+ //! \return The shared pointer to itself of type \#AdobeXMPCommon::IUTF8String.
+ //!
+ virtual spIUTF8String APICALL assign( const char * buf, sizet count ) = 0;
+
+ //!
+ //! @brief Overwrites the contents with contents of another string.
+ //! \param[in] src shared pointer to const \#AdobeXMPCommon::IUTF8String whose contents will
+ //! overwrite existing content in the object. Invalid shared pointer will be treated as empty string.
+ //! \param[in] srcPos A value of \#AdobeXMPCommon::sizet indicating the position of the first character
+ //! in src that is inserted into the object as a substring.
+ //! \param[in] count A value of \#AdobeXMPCommon::sizet indicating the length of the substring to be copied.
+ //! A value of npos indicates all characters until the end of src. If this is greater than the available
+ //! characters in the substring then copying is limited to the number of available characters.
+ //! \return The shared pointer to itself of type \#AdobeXMPCommon::IUTF8String.
+ //! \attention Error is thrown in case
+ //! - srcPos is greater than length of src.
+ //!
+ virtual spIUTF8String APICALL assign( const spcIUTF8String & src, sizet srcPos = 0, sizet count = npos ) = 0;
+
+ //!
+ //! @brief Inserts additional characters into the string right before the character indicated by pos.
+ //! \param[in] pos Insertion point: The new contents are inserted before the character at position pos.
+ //! \param[in] buf pointer to a constant char buffer containing new content. It can be null
+ //! terminated or not. NULL pointer will be treated as empty string.
+ //! \param[in] count A value of \#AdobeXMPCommon::sizet indicating the length in case buf is not null
+ //! terminated. In case buf is null terminated it can be set to npos.
+ //! \return The shared pointer to itself of type \#AdobeXMPCommon::IUTF8String.
+ //! \\attention Error is thrown in case
+ //! - pos is greater than the object's length.
+ //!
+ virtual spIUTF8String APICALL insert( sizet pos, const char * buf, sizet count ) = 0;
+
+ //!
+ //! @brief Inserts additional characters into the string right before the character indicated by pos.
+ //! \param[in] pos Insertion point: The new contents are inserted before the character at position pos.
+ //! \param[in] src shared pointer to const \#AdobeXMPCommon::IUTF8String whose contents will
+ //! be copied and pushed into the object. Invalid shared pointer will be treated as empty string.
+ //! \param[in] srcPos A value of \#AdobeXMPCommon::sizet indicating the position of the first character
+ //! in src that is inserted into the object as a substring.
+ //! \param[in] count A value of \#AdobeXMPCommon::sizet indicating the length of the substring to be copied
+ //! (if the string is shorter, as many characters as possible are copied). A value of npos indicates all
+ //! characters until the end of src. If this is greater than the available characters in the substring
+ //! then copying is limited to the number of available characters.
+ //! \return The shared pointer to itself of type \#AdobeXMPCommon::IUTF8String.
+ //! \attention Error is thrown in case
+ //! - srcPos is greater than length of src.
+ //! - pos is greater than the object's length.
+ //!
+ virtual spIUTF8String APICALL insert( sizet pos, const spcIUTF8String & src, sizet srcPos = 0, sizet count = npos ) = 0;
+
+ //!
+ //! @brief Erases part of the string, reducing its length.
+ //! \param[in] pos Position of the first character to be erased.
+ //! If this is greater than the string length, nothing is erased.
+ //! \param[in] count Number of characters to erase (if the string is shorter, as many characters as
+ //! possible are erased). A value of npos indicates all characters until the end of the string.
+ //! \return The shared pointer to itself of type \#AdobeXMPCommon::IUTF8String.
+ //! \attention Error is thrown in case
+ //! - pos is greater than the object's length.
+ //!
+ virtual spIUTF8String APICALL erase( sizet pos = 0, sizet count = npos ) = 0;
+
+ //!
+ //! @brief Resizes the string to the length of n characters.
+ //! /param[in] n New string length, expressed in number of characters.
+ //! \note If n is smaller than the current string length, the current value is shortened
+ //! to its first size character, removing the characters beyond the nth. If n is greater than the
+ //! current string length, the current content is extended by inserting at the end as many NULL
+ //! characters as needed to reach a size of n.
+ //! \attention Error is thrown in case
+ //! - n is greater than max_size
+ //! - allocation fails
+ //!
+ virtual void APICALL resize( sizet n ) = 0 ;
+
+ //!
+ //! @brief Replace portion of string.
+ //! \param[in] pos Position of the first character to be replaced.
+ //! \param[in] count Number of characters to replace (if the string is shorter, as many characters as possible
+ //! are replaced). A value of npos indicates all characters until the end of the string.
+ //! \param[in] buf pointer to a constant char buffer containing new content. It can be null
+ //! terminated or not. NULL pointer will be treated as empty string.
+ //! \param[in] srcCount A value of \#AdobeXMPCommon::sizet indicating the length in case buf is not null
+ //! terminated. In case buf is null terminated it can be set to npos.
+ //! \return The shared pointer to itself of type \#AdobeXMPCommon::IUTF8String.
+ //! \attention Error is thrown in case
+ //! - pos is greater than the object's length.
+ //!
+ virtual spIUTF8String APICALL replace( sizet pos, sizet count, const char * buf, sizet srcCount ) = 0;
+
+ //!
+ //! @brief Replace portion of string.
+ //! \param[in] pos Position of the first character to be replaced.
+ //! \param[in] count Number of characters to replace (if the string is shorter, as many characters as possible
+ //! are replaced). A value of npos indicates all characters until the end of the string.
+ //! \param[in] src Shared pointer to const \#AdobeXMPCommon::IUTF8String whose contents will
+ //! be copied and pushed into the object. Invalid shared pointer will be treated as empty string.
+ //! \param[in] srcPos Position of the first character in str that is copied to the object as replacement.
+ //! \param[in] srcCount Length of the substring to be copied (if the string is shorter, as many characters
+ //! as possible are copied). A value of npos indicates all characters until the end of str.
+ //! \return The shared pointer to itself of type \#AdobeXMPCommon::IUTF8String.
+ //! \attention Error is thrown in case
+ //! - srcPos is greater than length of src.
+ //! - pos is greater than the object's length.
+ //!
+ virtual spIUTF8String APICALL replace( sizet pos, sizet count, const spcIUTF8String & src, sizet srcPos = 0, sizet srcCount = npos ) = 0;
+
+ //!
+ //! @brief Copy sequence of characters from string.
+ //! @details Copies a substring of the current value of the string object into the array. This substring
+ //! contains the len characters that start at position pos.
+ //! \param[in,out] buf Pointer to an array of characters. The array shall contain enough storage for the copied
+ //! characters.
+ //! \param[in] len Number of characters to copy (if the string is shorter, as many characters as possible are
+ //! copied).
+ //! \param[in] pos Position of the first character to be copied.
+ //! \return The number of characters copied to the array. This may be equal to count or to size() - pos.
+ //! \note The function does not append a null character at the end of the copied content.
+ //! \attention Error is thrown in case
+ //! - pos is greater than the object's length.
+ //!
+ virtual sizet APICALL copy( char * buf, sizet len, sizet pos = 0 ) const = 0;
+
+ //!
+ //! @brief Find content in string.
+ //! @details Searches the string for the first occurrence of the sequence specified by its arguments. When pos
+ //! is specified, the search only includes characters at or after position pos, ignoring any possible
+ //! occurrences that include characters before pos.
+ //! \param[in] buf pointer to a constant char buffer containing content to be matched. It can be null
+ //! terminated or not. NULL pointer will be treated as empty string.
+ //! \param[in] pos Position of the first character in the string to be considered in the search.
+ //! If this is greater than the string length, the function never finds matches.
+ //! \return The position of the first character of the first match. If no matches were found, the function
+ //! returns npos.
+ //!
+ sizet find( const char * buf, sizet pos = 0 ) const {
+ return find( buf, pos, npos );
+ }
+
+ //!
+ //! @brief Find content in string.
+ //! @details Searches the string for the first occurrence of the sequence specified by its arguments. When pos
+ //! is specified, the search only includes characters at or after position pos, ignoring any possible
+ //! occurrences that include characters before pos.
+ //! \param[in] buf pointer to a constant char buffer containing content to be matched. It can be null
+ //! terminated or not. NULL pointer will be treated as empty string.
+ //! \param[in] pos Position of the first character in the string to be considered in the search.
+ //! If this is greater than the string length, the function never finds matches.
+ //! \param[in] count Length of sequence of characters to match.
+ //! \return The position of the first character of the first match. If no matches were found, the function
+ //! returns npos.
+ //!
+ virtual sizet APICALL find( const char * buf, sizet pos, sizet count ) const = 0;
+
+
+ //
+ //! @brief Find content in string.
+ //! @details Searches the string for the first occurrence of the sequence specified by its arguments. When pos
+ //! is specified, the search only includes characters at or after position pos, ignoring any possible
+ //! occurrences that include characters before pos.
+ //! \param[in] src shared pointer to const \#AdobeXMPCommon::IUTF8String containing content to be matched. Invalid
+ //! shared pointer will be treated as empty string.
+ //! \param[in] pos Position of the first character in the string to be considered in the search.
+ //! If this is greater than the string length, the function never finds matches.
+ //! \param[in] count Length of sequence of characters to match.
+ //! \return The position of the first character of the first match. If no matches were found, the function
+ //! returns npos.
+ //!
+ virtual sizet APICALL find( const spcIUTF8String & src, sizet pos = 0, sizet count = npos ) const = 0;
+
+ //!
+ // @{
+ //! @brief Find last occurrence of content in string.
+ //! @details Searches the string for the last occurrence of the sequence specified by its arguments. When pos
+ //! is specified, the search only includes sequences of characters that begin at or before position pos,
+ //! ignoring any possible match beginning after pos.
+ //! \param[in] buf pointer to a constant char buffer containing content to be matched. It can be null
+ //! terminated or not. NULL pointer will be treated as empty string.
+ //! \param[in] pos Position of the last character in the string to be considered as the beginning of a match.
+ //! Any value greater or equal than the string length (including npos) means that the entire string is
+ //! searched.
+ //! \return The position of the fist character of the last match. If no matches were found, the function
+ //! returns npos.
+ //!
+ sizet rfind( const char * buf, sizet pos = npos ) const {
+ return rfind( buf, pos, npos );
+ }
+ virtual sizet APICALL rfind( const char * buf, sizet pos, sizet count ) const = 0;
+ //@}
+ //!
+
+ //!
+ //! @brief Find last occurrence of content in string.
+ //! @details Searches the string for the last occurrence of the sequence specified by its arguments. When pos
+ //! is specified, the search only includes sequences of characters that begin at or before position pos,
+ //! ignoring any possible match beginning after pos.
+ //! \param[in] src shared pointer to const \#AdobeXMPCommon::IUTF8String containing content to be matched. Invalid
+ //! shared pointer will be treated as empty string.
+ //! \param[in] pos Position of the last character in the string to be considered as the beginning of a match.
+ //! Any value greater or equal than the string length (including npos) means that the entire string is
+ //! searched.
+ //! \param[in] count Length of sequence of characters to match.
+ //! \return The position of the fist character of the last match. If no matches were found, the function
+ //! returns npos.
+ //!
+ virtual sizet APICALL rfind( const spcIUTF8String & src, sizet pos = npos, sizet count = npos ) const = 0;
+
+ //!
+ //! @{
+ //! @brief Compare strings.
+ //! @details Compares the value of the string object (or a substring) to the sequence of characters specified by its
+ //! arguments.
+ //! \param[in] buf pointer to a constant char buffer containing content to be compared. It can be null
+ //! terminated or not. NULL pointer will be treated as empty string.
+ //!
+ //! \return Returns a signed integral indicating the relation between the strings
+ //! | value | relation between compared string and comparing string |
+ //! | :---: | :-----------------------------------------------------|
+ //! | 0 | They compare equal |
+ //! | <0 | Either the value of the first character that does not match is lower in the compared string, or all compared characters match but the compared string is shorter. |
+ //! | >0 | Either the value of the first character that does not match is greater in the compared string, or all compared characters match but the compared string is longer. |
+ //! \attention Error is thrown in case
+ //! - pos is greater than the object's length.
+ //!
+ int32 compare( const char * buf ) const {
+ return compare( 0, size(), buf, npos );
+ }
+ //! @brief Compare strings.
+ //! @details Compares the value of the string object (or a substring) to the sequence of characters specified by its
+ //! arguments.
+ //! \param[in] buf pointer to a constant char buffer containing content to be compared. It can be null
+ //! terminated or not. NULL pointer will be treated as empty string.
+ //! \param[in] pos Position of the first character in the compared string. If this is greater than the string
+ //! length, it is treated as empty string.
+ //! \param[in] len Length of compared string (if the string is shorter, as many characters as possible).
+ //! A value of npos indicates all characters until the end of the string.
+ //!
+ //! \return Returns a signed integral indicating the relation between the strings
+ //! | value | relation between compared string and comparing string |
+ //! | :---: | :-----------------------------------------------------|
+ //! | 0 | They compare equal |
+ //! | <0 | Either the value of the first character that does not match is lower in the compared string, or all compared characters match but the compared string is shorter. |
+ //! | >0 | Either the value of the first character that does not match is greater in the compared string, or all compared characters match but the compared string is longer. |
+ //! \attention Error is thrown in case
+ //! - pos is greater than the object's length.
+ //!
+ int32 compare( sizet pos, sizet len, const char * buf ) const {
+ return compare( pos, len, buf, npos );
+ }
+ //!@brief Compare strings.
+ //! @details Compares the value of the string object (or a substring) to the sequence of characters specified by its
+ //! arguments.
+ //! \param[in] buf pointer to a constant char buffer containing content to be compared. It can be null
+ //! terminated or not. NULL pointer will be treated as empty string.
+ //! \param[in] pos Position of the first character in the compared string. If this is greater than the string
+ //! length, it is treated as empty string.
+ //! \param[in] len Length of compared string (if the string is shorter, as many characters as possible).
+ //! A value of npos indicates all characters until the end of the string.
+ //! \param[in] count Number of characters to compare.
+ //!
+ //! \return Returns a signed integral indicating the relation between the strings
+ //! | value | relation between compared string and comparing string |
+ //! | :---: | :-----------------------------------------------------|
+ //! | 0 | They compare equal |
+ //! | <0 | Either the value of the first character that does not match is lower in the compared string, or all compared characters match but the compared string is shorter. |
+ //! | >0 | Either the value of the first character that does not match is greater in the compared string, or all compared characters match but the compared string is longer. |
+ //! \attention Error is thrown in case
+ //! - pos is greater than the object's length.
+ //!
+ virtual int32 APICALL compare( sizet pos, sizet len, const char * buf, sizet count ) const = 0;
+
+
+ //!
+ //! @brief Compare strings.
+ //! @details Compares the value of the string object (or a substring) to the contents of an string or substring object
+ //! specified by its arguments.
+ //! \param[in] str shared pointer to const \#AdobeXMPCommon::IUTF8String containing content to be compared.
+ //! Invalid shared pointer will be treated as empty string.
+ //! \return Returns a signed integral indicating the relation between the strings
+ //! | value | relation between compared string and comparing string |
+ //! | :---: | :-----------------------------------------------------|
+ //! | 0 | They compare equal |
+ //! | <0 | Either the value of the first character that does not match is lower in the compared string, or all compared characters match but the compared string is shorter. |
+ //! | >0 | Either the value of the first character that does not match is greater in the compared string, or all compared characters match but the compared string is longer. |
+ //! \attention Error is thrown in case
+ //! - strPos is greater than length of str.
+ //! - pos is greater than the object's length.
+ //!
+ int32 compare( const spcIUTF8String & str ) const {
+ return compare( 0, size(), str, 0, str->size() );
+ }
+ //!
+ //! @brief Compare strings.
+ //! @details Compares the value of the string object (or a substring) to the contents of an string or substring object
+ //! specified by its arguments.
+ //! \param[in] pos Position of the first character in the compared string.
+ //! \param[in] len Length of compared string (if the string is shorter, as many characters as possible).
+ //! A value of npos indicates all characters until the end of the string.
+ //! \param[in] str shared pointer to const \#AdobeXMPCommon::IUTF8String containing content to be compared.
+ //! Invalid shared pointer will be treated as empty string.
+ //! \param[in] strPos Position of the first character in the comparing string.
+ //! \param[in] strLen Length of comparing string (if the string is shorter, as many characters as possible).
+ //!
+ //! \return Returns a signed integral indicating the relation between the strings
+ //! | value | relation between compared string and comparing string |
+ //! | :---: | :-----------------------------------------------------|
+ //! | 0 | They compare equal |
+ //! | <0 | Either the value of the first character that does not match is lower in the compared string, or all compared characters match but the compared string is shorter. |
+ //! | >0 | Either the value of the first character that does not match is greater in the compared string, or all compared characters match but the compared string is longer. |
+ //! \attention Error is thrown in case
+ //! - strPos is greater than length of str.
+ //! - pos is greater than the object's length.
+ //!
+ virtual int32 APICALL compare( sizet pos, sizet len, const spcIUTF8String & str, sizet strPos = 0, sizet strLen = npos ) const = 0;
+
+ //!
+ //! @brief Returns a new string object which contains a sub string of the actual string object.
+ //! \param[in] pos Position of the first character to be copied. If this is greater than the string length, then
+ //! nothing is copied.
+ //! \param[in] count Number of characters to copy (if the string is shorter, as many characters as possible are
+ //! copied).
+ //! \return A shared pointer to AdobeXMPCommon::IUTF8String which is exact replica of the current object.
+ //! \attention Error is thrown in case
+ //! - pos is greater than the object's length.
+ //! - allocation fails
+ //!
+ virtual spIUTF8String APICALL substr( sizet pos = 0, sizet count = npos ) const = 0;
+
+ //!
+ //! @brief Indicates whether the string object is empty or not.
+ //! \return A value of type bool; true in case the contents of the string object is empty.
+ //!
+ virtual bool APICALL empty() const = 0;
+
+ //!
+ //! @brief Provides access to the actual location where contents of string are stored.
+ //! \return A pointer to a buffer of const chars containing the contents of the string object.
+ //!
+ virtual const char * APICALL c_str() const __NOTHROW__ = 0;
+
+ //!
+ //! @brief Clears the contents of the string object.
+ //!
+ virtual void APICALL clear() __NOTHROW__ = 0;
+
+ //!
+ //! @brief Indicates the number of bytes used by the contents of the string object.
+ //! \return An object of type \#AdobeXMPCommon::sizet containing the number of bytes used to store the contents fo the string object.
+ //!
+ virtual sizet APICALL size() const __NOTHROW__ = 0;
+
+ //!
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+ //! @{
+ //! @brief Returns the actual raw pointer from the shared pointer, which can be a shared pointer of a proxy class.
+ //! \return Either a const or non const pointer to IUTF8String interface.
+ //!
+ virtual pIUTF8String APICALL GetActualIUTF8String() __NOTHROW__ = 0;
+ XMP_PRIVATE pcIUTF8String GetActualIUTF8String() const __NOTHROW__ {
+ return const_cast< IUTF8String_v1 * >( this )->GetActualIUTF8String();
+ }
+ //!
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Convert raw pointer to shared pointer. The raw pointer is of version 1 interface
+ //! where as the returned shared pointer depends on the version client is interested in.
+ //! \return Shared pointer to const or non constant interface.
+ //!
+ XMP_PRIVATE static spIUTF8String MakeShared( pIUTF8String_base ptr );
+ XMP_PRIVATE static spcIUTF8String MakeShared( pcIUTF8String_base ptr ) {
+ return MakeShared( const_cast< pIUTF8String_base >( ptr ) );
+ }
+ //!
+ //! @}
+
+ //!
+ //! @brief Returns the unique ID assigned to the interface.
+ //! \return 64 bit unsigned integer representing the unique ID assigned to the interface.
+ //!
+ XMP_PRIVATE static uint64 GetInterfaceID() { return kIUTF8StringID; }
+
+ //!
+ //! @brief Returns the version of the interface.
+ //! \return 32 bit unsigned integer representing the version of the interface.
+ //!
+ XMP_PRIVATE static uint32 GetInterfaceVersion() { return 1; }
+ //! \endcond
+
+ // static factory functions
+
+ //!
+ //! @brief Creates an empty IUTF8String object.
+ //! \param[in] objFactory A pointer to \#AdobeXMPCommon::IObjectFactory object.
+ //! \return A shared pointer to an empty IUTF8String object
+ //!
+ XMP_PRIVATE static spIUTF8String CreateUTF8String( pIObjectFactory objFactory );
+
+ //!
+ //! @brief Creates an IUTF8String object whose initial contents are copied from a char buffer.
+ //! \param[in] objFactory A pointer to \#AdobeXMPCommon::IObjectFactory object.
+ //! \param[in] buf pointer to a constant char buffer containing content. It can be null
+ //! terminated or not. NULL pointer will be treated as empty string.
+ //! \param[in] count A value of \#AdobeXMPCommon::sizet indicating the length in case buf is not null
+ //! terminated. In case buf is null terminated it can be set to npos.
+ //! \return A shared pointer to a newly created \#AdobeXMPCommon::IUTF8String object
+ //!
+ XMP_PRIVATE static spIUTF8String CreateUTF8String( pIObjectFactory objFactory, const char * buf, sizet count );
+
+ protected:
+ //!
+ //! Destructor
+ //!
+ virtual ~IUTF8String_v1() __NOTHROW__ {}
+
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+ virtual pIUTF8String_base APICALL assign( const char * buffer, sizet count, pcIError_base & error ) __NOTHROW__ = 0;
+ virtual pIUTF8String_base APICALL assign( pcIUTF8String_base str, sizet srcPos, sizet count, pcIError_base & error ) __NOTHROW__ = 0;
+ virtual pIUTF8String_base APICALL append( const char * buffer, sizet count, pcIError_base & error ) __NOTHROW__ = 0;
+ virtual pIUTF8String_base APICALL append( pcIUTF8String_base str, sizet srcPos, sizet count, pcIError_base & error ) __NOTHROW__ = 0;
+ virtual pIUTF8String_base APICALL insert( sizet pos, const char * buf, sizet count, pcIError_base & error ) __NOTHROW__ = 0;
+ virtual pIUTF8String_base APICALL insert( sizet pos, pcIUTF8String_base src, sizet srcPos, sizet count, pcIError_base & error ) __NOTHROW__ = 0;
+ virtual pIUTF8String_base APICALL erase( sizet pos, sizet count, pcIError_base & error ) __NOTHROW__ = 0;
+ virtual void APICALL resize( sizet n, pcIError_base & error ) __NOTHROW__ = 0;
+ virtual pIUTF8String_base APICALL replace( sizet pos, sizet count, const char * buf, sizet srcCount, pcIError_base & error ) __NOTHROW__ = 0;
+ virtual pIUTF8String_base APICALL replace( sizet pos, sizet count, pcIUTF8String_base src, sizet srcPos, sizet srcCount, pcIError_base & error ) __NOTHROW__ = 0;
+ virtual sizet APICALL copy( char * buf, sizet len, sizet pos, pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual sizet APICALL find( const char * buf, sizet pos, sizet count, pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual sizet APICALL find( pcIUTF8String_base src, sizet pos, sizet count, pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual sizet APICALL rfind( const char * buf, sizet pos, sizet count, pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual sizet APICALL rfind( pcIUTF8String_base src, sizet pos, sizet count, pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual int32 APICALL compare( sizet pos, sizet len, const char * buf, sizet count, pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual int32 APICALL compare( sizet pos, sizet len, pcIUTF8String_base str, sizet strPos, sizet strLen, pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual pIUTF8String_base APICALL substr( sizet pos, sizet count, pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual uint32 APICALL empty( pcIError_base & error ) const __NOTHROW__ = 0;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ //! \endcond
+ };
+}
+
+#endif // __IUTF8String_h__
diff --git a/public/include/XMPCommon/Utilities/TWrapperFunctions.h b/public/include/XMPCommon/Utilities/TWrapperFunctions.h
new file mode 100644
index 0000000..41af71e
--- /dev/null
+++ b/public/include/XMPCommon/Utilities/TWrapperFunctions.h
@@ -0,0 +1,252 @@
+#ifndef TWrapperFunctions_h__
+#define TWrapperFunctions_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/Interfaces/IError.h"
+
+#if SUPPORT_VARIADIC_TEMPLATES
+//! \cond XMP_INTERNAL_DOCUMENTATION
+namespace AdobeXMPCommon {
+
+ //!
+ //! @{
+ //! template functions taking care of all the functions where return types of client exposed function as well as
+ //! DLL/library safe function are void.
+ //! \details It calls the underlying DLL/library safe function and in case any error is reported back through
+ //! pointer, it throws the error to the upper functions to handle.
+ //! \param[in] ptr non const pointer to an object of className itself ( most probably this pointer ).
+ //! \param[in] Func function pointer to non const member function of className accepting 0 or n number of variables
+ //! anad a reference to a pointer to const #AdobeXMPCommon::IError_base object and returning void.
+ //! \param[in] Vs n number of variables of varying/same type.
+ //! \note These takes care of non const functions.
+ //!
+ template < typename className >
+ void CallSafeFunctionReturningVoid( className * ptr,
+ void ( APICALL className::*Func )( pcIError_base & ) )
+ {
+ pcIError_base error( NULL );
+ ( ptr->*Func )( error );
+ if ( error ) throw IError::MakeShared( error );
+ }
+
+ template< typename className, typename ... Ts >
+ void CallSafeFunctionReturningVoid( className * ptr,
+ void ( APICALL className::*Func )( Ts ..., pcIError_base & ), Ts ... Vs )
+ {
+ pcIError_base error( NULL );
+ ( ptr->*Func )( Vs ..., error );
+ if ( error ) throw IError::MakeShared( error );
+ }
+ //!
+ //! @}
+
+ //!
+ //! @{
+ //! template functions taking care of all the functions where return types of client exposed function as well as
+ //! DLL/library safe function are void.
+ //! \details It calls the underlying DLL/library safe function and in case any error is reported back through
+ //! pointer, it throws the error to the upper functions to handle.
+ //! \param[in] ptr const pointer to a const object of className itself ( most probably this pointer ).
+ //! \param[in] Func function pointer to const member function of className accepting 0 or n number of variables
+ //! and a reference to a pointer to const #AdobeXMPCommon::IError_base object and returning void.
+ //! \param[in] Vs n number of variables of varying/same type.
+ //! \note These takes care of const functions.
+ //!
+ template < typename className >
+ void CallConstSafeFunctionReturningVoid( const className * const ptr,
+ void ( APICALL className::*Func )( pcIError_base & ) const )
+ {
+ pcIError_base error( NULL );
+ ( ptr->*Func )( error );
+ if ( error ) throw IError::MakeShared( error );
+ }
+
+ template < typename className, typename ... Ts >
+ void CallConstSafeFunctionReturningVoid( const className * const ptr,
+ void ( APICALL className::*Func )( Ts ..., pcIError_base & ) const, Ts ... Vs )
+ {
+ pcIError_base error( NULL );
+ ( ptr->*Func )( Vs ..., error );
+ if ( error ) throw IError::MakeShared( error );
+ }
+ //!
+ //! @}
+
+ //!
+ //! @{
+ //! template functions taking care of all the functions where return types of client exposed function as well as
+ //! DLL/library safe function are nor void type neither shared pointers.
+ //! \details It calls the underlying DLL/library safe function and in case any error is reported back through
+ //! pointer, it throws the error to the upper function to handle.
+ //! \param[in] ptr non const pointer to an object of className itself ( most probably this pointer ).
+ //! \param[in] Func function pointer to non const member function of className accepting 0 or n number of variables
+ //! and a reference to a pointer to const #AdobeXMPCommon::IError_base object and returning value of type internalReturnType.
+ //! \param[in] Vs n number of variables of varying/same type.
+ //! These take care of non const functions.
+ //!
+ template < typename className, typename returnType, typename internalReturnType >
+ returnType CallSafeFunction( className * ptr,
+ internalReturnType ( APICALL className::*Func )( pcIError_base & ) )
+ {
+ pcIError_base error( NULL );
+ internalReturnType returnValue = (ptr->*Func)( error );
+ if ( error ) throw IError::MakeShared( error );
+ #if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4800 )
+ #endif
+ return static_cast< returnType >( returnValue );
+ #if XMP_WinBuild
+ #pragma warning( pop )
+ #endif
+ }
+
+ template < typename className, typename returnType, typename internalReturnType, typename ... Ts >
+ returnType CallSafeFunction( className * ptr,
+ internalReturnType ( APICALL className::*Func )( Ts ..., pcIError_base & ), Ts ... Vs )
+ {
+ pcIError_base error( NULL );
+ internalReturnType returnValue = (ptr->*Func)( Vs ..., error );
+ if ( error ) throw IError::MakeShared( error );
+ #if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4800 )
+ #endif
+ return static_cast< returnType >( returnValue );
+ #if XMP_WinBuild
+ #pragma warning( pop )
+ #endif
+ }
+ //!
+ //! @}
+
+ //!
+ //! @{
+ //! template functions taking care of all the functions where return types of client exposed function as well as
+ //! DLL/library safe function are nor void type neither shared pointers.
+ //! \details It calls the underlying DLL/library safe function and in case any error is reported back through
+ //! pointer, it throws the error to the upper function to handle.
+ //! \param[in] ptr const pointer to a const object of className itself ( most probably this pointer ).
+ //! \param[in] Func function pointer to const member function of className accepting 0 or n number of variables
+ //! and a reference to a pointer to const #AdobeXMPCommon::IError_base object and returning value of type internalReturnType.
+ //! \param[in] Vs n number of variables of varying/same type.
+ //! These take care of const functions.
+ //!
+ template < typename className, typename returnType, typename internalReturnType >
+ returnType CallConstSafeFunction( const className * const ptr,
+ internalReturnType ( APICALL className::*Func )( pcIError_base & ) const )
+ {
+ pcIError_base error( NULL );
+ internalReturnType returnValue = (ptr->*Func)( error );
+ if ( error ) throw IError::MakeShared( error );
+ #if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4800 )
+ #endif
+ return static_cast< returnType >( returnValue );
+ #if XMP_WinBuild
+ #pragma warning( pop )
+ #endif
+ }
+
+ template < typename className, typename returnType, typename internalReturnType, typename ... Ts >
+ returnType CallConstSafeFunction( const className * const ptr,
+ internalReturnType ( APICALL className::*Func )( Ts ..., pcIError_base & ) const, Ts ... Vs )
+ {
+ pcIError_base error( NULL );
+ internalReturnType returnValue = (ptr->*Func)( Vs ..., error );
+ if ( error ) throw IError::MakeShared( error );
+ #if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4800 )
+ #endif
+ return static_cast< returnType >( returnValue );
+ #if XMP_WinBuild
+ #pragma warning( pop )
+ #endif
+ }
+ //!
+ //! @}
+
+ //!
+ //! @{
+ //! template functions taking care of all the functions where return types of client exposed function is a
+ //! shared pointer.
+ //! \details It calls the underlying DLL/library safe function and in case any error is reported back through
+ //! pointer, it throws the error to the upper function to handle.
+ //! \param[in] ptr non const pointer to an object of className itself ( most probably this pointer ).
+ //! \param[in] Func function pointer to non const member function of className accepting 0 or n number of variables
+ //! and a reference to a pointer to const #AdobeXMPCommon::IError_base object and returning internalReturnType.
+ //! \param[in] Vs n number of variables of varying/same type.
+ //! These take care of non const functions.
+ //!
+ template < typename className, typename internalReturnType, typename sharedPointerType >
+ shared_ptr< sharedPointerType > CallSafeFunctionReturningPointer( className * ptr,
+ internalReturnType ( APICALL className::*Func )( pcIError_base & ) )
+ {
+ pcIError_base error( NULL );
+ internalReturnType returnValue = (ptr->*Func)( error );
+ if ( error ) throw IError::MakeShared( error );
+ return sharedPointerType::MakeShared( returnValue );
+ }
+
+ template < typename className, typename internalReturnType, typename sharedPointerType, typename ... Ts >
+ shared_ptr< sharedPointerType > CallSafeFunctionReturningPointer( className * ptr,
+ internalReturnType ( APICALL className::*Func )( Ts ..., pcIError_base & ), Ts ... Vs )
+ {
+ pcIError_base error( NULL );
+ internalReturnType returnValue = ( ptr->*Func )( Vs ..., error );
+ if ( error ) throw IError::MakeShared( error );
+ return sharedPointerType::MakeShared( returnValue );
+ }
+ //!
+ //! @}
+
+ //!
+ //! @{
+ //! template functions taking care of all the functions where return types of client exposed function is a
+ //! shared pointer.
+ //! \details It calls the underlying DLL/library safe function and in case any error is reported back through
+ //! pointer, it throws the error to the upper function to handle.
+ //! \param[in] ptr const pointer to a const object of className itself ( most probably this pointer ).
+ //! \param[in] Func function pointer to const member function of className accepting 0 or n number of variables
+ //! and a reference to a pointer to const #AdobeXMPCommon::IError_base object and returning internalReturnType.
+ //! \param[in] Vs n number of variables of varying/same type.
+ //! These take care of const functions.
+ //!
+ template < typename className, typename internalReturnType, typename sharedPointerType >
+ shared_ptr< sharedPointerType > CallConstSafeFunctionReturningPointer( const className * const ptr,
+ internalReturnType ( APICALL className::*Func )( pcIError_base & ) const )
+ {
+ pcIError_base error( NULL );
+ internalReturnType returnValue = (ptr->*Func)( error );
+ if ( error ) throw IError::MakeShared( error );
+ return sharedPointerType::MakeShared( returnValue );
+ }
+
+ template < typename className, typename internalReturnType, typename sharedPointerType, typename ... Ts >
+ shared_ptr< sharedPointerType > CallConstSafeFunctionReturningPointer( const className * const ptr,
+ internalReturnType ( APICALL className::*Func )( Ts ..., pcIError_base & ) const, Ts ... Vs )
+ {
+ pcIError_base error( NULL );
+ internalReturnType returnValue = ( ptr->*Func )( Vs ..., error );
+ if ( error ) throw IError::MakeShared( error );
+ return sharedPointerType::MakeShared( returnValue );
+ }
+ //!
+ //! @}
+}
+
+//! \endcond
+#else
+ #include "XMPCommon/Utilities/TWrapperFunctions2.h"
+#endif
+#endif // TWrapperFunctions_h__
diff --git a/public/include/XMPCommon/Utilities/TWrapperFunctions2.h b/public/include/XMPCommon/Utilities/TWrapperFunctions2.h
new file mode 100644
index 0000000..a6dc4a6
--- /dev/null
+++ b/public/include/XMPCommon/Utilities/TWrapperFunctions2.h
@@ -0,0 +1,554 @@
+#ifndef TWrapperFunctions2_h__
+#define TWrapperFunctions2_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+//! \cond XMP_INTERNAL_DOCUMENTATION
+namespace AdobeXMPCommon {
+ template < typename className >
+ void CallSafeFunctionReturningVoid( className * ptr,
+ void ( APICALL className::*Func )( pcIError_base & ) )
+ {
+ pcIError_base error( NULL );
+ ( ptr->*Func )( error );
+ if ( error ) throw IError::MakeShared( error );
+ }
+
+ template< typename className, typename t1 >
+ void CallSafeFunctionReturningVoid( className * ptr,
+ void ( APICALL className::*Func )( t1, pcIError_base & ), t1 v1 )
+ {
+ pcIError_base error( NULL );
+ ( ptr->*Func )( v1, error );
+ if ( error ) throw IError::MakeShared( error );
+ }
+
+ template< typename className, typename t1, typename t2 >
+ void CallSafeFunctionReturningVoid( className * ptr,
+ void ( APICALL className::*Func )( t1, t2, pcIError_base & ), t1 v1, t2 v2 )
+ {
+ pcIError_base error( NULL );
+ ( ptr->*Func )( v1, v2, error );
+ if ( error ) throw IError::MakeShared( error );
+ }
+
+ template< typename className, typename t1, typename t2, typename t3 >
+ void CallSafeFunctionReturningVoid( className * ptr,
+ void ( APICALL className::*Func )( t1, t2, t3, pcIError_base & ), t1 v1, t2 v2, t3 v3 )
+ {
+ pcIError_base error( NULL );
+ ( ptr->*Func )( v1, v2, v3, error );
+ if ( error ) throw IError::MakeShared( error );
+ }
+
+ template< typename className, typename t1, typename t2, typename t3, typename t4 >
+ void CallSafeFunctionReturningVoid( className * ptr,
+ void ( APICALL className::*Func )( t1, t2, t3, t4, pcIError_base & ), t1 v1, t2 v2, t3 v3, t4 v4 )
+ {
+ pcIError_base error( NULL );
+ ( ptr->*Func )( v1, v2, v3, v4, error );
+ if ( error ) throw IError::MakeShared( error );
+ }
+
+ template< typename className, typename t1, typename t2, typename t3, typename t4, typename t5 >
+ void CallSafeFunctionReturningVoid( className * ptr,
+ void ( APICALL className::*Func )( t1, t2, t3, t4, t5, pcIError_base & ), t1 v1, t2 v2, t3 v3, t4 v4, t5 v5 )
+ {
+ pcIError_base error( NULL );
+ ( ptr->*Func )( v1, v2, v3, v4, v5, error );
+ if ( error ) throw IError::MakeShared( error );
+ }
+
+ template< typename className, typename t1, typename t2, typename t3, typename t4, typename t5, typename t6 >
+ void CallSafeFunctionReturningVoid( className * ptr,
+ void ( APICALL className::*Func )( t1, t2, t3, t4, t5, t6, pcIError_base & ), t1 v1, t2 v2, t3 v3, t4 v4, t5 v5, t6 v6 )
+ {
+ pcIError_base error( NULL );
+ ( ptr->*Func )( v1, v2, v3, v4, v5, error );
+ if ( error ) throw IError::MakeShared( error );
+ }
+
+ template < typename className >
+ void CallConstSafeFunctionReturningVoid( const className * const ptr,
+ void ( APICALL className::*Func )( pcIError_base & ) const )
+ {
+ pcIError_base error( NULL );
+ ( ptr->*Func )( error );
+ if ( error ) throw IError::MakeShared( error );
+ }
+
+ template < typename className, typename t1 >
+ void CallConstSafeFunctionReturningVoid( const className * const ptr,
+ void ( APICALL className::*Func )( t1, pcIError_base & ) const, t1 v1 )
+ {
+ pcIError_base error( NULL );
+ ( ptr->*Func )( v1, error );
+ if ( error ) throw IError::MakeShared( error );
+ }
+
+ template < typename className, typename t1, typename t2 >
+ void CallConstSafeFunctionReturningVoid( const className * const ptr,
+ void ( APICALL className::*Func )( t1, t2, pcIError_base & ) const, t1 v1, t2 v2 )
+ {
+ pcIError_base error( NULL );
+ ( ptr->*Func )( v1, v2, error );
+ if ( error ) throw IError::MakeShared( error );
+ }
+
+ template < typename className, typename t1, typename t2, typename t3 >
+ void CallConstSafeFunctionReturningVoid( const className * const ptr,
+ void ( APICALL className::*Func )( t1, t2, t3, pcIError_base & ) const, t1 v1, t2 v2, t3 v3 )
+ {
+ pcIError_base error( NULL );
+ ( ptr->*Func )( v1, v2, v3, error );
+ if ( error ) throw IError::MakeShared( error );
+ }
+
+ template < typename className, typename t1, typename t2, typename t3, typename t4 >
+ void CallConstSafeFunctionReturningVoid( const className * const ptr,
+ void ( APICALL className::*Func )( t1, t2, t3, t4, pcIError_base & ) const, t1 v1, t2 v2, t3 v3, t4 v4 )
+ {
+ pcIError_base error( NULL );
+ ( ptr->*Func )( v1, v2, v3, v4, error );
+ if ( error ) throw IError::MakeShared( error );
+ }
+
+ template < typename className, typename t1, typename t2, typename t3, typename t4, typename t5 >
+ void CallConstSafeFunctionReturningVoid( const className * const ptr,
+ void ( APICALL className::*Func )( t1, t2, t3, t4, t5, pcIError_base & ) const, t1 v1, t2 v2, t3 v3, t4 v4, t5 v5 )
+ {
+ pcIError_base error( NULL );
+ ( ptr->*Func )( v1, v2, v3, v4, v5, error );
+ if ( error ) throw IError::MakeShared( error );
+ }
+
+
+ template < typename className, typename returnType, typename internalReturnType >
+ returnType CallSafeFunction( className * ptr,
+ internalReturnType ( APICALL className::*Func )( pcIError_base & ) )
+ {
+ pcIError_base error( NULL );
+ internalReturnType returnValue = (ptr->*Func)( error );
+ if ( error ) throw IError::MakeShared( error );
+ #if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4800 )
+ #endif
+ return static_cast< returnType >( returnValue );
+ #if XMP_WinBuild
+ #pragma warning( pop )
+ #endif
+ }
+
+ template < typename className, typename returnType, typename internalReturnType, typename t1 >
+ returnType CallSafeFunction( className * ptr,
+ internalReturnType ( APICALL className::*Func )( t1, pcIError_base & ), t1 v1 )
+ {
+ pcIError_base error( NULL );
+ internalReturnType returnValue = (ptr->*Func)( v1, error );
+ if ( error ) throw IError::MakeShared( error );
+ #if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4800 )
+ #endif
+ return static_cast< returnType >( returnValue );
+ #if XMP_WinBuild
+ #pragma warning( pop )
+ #endif
+ }
+
+ template < typename className, typename returnType, typename internalReturnType, typename t1, typename t2 >
+ returnType CallSafeFunction( className * ptr,
+ internalReturnType ( APICALL className::*Func )( t1, t2, pcIError_base & ), t1 v1, t2 v2 )
+ {
+ pcIError_base error( NULL );
+ internalReturnType returnValue = (ptr->*Func)( v1, v2, error );
+ if ( error ) throw IError::MakeShared( error );
+ #if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4800 )
+ #endif
+ return static_cast< returnType >( returnValue );
+ #if XMP_WinBuild
+ #pragma warning( pop )
+ #endif
+ }
+
+ template < typename className, typename returnType, typename internalReturnType, typename t1, typename t2, typename t3 >
+ returnType CallSafeFunction( className * ptr,
+ internalReturnType( APICALL className::*Func )( t1, t2, t3, pcIError_base & ), t1 v1, t2 v2, t3 v3 )
+ {
+ pcIError_base error( NULL );
+ internalReturnType returnValue = ( ptr->*Func )( v1, v2, v3, error );
+ if ( error ) throw IError::MakeShared( error );
+ #if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4800 )
+ #endif
+ return static_cast< returnType >( returnValue );
+ #if XMP_WinBuild
+ #pragma warning( pop )
+ #endif
+ }
+
+ template < typename className, typename returnType, typename internalReturnType, typename t1, typename t2, typename t3, typename t4 >
+ returnType CallSafeFunction( className * ptr,
+ internalReturnType( APICALL className::*Func )( t1, t2, t3, t4, pcIError_base & ), t1 v1, t2 v2, t3 v3, t4 v4 )
+ {
+ pcIError_base error( NULL );
+ internalReturnType returnValue = ( ptr->*Func )( v1, v2, v3, v4, error );
+ if ( error ) throw IError::MakeShared( error );
+ #if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4800 )
+ #endif
+ return static_cast< returnType >( returnValue );
+ #if XMP_WinBuild
+ #pragma warning( pop )
+ #endif
+ }
+
+ template < typename className, typename returnType, typename internalReturnType, typename t1, typename t2, typename t3, typename t4, typename t5 >
+ returnType CallSafeFunction( className * ptr,
+ internalReturnType( APICALL className::*Func )( t1, t2, t3, t4, t5, pcIError_base & ), t1 v1, t2 v2, t3 v3, t4 v4, t5 v5 )
+ {
+ pcIError_base error( NULL );
+ internalReturnType returnValue = ( ptr->*Func )( v1, v2, v3, v4, v5, error );
+ if ( error ) throw IError::MakeShared( error );
+ #if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4800 )
+ #endif
+ return static_cast< returnType >( returnValue );
+ #if XMP_WinBuild
+ #pragma warning( pop )
+ #endif
+ }
+
+ // Fixing AML build on mac
+
+ template < typename className, typename returnType, typename internalReturnType, typename t1, typename t2, typename t3, typename t4, typename t5, typename t6 >
+ returnType CallSafeFunction( className * ptr,
+ internalReturnType( APICALL className::*Func )( t1, t2, t3, t4, t5, t6, pcIError_base & ), t1 v1, t2 v2, t3 v3, t4 v4, t5 v5, t6 v6 )
+ {
+ pcIError_base error( NULL );
+ internalReturnType returnValue = ( ptr->*Func )( v1, v2, v3, v4, v5, v6, error );
+ if ( error ) throw IError::MakeShared( error );
+ #if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4800 )
+ #endif
+ return static_cast< returnType >( returnValue );
+ #if XMP_WinBuild
+ #pragma warning( pop )
+ #endif
+ }
+
+ template < typename className, typename returnType, typename internalReturnType >
+ returnType CallConstSafeFunction( const className * const ptr,
+ internalReturnType ( APICALL className::*Func )( pcIError_base & ) const )
+ {
+ pcIError_base error( NULL );
+ internalReturnType returnValue = (ptr->*Func)( error );
+ if ( error ) throw IError::MakeShared( error );
+ #if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4800 )
+ #endif
+ return static_cast< returnType >( returnValue );
+ #if XMP_WinBuild
+ #pragma warning( pop )
+ #endif
+ }
+
+ template < typename className, typename returnType, typename internalReturnType, typename t1 >
+ returnType CallConstSafeFunction( const className * const ptr,
+ internalReturnType ( APICALL className::*Func )( t1, pcIError_base & ) const, t1 v1 )
+ {
+ pcIError_base error( NULL );
+ internalReturnType returnValue = (ptr->*Func)( v1, error );
+ if ( error ) throw IError::MakeShared( error );
+ #if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4800 )
+ #endif
+ return static_cast< returnType >( returnValue );
+ #if XMP_WinBuild
+ #pragma warning( pop )
+ #endif
+ }
+
+ template < typename className, typename returnType, typename internalReturnType, typename t1, typename t2 >
+ returnType CallConstSafeFunction( const className * const ptr,
+ internalReturnType ( APICALL className::*Func )( t1, t2, pcIError_base & ) const, t1 v1, t2 v2 )
+ {
+ pcIError_base error( NULL );
+ internalReturnType returnValue = (ptr->*Func)( v1, v2, error );
+ if ( error ) throw IError::MakeShared( error );
+ #if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4800 )
+ #endif
+ return static_cast< returnType >( returnValue );
+ #if XMP_WinBuild
+ #pragma warning( pop )
+ #endif
+ }
+
+ template < typename className, typename returnType, typename internalReturnType, typename t1, typename t2, typename t3 >
+ returnType CallConstSafeFunction( const className * const ptr,
+ internalReturnType ( APICALL className::*Func )( t1, t2, t3, pcIError_base & ) const, t1 v1, t2 v2, t3 v3 )
+ {
+ pcIError_base error( NULL );
+ internalReturnType returnValue = (ptr->*Func)( v1, v2, v3, error );
+ if ( error ) throw IError::MakeShared( error );
+ #if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4800 )
+ #endif
+ return static_cast< returnType >( returnValue );
+ #if XMP_WinBuild
+ #pragma warning( pop )
+ #endif
+ }
+
+ template < typename className, typename returnType, typename internalReturnType, typename t1, typename t2, typename t3, typename t4 >
+ returnType CallConstSafeFunction( const className * const ptr,
+ internalReturnType ( APICALL className::*Func )( t1, t2, t3, t4, pcIError_base & ) const, t1 v1, t2 v2, t3 v3, t4 v4 )
+ {
+ pcIError_base error( NULL );
+ internalReturnType returnValue = (ptr->*Func)( v1, v2, v3, v4, error );
+ if ( error ) throw IError::MakeShared( error );
+ #if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4800 )
+ #endif
+ return static_cast< returnType >( returnValue );
+ #if XMP_WinBuild
+ #pragma warning( pop )
+ #endif
+ }
+
+ template < typename className, typename returnType, typename internalReturnType, typename t1, typename t2, typename t3, typename t4, typename t5 >
+ returnType CallConstSafeFunction( const className * const ptr,
+ internalReturnType ( APICALL className::*Func )( t1, t2, t3, t4, t5, pcIError_base & ) const, t1 v1, t2 v2, t3 v3, t4 v4, t5 v5 )
+ {
+ pcIError_base error( NULL );
+ internalReturnType returnValue = (ptr->*Func)( v1, v2, v3, v4, v5, error );
+ if ( error ) throw IError::MakeShared( error );
+ #if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4800 )
+ #endif
+ return static_cast< returnType >( returnValue );
+ #if XMP_WinBuild
+ #pragma warning( pop )
+ #endif
+ }
+
+ //Fixing AML build on mac
+
+ template < typename className, typename returnType, typename internalReturnType, typename t1, typename t2, typename t3, typename t4, typename t5, typename t6 >
+ returnType CallConstSafeFunction( const className * const ptr,
+ internalReturnType ( APICALL className::*Func )( t1, t2, t3, t4, t5, t6, pcIError_base & ) const, t1 v1, t2 v2, t3 v3, t4 v4, t5 v5, t6 v6 )
+ {
+ pcIError_base error( NULL );
+ internalReturnType returnValue = (ptr->*Func)( v1, v2, v3, v4, v5, v6, error );
+ if ( error ) throw IError::MakeShared( error );
+ #if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4800 )
+ #endif
+ return static_cast< returnType >( returnValue );
+ #if XMP_WinBuild
+ #pragma warning( pop )
+ #endif
+ }
+
+ template < typename className, typename returnType, typename internalReturnType, typename t1, typename t2, typename t3, typename t4, typename t5, typename t6, typename t7 >
+ returnType CallConstSafeFunction( const className * const ptr,
+ internalReturnType ( APICALL className::*Func )( t1, t2, t3, t4, t5, t6, t7, pcIError_base & ) const, t1 v1, t2 v2, t3 v3, t4 v4, t5 v5, t6 v6, t7 v7 )
+ {
+ pcIError_base error( NULL );
+ internalReturnType returnValue = (ptr->*Func)( v1, v2, v3, v4, v5, v6, v7, error );
+ if ( error ) throw IError::MakeShared( error );
+ #if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4800 )
+ #endif
+ return static_cast< returnType >( returnValue );
+ #if XMP_WinBuild
+ #pragma warning( pop )
+ #endif
+ }
+
+
+ template < typename className, typename returnType, typename internalReturnType, typename t1, typename t2, typename t3, typename t4, typename t5, typename t6, typename t7, typename t8, typename t9 >
+ returnType CallConstSafeFunction( const className * const ptr,
+ internalReturnType ( APICALL className::*Func )( t1, t2, t3, t4, t5, t6, t7, t8, t9, pcIError_base & ) const, t1 v1, t2 v2, t3 v3, t4 v4, t5 v5, t6 v6, t7 v7, t8 v8, t9 v9 )
+ {
+ pcIError_base error( NULL );
+ internalReturnType returnValue = (ptr->*Func)( v1, v2, v3, v4, v5, v6, v7, v8, v9, error );
+ if ( error ) throw IError::MakeShared( error );
+ #if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4800 )
+ #endif
+ return static_cast< returnType >( returnValue );
+ #if XMP_WinBuild
+ #pragma warning( pop )
+ #endif
+ }
+
+
+
+ template < typename className, typename internalReturnType, typename sharedPointerType >
+ shared_ptr< sharedPointerType > CallSafeFunctionReturningPointer( className * ptr,
+ internalReturnType( APICALL className::*Func )( pcIError_base & ) )
+ {
+ pcIError_base error( NULL );
+ internalReturnType returnValue = ( ptr->*Func )( error );
+ if ( error ) throw IError::MakeShared( error );
+ return sharedPointerType::MakeShared( returnValue );
+ }
+
+ template < typename className, typename internalReturnType, typename sharedPointerType, typename t1 >
+ shared_ptr< sharedPointerType > CallSafeFunctionReturningPointer( className * ptr,
+ internalReturnType( APICALL className::*Func )( t1, pcIError_base & ), t1 v1 )
+ {
+ pcIError_base error( NULL );
+ internalReturnType returnValue = ( ptr->*Func )( v1, error );
+ if ( error ) throw IError::MakeShared( error );
+ return sharedPointerType::MakeShared( returnValue );
+ }
+
+ template < typename className, typename internalReturnType, typename sharedPointerType, typename t1, typename t2 >
+ shared_ptr< sharedPointerType > CallSafeFunctionReturningPointer( className * ptr,
+ internalReturnType( APICALL className::*Func )( t1, t2, pcIError_base & ), t1 v1, t2 v2 )
+ {
+ pcIError_base error( NULL );
+ internalReturnType returnValue = ( ptr->*Func )( v1, v2, error );
+ if ( error ) throw IError::MakeShared( error );
+ return sharedPointerType::MakeShared( returnValue );
+ }
+
+ template < typename className, typename internalReturnType, typename sharedPointerType, typename t1, typename t2, typename t3 >
+ shared_ptr< sharedPointerType > CallSafeFunctionReturningPointer( className * ptr,
+ internalReturnType( APICALL className::*Func )( t1, t2, t3, pcIError_base & ), t1 v1, t2 v2, t3 v3 )
+ {
+ pcIError_base error( NULL );
+ internalReturnType returnValue = ( ptr->*Func )( v1, v2, v3, error );
+ if ( error ) throw IError::MakeShared( error );
+ return sharedPointerType::MakeShared( returnValue );
+ }
+
+ template < typename className, typename internalReturnType, typename sharedPointerType, typename t1, typename t2, typename t3, typename t4 >
+ shared_ptr< sharedPointerType > CallSafeFunctionReturningPointer( className * ptr,
+ internalReturnType( APICALL className::*Func )( t1, t2, t3, t4, pcIError_base & ), t1 v1, t2 v2, t3 v3, t4 v4 )
+ {
+ pcIError_base error( NULL );
+ internalReturnType returnValue = ( ptr->*Func )( v1, v2, v3, v4, error );
+ if ( error ) throw IError::MakeShared( error );
+ return sharedPointerType::MakeShared( returnValue );
+ }
+
+ template < typename className, typename internalReturnType, typename sharedPointerType, typename t1, typename t2, typename t3, typename t4, typename t5 >
+ shared_ptr< sharedPointerType > CallSafeFunctionReturningPointer( className * ptr,
+ internalReturnType( APICALL className::*Func )( t1, t2, t3, t4, t5, pcIError_base & ), t1 v1, t2 v2, t3 v3, t4 v4, t5 v5 )
+ {
+ pcIError_base error( NULL );
+ internalReturnType returnValue = ( ptr->*Func )( v1, v2, v3, v4, v5, error );
+ if ( error ) throw IError::MakeShared( error );
+ return sharedPointerType::MakeShared( returnValue );
+ }
+
+ template < typename className, typename internalReturnType, typename sharedPointerType, typename t1, typename t2, typename t3, typename t4, typename t5, typename t6 >
+ shared_ptr< sharedPointerType > CallSafeFunctionReturningPointer( className * ptr,
+ internalReturnType( APICALL className::*Func )( t1, t2, t3, t4, t5, t6, pcIError_base & ), t1 v1, t2 v2, t3 v3, t4 v4, t5 v5, t6 v6 )
+ {
+ pcIError_base error( NULL );
+ internalReturnType returnValue = ( ptr->*Func )( v1, v2, v3, v4, v5, v6, error );
+ if ( error ) throw IError::MakeShared( error );
+ return sharedPointerType::MakeShared( returnValue );
+ }
+
+ template < typename className, typename internalReturnType, typename sharedPointerType >
+ shared_ptr< sharedPointerType > CallConstSafeFunctionReturningPointer( const className * const ptr,
+ internalReturnType( APICALL className::*Func )( pcIError_base & ) const )
+ {
+ pcIError_base error( NULL );
+ internalReturnType returnValue = ( ptr->*Func )( error );
+ if ( error ) throw IError::MakeShared( error );
+ return sharedPointerType::MakeShared( returnValue );
+ }
+
+ template < typename className, typename internalReturnType, typename sharedPointerType, typename t1 >
+ shared_ptr< sharedPointerType > CallConstSafeFunctionReturningPointer( const className * const ptr,
+ internalReturnType( APICALL className::*Func )( t1, pcIError_base & ) const, t1 v1 )
+ {
+ pcIError_base error( NULL );
+ internalReturnType returnValue = ( ptr->*Func )( v1, error );
+ if ( error ) throw IError::MakeShared( error );
+ return sharedPointerType::MakeShared( returnValue );
+ }
+
+ template < typename className, typename internalReturnType, typename sharedPointerType, typename t1, typename t2 >
+ shared_ptr< sharedPointerType > CallConstSafeFunctionReturningPointer( const className * const ptr,
+ internalReturnType( APICALL className::*Func )( t1, t2, pcIError_base & ) const, t1 v1, t2 v2 )
+ {
+ pcIError_base error( NULL );
+ internalReturnType returnValue = ( ptr->*Func )( v1, v2, error );
+ if ( error ) throw IError::MakeShared( error );
+ return sharedPointerType::MakeShared( returnValue );
+ }
+
+ template < typename className, typename internalReturnType, typename sharedPointerType, typename t1, typename t2, typename t3 >
+ shared_ptr< sharedPointerType > CallConstSafeFunctionReturningPointer( const className * const ptr,
+ internalReturnType( APICALL className::*Func )( t1, t2, t3, pcIError_base & ) const, t1 v1, t2 v2, t3 v3 )
+ {
+ pcIError_base error( NULL );
+ internalReturnType returnValue = ( ptr->*Func )( v1, v2, v3, error );
+ if ( error ) throw IError::MakeShared( error );
+ return sharedPointerType::MakeShared( returnValue );
+ }
+
+ template < typename className, typename internalReturnType, typename sharedPointerType, typename t1, typename t2, typename t3, typename t4 >
+ shared_ptr< sharedPointerType > CallConstSafeFunctionReturningPointer( const className * const ptr,
+ internalReturnType( APICALL className::*Func )( t1, t2, t3, t4, pcIError_base & ) const, t1 v1, t2 v2, t3 v3, t4 v4 )
+ {
+ pcIError_base error( NULL );
+ internalReturnType returnValue = ( ptr->*Func )( v1, v2, v3, v4, error );
+ if ( error ) throw IError::MakeShared( error );
+ return sharedPointerType::MakeShared( returnValue );
+ }
+
+ template < typename className, typename internalReturnType, typename sharedPointerType, typename t1, typename t2, typename t3, typename t4, typename t5 >
+ shared_ptr< sharedPointerType > CallConstSafeFunctionReturningPointer( const className * const ptr,
+ internalReturnType( APICALL className::*Func )( t1, t2, t3, t4, t5, pcIError_base & ) const, t1 v1, t2 v2, t3 v3, t4 v4, t5 v5 )
+ {
+ pcIError_base error( NULL );
+ internalReturnType returnValue = ( ptr->*Func )( v1, v2, v3, v4, v5, error );
+ if ( error ) throw IError::MakeShared( error );
+ return sharedPointerType::MakeShared( returnValue );
+ }
+
+ template < typename className, typename internalReturnType, typename sharedPointerType, typename t1, typename t2, typename t3, typename t4, typename t5, typename t6 >
+ shared_ptr< sharedPointerType > CallConstSafeFunctionReturningPointer( const className * const ptr,
+ internalReturnType( APICALL className::*Func )( t1, t2, t3, t4, t5, t6, pcIError_base & ) const, t1 v1, t2 v2, t3 v3, t4 v4, t5 v5, t6 v6 )
+ {
+ pcIError_base error( NULL );
+ internalReturnType returnValue = ( ptr->*Func )( v1, v2, v3, v4, v5, v6, error );
+ if ( error ) throw IError::MakeShared( error );
+ return sharedPointerType::MakeShared( returnValue );
+ }
+}
+//! \endcond
+#endif // TWrapperFunctions2_h__
+
diff --git a/public/include/XMPCommon/XMPCommonDefines.h b/public/include/XMPCommon/XMPCommonDefines.h
new file mode 100644
index 0000000..d63de35
--- /dev/null
+++ b/public/include/XMPCommon/XMPCommonDefines.h
@@ -0,0 +1,166 @@
+#ifndef __XMPCommonDefines_h__
+#define __XMPCommonDefines_h__ 1
+
+// =================================================================================================
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved.
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+// =================================================================================================
+// XMP_CommonDefines.h - Common Defines across all the XMP Components
+// ================================================================
+//
+// This header defines common definitions to be used across all the XMP Components.
+//
+// =================================================================================================
+
+// =================================================================================================
+// All Platform Settings
+// ===========================
+#include "XMP_Environment.h"
+#if !XMP_WinBuild
+ #include <ciso646>
+#endif
+ // =================================================================================================
+ // Macintosh Specific Settings
+ // ===========================
+ #if XMP_MacBuild
+ #define SUPPORT_STD_ATOMIC_IMPLEMENTATION 0
+ #ifdef _LIBCPP_VERSION
+ #define SUPPORT_SHARED_POINTERS_IN_TR1 0
+ #define SUPPORT_SHARED_POINTERS_IN_STD 1
+ #else
+ #define SUPPORT_SHARED_POINTERS_IN_TR1 1
+ #define SUPPORT_SHARED_POINTERS_IN_STD 0
+ #endif
+ #define SUPPORT_SHARED_POINTERS_WITH_ALLOCATORS 0
+ #define BAD_EXCEPTION_SUPPORT_STRINGS 0
+ #define VECTOR_SUPPORT_CONST_ITERATOR_FUNCTIONS 0
+ #define SUPPORT_VARIADIC_TEMPLATES 0
+ #endif
+
+ // =================================================================================================
+ // IOS Specific Settings
+ // ===========================
+ #if XMP_iOSBuild
+ #define SUPPORT_STD_ATOMIC_IMPLEMENTATION 0
+ #ifdef _LIBCPP_VERSION
+ #define SUPPORT_SHARED_POINTERS_IN_TR1 0
+ #define SUPPORT_SHARED_POINTERS_IN_STD 1
+ #else
+ #define SUPPORT_SHARED_POINTERS_IN_TR1 1
+ #define SUPPORT_SHARED_POINTERS_IN_STD 0
+ #endif
+ #define SUPPORT_SHARED_POINTERS_WITH_ALLOCATORS 0
+ #define BAD_EXCEPTION_SUPPORT_STRINGS 0
+ #define VECTOR_SUPPORT_CONST_ITERATOR_FUNCTIONS 0
+ #define SUPPORT_VARIADIC_TEMPLATES 0
+ #endif
+
+ // =================================================================================================
+ // Windows Specific Settings
+ // =========================
+ #if XMP_WinBuild
+ #define SUPPORT_SHARED_POINTERS_WITH_ALLOCATORS 1
+ #if _MSC_VER <= 1600
+ #define SUPPORT_STD_ATOMIC_IMPLEMENTATION 0
+ #define SUPPORT_SHARED_POINTERS_IN_TR1 1
+ #define SUPPORT_SHARED_POINTERS_IN_STD 0
+ #else
+ #define SUPPORT_STD_ATOMIC_IMPLEMENTATION 1
+ #define SUPPORT_SHARED_POINTERS_IN_TR1 0
+ #define SUPPORT_SHARED_POINTERS_IN_STD 1
+ #endif
+ #define BAD_EXCEPTION_SUPPORT_STRINGS 1
+ #define VECTOR_SUPPORT_CONST_ITERATOR_FUNCTIONS 1
+ #endif
+
+ // =================================================================================================
+ // UNIX Specific Settings
+ // ======================
+ #if XMP_UNIXBuild
+ #define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
+ #if GCC_VERSION >= 40800
+ #define SUPPORT_STD_ATOMIC_IMPLEMENTATION 1
+ #else
+ #define REQ_FRIEND_CLASS_DECLARATION() template<typename _Ptr, std::_Lock_policy _Lp> friend class std::_Sp_counted_ptr;
+ #define SUPPORT_STD_ATOMIC_IMPLEMENTATION 0
+ #endif
+
+ #define SUPPORT_SHARED_POINTERS_IN_TR1 0
+ #define SUPPORT_SHARED_POINTERS_IN_STD 1
+ #define SUPPORT_SHARED_POINTERS_WITH_ALLOCATORS 0
+ #define BAD_EXCEPTION_SUPPORT_STRINGS 0
+ #define VECTOR_SUPPORT_CONST_ITERATOR_FUNCTIONS 1
+ #define SUPPORT_DYNAMIC_CAST_OPTIMIZATION 0
+ #define SUPPORT_VARIADIC_TEMPLATES 0
+ #endif
+
+ #ifndef SUPPORT_VARIADIC_TEMPLATES
+ #define SUPPORT_VARIADIC_TEMPLATES 1
+ #endif
+
+ #ifndef REQ_FRIEND_CLASS_DECLARATION
+ #define REQ_FRIEND_CLASS_DECLARATION()
+ #endif
+
+ #define JOIN_CLASSNAME_WITH_VERSION_NUMBER_INT(x,y) x ## _v ## y
+ #define JOIN_CLASSNAME_WITH_VERSION_NUMBER(x,y) JOIN_CLASSNAME_WITH_VERSION_NUMBER_INT(x,y)
+ #define BASE_CLASS(classNameWithoutVersionNumber, versionNumber) JOIN_CLASSNAME_WITH_VERSION_NUMBER(classNameWithoutVersionNumber, versionNumber)
+ #define EXPAND_MACRO(X) X
+ #define QUOTEME2(X) #X
+ #define QUOTEME(X) QUOTEME2(X)
+
+ #define __NOTHROW__ throw()
+
+ #if SOURCE_COMPILING_XMP_ALL || SOURCE_COMPILING_XMPCORE_LIB || SOURCE_COMPILING_XMPCOMPAREANDMERGE_LIB || SOURCE_COMPILING_XMPEXTENSIONS_LIB
+ #define SOURCE_COMPILING_XMPCOMMON_LIB 1
+ #else
+ #define SOURCE_COMPILING_XMPCOMMON_LIB 0
+ #endif
+
+ #ifndef BUILDING_XMPCOMMON_LIB
+ #define BUILDING_XMPCOMMON_LIB 0
+ #endif
+
+ #if BUILDING_XMPCOMMON_LIB
+ #if !BUILDING_XMPCOMMON_AS_STATIC && !BUILDING_XMPCOMMON_AS_DYNAMIC
+ #error "Define either BUILDING_XMPCOMMON_AS_STATIC as 1 or BUILDING_XMPCOMMON_AS_DYNAMIC as 1"
+ #endif
+ #endif
+
+ #ifndef __XMP_Const_h__
+ #include "XMP_Const.h"
+ #endif
+
+ namespace AdobeXMPCommon {
+
+ typedef XMP_Int64 int64;
+ typedef XMP_Uns64 uint64;
+ typedef XMP_Int32 int32;
+ typedef XMP_Uns32 uint32;
+ #if !XMP_64
+ typedef uint32 sizet;
+ #else
+ typedef uint64 sizet;
+ #endif
+
+ const sizet kMaxSize ( ( sizet ) -1 );
+ const sizet npos ( kMaxSize );
+
+ // force an enum type to be represented in 32 bits
+ static const uint32 kMaxEnumValue ( Max_XMP_Uns32 );
+ static const uint32 kAllBits ( 0xFFFFFFFF );
+
+ // unique ids for the interfaces defined in the namespace
+ static const uint64 kIErrorID ( 0x6e4572726f722020 /* nError */ );
+ static const uint64 kIUTF8StringID ( 0x6e55544638537472 /* nUTF8Str */ );
+ static const uint64 kIObjectFactoryID ( 0x6e4f626a46616374 /* nObjFact */ );
+ static const uint64 kIErrorNotifierID ( 0x6e4572724e6f7466 /* nErrNotf */ );
+ static const uint64 kIConfigurationManagerID ( 0x6e436f6e664d6772 /* nConfMgr */ );
+ } // namespace AdobeXMPCommon
+
+#endif // __XMPCommonDefines_h__
diff --git a/public/include/XMPCommon/XMPCommonErrorCodes.h b/public/include/XMPCommon/XMPCommonErrorCodes.h
new file mode 100644
index 0000000..22997da
--- /dev/null
+++ b/public/include/XMPCommon/XMPCommonErrorCodes.h
@@ -0,0 +1,114 @@
+#ifndef XMPCommonErrorCodes_h__
+#define XMPCommonErrorCodes_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/XMPCommonDefines.h"
+
+namespace AdobeXMPCommon {
+
+ //!
+ //! @brief Indicates various types of error codes within General Domain.
+ //!
+ typedef enum {
+ //! Indicates no error
+ kGECNone = 0,
+
+ //! Indicates that parameters passed to function are not as expected.
+ kGECParametersNotAsExpected = 1,
+
+ //! Indicates that version expected by client is not available in the library.
+ kGECVersionUnavailable = 2,
+
+ //! Indicates that some assertion has failed.
+ kGECAssertionFailure = 3,
+
+ //! Indicates logic failure.
+ kGECLogicalError = 4,
+
+ //! Indicates index provided is out of bounds.
+ kGECIndexOutOfBounds = 5,
+
+ //! Indicates an internal failure.
+ kGECInternalFailure = 6,
+
+ //! Indicates a call to deprecated function.
+ kGECDeprecatedFunctionCall = 7,
+
+ //! Indicates an external failure.
+ kGECExternalFailure = 8,
+
+ //! Indicates an unknown failure.
+ kGECUnknownFailure = 9,
+
+ //! Indicates an error due to User Abort.
+ kGECUserAbort = 10,
+
+ //! Indicates a particular interface is not available.
+ kGECInterfaceUnavailable = 11,
+
+ //! Indicates that client code has thrown some exception.
+ kGECClientThrownExceptionCaught = 100,
+
+ //! Indicates that standard exception has occurred.
+ kGECStandardException = 101,
+
+ //! Indicates that some unknown exception has occurred.
+ kGECUnknownExceptionCaught = 200,
+
+ //! Indicates that functionality is not yet implemented.
+ kGECNotImplemented = 10000,
+
+ //! Maximum value this enum can hold, should be treated as invalid value.
+ kGECMaxValue = kMaxEnumValue
+ } eGeneralErrorCode;
+
+ //!
+ //! @brief Indicates various types of error codes within Memory Management domain.
+ //!
+ typedef enum {
+ //! Indicates no error
+ kMMECNone = 0,
+
+ //! Indicates that allocation has failed.
+ kMMECAllocationFailure = 1,
+
+ //! Maximum value this enum can hold, should be treated as invalid value.
+ kMMECMaxValue = kMaxEnumValue
+ } eMemoryManagementErrorCode;
+
+ //!
+ //! @brief Indicates various types of error codes within Configurable domain.
+ //!
+ typedef enum {
+ //! Indicates no error.
+ kCECNone = 0,
+
+ //! Indicates that key is not supported by the object.
+ kCECKeyNotSupported = 1,
+
+ //! Indicates different type of value provided than the one supported for a key.
+ kCECValueTypeNotSupported = 2,
+
+ //! Indicates that different value type is previously stored for a key.
+ kCECPreviousTypeDifferent = 3,
+
+ //! Indicates the type of value stored for a key is different than what client is asking for.
+ kCECValueTypeMismatch = 4,
+
+ //! Indicates an invalid value is provided.
+ kCECValueNotSupported = 5,
+
+ //! Maximum value this enum can hold, should be treated as invalid value.
+ kCECodeMaxValue = 0xFFFFFFFF
+ } eConfigurableErrorCode;
+}
+
+#endif // XMPCommonErrorCodes_h__
diff --git a/public/include/XMPCommon/XMPCommonFwdDeclarations.h b/public/include/XMPCommon/XMPCommonFwdDeclarations.h
new file mode 100644
index 0000000..dce21ec
--- /dev/null
+++ b/public/include/XMPCommon/XMPCommonFwdDeclarations.h
@@ -0,0 +1,158 @@
+#ifndef __XMPCommonFwdDeclarations_h__
+#define __XMPCommonFwdDeclarations_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/XMPCommonDefines.h"
+#include "XMPCommon/XMPCommonLatestInterfaceVersions.h"
+#include <vector>
+
+#if SUPPORT_SHARED_POINTERS_IN_STD
+ #include <memory>
+ #include <functional>
+#elif SUPPORT_SHARED_POINTERS_IN_TR1
+ #if XMP_WinBuild
+ #include <memory>
+ #else
+ #include <tr1/memory>
+ #include <tr1/functional>
+ #endif
+#else
+ #error "location of shared pointer stuff is unknown"
+#endif
+
+namespace AdobeXMPCommon {
+
+ #if SUPPORT_SHARED_POINTERS_IN_STD
+ using std::shared_ptr;
+ using std::enable_shared_from_this;
+ using std::mem_fn;
+ #elif SUPPORT_SHARED_POINTERS_IN_TR1
+ using std::tr1::shared_ptr;
+ using std::tr1::enable_shared_from_this;
+ using std::tr1::mem_fn;
+ #endif
+
+ // void
+ typedef void * pvoid;
+ typedef const void * pcvoid;
+ typedef shared_ptr< void > spvoid;
+ typedef shared_ptr< const void * > spcvoid;
+
+ // IObjectFactory
+ class IObjectFactory_v1;
+ typedef IObjectFactory_v1 IObjectFactory_base;
+ typedef IObjectFactory_v1 * pIObjectFactory_base;
+ typedef const IObjectFactory_v1 * pcIObjectFactory_base;
+ typedef BASE_CLASS( IObjectFactory, IOBJECTFACTORY_VERSION ) IObjectFactory;
+ typedef IObjectFactory * pIObjectFactory;
+ typedef const IObjectFactory * pcIObjectFactory;
+
+ // IError
+ class IError_v1;
+ typedef IError_v1 IError_base;
+ typedef IError_v1 * pIError_base;
+ typedef const IError_v1 * pcIError_base;
+ typedef BASE_CLASS( IError, IERROR_VERSION ) IError;
+ typedef IError * pIError;
+ typedef const IError * pcIError;
+ typedef shared_ptr< IError > spIError;
+ typedef shared_ptr< const IError > spcIError;
+
+ // IUTF8String
+ class IUTF8String_v1;
+ typedef IUTF8String_v1 IUTF8String_base;
+ typedef IUTF8String_v1 * pIUTF8String_base;
+ typedef const IUTF8String_v1 * pcIUTF8String_base;
+ typedef BASE_CLASS( IUTF8String, IUTF8STRING_VERSION ) IUTF8String;
+ typedef IUTF8String * pIUTF8String;
+ typedef const IUTF8String * pcIUTF8String;
+ typedef shared_ptr< IUTF8String > spIUTF8String;
+ typedef shared_ptr< const IUTF8String > spcIUTF8String;
+
+ // IMemoryAllocator
+ class IMemoryAllocator_v1;
+ typedef IMemoryAllocator_v1 IMemoryAllocator_base;
+ typedef IMemoryAllocator_v1 * pIMemoryAllocator_base;
+ typedef const IMemoryAllocator_v1 * pcIMemoryAllocator_base;
+ typedef BASE_CLASS( IMemoryAllocator, IMEMORYALLOCATOR_VERSION ) IMemoryAllocator;
+ typedef IMemoryAllocator * pIMemoryAllocator;
+ typedef const IMemoryAllocator * pcIMemoryAllocator;
+ typedef shared_ptr< IMemoryAllocator > spIMemoryAllocator;
+ typedef shared_ptr< const IMemoryAllocator > spcIMemoryAllocator;
+
+ // IErrorNotifier
+ class IErrorNotifier_v1;
+ typedef IErrorNotifier_v1 IErrorNotifier_base;
+ typedef IErrorNotifier_v1 * pIErrorNotifier_base;
+ typedef const IErrorNotifier_v1 * pcIErrorNotifier_base;
+ typedef BASE_CLASS( IErrorNotifier, IERRORNOTIFIER_VERSION ) IErrorNotifier;
+ typedef IErrorNotifier * pIErrorNotifier;
+ typedef const IErrorNotifier * pcIErrorNotifier;
+ typedef shared_ptr< IErrorNotifier > spIErrorNotifier;
+ typedef shared_ptr< const IErrorNotifier > spcIErrorNotifier;
+
+ // IConfigurationManager
+ class IConfigurationManager_v1;
+ typedef IConfigurationManager_v1 IConfigurationManager_base;
+ typedef IConfigurationManager_v1 * pIConfigurationManager_base;
+ typedef const IConfigurationManager_v1 * pcIConfigurationManager_base;
+ typedef BASE_CLASS( IConfigurationManager, ICONFIGURATIONMANAGER_VERSION ) IConfigurationManager;
+ typedef IConfigurationManager * pIConfigurationManager;
+ typedef const IConfigurationManager * pcIConfigurationManager;
+ typedef shared_ptr< IConfigurationManager > spIConfigurationManager;
+ typedef shared_ptr< const IConfigurationManager > spcIConfigurationManager;
+
+ // IConfigurable
+ class IConfigurable;
+ typedef IConfigurable * pIConfigurable;
+ typedef const IConfigurable * pcIConfigurable;
+
+ // typedefs for vectors and their corresponding shared pointers.
+ typedef std::vector< spIUTF8String > IUTF8Strings;
+ typedef std::vector< spcIUTF8String > cIUTF8Strings;
+ typedef shared_ptr< IUTF8Strings > spIUTF8Strings;
+ typedef shared_ptr< cIUTF8Strings > spcIUTF8Strings;
+ typedef shared_ptr< const IUTF8Strings > spIUTF8Strings_const;
+ typedef shared_ptr< const cIUTF8Strings > spcIUTF8Strings_const;
+
+ //!
+ //! @brief A function pointer to get the memory allocated from the library.
+ //! \param[in] size a value indicating the number of bytes to be allocated.
+ //! \return a pointer to memory allocated by the library.
+ //! \note NULL value is returned in case memory allocation fails.
+ //!
+ typedef void * ( *MemAllocateProc )( sizet sz );
+ void * MemAllocate( sizet size ) __NOTHROW__;
+
+ //!
+ //! @brief A function pointer to get the memory freed from the library.
+ //! \param[in] ptr address of the memory location to be freed.
+ //!
+ typedef void( *MemReleaseProc )( void * ptr );
+ void MemRelease( void * ptr ) __NOTHROW__;
+
+} // namespace AdobeXMPCommon
+
+namespace AdobeXMPCommon_Int {
+
+ // ISharedObject_I
+ class ISharedObject_I;
+ typedef ISharedObject_I * pISharedObject_I;
+ typedef const ISharedObject_I * pcISharedObject_I;
+
+ // IThreadSafe_I
+ class IThreadSafe_I;
+ typedef IThreadSafe_I * pIThreadSafe_I;
+ typedef const IThreadSafe_I * pcIThreadSafe_I;
+
+}
+
+#endif // __XMPCommonFwdDeclarations_h__
diff --git a/public/include/XMPCommon/XMPCommonLatestInterfaceVersions.h b/public/include/XMPCommon/XMPCommonLatestInterfaceVersions.h
new file mode 100644
index 0000000..d7f5add
--- /dev/null
+++ b/public/include/XMPCommon/XMPCommonLatestInterfaceVersions.h
@@ -0,0 +1,51 @@
+#ifndef XMPCommonLatestInterfaceVersions_h__
+#define XMPCommonLatestInterfaceVersions_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+//!
+//!@brief Macro to include a client file through with client can control the interface versions he wants to stick with
+//!if not the latest ones.
+//!
+#if !SOURCE_COMPILING_XMPCOMMON_LIB
+ #ifdef XMPCOMMON_CLIENT_VERSION_NUMBER_FILE
+ #include QUOTEME(XMPCOMMON_CLIENT_VERSION_NUMBER_FILE)
+ #endif
+#endif
+
+#ifndef IOBJECTFACTORY_VERSION
+ #define IOBJECTFACTORY_VERSION 1
+#endif
+
+#ifndef IERROR_VERSION
+ #define IERROR_VERSION 1
+#endif
+
+#ifndef IUTF8STRING_VERSION
+ #define IUTF8STRING_VERSION 1
+#endif
+
+#ifndef IMEMORYALLOCATOR_VERSION
+ #define IMEMORYALLOCATOR_VERSION 1
+#endif
+
+#ifndef IERRORNOTIFIER_VERSION
+ #define IERRORNOTIFIER_VERSION 1
+#endif
+
+#ifndef ICONFIGURATIONMANAGER_VERSION
+ #define ICONFIGURATIONMANAGER_VERSION 1
+#endif
+
+#ifndef ICONFIGURABLE_VERSION
+ #define ICONFIGURABLE_VERSION 1
+#endif
+
+#endif // XMPCommonLatestInterfaceVersions_h__
diff --git a/public/include/XMPCommon/source/IConfigurable.cpp b/public/include/XMPCommon/source/IConfigurable.cpp
new file mode 100644
index 0000000..fb8e2f3
--- /dev/null
+++ b/public/include/XMPCommon/source/IConfigurable.cpp
@@ -0,0 +1,204 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/Interfaces/BaseInterfaces/IConfigurable.h"
+
+#if !BUILDING_XMPCOMMON_LIB && !SOURCE_COMPILING_XMP_ALL
+
+#include "XMPCommon/Utilities/TWrapperFunctions.h"
+#include <assert.h>
+
+namespace AdobeXMPCommon {
+
+ IConfigurableProxy::IConfigurableProxy( pIConfigurable configurable )
+ : mConfigurableRawPtr( configurable ) { }
+
+ void APICALL IConfigurableProxy::SetParameter( const uint64 & key, bool value ) {
+ CombinedDataValue combinedValue;
+ combinedValue.uint32Value = value ? 1 : 0;
+ CallSafeFunctionReturningVoid< IConfigurable, const uint64 &, uint32, const CombinedDataValue &
+ >(
+ mConfigurableRawPtr, &IConfigurable::setParameter, key, static_cast< uint32 >( IConfigurable::kDTBool ), combinedValue
+ );
+ }
+
+ void APICALL IConfigurableProxy::setParameter( const uint64 & key, uint32 dataType, const CombinedDataValue & dataValue, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mConfigurableRawPtr->setParameter( key, dataType, dataValue, error );
+ }
+
+ bool APICALL IConfigurableProxy::RemoveParameter( const uint64 & key ) {
+ return CallSafeFunction< IConfigurable, bool, uint32, const uint64 & >(
+ mConfigurableRawPtr, &IConfigurable::removeParameter, key );
+ }
+
+ uint32 APICALL IConfigurableProxy::removeParameter( const uint64 & key, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mConfigurableRawPtr->removeParameter( key, error );
+ }
+
+ bool APICALL IConfigurableProxy::GetParameter( const uint64 & key, bool & value ) const {
+ CombinedDataValue combinedValue;
+ bool returnValue = CallConstSafeFunction< IConfigurable, bool, uint32, const uint64 &, uint32, CombinedDataValue &
+ >(
+ mConfigurableRawPtr, &IConfigurable::getParameter, key, static_cast< uint32 >( IConfigurable::kDTBool ), combinedValue
+ );
+ value = combinedValue.uint32Value != 0 ? 1 : 0;
+ return returnValue;
+ }
+
+ uint32 APICALL IConfigurableProxy::getParameter( const uint64 & key, uint32 dataType, CombinedDataValue & value, pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mConfigurableRawPtr->getParameter( key, dataType, value, error );
+ }
+
+ std::vector< uint64 > APICALL IConfigurableProxy::GetAllParameters() const {
+ sizet nElements = mConfigurableRawPtr->Size();
+ std::vector< uint64 > vec( nElements );
+ if ( nElements > 0 )
+ mConfigurableRawPtr->getAllParameters( vec.data(), nElements );
+ return vec;
+ }
+
+ void APICALL IConfigurableProxy::getAllParameters( uint64 * array, sizet count ) const __NOTHROW__ {
+ assert( false );
+ return mConfigurableRawPtr->getAllParameters( array, count );
+ }
+
+ sizet APICALL IConfigurableProxy::Size() const __NOTHROW__ {
+ return mConfigurableRawPtr->Size();
+ }
+
+ IConfigurable::eDataType APICALL IConfigurableProxy::GetDataType( const uint64 & key ) const {
+ return CallConstSafeFunction< IConfigurable, eDataType, uint32, const uint64 & >(
+ mConfigurableRawPtr, &IConfigurable::getDataType, key );
+ }
+
+ uint32 APICALL IConfigurableProxy::getDataType( const uint64 & key, pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mConfigurableRawPtr->getDataType( key, error );
+ }
+
+ bool APICALL IConfigurableProxy::GetParameter( const uint64 & key, const void * & value ) const {
+ CombinedDataValue combinedValue;
+ bool returnValue = CallConstSafeFunction< IConfigurable, bool, uint32, const uint64 &, uint32, CombinedDataValue &
+ >(
+ mConfigurableRawPtr, &IConfigurable::getParameter, key, static_cast< uint32 >( IConfigurable::kDTConstVoidPtr ), combinedValue
+ );
+ value = combinedValue.constVoidPtrValue;
+ return returnValue;
+ }
+
+ bool APICALL IConfigurableProxy::GetParameter( const uint64 & key, const char * & value ) const {
+ CombinedDataValue combinedValue;
+ bool returnValue = CallConstSafeFunction< IConfigurable, bool, uint32, const uint64 &, uint32, CombinedDataValue &
+ >(
+ mConfigurableRawPtr, &IConfigurable::getParameter, key, static_cast< uint32 >( IConfigurable::kDTConstCharBuffer ), combinedValue
+ );
+ value = combinedValue.constCharPtrValue;
+ return returnValue;
+ }
+
+ bool APICALL IConfigurableProxy::GetParameter( const uint64 & key, char & value ) const {
+ CombinedDataValue combinedValue;
+ bool returnValue = CallConstSafeFunction< IConfigurable, bool, uint32, const uint64 &, uint32, CombinedDataValue &
+ >(
+ mConfigurableRawPtr, &IConfigurable::getParameter, key, static_cast< uint32 >( IConfigurable::kDTChar ), combinedValue
+ );
+ value = combinedValue.charValue;
+ return returnValue;
+ }
+
+ bool APICALL IConfigurableProxy::GetParameter( const uint64 & key, double & value ) const {
+ CombinedDataValue combinedValue;
+ bool returnValue = CallConstSafeFunction< IConfigurable, bool, uint32, const uint64 &, uint32, CombinedDataValue &
+ >(
+ mConfigurableRawPtr, &IConfigurable::getParameter, key, static_cast< uint32 >( IConfigurable::kDTDouble ), combinedValue
+ );
+ value = combinedValue.doubleValue;
+ return returnValue;
+ }
+
+ bool APICALL IConfigurableProxy::GetParameter( const uint64 & key, int64 & value ) const {
+ CombinedDataValue combinedValue;
+ bool returnValue = CallConstSafeFunction< IConfigurable, bool, uint32, const uint64 &, uint32, CombinedDataValue &
+ >(
+ mConfigurableRawPtr, &IConfigurable::getParameter, key, static_cast< uint32 >( IConfigurable::kDTInt64 ), combinedValue
+ );
+ value = combinedValue.int64Value;
+ return returnValue;
+ }
+
+ bool APICALL IConfigurableProxy::GetParameter( const uint64 & key, uint64 & value ) const {
+ CombinedDataValue combinedValue;
+ bool returnValue = CallConstSafeFunction< IConfigurable, bool, uint32, const uint64 &, uint32, CombinedDataValue &
+ >(
+ mConfigurableRawPtr, &IConfigurable::getParameter, key, static_cast< uint32 >( IConfigurable::kDTUint64 ), combinedValue
+ );
+ value = combinedValue.uint64Value;
+ return returnValue;
+ }
+
+ void APICALL IConfigurableProxy::SetParameter( const uint64 & key, const void * value ) {
+ CombinedDataValue combinedValue;
+ combinedValue.constVoidPtrValue= value;
+ return CallSafeFunctionReturningVoid< IConfigurable, const uint64 &, uint32, const CombinedDataValue &
+ >(
+ mConfigurableRawPtr, &IConfigurable::setParameter, key, static_cast< uint32 >( IConfigurable::kDTConstVoidPtr ), combinedValue
+ );
+ }
+
+ void APICALL IConfigurableProxy::SetParameter( const uint64 & key, const char * value ) {
+ CombinedDataValue combinedValue;
+ combinedValue.constCharPtrValue = value;
+ return CallSafeFunctionReturningVoid< IConfigurable, const uint64 &, uint32, const CombinedDataValue &
+ >(
+ mConfigurableRawPtr, &IConfigurable::setParameter, key, static_cast< uint32 >( IConfigurable::kDTConstCharBuffer ), combinedValue
+ );
+ }
+
+ void APICALL IConfigurableProxy::SetParameter( const uint64 & key, char value ) {
+ CombinedDataValue combinedValue;
+ combinedValue.charValue = value;
+ return CallSafeFunctionReturningVoid< IConfigurable, const uint64 &, uint32, const CombinedDataValue &
+ >(
+ mConfigurableRawPtr, &IConfigurable::setParameter, key, static_cast< uint32 >( IConfigurable::kDTChar ), combinedValue
+ );
+ }
+
+ void APICALL IConfigurableProxy::SetParameter( const uint64 & key, double value ) {
+ CombinedDataValue combinedValue;
+ combinedValue.doubleValue = value;
+ return CallSafeFunctionReturningVoid< IConfigurable, const uint64 &, uint32, const CombinedDataValue &
+ >(
+ mConfigurableRawPtr, &IConfigurable::setParameter, key, static_cast< uint32 >( IConfigurable::kDTDouble ), combinedValue
+ );
+ }
+
+ void APICALL IConfigurableProxy::SetParameter( const uint64 & key, int64 value ) {
+ CombinedDataValue combinedValue;
+ combinedValue.int64Value = value;
+ return CallSafeFunctionReturningVoid< IConfigurable, const uint64 &, uint32, const CombinedDataValue &
+ >(
+ mConfigurableRawPtr, &IConfigurable::setParameter, key, static_cast< uint32 >( IConfigurable::kDTInt64 ), combinedValue
+ );
+ }
+
+ void APICALL IConfigurableProxy::SetParameter( const uint64 & key, uint64 value ) {
+ CombinedDataValue combinedValue;
+ combinedValue.uint64Value = value;
+ return CallSafeFunctionReturningVoid< IConfigurable, const uint64 &, uint32, const CombinedDataValue &
+ >(
+ mConfigurableRawPtr, &IConfigurable::setParameter, key, static_cast< uint32 >( IConfigurable::kDTUint64 ), combinedValue
+ );
+ }
+
+}
+
+#endif // !BUILDING_XMPCOMMON_LIB && !SOURCE_COMPILING_XMP_ALL
diff --git a/public/include/XMPCommon/source/IConfigurationManager.cpp b/public/include/XMPCommon/source/IConfigurationManager.cpp
new file mode 100644
index 0000000..0cfdab1
--- /dev/null
+++ b/public/include/XMPCommon/source/IConfigurationManager.cpp
@@ -0,0 +1,92 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#define FRIEND_CLASS_DECLARATION() friend class IConfigurationManagerProxy;
+
+#include "XMPCommon/Interfaces/IConfigurationManager.h"
+
+#if !BUILDING_XMPCOMMON_LIB && !SOURCE_COMPILING_XMP_ALL
+
+#include "XMPCommon/Utilities/TWrapperFunctions.h"
+#include "XMPCommon/Interfaces/IError.h"
+
+#include <assert.h>
+
+namespace AdobeXMPCommon {
+
+ void APICALL IConfigurationManagerProxy::Acquire() const __NOTHROW__ {
+ assert( false );
+ }
+
+ void APICALL IConfigurationManagerProxy::Release() const __NOTHROW__ {
+ assert( false );
+ }
+
+ pvoid APICALL IConfigurationManagerProxy::getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getInterfacePointer( interfaceID, interfaceVersion, error );
+ }
+
+ pvoid APICALL IConfigurationManagerProxy::GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion ) {
+ return AdobeXMPCommon::CallSafeFunction<
+ IVersionable, pvoid, pvoid, uint64, uint32
+ >( mRawPtr, &IVersionable::getInterfacePointer, interfaceID, interfaceVersion );
+ }
+
+ uint32 APICALL IConfigurationManagerProxy::registerMemoryAllocator( pIMemoryAllocator_base memoryAllocator, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->registerMemoryAllocator( memoryAllocator, error );
+ }
+
+ bool APICALL IConfigurationManagerProxy::RegisterMemoryAllocator( pIMemoryAllocator memoryAllocator ) {
+ return CallSafeFunction< IConfigurationManager, bool, uint32, pIMemoryAllocator_base >(
+ mRawPtr, &IConfigurationManager::registerMemoryAllocator, memoryAllocator );
+ }
+
+ uint32 APICALL IConfigurationManagerProxy::registerErrorNotifier( pIErrorNotifier_base clientErrorNotifier, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->registerErrorNotifier( clientErrorNotifier, error );
+ }
+
+ bool APICALL IConfigurationManagerProxy::RegisterErrorNotifier( pIErrorNotifier_base clientErrorNotifier ) {
+ return CallSafeFunction< IConfigurationManager, bool, uint32, pIErrorNotifier_base >(
+ mRawPtr, &IConfigurationManager::registerErrorNotifier, clientErrorNotifier );
+ }
+
+ uint32 APICALL IConfigurationManagerProxy::disableMultiThreading( pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->disableMultiThreading( error );
+ }
+
+ bool APICALL IConfigurationManagerProxy::DisableMultiThreading() {
+ return CallSafeFunction< IConfigurationManager, bool, uint32 >(
+ mRawPtr, &IConfigurationManager::disableMultiThreading );
+ }
+
+ uint32 APICALL IConfigurationManagerProxy::isMultiThreaded( pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->isMultiThreaded( error );
+ }
+
+ bool APICALL IConfigurationManagerProxy::IsMultiThreaded() const {
+ return CallConstSafeFunction< IConfigurationManager, bool, uint32 >(
+ mRawPtr, &IConfigurationManager::isMultiThreaded );
+ }
+
+ spIConfigurationManager IConfigurationManager_v1::MakeShared( pIConfigurationManager_base ptr ) {
+ if ( !ptr ) return spIConfigurationManager();
+ pIConfigurationManager p = IConfigurationManager::GetInterfaceVersion() > 1 ?
+ ptr->GetInterfacePointer< IConfigurationManager >() : ptr;
+ return shared_ptr< IConfigurationManager >( new IConfigurationManagerProxy( p ) );
+ }
+
+}
+
+#endif // !BUILDING_XMPCOMMON_LIB && !SOURCE_COMPILING_XMP_LIB
+
diff --git a/public/include/XMPCommon/source/IError.cpp b/public/include/XMPCommon/source/IError.cpp
new file mode 100644
index 0000000..8f763d3
--- /dev/null
+++ b/public/include/XMPCommon/source/IError.cpp
@@ -0,0 +1,207 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#define FRIEND_CLASS_DECLARATION() friend class IErrorProxy;
+
+#include "XMPCommon/Interfaces/IError.h"
+
+#if !BUILDING_XMPCOMMON_LIB && !SOURCE_COMPILING_XMP_ALL
+
+#include "XMPCommon/Utilities/TWrapperFunctions.h"
+#include "XMPCommon/Interfaces/IUTF8String.h"
+#include "XMPCommon/Interfaces/IObjectFactory.h"
+
+#include <assert.h>
+
+namespace AdobeXMPCommon {
+ class IErrorProxy
+ : public virtual IError
+ {
+ private:
+ pIError mRawPtr;
+
+ public:
+ IErrorProxy( pIError ptr )
+ : mRawPtr( ptr )
+ {
+ mRawPtr->Acquire();
+ }
+
+ ~IErrorProxy() __NOTHROW__ { mRawPtr->Release(); }
+
+ pIError APICALL GetActualIError() __NOTHROW__ { return mRawPtr; }
+
+ void APICALL Acquire() const __NOTHROW__ { assert( false ); }
+
+ void APICALL Release() const __NOTHROW__ { assert( false ); }
+
+ pvoid APICALL GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion ) {
+ return CallSafeFunction<
+ IVersionable, pvoid, pvoid, uint64, uint32
+ >( mRawPtr, &IVersionable::getInterfacePointer, interfaceID, interfaceVersion );
+ }
+
+ pvoid APICALL getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getInterfacePointer( interfaceID, interfaceVersion, error );
+ }
+
+ eErrorCode APICALL GetCode() const {
+ return CallConstSafeFunction< IError, eErrorCode, uint32 >(
+ mRawPtr, &IError::getCode );
+ }
+
+ uint32 APICALL getCode( pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getCode( error );
+ }
+
+ eErrorDomain APICALL GetDomain() const {
+ return CallConstSafeFunction< IError, eErrorDomain, uint32 >(
+ mRawPtr, &IError::getDomain );
+ }
+
+ uint32 APICALL getDomain( pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getDomain( error );
+ }
+
+ eErrorSeverity APICALL GetSeverity() const {
+ return CallConstSafeFunction< IError, eErrorSeverity, uint32 >(
+ mRawPtr, &IError::getSeverity );
+ }
+
+ uint32 APICALL getSeverity( pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getSeverity( error );
+ }
+
+ spcIUTF8String APICALL GetMessage() const {
+ return CallConstSafeFunctionReturningPointer< IError, pcIUTF8String_base, const IUTF8String >(
+ mRawPtr, &IError::getMessage );
+ }
+
+ pcIUTF8String_base APICALL getMessage( pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getMessage( error );
+ }
+
+ spcIUTF8String APICALL GetLocation() const {
+ return CallConstSafeFunctionReturningPointer< IError, pcIUTF8String_base, const IUTF8String >(
+ mRawPtr, &IError::getLocation );
+ }
+
+ pcIUTF8String_base APICALL getLocation( pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getLocation( error );
+ }
+
+ spcIUTF8String APICALL GetParameter( sizet index ) const {
+ return CallConstSafeFunctionReturningPointer< IError, pcIUTF8String_base, const IUTF8String, sizet >(
+ mRawPtr, &IError::getParameter, index );
+ }
+
+ pcIUTF8String_base APICALL getParameter( sizet index, pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getParameter( index, error );
+ }
+
+ sizet APICALL GetParametersCount() const __NOTHROW__ {
+ return mRawPtr->GetParametersCount();
+ }
+
+ spIError APICALL GetNextError() {
+ pcIError_base error( NULL );
+ pIError_base ptr = mRawPtr->getNextError( error );
+ if ( error ) throw MakeShared( error );
+ return MakeShared( ptr );
+ }
+
+ pIError_base APICALL getNextError( pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getNextError( error );
+ }
+
+ spIError APICALL SetNextError( const spIError & nextError ) {
+ pcIError_base error( NULL );
+ pIError_base ptr = mRawPtr->setNextError( nextError ? nextError->GetActualIError() : NULL, error );
+ if ( error ) throw MakeShared( error );
+ return MakeShared( ptr );
+ }
+
+ pIError_base APICALL setNextError( pIError_base nextError, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->setNextError( nextError, error );
+ }
+
+ void APICALL SetMessage( const char * message, sizet len ) __NOTHROW__ {
+ mRawPtr->SetMessage( message, len );
+ }
+
+ void APICALL SetLocation( const char * fileName, sizet lineNumber ) __NOTHROW__ {
+ mRawPtr->SetLocation( fileName, lineNumber );
+ }
+
+ void APICALL AppendParameter( const char * parameter, sizet len ) __NOTHROW__ {
+ mRawPtr->AppendParameter( parameter, len );
+ }
+
+ void APICALL AppendParameter( void * addressParameter ) __NOTHROW__ {
+ return mRawPtr->AppendParameter( addressParameter );
+ }
+
+ void APICALL AppendParameter( const uint32 & integerValue ) __NOTHROW__ {
+ return mRawPtr->AppendParameter( integerValue );
+ }
+
+ void APICALL AppendParameter( const uint64 & integerValue ) __NOTHROW__ {
+ return mRawPtr->AppendParameter( integerValue );
+ }
+
+ void APICALL AppendParameter( const int32 & integerValue ) __NOTHROW__ {
+ return mRawPtr->AppendParameter( integerValue );
+ }
+
+ void APICALL AppendParameter( const int64 & integerValue ) __NOTHROW__ {
+ return mRawPtr->AppendParameter( integerValue );
+ }
+
+ void APICALL AppendParameter( const float & floatValue ) __NOTHROW__ {
+ return mRawPtr->AppendParameter( floatValue );
+ }
+
+ void APICALL AppendParameter( const double & doubleValue ) __NOTHROW__ {
+ return mRawPtr->AppendParameter( doubleValue );
+ }
+
+ void APICALL AppendParameter( bool booleanValue ) __NOTHROW__ {
+ return mRawPtr->AppendParameter( booleanValue );
+ }
+
+ AdobeXMPCommon_Int::pISharedObject_I APICALL GetISharedObject_I() __NOTHROW__ {
+ return mRawPtr->GetISharedObject_I();
+ }
+
+ };
+
+ spIError IError_v1::CreateError( pIObjectFactory objFactory, eErrorDomain errDomain, eErrorCode errCode, eErrorSeverity errSeverity ) {
+ pIError_base temp = CallSafeFunction< IObjectFactory_base, pIError_base, pIError_base, uint32, uint32, uint32 >(
+ objFactory, &IObjectFactory_base::CreateError, static_cast< uint32 >( errDomain ),
+ static_cast< uint32 >( errCode ), static_cast< uint32 >( errSeverity ) );
+ return MakeShared( temp );
+ }
+
+ spIError IError_v1::MakeShared( pIError_base ptr ) {
+ if ( !ptr ) return spIError();
+ pIError p = IError::GetInterfaceVersion() > 1 ? ptr->GetInterfacePointer<IError>() : ptr;
+ return shared_ptr< IError >( new IErrorProxy( p ) );
+ }
+}
+
+#endif // !BUILDING_XMPCOMMON_LIB && !SOURCE_COMPILING_XMP_ALL
diff --git a/public/include/XMPCommon/source/IErrorNotifier.cpp b/public/include/XMPCommon/source/IErrorNotifier.cpp
new file mode 100644
index 0000000..acc8486
--- /dev/null
+++ b/public/include/XMPCommon/source/IErrorNotifier.cpp
@@ -0,0 +1,26 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCommon/Interfaces/IErrorNotifier.h"
+#include "XMPCommon/Interfaces/IError.h"
+
+namespace AdobeXMPCommon {
+ uint32 APICALL IErrorNotifier_v1::notify( pcIError_base error, uint32 & exceptionThrown ) __NOTHROW__ {
+ exceptionThrown = 0;
+ bool retValue( false );
+ try {
+ retValue = Notify( IError::MakeShared( error ) );
+ } catch ( ... ) {
+ exceptionThrown = 1;
+ }
+ return retValue ? 1 : 0;
+ }
+
+}
+
diff --git a/public/include/XMPCommon/source/IUTF8String.cpp b/public/include/XMPCommon/source/IUTF8String.cpp
new file mode 100644
index 0000000..5f24b0e
--- /dev/null
+++ b/public/include/XMPCommon/source/IUTF8String.cpp
@@ -0,0 +1,299 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#define FRIEND_CLASS_DECLARATION() friend class IUTF8StringProxy;
+
+#include "XMPCommon/Interfaces/IUTF8String.h"
+
+#if !BUILDING_XMPCOMMON_LIB && !SOURCE_COMPILING_XMP_ALL
+
+#include "XMPCommon/Utilities/TWrapperFunctions.h"
+#include "XMPCommon/Interfaces/IObjectFactory.h"
+
+#include <assert.h>
+
+namespace AdobeXMPCommon {
+
+ class IUTF8StringProxy
+ : public virtual IUTF8String
+ , public enable_shared_from_this< IUTF8StringProxy >
+ {
+ private:
+ pIUTF8String mRawPtr;
+
+ public:
+ IUTF8StringProxy( pIUTF8String ptr )
+ : mRawPtr( ptr )
+ {
+ mRawPtr->Acquire();
+ }
+
+ ~IUTF8StringProxy() __NOTHROW__ { mRawPtr->Release(); }
+
+ pIUTF8String APICALL GetActualIUTF8String() __NOTHROW__ { return mRawPtr; }
+
+ void APICALL Acquire() const __NOTHROW__ { assert( false ); }
+
+ void APICALL Release() const __NOTHROW__ { assert( false ); }
+
+ spIUTF8String APICALL append( const char * buf, sizet count ) {
+ CallSafeFunction< IUTF8String, pIUTF8String_base, pIUTF8String_base, const char *, sizet >(
+ mRawPtr, &IUTF8String::append, buf, count )->Release();
+ return shared_from_this();
+ }
+
+ spIUTF8String APICALL append( const spcIUTF8String & src, sizet srcPos, sizet count ) {
+ CallSafeFunction< IUTF8String, pIUTF8String_base, pIUTF8String_base, pcIUTF8String_base, sizet, sizet >(
+ mRawPtr, &IUTF8String::append, src ? src->GetActualIUTF8String() : NULL, srcPos, count )->Release();
+ return shared_from_this();
+ }
+
+ pIUTF8String_base APICALL append( const char * buffer, sizet count, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ mRawPtr->append( buffer, count, error );
+ return this;
+ }
+
+ pIUTF8String_base APICALL append( pcIUTF8String_base str, sizet srcPos, sizet count, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ mRawPtr->append( str, srcPos, count, error );
+ return this;
+ }
+
+ spIUTF8String APICALL assign( const char * buf, sizet count ) {
+ CallSafeFunction< IUTF8String, pIUTF8String_base, pIUTF8String_base, const char *, sizet >(
+ mRawPtr, &IUTF8String::assign, buf, count )->Release();
+ return shared_from_this();
+ }
+
+ spIUTF8String APICALL assign( const spcIUTF8String & src, sizet srcPos, sizet count ) {
+ CallSafeFunction< IUTF8String, pIUTF8String_base, pIUTF8String_base, pcIUTF8String_base, sizet, sizet >(
+ mRawPtr, &IUTF8String::assign, src ? src->GetActualIUTF8String() : NULL, srcPos, count )->Release();
+ return shared_from_this();
+ }
+
+ pIUTF8String_base APICALL assign( const char * buffer, sizet count, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ mRawPtr->assign( buffer, count, error );
+ return this;
+ }
+
+ pIUTF8String_base APICALL assign( pcIUTF8String_base str, sizet srcPos, sizet count, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ mRawPtr->assign( str, srcPos, count, error );
+ return this;
+ }
+
+ spIUTF8String APICALL insert( sizet pos, const char * buf, sizet count ) {
+ CallSafeFunction< IUTF8String, pIUTF8String_base, pIUTF8String_base, sizet, const char *, sizet >(
+ mRawPtr, &IUTF8String::insert, pos, buf, count )->Release();
+ return shared_from_this();
+ }
+
+ spIUTF8String APICALL insert( sizet pos, const spcIUTF8String & src, sizet srcPos, sizet count ) {
+ CallSafeFunction< IUTF8String, pIUTF8String_base, pIUTF8String_base, sizet, pcIUTF8String_base, sizet, sizet >(
+ mRawPtr, &IUTF8String::insert, pos, src ? src->GetActualIUTF8String() : NULL, srcPos, count )->Release();
+ return shared_from_this();
+ }
+
+ pIUTF8String_base APICALL insert( sizet pos, const char * buf, sizet count, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ mRawPtr->insert( pos, buf, count, error );
+ return this;
+ }
+
+ pIUTF8String_base APICALL insert( sizet pos, pcIUTF8String_base src, sizet srcPos, sizet count, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ mRawPtr->insert( pos, src, srcPos, count, error );
+ return this;
+ }
+
+ spIUTF8String APICALL erase( sizet pos, sizet count ) {
+ CallSafeFunction< IUTF8String, pIUTF8String_base, pIUTF8String_base, sizet, sizet >(
+ mRawPtr, &IUTF8String::erase, pos, count )->Release();
+ return shared_from_this();
+ }
+
+ pIUTF8String_base APICALL erase( sizet pos, sizet count, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ mRawPtr->erase( pos, count, error );
+ return this;
+ }
+
+ void APICALL resize( sizet n ) {
+ CallSafeFunctionReturningVoid< IUTF8String, sizet >(
+ mRawPtr, &IUTF8String::resize, n );
+ }
+
+ virtual void APICALL resize( sizet n, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ mRawPtr->resize( n, error );
+ }
+
+ spIUTF8String APICALL replace( sizet pos, sizet count, const char * buf, sizet srcCount ) {
+ CallSafeFunction< IUTF8String, pIUTF8String_base, pIUTF8String_base, sizet, sizet, const char *, sizet >(
+ mRawPtr, &IUTF8String::replace, pos, count, buf, srcCount )->Release();
+ return shared_from_this();
+ }
+
+ spIUTF8String APICALL replace( sizet pos, sizet count, const spcIUTF8String & src, sizet srcPos, sizet srcCount ) {
+ CallSafeFunction< IUTF8String, pIUTF8String_base, pIUTF8String_base, sizet, sizet, pcIUTF8String_base, sizet, sizet >(
+ mRawPtr, &IUTF8String::replace, pos, count, src ? src->GetActualIUTF8String() : NULL, srcPos, srcCount )->Release();
+ return shared_from_this();
+ }
+
+ pIUTF8String_base APICALL replace( sizet pos, sizet count, const char * buf, sizet srcCount, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ mRawPtr->replace( pos, count, buf, srcCount, error );
+ return this;
+ }
+
+ pIUTF8String_base APICALL replace( sizet pos, sizet count, pcIUTF8String_base src, sizet srcPos, sizet srcCount, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ mRawPtr->replace( pos, count, src, srcPos, srcCount, error );
+ return this;
+ }
+
+ sizet APICALL copy( char * buf, sizet len, sizet pos ) const {
+ return CallConstSafeFunction< IUTF8String, sizet, sizet, char *, sizet, sizet >(
+ mRawPtr, &IUTF8String::copy, buf, len, pos );
+ }
+
+ sizet APICALL copy( char * buf, sizet len, sizet pos, pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->copy( buf, len, pos, error );
+ }
+
+ sizet APICALL find( const char * buf, sizet pos, sizet count ) const {
+ return CallConstSafeFunction< IUTF8String, sizet, sizet, const char *, sizet, sizet >(
+ mRawPtr, &IUTF8String::find, buf, pos, count );
+ }
+
+ sizet APICALL find( const spcIUTF8String & src, sizet pos, sizet count ) const {
+ return CallConstSafeFunction< IUTF8String, sizet, sizet, pcIUTF8String_base, sizet, sizet >(
+ mRawPtr, &IUTF8String::find, src ? src->GetActualIUTF8String() : NULL, pos, count );
+ }
+
+ sizet APICALL find( const char * buf, sizet pos, sizet count, pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->find( buf, pos, count, error );
+ }
+
+ sizet APICALL find( pcIUTF8String_base src, sizet pos, sizet count, pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->find( src, pos, count, error );
+ }
+
+ sizet APICALL rfind( const char * buf, sizet pos, sizet count ) const {
+ return CallConstSafeFunction< IUTF8String, sizet, sizet, const char *, sizet, sizet >(
+ mRawPtr, &IUTF8String::rfind, buf, pos, count );
+ }
+
+ sizet APICALL rfind( const spcIUTF8String & src, sizet pos, sizet count ) const {
+ return CallConstSafeFunction< IUTF8String, sizet, sizet, pcIUTF8String_base, sizet, sizet >(
+ mRawPtr, &IUTF8String::rfind, src ? src->GetActualIUTF8String() : NULL, pos, count );
+ }
+
+ sizet APICALL rfind( const char * buf, sizet pos, sizet count, pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->rfind( buf, pos, count, error );
+ }
+
+ sizet APICALL rfind( pcIUTF8String_base src, sizet pos, sizet count, pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->rfind( src, pos, count, error );
+ }
+
+ int32 APICALL compare( sizet pos, sizet len, const char * buf, sizet count ) const {
+ return CallConstSafeFunction< IUTF8String, int32, int32, sizet, sizet, const char *, sizet >(
+ mRawPtr, &IUTF8String::compare, pos, len, buf, count );
+ }
+
+ int32 APICALL compare( sizet pos, sizet len, const spcIUTF8String & str, sizet strPos, sizet strLen ) const {
+ return CallConstSafeFunction< IUTF8String, int32, int32, sizet, sizet, pcIUTF8String_base, sizet, sizet >(
+ mRawPtr, &IUTF8String::compare, pos, len, str ? str->GetActualIUTF8String() : NULL, strPos, strLen );
+ }
+
+ int32 APICALL compare( sizet pos, sizet len, const char * buf, sizet count, pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->compare( pos, len, buf, count, error );
+ }
+
+ int32 APICALL compare( sizet pos, sizet len, pcIUTF8String_base str, sizet strPos, sizet strLen, pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->compare( pos, len, str, strPos, strLen, error );
+ }
+
+ spIUTF8String APICALL substr( sizet pos, sizet count ) const {
+ return CallConstSafeFunctionReturningPointer< IUTF8String, pIUTF8String_base, IUTF8String, sizet, sizet >(
+ mRawPtr, &IUTF8String::substr, pos, count );
+ }
+
+ pIUTF8String_base APICALL substr( sizet pos, sizet count, pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->substr( pos, count, error );
+ }
+
+ bool APICALL empty() const {
+ return CallConstSafeFunction< IUTF8String, bool, uint32 >(
+ mRawPtr, &IUTF8String::empty );
+ }
+
+ uint32 APICALL empty( pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->empty();
+ }
+
+ const char * APICALL c_str() const __NOTHROW__ {
+ return mRawPtr->c_str();
+ }
+
+ void APICALL clear() __NOTHROW__ {
+ mRawPtr->clear();
+ }
+
+ sizet APICALL size() const __NOTHROW__ {
+ return mRawPtr->size();
+ }
+
+ AdobeXMPCommon_Int::pISharedObject_I APICALL GetISharedObject_I() __NOTHROW__ {
+ return mRawPtr->GetISharedObject_I();
+ }
+
+ pvoid APICALL GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion ) {
+ return CallSafeFunction< IVersionable, pvoid, pvoid, uint64, uint32 >(
+ mRawPtr, &IVersionable::getInterfacePointer, interfaceID, interfaceVersion );
+ }
+
+ pvoid APICALL getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getInterfacePointer( interfaceID, interfaceVersion, error );
+ }
+
+ };
+
+ spIUTF8String IUTF8String_v1::MakeShared( pIUTF8String_base ptr ) {
+ if ( !ptr ) return spIUTF8String();
+ pIUTF8String p = IUTF8String::GetInterfaceVersion() > 1 ? ptr->GetInterfacePointer< IUTF8String >() : ptr;
+ return shared_ptr< IUTF8StringProxy >( new IUTF8StringProxy( p ) );
+ }
+
+ spIUTF8String IUTF8String_v1::CreateUTF8String( pIObjectFactory objFactory ) {
+ return CallSafeFunctionReturningPointer< IObjectFactory, pIUTF8String_base, IUTF8String, const char *, sizet >(
+ objFactory, &IObjectFactory::CreateUTF8String, NULL, ( sizet ) 0 );
+ }
+
+ spIUTF8String IUTF8String_v1::CreateUTF8String( pIObjectFactory objFactory, const char * buf, sizet count ) {
+ return CallSafeFunctionReturningPointer< IObjectFactory, pIUTF8String_base, IUTF8String, const char *, sizet >(
+ objFactory, &IObjectFactory::CreateUTF8String, buf, count );
+ }
+
+}
+
+#endif // BUILDING_XMPCOMMON_LIB && !SOURCE_COMPILING_XMP_ALL
diff --git a/public/include/XMPCore/Interfaces/IArrayNode.h b/public/include/XMPCore/Interfaces/IArrayNode.h
new file mode 100644
index 0000000..dd18976
--- /dev/null
+++ b/public/include/XMPCore/Interfaces/IArrayNode.h
@@ -0,0 +1,303 @@
+#ifndef __IArrayNode_h__
+#define __IArrayNode_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+
+#include "XMPCore/Interfaces/ICompositeNode.h"
+
+namespace AdobeXMPCore {
+
+ //!
+ //! \brief Version1 of the interface that represents an Array Node of XMP DOM.
+ //! \details Provides all the functions to get and set various properties of the array node.
+ //! \attention Support multi threading through locks but can be enabled/disabled by the client. By default
+ //! every object created does not support multi-threading.
+ //! \note The index of the array is 1-based.
+ //!
+ class XMP_PUBLIC IArrayNode_v1
+ : public virtual ICompositeNode_v1
+ {
+ public:
+
+ //!
+ //! @brief Indicates different kinds of array forms possible in XMP i.e, unordered, ordered and alternative.
+ //!
+ typedef enum {
+ //! unknown array form, should be used as invalid value.
+ kAFNone = 0,
+
+ //! Array contains entries which are unordered.
+ kAFUnordered = 1 << 0,
+
+ //! Array contains entries which are ordered.
+ kAFOrdered = 1 << 1,
+
+ //! Array contains entries which are ordered plus default value should be the top one.
+ kAFAlternative = 1 << 2,
+
+ //! Maximum value this enum can hold, should be treated as invalid value
+ kAFAll = kAllBits
+ } eArrayForm;
+
+ //!
+ //! @brief Get the type of array.
+ //! \return a value of type #eArrayForm indicating the type of array.
+ //!
+ virtual eArrayForm APICALL GetArrayForm() const = 0;
+
+ //!
+ //! @brief Get the type of child nodes.
+ //! \return a value of type #eNodeType indicating the type of child nodes array can hold.
+ //! \note An empty array will return \#INode_v1::kNTAll indicating that right now it can hold any type of node.
+ //!
+ virtual eNodeType APICALL GetChildNodeType() const = 0;
+
+ //!
+ //! @{
+ //! @brief Get the node at the specified index.
+ //! \param[in] index an object of type \#sizet indicating the index of the node client who is interested in.
+ //! \return A shared pointer to const or non const \#INode object containing node.
+ //! \note In case no node exists at the given index an invalid shared pointer is returned.
+ //! \note The index of an array is 1-based.
+ //!
+ virtual spINode APICALL GetNodeAtIndex( sizet index ) = 0;
+ XMP_PRIVATE spcINode GetNodeAtIndex( sizet index ) const {
+ return const_cast< IArrayNode_v1 * >( this )->GetNodeAtIndex( index );
+ }
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Get the node at the specified index as simple node, if possible.
+ //! \param[in] index An object of type \#sizet indicating the index of the node client is interested in.
+ //! \return A shared pointer to const or non const \#ISimpleNode object containing node.
+ //! \note In case no node exists at the given index an invalid shared pointer is returned.
+ //! \note The index of an array is 1-based.
+ //! \attention Error is thrown in case
+ //! - a child exists at the given index but is not a simple node.
+ //!
+ XMP_PRIVATE spcISimpleNode GetSimpleNodeAtIndex( sizet index ) const {
+ auto node = GetNodeAtIndex( index );
+ if ( node ) return node->ConvertToSimpleNode();
+ return spcISimpleNode();
+ }
+
+ XMP_PRIVATE spISimpleNode GetSimpleNodeAtIndex( sizet index ) {
+ auto node = GetNodeAtIndex( index );
+ if ( node ) return node->ConvertToSimpleNode();
+ return spISimpleNode();
+ }
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Get the node at the specified index as structure node, if possible.
+ //! \param[in] index An object of type \#sizet indicating the index of the node client is interested in.
+ //! \return A shared pointer to const or non const \#IStructureNode object containing node.
+ //! \note In case no node exists at the given index an invalid shared pointer is returned.
+ //! \note The index of an array is 1-based.
+ //! \attention Error is thrown in case
+ //! - a child exists at the given index but is not a structure node.
+ //!
+ XMP_PRIVATE spcIStructureNode GetStructureNodeAtIndex( sizet index ) const {
+ auto node = GetNodeAtIndex( index );
+ if ( node ) return node->ConvertToStructureNode();
+ return spcIStructureNode();
+ }
+
+ XMP_PRIVATE spIStructureNode GetStructureNodeAtIndex( sizet index ) {
+ auto node = GetNodeAtIndex( index );
+ if ( node ) return node->ConvertToStructureNode();
+ return spIStructureNode();
+ }
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Get the node at the specified index as an array node, if possible.
+ //! \param[in] index an object of type \#sizet indicating the index of the node client is interested in.
+ //! \return a shared pointer to const or non const \#IArrayNode object containing node.
+ //! \note In case no node exists at the given index an invalid shared pointer is returned.
+ //! \note The index of an array is 1-based.
+ //! \attention Error is thrown in case
+ //! - a child exists at the given index but is not an array node.
+ //!
+ XMP_PRIVATE spcIArrayNode GetArrayNodeAtIndex( sizet index ) const {
+ auto node = GetNodeAtIndex( index );
+ if ( node ) return node->ConvertToArrayNode();
+ return spcIArrayNode();
+ }
+
+ XMP_PRIVATE spIArrayNode GetArrayNodeAtIndex( sizet index ) {
+ auto node = GetNodeAtIndex( index );
+ if ( node ) return node->ConvertToArrayNode();
+ return spIArrayNode();
+ }
+ //! @}
+
+ //!
+ //! @brief Inserts a given node at the specified index.
+ //! \param[in] node Shared pointer to an object of \#INode containing the node to be inserted at the specified index.
+ //! \param[in] index An object of type sizet indicating the index where the node should
+ //! be inserted.
+ //! \note The index of an array is 1-based.
+ //! \attention Error is thrown in following cases:
+ //! -# given node is invalid.
+ //! -# type of given node is not same as other child items of the array node.
+ //! -# given node is already a child of some other node.
+ //! -# given index is less than 1 or greater than current child count + 1.
+ //!
+ virtual void APICALL InsertNodeAtIndex( const spINode & node, sizet index ) = 0;
+
+ //!
+ //! @brief Replaces an existing node with the given node at the specified index.
+ //! \param[in] node Shared pointer to an object of \#INode containing the node to be inserted at the specified index.
+ //! \param[in] index An object of type \#sizet indicating the index from where the node should be replaced.
+ //! \return A shared pointer to the node replaced with the new node.
+ //! \note The index of an array is 1-based.
+ //! \attention Error is thrown in following cases:
+ //! -# Given node is invalid.
+ //! -# Type of given node is not same as other child items of the array node.
+ //! -# Given node is already a child of some other node.
+ //! -# Given index is less than 1 or greater than current child count.
+ //! -# No node exists at the requested index.
+ //!
+ virtual spINode APICALL ReplaceNodeAtIndex( const spINode & node, sizet index ) = 0;
+
+ //!
+ //! @brief Remove the node at the specified index.
+ //! \param[in] index An object of type \#sizet indicating the index from where the node should be removed.
+ //! \note The index of an array is 1-based.
+ //! \return A shared pointer to \#INode object containing node which is removed from the tree.
+ //! \note In case no node exists at the given index an invalid shared pointer is returned.
+ //!
+ virtual spINode APICALL RemoveNodeAtIndex( sizet index ) = 0;
+
+ //!
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+
+ //!
+ //! @{
+ //! @brief Returns the actual raw pointer from the shared pointer, which can be a shared pointer of a proxy class.
+ //! \return Either a const or non const pointer to IArrayNode interface.
+ //!
+ virtual pIArrayNode APICALL GetActualIArrayNode() __NOTHROW__ = 0;
+ XMP_PRIVATE pcIArrayNode GetActualIArrayNode() const __NOTHROW__ {
+ return const_cast< IArrayNode_v1 * >( this )->GetActualIArrayNode();
+ }
+ //!
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Return the pointer to internal interfaces.
+ //! \return either a const or non const pointer to IArrayNode_I interface.
+ //!
+ virtual AdobeXMPCore_Int::pIArrayNode_I APICALL GetIArrayNode_I() __NOTHROW__ = 0;
+
+ XMP_PRIVATE AdobeXMPCore_Int::pcIArrayNode_I GetIArrayNode_I() const __NOTHROW__ {
+ return const_cast< IArrayNode_v1 * >( this )->GetIArrayNode_I();
+ }
+ //!
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Converts raw pointer to shared pointer.
+ //! @details The raw pointer is of version 1 interface
+ //! where as the returned shared pointer depends on the version client is interested in.
+ //! \return Shared pointer to const or non constant interface.
+ //!
+ XMP_PRIVATE static spIArrayNode MakeShared( pIArrayNode_base ptr );
+ XMP_PRIVATE static spcIArrayNode MakeShared( pcIArrayNode_base ptr ) {
+ return MakeShared( const_cast< pIArrayNode_base >( ptr ) );
+ }
+ //!
+ //! @}
+
+ //!
+ //! return The unique ID assigned to the interface.
+ //! \return 64 bit unsigned integer representing the unique ID assigned to the interface.
+ //!
+ XMP_PRIVATE static uint64 GetInterfaceID() { return kIArrayNodeID; }
+
+ //!
+ //! @brief Returns the version of the interface.
+ //! \return 32 bit unsigned integer representing the version of the interface.
+ //!
+ XMP_PRIVATE static uint32 GetInterfaceVersion() { return 1; }
+ //! \endcond
+
+ // Factories to create the array node
+
+ //!
+ //! @brief Creates an unordered array node which is not part of any metadata document.
+ //! \param[in] nameSpace Pointer to a constant char buffer containing name space URI of the array node.
+ //! \param[in] nameSpaceLength Number of characters in nameSpace. In case nameSpace is null terminated, set it to \#AdobeXMPCommon::npos.
+ //! \param[in] name Pointer to a constant char buffer containing local name of the array node.
+ //! \param[in] nameLength Number of characters in name. In case name is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \return A shared pointer to a \#IArrayNode object.
+ //! \attention Error is thrown in the following cases:
+ //! -# nameSpace is NULL or its contents are empty.
+ //! -# name is NULL or its contents are empty.
+ //!
+ XMP_PRIVATE static spIArrayNode CreateUnorderedArrayNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength );
+
+ //!
+ //! @brief Creates an ordered array node which is not part of any metadata document.
+ //! \param[in] nameSpace Pointer to a constant char buffer containing name space URI of the array node.
+ //! \param[in] nameSpaceLength Number of characters in nameSpace. In case nameSpace is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \param[in] name Pointer to a constant char buffer containing local name of the array node.
+ //! \param[in] nameLength Number of characters in name. In case name is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \return A shared pointer to a \#IArrayNode object.
+ //! \attention Error is thrown in the following cases:
+ //! -# nameSpace is NULL or its contents are empty.
+ //! -# name is NULL or its contents are empty.
+ //!
+ XMP_PRIVATE static spIArrayNode CreateOrderedArrayNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength );
+
+ //!
+ //! @brief Creates an alternative array node which is not part of any metadata document.
+ //! \param[in] nameSpace Pointer to a constant char buffer containing name space URI of the array node.
+ //! \param[in] nameSpaceLength Number of characters in nameSpace. In case nameSpace is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \param[in] name Pointer to a constant char buffer containing local name of the array node.
+ //! \param[in] nameLength Number of characters in name. In case name is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \return A shared pointer to a \#IArrayNode object.
+ //! \attention Error is thrown in the following cases:
+ //! -# nameSpace is NULL or its contents are empty.
+ //! -# name is NULL or its contents are empty.
+ //!
+ XMP_PRIVATE static spIArrayNode CreateAlternativeArrayNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength );
+
+ protected:
+ //!
+ //! Destructor
+ //!
+ virtual ~IArrayNode_v1() __NOTHROW__ {}
+
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+ virtual uint32 APICALL getArrayForm( pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual uint32 APICALL getChildNodeType( pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual pINode_base APICALL getNodeAtIndex( sizet index, pcIError_base & error ) __NOTHROW__ = 0;
+ virtual void APICALL insertNodeAtIndex( pINode_base node, sizet index, pcIError_base & error ) __NOTHROW__ = 0;
+ virtual pINode_base APICALL replaceNodeAtIndex( pINode_base node, sizet index, pcIError_base & error ) __NOTHROW__ = 0;
+ virtual pINode_base APICALL removeNodeAtIndex( sizet index, pcIError_base & error ) __NOTHROW__ = 0;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ //! \endcond
+
+ };
+}
+
+#endif // __IArrayNode_h__
diff --git a/public/include/XMPCore/Interfaces/IClientDOMParser.h b/public/include/XMPCore/Interfaces/IClientDOMParser.h
new file mode 100644
index 0000000..ff27e00
--- /dev/null
+++ b/public/include/XMPCore/Interfaces/IClientDOMParser.h
@@ -0,0 +1,88 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCore/XMPCoreFwdDeclarations.h"
+#include "XMPCommon/Interfaces/IError.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/IConfigurable.h"
+#include "XMPCore/XMPCoreErrorCodes.h"
+
+namespace AdobeXMPCore {
+
+ //!
+ //! @brief Version 1 of the interface that supports parsing by the client supplied parser of the XMP Data Model.
+ //! @details Provides functions to parse the XMP Data Model.
+ //! Thread safety is controllable by the client.
+ //!
+ class XMP_PUBLIC IClientDOMParser_v1
+ {
+ public:
+
+ //!
+ //! @brief Parse the contents present in the buffer taking into account the configuration parameters.
+ //! \param[in] buffer Pointer to a constant char buffer containing serialized XMP Data Model.
+ //! \param[in] bufferLength Number of characters in buffer. In case name is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \param[in] configurationParameters An object of type \#AdobeXMPCommon::IConfigurable containing all the configuration parameters requested by client
+ //! to be taken care of while parsing.
+ //! \param[in] proc A function pointer to be used by the parse operation to report back any encountered errors/warnings.
+ //! \return A shared pointer to \#INode object containing all the parsed XMP Data Model.
+ //!
+ virtual spINode APICALL Parse( const char * buffer, sizet bufferLength, pcIConfigurable configurationParameters, ReportErrorAndContinueFunctor proc ) = 0;
+
+ //!
+ //! @brief Indicates whether object supports case sensitive keys or not.
+ //! \return True in case object supports case sensitive keys, false otherwise.
+ //! \note Default implementation makes keys case insensitive.
+ //!
+ virtual bool APICALL AreKeysCaseSensitive() const { return false; }
+
+ //!
+ //! @brief Initialize the default configuration parameters.
+ //! @details The object needs to fill the default configuration parameters supported by it.
+ //! \param[in] configurationParameters an empty object of type \#AdobeXMPCommon::IConfigurable.
+ //! \note default implementation does not fill anything in the configuration parameters.
+ //!
+ virtual void APICALL Initialize( pIConfigurable configurationParameters ) {};
+
+ //!
+ //! @brief Validate the data type and value for a parameter.
+ //! \param[in] key An unsigned 64 bit integer value indicating the key.
+ //! \param[in] dataType A value of type \#AdobeXMPCommon::IConfigurable::eDataType indicating the type of value the parameter holds.
+ //! \param[in] dataValue A value of \#AdobeXMPCommon::IConfigurable::CombinedDataValue indicating the value the parameter holds.
+ //! \return An error code in case there is something wrong with the combination, otherwise returns \ p0-\#AdobeXMPCommon::eCECNone.
+ //! \note Default implementation validates all the keys + dataTypes + dataValue combinations.
+ //!
+ virtual eConfigurableErrorCode APICALL Validate( const uint64 & key, IConfigurable::eDataType dataType, const IConfigurable::CombinedDataValue & dataValue ) {
+ return kCECNone;
+ }
+
+ //!
+ //! @brief Called by the library when the object is no longer required by it and client can free up the resources or memory associated with the object.
+ //!
+ virtual void APICALL Release() const __NOTHROW__ = 0;
+
+ protected:
+ //!
+ //! Destructor
+ //!
+ virtual ~IClientDOMParser_v1() {}
+
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+ virtual pINode_base APICALL parse( const char * buffer, sizet bufferLength, pcIConfigurable configurationParameters, ReportErrorAndContinueABISafeProc proc, pcIError_base & error, uint32 & unknownExceptionCaught ) __NOTHROW__;
+ virtual uint32 APICALL areKeysCaseSensitive( pcIError_base & error, uint32 & unknownExceptionCaught ) const __NOTHROW__;
+ virtual void APICALL initialize( pIConfigurable configurationParameters, pcIError_base & error, uint32 & unknownExceptionCaught ) __NOTHROW__;
+ virtual uint32 APICALL validate( const uint64 & key, uint32 dataType, const IConfigurable::CombinedDataValue & dataValue, pcIError_base & error, uint32 & unknownExceptionCaught ) __NOTHROW__;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ //! \endcond
+
+ };
+}
diff --git a/public/include/XMPCore/Interfaces/IClientDOMSerializer.h b/public/include/XMPCore/Interfaces/IClientDOMSerializer.h
new file mode 100644
index 0000000..06558cd
--- /dev/null
+++ b/public/include/XMPCore/Interfaces/IClientDOMSerializer.h
@@ -0,0 +1,94 @@
+#ifndef IClientDOMSerializer_h__
+#define IClientDOMSerializer_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCore/XMPCoreFwdDeclarations.h"
+#include "XMPCommon/Interfaces/IError.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/IConfigurable.h"
+#include "XMPCommon/XMPCommonErrorCodes.h"
+
+namespace AdobeXMPCore {
+
+ //!
+ //! @brief Version 1 of the interface that supports serializing by the client supplied serializer of the XMP Data Model.
+ //! @details Provides functions to serialize the XMP Data Model.
+ //! Thread safety is controllable by the client.
+ //!
+ class XMP_PUBLIC IClientDOMSerializer_v1
+ {
+ public:
+
+ //!
+ //! @brief Serialize the XMP Data Model taking into account the configuration parameters.
+ //! \param[in] node The node to be serialized.
+ //! \param[in] nameSpacePrefixMap An object of type \#INameSpacePrefixMap which contains preferred prefixes for namespaces.
+ //! \param[in] configurationParameters An object of type #AdobeXMPCommon::IConfigurable containing all the configuration parameters requested by client
+ //! to be taken care of while serializing.
+ //! \param[in] functor A function object to be used by the serializing operation to report back any encountered errors/warnings.
+ //! \param[out] string A shared pointer to an IUTF8String object which should be filled with the serialized form of XMP Data Model.
+ //!
+ virtual void APICALL Serialize( const spINode & node, const spcINameSpacePrefixMap & nameSpacePrefixMap, pcIConfigurable configurationParameters,
+ ReportErrorAndContinueFunctor functor, const spIUTF8String & string ) = 0;
+
+ //!
+ //! @brief Indicates whether object supports case sensitive keys or not.
+ //! \return True in case object supports case sensitive keys, false otherwise.
+ //! \note Default implementation makes keys case insensitive.
+ //!
+ virtual bool APICALL AreKeysCaseSensitive() const { return false; }
+
+ //!
+ //! @brief Initializes the default configuration parameters.
+ //! The object needs to fill the default configuration parameters supported by it.
+ //! \param[in] configurationParameters An empty object of type #AdobeXMPCommon::IConfigurable.
+ //! \note Default implementation does not fill anything in the configuration parameters.
+ //!
+ virtual void APICALL Initialize( pIConfigurable configurationParameters ) {};
+
+ //!
+ //! @brief Validate the data type and value for a parameter.
+ //! \param[in] key An unsigned 64 bit integer value indicating the key.
+ //! \param[in] dataType A value of type #AdobeXMPCommon::IConfigurable::eDataType indicating the type of value the parameter holds.
+ //! \param[in] dataValue A value of \#AdobeXMPCommon::IConfigurable::CombinedDataValue indicating the value the parameter holds.
+ //! \return An error code in case there is something wrong with the combination, otherwise returns \#AdobeXMPCommon::eCECNone.
+ //! \note Default implementation validates all the keys + dataTypes + dataValue combinations.
+ //!
+ virtual eConfigurableErrorCode APICALL Validate( const uint64 & key, IConfigurable::eDataType dataType, const IConfigurable::CombinedDataValue & dataValue ) {
+ return kCECNone;
+ }
+
+ //!
+ //! @brief Called by the library when the object is no longer required by it and client can free up the resources or memory associated with the object.
+ //!
+ virtual void APICALL Release() const __NOTHROW__ = 0;
+
+ protected:
+ //!
+ //! Destructor
+ //!
+ virtual ~IClientDOMSerializer_v1() {}
+
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+ virtual void APICALL serialize( pINode_base node, pcINameSpacePrefixMap_base nameSpacePrefixMap, pcIConfigurable configurationParameters, ReportErrorAndContinueABISafeProc proc, pIUTF8String_base string, pcIError_base & error, uint32 & unknownExceptionCaught ) __NOTHROW__;
+ virtual uint32 APICALL areKeysCaseSensitive( pcIError_base & error, uint32 & unknownExceptionCaught ) const __NOTHROW__;
+ virtual void APICALL initialize( pIConfigurable configurationParameters, pcIError_base & error, uint32 & unknownExceptionCaught ) __NOTHROW__;
+ virtual uint32 APICALL validate( const uint64 & key, uint32 dataType, const IConfigurable::CombinedDataValue & dataValue, pcIError_base & error, uint32 & unknownExceptionCaught ) __NOTHROW__;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ //! \endcond
+
+ };
+}
+
+#endif // IClientDOMSerializer_h__
diff --git a/public/include/XMPCore/Interfaces/ICompositeNode.h b/public/include/XMPCore/Interfaces/ICompositeNode.h
new file mode 100644
index 0000000..4754ed5
--- /dev/null
+++ b/public/include/XMPCore/Interfaces/ICompositeNode.h
@@ -0,0 +1,331 @@
+#ifndef __ICompositeNode_h__
+#define __ICompositeNode_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCore/Interfaces/INode.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/IVersionable.h"
+
+namespace AdobeXMPCore {
+
+ //!
+ //! \brief Version1 of the interface that serves as a base interface to all composite types of nodes
+ //! in the XMP DOM ( like Arrays and Structures ).
+ //! \details Provides all the functions to get various properties of the composite node.
+ //! \attention Support multi threading through locks but can be enabled/disabled by the client. By default
+ //! every object created does not support multi-threading.
+ //!
+ class XMP_PUBLIC ICompositeNode_v1
+ : public virtual INode_v1
+ {
+ public:
+
+ //!
+ //! @brief Get the node type specified by the path relative to the composite node.
+ //! \param[in] path Shared pointer to a const \#AdobeXMPCore::IPath object containing the relative path
+ //! from the node to the node client is interested in.
+ //! \return The type of the node.
+ //! \note In case no node exists at the given path a value \#eNodeType::kNTNone is returned.
+ //!
+ virtual eNodeType APICALL GetNodeTypeAtPath( const spcIPath & path ) const = 0;
+
+ //!
+ //! @{
+ //! @brief Get the node specified by the path relative to the composite node.
+ //! \param[in] path Shared pointer to a const \#AdobeXMPCore::IPath object containing the relative path
+ //! from the node to the node client is interested in.
+ //! \return A shared pointer to either a const or non const \#AdobeXMPCore::INode object containing node.
+ //! \note In case no node exists at the given path an invalid shared pointer is returned.
+ //!
+ XMP_PRIVATE spcINode GetNodeAtPath( const spcIPath & path ) const {
+ return const_cast< ICompositeNode_v1 * >( this )->GetNodeAtPath( path );
+ }
+ virtual spINode APICALL GetNodeAtPath( const spcIPath & path ) = 0;
+ //! @}
+
+ //!
+ //! @brief Appends a given node as the child of the node.
+ //! @details In case of array node it is appended at the last
+ //! and in case of structure node qualified name of the node to be inserted determines its position.
+ //! \param[in] node Shared pointer to an object of \#AdobeXMPCore::INode containing the node to be
+ //! appended as the last child.
+ //! \note This operation is not currently implemented for the ICompositeNode interface.
+ //! \attention Error is thrown in following cases:
+ //! -# provided node is invalid.
+ //! -# type of given node is not same as other child items of the array node.
+ //! -# given node is already a child of some other node.
+ //! -# composite node already has a child node with the same qualified name in case of structure node.
+ //!
+ virtual void APICALL AppendNode( const spINode & node ) = 0;
+
+ //!
+ //! @brief Inserts a given node at the path relative to the composite node.
+ //! \param[in] node Shared pointer to an object of \#AdobeXMPCore::INode containing the node to be
+ //! inserted at the specified relative path.
+ //! \param[in] path Shared pointer to a const \#AdobeXMPCore::IPath object containing the relative path.
+ //! \note All the hierarchy of nodes is created if not present.
+ //! \note This operation is not currently implemented for the ICompositeNode interface.
+ //! \attention Error is thrown in following cases:
+ //! -# given node is invalid.
+ //! -# type of given node is not same as other child items of the array node.
+ //! -# given node is already a child of some other node.
+ //! -# given path is invalid or logically incorrect.
+ //! -# type of given node is not suitable for the destination location.
+ //! -# a node already exists at the specified path.
+ //!
+ virtual void APICALL InsertNodeAtPath( const spINode & node, const spcIPath & path ) = 0;
+
+ //!
+ //! @brief Replaces an existing node with the given node at the path relative to the composite node..
+ //! \param[in] node Shared pointer to an object of \#AdobeXMPCore::INode.
+ //! \param[in] path Shared pointer to a const \#AdobeXMPCore::IPath object containing the relative path.
+ //! \return a Shared pointer to the node being replaced.
+ //! \note This operation is not currently implemented for the ICompositeNode interface.
+ //! \attention Error is thrown in following cases:
+ //! -# given node is invalid.
+ //! -# type of given node is not same as other child items of the array node.
+ //! -# given node is already a child of some other node.
+ //! -# given index is less than 1 or greater than current child count.
+ //! -# type of given node is not suitable for the destination location.
+ //! -# no node exists at the specified path.
+ //!
+ virtual spINode APICALL ReplaceNodeAtPath( const spINode & node, const spcIPath & path ) = 0;
+
+ //!
+ //! @brief Removes the node specified by the path relative to the composite node.
+ //! \param[in] path Shared pointer to a const \#AdobeXMPCore::IPath object containing the relative path
+ //! from the node to the node client is interested in.
+ //! \return A shared pointer to \#AdobeXMPCore::INode object containing node which is removed from the tree.
+ //! \note In case no node exists at the given path an invalid shared pointer is returned.
+ //!
+ virtual spINode APICALL RemoveNodeAtPath( const spcIPath & path ) = 0;
+
+ //!
+ //! @{
+ //! @brief Get an iterator object to iterate over all the child nodes of the composite node.
+ //! \return a shared pointer to a const or non const \#INodeIterator object.
+ //!
+ virtual spINodeIterator APICALL Iterator() = 0;
+ XMP_PRIVATE spcINodeIterator Iterator() const {
+ return const_cast< ICompositeNode_v1 * >( this )->Iterator();
+ }
+ // @}
+
+ //!
+ //! @brief Get the count of child nodes of the composite node.
+ //! \return an object of type \#AdobeXMPCommon::sizet containing the count of children of the node.
+ //!
+ virtual sizet APICALL ChildCount() const __NOTHROW__ = 0;
+
+ // Wrapper non virtual functions
+
+ //!
+ //! @{
+ //! @brief Get a simple node specified by the path relative to the node.
+ //! \param[in] path Shared pointer to a const \#AdobeXMPCore::IPath object containing the relative path
+ //! from the node to the node client is interested in.
+ //! \return A shared pointer to const or non const \#ISimpleNode object containing node.
+ //! \note In case no node exists at the given path an invalid shared pointer is returned.
+ //! \attention Error is thrown in case
+ //! - a node exists at the given path but is not a simple node.
+ //!
+ XMP_PRIVATE spcISimpleNode GetSimpleNodeAtPath( const spcIPath & path ) const {
+ auto node = GetNodeAtPath( path );
+ if ( node ) return node->ConvertToSimpleNode();
+ return spcISimpleNode();
+ }
+
+ XMP_PRIVATE spISimpleNode GetSimpleNodeAtPath( const spcIPath & path ) {
+ auto node = GetNodeAtPath( path );
+ if ( node ) return node->ConvertToSimpleNode();
+ return spISimpleNode();
+ }
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Get a structure node specified by the path relative to the node.
+ //! \param[in] path Shared pointer to a const \#AdobeXMPCore::IPath object containing the relative path
+ //! from the node to the node client is interested in.
+ //! \return A shared pointer to const or non const \#IStructureNode object containing node.
+ //! \note In case no node exists at the given path an invalid shared pointer is returned.
+ //! \attention Error is thrown in case
+ //! - a node exists at the given path but is not a structure node.
+ //!
+ XMP_PRIVATE spcIStructureNode GetStructureNodeAtPath( const spcIPath & path ) const {
+ auto node = GetNodeAtPath( path );
+ if ( node ) return node->ConvertToStructureNode();
+ return spcIStructureNode();
+ }
+
+ XMP_PRIVATE spIStructureNode GetStructureNodeAtPath( const spcIPath & path ) {
+ auto node = GetNodeAtPath( path );
+ if ( node ) return node->ConvertToStructureNode();
+ return spIStructureNode();
+ }
+ // !@}
+
+ //!
+ //! @{
+ //! @brief Get an array node specified by the path relative to the node.
+ //! \param[in] path Shared pointer to a const \#AdobeXMPCore::IPath object containing the relative path
+ //! from the node to the node client is interested in.
+ //! \return A shared pointer to const or non const \#IArrayNode object containing node.
+ //! \note In case no node exists at the given path an invalid shared pointer is returned.
+ //! \attention Error is thrown in case
+ //! - a node exists at the given path but is not an array node.
+ //!
+ XMP_PRIVATE spcIArrayNode GetArrayNodeAtPath( const spcIPath & path ) const {
+ auto node = GetNodeAtPath( path );
+ if ( node ) return node->ConvertToArrayNode();
+ return spcIArrayNode();
+ }
+
+ XMP_PRIVATE spIArrayNode GetArrayNodeAtPath( const spcIPath & path ) {
+ auto node = GetNodeAtPath( path );
+ if ( node ) return node->ConvertToArrayNode();
+ return spIArrayNode();
+ }
+ // !@}
+
+ //!
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+
+ //!
+ //! @{
+ //! @brief Returns the actual raw pointer from the shared pointer, which can be a shared pointer of a proxy class.
+ //! \return Either a const or non const pointer to ICompositeNode interface.
+ //!
+ virtual pICompositeNode APICALL GetActualICompositeNode() __NOTHROW__ = 0;
+ XMP_PRIVATE pcICompositeNode GetActualICompositeNode() const __NOTHROW__ {
+ return const_cast< ICompositeNode_v1 * >( this )->GetActualICompositeNode();
+ }
+ //!
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Returns the pointer to internal interfaces.
+ //! \return Either a const or non const pointer to ICompositeNode_I interface.
+ //!
+ virtual AdobeXMPCore_Int::pICompositeNode_I APICALL GetICompositeNode_I() __NOTHROW__ = 0;
+
+ XMP_PRIVATE AdobeXMPCore_Int::pcICompositeNode_I GetICompositeNode_I() const __NOTHROW__ {
+ return const_cast< ICompositeNode_v1 * >( this )->GetICompositeNode_I();
+ }
+ //!
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Converts raw pointer to shared pointer.
+ //! @details The raw pointer is of version 1 interface
+ //! where as the returned shared pointer depends on the version client is interested in.
+ //! \return Shared pointer to const or non constant interface.
+ //!
+ XMP_PRIVATE static spICompositeNode MakeShared( pICompositeNode_base ptr );
+ XMP_PRIVATE static spcICompositeNode MakeShared( pcICompositeNode_base ptr ) {
+ return const_cast< ICompositeNode_v1 * >( ptr )->MakeShared( ptr );
+ }
+ //!
+ //! @}
+
+ //!
+ //! @brief Returns the unique ID assigned to the interface.
+ //! \return 64 bit unsigned integer representing the unique ID assigned to the interface.
+ //!
+ XMP_PRIVATE static uint64 GetInterfaceID() { return kICompositeNodeID; }
+
+ //!
+ //! @brief Returns the version of the interface.
+ //! \return 32 bit unsigned integer representing the version of the interface.
+ //!
+ XMP_PRIVATE static uint32 GetInterfaceVersion() { return 1; }
+ //! \endcond
+
+ protected:
+ //!
+ //! Destructor
+ //!
+ virtual ~ICompositeNode_v1() __NOTHROW__ {}
+
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+ virtual uint32 APICALL getNodeTypeAtPath( pcIPath_base path, pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual pINode_base APICALL getNodeAtPath( pcIPath_base path, pcIError_base & error ) __NOTHROW__ = 0;
+ virtual void APICALL appendNode( pINode_base node, pcIError_base & error ) __NOTHROW__ = 0;
+ virtual void APICALL insertNodeAtPath( pINode_base node, pcIPath_base path, pcIError_base & error ) __NOTHROW__ = 0;
+ virtual pINode_base APICALL replaceNodeAtPath( pINode_base node, pcIPath_base path, pcIError_base & error ) __NOTHROW__ = 0;
+ virtual pINode_base APICALL removeNodeAtPath( pcIPath_base path, pcIError_base & error ) __NOTHROW__ = 0;
+ virtual pINodeIterator_base APICALL iterator( pcIError_base & error ) __NOTHROW__ = 0;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ //! \endcond
+
+ };
+}
+
+//! \cond XMP_INTERNAL_DOCUMENTATION
+
+#if !BUILDING_XMPCORE_LIB && !SOURCE_COMPILING_XMPCORE_LIB
+
+namespace AdobeXMPCore {
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+ class ICompositeNodeProxy
+ : public virtual ICompositeNode
+ , public virtual INodeProxy
+ {
+ private:
+ pICompositeNode mRawPtr;
+
+ public:
+ ICompositeNodeProxy( pICompositeNode ptr );
+ ~ICompositeNodeProxy() __NOTHROW__ ;
+
+ pICompositeNode APICALL GetActualICompositeNode() __NOTHROW__;
+ AdobeXMPCore_Int::pICompositeNode_I APICALL GetICompositeNode_I() __NOTHROW__;
+
+ virtual eNodeType APICALL GetNodeTypeAtPath( const spcIPath & path ) const;
+ virtual spINode APICALL GetNodeAtPath( const spcIPath & path );
+ virtual void APICALL AppendNode( const spINode & node );
+ virtual void APICALL InsertNodeAtPath( const spINode & node, const spcIPath & path );
+ virtual spINode APICALL ReplaceNodeAtPath( const spINode & node, const spcIPath & path );
+ virtual spINode APICALL RemoveNodeAtPath( const spcIPath & path );
+ virtual spINodeIterator APICALL Iterator();
+ virtual sizet APICALL ChildCount() const __NOTHROW__;
+
+ protected:
+ virtual uint32 APICALL getNodeTypeAtPath( pcIPath_base path, pcIError_base & error ) const __NOTHROW__;
+ virtual pINode_base APICALL getNodeAtPath( pcIPath_base path, pcIError_base & error ) __NOTHROW__;
+ virtual void APICALL appendNode( pINode_base node, pcIError_base & error ) __NOTHROW__;
+ virtual void APICALL insertNodeAtPath( pINode_base node, pcIPath_base path, pcIError_base & error ) __NOTHROW__;
+ virtual pINode_base APICALL replaceNodeAtPath( pINode_base node, pcIPath_base path, pcIError_base & error ) __NOTHROW__;
+ virtual pINode_base APICALL removeNodeAtPath( pcIPath_base path, pcIError_base & error ) __NOTHROW__;
+ virtual pINodeIterator_base APICALL iterator( pcIError_base & error ) __NOTHROW__;
+
+ };
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+
+}
+
+#endif // BUILDING_XMPCORE_LIB
+//! \endcond
+
+#endif // __ICompositeNode_h__
diff --git a/public/include/XMPCore/Interfaces/ICoreConfigurationManager.h b/public/include/XMPCore/Interfaces/ICoreConfigurationManager.h
new file mode 100644
index 0000000..98b09a0
--- /dev/null
+++ b/public/include/XMPCore/Interfaces/ICoreConfigurationManager.h
@@ -0,0 +1,107 @@
+#ifndef ICoreConfigurationManager_h__
+#define ICoreConfigurationManager_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCore/XMPCoreFwdDeclarations.h"
+#include "XMPCommon/Interfaces/IConfigurationManager.h"
+
+namespace AdobeXMPCore {
+ //!
+ //! @brief Version1 of the interface that represents configuration settings controllable by the client.
+ //! \details Provides functions through which client can plug in its own memory allocators, error notifiers.
+ //! \attention Not Thread Safe as this functionality is generally used at the initialization phase.
+ //!
+ class XMP_PUBLIC ICoreConfigurationManager_v1
+ : public virtual IConfigurationManager_v1
+ {
+ public:
+
+ //!
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+
+ //!
+ //! @{
+ //! @brief Returns the actual raw pointer from the shared pointer, which can be a shared pointer of a proxy class.
+ //! \return Either a const or non const pointer to ICoreConfigurationManager interface.
+ //!
+ virtual pICoreConfigurationManager APICALL GetActualICoreConfigurationManager() __NOTHROW__ = 0;
+ XMP_PRIVATE pcICoreConfigurationManager GetActualICoreConfigurationManager() const __NOTHROW__ {
+ return const_cast< ICoreConfigurationManager_v1 * >( this )->GetActualICoreConfigurationManager();
+ }
+ //!
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Returns the pointer to internal interfaces.
+ //! \return Either a const or non const pointer to ICoreConfigurationManager_I interface.
+ //!
+ virtual AdobeXMPCore_Int::pICoreConfigurationManager_I APICALL GetICoreConfigurationManager_I() __NOTHROW__ = 0;
+
+ XMP_PRIVATE AdobeXMPCore_Int::pcICoreConfigurationManager_I GetICoreConfigurationManager_I() const __NOTHROW__ {
+ return const_cast< ICoreConfigurationManager_v1 * >( this )->GetICoreConfigurationManager_I();
+ }
+ //!
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Converts raw pointer to shared pointer. The raw pointer is of version 1 interface
+ //! where as the returned shared pointer depends on the version client is interested in.
+ //! \return Shared pointer to const or non constant interface.
+ //!
+ XMP_PRIVATE static spICoreConfigurationManager MakeShared( pICoreConfigurationManager_base ptr );
+ XMP_PRIVATE static spcICoreConfigurationManager MakeShared( pcICoreConfigurationManager_base ptr ) {
+ return MakeShared( const_cast< pICoreConfigurationManager_base >( ptr ) );
+ }
+ //!
+ //! @}
+
+ //!
+ //! @brief Return the unique ID assigned to the interface.
+ //! \return 64 bit unsigned integer representing the unique ID assigned to the interface.
+ //!
+ XMP_PRIVATE static uint64 GetInterfaceID() { return kICoreConfigurationManagerID; }
+
+ //!
+ //! @brief Returns the version of the interface.
+ //! \return 32 bit unsigned integer representing the version of the interface.
+ //!
+ XMP_PRIVATE static uint32 GetInterfaceVersion() { return 1; }
+ //! \endcond
+
+ // static factory functions
+
+ //!
+ //! @brief Get the configuration manager object associated with XMPCore library..
+ //! \return A shared pointer to an object of \#ICoreConfigurationManager.
+ //!
+ XMP_PRIVATE static spICoreConfigurationManager GetCoreConfigurationManager();
+
+
+ protected:
+ //!
+ //! Destructor
+ //!
+ virtual ~ICoreConfigurationManager_v1() __NOTHROW__ {}
+
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ //! \endcond
+
+ };
+}
+#endif // ICoreConfigurationManager_h__
+
diff --git a/public/include/XMPCore/Interfaces/ICoreObjectFactory.h b/public/include/XMPCore/Interfaces/ICoreObjectFactory.h
new file mode 100644
index 0000000..234a685
--- /dev/null
+++ b/public/include/XMPCore/Interfaces/ICoreObjectFactory.h
@@ -0,0 +1,264 @@
+#ifndef ICoreObjectFactory_h__
+#define ICoreObjectFactory_h__ 1
+
+// =================================================================================================
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved.
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCore/XMPCoreFwdDeclarations.h"
+#include "XMPCommon/Interfaces/IObjectFactory.h"
+
+namespace AdobeXMPCore {
+
+ //!
+ //! @brief Version1 of a interface that represents a factory to create various artifacts of XMP DOM like array,
+ //! structure, path etc.
+ //!
+ //! @details Provides all the functions to create instances of various artifacts of XMP DOM and return them as shared pointers
+ //! to the clients. This is the interface through which clients of the library actually get access to all other interfaces.
+ //!
+
+ class XMP_PUBLIC ICoreObjectFactory_v1
+ : public virtual IObjectFactory_v1
+ {
+ public:
+
+ //!
+ //! @brief Creates an empty name space prefix map.
+ //! \param[out] error A reference to a pointer to const IError object which will be filled with the error object in case of any error.
+ //! \return A pointer to an empty \#INameSpacePrefixMap_v1 object.
+ //!
+ virtual pINameSpacePrefixMap_base APICALL CreateNameSpacePrefixMap( pcIError_base & error ) __NOTHROW__ = 0;
+
+ //!
+ //! @brief Provides the default mapping of prefix string and nameSpace strings used by XMPCore.
+ //! \param[out] error A reference to a pointer to const IError object which will be filled with the error object in case of any error.
+ //! \return A pointer to const \#INameSpacePrefixMap_v1 object containing all the mappings used as default by the XMPCore.
+ //!
+ virtual pcINameSpacePrefixMap_base APICALL GetDefaultNameSpacePrefixMap( pcIError_base & error ) __NOTHROW__ = 0;
+
+ //!
+ //! @brief Creates a normal property path segment.These are essentially all properties (simple, struct and arrays).
+ //! \param[in] nameSpace Pointer to a constant char buffer containing name space URI of the property.
+ //! \param[in] nameSpaceLength Number of characters in nameSpace. In case nameSpace is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \param[in] name Pointer to a constant char buffer containing local name of the property.
+ //! \param[in] nameLength Number of characters in name. In case name is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \param[out] error A reference to a pointer to const IError object which will be filled with the error object in case of any error.
+ //! \return A pointer to const \#IPathSegment_v1.
+ //!
+ virtual pcIPathSegment_base APICALL CreatePropertyPathSegment( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) __NOTHROW__ = 0;
+
+ //!
+ //! @brief Creates an array index path segment that denotes a specific element of an array.
+ //! @details Such segments do not have an own name and inherits the namespace from the Array property itself.
+ //! \param[in] nameSpace Pointer to a constant char buffer containing name space URI of the property.
+ //! \param[in] nameSpaceLength Number of characters in nameSpace. In case nameSpace is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \param[in] index An object of type \#AdobeXMP::sizet containting the index of the array element.
+ //! \param[out] error A reference to a pointer to const IError object which will be filled with the error object in case of any error.
+ //! \return A pointer to const \#IPathSegment_v1.
+ //! \attention Throws \#AdobeXMP::pcIError in case
+ //! - pointers to const char buffers are NULL,
+ //! - their content is empty.
+ //!
+ virtual pcIPathSegment_base APICALL CreateArrayIndexPathSegment( const char * nameSpace, sizet nameSpaceLength, sizet index, pcIError_base & error ) __NOTHROW__ = 0;
+
+ //!
+ //! @brief Creates a Qualifier path segment, which behaves like a normal property
+ //! \param[in] nameSpace Pointer to a constant char buffer containing name space URI of the property.
+ //! \param[in] nameSpaceLength Number of characters in nameSpace. In case nameSpace is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \param[in] name Pointer to a constant char buffer containing local name of the property.
+ //! \param[in] nameLength Number of characters in name. In case name is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \param[out] error A reference to a pointer to const IError object which will be filled with the error object in case of any error.
+ //! \return A pointer to const \#IPathSegment_v1.
+ //!
+ virtual pcIPathSegment_base APICALL CreateQualifierPathSegment( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) __NOTHROW__ = 0;
+
+ //!
+ //! @brief Creates a path segment that selects a specific qualifier by its value.
+ //! For example a specific language in a alternative array of languages.
+ //! \param[in] nameSpace Pointer to a constant char buffer containing name space URI of the property.
+ //! \param[in] nameSpaceLength Number of characters in nameSpace. In case nameSpace is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \param[in] name Pointer to a constant char buffer containing local name of the property.
+ //! \param[in] nameLength Number of characters in name. In case name is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \param[in] value Pointer to a constant char buffer containing value of the language (xml:lang)
+ //! \param[in] valueLength Number of characters in value. In case value is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \param[out] error A reference to a pointer to const IError object which will be filled with the error object in case of any error.
+ //! \return A pointer to const \#IPathSegment_v1.
+ //!
+ virtual pcIPathSegment_base APICALL CreateQualifierSelectorPathSegment( const char * nameSpace, sizet nameSpaceLength, const char * name,
+ sizet nameLength, const char * value, sizet valueLength, pcIError_base & error ) __NOTHROW__ = 0;
+
+ //!
+ //! @brief Creates an empty IPath object.
+ //! \param[out] error A reference to a pointer to const IError object which will be filled with the error object in case of any error.
+ //! \return A pointer to an empty \#IPath_v1 object
+ //!
+ virtual pIPath_base APICALL CreatePath( pcIError_base & error ) __NOTHROW__ = 0;
+
+ //!
+ //! @brief Creates a path from a char buffer which contains the serialized path.
+ //! \param[in] path Pointer to a const char buffer containing serialized form of the path.
+ //! \param[in] pathLength Number of characters in the path. In case path in null terminated set it to \#AdobeXMPCommon::npos.
+ //! \param[in] map A pointer to a const \#IXMPNameSpacePrefixMap_v1 object which will contain the mapping for nameSpaces to prefixes.
+ //! \param[out] error A reference to a pointer to const IError object which will be filled with the error object in case of any error.
+ //! \return A pointer to a \#IPath_v1 object.
+ //!
+ virtual pIPath_base APICALL ParsePath( const char * path, sizet pathLength, pcINameSpacePrefixMap_base map, pcIError_base & error ) __NOTHROW__ = 0;
+
+ //!
+ //! @brief Creates a simple property node which is not part of any metadata document.
+ //! \param[in] nameSpace Pointer to a constant char buffer containing name space URI of the simple node.
+ //! \param[in] nameSpaceLength Number of characters in nameSpace. In case nameSpace is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \param[in] name Pointer to a constant char buffer containing local name of the simple node.
+ //! \param[in] nameLength Number of characters in name. In case name is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \param[in] value Pointer to a constant char buffer containing value of the simple node.
+ //! \param[in] valueLength Number of characters in value. In case name is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \param[out] error A reference to a pointer to const IError object which will be filled with the error object in case of any error.
+ //! \return A pointer to a \#ISimpleNode_v1 object.
+ //!
+ virtual pISimpleNode_base APICALL CreateSimpleNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength,
+ const char * value, sizet valueLength, pcIError_base & error ) __NOTHROW__ = 0;
+
+ //!
+ //! @brief Creates an array node which is not part of any metadata document.
+ //! \param[in] arrayForm A value indicating the array type
+ //! \param[in] nameSpace Pointer to a constant char buffer containing name space URI of the array node.
+ //! \param[in] nameSpaceLength Number of characters in nameSpace. In case nameSpace is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \param[in] name Pointer to a constant char buffer containing local name of the array node.
+ //! \param[in] nameLength Number of characters in name. In case name is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \param[out] error A reference to a pointer to const IError object which will be filled with the error object in case of any error.
+ //! \return A pointer to a \#IArrayNode_v1 object.
+ //!
+ virtual pIArrayNode_base APICALL CreateArrayNode( uint32 arrayForm, const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) __NOTHROW__ = 0;
+
+ //!
+ //! @brief Creates a structure node which is not part of any metadata document.
+ //! \param[in] nameSpace Pointer to a constant char buffer containing name space URI of the structure node.
+ //! \param[in] nameSpaceLength Number of characters in nameSpace. In case nameSpace is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \param[in] name Pointer to a constant char buffer containing local name of the structure node.
+ //! \param[in] nameLength Number of characters in name. In case name is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \param[out] error A reference to a pointer to const IError object which will be filled with the error object in case of any error.
+ //! \return A pointer to a \#IStructureNode_v1 object.
+ virtual pIStructureNode_base APICALL CreateStructureNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) __NOTHROW__ = 0;
+
+ //!
+ //! @brief Creates an empty IMetadata object.
+ //! \param[out] error A reference to a pointer to const IError object which will be filled with the error object in case of any error.
+ //! \return a pointer to an empty \#IMetadata_v1 object.
+ //!
+ virtual pIMetadata_base APICALL CreateMetadata( pcIError_base & error ) __NOTHROW__ = 0;
+
+ //!
+ //! @brief Provides the reference to the database of Serializers and Parsers available with the library.
+ //! \param[out] error A reference to a pointer to const IError object which will be filled with the error object in case of any error.
+ //! \return a pointer to \#IDOMImplementationRegistry_base object containing all the entries for serailizers and parsers.
+ //!
+ virtual pIDOMImplementationRegistry_base APICALL GetDOMImplementationRegistry( pcIError_base & error ) __NOTHROW__ = 0;
+
+ //!
+ //! @brief Provides access to the configuration manager of the library.
+ //! \param[out] error A reference to a pointer to const IError object which will be filled with the error object in case of any error.
+ //! \return A pointer to \#ICoreConfigurationManager_base object.
+ //!
+ virtual pICoreConfigurationManager_base APICALL GetCoreConfigurationManager( pcIError_base & error ) __NOTHROW__ = 0;
+
+ //!
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+
+ //!
+ //! @{
+ //! @brief Returns the actual raw pointer from the shared pointer, which can be a shared pointer of a proxy class.
+ //! \return Either a const or non const pointer to ICoreObjectFactory interface.
+ //!
+ virtual pICoreObjectFactory APICALL GetActualICoreObjectFactory() __NOTHROW__ = 0;
+ XMP_PRIVATE pcICoreObjectFactory GetActualICoreObjectFactory() const __NOTHROW__ {
+ return const_cast< ICoreObjectFactory_v1 * >( this )->GetActualICoreObjectFactory();
+ }
+ //!
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Returns the pointer to internal interfaces.
+ //! \return Either a const or non const pointer to ICoreObjectFactory_I interface.
+ //!
+ virtual AdobeXMPCore_Int::pICoreObjectFactory_I APICALL GetICoreObjectFactory_I() __NOTHROW__ = 0;
+
+ XMP_PRIVATE AdobeXMPCore_Int::pcICoreObjectFactory_I GetICoreObjectFactory_I() const __NOTHROW__ {
+ return const_cast< ICoreObjectFactory_v1 * >( this )->GetICoreObjectFactory_I();
+ }
+ //!
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Converts raw pointer to base version to pointer to client interested version.
+ //! @details The raw pointer is of version 1 interface where as the returned pointer depends on the version client is interested in.
+ //! \return Pointer to const or non constant interface.
+ //!
+ XMP_PRIVATE static pICoreObjectFactory MakeCoreObjectFactory( pICoreObjectFactory_base ptr );
+ XMP_PRIVATE static pcICoreObjectFactory MakeCoreObjectFactory( pcICoreObjectFactory_base ptr ) {
+ return MakeCoreObjectFactory( const_cast< pcICoreObjectFactory_base >( ptr ) );
+ }
+ //!
+ //! @}
+
+ //!
+ //! @brief Returns the unique ID assigned to the interface.
+ //! \return 64 bit unsigned integer representing the unique ID assigned to the interface.
+ //!
+ XMP_PRIVATE static uint64 GetInterfaceID() { return kICoreObjectFactoryID; }
+
+ //!
+ //! @brief returns the version of the interface.
+ //! \return 32 bit unsigned integer representing the version of the interface.
+ //!
+ XMP_PRIVATE static uint32 GetInterfaceVersion() { return 1; }
+ //! \endcond
+
+ //!
+ //! @brief Gets an object of ICoreObjectFactory.
+ //! \return A pointer to an ICoreObjectFactory object.
+ //!
+ XMP_PRIVATE static pICoreObjectFactory GetCoreObjectFactory();
+
+ //!
+ //! @{
+ //! @brief Sets up the core object factory.
+ //! \param[in] coreObjectFactory A pointer to an \#ICoreObjectFactory_v1 object.
+ //! \note coreObjectFactory is an optional parameter and only required for clients who don't directly link with the library
+ //! but want to use its functionality.
+ //!
+ #if LINKING_XMPCORE_LIB
+ XMP_PRIVATE static void SetupCoreObjectFactory();
+ #else
+ XMP_PRIVATE static void SetupCoreObjectFactory( pICoreObjectFactory_base coreObjectFactory );
+ #endif
+ //! @}
+
+ //!
+ //! @brief Destroy everything related to core object factory.
+ //!
+ XMP_PRIVATE static void DestroyCoreObjectFactory();
+
+ protected:
+ //!
+ //! Destructor
+ //!
+ virtual ~ICoreObjectFactory_v1() __NOTHROW__ {}
+
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ //! \endcond
+
+ };
+}
+#endif // ICoreObjectFactory_h__
diff --git a/public/include/XMPCore/Interfaces/IDOMImplementationRegistry.h b/public/include/XMPCore/Interfaces/IDOMImplementationRegistry.h
new file mode 100644
index 0000000..7a732bd
--- /dev/null
+++ b/public/include/XMPCore/Interfaces/IDOMImplementationRegistry.h
@@ -0,0 +1,150 @@
+#ifndef IDOMImplementationRegistry_h__
+#define IDOMImplementationRegistry_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCore/XMPCoreFwdDeclarations.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/IVersionable.h"
+
+namespace AdobeXMPCore {
+
+ //!
+ //! \brief Version1 of the interface that serves as a database/registry of all the parsers and
+ //! serializers available with the XMPCore library.
+ //! \details Provides all the functions to
+ //! -# get registered serializers and parsers from the database.
+ //! -# add client defined serializers and parsers to the database.
+ //! \attention Support multi threading if library is configured to support multi-threading by default.
+ //! \note By default following keys are registered by default with the database by the library:
+ //! -# rdf
+ //!
+ class XMP_PUBLIC IDOMImplementationRegistry_v1
+ : public virtual ISharedObject
+ , public virtual IVersionable
+ {
+ public:
+
+ //!
+ //! @brief Gets a parser corresponding to the key and returns to the client for usage.
+ //! \param[in] key Pointer to a const NULL terminated char buffer containing key of the parser in the database.
+ //! \return A shared pointer to a \#IDOMParser object.
+ //! \note In case the key is not present in the database an invalid shared pointer will be returned.
+ //! \note key is case sensitive.
+ //!
+ virtual spIDOMParser APICALL GetParser( const char * key ) const = 0;
+
+ //!
+ //! @brief Gets a serializer corresponding to the key and returns to the client for usage.
+ //! \param[in] key Pointer to a const NULL terminated char buffer containing key of the serializer in the database.
+ //! \return A shared pointer to a \#IDOMSerializer object.
+ //! \note In case the key is not present in the database an invalid shared pointer will be returned.
+ //! \note key is case sensitive.
+ //!
+ virtual spIDOMSerializer APICALL GetSerializer( const char * key ) const = 0;
+
+ //!
+ //! @brief Registers a parser with the database along with the key.
+ //! \param[in] key Pointer to a const NULL terminated char buffer containing key of the parser to be used while registering.
+ //! \param[in] parser A pointer to \#IClientDOMParser object to be registered with the database
+ //! \return True in case parser is successfully registered, false otherwise like in case key is already registered.
+ //!
+ virtual bool APICALL RegisterParser( const char * key, pIClientDOMParser_base parser ) = 0;
+
+ //!
+ //! @brief Registers a serializer with the database along with the key.
+ //! \param[in] key Pointer to a const NULL terminated char buffer containing key of the serializer to be used while registering.
+ //! \param[in] serializer A pointer to \#IClientDOMSerializer object to be registered with the database.
+ //! \return True in case serializer is successfully registered, false otherwise like in case key is already registered.
+ //!
+ virtual bool APICALL RegisterSerializer( const char * key, pIClientDOMSerializer_base serializer ) = 0;
+
+ //!
+ //! @brief Provides the reference to the database of Serializers and Parsers available with the library.
+ //! \return A shared pointer to \#IDOMImplementationRegistry object containing all the entries for serailizers and parsers.
+ //!
+ XMP_PRIVATE static spIDOMImplementationRegistry GetDOMImplementationRegistry();
+
+ //!
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+
+ //!
+ //! @{
+ //! @brief Returns the actual raw pointer from the shared pointer, which can be a shared pointer of a proxy class.
+ //! \return Either a const or non const pointer to IDOMImplementationRegistry interface.
+ //!
+ virtual pIDOMImplementationRegistry APICALL GetActualIDOMImplementationRegistry() __NOTHROW__ = 0;
+ XMP_PRIVATE pcIDOMImplementationRegistry GetActualIDOMImplementationRegistry() const __NOTHROW__ {
+ return const_cast< IDOMImplementationRegistry_v1 * >( this )->GetActualIDOMImplementationRegistry();
+ }
+ //!
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Returns the pointer to internal interfaces.
+ //! \return Either a const or non const pointer to IDOMImplementationRegistry_I interface.
+ //!
+ virtual AdobeXMPCore_Int::pIDOMImplementationRegistry_I APICALL GetIDOMImplementationRegistry_I() __NOTHROW__ = 0;
+
+ XMP_PRIVATE AdobeXMPCore_Int::pcIDOMImplementationRegistry_I GetIDOMImplementationRegistry_I() const __NOTHROW__ {
+ return const_cast< IDOMImplementationRegistry_v1 * >( this )->GetIDOMImplementationRegistry_I();
+ }
+ //!
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Converts raw pointer to shared pointer. The raw pointer is of version 1 interface
+ //! where as the returned shared pointer depends on the version client is interested in.
+ //! \return Shared pointer to const or non constant interface.
+ //!
+ XMP_PRIVATE static spIDOMImplementationRegistry MakeShared( pIDOMImplementationRegistry_base ptr );
+ XMP_PRIVATE static spcIDOMImplementationRegistry MakeShared( pcIDOMImplementationRegistry_base ptr ) {
+ return MakeShared( const_cast< pIDOMImplementationRegistry_base >( ptr ) );
+ }
+ //!
+ //! @}
+
+ //!
+ //! @brief Returns the unique ID assigned to the interface.
+ //! \return 64 bit unsigned integer representing the unique ID assigned to the interface.
+ //!
+ XMP_PRIVATE static uint64 GetInterfaceID() { return kIDOMImplementationRegistryID; }
+
+ //!
+ //! @brief Returns the version of the interface.
+ //! \return 32 bit unsigned integer representing the version of the interface.
+ //!
+ XMP_PRIVATE static uint32 GetInterfaceVersion() { return 1; }
+ //! \endcond
+
+ protected:
+ //!
+ //! Destructor
+ //!
+ virtual ~IDOMImplementationRegistry_v1() __NOTHROW__ {}
+
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+ virtual pIDOMParser_base APICALL getParser( const char * key, pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual pIDOMSerializer_base APICALL getSerializer( const char * key, pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual uint32 APICALL registerParser( const char * key, pIClientDOMParser_base parser, pcIError_base & error ) __NOTHROW__ = 0;
+ virtual uint32 APICALL registerSerializer( const char * key, pIClientDOMSerializer_base serializer, pcIError_base & error ) __NOTHROW__= 0;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ //! \endcond
+
+ };
+}
+
+#endif // IDOMImplementationRegistry_h__
diff --git a/public/include/XMPCore/Interfaces/IDOMParser.h b/public/include/XMPCore/Interfaces/IDOMParser.h
new file mode 100644
index 0000000..b33ff17
--- /dev/null
+++ b/public/include/XMPCore/Interfaces/IDOMParser.h
@@ -0,0 +1,181 @@
+#ifndef IDOMParser_h__
+#define IDOMParser_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCore/XMPCoreFwdDeclarations.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/IVersionable.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/IConfigurable.h"
+
+namespace AdobeXMPCore {
+
+ //!
+ //! @brief Version 1 of the interface that supports parsing of the XMP Data Model.
+ //! @details Provides all functions to parse the buffer as well as to configure the parser.
+ //!
+ class XMP_PUBLIC IDOMParser_v1
+ : public virtual IConfigurable
+ , public virtual ISharedObject
+ , public virtual IVersionable
+ {
+ public:
+
+ //!
+ //! @brief Indicates various types of operations possible while parsing with some node as the context.
+ //!
+ typedef enum {
+ //! @brief Append all the nodes parsed from the buffer as the child of the context node.
+ //! \attention Error is thrown in case
+ //! - Context Node is invalid.
+ //! - Context Node is not array or structure node.
+ //! - Context Node is a structure node but a child node with the same qualified name is already present.
+ //! - Context Node is an array node but the type of any parsed node is not same as that of other existing nodes in the array.
+ //!
+ kATAppendAsChildren = 0,
+
+ //! @brief Replaces the children of the context node with nodes parsed from the buffer.
+ //! \attention Error is thrown in case
+ //! - Context Node is invalid.
+ //! - Context Node is not array or structure node.
+ //! - Context Node is a structure node but a child node with the same qualified name is not already present.
+ //! - Context Node is an array node but the type of all parsed nodes are not same.
+ //!
+ kATReplaceChildren = 1,
+
+ //! @brief Either append all the nodes parsed from the buffer as the child/children of the context node.
+ //! \attention Error is thrown in case
+ //! - Context Node is invalid.
+ //! - Context Node is not array or structure node.
+ //! - Context Node is an array node but the type of all parsed nodes are not same.
+ //! - If a structure node is the parsed node, it is appended if it already not present, otherwise it is replaced.
+ //! - If an array node is the parsed node, it is appended if it already not present, otherwise it is removed.
+ kATAppendOrReplaceChildren = 2,
+
+ //! @brief Treats all the parsed nodes as the siblings of the context node and place them before the context node, if possible.
+ //! \attention Error is thrown in case
+ //! - Context Node is invalid.
+ //! - parent of the Context Node is not an array node.
+ //! - The type of any parsed nodes is not same as that of other existing nodes in the array.
+ kATInsertBefore = 3,
+
+ //! @brief Treats all the parsed nodes as the siblings of the context node and place them after the context node, if possible.
+ //! \attention Error is thrown in case
+ //! - Context Node is invalid.
+ //! - parent of the Context Node is not an array node.
+ //! - The type of any parsed nodes is not same as that of other existing nodes in the array.
+ kATInsertAfter = 4,
+
+ //! @brief Replaces the context node and insert the node parsed from the buffer in its place.
+ //! \attention Error is thrown in case
+ //! - type of node returned after parsing in not of type which is compatible with the Context Node.
+ kATReplace = 5,
+ } eActionType;
+
+ //!
+ //! @brief Parses the buffer contents and creates an XMP DOM node.
+ //! \param[in] buffer Pointer to a constant char buffer containing serialized XMP Data Model.
+ //! \param[in] bufferLength Number of characters in buffer. In case name is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \return A shared pointer to an object of \#IMetadata containing all the information parsed from the buffer.
+ //!
+ virtual spIMetadata APICALL Parse( const char * buffer, sizet bufferLength ) = 0;
+
+ //!
+ //! @brief Parse the buffer contents and populate the provided node .
+ //! \param[in] buffer Pointer to a constant char buffer containing serialized XMP Data Model.
+ //! \param[in] bufferLength Number of characters in buffer. In case name is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \param[in] actionType Value indicating how the parsed content and context node should be used.
+ //! \param[in,out] node The context node to be used base on the actionType.
+ //!
+ virtual void APICALL ParseWithSpecificAction( const char * buffer, sizet bufferLength, eActionType actionType, spINode & node ) = 0;
+
+ //!
+ //! @brief Virtual copy constructor.
+ //! @details Creates an exact replica of the object.
+ //! \return A shared pointer to an object of \#IDOMParser which is the exact replica of the current serializer.
+ //!
+ virtual spIDOMParser APICALL Clone() const = 0;
+
+ //!
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+
+ //!
+ //! @{
+ //! @brief Returns the actual raw pointer from the shared pointer, which can be a shared pointer of a proxy class.
+ //! \return Either a const or non const pointer to IDOMParser interface.
+ //!
+ virtual pIDOMParser APICALL GetActualIDOMParser() __NOTHROW__ = 0;
+ XMP_PRIVATE pcIDOMParser GetActualIDOMParser() const __NOTHROW__ {
+ return const_cast< IDOMParser_v1 * >( this )->GetActualIDOMParser();
+ }
+ //!
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Returns the pointer to internal interfaces.
+ //! \return Either a const or non const pointer to IDOMParser_I interface.
+ //!
+ virtual AdobeXMPCore_Int::pIDOMParser_I APICALL GetIDOMParser_I() __NOTHROW__ = 0;
+
+ XMP_PRIVATE AdobeXMPCore_Int::pcIDOMParser_I GetIDOMParser_I() const __NOTHROW__ {
+ return const_cast< IDOMParser_v1 * >( this )->GetIDOMParser_I();
+ }
+ //!
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Converts raw pointer to shared pointer.
+ //! @details The raw pointer is of version 1 interface where as the returned shared pointer depends on the version client is interested in.
+ //!
+ //! \return Shared pointer to const or non constant interface.
+ //!
+ XMP_PRIVATE static spIDOMParser MakeShared( pIDOMParser_base ptr );
+ XMP_PRIVATE static spcIDOMParser MakeShared( pcIDOMParser_base ptr ) {
+ return MakeShared( const_cast< pIDOMParser_base >( ptr ) );
+ }
+ //!
+ //! @}
+
+ //!
+ //! return The unique ID assigned to the interface.
+ //! \return 64 bit unsigned integer representing the unique ID assigned to the interface.
+ //!
+ XMP_PRIVATE static uint64 GetInterfaceID() { return kIDOMParserID; }
+
+ //!
+ //! return The version of the interface.
+ //! \return 32 bit unsigned integer representing the version of the interface.
+ //!
+ XMP_PRIVATE static uint32 GetInterfaceVersion() { return 1; }
+ //! \endcond
+
+ protected:
+ //!
+ //! Destructor
+ //!
+ virtual ~IDOMParser_v1() __NOTHROW__ {}
+
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+ virtual pIMetadata_base APICALL parse( const char * buffer, sizet bufferLength, pcIError_base & error ) __NOTHROW__ = 0;
+ virtual void APICALL parseWithSpecificAction( const char * buffer, sizet bufferLength, uint32 actionType, pINode_base node, pcIError_base & error ) __NOTHROW__ = 0;
+ virtual pIDOMParser_base APICALL clone( pcIError_base & error ) const __NOTHROW__ = 0;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ //! \endcond
+
+ };
+}
+
+#endif // IDOMParser_h__
diff --git a/public/include/XMPCore/Interfaces/IDOMSerializer.h b/public/include/XMPCore/Interfaces/IDOMSerializer.h
new file mode 100644
index 0000000..fe4d9fc
--- /dev/null
+++ b/public/include/XMPCore/Interfaces/IDOMSerializer.h
@@ -0,0 +1,120 @@
+#ifndef IDOMSerializer_h__
+#define IDOMSerializer_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCore/XMPCoreFwdDeclarations.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/IVersionable.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/IConfigurable.h"
+
+namespace AdobeXMPCore {
+ //!
+ //! @brief Version1 of the interface that represents an object that can serialize an XMP Data Model to a buffer.
+ //! Provides the functions to serialize the XMP Data Model.
+ //!
+ class XMP_PUBLIC IDOMSerializer_v1
+ : public virtual IConfigurable
+ , public virtual ISharedObject
+ , public virtual IVersionable
+ {
+ public:
+
+ //!
+ //! @brief Serializes the given XMP Node into an IUTF8String object.
+ //! \param[in] node An object of type \#INode which needs to be serialized.
+ //! \param[in] nameSpacePrefixMap An object of type \#INameSpacePrefixMap which contains preferred prefixes for namespaces.
+ //! \return An object of \#AdobeXMPCommon::IUTF8String type containing the serialized form of the node.
+ //!
+ virtual spIUTF8String APICALL Serialize( const spINode & node, const spcINameSpacePrefixMap & nameSpacePrefixMap = spcINameSpacePrefixMap() ) = 0;
+
+ //!
+ //! @brief Virtual copy constructor.
+ //! Creates an exact replica of the object.
+ //! \return A shared pointer to an object of \#IDOMSerializer which is the exact replica of the current serializer.
+ //!
+ virtual spIDOMSerializer APICALL Clone() const = 0;
+
+ //!
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+
+ //!
+ //! @{
+ //! @brief Returns the actual raw pointer from the shared pointer, which can be a shared pointer of a proxy class.
+ //! \return Either a const or non const pointer to IDOMSerializer interface.
+ //!
+ virtual pIDOMSerializer APICALL GetActualIDOMSerializer() __NOTHROW__ = 0;
+ XMP_PRIVATE pcIDOMSerializer GetActualIDOMSerializer() const __NOTHROW__ {
+ return const_cast< IDOMSerializer_v1 * >( this )->GetActualIDOMSerializer();
+ }
+ //!
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Returns the pointer to internal interfaces.
+ //! \return Either a const or non const pointer to IDOMSerializer_I interface.
+ //!
+ virtual AdobeXMPCore_Int::pIDOMSerializer_I APICALL GetIDOMSerializer_I() __NOTHROW__ = 0;
+
+ XMP_PRIVATE AdobeXMPCore_Int::pcIDOMSerializer_I GetIDOMSerializer_I() const __NOTHROW__ {
+ return const_cast< IDOMSerializer_v1 * >( this )->GetIDOMSerializer_I();
+ }
+ //!
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Converts raw pointer to shared pointer. The raw pointer is of version 1 interface
+ //! where as the returned shared pointer depends on the version client is interested in.
+ //! \return Shared pointer to const or non constant interface.
+ //!
+ XMP_PRIVATE static spIDOMSerializer MakeShared( pIDOMSerializer_base ptr );
+ XMP_PRIVATE static spcIDOMSerializer MakeShared( pcIDOMSerializer_base ptr ) {
+ return MakeShared( const_cast< pIDOMSerializer_base >( ptr ) );
+ }
+
+ //!
+ //! @}
+
+ //!
+ //! @brief Returns the unique ID assigned to the interface.
+ //! \return 64 bit unsigned integer representing the unique ID assigned to the interface.
+ //!
+ XMP_PRIVATE static uint64 GetInterfaceID() { return kIDOMSerializerID; }
+
+ //!
+ //! @brief Returns the version of the interface.
+ //! \return 32 bit unsigned integer representing the version of the interface.
+ //!
+ XMP_PRIVATE static uint32 GetInterfaceVersion() { return 1; }
+ //! \endcond
+
+ protected:
+ //!
+ //! Destructor
+ //!
+ virtual ~IDOMSerializer_v1() __NOTHROW__ {}
+
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+ virtual pIUTF8String_base APICALL serialize( pINode_base node, pcINameSpacePrefixMap_base map, pcIError_base & error ) __NOTHROW__ = 0;
+ virtual pIDOMSerializer_base APICALL clone( pcIError_base & error ) const __NOTHROW__ = 0;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ //! \endcond
+
+ };
+}
+
+#endif // IDOMSerializer_h__
+
diff --git a/public/include/XMPCore/Interfaces/IMetadata.h b/public/include/XMPCore/Interfaces/IMetadata.h
new file mode 100644
index 0000000..74015a6
--- /dev/null
+++ b/public/include/XMPCore/Interfaces/IMetadata.h
@@ -0,0 +1,145 @@
+#ifndef __IMetadata_h__
+#define __IMetadata_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCore/Interfaces/IStructureNode.h"
+
+namespace AdobeXMPCore {
+
+ //!
+ //! \brief Version1 of the interface that represents the whole xmp metadata for an asset.
+ //! @details Provides all the functions to add or remove nodes to and from metadata.
+ //! \attention Support multi threading through locks but can be enabled/disabled by the client. By default
+ //! every object created does not support multi-threading.
+ //!
+
+ class XMP_PUBLIC IMetadata_v1
+ : public virtual IStructureNode_v1
+ {
+ public:
+ //!
+
+ //! @brief Gets the about URI string for the XMP metadata.
+ //! \return A shared pointer to const \#AdobeXMPCommon::IUTF8String object containing URI string.
+ //! \note By default this is an empty string.
+ //!
+ virtual spcIUTF8String APICALL GetAboutURI() const = 0;
+
+ //!
+ //! @brief Sets the about URI string for the XMP metadata.
+ //! \param[in] uri Pointer to a constant char buffer containing uri string.
+ //! \param[in] uriLength Number of characters in uri. In case name is null terminated set it to \#AdobeXMPCommon::npos.
+ //!
+ virtual void APICALL SetAboutURI( const char * uri, sizet uriLength ) __NOTHROW__ = 0;
+
+ //!
+ //! @brief Enables support for a particular feature.
+ //! \param[in] key A const char buffer containing key for the feature.
+ //! \param[in] keyLength Number of characters in key.
+ //! \note Following keys are supported:
+ //! - alias Enable support for aliases on the metadata object.
+ //!
+ virtual void APICALL EnableFeature( const char * key, sizet keyLength ) const __NOTHROW__ = 0;
+
+ //!
+ //! @brief Disables support for a particular feature.
+ //! \param[in] key A const char buffer containing key for the feature.
+ //! \param[in] keyLength Number of characters in key.
+ //!
+ virtual void APICALL DisableFeature( const char * key, sizet keyLength ) const __NOTHROW__ = 0;
+
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+
+ //!
+ //! @{
+ //! @brief Returns the actual raw pointer from the shared pointer, which can be a shared pointer of a proxy class.
+ //! \return Either a const or non const pointer to IMetadata interface.
+ //!
+ virtual pIMetadata APICALL GetActualIMetadata() __NOTHROW__ = 0;
+ XMP_PRIVATE pcIMetadata GetActualIMetadata() const __NOTHROW__ {
+ return const_cast< IMetadata_v1 * >( this )->GetActualIMetadata();
+ }
+ //!
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Returns the pointer to internal interfaces.
+ //! \return Either a const or non const pointer to IMetadata_I interface.
+ //!
+ virtual AdobeXMPCore_Int::pIMetadata_I APICALL GetIMetadata_I() __NOTHROW__ = 0;
+
+ XMP_PRIVATE AdobeXMPCore_Int::pcIMetadata_I GetIMetadata_I() const __NOTHROW__ {
+ return const_cast< IMetadata_v1 * >( this )->GetIMetadata_I();
+ }
+ //!
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Converts raw pointer to shared pointer. The raw pointer is of version 1 interface
+ //! where as the returned shared pointer depends on the version client is interested in.
+ //! \return Shared pointer to const or non constant interface.
+ //!
+ XMP_PRIVATE static spIMetadata MakeShared( pIMetadata_base ptr );
+ XMP_PRIVATE static spcIMetadata MakeShared( pcIMetadata_base ptr ) {
+ return MakeShared( const_cast< pIMetadata_base >( ptr ) );
+ }
+ //!
+ //! @}
+
+ //!
+ //! @brief Returns the unique ID assigned to the interface.
+ //! \return 64 bit unsigned integer representing the unique ID assigned to the interface.
+ //!
+ XMP_PRIVATE static uint64 GetInterfaceID() { return kIMetadataID; }
+
+ //!
+ //! @brief Returns the version of the interface.
+ //! \return 32 bit unsigned integer representing the version of the interface.
+ //!
+ XMP_PRIVATE static uint32 GetInterfaceVersion() { return 1; }
+ //! \endcond
+
+ // static factory functions
+
+ //!
+ //! @brief Creates an empty IMetadata object.
+ //! \return A shared pointer to an empty \#IMetadata object.
+ //!
+ XMP_PRIVATE static spIMetadata CreateMetadata();
+
+ protected:
+ //!
+ //! Destructor
+ //!
+ virtual ~IMetadata_v1() __NOTHROW__ {}
+
+ //! Hiding some functions from derived classes
+ using INode_v1::GetParent;
+ using INode_v1::GetNameSpace;
+ using INode_v1::SetNameSpace;
+ using INode_v1::GetName;
+ using INode_v1::SetName;
+
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+ virtual pcIUTF8String_base APICALL getAboutURI( pcIError_base & error ) const __NOTHROW__ = 0;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ //! \endcond
+
+ };
+}
+
+#endif // __IMetadata_h__
diff --git a/public/include/XMPCore/Interfaces/INameSpacePrefixMap.h b/public/include/XMPCore/Interfaces/INameSpacePrefixMap.h
new file mode 100644
index 0000000..9aa606a
--- /dev/null
+++ b/public/include/XMPCore/Interfaces/INameSpacePrefixMap.h
@@ -0,0 +1,236 @@
+#ifndef INameSpacePrefixMap_h__
+#define INameSpacePrefixMap_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCore/XMPCoreFwdDeclarations.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/IVersionable.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/IThreadSafe.h"
+
+namespace AdobeXMPCore {
+
+ //!
+ //! \brief Version1 of the interface that represents map where each entry consists of prefix string
+ //! as the key and corresponding nameSpace string as its value.
+ //! \details Provides all the functions to get/set the entries inside the map.
+ //! \attention Supports Multi-threading at object level through locks.
+ //!
+ class XMP_PUBLIC INameSpacePrefixMap_v1
+ : public virtual ISharedObject
+ , public virtual IVersionable
+ , public virtual IThreadSafe
+ {
+ public:
+
+ //!
+ //! @brief Adds a new pair of prefix string and its corresponding nameSpace string or replace an existing entry.
+ //! \param[in] prefix Pointer to a constant char buffer containing prefix string.
+ //! \param[in] prefixLength Number of characters in prefix. In case prefix is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \param[in] nameSpace Pointer to a constant char buffer containing nameSpace string.
+ //! \param[in] nameSpaceLength Number of characters in nameSpace. In case nameSpace is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \return A bool type object containing true in case operation was successful, false otherwise.
+ //! \note Raises warning in case of
+ //! - prefix or nameSpace are null pointers
+ //! - prefixLength or nameSpaceLength is 0.
+ //!
+ virtual bool APICALL Insert( const char * prefix, sizet prefixLength, const char * nameSpace, sizet nameSpaceLength ) = 0;
+
+ //!
+ //! @brief Finds the prefix string in the map and removes an entry corresponding to it in the map.
+ //! \param[in] prefix Pointer to a const char buffer containing prefix string.
+ //! \param[in] prefixLength Number of characters in prefix. In case prefix is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \return A bool type object containing true in case entry was found and then deleted from the map, false otherwise.
+ //! \note Raises warning in case of
+ //! - prefix is null pointer, or
+ //! - prefixLength is 0.
+ //! \attention Throws AdobeXMPCommon::pcIError in case of failure in removing or searching process.
+ //!
+ virtual bool APICALL RemovePrefix( const char * prefix, sizet prefixLength ) = 0;
+
+ //!
+ //! @brief Finds the nameSpace string in the map and removes an entry corresponding to it in the map.
+ //! \param[in] nameSpace Pointer to a constant char buffer containing nameSpace string.
+ //! \param[in] nameSpaceLength Number of characters in nameSpace. In case nameSpace is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \return A bool type object containing true in case entry was found and then deleted from the map, false otherwise.
+ //! \note Raises warning in case of
+ //! - nameSpace is null pointer, or
+ //! - nameSpaceLength is 0.
+ //! \attention Throws AdobeXMPCommon::pcIError in case of failure in removing or searching process.
+ //!
+ virtual bool APICALL RemoveNameSpace( const char * nameSpace, sizet nameSpaceLength ) = 0;
+
+ //!
+ //! @brief Checks for the existence of a particular prefix in the map.
+ //! \param[in] prefix Pointer to a const char buffer containing prefix string.
+ //! \param[in] prefixLength Number of characters in prefix. In case prefix is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \return A bool type object containing true in case there is an entry present corresponding to the prefix string, otherwise false.
+ //! \note Raises warning in case of
+ //! - prefix is null pointer, or
+ //! - prefixLength is 0.
+ //!
+ virtual bool APICALL IsPrefixPresent( const char * prefix, sizet prefixLength ) const = 0;
+
+ //!
+ //! @brief Checks for the existence of a particular nameSpace in the map.
+ //! \param[in] nameSpace Pointer to a constant char buffer containing nameSpace string.
+ //! \param[in] nameSpaceLength Number of characters in nameSpace. In case nameSpace is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \return A bool type object containing true in case there is an entry present corresponding to the nameSpace string, otherwise false.
+ //! \note Raises warning in case of
+ //! - nameSpace is null pointer, or
+ //! - nameSpaceLength is 0.
+ //!
+ virtual bool APICALL IsNameSpacePresent( const char * nameSpace, sizet nameSpaceLength ) const = 0;
+
+ //!
+ //! @brief Gets the nameSpace string corresponding to the prefix string.
+ //! \param[in] prefix Pointer to a const char buffer containing prefix string.
+ //! \param[in] prefixLength Number of characters in prefix. In case prefix is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \return A shared pointer to const \#AdobeXMPCommon::IUTF8String object containing nameSpace string corresponding to
+ //! prefix string if a mapping exists, otherwise invalid shared pointer is returned.
+ //! \note Raises warning in case of
+ //! - prefix is null pointer, or
+ //! - prefixLength is 0.
+ //!
+ virtual spcIUTF8String APICALL GetNameSpace( const char * prefix, sizet prefixLength ) const = 0;
+
+ //!
+ //! @brief Get the prefix string corresponding to the nameSpace string.
+ //! \param[in] nameSpace Pointer to a constant char buffer containing nameSpace string.
+ //! \param[in] nameSpaceLength Number of characters in nameSpace. In case nameSpace is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \return A shared pointer to const \#AdobeXMPCommon::IUTF8String object containing prefix string corresponding to
+ //! nameSpace string if a mapping exists, otherwise invalid shared pointer is returned.
+ //! \note Raises warning in case of
+ //! - nameSpace is null pointer, or
+ //! - nameSpaceLength is 0.
+ //!
+ virtual spcIUTF8String APICALL GetPrefix( const char * nameSpace, sizet nameSpaceLength ) const = 0;
+
+ //!
+ //! @brief To get the total number of entries in the map.
+ //! \return An object of type \#AdobeXMPCommon::sizet containing the count of entries in the map.
+ //!
+ virtual sizet APICALL Size() const __NOTHROW__ = 0;
+
+ //!
+ //! @brief To check whether the map is empty or not.
+ //! \return True in case map is empty; false otherwise.
+ //!
+ bool IsEmpty() const __NOTHROW__;
+
+ //!
+ //! @brief Clear all the entries in the map.
+ //!
+ virtual void APICALL Clear() __NOTHROW__ = 0;
+
+ //!
+ //! \brief Virtual Copy Constructor.
+ //! \details Makes an another object which is exact replica of the existing object.
+ // \return A shared pointer to INameSpacePrefixMap which is exact replica of the current object.
+ //!
+ virtual spINameSpacePrefixMap APICALL Clone() const = 0;
+
+ //!
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+
+ //!
+ //! @{
+ //! @brief Returns the actual raw pointer from the shared pointer, which can be a shared pointer of a proxy class.
+ //! \return Either a const or non const pointer to INameSpacePrefixMap interface.
+ //!
+ virtual pINameSpacePrefixMap APICALL GetActualINameSpacePrefixMap() __NOTHROW__ = 0;
+ XMP_PRIVATE pcINameSpacePrefixMap GetActualINameSpacePrefixMap() const __NOTHROW__ {
+ return const_cast< INameSpacePrefixMap_v1 * >( this )->GetActualINameSpacePrefixMap();
+ }
+ //!
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Returns the pointer to internal interfaces.
+ //! \return Either a const or non const pointer to INameSpacePrefixMap_I interface.
+ //!
+ virtual AdobeXMPCore_Int::pINameSpacePrefixMap_I APICALL GetINameSpacePrefixMap_I() __NOTHROW__ = 0;
+
+ XMP_PRIVATE AdobeXMPCore_Int::pcINameSpacePrefixMap_I GetINameSpacePrefixMap_I() const __NOTHROW__ {
+ return const_cast< INameSpacePrefixMap_v1 * >( this )->GetINameSpacePrefixMap_I();
+ }
+ //!
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Converts raw pointer to shared pointer. The raw pointer is of version 1 interface
+ //! where as the returned shared pointer depends on the version client is interested in.
+ //! \return shared pointer to const or non constant interface.
+ //!
+ XMP_PRIVATE static spINameSpacePrefixMap MakeShared( pINameSpacePrefixMap_base ptr );
+ XMP_PRIVATE static spcINameSpacePrefixMap MakeShared( pcINameSpacePrefixMap_base ptr ) {
+ return MakeShared( const_cast< pINameSpacePrefixMap_base >( ptr ) );
+ }
+ //!
+ //! @}
+
+ //!
+ //! @brief Returns the unique ID assigned to the interface.
+ //! \return 64 bit unsigned integer representing the unique ID assigned to the interface.
+ //!
+ XMP_PRIVATE static uint64 GetInterfaceID() { return kINameSpacePrefixMapID; }
+
+ //!
+ //! @brief returns the version of the interface.
+ //! \return 32 bit unsigned integer representing the version of the interface.
+ //!
+ XMP_PRIVATE static uint32 GetInterfaceVersion() { return 1; }
+
+ //! \endcond
+
+
+ // static factory functions
+
+ //!
+ //! @brief Provides the default mapping of prefix string and nameSpace strings used by XMPCore.
+ //! \return A shared pointer to const INameSpacePrefixMap object containing all the mappings used
+ //! as default by the XMPCore.
+ //!
+ XMP_PRIVATE static spcINameSpacePrefixMap GetDefaultNameSpacePrefixMap();
+
+ //!
+ //! @brief Creates an empty namespace - prefix map and returns it to the client as a shared pointer.
+ //! \return A shared pointer to an empty INameSpacePrefixMap object.
+ //!
+ XMP_PRIVATE static spINameSpacePrefixMap CreateNameSpacePrefixMap();
+
+ protected:
+ //!
+ //! Destructor
+ //!
+ virtual ~INameSpacePrefixMap_v1() __NOTHROW__ {}
+
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+ const uint32 kPrefixIsParameter = 0;
+ const uint32 kNameSpaceIsParameter = 1;
+
+ virtual uint32 APICALL insert( const char * prefix, sizet prefixLength, const char * nameSpace, sizet nameSpaceLength, pcIError_base & error ) __NOTHROW__ = 0;
+ virtual uint32 APICALL remove( uint32 keyType, const char * key, sizet keyLength, pcIError_base & error ) __NOTHROW__ = 0;
+ virtual uint32 APICALL isPresent( uint32 keyType, const char * key, sizet keyLength, pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual pcIUTF8String_base APICALL get( uint32 keyType, const char * key, sizet keyLength, pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual pINameSpacePrefixMap_base APICALL clone( pcIError_base & error ) const __NOTHROW__ = 0;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ //! \endcond
+
+ };
+}
+
+#endif // INameSpacePrefixMap_h__
diff --git a/public/include/XMPCore/Interfaces/INode.h b/public/include/XMPCore/Interfaces/INode.h
new file mode 100644
index 0000000..59b64bb
--- /dev/null
+++ b/public/include/XMPCore/Interfaces/INode.h
@@ -0,0 +1,582 @@
+#ifndef __INode_h__
+#define __INode_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCore/XMPCoreFwdDeclarations.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/IVersionable.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/IThreadSafe.h"
+
+namespace AdobeXMPCore {
+
+ //!
+ //! \brief Version1 of the interface that serves as a base interface to all types of nodes in the XMP DOM.
+ //! \details Provides all the functions to get various properties of the node.
+ //! \attention Support multi threading through locks but can be enabled/disabled by the client. By default
+ //! every object created does not support multi-threading.
+ //!
+ class XMP_PUBLIC INode_v1
+ : public virtual ISharedObject
+ , public virtual IVersionable
+ , public virtual IThreadSafe
+ {
+ public:
+
+ //!
+ //! @brief Indicates various types of node available in XMP Data Model like simple, array and structure.
+ //!
+ typedef enum {
+ //! Indicates none, to be used as invalid type.
+ kNTNone = 0,
+
+ //! XMP Node is of Simple Node type (key value pair).
+ kNTSimple = 1,
+
+ //! XMP Node is of Array type. Indexing start from 1.
+ kNTArray = 1 << 1,
+
+ //! XMP Node is of structure type.
+ kNTStructure = 1 << 2,
+
+ //! XMP Node of any type
+ kNTAll = kAllBits
+ } eNodeType;
+
+ //!
+ //! @brief Gets the node type of the node.
+ //! \return An object of type \#eNodeType indicating the type of the node.
+ //!
+ virtual eNodeType APICALL GetNodeType() const = 0;
+
+ //!
+ //! @brief Gets the node type of the node's parent.
+ //! \return An object of type \#eNodeType indicating the type of the node.
+ //! \note \#eNodeType::kNTNone is returned in case node has no parent.
+ //!
+ virtual eNodeType APICALL GetParentNodeType() const = 0;
+
+ //!
+ //! @{
+ //! @brief Gets the parent node of the node.
+ //! \return Either a const or non const pointer to INode interface.
+ //! \return A shared pointer to either a const or non const \#AdobeXMPCore::INode representing the parent of the node.
+ //! \note Returns an invalid shared pointer in case the node is a root node or it is not part of tree.
+ //!
+ XMP_PRIVATE spcINode GetParent() const {
+ return const_cast< INode_v1 * >( this )->GetParent();
+ }
+ virtual spINode APICALL GetParent() = 0;
+ //!
+ //! @}
+
+ //!
+ //! @brief Changes the local name of the node.
+ //! \param[in] name Pointer to a constant char buffer containing local name of the node.
+ //! \param[in] nameLength Number of characters in name. In case name is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \attention Error can be thrown in case
+ //! - name is NULL pointer or its contents are empty
+ //! - name is not valid XML property name.
+ //! - Sibling with the same combination of name and nameSpace is present.
+ //!
+ virtual void APICALL SetName( const char * name, sizet nameLength ) = 0;
+
+ //!
+ //! @brief Gets the local name of the node.
+ //! \return a shared pointer to const \#AdobeXMPCommon::IUTF8String representing the name of the node.
+ //!
+ virtual spcIUTF8String APICALL GetName() const = 0;
+
+ //!
+ //! @brief Changes the name space of the node.
+ //! \param[in] nameSpace Pointer to a constant char buffer containing name space URI of the node.
+ //! \param[in] nameSpaceLength Number of characters in nameSpace. In case nameSpace is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \attention Error can be thrown in case
+ //! - nameSpace is NULL pointer or its contents are empty
+ //! - Sibling with the same combination of name and nameSpace is present.
+ //!
+ virtual void APICALL SetNameSpace( const char * nameSpace, sizet nameSpaceLength ) = 0;
+
+ //!
+ //! @brief Gets the name space of the node.
+ //! \return A shared pointer to const \#AdobeXMPCommon::IUTF8String representing the name space of the node.
+ //!
+ virtual spcIUTF8String APICALL GetNameSpace() const = 0;
+
+ //!
+ //! @brief Gets the path of the node from the root of the metadata.
+ //! \return A shared pointer to \#AdobeXMPCore::IPath representing the path of the node.
+ //!
+ virtual spIPath APICALL GetPath() const = 0;
+
+ //!
+ //! @brief Gets the count of the qualifiers attached with the node
+ //! \return An object of type \#AdobeXMPCommon::sizet containing the count of qualifiers attached with the node.
+ //!
+ virtual sizet APICALL QualifiersCount() const __NOTHROW__ = 0;
+
+ //!
+ //! @{
+ //! Get an iterator object to iterate over all the qualifier nodes attached to the composite node.
+ //! \return A shared pointer to a const or non const \#INodeIterator object.
+ //!
+ XMP_PRIVATE spcINodeIterator QualifiersIterator() const {
+ return const_cast< INode_v1 * >( this )->QualifiersIterator();
+ }
+ virtual spINodeIterator APICALL QualifiersIterator() = 0;
+ //! @}
+
+ //!
+ //! @brief Gets the type of the node's qualifier having specified namespace and name.
+ //! \param[in] nameSpace Pointer to a constant char buffer containing name space URI of the qualifier node.
+ //! \param[in] nameSpaceLength Number of characters in nameSpace. In case nameSpace is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \param[in] name Pointer to a constant char buffer containing local name of the qualifier node.
+ //! \param[in] nameLength Number of characters in name. In case name is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \return An object of type \#eNodeType indicating the type of the node's qualifier.
+ //! \note In case no qualifier exists with the specified nameSpace and name combination then an \#eNodeType::kNTNode is returned.
+ //!
+ virtual eNodeType APICALL GetQualifierNodeType( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) const = 0;
+
+ //!
+ //! @{
+ //! @brief Gets the qualifier of the node having specified namespace and name.
+ //! \param[in] nameSpace Pointer to a constant char buffer containing name space URI of the qualifier node.
+ //! \param[in] nameSpaceLength Number of characters in nameSpace. In case nameSpace is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \param[in] name Pointer to a constant char buffer containing local name of the qualifier node.
+ //! \param[in] nameLength Number of characters in name. In case name is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \return A shared pointer to either a const or const qualifier node.
+ //! \note In case no qualifier exists with the specified nameSpace and name combination then an invalid shared pointer
+ //! is returned.
+ //!
+ XMP_PRIVATE spcINode GetQualifier( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) const {
+ return const_cast< INode_v1 * >( this )->GetQualifier( nameSpace, nameSpaceLength, name, nameLength );
+ }
+ virtual spINode APICALL GetQualifier( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) = 0;
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Get the node's qualifier having specified name space and name as simple node.
+ //! \param[in] nameSpace Pointer to a constant char buffer containing name space URI of the qualifier node.
+ //! \param[in] nameSpaceLength Number of characters in nameSpace. In case nameSpace is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \param[in] name Pointer to a constant char buffer containing local name of the qualifier node.
+ //! \param[in] nameLength Number of characters in name. In case name is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \return A shared pointer to const or non const \#ISimpleNode object containing qualifier.
+ //! \note In case no qualifier exists with the specified nameSpace and name combination then an invalid shared pointer
+ //! is returned.
+ //! \attention Error is thrown in case
+ //! - a qualifier exists with the specified nameSpace and name combination but is not a simple node.
+ //!
+ XMP_PRIVATE spcISimpleNode GetSimpleQualifier( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) const {
+ auto node = GetQualifier( nameSpace, nameSpaceLength, name, nameLength );
+ if ( node ) return node->ConvertToSimpleNode();
+ return spcISimpleNode();
+ }
+
+ XMP_PRIVATE spISimpleNode GetSimpleQualifier( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) {
+ auto node = GetQualifier( nameSpace, nameSpaceLength, name, nameLength );
+ if ( node ) return node->ConvertToSimpleNode();
+ return spISimpleNode();
+ }
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Get the node's qualifier having specified name space and name as structure node.
+ //! \param[in] nameSpace Pointer to a constant char buffer containing name space URI of the qualifier node.
+ //! \param[in] nameSpaceLength Number of characters in nameSpace. In case nameSpace is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \param[in] name Pointer to a constant char buffer containing local name of the qualifier node.
+ //! \param[in] nameLength Number of characters in name. In case name is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \return A shared pointer to const or non const \#IStructureNode object containing qualifier.
+ //! \note In case no qualifier exists with the specified nameSpace and name combination then an invalid shared pointer
+ //! is returned.
+ //! \attention Error is thrown in case
+ //! - a qualifier exists with the specified nameSpace and name combination but is not a structure node.
+ //!
+ XMP_PRIVATE spcIStructureNode GetStructureQualifier( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) const {
+ auto node = GetQualifier( nameSpace, nameSpaceLength, name, nameLength );
+ if ( node ) return node->ConvertToStructureNode();
+ return spcIStructureNode();
+ }
+
+ XMP_PRIVATE spIStructureNode GetStructureQualifier( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) {
+ auto node = GetQualifier( nameSpace, nameSpaceLength, name, nameLength );
+ if ( node ) return node->ConvertToStructureNode();
+ return spIStructureNode();
+ }
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Get the node's qualifier having specified name space and name as an array node.
+ //! \param[in] nameSpace Pointer to a constant char buffer containing name space URI of the qualifier node.
+ //! \param[in] nameSpaceLength Number of characters in nameSpace. In case nameSpace is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \param[in] name Pointer to a constant char buffer containing local name of the qualifier node.
+ //! \param[in] nameLength Number of characters in name. In case name is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \return A shared pointer to const or non const \#ISimpleNode object containing qualifier.
+ //! \note In case no qualifier exists with the specified nameSpace and name combination then an invalid shared pointer
+ //! is returned.
+ //! \attention Error is thrown in case
+ //! - a qualifier exists with the specified nameSpace and name combination but is not an array node.
+ //!
+ XMP_PRIVATE spcIArrayNode GetArrayQualifier( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) const {
+ auto node = GetQualifier( nameSpace, nameSpaceLength, name, nameLength );
+ if ( node ) return node->ConvertToArrayNode();
+ return spcIArrayNode();
+ }
+
+ XMP_PRIVATE spIArrayNode GetArrayQualifier( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) {
+ auto node = GetQualifier( nameSpace, nameSpaceLength, name, nameLength );
+ if ( node ) return node->ConvertToArrayNode();
+ return spIArrayNode();
+ }
+ //! @}
+
+ //!
+ //! @brief Inserts a given qualifier node.
+ //! \param[in] node Shared pointer to an object of \#AdobeXMPCore::INode representing the qualifier node to be inserted.
+ //! \attention Error is thrown in following cases:
+ //! - given qualifier node is invalid.
+ //! - given qualifier node is already a child of some other node.
+ //! - there exists a qualifier node with the same nameSpace and name combination.
+ //! - parent or any ancestor node is a qualifier node.
+ //!
+ virtual void APICALL InsertQualifier( const spINode & node ) = 0;
+
+ //!
+ //! @brief Replaces a given qualifier node.
+ //! \param[in] node Shared pointer to an object of \#AdobeXMPCore::INode representing the qualifier node to be inserted.
+ //! \return A shared pointer to a qualifier node which is being replaced.
+ //! \attention Error is thrown in following cases:
+ //! -# given qualifier node is invalid.
+ //! -# given qualifier node is already a child of some other node.
+ //! -# there exists no qualifier node with the same nameSpace and name combination.
+ //! \note Warning is raised in case the type of the old existing node is not same as that of new node.
+ //!
+ virtual spINode APICALL ReplaceQualifier( const spINode & node ) = 0;
+
+ //!
+ //! @brief Removes the qualifier node with the specified nameSpace and name.
+ //! \param[in] nameSpace Pointer to a constant char buffer containing name space URI of the qualifier node.
+ //! \param[in] nameSpaceLength Number of characters in nameSpace. In case nameSpace is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \param[in] name Pointer to a constant char buffer containing local name of the qualifier node.
+ //! \param[in] nameLength Number of characters in name. In case name is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \return A shared pointer to \#AdobeXMPCore::INode object representing qualifier node which is removed from the node.
+ //! \note In case no qualifier node exists at the given index an invalid shared pointer is returned.
+ //!
+ virtual spINode APICALL RemoveQualifier( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) = 0;
+
+ //!
+ //! @brief Indicates whether the node is a direct child of an array node.
+ //! \return A bool value; true in case the node is a direct child of an array node, false otherwise.
+ //!
+ virtual bool APICALL IsArrayItem() const = 0;
+
+ //!
+ //! @brief Indicates whether the node is a qualifier node.
+ //! \return A bool value; true in case the node is a qualifier node, false otherwise.
+ //!
+ virtual bool APICALL IsQualifierNode() const = 0;
+
+ //!
+ //! @brief Returns the index of the node in case it is an array item.
+ //! \return The index of the node, in case it is an array item, otherwise returns 0.
+ //!
+ virtual sizet APICALL GetIndex() const = 0;
+
+ //!
+ //! @brief Indicates whether the node has any qualifiers associated with it.
+ //! \return A bool value; true in case the node has any qualifier associated with it, false otherwise.
+ //!
+ virtual bool APICALL HasQualifiers() const = 0;
+
+ //!
+ //! @brief Returns whether the node has any content or not.
+ //! return A bool value indicating the presence of contents in the node apart from qualifiers.
+ //!
+ virtual bool APICALL HasContent() const = 0;
+
+ //!
+ //! @brief Returns whether the node is empty.
+ //! return A bool value indicating whether the contents and qualifiers of a node are empty.
+ //!
+ virtual bool APICALL IsEmpty() const = 0;
+
+ //!
+ //! @brief Returns the status about any change done to the node or its children or qualifiers.
+ //! returns a bool value indicating whether some changes have been performed on the node or its children or qualifiers.
+ //! for a simple node, true will be returned in scenarios like when the node's value or qualifiers are modified.
+ //! for an array node or a structure node, true will be returned in scenarios like when the node's children or the node's qualifiers are modified.
+ //!
+ virtual bool APICALL HasChanged() const = 0;
+
+ //!
+ //! @brief Acknowledges that changes for the node and its children and qualifiers have been taken care of.
+ //! for a simple node, changes that will be acknowledged in scenarios like when the node's value or node's qualifiers were modified.
+ //! for an array node or a structure node, changes will be acknowledged in scenarios like when the node's children were or the node's qualifiers were modified.
+ //!
+ virtual void APICALL AcknowledgeChanges() const __NOTHROW__ = 0;
+
+ //!
+ //! @brief Clear the contents of the node.
+ //! \param[in] contents A bool value controlling whether contents of the node should be cleared or not.
+ //! \param[in] qualifiers A bool value controlling whether qualifiers of the node should be cleared or not.
+ //!
+ virtual void APICALL Clear( bool contents = true, bool qualifiers = true ) = 0;
+
+ //!
+ //! @{
+ //! @brief Converts Node to a simple node, if possible.
+ //! \return Shared pointer to const or non const ISimpleNode object. An empty simple node is thrown in case actual node is not a simple node.
+ //!
+ XMP_PRIVATE spcISimpleNode ConvertToSimpleNode() const {
+ return const_cast< INode_v1 * >( this )->ConvertToSimpleNode();
+ }
+ virtual spISimpleNode APICALL ConvertToSimpleNode() = 0;
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Converts Node to a structure node type, if possible.
+ //! \return Shared pointer to const or non const IStructureNode object. An empty structure node is thrown in case actual node is not a structure node.
+ //!
+ XMP_PRIVATE spcIStructureNode ConvertToStructureNode() const {
+ return const_cast< INode_v1 * >( this )->ConvertToStructureNode();
+ }
+ virtual spIStructureNode APICALL ConvertToStructureNode() = 0;
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Converts Node to an array node type, if possible.
+ //! \return Shared pointer to const or non const IArrayNode object. An empty array node is thrown in case actual node is not an array node.
+ //!
+ XMP_PRIVATE spcIArrayNode ConvertToArrayNode() const {
+ return const_cast< INode_v1 * >( this )->ConvertToArrayNode();
+ }
+ virtual spIArrayNode APICALL ConvertToArrayNode() = 0;
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Converts Node to a metadata node type, if possible.
+ //! \return Shared pointer to const or non const IMetadata object. An empty metadata node is thrown in case actual node is not a metadata node.
+ //!
+ XMP_PRIVATE spcIMetadata ConvertToMetadata() const {
+ return const_cast< INode_v1 * >( this )->ConvertToMetadata();
+ }
+ virtual spIMetadata APICALL ConvertToMetadata() = 0;
+ //! @}
+
+ //!
+ //! @brief Virtual copy constructor
+ //! @details Clones the node creating an exact replica of the node which is not part of any metadata tree.
+ //! \param[in] ignoreEmptyNodes A bool value controlling whether to clone empty nodes or not.
+ //! \param[in] ignoreNodesWithOnlyQualifiers A bool value controlling whether presence of only qualifiers should mark
+ //! node as non empty.
+ //! \return A shared pointer to newly created replica of the node.
+ //!
+ virtual spINode APICALL Clone( bool ignoreEmptyNodes = false, bool ignoreNodesWithOnlyQualifiers = false ) const = 0;
+
+ //!
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+
+ //!
+ //! @{
+ //! @brief Returns the actual raw pointer from the shared pointer, which can be a shared pointer of a proxy class.
+ //! \return Either a const or non const pointer to INode interface.
+ //!
+ virtual pINode APICALL GetActualINode() __NOTHROW__ = 0;
+
+ XMP_PRIVATE pcINode GetActualINode() const __NOTHROW__ {
+ return const_cast< INode_v1 * >( this )->GetActualINode();
+ }
+ //!
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Returns the pointer to internal interfaces.
+ //! \return Either a const or non const pointer to INode_I interface.
+ //!
+ virtual AdobeXMPCore_Int::pINode_I APICALL GetINode_I() __NOTHROW__ = 0;
+
+ XMP_PRIVATE AdobeXMPCore_Int::pcINode_I GetINode_I() const __NOTHROW__ {
+ return const_cast< INode_v1 * >( this )->GetINode_I();
+ }
+ //!
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Converts raw pointer to shared pointer. The raw pointer is of version 1 interface
+ //! where as the returned shared pointer depends on the version client is interested in.
+ //! \return Shared pointer to const or non constant interface.
+ //!
+ XMP_PRIVATE static spINode MakeShared( pINode_base ptr );
+ XMP_PRIVATE static spcINode MakeShared( pcINode_base ptr ) {
+ return MakeShared( const_cast< pINode_base >( ptr ) );
+ }
+ //!
+ //! @}
+
+ //!
+ //! @brief Returns the unique ID assigned to the interface.
+ //! \return 64 bit unsigned integer representing the unique ID assigned to the interface.
+ //!
+ XMP_PRIVATE static uint64 GetInterfaceID() { return kINodeID; }
+
+ //!
+ //! @brief Returns the version of the interface.
+ //! \return 32 bit unsigned integer representing the version of the interface.
+ //!
+ XMP_PRIVATE static uint32 GetInterfaceVersion() { return 1; }
+ //! \endcond
+
+ protected:
+ //!
+ //! Destructor
+ //!
+ virtual ~INode_v1() __NOTHROW__ {}
+
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+ virtual uint32 APICALL getParentNodeType( pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual pINode_base APICALL getParent( pcIError_base & error ) __NOTHROW__ = 0;
+ virtual void APICALL setName( const char * name, sizet nameLength, pcIError_base & error ) __NOTHROW__ = 0;
+ virtual pcIUTF8String_base APICALL getName( pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual void APICALL setNameSpace( const char * nameSpace, sizet nameSpaceLength, pcIError_base & error ) __NOTHROW__ = 0;
+ virtual pcIUTF8String_base APICALL getNameSpace( pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual pIPath_base APICALL getPath( pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual pINodeIterator_base APICALL qualifiersIterator( pcIError_base & error ) __NOTHROW__ = 0;
+ virtual uint32 APICALL getQualifierNodeType( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual pINode_base APICALL getQualifier( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) __NOTHROW__ = 0;
+ virtual void APICALL insertQualifier( pINode_base base, pcIError_base & error ) __NOTHROW__ = 0;
+ virtual pINode_base APICALL replaceQualifier( pINode_base node, pcIError_base & error ) __NOTHROW__ = 0;
+ virtual pINode_base APICALL removeQualifier( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) __NOTHROW__ = 0;
+ virtual uint32 APICALL getNodeType( pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual uint32 APICALL isArrayItem( pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual uint32 APICALL isQualifierNode( pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual sizet APICALL getIndex( pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual uint32 APICALL hasQualifiers( pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual uint32 APICALL hasContent( pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual uint32 APICALL isEmpty( pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual uint32 APICALL hasChanged( pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual void APICALL clear( uint32 contents, uint32 qualifiers, pcIError_base & error ) __NOTHROW__ = 0;
+ virtual pINode_base APICALL clone( uint32 igoreEmptyNodes, uint32 ignoreNodesWithOnlyQualifiers, pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual pISimpleNode_base APICALL convertToSimpleNode( pcIError_base & error ) __NOTHROW__ = 0;
+ virtual pIStructureNode_base APICALL convertToStructureNode( pcIError_base & error ) __NOTHROW__ = 0;
+ virtual pIArrayNode_base APICALL convertToArrayNode( pcIError_base & error ) __NOTHROW__ = 0;
+ virtual pIMetadata_base APICALL convertToMetadata( pcIError_base & error ) __NOTHROW__ = 0;
+
+ //! @}
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ //! \endcond
+
+ };
+}
+
+//! \cond XMP_INTERNAL_DOCUMENTATION
+#if !BUILDING_XMPCORE_LIB && !SOURCE_COMPILING_XMPCORE_LIB
+ namespace AdobeXMPCore {
+
+ class INodeProxy
+ : public virtual INode
+ {
+ private:
+ pINode mRawPtr;
+
+ public:
+ INodeProxy( pINode ptr );
+ ~INodeProxy() __NOTHROW__ ;
+
+ pINode APICALL GetActualINode() __NOTHROW__;
+ void APICALL Acquire() const __NOTHROW__;
+ void APICALL Release() const __NOTHROW__;
+
+ AdobeXMPCommon_Int::pISharedObject_I APICALL GetISharedObject_I() __NOTHROW__;
+ AdobeXMPCore_Int::pINode_I APICALL GetINode_I() __NOTHROW__;
+
+ pvoid APICALL GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion );
+
+ virtual eNodeType APICALL GetParentNodeType() const;
+ virtual spINode APICALL GetParent();
+ virtual void APICALL SetName( const char * name, sizet nameLength );
+ virtual spcIUTF8String APICALL GetName() const;
+ virtual void APICALL SetNameSpace( const char * nameSpace, sizet nameSpaceLength );
+ virtual spcIUTF8String APICALL GetNameSpace() const;
+ virtual spIPath APICALL GetPath() const;
+ virtual sizet APICALL QualifiersCount() const __NOTHROW__;
+ virtual spINodeIterator APICALL QualifiersIterator();
+ virtual eNodeType APICALL GetQualifierNodeType( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) const;
+ virtual spINode APICALL GetQualifier( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength );
+ virtual void APICALL InsertQualifier( const spINode & node );
+ virtual spINode APICALL ReplaceQualifier( const spINode & node );
+ virtual spINode APICALL RemoveQualifier( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength );
+ virtual eNodeType APICALL GetNodeType() const;
+ virtual bool APICALL IsArrayItem() const;
+ virtual bool APICALL IsQualifierNode() const;
+ virtual sizet APICALL GetIndex() const;
+ virtual bool APICALL HasQualifiers() const;
+ virtual bool APICALL HasContent() const;
+ virtual bool APICALL IsEmpty() const;
+ virtual bool APICALL HasChanged() const;
+ virtual void APICALL AcknowledgeChanges() const __NOTHROW__;
+ virtual void APICALL Clear( bool contents, bool qualifiers );
+ virtual spINode APICALL Clone( bool ignoreEmptyNodes, bool ignoreNodesWithOnlyQualifiers ) const;
+ virtual void APICALL EnableThreadSafety() const __NOTHROW__;
+ virtual void APICALL DisableThreadSafety() const __NOTHROW__;
+ virtual bool APICALL IsThreadSafe() const;
+ virtual AdobeXMPCommon_Int::pIThreadSafe_I APICALL GetIThreadSafe_I() __NOTHROW__;
+ virtual spISimpleNode APICALL ConvertToSimpleNode();
+ virtual spIStructureNode APICALL ConvertToStructureNode();
+ virtual spIArrayNode APICALL ConvertToArrayNode();
+ virtual spIMetadata APICALL ConvertToMetadata();
+
+ protected:
+ virtual pINode_base APICALL getParent( pcIError_base & error ) __NOTHROW__;
+ virtual void APICALL setName( const char * name, sizet nameLength, pcIError_base & error ) __NOTHROW__;
+ virtual pcIUTF8String_base APICALL getName( pcIError_base & error ) const __NOTHROW__;
+ virtual void APICALL setNameSpace( const char * nameSpace, sizet nameSpaceLength, pcIError_base & error ) __NOTHROW__;
+ virtual pcIUTF8String_base APICALL getNameSpace( pcIError_base & error ) const __NOTHROW__;
+ virtual pIPath_base APICALL getPath( pcIError_base & error ) const __NOTHROW__;
+ virtual pINodeIterator_base APICALL qualifiersIterator( pcIError_base & error ) __NOTHROW__;
+ virtual pINode_base APICALL getQualifier( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) __NOTHROW__;
+ virtual void APICALL insertQualifier( pINode_base base, pcIError_base & error ) __NOTHROW__;
+ virtual pINode_base APICALL replaceQualifier( pINode_base node, pcIError_base & error ) __NOTHROW__;
+ virtual pINode_base APICALL removeQualifier( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) __NOTHROW__;
+ virtual uint32 APICALL getNodeType( pcIError_base & error ) const __NOTHROW__;
+ virtual uint32 APICALL isArrayItem( pcIError_base & error ) const __NOTHROW__;
+ virtual uint32 APICALL isQualifierNode( pcIError_base & error ) const __NOTHROW__;
+ virtual sizet APICALL getIndex( pcIError_base & error ) const __NOTHROW__;
+ virtual uint32 APICALL hasQualifiers( pcIError_base & error ) const __NOTHROW__;
+ virtual uint32 APICALL hasContent( pcIError_base & error ) const __NOTHROW__;
+ virtual uint32 APICALL isEmpty( pcIError_base & error ) const __NOTHROW__;
+ virtual uint32 APICALL hasChanged( pcIError_base & error ) const __NOTHROW__;
+ virtual void APICALL clear( uint32 contents, uint32 qualifiers, pcIError_base & error ) __NOTHROW__;
+ virtual pINode_base APICALL clone( uint32 igoreEmptyNodes, uint32 ignoreNodesWithOnlyQualifiers, pcIError_base & error ) const __NOTHROW__;
+ virtual uint32 APICALL isThreadSafe() const __NOTHROW__;
+ virtual pISimpleNode_base APICALL convertToSimpleNode( pcIError_base & error ) __NOTHROW__;
+ virtual pIStructureNode_base APICALL convertToStructureNode( pcIError_base & error ) __NOTHROW__;
+ virtual pIArrayNode_base APICALL convertToArrayNode( pcIError_base & error ) __NOTHROW__;
+ virtual pIMetadata_base APICALL convertToMetadata( pcIError_base & error ) __NOTHROW__;
+ virtual uint32 APICALL getParentNodeType( pcIError_base & error ) const __NOTHROW__;
+ virtual uint32 APICALL getQualifierNodeType( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) const __NOTHROW__;
+ pvoid APICALL getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__;
+ };
+
+}
+#endif // !BUILDING_XMPCORE_LIB && !SOURCE_COMPILING_XMPCORE_LIB
+//! \endcond
+
+#endif // __INode_h__
diff --git a/public/include/XMPCore/Interfaces/INodeIterator.h b/public/include/XMPCore/Interfaces/INodeIterator.h
new file mode 100644
index 0000000..93bb194
--- /dev/null
+++ b/public/include/XMPCore/Interfaces/INodeIterator.h
@@ -0,0 +1,193 @@
+#ifndef __INodeIterator_h__
+#define __INodeIterator_h__ 1
+
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCore/XMPCoreFwdDeclarations.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h"
+#include "XMPCore/Interfaces/INode.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/IVersionable.h"
+
+namespace AdobeXMPCore {
+
+ //!
+ //! @brief Interface that represents an iterator over the mutable children of a XMP DOM Node.
+ //! \note Iterators are valid as long as their are no changes performed on the node. In case there are some
+ //! changes performed on the node then the behavior is undefined.
+ //!
+ class XMP_PUBLIC INodeIterator_v1
+ : public virtual ISharedObject
+ , public virtual IVersionable
+ {
+ public:
+
+ //!
+ //! @brief Gets the type of the node currently pointed by the iterator.
+ //! \return A value of type \#INode_v1::eNodeType indicating the type of the node currently pointed by the iterator.
+ //!
+ virtual INode_v1::eNodeType APICALL GetNodeType() const = 0;
+
+ //!
+ //! @{
+ //! @brief Gets the node currently pointed by the iterator.
+ //! \return A shared pointer to a const or non const object of type \#INode.
+ //! \note In case iterator has gone beyond its limit, an invalid shared pointer is returned
+ //!
+ virtual spINode APICALL GetNode() = 0;
+ XMP_PRIVATE spcINode APICALL GetNode() const {
+ return const_cast< INodeIterator * >( this )->GetNode();
+ };
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Gets the iterator's currently pointed node as simple node, if possible.
+ //! \return A shared pointer to a const or non const object of type \#ISimpleNode.
+ //! \attention Error is thrown in case
+ //! - iterator's currently pointed node is valid but is not a simple node.
+ //! \note In case iterator has gone beyond its limit, an invalid shared pointer is returned.
+ //!
+ XMP_PRIVATE spISimpleNode GetSimpleNode() {
+ auto node = GetNode();
+ if ( node ) return node->ConvertToSimpleNode();
+ return spISimpleNode();
+ }
+
+ XMP_PRIVATE spcISimpleNode GetSimpleNode() const {
+ return const_cast< INodeIterator * >( this )->GetSimpleNode();
+ }
+ //! @}
+
+ //!
+ //! @brief Gets the iterator's currently pointed node as structure node, if possible.
+ //! \return A shared pointer to a const or non const object of type \#IStructureNode.
+ //! \attention Error is thrown in case
+ //! - iterator's currently pointed node is valid but is not a structure node.
+ //! \note In case iterator has gone beyond its limit, an invalid shared pointer is returned.
+ //!
+ XMP_PRIVATE spIStructureNode GetStructureNode() {
+ auto node = GetNode();
+ if ( node ) return node->ConvertToStructureNode();
+ return spIStructureNode();
+ }
+
+ XMP_PRIVATE spcIStructureNode GetStructureNode() const {
+ return const_cast< INodeIterator * >( this )->GetStructureNode();
+ }
+ //! @}
+
+ //!
+ //! @brief Gets the iterator's currently pointed node as an array node, if possible.
+ //! \return A shared pointer to a const or non const object of type \#IArrayNode.
+ //! \attention Error is thrown in case
+ //! - iterator's currently pointed node is valid but is not an array node.
+ //! \note In case iterator has gone beyond its limit, an invalid shared pointer is returned.
+ //!
+ XMP_PRIVATE spIArrayNode GetArrayNode() {
+ auto node = GetNode();
+ if ( node ) return node->ConvertToArrayNode();
+ return spIArrayNode();
+ }
+
+ XMP_PRIVATE spcIArrayNode GetArrayNode() const {
+ return const_cast< INodeIterator * >( this )->GetArrayNode();
+ }
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Advances iterator by one position.
+ //! \return A shared pointer to a const or non object of type \#INodeIterator.
+ //! \note Returned shared pointer is invalid in case the current node is the last one.
+ //!
+ virtual spINodeIterator APICALL Next() = 0;
+ XMP_PRIVATE spcINodeIterator APICALL Next() const {
+ return const_cast< INodeIterator * >( this )->Next();
+ }
+ //! @}
+
+
+ //!
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+
+ //!
+ //! @{
+ //! @brief Returns the actual raw pointer from the shared pointer, which can be a shared pointer of a proxy class.
+ //! \return Either a const or non const pointer to INodeIterator interface.
+ //!
+ virtual pINodeIterator APICALL GetActualINodeIterator() __NOTHROW__ = 0;
+ XMP_PRIVATE pcINodeIterator GetActualINodeIterator() const __NOTHROW__ {
+ return const_cast< INodeIterator * >( this )->GetActualINodeIterator();
+ }
+ //!
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Returns the pointer to internal interfaces.
+ //! \return Either a const or non const pointer to INodeIterator_I interface.
+ //!
+ virtual AdobeXMPCore_Int::pINodeIterator_I APICALL GetINodeIterator_I() __NOTHROW__ = 0;
+ XMP_PRIVATE AdobeXMPCore_Int::pcINodeIterator_I GetINodeIterator_I() const __NOTHROW__ {
+ return const_cast< INodeIterator * >( this )->GetINodeIterator_I();
+ }
+ //!
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Converts raw pointer to shared pointer.
+ //! \return Shared pointer to const or non constant interface.
+ //!
+ XMP_PRIVATE static spINodeIterator MakeShared( pINodeIterator ptr );
+ XMP_PRIVATE static spcINodeIterator MakeShared( pcINodeIterator ptr ) {
+ return MakeShared( const_cast< pINodeIterator >( ptr ) );
+ }
+ //!
+ //! @}
+
+ //!
+ //! @}
+
+ //!
+ //! return the unique ID assigned to the interface.
+ //! \return 64 bit unsigned integer representing the unique ID assigned to the interface.
+ //!
+ XMP_PRIVATE static uint64 GetInterfaceID() { return kINodeIteratorID; }
+
+ //!
+ //! return the version of the interface.
+ //! \return 32 bit unsigned integer representing the version of the interface.
+ //!
+ XMP_PRIVATE static uint32 GetInterfaceVersion() { return 1; }
+ //! \endcond
+
+ protected:
+ //!
+ //! Destructor
+ //!
+ virtual ~INodeIterator_v1() __NOTHROW__ {}
+
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+ virtual uint32 APICALL getNodeType( pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual pINode_base APICALL getNode( pcIError_base & error ) __NOTHROW__ = 0;
+ virtual pINodeIterator_base APICALL next( pcIError_base & error ) __NOTHROW__ = 0;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ //! \endcond
+
+ };
+}
+
+#endif // __INodeIterator_h__
diff --git a/public/include/XMPCore/Interfaces/IPath.h b/public/include/XMPCore/Interfaces/IPath.h
new file mode 100644
index 0000000..7f55853
--- /dev/null
+++ b/public/include/XMPCore/Interfaces/IPath.h
@@ -0,0 +1,212 @@
+#ifndef __IPath_h__
+#define __IPath_h__ 1
+
+// =================================================================================================
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved.
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCore/XMPCoreFwdDeclarations.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/IVersionable.h"
+
+namespace AdobeXMPCore {
+
+ //!
+ //! @brief Version1 of the interface that provides an easy iterative description of a specific path into the XMP tree.
+ //! @details Path consists of multiple path segments in an order and each \#IPathSegment represents one segment
+ //! of the path into the XMP tree.
+ //! Provides all the functions to create path and get the various properties of a path.
+ //! \attention Do not support multi-threading.
+ //! \note Index in the path are 1-based.
+ //!
+ class XMP_PUBLIC IPath_v1
+ : public virtual ISharedObject
+ , public virtual IVersionable
+ {
+ public:
+
+ //!
+ //! @brief Registers a map of namespace and prefix with the object.
+ //! This map will be used during serialization and parsing.
+ //! \param[in] map A shared pointer of an object \#AdobeXMPCore::INameSpacePrefixMap.
+ //! \return A shared pointer to the const map registered previously with the object.
+ //!
+ virtual spcINameSpacePrefixMap APICALL RegisterNameSpacePrefixMap( const spcINameSpacePrefixMap & map ) = 0;
+
+ //!
+ //! @brief Serializes the IPath object to a utf8 string representation. This will produce either a long form of the path using
+ //! the full namespace strings or short form of the path using the prefix for the namespace.
+ //! \param[in] map A shared pointer to a const \#AdobeXMPCore::INameSpacePrefixMap object which can contain the
+ //! mapping for nameSpaces to prefixes. They will take precedence over the map registered with the object.
+ //! \return A shard pointer to \#AdobeXMPCommon::IUTF8String object containing serialized form of path.
+ //! \note In case map is not a valid shared pointer all the mappings will be picked from the map registered with the object.
+ //! If neither a map is registered nor it is provided in the arguments then it will serialize to long form of the path.
+ //! \attention Error will be thrown in case
+ //! - no prefix exists for a namespace used in the path.
+ //!
+ virtual spIUTF8String APICALL Serialize( const spcINameSpacePrefixMap & map = spcINameSpacePrefixMap() ) const = 0;
+
+ //!
+ //! @brief Appends a path segment to the path.
+ //! \param[in] segment A shared pointer to a const \#AdobeXMPCore::IPathSegment object.
+ //! \attention Error is thrown in case
+ //! - segment is not a valid shared pointer.
+ //!
+ virtual void APICALL AppendPathSegment( const spcIPathSegment & segment ) = 0;
+
+ //!
+ //! @brief Removes a path segment from the path.
+ //! \param[in] index Indicates the index of the path segment to be removed.
+ //! \returns A shared pointer to the const path segment removed.
+ //! \attention Error is thrown in case
+ //! - index is out of bounds.
+ //!
+ virtual spcIPathSegment APICALL RemovePathSegment( sizet index ) = 0;
+
+ //!
+ //! @brief Gets the path segment at a particular index in the path
+ //! \param[in] index Indicates the index for the path segment in the path.
+ //! \return A shared pointer to a const path segment.
+ //! \attention Error is thrown in case
+ //! -index is out of bounds.
+ //!
+ virtual spcIPathSegment APICALL GetPathSegment( sizet index ) const = 0;
+
+ //!
+ //! @brief Gets the number of the path segments in the path.
+ //! \return The count of the path segments in the path.
+ //!
+ virtual sizet APICALL Size() const __NOTHROW__ = 0;
+
+ //!
+ //! @brief To check whether path is empty or not.
+ //! \returns A bool object indicating true in case the path is empty (no path segment)
+ //!
+ XMP_PRIVATE bool IsEmpty() const {
+ return Size() == 0;
+ }
+
+ //!
+ //! @brief Clears the path by removing all the path segments from it
+ //!
+ virtual void APICALL Clear() __NOTHROW__ = 0;
+
+ //!
+ //! @brief Gets a new path having a selected range of path segments
+ //! \param[in] startingIndex Indicates the starting index of the path segment to be part of the returned path object. Default value is 1.
+ //! \param[in] countOfSegments Indicates the count of the path segments to be part of the returned path object starting from startingIndex.
+ //! Default value is \#AdobeXMPCommon::kMaxSize.
+ //! \note In case countOfSegments is more than the number of segments available in the path object starting from the starting index
+ //! then internally it is truncated to the number of path segments available.
+ //! \attention Error is thrown in case
+ //! - startingIndex is more than the count of segments in the object.
+ //!
+ virtual spIPath APICALL Clone( sizet startingIndex = 1, sizet countOfSegments = kMaxSize ) const = 0;
+
+ //!
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+
+ //!
+ //! @{
+ //! @brief Returns the actual raw pointer from the shared pointer, which can be a shared pointer of a proxy class.
+ //! \return Either a const or non const pointer to IPath interface.
+ //!
+ virtual pIPath APICALL GetActualIPath() __NOTHROW__ = 0;
+ XMP_PRIVATE pcIPath GetActualIPath() const __NOTHROW__ {
+ return const_cast< IPath_v1 * >( this )->GetActualIPath();
+ }
+ //!
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Returns the pointer to internal interfaces.
+ //! \return Either a const or non const pointer to IPath_I interface.
+ //!
+ virtual AdobeXMPCore_Int::pIPath_I APICALL GetIPath_I() __NOTHROW__ = 0;
+
+ XMP_PRIVATE AdobeXMPCore_Int::pcIPath_I GetIPath_I() const __NOTHROW__ {
+ return const_cast< IPath_v1 * >( this )->GetIPath_I();
+ }
+ //!
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Converts raw pointer to shared pointer. The raw pointer is of version 1 interface
+ //! where as the returned shared pointer depends on the version client is interested in.
+ //! \return Shared pointer to const or non constant interface.
+ //!
+ XMP_PRIVATE static spIPath MakeShared( pIPath_base ptr );
+ XMP_PRIVATE static spcIPath MakeShared( pcIPath_base ptr ) {
+ return MakeShared( const_cast< pIPath_base >( ptr ) );
+ }
+ //!
+ //! @}
+
+ //!
+ //! @brief Returns the unique ID assigned to the interface.
+ //! \return 64 bit unsigned integer representing the unique ID assigned to the interface.
+ //!
+ XMP_PRIVATE static uint64 GetInterfaceID() { return kIPathID; }
+
+ //!
+ //! @brief Returns the version of the interface.
+ //! \return 32 bit unsigned integer representing the version of the interface.
+ //!
+ XMP_PRIVATE static uint32 GetInterfaceVersion() { return 1; }
+ //! \endcond
+
+ // static factory functions
+
+ //!
+ //! @brief Creates an empty IPath object.
+ //! \return a shared pointer to an empty IPath object
+ //!
+ XMP_PRIVATE static spIPath CreatePath();
+
+ //!
+ //! @brief Creates a path from a char buffer which contains the serialized path.
+ //! \param[in] path Pointer to a const char buffer containing serialized form of the path.
+ //! \param[in] pathLength Number of characters in the path. In case path in null terminated set it to \#AdobeXMPCommon::npos.
+ //! \param[in] map A shared pointer to a const \#AdobeXMPCore::IXMPNameSpacePrefixMap object which will contain the
+ //! mapping from nameSpaces to prefixes.
+ //! \return A shared pointer to a \#AdobeXMPCore::IPath object.
+ //! \note In case the serializedPath is NULL or the contents are empty then it will result in an empty path.
+ //! \note This operation is currently not implemented for the IPath interface.
+ //! \attention Error is thrown in case
+ //! - no mapping exists for a prefix to name space.
+ //! - path contains invalid data.
+ //!
+ XMP_PRIVATE static spIPath ParsePath( const char * path, sizet pathLength, const spcINameSpacePrefixMap & map );
+
+
+ protected:
+ //!
+ //! Destructor
+ //!
+ virtual ~IPath_v1() __NOTHROW__ {}
+
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+ virtual pcINameSpacePrefixMap_base APICALL registerNameSpacePrefixMap( pcINameSpacePrefixMap_base map, pcIError_base & error ) __NOTHROW__ = 0;
+ virtual pIUTF8String_base APICALL serialize( pcINameSpacePrefixMap_base map, pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual void APICALL appendPathSegment( pcIPathSegment_base segment, pcIError_base & error ) __NOTHROW__ = 0;
+ virtual pcIPathSegment_base APICALL removePathSegment( sizet index, pcIError_base & error ) __NOTHROW__ = 0;
+ virtual pcIPathSegment_base APICALL getPathSegment( sizet index, pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual pIPath_base APICALL clone( sizet startingIndex, sizet countOfSegemetns, pcIError_base & error ) const __NOTHROW__ = 0;
+
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ //! \endcond
+
+ };
+}
+
+#endif // __IPath_h__
diff --git a/public/include/XMPCore/Interfaces/IPathSegment.h b/public/include/XMPCore/Interfaces/IPathSegment.h
new file mode 100644
index 0000000..9dd9ac9
--- /dev/null
+++ b/public/include/XMPCore/Interfaces/IPathSegment.h
@@ -0,0 +1,225 @@
+#ifndef __IPathSegment_h__
+#define __IPathSegment_h__ 1
+
+// =================================================================================================
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved.
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCore/XMPCoreFwdDeclarations.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h"
+#include "XMPCommon/Interfaces/BaseInterfaces/IVersionable.h"
+
+namespace AdobeXMPCore {
+
+ //!
+ //! @brief Version1 of the interface that represents one segment in a path to a node into the XMP tree.
+ //! @details Provides all the functions to access properties of the path segment and factory functions
+ //! to create various kinds of path segments.
+ //! \attention Not thread safe and not required as only read only access is provided to client.
+ //!
+ class XMP_PUBLIC IPathSegment_v1
+ : public virtual ISharedObject
+ , public virtual IVersionable
+ {
+ public:
+
+ //!
+ //! @brief This enumeration represents the types of a path segment.
+ //!
+ typedef enum {
+ //! None type
+ kPSTNone = 0,
+
+ //! Any property that consists of namespace and a localName
+ kPSTProperty = 1,
+
+ //! An array index which does not have a namespace or localName itself
+ kPSTArrayIndex = 1 << 1,
+
+ //! A qualifier of a property, also consists of namespace and localName
+ kPSTQualifier = 1 << 2,
+
+ //! Selects a specific qualifier by its value (e.g. specific language)
+ kPSTQualifierSelector = 1 << 3,
+
+ //! Represents all property types
+ kPSTAll = kAllBits
+ } ePathSegmentType;
+
+ //!
+ //! @brief Gets the name space of the path segment.
+ //! \return A shared pointer to const \#AdobeXMPCommon::IUTF8String object representing namespace of the path segment.
+ //!
+ virtual spcIUTF8String APICALL GetNameSpace() const = 0;
+
+ //!
+ //! @brief Gets the name of the path segment.
+ //! \return A shared pointer to const \#AdobeXMPCommon::IUTF8String object containing name of the path segment. In case
+ //! path segment has no name space, an invalid shared pointer is returned.
+ //!
+ virtual spcIUTF8String APICALL GetName() const = 0;
+
+ //!
+ //! @brief Gets the type of the path segment.
+ //! \return An object of type \#ePathSegmentType representing type of the path segment.
+ //!
+ virtual ePathSegmentType APICALL GetType() const = 0;
+
+ //!
+ //! @brief Gets the index of the array type path segment.
+ //! \return An objet of type \#AdobeXMPCommon::sizet object representing index of the array type path segment. In case
+ //! path segment is not of type kPSTArrayIndex, it returns \#AdobeXMPCommon::kMaxSize.
+ //!
+ virtual sizet APICALL GetIndex() const __NOTHROW__ = 0;
+
+ //!
+ //! @brief Gets the value of the qualifier type path segment.
+ //! \return A shared pointer to const \#AdobeXMP::IUTF8String object representing value of the qualifier type path segment.
+ //! In case path segment is not of type kPSTQualifier an invalid shared pointer is returned.
+ //!
+ virtual spcIUTF8String APICALL GetValue() const = 0;
+
+ //!
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+
+ //!
+ //! @{
+ //! @brief Returns the actual raw pointer from the shared pointer, which can be a shared pointer of a proxy class.
+ //! \return Either a const or non const pointer to IPathSegment interface.
+ //!
+ virtual pIPathSegment APICALL GetActualIPathSegment() __NOTHROW__ = 0;
+ XMP_PRIVATE pcIPathSegment GetActualIPathSegment() const __NOTHROW__ {
+ return const_cast< IPathSegment_v1 * >( this )->GetActualIPathSegment();
+ }
+ //!
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Returns the pointer to internal interfaces.
+ //! \return Either a const or non const pointer to IPathSegment_I interface.
+ //!
+ virtual AdobeXMPCore_Int::pIPathSegment_I APICALL GetIPathSegment_I() __NOTHROW__ = 0;
+
+ XMP_PRIVATE AdobeXMPCore_Int::pcIPathSegment_I GetIPathSegment_I() const __NOTHROW__ {
+ return const_cast< IPathSegment_v1 * >( this )->GetIPathSegment_I();
+ }
+ //!
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Converts raw pointer to shared pointer.
+ //! @details The raw pointer is of version 1 interface
+ //! where as the returned shared pointer depends on the version client is interested in.
+ //! \return Shared pointer to const or non constant interface.
+ //!
+ XMP_PRIVATE static spIPathSegment MakeShared( pIPathSegment_base ptr );
+ XMP_PRIVATE static spcIPathSegment MakeShared( pcIPathSegment_base ptr ) {
+ return MakeShared( const_cast< pIPathSegment_base >( ptr ) );
+ }
+ //!
+ //! @}
+
+ //!
+ //! @brief Returns the unique ID assigned to the interface.
+ //! \return 64 bit unsigned integer representing the unique ID assigned to the interface.
+ //!
+ XMP_PRIVATE static uint64 GetInterfaceID() { return kIPathSegmentID; }
+
+ //!
+ //! @brief Returns the version of the interface.
+ //! \return 32 bit unsigned integer representing the version of the interface.
+ //!
+ XMP_PRIVATE static uint32 GetInterfaceVersion() { return 1; }
+ //! \endcond
+
+ // static factory functions
+
+ // Factories to create the specific segments
+
+ //!
+ //! @brief Creates a normal property path segment.These are essentially all properties (simple, struct and arrays).
+ //! \param[in] nameSpace Pointer to a constant char buffer containing name space URI of the property.
+ //! \param[in] nameSpaceLength Number of characters in nameSpace. In case nameSpace is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \param[in] name Pointer to a constant char buffer containing local name of the property.
+ //! \param[in] nameLength Number of characters in name. In case name is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \return A shared pointer to const \#IPathSegment.
+ //! \attention Throws \#AdobeXMPCommon::pcIError in case
+ //! - pointers to const char buffers are NULL,
+ //! - their content is empty.
+ //!
+ XMP_PRIVATE static spcIPathSegment CreatePropertyPathSegment( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength );
+
+ //!
+ //! @brief Creates an array index path segment that denotes a specific element of an array.
+ //! @details Such segments do not have an own name and inherits the namespace from the Array property itself.
+ //! \param[in] nameSpace Pointer to a constant char buffer containing name space URI of the property.
+ //! \param[in] nameSpaceLength Number of characters in nameSpace. In case nameSpace is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \param[in] index An object of type \#AdobeXMP::sizet containting the index of the array element.
+ //! \return A shared pointer to const \#IPathSegment.
+ //! \attention Throws \#AdobeXMP::pcIError in case
+ //! - pointers to const char buffers are NULL,
+ //! - their content is empty.
+ //!
+ //!
+ XMP_PRIVATE static spcIPathSegment CreateArrayIndexPathSegment( const char * nameSpace, sizet nameSpaceLength, sizet index );
+
+ //!
+ //! @brief Creates a Qualifier path segment, which behaves like a normal property
+ //! \param[in] nameSpace Pointer to a constant char buffer containing name space URI of the property.
+ //! \param[in] nameSpaceLength Number of characters in nameSpace. In case nameSpace is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \param[in] name Pointer to a constant char buffer containing local name of the property.
+ //! \param[in] nameLength Number of characters in name. In case name is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \return A shared pointer to const \#IPathSegment.
+ //! \attention Throws \#AdobeXMPCommon::pcIError in case
+ //! - pointers to const char buffers are NULL,
+ //! - their content is empty.
+ //!
+ XMP_PRIVATE static spcIPathSegment CreateQualifierPathSegment( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength );
+
+ //!
+ //! @brief Creates a path segment that selects a specific qualifier by its value.
+ //! For example a specific language in a alternative array of languages.
+ //! \param[in] nameSpace Pointer to a constant char buffer containing name space URI of the property.
+ //! \param[in] nameSpaceLength Number of characters in nameSpace. In case nameSpace is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \param[in] name Pointer to a constant char buffer containing local name of the property.
+ //! \param[in] nameLength Number of characters in name. In case name is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \param[in] value Pointer to a constant char buffer containing value of the language (xml:lang)
+ //! \param[in] valueLength Number of characters in value. In case value is null terminated set it to \#AdobeXMPCommon::npos.
+ //! \return A shared pointer to const \#IPathSegment.
+ //! \attention Throws #AdobeXMPCommon::pcIError in case
+ //! - pointers to const char buffers are NULL,
+ //! - their content is empty.
+ //!
+ XMP_PRIVATE static spcIPathSegment CreateQualifierSelectorPathSegment( const char * nameSpace, sizet nameSpaceLength, const char * name,
+ sizet nameLength, const char * value, sizet valueLength );
+
+
+
+ protected:
+ //!
+ //! Destructor
+ //!
+ virtual ~IPathSegment_v1() __NOTHROW__ {}
+
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+ virtual pcIUTF8String_base APICALL getNameSpace( pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual pcIUTF8String_base APICALL getName( pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual uint32 APICALL getType( pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual pcIUTF8String_base APICALL getValue( pcIError_base & error ) const __NOTHROW__ = 0;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ //! \endcond
+
+ };
+}
+
+#endif // __IPathSegment_h__
diff --git a/public/include/XMPCore/Interfaces/ISimpleNode.h b/public/include/XMPCore/Interfaces/ISimpleNode.h
new file mode 100644
index 0000000..8d154d3
--- /dev/null
+++ b/public/include/XMPCore/Interfaces/ISimpleNode.h
@@ -0,0 +1,150 @@
+#ifndef __ISimpleNode_h__
+#define __ISimpleNode_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCore/Interfaces/INode.h"
+
+namespace AdobeXMPCore {
+
+ //!
+ //! \brief Version1 of the interface that represents a Simple Property Node of XMP DOM.
+ //! \details Provides all the functions to get and set various properties of the simple node.
+ //! \attention Support multi threading through locks but can be enabled/disabled by the client. By default
+ //! every object created does not support multi-threading.
+ //!
+ class XMP_PUBLIC ISimpleNode_v1
+ : public virtual INode_v1
+ {
+ public:
+
+ //!
+ //! @brief Gets the value of the simple property node.
+ //! \return A shared pointer to const AdobeXMPCommon::IUTF8String object containing value string
+ //! of the simple property node.
+ //!
+ virtual spcIUTF8String APICALL GetValue() const = 0;
+
+ //!
+ //! @brief Changes the value string of the simple property node.
+ //! \param[in] value Pointer to a constant char buffer containing value of the simple node.
+ //! \param[in] valueLength Number of characters in value. In case name is null terminated set it to AdobeXMPCommon::npos.
+ //! \note In case the value is null pointer or its contents are empty than the value is set to empty string.
+ //!
+ virtual void APICALL SetValue( const char * value, sizet valueLength ) = 0;
+
+ //!
+ //! @brief Indicates whether the simple property node is of URI type.
+ //! \return A bool value; true in case the simple node is of URI type, false otherwise.
+ //!
+ virtual bool APICALL IsURIType() const = 0;
+
+ //!
+ //! @brief Controls whether the type of simple property node should be of IsURI type or not.
+ //! \param[in] isURI A bool value controlling the IsURI type of the simple property node
+ //!
+ virtual void APICALL SetURIType( bool isURI ) = 0;
+
+ // Factories to create the simple node
+
+ //!
+ //! @brief Creates a simple property node which is not part of any metadata document.
+ //! \param[in] nameSpace Pointer to a constant char buffer containing name space URI of the simple node.
+ //! \param[in] nameSpaceLength Number of characters in nameSpace. In case nameSpace is null terminated set it to AdobeXMPCommon::npos.
+ //! \param[in] name Pointer to a constant char buffer containing local name of the simple node.
+ //! \param[in] nameLength Number of characters in name. In case name is null terminated set it to AdobeXMPCommon::npos.
+ //! \param[in] value Pointer to a constant char buffer containing value of the simple node.
+ //! \param[in] valueLength Number of characters in value. In case name is null terminated set it to AdobeXMPCommon::npos.
+ //! \return A shared pointer to a AdobeXMPCore::ISimpleNode object.
+ //! \attention Error is thrown in case
+ //! - nameSpace or name are NULL pointers, or
+ //! - their contents are empty.
+ //! \note In case the value is a null pointer or its contents are empty than the value is set to empty string.
+ //!
+ XMP_PRIVATE static spISimpleNode CreateSimpleNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength,
+ const char * value = NULL, sizet valueLength = AdobeXMPCommon::npos );
+
+
+ //!
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+
+ //!
+ //! @{
+ //! @brief Returns the actual raw pointer from the shared pointer, which can be a shared pointer of a proxy class.
+ //! \return Either a const or non const pointer to ISimpleNode interface.
+ //!
+ virtual pISimpleNode APICALL GetActualISimpleNode() __NOTHROW__ = 0;
+ XMP_PRIVATE pcISimpleNode GetActualISimpleNode() const __NOTHROW__ {
+ return const_cast< ISimpleNode_v1 * >( this )->GetActualISimpleNode();
+ }
+ //!
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Returns the pointer to internal interfaces.
+ //! \return Either a const or non const pointer to ISimpleNode_I interface.
+ //!
+ virtual AdobeXMPCore_Int::pISimpleNode_I APICALL GetISimpleNode_I() __NOTHROW__ = 0;
+
+ XMP_PRIVATE AdobeXMPCore_Int::pcISimpleNode_I GetISimpleNode_I() const __NOTHROW__ {
+ return const_cast< ISimpleNode_v1 * >( this )->GetISimpleNode_I();
+ }
+ //!
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Converts raw pointer to shared pointer. The raw pointer is of version 1 interface
+ //! where as the returned shared pointer depends on the version client is interested in.
+ //! \return Shared pointer to const or non constant interface.
+ //!
+ XMP_PRIVATE static spISimpleNode MakeShared( pISimpleNode_base ptr );
+ XMP_PRIVATE static spcISimpleNode MakeShared( pcISimpleNode_base ptr ) {
+ return MakeShared( const_cast< pISimpleNode_base >( ptr ) );
+ }
+ //!
+ //! @}
+
+ //!
+ //! @brief Returns the unique ID assigned to the interface.
+ //! \return 64 bit unsigned integer representing the unique ID assigned to the interface.
+ //!
+ XMP_PRIVATE static uint64 GetInterfaceID() { return kISimpleNodeID; }
+
+ //!
+ //! @brief Returns the version of the interface.
+ //! \return 32 bit unsigned integer representing the version of the interface.
+ //!
+ XMP_PRIVATE static uint32 GetInterfaceVersion() { return 1; }
+ //! \endcond
+
+ protected:
+ //!
+ //! Destructor
+ //!
+ virtual ~ISimpleNode_v1() __NOTHROW__ {}
+
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+ virtual pcIUTF8String_base APICALL getValue( pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual void APICALL setValue( const char * value, sizet valueLength, pcIError_base & error ) __NOTHROW__ = 0;
+ virtual uint32 APICALL isURIType( pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual void APICALL setURIType( uint32 isURI, pcIError_base & error ) __NOTHROW__ = 0;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ //! \endcond
+
+ };
+}
+
+#endif // __ISimpleNode_h__
diff --git a/public/include/XMPCore/Interfaces/IStructureNode.h b/public/include/XMPCore/Interfaces/IStructureNode.h
new file mode 100644
index 0000000..5df1f08
--- /dev/null
+++ b/public/include/XMPCore/Interfaces/IStructureNode.h
@@ -0,0 +1,306 @@
+#ifndef IStructureNode_h__
+#define IStructureNode_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCore/Interfaces/ICompositeNode.h"
+
+namespace AdobeXMPCore {
+
+ //!
+ //! @brief Version1 of the interface that represents a structure Node of XMP DOM.
+ //! \details Provides all the functions to get and set various properties of the structure node.
+ //! \attention Support multi threading through locks but can be enabled/disabled by the client. By default
+ //! every object created does not support multi-threading.
+ //!
+ class XMP_PUBLIC IStructureNode_v1
+ : public virtual ICompositeNode_v1
+ {
+ public:
+
+ //!
+ //! @brief Gets the type of the node's child having specified namespace and name.
+ //! \param[in] nameSpace Pointer to a constant char buffer containing name space URI of the child node.
+ //! \param[in] nameSpaceLength Number of characters in nameSpace. In case nameSpace is null terminated set it to AdobeXMPCommon::npos.
+ //! \param[in] name Pointer to a constant char buffer containing local name of the child node.
+ //! \param[in] nameLength Number of characters in name. In case name is null terminated set it to AdobeXMPCommon::npos.
+ //! \return An object of type #eNodeType indicating the type of the node's child.
+ //! \note In case no child exists with the specified nameSpace and name combination then an eNodeType::kNTNone is returned.
+ //!
+ virtual eNodeType APICALL GetChildNodeType( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) const = 0;
+
+
+ //!
+ //! @{
+ //! @brief Gets the child of the node having specified namespace and name.
+ //! \param[in] nameSpace Pointer to a constant char buffer containing name space URI of the child node.
+ //! \param[in] nameSpaceLength Number of characters in nameSpace. In case nameSpace is null terminated set it to AdobeXMPCommon::npos.
+ //! \param[in] name Pointer to a constant char buffer containing local name of the child node.
+ //! \param[in] nameLength Number of characters in name. In case name is null terminated set it to AdobeXMPCommon::npos.
+ //! \return A shared pointer to either a const or const child node.
+ //! \note In case no child exists with the specified nameSpace and name combination then an invalid shared pointer
+ //! is returned.
+ //!
+ XMP_PRIVATE spcINode GetNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) const {
+ return const_cast< IStructureNode_v1 * >( this )->GetNode( nameSpace, nameSpaceLength, name, nameLength );
+ }
+ virtual spINode APICALL GetNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) = 0;
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Gets the node's child having specified name space and name as simple node.
+ //! \param[in] nameSpace Pointer to a constant char buffer containing name space URI of the child node.
+ //! \param[in] nameSpaceLength Number of characters in nameSpace. In case nameSpace is null terminated set it to AdobeXMPCommon::npos.
+ //! \param[in] name Pointer to a constant char buffer containing local name of the child node.
+ //! \param[in] nameLength Number of characters in name. In case name is null terminated set it to AdobeXMPCommon::npos.
+ //! \return A shared pointer to const or non const ISimpleNode object containing child.
+ //! \note In case no child exists with the specified nameSpace and name combination then an invalid shared pointer
+ //! is returned.
+ //! \attention Error is thrown in case
+ //! - a child exists with the specified nameSpace and name combination but is not a simple node.
+ //!
+ XMP_PRIVATE spcISimpleNode GetSimpleNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) const {
+ auto node = GetNode( nameSpace, nameSpaceLength, name, nameLength );
+ if ( node ) return node->ConvertToSimpleNode();
+ return spcISimpleNode();
+ }
+
+ XMP_PRIVATE spISimpleNode GetSimpleNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) {
+ auto node = GetNode( nameSpace, nameSpaceLength, name, nameLength );
+ if ( node ) return node->ConvertToSimpleNode();
+ return spISimpleNode();
+ }
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Gets the node's child having specified name space and name as structure node.
+ //! \param[in] nameSpace Pointer to a constant char buffer containing name space URI of the child node.
+ //! \param[in] nameSpaceLength Number of characters in nameSpace. In case nameSpace is null terminated set it to AdobeXMPCommon::npos.
+ //! \param[in] name Pointer to a constant char buffer containing local name of the child node.
+ //! \param[in] nameLength Number of characters in name. In case name is null terminated set it to AdobeXMPCommon::npos.
+ //! \return A shared pointer to const or non const IStructureNode object containing child.
+ //! \note In case no child exists with the specified nameSpace and name combination then an invalid shared pointer
+ //! is returned.
+ //! \attention Error is thrown in case
+ //! - a child exists with the specified nameSpace and name combination but is not a structure node.
+ //!
+ XMP_PRIVATE spcIStructureNode GetStructureNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) const {
+ auto node = GetNode( nameSpace, nameSpaceLength, name, nameLength );
+ if ( node ) return node->ConvertToStructureNode();
+ return spcIStructureNode();
+ }
+
+ XMP_PRIVATE spIStructureNode GetStructureNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) {
+ auto node = GetNode( nameSpace, nameSpaceLength, name, nameLength );
+ if ( node ) return node->ConvertToStructureNode();
+ return spIStructureNode();
+ }
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Gets the node's child having specified name space and name as an array node.
+ //! \param[in] nameSpace Pointer to a constant char buffer containing name space URI of the child node.
+ //! \param[in] nameSpaceLength Number of characters in nameSpace. In case nameSpace is null terminated set it to AdobeXMPCommon::npos.
+ //! \param[in] name Pointer to a constant char buffer containing local name of the child node.
+ //! \param[in] nameLength Number of characters in name. In case name is null terminated set it to AdobeXMPCommon::npos.
+ //! \return A shared pointer to const or non const ISimpleNode object containing child.
+ //! \note In case no child exists with the specified nameSpace and name combination then an invalid shared pointer
+ //! is returned.
+ //! \attention Error is thrown in case
+ //! - a child exists with the specified nameSpace and name combination but is not an array node.
+ //!
+ XMP_PRIVATE spcIArrayNode GetArrayNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) const {
+ auto node = GetNode( nameSpace, nameSpaceLength, name, nameLength );
+ if ( node ) return node->ConvertToArrayNode();
+ return spcIArrayNode();
+ }
+
+ XMP_PRIVATE spIArrayNode GetArrayNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) {
+ auto node = GetNode( nameSpace, nameSpaceLength, name, nameLength );
+ if ( node ) return node->ConvertToArrayNode();
+ return spIArrayNode();
+ }
+ //! @}
+
+ //!
+ //! @brief Inserts a given node.
+ //! \param[in] node Shared pointer to an object of AdobeXMPCore::INode containing the node to be inserted.
+ //! \attention Error is thrown in following cases:
+ //! -# given node is invalid.
+ //! -# given node is already a child of some other node.
+ //! -# there exists a node with the same nameSpace and name combination.
+ //!
+ virtual void APICALL InsertNode( const spINode & node ) = 0;
+
+ //!
+ //! @brief Replaces a given node.
+ //! \param[in] node Shared pointer to an object of AdobeXMPCore::INode.
+ //! \return A shared pointer to the node being replaced.
+ //! \attention Error is thrown in following cases:
+ //! -# given node is invalid.
+ //! -# given node is already a child of some other node.
+ //! -# there exists no node with the same nameSpace and name combination.
+ //! \note Type of the old existing node may/may not be same as that of new node.
+ //!
+ virtual spINode APICALL ReplaceNode( const spINode & node ) = 0;
+
+ //!
+ //! @brief Removes the node with the specified nameSpace and name.
+ //! \param[in] nameSpace Pointer to a constant char buffer containing name space URI of the child node.
+ //! \param[in] nameSpaceLength Number of characters in nameSpace. In case nameSpace is null terminated set it to AdobeXMPCommon::npos.
+ //! \param[in] name Pointer to a constant char buffer containing local name of the child node.
+ //! \param[in] nameLength Number of characters in name. In case name is null terminated set it to AdobeXMPCommon::npos.
+ //! \return A shared pointer to AdobeXMPCore::INode object containing node which is removed from the tree.
+ //! \note In case no node exists with the given nameSpace and name combination an invalid shared pointer is returned.
+ //!
+ virtual spINode APICALL RemoveNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) = 0;
+
+ //!
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+
+ //!
+ //! @{
+ //! @brief Returns the actual raw pointer from the shared pointer, which can be a shared pointer of a proxy class.
+ //! \return Either a const or non const pointer to IStructureNode interface.
+ //!
+ virtual pIStructureNode APICALL GetActualIStructureNode() __NOTHROW__ = 0;
+ XMP_PRIVATE pcIStructureNode GetActualIStructureNode() const __NOTHROW__ {
+ return const_cast< IStructureNode_v1 * >( this )->GetActualIStructureNode();
+ }
+ //!
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Returns the pointer to internal interfaces.
+ //! \return Either a const or non const pointer to IStructureNode_I interface.
+ //!
+ virtual AdobeXMPCore_Int::pIStructureNode_I APICALL GetIStructureNode_I() __NOTHROW__ = 0;
+
+ XMP_PRIVATE AdobeXMPCore_Int::pcIStructureNode_I GetIStructureNode_I() const __NOTHROW__ {
+ return const_cast< IStructureNode_v1 * >( this )->GetIStructureNode_I();
+ }
+ //!
+ //! @}
+
+ //!
+ //! @{
+ //! @brief Converts raw pointer to shared pointer. The raw pointer is of version 1 interface
+ //! where as the returned shared pointer depends on the version client is interested in.
+ //! \return Shared pointer to const or non constant interface.
+ //!
+ XMP_PRIVATE static spIStructureNode MakeShared( pIStructureNode_base ptr );
+ XMP_PRIVATE static spcIStructureNode MakeShared( pcIStructureNode_base ptr ) {
+ return MakeShared( const_cast< pIStructureNode_base >( ptr ) );
+ }
+ //!
+ //! @}
+
+ //!
+ //! @brief Returns the unique ID assigned to the interface.
+ //! \return 64 bit unsigned integer representing the unique ID assigned to the interface.
+ //!
+ XMP_PRIVATE static uint64 GetInterfaceID() { return kIStructureNodeID; }
+
+ //!
+ //! @brief Returns the version of the interface.
+ //! \return 32 bit unsigned integer representing the version of the interface.
+ //!
+ XMP_PRIVATE static uint32 GetInterfaceVersion() { return 1; }
+ //! \endcond
+
+ // Factories to create the structure node
+
+ //!
+ //! @brief Creates a structure node which is not part of any metadata document.
+ //! \param[in] nameSpace Pointer to a constant char buffer containing name space URI of the structure node.
+ //! \param[in] nameSpaceLength Number of characters in nameSpace. In case nameSpace is null terminated set it to AdobeXMPCommon::npos.
+ //! \param[in] name Pointer to a constant char buffer containing local name of the structure node.
+ //! \param[in] nameLength Number of characters in name. In case name is null terminated set it to AdobeXMPCommon::npos.
+ //! \return A shared pointer to a AdobeXMPCore::IStructureNode object.
+ //! \attention Error is thrown in the following cases:
+ //! -# nameSpace is NULL or its contents are empty.
+ //! -# name is NULL or its contents are empty.
+ //!
+ XMP_PRIVATE static spIStructureNode CreateStructureNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength );
+
+ protected:
+ //!
+ //! Destructor
+ //!
+ virtual ~IStructureNode_v1() __NOTHROW__ {}
+
+ //! \cond XMP_INTERNAL_DOCUMENTATION
+ virtual uint32 APICALL getChildNodeType( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) const __NOTHROW__ = 0;
+ virtual pINode_base APICALL getNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) __NOTHROW__ = 0;
+ virtual void APICALL insertNode( pINode_base node, pcIError_base & error ) __NOTHROW__ = 0;
+ virtual pINode_base APICALL replaceNode( pINode_base node, pcIError_base & error ) __NOTHROW__ = 0;
+ virtual pINode_base APICALL removeNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) __NOTHROW__ = 0;
+
+ #ifdef FRIEND_CLASS_DECLARATION
+ FRIEND_CLASS_DECLARATION();
+ #endif
+ REQ_FRIEND_CLASS_DECLARATION();
+ //! \endcond
+
+ };
+}
+
+//! \cond XMP_INTERNAL_DOCUMENTATION
+#if !BUILDING_XMPCORE_LIB && !SOURCE_COMPILING_XMPCORE_LIB
+
+namespace AdobeXMPCore {
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+ class IStructureNodeProxy
+ : public virtual IStructureNode
+ , public virtual ICompositeNodeProxy
+ {
+ private:
+ pIStructureNode mRawPtr;
+
+ public:
+ IStructureNodeProxy( pIStructureNode ptr );
+ ~IStructureNodeProxy() __NOTHROW__ ;
+
+ AdobeXMPCore_Int::pIStructureNode_I APICALL GetIStructureNode_I() __NOTHROW__;
+ virtual pIStructureNode APICALL GetActualIStructureNode() __NOTHROW__;
+
+ virtual eNodeType APICALL GetChildNodeType( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) const;
+ virtual spINode APICALL GetNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength );
+ virtual void APICALL InsertNode( const spINode & node );
+ virtual spINode APICALL ReplaceNode( const spINode & node );
+ virtual spINode APICALL RemoveNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength );
+
+ protected:
+ virtual uint32 APICALL getChildNodeType( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) const __NOTHROW__;
+ virtual pINode_base APICALL getNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) __NOTHROW__;
+ virtual void APICALL insertNode( pINode_base node, pcIError_base & error ) __NOTHROW__;
+ virtual pINode_base APICALL replaceNode( pINode_base node, pcIError_base & error ) __NOTHROW__;
+ virtual pINode_base APICALL removeNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) __NOTHROW__;
+ };
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+
+}
+
+#endif // BUILDING_XMPCORE_LIB
+//! \endcond
+
+#endif // IStructureNode_h__
diff --git a/public/include/XMPCore/XMPCoreDefines.h b/public/include/XMPCore/XMPCoreDefines.h
new file mode 100644
index 0000000..fbe9af4
--- /dev/null
+++ b/public/include/XMPCore/XMPCoreDefines.h
@@ -0,0 +1,86 @@
+#ifndef XMPCoreDefines_h__
+#define XMPCoreDefines_h__ 1
+
+// =================================================================================================
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved.
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+// =================================================================================================
+// XMPCoreDefines.h - Common Defines for XMP Core component
+// ================================================================
+//
+// This header defines common definitions to be used in XMP Core component.
+//
+// =================================================================================================
+
+// =================================================================================================
+// All Platform Settings
+// ===========================
+#include "XMPCommon/XMPCommonDefines.h"
+
+#ifndef ENABLE_CPP_DOM_MODEL
+// =================================================================================================
+// Macintosh Specific Settings
+// ===========================
+#if XMP_MacBuild
+ #define ENABLE_CPP_DOM_MODEL 0
+#endif
+
+// =================================================================================================
+// IOS Specific Settings
+// ===========================
+#if XMP_iOSBuild
+ #define ENABLE_CPP_DOM_MODEL 0
+#endif
+
+// =================================================================================================
+// Windows Specific Settings
+// =========================
+#if XMP_WinBuild
+ #define ENABLE_CPP_DOM_MODEL 0
+#endif
+
+// =================================================================================================
+// UNIX Specific Settings
+// ======================
+#if XMP_UNIXBuild
+#define ENABLE_CPP_DOM_MODEL 0
+#endif
+#endif // ENABLE_CPP_DOM_MODEL
+
+#ifndef ENABLE_CPP_DOM_MODEL
+ #define ENABLE_CPP_DOM_MODEL 0
+#endif
+
+#if ENABLE_CPP_DOM_MODEL
+
+ #if SOURCE_COMPILING_XMP_ALL
+ #define SOURCE_COMPILING_XMPCORE_LIB 1
+ #endif
+
+ #ifndef SOURCE_COMPILING_XMPCORE_LIB
+ #define SOURCE_COMPILING_XMPCORE_LIB 0
+ #endif
+
+ #ifndef BUILDING_XMPCORE_LIB
+ #define BUILDING_XMPCORE_LIB 0
+ #endif
+
+ #if BUILDING_XMPCORE_LIB
+ #if !BUILDING_XMPCORE_AS_STATIC && !BUILDING_XMPCORE_AS_DYNAMIC
+ #error "Define either BUILDING_XMPCORE_AS_STATIC as 1 or BUILDING_XMPCORE_AS_DYNAMIC as 1"
+ #endif
+ #endif
+
+ #ifndef LINKING_XMPCORE_LIB
+ #define LINKING_XMPCORE_LIB 1
+ #endif
+
+ namespace AdobeXMPCore {};
+#endif // ENABLE_CPP_DOM_MODEL
+
+#endif // XMPCoreDefines_h__
diff --git a/public/include/XMPCore/XMPCoreErrorCodes.h b/public/include/XMPCore/XMPCoreErrorCodes.h
new file mode 100644
index 0000000..63c2f55
--- /dev/null
+++ b/public/include/XMPCore/XMPCoreErrorCodes.h
@@ -0,0 +1,116 @@
+#ifndef XMPCoreErrorCodes_h__
+#define XMPCoreErrorCodes_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCore/XMPCoreDefines.h"
+#include "XMPCommon/XMPCommonErrorCodes.h"
+
+namespace AdobeXMPCore {
+
+ typedef enum {
+ //! Indicates no error.
+ kDMECNone = 0,
+
+ //! Indicates that IXMPNameSpacePrefixMap has an entry missing.
+ kDMECNameSpacePrefixMapEntryMissing = 1,
+
+ //! Indicates that a different type of node is present than one user is expecting
+ kDMECDifferentNodeTypePresent = 2,
+
+ //! Indicates that node is already a child of another parent.
+ kDMECNodeAlreadyAChild = 3,
+
+ //! Indicates a node with the same qualified name or index already exists.
+ kDMECNodeAlreadyExists = 4,
+
+ //! Indicates no such node exists.
+ kDMECNoSuchNodeExists = 5,
+
+ //! Indicates current array element type is not same as that of other child items
+ kDMECArrayItemTypeDifferent = 6,
+
+ //! Indicates invalid path segment inside a path.
+ kDMECInvalidPathSegment = 7,
+
+ //! Indicates Bad schema parameter
+ kDMECBadSchema = 101,
+
+ //! Indicates Bad XPath parameter
+ kDMECBadXPath = 102,
+
+ //! Indicates Bad options parameter
+ kDMECBadOptions = 103,
+
+ //! Indicates Bad iteration position
+ kDMECBadIterPosition = 104,
+
+ //! Indicates Unicode error
+ kDMECBadUnicode = 105,
+
+ //! Indicates XMP format error
+ kDMECValidationError = 106,
+
+ //! Indicates Empty iterator
+ kDMECEmptyIterator = 107,
+
+ //! Maximum value this enum can hold, should be treated as invalid value.
+ kDMECMaxValue = kMaxEnumValue
+ } eDataModelErrorCode;
+
+ //!
+ //! @brief Indicates various errors encountered during parsing.
+ //!
+ typedef enum {
+ //! Indicates no error.
+ kPECNone = 0,
+
+ //! Indicates XML parsing error.
+ kPECBadXML = 1,
+
+ //! RDF format error
+ kPECBadRDF = 2,
+
+ //! XMP format error
+ kPECBadXMP = 3,
+
+ //! Context Node is invalid
+ kPECInvalidContextNode = 4,
+
+ //! Context Node is not a composite node
+ kPECContextNodeIsNonComposite = 5,
+
+ //! Parent of Context Node is not an array node
+ kPECContextNodeParentIsNonArray = 6,
+
+ //! Maximum value this enum can hold, should be treated as invalid value.
+ kPECMaxValue = kMaxEnumValue
+ } eParserErrorCode;
+
+ //!
+ //! @brief Indicates various errors encountered during serialization.
+ //!
+ typedef enum {
+ //! Indicates no error.
+ kSECNone = 0,
+
+ //! Indicates serialization failed to achieve size requirement.
+ kSECSizeExceed = 1,
+
+ //! Indicates un registered namespace encountered during serialization.
+ kSECUnRegisteredNameSpace = 2,
+
+ //! Maximum value this enum can hold, should be treated as invalid value.
+ kSECMaxValue = kMaxEnumValue
+
+ } eSerializerErrorCode;
+}
+
+#endif // XMPCoreErrorCodes_h__
diff --git a/public/include/XMPCore/XMPCoreFwdDeclarations.h b/public/include/XMPCore/XMPCoreFwdDeclarations.h
new file mode 100644
index 0000000..65a38cc
--- /dev/null
+++ b/public/include/XMPCore/XMPCoreFwdDeclarations.h
@@ -0,0 +1,308 @@
+#ifndef XMPCoreFwdDeclarations_h__
+#define XMPCoreFwdDeclarations_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2014 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+
+#include "XMPCore/XMPCoreDefines.h"
+#include "XMPCommon/XMPCommonFwdDeclarations.h"
+#include "XMPCore/XMPCoreLatestInterfaceVersions.h"
+
+namespace AdobeXMPCore {
+ using namespace AdobeXMPCommon;
+
+ // INameSpacePrefixMap
+ class INameSpacePrefixMap_v1;
+ typedef INameSpacePrefixMap_v1 INameSpacePrefixMap_base;
+ typedef INameSpacePrefixMap_v1 * pINameSpacePrefixMap_base;
+ typedef const INameSpacePrefixMap_v1 * pcINameSpacePrefixMap_base;
+ typedef BASE_CLASS( INameSpacePrefixMap, INAMESPACEPREFIXMAP_VERSION ) INameSpacePrefixMap;
+ typedef INameSpacePrefixMap * pINameSpacePrefixMap;
+ typedef const INameSpacePrefixMap * pcINameSpacePrefixMap;
+ typedef shared_ptr< INameSpacePrefixMap > spINameSpacePrefixMap;
+ typedef shared_ptr< const INameSpacePrefixMap > spcINameSpacePrefixMap;
+ static const uint64 kINameSpacePrefixMapID ( 0x634e5350724d6170 /* cNSPrMap */ );
+
+ // IPathSegment
+ class IPathSegment_v1;
+ typedef IPathSegment_v1 IPathSegment_base;
+ typedef IPathSegment_v1 * pIPathSegment_base;
+ typedef const IPathSegment_v1 * pcIPathSegment_base;
+ typedef BASE_CLASS( IPathSegment, IPATHSEGMENT_VERSION ) IPathSegment;
+ typedef IPathSegment * pIPathSegment;
+ typedef const IPathSegment * pcIPathSegment;
+ typedef shared_ptr< IPathSegment > spIPathSegment;
+ typedef shared_ptr< const IPathSegment > spcIPathSegment;
+ static const uint64 kIPathSegmentID ( 0x6350617468536567 /* cPathSeg */ );
+
+ // IPath
+ class IPath_v1;
+ typedef IPath_v1 IPath_base;
+ typedef IPath_v1 * pIPath_base;
+ typedef const IPath_v1 * pcIPath_base;
+ typedef BASE_CLASS( IPath, IPATH_VERSION ) IPath;
+ typedef IPath * pIPath;
+ typedef const IPath * pcIPath;
+ typedef shared_ptr< IPath > spIPath;
+ typedef shared_ptr< const IPath > spcIPath;
+ static const uint64 kIPathID ( 0x6350617468202020 /* cPath */ );
+
+ // INode
+ class INode_v1;
+ typedef INode_v1 INode_base;
+ typedef INode_v1 * pINode_base;
+ typedef const INode_v1 * pcINode_base;
+ typedef BASE_CLASS( INode, INODE_VERSION ) INode;
+ typedef INode * pINode;
+ typedef const INode * pcINode;
+ typedef shared_ptr< INode > spINode;
+ typedef shared_ptr< const INode > spcINode;
+ static const uint64 kINodeID ( 0x634e6f6465202020 /* cNode */ );
+
+ // ISimpleNode
+ class ISimpleNode_v1;
+ typedef ISimpleNode_v1 ISimpleNode_base;
+ typedef ISimpleNode_v1 * pISimpleNode_base;
+ typedef const ISimpleNode_v1 * pcISimpleNode_base;
+ typedef BASE_CLASS( ISimpleNode, ISIMPLENODE_VERSION ) ISimpleNode;
+ typedef ISimpleNode * pISimpleNode;
+ typedef const ISimpleNode * pcISimpleNode;
+ typedef shared_ptr< ISimpleNode > spISimpleNode;
+ typedef shared_ptr< const ISimpleNode > spcISimpleNode;
+ static const uint64 kISimpleNodeID ( 0x63536d6c4e6f6465 /* cSmlNode */ );
+
+ // ICompositeNode
+ class ICompositeNode_v1;
+ typedef ICompositeNode_v1 ICompositeNode_base;
+ typedef ICompositeNode_v1 * pICompositeNode_base;
+ typedef const ICompositeNode_v1 * pcICompositeNode_base;
+ typedef BASE_CLASS( ICompositeNode, ICOMPOSITENODE_VERSION ) ICompositeNode;
+ typedef ICompositeNode * pICompositeNode;
+ typedef const ICompositeNode * pcICompositeNode;
+ typedef shared_ptr< ICompositeNode > spICompositeNode;
+ typedef shared_ptr< const ICompositeNode > spcICompositeNode;
+ static const uint64 kICompositeNodeID ( 0x63436d704e6f6465 /* cCmpNode */ );
+
+ // IStructureNode
+ class IStructureNode_v1;
+ typedef IStructureNode_v1 IStructureNode_base;
+ typedef IStructureNode_v1 * pIStructureNode_base;
+ typedef const IStructureNode_v1 * pcIStructureNode_base;
+ typedef BASE_CLASS( IStructureNode, ISTRUCTURENODE_VERSION ) IStructureNode;
+ typedef IStructureNode * pIStructureNode;
+ typedef const IStructureNode * pcIStructureNode;
+ typedef shared_ptr< IStructureNode > spIStructureNode;
+ typedef shared_ptr< const IStructureNode > spcIStructureNode;
+ static const uint64 kIStructureNodeID ( 0x635374724e6f6465 /* cStrNode */ );
+
+ // IArrayNode
+ class IArrayNode_v1;
+ typedef IArrayNode_v1 IArrayNode_base;
+ typedef IArrayNode_v1 * pIArrayNode_base;
+ typedef const IArrayNode_v1 * pcIArrayNode_base;
+ typedef BASE_CLASS( IArrayNode, IARRAYNODE_VERSION ) IArrayNode;
+ typedef IArrayNode * pIArrayNode;
+ typedef const IArrayNode * pcIArrayNode;
+ typedef shared_ptr< IArrayNode > spIArrayNode;
+ typedef shared_ptr< const IArrayNode > spcIArrayNode;
+ static const uint64 kIArrayNodeID ( 0x634172724e6f6465 /* cArrNode */ );
+
+ // INodeIterator
+ class INodeIterator_v1;
+ typedef INodeIterator_v1 INodeIterator_base;
+ typedef INodeIterator_v1 * pINodeIterator_base;
+ typedef const INodeIterator_v1 * pcINodeIterator_base;
+ typedef BASE_CLASS(INodeIterator, INODEITERATOR_VERSION) INodeIterator;
+ typedef INodeIterator * pINodeIterator;
+ typedef const INodeIterator * pcINodeIterator;
+ typedef shared_ptr< INodeIterator > spINodeIterator;
+ typedef shared_ptr< const INodeIterator > spcINodeIterator;
+ static const uint64 kINodeIteratorID (0x634e6f6465497420 /* cNodeIt */);
+
+ // IMetadata
+ class IMetadata_v1;
+ typedef IMetadata_v1 IMetadata_base;
+ typedef IMetadata_v1 * pIMetadata_base;
+ typedef const IMetadata_v1 * pcIMetadata_base;
+ typedef BASE_CLASS( IMetadata, IMETADATA_VERSION ) IMetadata;
+ typedef IMetadata * pIMetadata;
+ typedef const IMetadata * pcIMetadata;
+ typedef shared_ptr< IMetadata > spIMetadata;
+ typedef shared_ptr< const IMetadata > spcIMetadata;
+ static const uint64 kIMetadataID ( 0x634d657461646174 /* cMetadat */ );
+
+ // IClientDOMParser
+ class IClientDOMParser_v1;
+ typedef IClientDOMParser_v1 IClientDOMParser_base;
+ typedef IClientDOMParser_v1 * pIClientDOMParser_base;
+ typedef const IClientDOMParser_v1 * pcIClientDOMParser_base;
+ typedef BASE_CLASS( IClientDOMParser, ICLIENTDOMPARSER_VERSION ) IClientDOMParser;
+ typedef IClientDOMParser * pIClientDOMParser;
+ typedef const IClientDOMParser * pcIClientDOMParser;
+
+ // IClientDOMSerializer
+ class IClientDOMSerializer_v1;
+ typedef IClientDOMSerializer_v1 IClientDOMSerializer_base;
+ typedef IClientDOMSerializer_v1 * pIClientDOMSerializer_base;
+ typedef const IClientDOMSerializer_v1 * pcIClientDOMSerializer_base;
+ typedef BASE_CLASS( IClientDOMSerializer, ICLIENTDOMSERIALIZER_VERSION ) IClientDOMSerializer;
+ typedef IClientDOMSerializer * pIClientDOMSerializer;
+ typedef const IClientDOMSerializer * pcIClientDOMSerializer;
+
+ // IDOMParser
+ class IDOMParser_v1;
+ typedef IDOMParser_v1 IDOMParser_base;
+ typedef IDOMParser_v1 * pIDOMParser_base;
+ typedef const IDOMParser_v1 * pcIDOMParser_base;
+ typedef BASE_CLASS( IDOMParser, IDOMPARSER_VERSION ) IDOMParser;
+ typedef IDOMParser * pIDOMParser;
+ typedef const IDOMParser * pcIDOMParser;
+ typedef shared_ptr< IDOMParser > spIDOMParser;
+ typedef shared_ptr< const IDOMParser > spcIDOMParser;
+ static const uint64 kIDOMParserID ( 0x63444f4d50727372 /* cDOMPrsr */ );
+
+ // IDOMSerializer
+ class IDOMSerializer_v1;
+ typedef IDOMSerializer_v1 IDOMSerializer_base;
+ typedef IDOMSerializer_v1 * pIDOMSerializer_base;
+ typedef const IDOMSerializer_v1 * pcIDOMSerializer_base;
+ typedef BASE_CLASS( IDOMSerializer, IDOMSERIALIZER_VERSION ) IDOMSerializer;
+ typedef IDOMSerializer * pIDOMSerializer;
+ typedef const IDOMSerializer * pcIDOMSerializer;
+ typedef shared_ptr< IDOMSerializer > spIDOMSerializer;
+ typedef shared_ptr< const IDOMSerializer > spcIDOMSerializer;
+ static const uint64 kIDOMSerializerID ( 0x63444f4d53726c7a /* cDOMSrlz */ );
+
+ // IDOMImplementationRegistry
+ class IDOMImplementationRegistry_v1;
+ typedef IDOMImplementationRegistry_v1 IDOMImplementationRegistry_base;
+ typedef IDOMImplementationRegistry_v1 * pIDOMImplementationRegistry_base;
+ typedef const IDOMImplementationRegistry_v1 * pcIDOMImplementationRegistry_base;
+ typedef BASE_CLASS( IDOMImplementationRegistry, IDOMIMPLEMENTATIONREGISTRY_VERSION) IDOMImplementationRegistry;
+ typedef IDOMImplementationRegistry * pIDOMImplementationRegistry;
+ typedef const IDOMImplementationRegistry * pcIDOMImplementationRegistry;
+ typedef shared_ptr< IDOMImplementationRegistry > spIDOMImplementationRegistry;
+ typedef shared_ptr< const IDOMImplementationRegistry > spcIDOMImplementationRegistry;
+ static const uint64 kIDOMImplementationRegistryID ( 0x63444f4d52677374 /* cDOMRgst */ );
+
+ // ICoreObjectFactory
+ class ICoreObjectFactory_v1;
+ typedef ICoreObjectFactory_v1 ICoreObjectFactory_base;
+ typedef ICoreObjectFactory_v1 * pICoreObjectFactory_base;
+ typedef const ICoreObjectFactory_v1 * pcICoreObjectFactory_base;
+ typedef BASE_CLASS( ICoreObjectFactory, ICOREOBJECTFACTORY_VERSION ) ICoreObjectFactory;
+ typedef ICoreObjectFactory * pICoreObjectFactory;
+ typedef const ICoreObjectFactory * pcICoreObjectFactory;
+ static const uint64 kICoreObjectFactoryID ( 0x634f626a46616374 /* cObjFact */ );
+
+ // ICoreConfigurationManager
+ class ICoreConfigurationManager_v1;
+ typedef ICoreConfigurationManager_v1 ICoreConfigurationManager_base;
+ typedef ICoreConfigurationManager_v1 * pICoreConfigurationManager_base;
+ typedef const ICoreConfigurationManager_v1 * pcICoreConfigurationManager_base;
+ typedef BASE_CLASS( ICoreConfigurationManager, ICORECONFIGURATIONMANAGER_VERSION ) ICoreConfigurationManager;
+ typedef ICoreConfigurationManager * pICoreConfigurationManager;
+ typedef const ICoreConfigurationManager * pcICoreConfigurationManager;
+ typedef shared_ptr< ICoreConfigurationManager > spICoreConfigurationManager;
+ typedef shared_ptr< const ICoreConfigurationManager > spcICoreConfigurationManager;
+ static const uint64 kICoreConfigurationManagerID ( 0x63436f6e664d6772 /* cConfMgr */ );
+
+}
+
+namespace AdobeXMPCore_Int {
+
+ // INameSpacePrefixMap_I
+ class INameSpacePrefixMap_I;
+ typedef INameSpacePrefixMap_I * pINameSpacePrefixMap_I;
+ typedef const INameSpacePrefixMap_I * pcINameSpacePrefixMap_I;
+
+ // IPathSegment_I
+ class IPathSegment_I;
+ typedef IPathSegment_I * pIPathSegment_I;
+ typedef const IPathSegment_I * pcIPathSegment_I;
+
+ // IPath_I
+ class IPath_I;
+ typedef IPath_I * pIPath_I;
+ typedef const IPath_I * pcIPath_I;
+
+ // INode_I
+ class INode_I;
+ typedef INode_I * pINode_I;
+ typedef const INode_I * pcINode_I;
+
+ // ISimpleNode_I
+ class ISimpleNode_I;
+ typedef ISimpleNode_I * pISimpleNode_I;
+ typedef const ISimpleNode_I * pcISimpleNode_I;
+
+ // ICompositeNode_I
+ class ICompositeNode_I;
+ typedef ICompositeNode_I * pICompositeNode_I;
+ typedef const ICompositeNode_I * pcICompositeNode_I;
+
+ // IStructureNode_I
+ class IStructureNode_I;
+ typedef IStructureNode_I * pIStructureNode_I;
+ typedef const IStructureNode_I * pcIStructureNode_I;
+
+ // IArrayNode_I
+ class IArrayNode_I;
+ typedef IArrayNode_I * pIArrayNode_I;
+ typedef const IArrayNode_I * pcIArrayNode_I;
+
+ // INodeIterator_I
+ class INodeIterator_I;
+ typedef INodeIterator_I * pINodeIterator_I;
+ typedef const INodeIterator_I * pcINodeIterator_I;
+
+ // IMetadata_I
+ class IMetadata_I;
+ typedef IMetadata_I * pIMetadata_I;
+ typedef const IMetadata_I * pcIMetadata_I;
+
+ // IClientDOMParser_I
+ class IClientDOMParser_I;
+ typedef IClientDOMParser_I * pIClientDOMParser_I;
+ typedef const IClientDOMParser_I * pcIClientDOMParser_I;
+
+ // IClientDOMSerializer_I
+ class IClientDOMSerializer_I;
+ typedef IClientDOMSerializer_I * pIClientDOMSerializer_I;
+ typedef const IClientDOMSerializer_I * pcIClientDOMSerializer_I;
+
+ // IDOMParser_I
+ class IDOMParser_I;
+ typedef IDOMParser_I * pIDOMParser_I;
+ typedef const IDOMParser_I * pcIDOMParser_I;
+
+ // IDOMSerializer_I
+ class IDOMSerializer_I;
+ typedef IDOMSerializer_I * pIDOMSerializer_I;
+ typedef const IDOMSerializer_I * pcIDOMSerializer_I;
+
+ // IDOMImplementationRegistry_I
+ class IDOMImplementationRegistry_I;
+ typedef IDOMImplementationRegistry_I * pIDOMImplementationRegistry_I;
+ typedef const IDOMImplementationRegistry_I * pcIDOMImplementationRegistry_I;
+
+ // ICoreObjectFactory_I
+ class ICoreObjectFactory_I;
+ typedef ICoreObjectFactory_I * pICoreObjectFactory_I;
+ typedef const ICoreObjectFactory_I * pcICoreObjectFactory_I;
+
+ // ICoreConfigurationManager_I
+ class ICoreConfigurationManager_I;
+ typedef ICoreConfigurationManager_I * pICoreConfigurationManager_I;
+ typedef const ICoreConfigurationManager_I * pcICoreConfigurationManager_I;
+}
+
+#endif // XMPCoreFwdDeclarations_h__
+
diff --git a/public/include/XMPCore/XMPCoreLatestInterfaceVersions.h b/public/include/XMPCore/XMPCoreLatestInterfaceVersions.h
new file mode 100644
index 0000000..b5b54bf
--- /dev/null
+++ b/public/include/XMPCore/XMPCoreLatestInterfaceVersions.h
@@ -0,0 +1,92 @@
+#ifndef XMPCoreLatestInterfaceVersions_h__
+#define XMPCoreLatestInterfaceVersions_h__ 1
+
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+//!
+//! @brief Macro to include a client file through with client can control the interface versions he wants to stick with
+//! if not the latest ones.
+//!
+#if !SOURCE_COMPILING_XMPCORE_LIB
+ #ifdef XMPCORE_CLIENT_VERSION_NUMBER_FILE
+ #include QUOTEME(XMPCORE_CLIENT_VERSION_NUMBER_FILE)
+ #endif
+#endif
+
+#ifndef INAMESPACEPREFIXMAP_VERSION
+ #define INAMESPACEPREFIXMAP_VERSION 1
+#endif
+
+#ifndef IPATHSEGMENT_VERSION
+ #define IPATHSEGMENT_VERSION 1
+#endif
+
+#ifndef IPATH_VERSION
+ #define IPATH_VERSION 1
+#endif
+
+#ifndef INODE_VERSION
+ #define INODE_VERSION 1
+#endif
+
+#ifndef INODEITERATOR_VERSION
+ #define INODEITERATOR_VERSION 1
+#endif
+
+#ifndef ISIMPLENODE_VERSION
+ #define ISIMPLENODE_VERSION 1
+#endif
+
+#ifndef ICOMPOSITENODE_VERSION
+ #define ICOMPOSITENODE_VERSION 1
+#endif
+
+#ifndef ISTRUCTURENODE_VERSION
+ #define ISTRUCTURENODE_VERSION 1
+#endif
+
+#ifndef IARRAYNODE_VERSION
+ #define IARRAYNODE_VERSION 1
+#endif
+
+#ifndef IMETADATA_VERSION
+ #define IMETADATA_VERSION 1
+#endif
+
+#ifndef ICLIENTDOMPARSER_VERSION
+ #define ICLIENTDOMPARSER_VERSION 1
+#endif
+
+#ifndef ICLIENTDOMSERIALIZER_VERSION
+ #define ICLIENTDOMSERIALIZER_VERSION 1
+#endif
+
+#ifndef IDOMPARSER_VERSION
+ #define IDOMPARSER_VERSION 1
+#endif
+
+#ifndef IDOMSERIALIZER_VERSION
+ #define IDOMSERIALIZER_VERSION 1
+#endif
+
+#ifndef IDOMIMPLEMENTATIONREGISTRY_VERSION
+ #define IDOMIMPLEMENTATIONREGISTRY_VERSION 1
+#endif
+
+#ifndef ICOREOBJECTFACTORY_VERSION
+ #define ICOREOBJECTFACTORY_VERSION 1
+#endif
+
+#ifndef ICORECONFIGURATIONMANAGER_VERSION
+ #define ICORECONFIGURATIONMANAGER_VERSION 1
+#endif
+
+#endif // XMPCoreLatestInterfaceVersions_h__
+
diff --git a/public/include/XMPCore/source/IArrayNode.cpp b/public/include/XMPCore/source/IArrayNode.cpp
new file mode 100644
index 0000000..12fd0da
--- /dev/null
+++ b/public/include/XMPCore/source/IArrayNode.cpp
@@ -0,0 +1,163 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+namespace AdobeXMPCore {
+ class IArrayNodeProxy;
+}
+
+#define FRIEND_CLASS_DECLARATION() friend class AdobeXMPCore::IArrayNodeProxy;
+
+#include "XMPCore/Interfaces/IArrayNode.h"
+
+#if !BUILDING_XMPCORE_LIB && !SOURCE_COMPILING_XMPCORE_LIB
+
+#include "XMPCommon/Utilities/TWrapperFunctions.h"
+#include "XMPCore/Interfaces/ICoreObjectFactory.h"
+
+#include <assert.h>
+
+namespace AdobeXMPCore {
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+ class IArrayNodeProxy
+ : public virtual IArrayNode
+ , public virtual ICompositeNodeProxy
+ {
+ private:
+ pIArrayNode mRawPtr;
+
+ public:
+ IArrayNodeProxy( pIArrayNode ptr )
+ : mRawPtr( ptr )
+ , ICompositeNodeProxy( ptr )
+ , INodeProxy( ptr ) {}
+
+ ~IArrayNodeProxy() __NOTHROW__ {}
+
+ pIArrayNode APICALL GetActualIArrayNode() __NOTHROW__ { return mRawPtr; }
+
+ void APICALL Acquire() const __NOTHROW__ { assert( false ); }
+
+ void APICALL Release() const __NOTHROW__ { assert( false ); }
+
+ AdobeXMPCommon_Int::pISharedObject_I APICALL GetISharedObject_I() __NOTHROW__ {
+ return mRawPtr->GetISharedObject_I();
+ }
+
+ AdobeXMPCore_Int::pIArrayNode_I APICALL GetIArrayNode_I() __NOTHROW__ {
+ return mRawPtr->GetIArrayNode_I();
+ }
+
+ pvoid APICALL GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion ) {
+ return CallSafeFunction< IVersionable, pvoid, pvoid, uint64, uint32 >(
+ mRawPtr, &IVersionable::getInterfacePointer, interfaceID, interfaceVersion );
+ }
+
+ pvoid APICALL getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getInterfacePointer( interfaceID, interfaceVersion, error );
+ }
+
+ virtual eArrayForm APICALL GetArrayForm() const {
+ return CallConstSafeFunction< IArrayNode_v1, eArrayForm, uint32 >(
+ mRawPtr, &IArrayNode_v1::getArrayForm );
+ }
+
+ virtual eNodeType APICALL GetChildNodeType() const {
+ return CallConstSafeFunction< IArrayNode_v1, eNodeType, uint32 >(
+ mRawPtr, &IArrayNode_v1::getChildNodeType );
+ }
+
+ virtual spINode APICALL GetNodeAtIndex( sizet index ) {
+ return CallSafeFunctionReturningPointer< IArrayNode_v1, pINode_base, INode, sizet >(
+ mRawPtr, &IArrayNode_v1::getNodeAtIndex, index );
+ }
+
+ virtual void APICALL InsertNodeAtIndex( const spINode & node, sizet index ) {
+ return CallSafeFunctionReturningVoid< IArrayNode_v1, pINode_base, sizet >(
+ mRawPtr, &IArrayNode_v1::insertNodeAtIndex, node ? node->GetActualINode() : NULL, index );
+ }
+
+ virtual spINode APICALL RemoveNodeAtIndex( sizet index ) {
+ return CallSafeFunctionReturningPointer< IArrayNode_v1, pINode_base, INode, sizet >(
+ mRawPtr, &IArrayNode_v1::removeNodeAtIndex, index );
+ }
+
+ virtual spINode APICALL ReplaceNodeAtIndex( const spINode & node, sizet index ) {
+ return CallSafeFunctionReturningPointer< IArrayNode_v1, pINode_base, INode, pINode_base, sizet >(
+ mRawPtr, &IArrayNode_v1::replaceNodeAtIndex, node ? node->GetActualINode() :NULL, index );
+ }
+
+ virtual uint32 APICALL getArrayForm( pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getArrayForm( error );
+ }
+
+ virtual pINode_base APICALL getNodeAtIndex( sizet index, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getNodeAtIndex( index, error );
+ }
+
+ virtual void APICALL insertNodeAtIndex( pINode_base node, sizet index, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->insertNodeAtIndex( node, index, error );
+ }
+
+ virtual pINode_base APICALL removeNodeAtIndex( sizet index, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->removeNodeAtIndex( index, error );
+ }
+
+ virtual pINode_base APICALL replaceNodeAtIndex( pINode_base node, sizet index, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->replaceNodeAtIndex( node, index, error );
+ }
+
+ virtual uint32 APICALL getChildNodeType( pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getChildNodeType( error );
+ }
+
+ };
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+
+ spIArrayNode IArrayNode_v1::MakeShared( pIArrayNode_base ptr ) {
+ if ( !ptr ) return spIArrayNode();
+ pIArrayNode p = IArrayNode::GetInterfaceVersion() > 1 ? ptr->GetInterfacePointer< IArrayNode >() : ptr;
+ return shared_ptr< IArrayNode >( new IArrayNodeProxy( p ) );
+ }
+
+ spIArrayNode IArrayNode_v1::CreateUnorderedArrayNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) {
+ return CallSafeFunctionReturningPointer< ICoreObjectFactory, pIArrayNode_base, IArrayNode, uint32, const char *, sizet, const char *, sizet >(
+ ICoreObjectFactory::GetCoreObjectFactory(), &ICoreObjectFactory::CreateArrayNode, static_cast< uint32 >( IArrayNode::kAFUnordered ),
+ nameSpace, nameSpaceLength, name, nameLength );
+ }
+
+ spIArrayNode IArrayNode_v1::CreateOrderedArrayNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) {
+ return CallSafeFunctionReturningPointer< ICoreObjectFactory, pIArrayNode_base, IArrayNode, uint32, const char *, sizet, const char *, sizet >(
+ ICoreObjectFactory::GetCoreObjectFactory(), &ICoreObjectFactory::CreateArrayNode, static_cast< uint32 >( IArrayNode::kAFOrdered ),
+ nameSpace, nameSpaceLength, name, nameLength );
+ }
+
+ spIArrayNode IArrayNode_v1::CreateAlternativeArrayNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) {
+ return CallSafeFunctionReturningPointer< ICoreObjectFactory, pIArrayNode_base, IArrayNode, uint32, const char *, sizet, const char *, sizet >(
+ ICoreObjectFactory::GetCoreObjectFactory(), &ICoreObjectFactory::CreateArrayNode, static_cast< uint32 >( IArrayNode::kAFAlternative ),
+ nameSpace, nameSpaceLength, name, nameLength );
+ }
+
+}
+
+#endif // BUILDING_XMPCORE_LIB && !SOURCE_COMPILING_XMPCORE_LIB
diff --git a/public/include/XMPCore/source/IClientDOMParser.cpp b/public/include/XMPCore/source/IClientDOMParser.cpp
new file mode 100644
index 0000000..c476782
--- /dev/null
+++ b/public/include/XMPCore/source/IClientDOMParser.cpp
@@ -0,0 +1,76 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCore/Interfaces/IClientDOMParser.h"
+#include "XMPCore/Interfaces/INode.h"
+
+#if 1//!BUILDING_XMPCORE_LIB
+namespace AdobeXMPCore {
+
+ pINode_base APICALL IClientDOMParser_v1::parse( const char * buffer, sizet bufferLength, pcIConfigurable configurationParameters, ReportErrorAndContinueABISafeProc proc, pcIError_base & error, uint32 & unknownExceptionCaught ) __NOTHROW__ {
+ unknownExceptionCaught = 0;
+ error = NULL;
+ try {
+ auto node = Parse( buffer, bufferLength, configurationParameters, proc );
+ if ( node ) {
+ node->Acquire();
+ return node->GetActualINode();
+ }
+ return NULL;
+ } catch ( spcIError err ) {
+ error = err->GetActualIError();
+ error->Acquire();
+ } catch ( ... ) {
+ unknownExceptionCaught = 1;
+ }
+ return NULL;
+ }
+
+ uint32 APICALL IClientDOMParser_v1::areKeysCaseSensitive( pcIError_base & error, uint32 & unknownExceptionCaught ) const __NOTHROW__ {
+ unknownExceptionCaught = 0;
+ error = NULL;
+ try {
+ return AreKeysCaseSensitive() ? 1 : 0;
+ } catch ( spcIError err ) {
+ error = err->GetActualIError();
+ error->Acquire();
+ } catch ( ... ) {
+ unknownExceptionCaught = 1;
+ }
+ return 0;
+ }
+
+ void APICALL IClientDOMParser_v1::initialize( pIConfigurable configurationParameters, pcIError_base & error, uint32 & unknownExceptionCaught ) __NOTHROW__ {
+ unknownExceptionCaught = 0;
+ error = NULL;
+ try {
+ Initialize( configurationParameters );
+ } catch ( spcIError err ) {
+ error = err->GetActualIError();
+ error->Acquire();
+ } catch ( ... ) {
+ unknownExceptionCaught = 1;
+ }
+ }
+
+ uint32 APICALL IClientDOMParser_v1::validate( const uint64 & key, uint32 dataType, const IConfigurable::CombinedDataValue & dataValue, pcIError_base & error, uint32 & unknownExceptionCaught ) __NOTHROW__ {
+ unknownExceptionCaught = 0;
+ error = NULL;
+ try {
+ return static_cast< uint32 >( Validate( key, static_cast< IConfigurable::eDataType >( dataType ), dataValue ) );
+ } catch ( spcIError err ) {
+ error = err->GetActualIError();
+ error->Acquire();
+ } catch ( ... ) {
+ unknownExceptionCaught = 1;
+ }
+ return 0;
+ }
+}
+#endif // !BUILDING_XMPCORE_LIB
diff --git a/public/include/XMPCore/source/IClientDOMSerializer.cpp b/public/include/XMPCore/source/IClientDOMSerializer.cpp
new file mode 100644
index 0000000..f1f9f52
--- /dev/null
+++ b/public/include/XMPCore/source/IClientDOMSerializer.cpp
@@ -0,0 +1,73 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCore/Interfaces/IClientDOMSerializer.h"
+#include "XMPCore/Interfaces/INode.h"
+#include "XMPCommon/Interfaces/IUTF8String.h"
+#include "XMPCore/Interfaces/INameSpacePrefixMap.h"
+
+#if !BUILDING_XMPCORE_LIB
+namespace AdobeXMPCore {
+
+ void APICALL IClientDOMSerializer_v1::serialize( pINode_base node, pcINameSpacePrefixMap_base map, pcIConfigurable configurationParameters, ReportErrorAndContinueABISafeProc proc, pIUTF8String_base string, pcIError_base & error, uint32 & unknownErrorThrown ) __NOTHROW__ {
+ unknownErrorThrown = 0;
+ error = NULL;
+ try {
+ Serialize( INode::MakeShared( node ), INameSpacePrefixMap::MakeShared( map ), configurationParameters, proc, IUTF8String::MakeShared( string ) );
+ } catch ( spcIError err ) {
+ error = err->GetActualIError();
+ error->Acquire();
+ } catch ( ... ) {
+ unknownErrorThrown = 1;
+ }
+ }
+
+ uint32 APICALL IClientDOMSerializer_v1::areKeysCaseSensitive( pcIError_base & error, uint32 & unknownExceptionCaught ) const __NOTHROW__ {
+ unknownExceptionCaught = 0;
+ error = NULL;
+ try {
+ return AreKeysCaseSensitive() ? 1 : 0;
+ } catch ( spcIError err ) {
+ error = err->GetActualIError();
+ error->Acquire();
+ } catch ( ... ) {
+ unknownExceptionCaught = 1;
+ }
+ return 0;
+ }
+
+ void APICALL IClientDOMSerializer_v1::initialize( pIConfigurable configurationParameters, pcIError_base & error, uint32 & unknownExceptionCaught ) __NOTHROW__ {
+ unknownExceptionCaught = 0;
+ error = NULL;
+ try {
+ Initialize( configurationParameters );
+ } catch ( spcIError err ) {
+ error = err->GetActualIError();
+ error->Acquire();
+ } catch ( ... ) {
+ unknownExceptionCaught = 1;
+ }
+ }
+
+ uint32 APICALL IClientDOMSerializer_v1::validate( const uint64 & key, uint32 dataType, const IConfigurable::CombinedDataValue & dataValue, pcIError_base & error, uint32 & unknownExceptionCaught ) __NOTHROW__ {
+ unknownExceptionCaught = 0;
+ error = NULL;
+ try {
+ return static_cast< uint32 >( Validate( key, static_cast< IConfigurable::eDataType >( dataType ), dataValue ) );
+ } catch ( spcIError err ) {
+ error = err->GetActualIError();
+ error->Acquire();
+ } catch ( ... ) {
+ unknownExceptionCaught = 1;
+ }
+ return 0;
+ }
+
+}
+#endif // !BUILDING_XMPCORE_LIB
diff --git a/public/include/XMPCore/source/ICompositeNode.cpp b/public/include/XMPCore/source/ICompositeNode.cpp
new file mode 100644
index 0000000..603501b
--- /dev/null
+++ b/public/include/XMPCore/source/ICompositeNode.cpp
@@ -0,0 +1,121 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+namespace AdobeXMPCore {
+ class ICompositeNodeProxy;
+}
+
+#define FRIEND_CLASS_DECLARATION() friend class AdobeXMPCore::ICompositeNodeProxy;
+
+#include "XMPCore/Interfaces/ICompositeNode.h"
+
+#if !BUILDING_XMPCORE_LIB && !SOURCE_COMPILING_XMPCORE_LIB
+
+#include "XMPCommon/Utilities/TWrapperFunctions.h"
+#include <assert.h>
+#include "XMPCore/Interfaces/IPath.h"
+#include "XMPCore/Interfaces/INodeIterator.h"
+
+namespace AdobeXMPCore {
+ ICompositeNodeProxy::ICompositeNodeProxy( pICompositeNode ptr )
+ : mRawPtr( ptr )
+ , INodeProxy( ptr ) {}
+
+ ICompositeNodeProxy::~ICompositeNodeProxy() __NOTHROW__ {}
+
+ pICompositeNode APICALL ICompositeNodeProxy::GetActualICompositeNode() __NOTHROW__ { return mRawPtr; }
+
+ AdobeXMPCore_Int::pICompositeNode_I APICALL ICompositeNodeProxy::GetICompositeNode_I() __NOTHROW__ {
+ return mRawPtr->GetICompositeNode_I();
+ }
+
+ INode_v1::eNodeType APICALL ICompositeNodeProxy::GetNodeTypeAtPath( const spcIPath & path ) const {
+ return CallConstSafeFunction< ICompositeNode_v1, eNodeType, uint32, pcIPath_base >(
+ mRawPtr, &ICompositeNode_v1::getNodeTypeAtPath, path ? path->GetActualIPath() : NULL );
+ }
+
+ spINode APICALL ICompositeNodeProxy::GetNodeAtPath( const spcIPath & path ) {
+ return CallSafeFunctionReturningPointer< ICompositeNode_v1, pINode_base, INode, pcIPath_base >(
+ mRawPtr, &ICompositeNode_v1::getNodeAtPath, path ? path->GetActualIPath() : NULL );
+ }
+
+ void APICALL ICompositeNodeProxy::AppendNode( const spINode & node ) {
+ return CallSafeFunctionReturningVoid< ICompositeNode_v1, pINode_base >(
+ mRawPtr, &ICompositeNode_v1::appendNode, node ? node->GetActualINode() : NULL );
+ }
+
+ void APICALL ICompositeNodeProxy::InsertNodeAtPath( const spINode & node, const spcIPath & path ) {
+ return CallSafeFunctionReturningVoid< ICompositeNode_v1, pINode_base, pcIPath_base >(
+ mRawPtr, &ICompositeNode_v1::insertNodeAtPath, node ? node->GetActualINode() : NULL, path ? path->GetActualIPath() : NULL );
+ }
+
+ spINode APICALL ICompositeNodeProxy::ReplaceNodeAtPath( const spINode & node, const spcIPath & path ) {
+ return CallSafeFunctionReturningPointer< ICompositeNode_v1, pINode_base, INode, pINode_base, pcIPath_base >(
+ mRawPtr, &ICompositeNode_v1::replaceNodeAtPath, node ? node->GetActualINode() : NULL, path ? path->GetActualIPath() : NULL );
+ }
+
+ spINode APICALL ICompositeNodeProxy::RemoveNodeAtPath( const spcIPath & path ) {
+ return CallSafeFunctionReturningPointer< ICompositeNode_v1, pINode_base, INode, pcIPath_base >(
+ mRawPtr, &ICompositeNode_v1::removeNodeAtPath, path ? path->GetActualIPath() : NULL );
+ }
+
+ spINodeIterator APICALL ICompositeNodeProxy::Iterator() {
+ return CallSafeFunctionReturningPointer< ICompositeNode_v1, pINodeIterator_base, INodeIterator >(
+ mRawPtr, &ICompositeNode_v1::iterator );
+ }
+
+ sizet APICALL ICompositeNodeProxy::ChildCount() const __NOTHROW__ {
+ return mRawPtr->ChildCount();
+ }
+
+ uint32 APICALL ICompositeNodeProxy::getNodeTypeAtPath( pcIPath_base path, pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getNodeTypeAtPath( path, error );
+ }
+
+ pINode_base APICALL ICompositeNodeProxy::getNodeAtPath( pcIPath_base path, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getNodeAtPath( path, error );
+ }
+
+ void APICALL ICompositeNodeProxy::appendNode( pINode_base node, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->appendNode( node, error );
+ }
+
+ void APICALL ICompositeNodeProxy::insertNodeAtPath( pINode_base node, pcIPath_base path, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->insertNodeAtPath( node, path, error );
+ }
+
+ pINode_base APICALL ICompositeNodeProxy::replaceNodeAtPath( pINode_base node, pcIPath_base path, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->replaceNodeAtPath( node, path, error );
+ }
+
+ pINode_base APICALL ICompositeNodeProxy::removeNodeAtPath( pcIPath_base path, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->removeNodeAtPath( path, error );
+ }
+
+ pINodeIterator_base APICALL ICompositeNodeProxy::iterator( pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->iterator( error );
+ }
+
+ spICompositeNode ICompositeNode_v1::MakeShared( pICompositeNode_base ptr ) {
+ if ( !ptr ) return spICompositeNode();
+ pICompositeNode p = ICompositeNode::GetInterfaceVersion() > 1 ?
+ ptr->GetInterfacePointer< ICompositeNode >() : ptr;
+ return shared_ptr< ICompositeNode >( new ICompositeNodeProxy( p ) );
+ }
+
+}
+
+#endif // BUILDING_XMPCORE_LIB && !SOURCE_COMPILING_XMPCORE_LIB
diff --git a/public/include/XMPCore/source/ICoreConfigurationManager.cpp b/public/include/XMPCore/source/ICoreConfigurationManager.cpp
new file mode 100644
index 0000000..af4f74c
--- /dev/null
+++ b/public/include/XMPCore/source/ICoreConfigurationManager.cpp
@@ -0,0 +1,88 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+namespace AdobeXMPCore {
+ class ICoreConfigurationManagerProxy;
+}
+
+#define FRIEND_CLASS_DECLARATION() friend class AdobeXMPCore::ICoreConfigurationManagerProxy;
+
+#include "XMPCore/Interfaces/ICoreConfigurationManager.h"
+
+#if !BUILDING_XMPCORE_LIB && !SOURCE_COMPILING_XMPCORE_LIB
+
+#include "XMPCommon/Utilities/TWrapperFunctions.h"
+#include "XMPCore/Interfaces/ICoreObjectFactory.h"
+#include <assert.h>
+
+namespace AdobeXMPCore {
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+ class ICoreConfigurationManagerProxy
+ : public virtual ICoreConfigurationManager
+ , public virtual IConfigurationManagerProxy
+ {
+ private:
+ pICoreConfigurationManager mRawPtr;
+
+ public:
+ ICoreConfigurationManagerProxy( pICoreConfigurationManager ptr )
+ : IConfigurationManagerProxy( ptr )
+ , mRawPtr( ptr ) {}
+
+ ~ICoreConfigurationManagerProxy() __NOTHROW__ {}
+
+ pICoreConfigurationManager APICALL GetActualICoreConfigurationManager() __NOTHROW__ { return mRawPtr; }
+
+ void APICALL Acquire() const __NOTHROW__ { assert( false ); }
+
+ void APICALL Release() const __NOTHROW__ { assert( false ); }
+
+ AdobeXMPCommon_Int::pISharedObject_I APICALL GetISharedObject_I() __NOTHROW__ {
+ return mRawPtr->GetISharedObject_I();
+ }
+
+ AdobeXMPCore_Int::pICoreConfigurationManager_I APICALL GetICoreConfigurationManager_I() __NOTHROW__ {
+ return mRawPtr->GetICoreConfigurationManager_I();
+ }
+
+ pvoid APICALL GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion ) {
+ return CallSafeFunction< IVersionable, pvoid, pvoid, uint64, uint32 >(
+ mRawPtr, &IVersionable::getInterfacePointer, interfaceID, interfaceVersion );
+ }
+
+ pvoid APICALL getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getInterfacePointer( interfaceID, interfaceVersion, error );
+ }
+
+ };
+
+ spICoreConfigurationManager ICoreConfigurationManager_v1::MakeShared( pICoreConfigurationManager_base ptr ) {
+ if ( !ptr ) return spICoreConfigurationManager();
+ pICoreConfigurationManager p = ICoreConfigurationManager::GetInterfaceVersion() > 1 ? ptr->GetInterfacePointer< ICoreConfigurationManager >() : ptr;
+ return shared_ptr< ICoreConfigurationManager >( new ICoreConfigurationManagerProxy( p ) );
+ }
+
+ spICoreConfigurationManager ICoreConfigurationManager_v1::GetCoreConfigurationManager() {
+ return CallSafeFunctionReturningPointer< ICoreObjectFactory, pICoreConfigurationManager_base, ICoreConfigurationManager >(
+ ICoreObjectFactory::GetCoreObjectFactory(), &ICoreObjectFactory::GetCoreConfigurationManager );
+ }
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+
+}
+
+#endif // !BUILDING_XMPCORE_LIB && !SOURCE_COMPILING_XMPCORE_LIB
diff --git a/public/include/XMPCore/source/ICoreObjectFactory.cpp b/public/include/XMPCore/source/ICoreObjectFactory.cpp
new file mode 100644
index 0000000..b7e12e8
--- /dev/null
+++ b/public/include/XMPCore/source/ICoreObjectFactory.cpp
@@ -0,0 +1,83 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "XMPCore/Interfaces/ICoreObjectFactory.h"
+
+#if !BUILDING_XMPCORE_LIB && !SOURCE_COMPILING_XMPCORE_LIB
+
+#include "XMPCommon/Utilities/TWrapperFunctions.h"
+#include <assert.h>
+
+#if LINKING_XMPCORE_LIB
+ extern "C" AdobeXMPCore::pICoreObjectFactory_base WXMPMeta_GetXMPDOMFactoryInstance_1();
+#endif
+
+namespace AdobeXMPCore {
+
+ pICoreObjectFactory ICoreObjectFactory_v1::MakeCoreObjectFactory( pICoreObjectFactory_base ptr ) {
+ if ( ICoreObjectFactory::GetInterfaceVersion() == 1 )
+ return ptr;
+ else
+ return ptr->GetInterfacePointer< ICoreObjectFactory >();
+ }
+
+#if LINKING_XMPCORE_LIB
+ static pICoreObjectFactory ManageCoreObjectFactory( bool destroy = false ) {
+ static pICoreObjectFactory sCoreObjectFactoryPtr( NULL );
+ if ( destroy && sCoreObjectFactoryPtr ) {
+ sCoreObjectFactoryPtr = NULL;
+ return sCoreObjectFactoryPtr;
+ }
+
+ if ( !sCoreObjectFactoryPtr ) {
+ if ( ICoreObjectFactory::GetInterfaceVersion() != 1 )
+ sCoreObjectFactoryPtr = WXMPMeta_GetXMPDOMFactoryInstance_1()->GetInterfacePointer< ICoreObjectFactory >();
+ else
+ sCoreObjectFactoryPtr = WXMPMeta_GetXMPDOMFactoryInstance_1();
+ }
+ return sCoreObjectFactoryPtr;
+ }
+
+
+ void ICoreObjectFactory_v1::SetupCoreObjectFactory() {
+ ManageCoreObjectFactory();
+ }
+#else
+ static pICoreObjectFactory ManageCoreObjectFactory( bool destroy = false, pICoreObjectFactory_base coreObjectFactory = NULL ) {
+ static pICoreObjectFactory sCoreObjectFactoryPtr( NULL );
+ if ( destroy && sCoreObjectFactoryPtr ) {
+ sCoreObjectFactoryPtr = NULL;
+ return sCoreObjectFactoryPtr;
+ }
+
+ if ( !sCoreObjectFactoryPtr && coreObjectFactory ) {
+ if ( ICoreObjectFactory::GetInterfaceVersion() != 1 )
+ sCoreObjectFactoryPtr = coreObjectFactory->GetInterfacePointer< ICoreObjectFactory >();
+ else
+ sCoreObjectFactoryPtr = coreObjectFactory;
+ }
+ return sCoreObjectFactoryPtr;
+ }
+
+ void ICoreObjectFactory_v1::SetupCoreObjectFactory( pICoreObjectFactory_base coreObjectFactory ) {
+ ManageCoreObjectFactory( false, coreObjectFactory );
+ }
+#endif
+
+ pICoreObjectFactory ICoreObjectFactory_v1::GetCoreObjectFactory() {
+ return ManageCoreObjectFactory();
+ }
+
+ void ICoreObjectFactory_v1::DestroyCoreObjectFactory() {
+ ManageCoreObjectFactory( true );
+ }
+
+}
+
+#endif // BUILDING_XMPCORE_LIB
diff --git a/public/include/XMPCore/source/IDOMImplementationRegistry.cpp b/public/include/XMPCore/source/IDOMImplementationRegistry.cpp
new file mode 100644
index 0000000..35934e2
--- /dev/null
+++ b/public/include/XMPCore/source/IDOMImplementationRegistry.cpp
@@ -0,0 +1,122 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+namespace AdobeXMPCore {
+ class IDOMImplementationRegistryProxy;
+}
+
+#define FRIEND_CLASS_DECLARATION() friend class AdobeXMPCore::IDOMImplementationRegistryProxy;
+
+#include "XMPCore/Interfaces/IDOMImplementationRegistry.h"
+
+#if !BUILDING_XMPCORE_LIB && !SOURCE_COMPILING_XMPCORE_LIB
+
+#include "XMPCommon/Utilities/TWrapperFunctions.h"
+#include <assert.h>
+#include "XMPCore/Interfaces/IDOMParser.h"
+#include "XMPCore/Interfaces/IDOMSerializer.h"
+#include "XMPCore/Interfaces/ICoreObjectFactory.h"
+
+namespace AdobeXMPCore {
+
+ class IDOMImplementationRegistryProxy
+ : public virtual IDOMImplementationRegistry
+ {
+ private:
+ pIDOMImplementationRegistry mRawPtr;
+
+ public:
+ IDOMImplementationRegistryProxy( pIDOMImplementationRegistry ptr )
+ : mRawPtr( ptr )
+ {
+ mRawPtr->Acquire();
+ }
+
+ ~IDOMImplementationRegistryProxy() __NOTHROW__ { mRawPtr->Release(); }
+
+ pIDOMImplementationRegistry APICALL GetActualIDOMImplementationRegistry() __NOTHROW__ { return mRawPtr; }
+
+ void APICALL Acquire() const __NOTHROW__ { assert( false ); }
+
+ void APICALL Release() const __NOTHROW__ { assert( false ); }
+
+ AdobeXMPCommon_Int::pISharedObject_I APICALL GetISharedObject_I() __NOTHROW__ {
+ return mRawPtr->GetISharedObject_I();
+ }
+
+ AdobeXMPCore_Int::pIDOMImplementationRegistry_I APICALL GetIDOMImplementationRegistry_I() __NOTHROW__ {
+ return mRawPtr->GetIDOMImplementationRegistry_I();
+ }
+
+ pvoid APICALL GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion ) {
+ return CallSafeFunction< IVersionable, pvoid, pvoid, uint64, uint32 >(
+ mRawPtr, &IVersionable::getInterfacePointer, interfaceID, interfaceVersion );
+ }
+
+ pvoid APICALL getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getInterfacePointer( interfaceID, interfaceVersion, error );
+ }
+
+ virtual spIDOMParser APICALL GetParser( const char * key ) const {
+ return CallConstSafeFunctionReturningPointer< IDOMImplementationRegistry, pIDOMParser_base, IDOMParser, const char * >(
+ mRawPtr, &IDOMImplementationRegistry::getParser, key );
+ }
+
+ virtual spIDOMSerializer APICALL GetSerializer( const char * key ) const {
+ return CallConstSafeFunctionReturningPointer< IDOMImplementationRegistry, pIDOMSerializer_base, IDOMSerializer, const char * >(
+ mRawPtr, &IDOMImplementationRegistry::getSerializer, key );
+ }
+
+ virtual bool APICALL RegisterParser( const char * key, pIClientDOMParser_base parser ) {
+ return CallSafeFunction< IDOMImplementationRegistry, bool, uint32, const char *, pIClientDOMParser_base >(
+ mRawPtr, &IDOMImplementationRegistry::registerParser, key, parser );
+ }
+
+ virtual bool APICALL RegisterSerializer( const char * key, pIClientDOMSerializer_base serializer ) {
+ return CallSafeFunction< IDOMImplementationRegistry, bool, uint32, const char *, pIClientDOMSerializer_base >(
+ mRawPtr, &IDOMImplementationRegistry::registerSerializer, key, serializer );
+ }
+
+ virtual pIDOMParser_base APICALL getParser( const char * key, pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getParser( key, error );
+ }
+
+ virtual pIDOMSerializer_base APICALL getSerializer( const char * key, pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getSerializer( key, error );
+ }
+
+ virtual uint32 APICALL registerParser( const char * key, pIClientDOMParser_base parser, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->registerParser( key, parser, error );
+ }
+
+ virtual uint32 APICALL registerSerializer( const char * key, pIClientDOMSerializer_base serializer, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->registerSerializer( key, serializer, error );
+ }
+
+ };
+
+ spIDOMImplementationRegistry IDOMImplementationRegistry_v1::GetDOMImplementationRegistry() {
+ return CallSafeFunctionReturningPointer< ICoreObjectFactory, pIDOMImplementationRegistry_base, IDOMImplementationRegistry >(
+ ICoreObjectFactory::GetCoreObjectFactory(), &ICoreObjectFactory::GetDOMImplementationRegistry );
+ }
+
+ spIDOMImplementationRegistry IDOMImplementationRegistry_v1::MakeShared( pIDOMImplementationRegistry_base ptr ) {
+ if ( !ptr ) return spIDOMImplementationRegistry();
+ pIDOMImplementationRegistry p = IDOMImplementationRegistry::GetInterfaceVersion() > 1 ? ptr->GetInterfacePointer< IDOMImplementationRegistry >() : ptr;
+ return shared_ptr< IDOMImplementationRegistry >( new IDOMImplementationRegistryProxy( p ) );
+ }
+
+}
+
+#endif // BUILDING_XMPCORE_LIB && !SOURCE_COMPILING_XMPCORE_LIB
diff --git a/public/include/XMPCore/source/IDOMParser.cpp b/public/include/XMPCore/source/IDOMParser.cpp
new file mode 100644
index 0000000..a077a5c
--- /dev/null
+++ b/public/include/XMPCore/source/IDOMParser.cpp
@@ -0,0 +1,116 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+namespace AdobeXMPCore {
+ class IDOMParserProxy;
+}
+
+#define FRIEND_CLASS_DECLARATION() friend class AdobeXMPCore::IDOMParserProxy;
+
+#include "XMPCore/Interfaces/IDOMParser.h"
+
+#if !BUILDING_XMPCORE_LIB && !SOURCE_COMPILING_XMPCORE_LIB
+
+#include "XMPCommon/Utilities/TWrapperFunctions.h"
+#include <assert.h>
+#include "XMPCore/Interfaces/IMetadata.h"
+
+namespace AdobeXMPCore {
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+ class IDOMParserProxy
+ : public virtual IDOMParser
+ , public virtual IConfigurableProxy
+ {
+ private:
+ pIDOMParser mRawPtr;
+
+ public:
+ IDOMParserProxy( pIDOMParser ptr )
+ : IConfigurableProxy( ptr )
+ , mRawPtr( ptr )
+ {
+ mRawPtr->Acquire();
+ }
+
+ ~IDOMParserProxy() __NOTHROW__ { mRawPtr->Release(); }
+
+ pIDOMParser APICALL GetActualIDOMParser() __NOTHROW__ { return mRawPtr; }
+
+ void APICALL Acquire() const __NOTHROW__ { assert( false ); }
+
+ void APICALL Release() const __NOTHROW__ { assert( false ); }
+
+ AdobeXMPCommon_Int::pISharedObject_I APICALL GetISharedObject_I() __NOTHROW__ {
+ return mRawPtr->GetISharedObject_I();
+ }
+
+ AdobeXMPCore_Int::pIDOMParser_I APICALL GetIDOMParser_I() __NOTHROW__ {
+ return mRawPtr->GetIDOMParser_I();
+ }
+
+ pvoid APICALL GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion ) {
+ return CallSafeFunction< IVersionable, pvoid, pvoid, uint64, uint32 >(
+ mRawPtr, &IVersionable::getInterfacePointer, interfaceID, interfaceVersion );
+ }
+
+ pvoid APICALL getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getInterfacePointer( interfaceID, interfaceVersion, error );
+ }
+
+ virtual spIDOMParser APICALL Clone() const {
+ return CallConstSafeFunctionReturningPointer< IDOMParser, pIDOMParser_base, IDOMParser >(
+ mRawPtr, &IDOMParser::clone );
+ }
+
+ virtual spIMetadata APICALL Parse( const char * buffer, sizet bufferLength ) {
+ return CallSafeFunctionReturningPointer< IDOMParser, pIMetadata_base, IMetadata, const char *, sizet >(
+ mRawPtr, &IDOMParser::parse, buffer, bufferLength );
+ }
+
+ virtual void APICALL ParseWithSpecificAction( const char * buffer, sizet bufferLength, eActionType actionType, spINode & node ) {
+ return CallSafeFunctionReturningVoid< IDOMParser, const char *, sizet, uint32, pINode_base >(
+ mRawPtr, &IDOMParser::parseWithSpecificAction, buffer, bufferLength, static_cast< uint32 >( actionType ), node ? node->GetActualINode() : NULL );
+ }
+
+ virtual pIDOMParser_base APICALL clone( pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->clone( error );
+ }
+
+ virtual pIMetadata_base APICALL parse( const char * buffer, sizet bufferLength, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->parse( buffer, bufferLength, error );
+ }
+
+ virtual void APICALL parseWithSpecificAction( const char * buffer, sizet bufferLength, uint32 actionType, pINode_base node, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->parseWithSpecificAction( buffer, bufferLength, actionType, node, error );
+ }
+
+ };
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+
+ spIDOMParser IDOMParser_v1::MakeShared( pIDOMParser_base ptr ) {
+ if ( !ptr ) return spIDOMParser();
+ pIDOMParser p = IDOMParser::GetInterfaceVersion() > 1 ? ptr->GetInterfacePointer< IDOMParser >() : ptr;
+ return shared_ptr< IDOMParser >( new IDOMParserProxy( p ) );
+ }
+
+}
+
+#endif // BUILDING_XMPCORE_LIB && !SOURCE_COMPILING_XMPCORE_LIB
diff --git a/public/include/XMPCore/source/IDOMSerializer.cpp b/public/include/XMPCore/source/IDOMSerializer.cpp
new file mode 100644
index 0000000..481477a
--- /dev/null
+++ b/public/include/XMPCore/source/IDOMSerializer.cpp
@@ -0,0 +1,109 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+namespace AdobeXMPCore {
+ class IDOMSerializerProxy;
+}
+
+#define FRIEND_CLASS_DECLARATION() friend class AdobeXMPCore::IDOMSerializerProxy;
+
+#include "XMPCore/Interfaces/IDOMSerializer.h"
+
+#if !BUILDING_XMPCORE_LIB && !SOURCE_COMPILING_XMPCORE_LIB
+
+#include "XMPCommon/Utilities/TWrapperFunctions.h"
+#include "XMPCommon/Interfaces/IUTF8String.h"
+#include "XMPCore/Interfaces/INode.h"
+#include "XMPCore/Interfaces/INameSpacePrefixMap.h"
+
+#include <assert.h>
+
+namespace AdobeXMPCore {
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+ class IDOMSerializerProxy
+ : public virtual IDOMSerializer
+ , public virtual IConfigurableProxy
+ {
+ private:
+ pIDOMSerializer mRawPtr;
+
+ public:
+ IDOMSerializerProxy( pIDOMSerializer ptr )
+ : IConfigurableProxy( ptr )
+ , mRawPtr( ptr )
+ {
+ mRawPtr->Acquire();
+ }
+
+ ~IDOMSerializerProxy() __NOTHROW__ { mRawPtr->Release(); }
+
+ pIDOMSerializer APICALL GetActualIDOMSerializer() __NOTHROW__ { return mRawPtr; }
+
+ void APICALL Acquire() const __NOTHROW__ { assert( false ); }
+
+ void APICALL Release() const __NOTHROW__ { assert( false ); }
+
+ AdobeXMPCommon_Int::pISharedObject_I APICALL GetISharedObject_I() __NOTHROW__ {
+ return mRawPtr->GetISharedObject_I();
+ }
+
+ AdobeXMPCore_Int::pIDOMSerializer_I APICALL GetIDOMSerializer_I() __NOTHROW__ {
+ return mRawPtr->GetIDOMSerializer_I();
+ }
+
+ pvoid APICALL GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion ) {
+ return CallSafeFunction< IVersionable, pvoid, pvoid, uint64, uint32 >(
+ mRawPtr, &IVersionable::getInterfacePointer, interfaceID, interfaceVersion );
+ }
+
+ pvoid APICALL getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getInterfacePointer( interfaceID, interfaceVersion, error );
+ }
+
+ virtual spIDOMSerializer APICALL Clone() const {
+ return CallConstSafeFunctionReturningPointer< IDOMSerializer, pIDOMSerializer_base, IDOMSerializer >(
+ mRawPtr, &IDOMSerializer_v1::clone );
+ }
+
+ virtual spIUTF8String APICALL Serialize( const spINode & node, const spcINameSpacePrefixMap & map ) {
+ return CallSafeFunctionReturningPointer< IDOMSerializer, pIUTF8String_base, IUTF8String, pINode_base, pcINameSpacePrefixMap_base >(
+ mRawPtr, &IDOMSerializer_v1::serialize, node ? node->GetActualINode() : NULL , map ? map->GetActualINameSpacePrefixMap() : NULL );
+ }
+
+ virtual pIDOMSerializer_base APICALL clone( pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->clone( error );
+ }
+
+ virtual pIUTF8String_base APICALL serialize( pINode_base node, pcINameSpacePrefixMap_base map, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->serialize( node, map, error );
+ }
+
+ };
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+
+ spIDOMSerializer IDOMSerializer_v1::MakeShared( pIDOMSerializer_base ptr ) {
+ if ( !ptr ) return spIDOMSerializer();
+ pIDOMSerializer p = ptr->GetInterfacePointer< IDOMSerializer >();
+ return shared_ptr< IDOMSerializer >( new IDOMSerializerProxy( p ) );
+ }
+
+}
+
+#endif // !BUILDING_XMPCORE_LIB
diff --git a/public/include/XMPCore/source/IMetadata.cpp b/public/include/XMPCore/source/IMetadata.cpp
new file mode 100644
index 0000000..9b4eef5
--- /dev/null
+++ b/public/include/XMPCore/source/IMetadata.cpp
@@ -0,0 +1,113 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+namespace AdobeXMPCore {
+ class IMetadataProxy;
+}
+
+#define FRIEND_CLASS_DECLARATION() friend class AdobeXMPCore::IMetadataProxy;
+
+#include "XMPCore/Interfaces/IMetadata.h"
+
+#if !BUILDING_XMPCORE_LIB && !SOURCE_COMPILING_XMPCORE_LIB
+
+#include "XMPCommon/Utilities/TWrapperFunctions.h"
+#include "XMPCommon/Interfaces/IUTF8String.h"
+#include "XMPCore/Interfaces/ICoreObjectFactory.h"
+
+#include <assert.h>
+
+namespace AdobeXMPCore {
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+ class IMetadataProxy
+ : public virtual IMetadata
+ , public virtual IStructureNodeProxy
+ {
+ private:
+ pIMetadata mRawPtr;
+
+ public:
+ IMetadataProxy( pIMetadata ptr )
+ : mRawPtr( ptr )
+ , IStructureNodeProxy( ptr )
+ , ICompositeNodeProxy( ptr )
+ , INodeProxy( ptr ) {}
+
+ ~IMetadataProxy() __NOTHROW__ {}
+
+ pIMetadata APICALL GetActualIMetadata() __NOTHROW__ { return mRawPtr; }
+
+ void APICALL Acquire() const __NOTHROW__ { assert( false ); }
+
+ void APICALL Release() const __NOTHROW__ { assert( false ); }
+
+ AdobeXMPCommon_Int::pISharedObject_I APICALL GetISharedObject_I() __NOTHROW__ {
+ return mRawPtr->GetISharedObject_I();
+ }
+
+ AdobeXMPCore_Int::pIMetadata_I APICALL GetIMetadata_I() __NOTHROW__ {
+ return mRawPtr->GetIMetadata_I();
+ }
+
+ pvoid APICALL GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion ) {
+ return CallSafeFunction< IVersionable, pvoid, pvoid, uint64, uint32 >(
+ mRawPtr, &IVersionable::getInterfacePointer, interfaceID, interfaceVersion );
+ }
+
+ pvoid APICALL getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getInterfacePointer( interfaceID, interfaceVersion, error );
+ }
+
+ virtual spcIUTF8String APICALL GetAboutURI() const {
+ return CallConstSafeFunctionReturningPointer< IMetadata_v1, pcIUTF8String_base, const IUTF8String >(
+ mRawPtr, &IMetadata_v1::getAboutURI );
+ }
+
+ virtual void APICALL SetAboutURI( const char * uri, sizet uriLength ) __NOTHROW__ {
+ mRawPtr->SetAboutURI( uri, uriLength );
+ }
+
+ virtual pcIUTF8String_base APICALL getAboutURI( pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getAboutURI( error );
+ }
+
+ virtual void APICALL EnableFeature( const char * key, sizet keyLength ) const __NOTHROW__ {
+ return mRawPtr->EnableFeature( key, keyLength );
+ }
+
+ virtual void APICALL DisableFeature( const char * key, sizet keyLength ) const __NOTHROW__ {
+ return mRawPtr->DisableFeature( key, keyLength );
+ }
+ };
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+
+ spIMetadata IMetadata_v1::MakeShared( pIMetadata_base ptr ) {
+ if ( !ptr ) return spIMetadata();
+ pIMetadata p = IMetadata::GetInterfaceVersion() > 1 ? ptr->GetInterfacePointer< IMetadata >() : ptr;
+ return shared_ptr< IMetadata >( new IMetadataProxy( p ) );
+ }
+
+ spIMetadata IMetadata_v1::CreateMetadata() {
+ return CallSafeFunctionReturningPointer< ICoreObjectFactory, pIMetadata, IMetadata >(
+ ICoreObjectFactory::GetCoreObjectFactory(), &ICoreObjectFactory::CreateMetadata );
+ }
+
+}
+
+#endif // BUILDING_XMPCORE_LIB && !SOURCE_COMPILING_XMPCORE_LIB
diff --git a/public/include/XMPCore/source/INameSpacePrefixMap.cpp b/public/include/XMPCore/source/INameSpacePrefixMap.cpp
new file mode 100644
index 0000000..8dee5b7
--- /dev/null
+++ b/public/include/XMPCore/source/INameSpacePrefixMap.cpp
@@ -0,0 +1,187 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+namespace AdobeXMPCore {
+ class INameSpacePrefixMapProxy;
+}
+
+#define FRIEND_CLASS_DECLARATION() friend class AdobeXMPCore::INameSpacePrefixMapProxy;
+
+#include "XMPCore/Interfaces/INameSpacePrefixMap.h"
+#include "XMPCore/Interfaces/ICoreObjectFactory.h"
+
+#if !BUILDING_XMPCORE_LIB && !SOURCE_COMPILING_XMPCORE_LIB
+
+#include "XMPCommon/Utilities/TWrapperFunctions.h"
+#include "XMPCommon/Interfaces/IUTF8String.h"
+
+#include <assert.h>
+
+namespace AdobeXMPCore {
+
+
+ bool INameSpacePrefixMap::IsEmpty() const __NOTHROW__{
+ return this->Size() == 0;
+ }
+
+ class INameSpacePrefixMapProxy
+ : public virtual INameSpacePrefixMap
+ {
+ private:
+ pINameSpacePrefixMap mRawPtr;
+
+ public:
+ INameSpacePrefixMapProxy( pINameSpacePrefixMap ptr )
+ : mRawPtr( ptr )
+ {
+ mRawPtr->Acquire();
+ }
+
+ ~INameSpacePrefixMapProxy() __NOTHROW__ { mRawPtr->Release(); }
+
+ pINameSpacePrefixMap APICALL GetActualINameSpacePrefixMap() __NOTHROW__ { return mRawPtr; }
+
+ void APICALL Acquire() const __NOTHROW__ { assert( false ); }
+
+ void APICALL Release() const __NOTHROW__ { assert( false ); }
+
+ AdobeXMPCommon_Int::pISharedObject_I APICALL GetISharedObject_I() __NOTHROW__ {
+ return mRawPtr->GetISharedObject_I();
+ }
+
+ AdobeXMPCore_Int::pINameSpacePrefixMap_I APICALL GetINameSpacePrefixMap_I() __NOTHROW__ {
+ return mRawPtr->GetINameSpacePrefixMap_I();
+ }
+
+ pvoid APICALL GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion ) {
+ return CallSafeFunction< IVersionable, pvoid, pvoid, uint64, uint32 >(
+ mRawPtr, &IVersionable::getInterfacePointer, interfaceID, interfaceVersion );
+ }
+
+ pvoid APICALL getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getInterfacePointer( interfaceID, interfaceVersion, error );
+ }
+
+ virtual bool APICALL Insert( const char * prefix, sizet prefixLength, const char * nameSpace, sizet nameSpaceLength ) {
+ return CallSafeFunction< INameSpacePrefixMap_v1, bool, uint32, const char *, sizet, const char *, sizet >(
+ mRawPtr, &INameSpacePrefixMap_v1::insert, prefix, prefixLength, nameSpace, nameSpaceLength );
+ }
+
+ virtual uint32 APICALL insert( const char * prefix, sizet prefixLength, const char * nameSpace, sizet nameSpaceLength, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->insert( prefix, prefixLength, nameSpace, nameSpaceLength, error );
+ }
+
+ virtual bool APICALL RemovePrefix( const char * prefix, sizet prefixLength ) {
+ return CallSafeFunction< INameSpacePrefixMap_v1, bool, uint32, uint32, const char *, sizet >(
+ mRawPtr, &INameSpacePrefixMap_v1::remove, kPrefixIsParameter, prefix, prefixLength );
+ }
+
+ virtual bool APICALL RemoveNameSpace( const char * nameSpace, sizet nameSpaceLength ) {
+ return CallSafeFunction< INameSpacePrefixMap_v1, bool, uint32, uint32, const char *, sizet >(
+ mRawPtr, &INameSpacePrefixMap_v1::remove, kNameSpaceIsParameter, nameSpace, nameSpaceLength );
+ }
+
+ virtual bool APICALL IsPrefixPresent( const char * prefix, sizet prefixLength ) const {
+ return CallConstSafeFunction< INameSpacePrefixMap_v1, bool, uint32, uint32, const char *, sizet >(
+ mRawPtr, &INameSpacePrefixMap_v1::isPresent, kPrefixIsParameter, prefix, prefixLength );
+ }
+
+ virtual bool APICALL IsNameSpacePresent( const char * nameSpace, sizet nameSpaceLength ) const {
+ return CallConstSafeFunction< INameSpacePrefixMap_v1, bool, uint32, uint32, const char *, sizet >(
+ mRawPtr, &INameSpacePrefixMap_v1::isPresent, kNameSpaceIsParameter, nameSpace, nameSpaceLength );
+ }
+
+ virtual spcIUTF8String APICALL GetNameSpace( const char * prefix, sizet prefixLength ) const {
+ return CallConstSafeFunctionReturningPointer< INameSpacePrefixMap_v1, pcIUTF8String_base, const IUTF8String, uint32, const char *, sizet >(
+ mRawPtr, &INameSpacePrefixMap_v1::get, kPrefixIsParameter, prefix, prefixLength );
+ }
+
+ virtual spcIUTF8String APICALL GetPrefix( const char * nameSpace, sizet nameSpaceLength ) const {
+ return CallConstSafeFunctionReturningPointer< INameSpacePrefixMap_v1, pcIUTF8String_base, const IUTF8String, uint32, const char *, sizet >(
+ mRawPtr, &INameSpacePrefixMap_v1::get, kNameSpaceIsParameter, nameSpace, nameSpaceLength );
+ }
+
+ virtual sizet APICALL Size() const __NOTHROW__ {
+ return mRawPtr->Size();
+ }
+
+ virtual void APICALL Clear() __NOTHROW__ {
+ return mRawPtr->Clear();
+ }
+
+ virtual spINameSpacePrefixMap APICALL Clone() const {
+ return CallConstSafeFunctionReturningPointer< INameSpacePrefixMap_v1, pINameSpacePrefixMap_base, INameSpacePrefixMap >(
+ mRawPtr, &INameSpacePrefixMap_v1::clone );
+ }
+
+ virtual pINameSpacePrefixMap_base APICALL clone( pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->clone( error );
+ }
+
+ virtual uint32 APICALL remove( uint32 keyType, const char * key, sizet keyLength, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->remove( keyType, key, keyLength, error );
+ }
+
+ virtual uint32 APICALL isPresent( uint32 keyType, const char * key, sizet keyLength, pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->isPresent( keyType, key, keyLength, error );
+ }
+
+ virtual pcIUTF8String_base APICALL get( uint32 keyType, const char * key, sizet keyLength, pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->get( keyType, key, keyLength, error );
+ }
+
+ virtual void APICALL EnableThreadSafety() const __NOTHROW__ {
+ return mRawPtr->EnableThreadSafety();
+ }
+
+ virtual void APICALL DisableThreadSafety() const __NOTHROW__ {
+ return mRawPtr->DisableThreadSafety();
+ }
+
+ virtual bool APICALL IsThreadSafe() const {
+ return mRawPtr->isThreadSafe() != 0;
+ }
+
+ virtual uint32 APICALL isThreadSafe( ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->isThreadSafe();
+ }
+
+ virtual AdobeXMPCommon_Int::pIThreadSafe_I APICALL GetIThreadSafe_I() __NOTHROW__ override {
+ return mRawPtr->GetIThreadSafe_I();
+ }
+
+ };
+
+ spINameSpacePrefixMap INameSpacePrefixMap_v1::MakeShared( pINameSpacePrefixMap_base ptr ) {
+ if ( !ptr ) return spINameSpacePrefixMap();
+ pINameSpacePrefixMap p = INameSpacePrefixMap::GetInterfaceVersion() > 1 ?
+ ptr->GetInterfacePointer< INameSpacePrefixMap >() : ptr;
+ return shared_ptr< INameSpacePrefixMap >( new INameSpacePrefixMapProxy( p ) );
+ }
+
+ spINameSpacePrefixMap INameSpacePrefixMap_v1::CreateNameSpacePrefixMap() {
+ return CallSafeFunctionReturningPointer< ICoreObjectFactory, pINameSpacePrefixMap_base, INameSpacePrefixMap >(
+ ICoreObjectFactory::GetCoreObjectFactory(), &ICoreObjectFactory::CreateNameSpacePrefixMap );
+ }
+
+ spcINameSpacePrefixMap INameSpacePrefixMap_v1::GetDefaultNameSpacePrefixMap() {
+ return CallSafeFunctionReturningPointer< ICoreObjectFactory, pcINameSpacePrefixMap_base, const INameSpacePrefixMap >(
+ ICoreObjectFactory::GetCoreObjectFactory(), &ICoreObjectFactory::GetDefaultNameSpacePrefixMap );
+ }
+
+}
+
+#endif // BUILDING_XMPCORE_LIB && !SOURCE_COMPILING_XMPCORE_LIB
diff --git a/public/include/XMPCore/source/INode.cpp b/public/include/XMPCore/source/INode.cpp
new file mode 100644
index 0000000..9d0126c
--- /dev/null
+++ b/public/include/XMPCore/source/INode.cpp
@@ -0,0 +1,377 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+namespace AdobeXMPCore {
+ class INodeProxy;
+}
+
+#define FRIEND_CLASS_DECLARATION() friend class AdobeXMPCore::INodeProxy;
+
+#include "XMPCore/Interfaces/INode.h"
+
+#if !BUILDING_XMPCORE_LIB && !SOURCE_COMPILING_XMPCORE_LIB
+
+#include "XMPCommon/Utilities/TWrapperFunctions.h"
+#include "XMPCommon/Interfaces/IUTF8String.h"
+#include "XMPCore/Interfaces/IPath.h"
+#include "XMPCore/Interfaces/ISimpleNode.h"
+#include "XMPCore/Interfaces/INodeIterator.h"
+#include "XMPCore/Interfaces/IArrayNode.h"
+#include "XMPCore/Interfaces/IMetadata.h"
+
+#include <assert.h>
+
+namespace AdobeXMPCore {
+
+ INodeProxy::INodeProxy( pINode ptr ) : mRawPtr( ptr ) {
+ mRawPtr->Acquire();
+ }
+
+ INodeProxy::~INodeProxy() __NOTHROW__ {
+ mRawPtr->Release();
+ }
+
+ pINode APICALL INodeProxy::GetActualINode() __NOTHROW__ {
+ return mRawPtr;
+ }
+
+ void APICALL INodeProxy::Acquire() const __NOTHROW__ {
+ assert( false );
+ }
+
+ void APICALL INodeProxy::Release() const __NOTHROW__ {
+ assert( false );
+ }
+
+ AdobeXMPCommon_Int::pISharedObject_I APICALL INodeProxy::GetISharedObject_I() __NOTHROW__ {
+ return mRawPtr->GetISharedObject_I();
+ }
+
+ AdobeXMPCore_Int::pINode_I APICALL INodeProxy::GetINode_I() __NOTHROW__ {
+ return mRawPtr->GetINode_I();
+ }
+
+ pvoid APICALL INodeProxy::getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getInterfacePointer( interfaceID, interfaceVersion, error );
+ }
+
+ spINode APICALL INodeProxy::GetParent() {
+ return CallSafeFunctionReturningPointer< INode_v1, pINode_base, INode >(
+ mRawPtr, &INode_v1::getParent );
+ }
+
+ void APICALL INodeProxy::SetName( const char * name, sizet nameLength ) {
+ return CallSafeFunctionReturningVoid< INode_v1, const char *, sizet >(
+ mRawPtr, &INode_v1::setName, name, nameLength );
+ }
+
+ spcIUTF8String APICALL INodeProxy::GetName() const {
+ return CallConstSafeFunctionReturningPointer< INode_v1, pcIUTF8String_base, const IUTF8String >(
+ mRawPtr, &INode_v1::getName );
+ }
+
+ void APICALL INodeProxy::SetNameSpace( const char * nameSpace, sizet nameSpaceLength ) {
+ return CallSafeFunctionReturningVoid< INode_v1, const char *, sizet >(
+ mRawPtr, &INode_v1::setNameSpace, nameSpace, nameSpaceLength );
+
+ }
+
+ spcIUTF8String APICALL INodeProxy::GetNameSpace() const {
+ return CallConstSafeFunctionReturningPointer< INode_v1, pcIUTF8String_base, const IUTF8String >(
+ mRawPtr, &INode_v1::getNameSpace );
+ }
+
+ spIPath APICALL INodeProxy::GetPath() const {
+ return CallConstSafeFunctionReturningPointer< INode_v1, pIPath_base, IPath >(
+ mRawPtr, &INode_v1::getPath );
+ }
+
+ sizet APICALL INodeProxy::QualifiersCount() const __NOTHROW__ {
+ return mRawPtr->QualifiersCount();
+ }
+
+ spINodeIterator APICALL INodeProxy::QualifiersIterator() {
+ return CallSafeFunctionReturningPointer< INode_v1, pINodeIterator_base, INodeIterator >(
+ mRawPtr, &INode_v1::qualifiersIterator );
+ }
+
+ spINode APICALL INodeProxy::GetQualifier( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) {
+ return CallSafeFunctionReturningPointer< INode_v1, pINode_base, INode, const char *, sizet, const char *, sizet >(
+ mRawPtr, &INode_v1::getQualifier, nameSpace, nameSpaceLength, name, nameLength );
+ }
+
+ void APICALL INodeProxy::InsertQualifier( const spINode & node ) {
+ return CallSafeFunctionReturningVoid< INode_v1, pINode_base >(
+ mRawPtr, &INode_v1::insertQualifier, node ? node->GetActualINode() : NULL );
+ }
+
+ spINode APICALL INodeProxy::ReplaceQualifier( const spINode & node ) {
+ return CallSafeFunctionReturningPointer< INode_v1, pINode_base, INode, pINode_base >(
+ mRawPtr, &INode_v1::replaceQualifier, node ? node->GetActualINode() : NULL );
+ }
+
+ spINode APICALL INodeProxy::RemoveQualifier( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) {
+ return CallSafeFunctionReturningPointer< INode_v1, pINode_base, INode, const char *, sizet, const char *, sizet >(
+ mRawPtr, &INode_v1::removeQualifier, nameSpace, nameSpaceLength, name, nameLength );
+ }
+
+ INode_v1::eNodeType APICALL INodeProxy::GetNodeType() const {
+ return CallConstSafeFunction< INode_v1, eNodeType, uint32 >(
+ mRawPtr, &INode_v1::getNodeType );
+ }
+
+ bool APICALL INodeProxy::IsArrayItem() const {
+ return CallConstSafeFunction< INode_v1, bool, uint32 >(
+ mRawPtr, &INode_v1::isArrayItem );
+ }
+
+ bool APICALL INodeProxy::IsQualifierNode() const {
+ return CallConstSafeFunction< INode_v1, bool, uint32 >(
+ mRawPtr, &INode_v1::isQualifierNode );
+ }
+
+ sizet APICALL INodeProxy::GetIndex() const {
+ return CallConstSafeFunction< INode_v1, sizet, sizet >(
+ mRawPtr, &INode_v1::getIndex );
+ }
+
+ bool APICALL INodeProxy::HasQualifiers() const {
+ return CallConstSafeFunction< INode_v1, bool, uint32 >(
+ mRawPtr, &INode_v1::hasQualifiers );
+ }
+
+ bool APICALL INodeProxy::HasContent() const {
+ return CallConstSafeFunction< INode_v1, bool, uint32 >(
+ mRawPtr, &INode_v1::hasContent );
+ }
+
+ bool APICALL INodeProxy::IsEmpty() const {
+ return CallConstSafeFunction< INode_v1, bool, uint32 >(
+ mRawPtr, &INode_v1::isEmpty );
+ }
+
+ bool APICALL INodeProxy::HasChanged() const {
+ return CallConstSafeFunction< INode_v1, bool, uint32 >(
+ mRawPtr, &INode_v1::hasChanged );
+ }
+
+ void APICALL INodeProxy::AcknowledgeChanges() const __NOTHROW__ {
+ return mRawPtr->AcknowledgeChanges( );
+ }
+
+ void APICALL INodeProxy::Clear( bool contents, bool qualifiers ) {
+ return CallSafeFunctionReturningVoid< INode_v1, uint32, uint32 >(
+ mRawPtr, &INode_v1::clear, static_cast< uint32 >( contents ), static_cast< uint32 >( qualifiers ) );
+ }
+
+ spINode APICALL INodeProxy::Clone( bool ignoreEmptyNodes, bool ignoreNodesWithOnlyQualifiers ) const {
+ return CallConstSafeFunctionReturningPointer< INode_v1, pINode_base, INode, uint32, uint32 >(
+ mRawPtr, &INode_v1::clone, static_cast< uint32 >( ignoreEmptyNodes ), static_cast< uint32 >( ignoreNodesWithOnlyQualifiers ) );
+ }
+
+ pINode_base APICALL INodeProxy::getParent( pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getParent( error );
+ }
+
+ void APICALL INodeProxy::setName( const char * name, sizet nameLength, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->setName( name, nameLength, error );
+ }
+
+ AdobeXMPCommon::pcIUTF8String_base APICALL INodeProxy::getName( pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getName( error );
+ }
+
+ void APICALL INodeProxy::setNameSpace( const char * nameSpace, sizet nameSpaceLength, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->setNameSpace( nameSpace, nameSpaceLength, error );
+ }
+
+ pcIUTF8String_base APICALL INodeProxy::getNameSpace( pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getNameSpace( error );
+ }
+
+ pIPath_base APICALL INodeProxy::getPath( pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getPath( error );
+ }
+
+ pINodeIterator_base APICALL INodeProxy::qualifiersIterator( pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->qualifiersIterator( error );
+ }
+
+ pINode_base APICALL INodeProxy::getQualifier( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getQualifier( nameSpace, nameSpaceLength, name, nameLength, error );
+ }
+
+ void APICALL INodeProxy::insertQualifier( pINode_base base, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->insertQualifier( base, error );
+ }
+
+ pINode_base APICALL INodeProxy::replaceQualifier( pINode_base node, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->replaceQualifier( node, error );
+ }
+
+ pINode_base APICALL INodeProxy::removeQualifier( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->removeQualifier( nameSpace, nameSpaceLength, name, nameLength, error );
+ }
+
+ uint32 APICALL INodeProxy::getNodeType( pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getNodeType( error );
+ }
+
+ uint32 APICALL INodeProxy::isArrayItem( pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->isArrayItem( error );
+ }
+
+ uint32 APICALL INodeProxy::isQualifierNode( pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->isQualifierNode( error );
+ }
+
+ sizet APICALL INodeProxy::getIndex( pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getIndex( error );
+ }
+
+ uint32 APICALL INodeProxy::hasQualifiers( pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->hasQualifiers( error );
+ }
+
+ uint32 APICALL INodeProxy::hasContent( pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->hasContent( error );
+ }
+
+ uint32 APICALL INodeProxy::isEmpty( pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->isEmpty( error );
+ }
+
+ uint32 APICALL INodeProxy::hasChanged( pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->hasChanged( error );
+ }
+
+ void APICALL INodeProxy::clear( uint32 contents, uint32 qualifiers, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->clear( contents, qualifiers, error );
+ }
+
+ pINode_base APICALL INodeProxy::clone( uint32 igoreEmptyNodes, uint32 ignoreNodesWithOnlyQualifiers, pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->clone( igoreEmptyNodes, ignoreNodesWithOnlyQualifiers, error );
+ }
+
+ void APICALL INodeProxy::EnableThreadSafety() const __NOTHROW__ {
+ return mRawPtr->EnableThreadSafety( );
+ }
+
+ void APICALL INodeProxy::DisableThreadSafety() const __NOTHROW__ {
+ return mRawPtr->DisableThreadSafety( );
+ }
+
+ bool APICALL INodeProxy::IsThreadSafe() const {
+ return mRawPtr->isThreadSafe() != 0;
+ }
+
+ uint32 APICALL INodeProxy::isThreadSafe() const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->isThreadSafe();
+ }
+
+ spISimpleNode APICALL INodeProxy::ConvertToSimpleNode() {
+ return CallSafeFunctionReturningPointer< INode_v1, pISimpleNode_base, ISimpleNode >(
+ mRawPtr, &INode_v1::convertToSimpleNode );
+ }
+
+ spIStructureNode APICALL INodeProxy::ConvertToStructureNode() {
+ return CallSafeFunctionReturningPointer< INode_v1, pIStructureNode_base, IStructureNode >(
+ mRawPtr, &INode_v1::convertToStructureNode );
+ }
+
+ spIArrayNode APICALL INodeProxy::ConvertToArrayNode() {
+ return CallSafeFunctionReturningPointer< INode_v1, pIArrayNode_base, IArrayNode >(
+ mRawPtr, &INode_v1::convertToArrayNode );
+ }
+
+ spIMetadata APICALL INodeProxy::ConvertToMetadata() {
+ return CallSafeFunctionReturningPointer< INode_v1, pIMetadata_base, IMetadata >(
+ mRawPtr, &INode_v1::convertToMetadata );
+ }
+
+ pISimpleNode_base APICALL INodeProxy::convertToSimpleNode( pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->convertToSimpleNode( error );
+ }
+
+ pIStructureNode_base APICALL INodeProxy::convertToStructureNode( pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->convertToStructureNode( error ); }
+
+ pIArrayNode_base APICALL INodeProxy::convertToArrayNode( pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->convertToArrayNode( error );
+ }
+
+ pIMetadata_base APICALL INodeProxy::convertToMetadata( pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->convertToMetadata( error );
+ }
+
+ uint32 APICALL INodeProxy::getParentNodeType( pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getParentNodeType( error );
+ }
+
+ uint32 APICALL INodeProxy::getQualifierNodeType( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getQualifierNodeType( nameSpace, nameSpaceLength, name, nameLength, error );
+ }
+
+ INode_v1::eNodeType APICALL INodeProxy::GetParentNodeType() const {
+ return CallConstSafeFunction< INode_v1, eNodeType, uint32 >(
+ mRawPtr, &INode_v1::getParentNodeType );
+ }
+
+ INode_v1::eNodeType APICALL INodeProxy::GetQualifierNodeType( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) const {
+ return CallConstSafeFunction< INode_v1, eNodeType, uint32, const char *, sizet, const char *, sizet >(
+ mRawPtr, &INode_v1::getQualifierNodeType, nameSpace, nameSpaceLength, name, nameLength );
+ }
+
+ AdobeXMPCommon_Int::pIThreadSafe_I APICALL INodeProxy::GetIThreadSafe_I() __NOTHROW__ {
+ return mRawPtr->GetIThreadSafe_I( );
+ }
+
+ pvoid APICALL INodeProxy::GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion ) {
+ return CallSafeFunction< IVersionable, pvoid, pvoid, uint64, uint32 >(
+ mRawPtr, &IVersionable::getInterfacePointer, interfaceID, interfaceVersion );
+ }
+
+ spINode INode_v1::MakeShared( pINode_base ptr ) {
+ if ( !ptr ) return spINode();
+ pINode p = INode::GetInterfaceVersion() > 1 ? ptr->GetInterfacePointer< INode >() : ptr;
+ return shared_ptr< INode >( new INodeProxy( p ) );
+ }
+
+}
+
+#endif // !BUILDING_XMPCORE_LIB && !SOURCE_COMPILING_XMPCORE_LIB
diff --git a/public/include/XMPCore/source/INodeIterator.cpp b/public/include/XMPCore/source/INodeIterator.cpp
new file mode 100644
index 0000000..f2f43a3
--- /dev/null
+++ b/public/include/XMPCore/source/INodeIterator.cpp
@@ -0,0 +1,105 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+namespace AdobeXMPCore {
+ class INodeIteratorProxy;
+}
+
+#define FRIEND_CLASS_DECLARATION() friend class AdobeXMPCore::INodeIteratorProxy;
+
+#include "XMPCore/Interfaces/INodeIterator.h"
+
+#if !BUILDING_XMPCORE_LIB && !SOURCE_COMPILING_XMPCORE_LIB
+
+#include "XMPCommon/Utilities/TWrapperFunctions.h"
+#include <assert.h>
+
+namespace AdobeXMPCore {
+
+ class INodeIteratorProxy
+ : public virtual INodeIterator
+ {
+ private:
+ pINodeIterator mRawPtr;
+
+ public:
+ INodeIteratorProxy( pINodeIterator ptr )
+ : mRawPtr( ptr )
+ {
+ mRawPtr->Acquire();
+ }
+
+ ~INodeIteratorProxy() __NOTHROW__ { mRawPtr->Release(); }
+
+ pINodeIterator APICALL GetActualINodeIterator() __NOTHROW__ { return mRawPtr; }
+
+ void APICALL Acquire() const __NOTHROW__ { assert( false ); }
+
+ void APICALL Release() const __NOTHROW__ { assert( false ); }
+
+ AdobeXMPCommon_Int::pISharedObject_I APICALL GetISharedObject_I() __NOTHROW__ {
+ return mRawPtr->GetISharedObject_I();
+ }
+
+ AdobeXMPCore_Int::pINodeIterator_I APICALL GetINodeIterator_I() __NOTHROW__ {
+ return mRawPtr->GetINodeIterator_I();
+ }
+
+ pvoid APICALL getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getInterfacePointer( interfaceID, interfaceVersion, error );
+ }
+
+ virtual spINode APICALL GetNode() {
+ return CallSafeFunctionReturningPointer< INodeIterator_v1, pINode_base, INode >(
+ mRawPtr, &INodeIterator_v1::getNode );
+ }
+
+ virtual INode_v1::eNodeType APICALL GetNodeType() const {
+ return CallConstSafeFunction< INodeIterator_v1, INode_v1::eNodeType, uint32 >(
+ mRawPtr, &INodeIterator_v1::getNodeType );
+ }
+
+ virtual spINodeIterator APICALL Next() {
+ return CallSafeFunctionReturningPointer< INodeIterator_v1, pINodeIterator, INodeIterator >(
+ mRawPtr, &INodeIterator_v1::next );
+ }
+
+ virtual uint32 APICALL getNodeType( pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getNodeType( error );
+ }
+
+ virtual pINode_base APICALL getNode( pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getNode( error );
+ }
+
+ virtual pINodeIterator_base APICALL next( pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->next( error );
+ }
+
+ pvoid APICALL GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion ) {
+ return CallSafeFunction< IVersionable, pvoid, pvoid, uint64, uint32 >(
+ mRawPtr, &IVersionable::getInterfacePointer, interfaceID, interfaceVersion );
+ }
+
+ };
+
+ spINodeIterator INodeIterator_v1::MakeShared( pINodeIterator_base ptr ) {
+ if ( !ptr ) return spINodeIterator();
+ //return shared_ptr< INodeIterator >( new INodeIteratorProxy( ptr ) );
+ pINodeIterator p = INodeIterator::GetInterfaceVersion() > 1 ? ptr->GetInterfacePointer< INodeIterator >() : ptr;
+ return shared_ptr< INodeIterator >( new INodeIteratorProxy( p ) );
+ }
+
+}
+
+#endif // BUILDING_XMPCORE_LIB && !SOURCE_COMPILING_XMPCORE_LIB
diff --git a/public/include/XMPCore/source/IPath.cpp b/public/include/XMPCore/source/IPath.cpp
new file mode 100644
index 0000000..f0b99c3
--- /dev/null
+++ b/public/include/XMPCore/source/IPath.cpp
@@ -0,0 +1,157 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+namespace AdobeXMPCore {
+ class IPathProxy;
+}
+
+#define FRIEND_CLASS_DECLARATION() friend class AdobeXMPCore::IPathProxy;
+
+#include "XMPCore/Interfaces/IPath.h"
+
+#if !BUILDING_XMPCORE_LIB && !SOURCE_COMPILING_XMPCORE_LIB
+
+#include "XMPCommon/Utilities/TWrapperFunctions.h"
+#include "XMPCore/Interfaces/INameSpacePrefixMap.h"
+#include "XMPCommon/Interfaces/IUTF8String.h"
+#include "XMPCore/Interfaces/IPathSegment.h"
+#include "XMPCore/Interfaces/ICoreObjectFactory.h"
+
+#include <assert.h>
+
+namespace AdobeXMPCore {
+
+ class IPathProxy
+ : public virtual IPath
+ {
+ private:
+ pIPath mRawPtr;
+
+ public:
+ IPathProxy( pIPath ptr )
+ : mRawPtr( ptr )
+ {
+ mRawPtr->Acquire();
+ }
+
+ ~IPathProxy() __NOTHROW__ { mRawPtr->Release(); }
+
+ pIPath APICALL GetActualIPath() __NOTHROW__ { return mRawPtr; }
+
+ void APICALL Acquire() const __NOTHROW__ { assert( false ); }
+
+ void APICALL Release() const __NOTHROW__ { assert( false ); }
+
+ AdobeXMPCommon_Int::pISharedObject_I APICALL GetISharedObject_I() __NOTHROW__ {
+ return mRawPtr->GetISharedObject_I();
+ }
+
+ AdobeXMPCore_Int::pIPath_I APICALL GetIPath_I() __NOTHROW__ {
+ return mRawPtr->GetIPath_I();
+ }
+
+ pvoid APICALL GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion ) {
+ return CallSafeFunction< IVersionable, pvoid, pvoid, uint64, uint32 >(
+ mRawPtr, &IVersionable::getInterfacePointer, interfaceID, interfaceVersion );
+ }
+
+ pvoid APICALL getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getInterfacePointer( interfaceID, interfaceVersion, error );
+ }
+
+ virtual spcINameSpacePrefixMap APICALL RegisterNameSpacePrefixMap( const spcINameSpacePrefixMap & map ) {
+ return CallSafeFunctionReturningPointer< IPath_v1, pcINameSpacePrefixMap_base, const INameSpacePrefixMap, pcINameSpacePrefixMap_base >(
+ mRawPtr, &IPath_v1::registerNameSpacePrefixMap, map ? map->GetActualINameSpacePrefixMap() : NULL );
+ }
+
+ virtual pcINameSpacePrefixMap_base APICALL registerNameSpacePrefixMap( pcINameSpacePrefixMap_base map, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->registerNameSpacePrefixMap( map, error );
+ }
+
+ virtual spIUTF8String APICALL Serialize( const spcINameSpacePrefixMap & map ) const {
+ return CallConstSafeFunctionReturningPointer< IPath_v1, pIUTF8String_base, IUTF8String, pcINameSpacePrefixMap_base >(
+ mRawPtr, &IPath_v1::serialize, map ? map->GetActualINameSpacePrefixMap() : NULL );
+ }
+
+ virtual pIUTF8String_base APICALL serialize( pcINameSpacePrefixMap_base map, pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->serialize( map, error );
+ }
+
+ virtual void APICALL AppendPathSegment( const spcIPathSegment & segment ) {
+ return CallSafeFunctionReturningVoid< IPath_v1, pcIPathSegment_base >(
+ mRawPtr, &IPath_v1::appendPathSegment, segment ? segment->GetActualIPathSegment() : NULL );
+ }
+
+ virtual void APICALL appendPathSegment( pcIPathSegment_base segment, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->appendPathSegment( segment, error );
+ }
+
+ virtual spcIPathSegment APICALL RemovePathSegment( sizet index ) {
+ return CallSafeFunctionReturningPointer< IPath_v1, pcIPathSegment_base, const IPathSegment, sizet >(
+ mRawPtr, &IPath_v1::removePathSegment, index );
+ }
+
+ virtual pcIPathSegment_base APICALL removePathSegment( sizet index, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->removePathSegment( index, error );
+ }
+
+ virtual spcIPathSegment APICALL GetPathSegment( sizet index ) const {
+ return CallConstSafeFunctionReturningPointer< IPath_v1, pcIPathSegment_base, const IPathSegment, sizet >(
+ mRawPtr, &IPath_v1::getPathSegment, index );
+ }
+
+ virtual pcIPathSegment_base APICALL getPathSegment( sizet index, pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getPathSegment( index, error );
+ }
+
+ virtual sizet APICALL Size() const __NOTHROW__ {
+ return mRawPtr->Size( );
+ }
+
+ virtual void APICALL Clear() __NOTHROW__ {
+ return mRawPtr->Clear( );
+ }
+
+ virtual spIPath APICALL Clone( sizet startingIndex, sizet countOfSegments ) const {
+ return CallConstSafeFunctionReturningPointer< IPath_v1, pIPath_base, IPath, sizet, sizet >(
+ mRawPtr, &IPath_v1::clone, startingIndex, countOfSegments );
+ }
+
+ virtual pIPath_base APICALL clone( sizet startingIndex, sizet countOfSegemetns, pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->clone( startingIndex, countOfSegemetns, error );
+ }
+
+ };
+
+ spIPath IPath_v1::MakeShared( pIPath_base ptr ) {
+ if ( !ptr ) return spIPath();
+ pIPath p = IPath::GetInterfaceVersion() > 1 ? ptr->GetInterfacePointer< IPath >() : ptr;
+ return shared_ptr< IPath >( new IPathProxy( p ) );
+ }
+
+ spIPath IPath_v1::CreatePath() {
+ return CallSafeFunctionReturningPointer< ICoreObjectFactory, pIPath_base, IPath >(
+ ICoreObjectFactory::GetCoreObjectFactory(), &ICoreObjectFactory::CreatePath );
+ }
+
+ spIPath IPath_v1::ParsePath( const char * path, sizet pathLength, const spcINameSpacePrefixMap & map ) {
+ return CallSafeFunctionReturningPointer< ICoreObjectFactory, pIPath_base, IPath, const char *, sizet, pcINameSpacePrefixMap_base >(
+ ICoreObjectFactory::GetCoreObjectFactory(), &ICoreObjectFactory::ParsePath, path, pathLength, map ? map->GetActualINameSpacePrefixMap() : NULL );
+ }
+
+}
+
+#endif // BUILDING_XMPCORE_LIB && !SOURCE_COMPILING_XMPCORE_LIB
diff --git a/public/include/XMPCore/source/IPathSegment.cpp b/public/include/XMPCore/source/IPathSegment.cpp
new file mode 100644
index 0000000..4228492
--- /dev/null
+++ b/public/include/XMPCore/source/IPathSegment.cpp
@@ -0,0 +1,146 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+namespace AdobeXMPCore {
+ class IPathSegmentProxy;
+}
+
+#define FRIEND_CLASS_DECLARATION() friend class AdobeXMPCore::IPathSegmentProxy;
+
+#include "XMPCore/Interfaces/IPathSegment.h"
+
+#if !BUILDING_XMPCORE_LIB && !SOURCE_COMPILING_XMPCORE_LIB
+
+#include "XMPCommon/Utilities/TWrapperFunctions.h"
+#include "XMPCommon/Interfaces/IUTF8String.h"
+#include "XMPCommon/Interfaces/IError.h"
+#include "XMPCore/Interfaces/ICoreObjectFactory.h"
+
+#include <assert.h>
+
+namespace AdobeXMPCore {
+
+ class IPathSegmentProxy
+ : public virtual IPathSegment
+ {
+ private:
+ pIPathSegment mRawPtr;
+
+ public:
+ IPathSegmentProxy( pIPathSegment ptr )
+ : mRawPtr( ptr )
+ {
+ mRawPtr->Acquire();
+ }
+
+ ~IPathSegmentProxy() __NOTHROW__ { mRawPtr->Release(); }
+
+ pIPathSegment APICALL GetActualIPathSegment() __NOTHROW__ { return mRawPtr; }
+
+ void APICALL Acquire() const __NOTHROW__ { assert( false ); }
+
+ void APICALL Release() const __NOTHROW__ { assert( false ); }
+
+ AdobeXMPCommon_Int::pISharedObject_I APICALL GetISharedObject_I() __NOTHROW__ {
+ return mRawPtr->GetISharedObject_I();
+ }
+
+ AdobeXMPCore_Int::pIPathSegment_I APICALL GetIPathSegment_I() __NOTHROW__ {
+ return mRawPtr->GetIPathSegment_I();
+ }
+
+ pvoid APICALL GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion ) {
+ return CallSafeFunction< IVersionable, pvoid, pvoid, uint64, uint32 >(
+ mRawPtr, &IVersionable::getInterfacePointer, interfaceID, interfaceVersion );
+ }
+
+ pvoid APICALL getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getInterfacePointer( interfaceID, interfaceVersion, error );
+ }
+
+ virtual spcIUTF8String APICALL GetNameSpace() const {
+ return CallConstSafeFunctionReturningPointer< IPathSegment_v1, pcIUTF8String_base, const IUTF8String >(
+ mRawPtr, &IPathSegment_v1::getNameSpace );
+ }
+
+ virtual pcIUTF8String_base APICALL getNameSpace( pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getNameSpace( error );
+ }
+
+ virtual spcIUTF8String APICALL GetName() const {
+ return CallConstSafeFunctionReturningPointer< IPathSegment_v1, pcIUTF8String_base, const IUTF8String >(
+ mRawPtr, &IPathSegment_v1::getName );
+ }
+
+ virtual pcIUTF8String_base APICALL getName( pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getName( error );
+ }
+
+ virtual ePathSegmentType APICALL GetType() const {
+ return CallConstSafeFunction< IPathSegment_v1, ePathSegmentType, uint32 >(
+ mRawPtr, &IPathSegment_v1::getType );
+ }
+
+ virtual uint32 APICALL getType( pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getType( error );
+ }
+
+ virtual sizet APICALL GetIndex() const __NOTHROW__ {
+ return mRawPtr->GetIndex();
+ }
+
+ virtual spcIUTF8String APICALL GetValue() const {
+ return CallConstSafeFunctionReturningPointer< IPathSegment_v1, pcIUTF8String_base, const IUTF8String >(
+ mRawPtr, &IPathSegment_v1::getValue );
+ }
+
+ virtual pcIUTF8String_base APICALL getValue( pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getValue( error );
+ }
+
+ };
+
+ spIPathSegment IPathSegment_v1::MakeShared( pIPathSegment_base ptr ) {
+ if ( !ptr ) return spIPathSegment();
+ pIPathSegment p = IPathSegment::GetInterfaceVersion() > 1 ?
+ ptr->GetInterfacePointer< IPathSegment >() : ptr;
+ return shared_ptr< IPathSegment >( new IPathSegmentProxy( p ) );
+ }
+
+ spcIPathSegment IPathSegment_v1::CreatePropertyPathSegment( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) {
+ return CallSafeFunctionReturningPointer< ICoreObjectFactory, pcIPathSegment_base, const IPathSegment, const char *, sizet, const char *, sizet >(
+ ICoreObjectFactory::GetCoreObjectFactory(), &ICoreObjectFactory::CreatePropertyPathSegment, nameSpace, nameSpaceLength, name, nameLength );
+ }
+
+ spcIPathSegment IPathSegment_v1::CreateArrayIndexPathSegment( const char * nameSpace, sizet nameSpaceLength, sizet index ) {
+ return CallSafeFunctionReturningPointer< ICoreObjectFactory, pcIPathSegment_base, const IPathSegment, const char *, sizet, sizet >(
+ ICoreObjectFactory::GetCoreObjectFactory(), &ICoreObjectFactory::CreateArrayIndexPathSegment, nameSpace, nameSpaceLength, index );
+ }
+
+ spcIPathSegment IPathSegment_v1::CreateQualifierPathSegment( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) {
+ return CallSafeFunctionReturningPointer< ICoreObjectFactory, pcIPathSegment_base, const IPathSegment, const char *, sizet, const char *, sizet >(
+ ICoreObjectFactory::GetCoreObjectFactory(), &ICoreObjectFactory::CreateQualifierPathSegment, nameSpace, nameSpaceLength, name, nameLength );
+ }
+
+ spcIPathSegment IPathSegment_v1::CreateQualifierSelectorPathSegment( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength,
+ const char * value, sizet valueLength )
+ {
+ return CallSafeFunctionReturningPointer< ICoreObjectFactory, pcIPathSegment_base, const IPathSegment, const char *, sizet, const char *, sizet, const char *, sizet >(
+ ICoreObjectFactory::GetCoreObjectFactory(), &ICoreObjectFactory::CreateQualifierSelectorPathSegment, nameSpace, nameSpaceLength, name, nameLength, value, valueLength );
+ }
+
+}
+
+#endif // BUILDING_XMPCORE_LIB && !SOURCE_COMPILING_XMPCORE_LIB
+
diff --git a/public/include/XMPCore/source/ISimpleNode.cpp b/public/include/XMPCore/source/ISimpleNode.cpp
new file mode 100644
index 0000000..170192f
--- /dev/null
+++ b/public/include/XMPCore/source/ISimpleNode.cpp
@@ -0,0 +1,111 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+namespace AdobeXMPCore {
+ class ISimpleNodeProxy;
+}
+
+#define FRIEND_CLASS_DECLARATION() friend class AdobeXMPCore::ISimpleNodeProxy;
+
+#include "XMPCore/Interfaces/ISimpleNode.h"
+
+#if !BUILDING_XMPCORE_LIB && !SOURCE_COMPILING_XMPCORE_LIB
+
+#include "XMPCommon/Utilities/TWrapperFunctions.h"
+#include "XMPCommon/Interfaces/IUTF8String.h"
+#include "XMPCore/Interfaces/ICoreObjectFactory.h"
+
+#include <assert.h>
+
+namespace AdobeXMPCore {
+
+#if XMP_WinBuild
+ #pragma warning( push )
+ #pragma warning( disable : 4250 )
+#endif
+
+ class ISimpleNodeProxy
+ : public virtual ISimpleNode
+ , public virtual INodeProxy
+ {
+ private:
+ pISimpleNode mRawPtr;
+
+ public:
+ ISimpleNodeProxy( pISimpleNode ptr )
+ : mRawPtr( ptr )
+ , INodeProxy( ptr ) {}
+
+ ~ISimpleNodeProxy() __NOTHROW__ {}
+
+ pISimpleNode APICALL GetActualISimpleNode() __NOTHROW__ { return mRawPtr; }
+
+ AdobeXMPCore_Int::pISimpleNode_I APICALL GetISimpleNode_I() __NOTHROW__ {
+ return mRawPtr->GetISimpleNode_I();
+ }
+
+ virtual spcIUTF8String APICALL GetValue() const {
+ return CallConstSafeFunctionReturningPointer< ISimpleNode_v1, pcIUTF8String_base, const IUTF8String >(
+ mRawPtr, &ISimpleNode_v1::getValue );
+ }
+
+ virtual void APICALL SetValue( const char * value, sizet valueLength ) {
+ return CallSafeFunctionReturningVoid< ISimpleNode_v1, const char *, sizet >(
+ mRawPtr, &ISimpleNode_v1::setValue, value, valueLength );
+ }
+
+ virtual bool APICALL IsURIType() const {
+ return CallConstSafeFunction< ISimpleNode_v1, bool, uint32 >(
+ mRawPtr, &ISimpleNode_v1::isURIType );
+ }
+
+ virtual void APICALL SetURIType( bool isURI ) {
+ return CallSafeFunctionReturningVoid< ISimpleNode_v1, uint32 >(
+ mRawPtr, &ISimpleNode_v1::setURIType, isURI ? 1 : 0 );
+ }
+
+ virtual pcIUTF8String_base APICALL getValue( pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getValue( error );
+ }
+
+ virtual void APICALL setValue( const char * value, sizet valueLength, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->setValue( value, valueLength, error );
+ }
+
+ virtual uint32 APICALL isURIType( pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->isURIType( error );
+ }
+
+ virtual void APICALL setURIType( uint32 isURI, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->setURIType( isURI, error );
+ }
+
+ };
+
+ spISimpleNode ISimpleNode_v1::CreateSimpleNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, const char * value, sizet valueLength ) {
+ return CallSafeFunctionReturningPointer< ICoreObjectFactory, pISimpleNode_base, ISimpleNode, const char *, sizet, const char *, sizet, const char *, sizet >(
+ ICoreObjectFactory::GetCoreObjectFactory(), &ICoreObjectFactory::CreateSimpleNode, nameSpace, nameSpaceLength, name, nameLength, value, valueLength );
+ }
+
+ spISimpleNode ISimpleNode_v1::MakeShared( pISimpleNode_base ptr ) {
+ if ( !ptr ) return spISimpleNode();
+ pISimpleNode p = ISimpleNode::GetInterfaceVersion() > 1 ? ptr->GetInterfacePointer< ISimpleNode >() : ptr;
+ return shared_ptr< ISimpleNode >( new ISimpleNodeProxy( p ) );
+ }
+
+#if XMP_WinBuild
+ #pragma warning( pop )
+#endif
+}
+
+#endif // !BUILDING_XMPCORE_LIB && !SOURCE_COMPILING_XMPCORE_LIB
diff --git a/public/include/XMPCore/source/IStructureNode.cpp b/public/include/XMPCore/source/IStructureNode.cpp
new file mode 100644
index 0000000..32aa76d
--- /dev/null
+++ b/public/include/XMPCore/source/IStructureNode.cpp
@@ -0,0 +1,104 @@
+// =================================================================================================
+// ADOBE SYSTEMS INCORPORATED
+// Copyright 2015 Adobe Systems Incorporated
+// All Rights Reserved
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+namespace AdobeXMPCore {
+ class IStructureNodeProxy;
+}
+
+#define FRIEND_CLASS_DECLARATION() friend class AdobeXMPCore::IStructureNodeProxy;
+
+#include "XMPCore/Interfaces/IStructureNode.h"
+
+#if !BUILDING_XMPCORE_LIB && !SOURCE_COMPILING_XMPCORE_LIB
+
+#include "XMPCommon/Utilities/TWrapperFunctions.h"
+#include "XMPCore/Interfaces/ICoreObjectFactory.h"
+#include <assert.h>
+
+namespace AdobeXMPCore {
+
+
+ IStructureNodeProxy::IStructureNodeProxy( pIStructureNode ptr ) : mRawPtr( ptr )
+ , ICompositeNodeProxy( ptr )
+ , INodeProxy( ptr ) { }
+
+ IStructureNodeProxy::~IStructureNodeProxy() __NOTHROW__ { }
+
+ AdobeXMPCore_Int::pIStructureNode_I APICALL IStructureNodeProxy::GetIStructureNode_I() __NOTHROW__ {
+ return mRawPtr->GetIStructureNode_I();
+ }
+
+ INode_v1::eNodeType APICALL IStructureNodeProxy::GetChildNodeType( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) const {
+ return CallConstSafeFunction< IStructureNode_v1, eNodeType, uint32, const char *, sizet, const char *, sizet >(
+ mRawPtr, &IStructureNode_v1::getChildNodeType, nameSpace, nameSpaceLength, name, nameLength );
+ }
+
+ spINode APICALL IStructureNodeProxy::GetNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) {
+ return CallSafeFunctionReturningPointer< IStructureNode_v1, pINode_base, INode, const char *, sizet, const char *, sizet >(
+ mRawPtr, &IStructureNode_v1::getNode, nameSpace, nameSpaceLength, name, nameLength );
+ }
+
+ void APICALL IStructureNodeProxy::InsertNode( const spINode & node ) {
+ return CallSafeFunctionReturningVoid< IStructureNode_v1, pINode_base >(
+ mRawPtr, &IStructureNode_v1::insertNode, node ? node->GetActualINode() : NULL );
+ }
+
+ spINode APICALL IStructureNodeProxy::ReplaceNode( const spINode & node ) {
+ return CallSafeFunctionReturningPointer< IStructureNode_v1, pINode_base, INode, pINode_base >(
+ mRawPtr, &IStructureNode_v1::replaceNode, node ? node->GetActualINode() : NULL );
+ }
+
+ spINode APICALL IStructureNodeProxy::RemoveNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) {
+ return CallSafeFunctionReturningPointer< IStructureNode_v1, pINode_base, INode, const char *, sizet, const char *, sizet >(
+ mRawPtr, &IStructureNode_v1::removeNode, nameSpace, nameSpaceLength, name, nameLength );
+ }
+
+ uint32 APICALL IStructureNodeProxy::getChildNodeType( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) const __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getChildNodeType( nameSpace, nameSpaceLength, name, nameLength, error );
+ }
+
+ pINode_base APICALL IStructureNodeProxy::getNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->getNode( nameSpace, nameSpaceLength, name, nameLength, error );
+ }
+
+ void APICALL IStructureNodeProxy::insertNode( pINode_base node, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->insertNode( node, error );
+ }
+
+ pINode_base APICALL IStructureNodeProxy::replaceNode( pINode_base node, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->replaceNode( node, error );
+ }
+
+ pINode_base APICALL IStructureNodeProxy::removeNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) __NOTHROW__ {
+ assert( false );
+ return mRawPtr->removeNode( nameSpace, nameSpaceLength, name, nameLength, error );
+ }
+
+ pIStructureNode APICALL IStructureNodeProxy::GetActualIStructureNode() __NOTHROW__ {
+ return mRawPtr;
+ }
+
+ spIStructureNode IStructureNode_v1::MakeShared( pIStructureNode_base ptr ) {
+ if ( !ptr ) return spIStructureNode();
+ pIStructureNode p = IStructureNode::GetInterfaceVersion() > 1 ? ptr->GetInterfacePointer< IStructureNode >() : ptr;
+ return shared_ptr< IStructureNode >( new IStructureNodeProxy( p ) );
+ }
+
+ spIStructureNode IStructureNode_v1::CreateStructureNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength ) {
+ return CallSafeFunctionReturningPointer< ICoreObjectFactory, pIStructureNode_base, IStructureNode, const char *, sizet, const char *, sizet >(
+ ICoreObjectFactory::GetCoreObjectFactory(), &ICoreObjectFactory::CreateStructureNode, nameSpace, nameSpaceLength, name, nameLength );
+ }
+
+}
+
+#endif // BUILDING_XMPCORE_LIB && !SOURCE_COMPILING_XMPCORE_LIB
diff --git a/public/include/XMP_Const.h b/public/include/XMP_Const.h
index dcc2cc8..144baec 100644
--- a/public/include/XMP_Const.h
+++ b/public/include/XMP_Const.h
@@ -11,7 +11,7 @@
#include "XMP_Environment.h"
- #include <stddef.h>
+ #include <stddef.h>
#if XMP_MacBuild | XMP_iOSBuild // ! No stdint.h on Windows and some UNIXes.
#include <stdint.h>
@@ -20,6 +20,9 @@
#include <inttypes.h>
#endif
+#ifndef XMP_MARKER_EXTENSIBILITY_BACKWARD_COMPATIBILITY
+ #define XMP_MARKER_EXTENSIBILITY_BACKWARD_COMPATIBILITY 1
+#endif
#if __cplusplus
extern "C" {
@@ -122,19 +125,19 @@ static const XMP_Int64 Min_XMP_Int64 = ( (XMP_Int64) 0x8000000000000000LL );
static const XMP_Int64 Max_XMP_Int64 = ( (XMP_Int64) 0x7FFFFFFFFFFFFFFFLL );
-/// An "ABI safe" pointer to the internal part of an XMP object. Use to pass an XMP object across
-/// client DLL boundaries. See \c TXMPMeta::GetInternalRef().
+/// @brief An "ABI safe" pointer to the internal part of an XMP object. Use to pass an XMP object across
+/// client DLL boundaries. See \c TXMPMeta::GetInternalRef().
typedef struct __XMPMeta__ * XMPMetaRef;
-/// An "ABI safe" pointer to the internal part of an XMP iteration object. Use to pass an XMP
+/// @brief An "ABI safe" pointer to the internal part of an XMP iteration object. Use to pass an XMP
/// iteration object across client DLL boundaries. See \c TXMPIterator.
typedef struct __XMPIterator__ * XMPIteratorRef;
-/// An "ABI safe" pointer to the internal part of an XMP document operations object. Use to pass an
+/// @brief An "ABI safe" pointer to the internal part of an XMP document operations object. Use to pass an
/// XMP document operations object across client DLL boundaries. See \c TXMPDocOps.
typedef struct __XMPDocOps__ * XMPDocOpsRef;
-/// An "ABI safe" pointer to the internal part of an XMP file-handling object. Use to pass an XMP
+/// @brief An "ABI safe" pointer to the internal part of an XMP file-handling object. Use to pass an XMP
/// file-handling object across client DLL boundaries. See \c TXMPFiles.
typedef struct __XMPFiles__ * XMPFilesRef;
@@ -156,9 +159,10 @@ typedef struct __XMPFiles__ * XMPFilesRef;
/// loop termination.
/// \typedef XMP_OptionBits
-/// \brief The type for a collection of 32 flag bits. Individual flags are defined as enum value bit
-/// masks; see \c #kXMP_PropValueIsURI and following. A number of macros provide common set or set
-/// operations, such as \c XMP_PropIsSimple. For other tests use an expression like <code>options &
+/// \brief The type for a collection of 32 flag bits.
+/// @details Individual flags are defined as enum value bit
+/// masks; see \c #kXMP_PropValueIsURI and following. A number of macros provide common set or set
+/// operations, such as \c XMP_PropIsSimple. For other tests use an expression like <code>options &
/// kXMP_<theOption></code>. When passing multiple option flags use the bitwise-OR operator. '|',
/// not the arithmatic plus, '+'.
@@ -180,8 +184,8 @@ typedef XMP_Uns32 XMP_OptionBits; // Used as 32 individual bits.
#define kXMP_TrueStr "True" // Serialized XMP spellings, not for the type bool.
#define kXMP_FalseStr "False"
-/// Type for yes/no/maybe answers. The values are picked to allow Boolean-like usage. The yes and
-/// values are true (non-zero), the no value is false (zero).
+///@brief Type for yes/no/maybe answers. The values are picked to allow Boolean-like usage. The yes
+///values are true (non-zero), the no value is false (zero).
enum {
/// The part or parts have definitely changed.
kXMPTS_Yes = 1,
@@ -343,7 +347,7 @@ enum {
#define kXMP_NS_BWF "http://ns.adobe.com/bwf/bext/1.0/"
#define kXMP_NS_AEScart "http://ns.adobe.com/aes/cart/"
#define kXMP_NS_RIFFINFO "http://ns.adobe.com/riff/info/"
-
+#define kXMP_NS_iXML "http://ns.adobe.com/ixml/1.0/"
#define kXMP_NS_XMP_Note "http://ns.adobe.com/xmp/note/"
#define kXMP_NS_AdobeStockPhoto "http://ns.adobe.com/StockPhoto/1.0/"
@@ -569,7 +573,7 @@ enum {
// -------------------------------------------------------------------------------------------------
-/// Option bit flags for the \c TXMPMeta property accessor functions.
+/// @brief Option bit flags for the \c TXMPMeta property accessor functions.
enum {
/// The XML string form of the property value is a URI, use rdf:resource attribute. DISCOURAGED
@@ -662,8 +666,8 @@ enum {
#define kXMP_SchemaNode ((XMP_OptionBits)0x80000000UL)
-/// Option bit flags for the \c TXMPMeta property setting functions. These option bits are shared
-/// with the accessor functions:
+/// @brief Option bit flags for the \c TXMPMeta property setting functions.
+/// @details These option bits are shared with the accessor functions:
/// \li \c #kXMP_PropValueIsURI
/// \li \c #kXMP_PropValueIsStruct
/// \li \c #kXMP_PropValueIsArray
@@ -691,7 +695,7 @@ enum {
// -------------------------------------------------------------------------------------------------
-/// Option bit flags for \c TXMPMeta::ParseFromBuffer().
+/// @brief Option bit flags for \c TXMPMeta::ParseFromBuffer().
enum {
/// Require a surrounding \c x:xmpmeta element.
@@ -705,7 +709,7 @@ enum {
};
-/// Option bit flags for \c TXMPMeta::SerializeToBuffer().
+/// @brief Option bit flags for \c TXMPMeta::SerializeToBuffer().
enum {
// *** Option to remove empty struct/array, or leaf with empty value?
@@ -763,7 +767,7 @@ enum {
// -------------------------------------------------------------------------------------------------
-/// Option bit flags for \c TXMPIterator construction.
+/// @brief Option bit flags for \c TXMPIterator construction.
enum {
/// The low 8 bits are an enum of what data structure to iterate.
@@ -792,7 +796,7 @@ enum {
};
-/// Option bit flags for \c TXMPIterator::Skip().
+/// @brief Option bit flags for \c TXMPIterator::Skip().
enum {
/// Skip the subtree below the current node.
@@ -805,8 +809,8 @@ enum {
// -------------------------------------------------------------------------------------------------
-/// Option bit flags for \c TXMPUtils::CatenateArrayItems() and \c TXMPUtils::SeparateArrayItems().
-/// These option bits are shared with the accessor functions:
+/// @brief Option bit flags for \c TXMPUtils::CatenateArrayItems() and \c TXMPUtils::SeparateArrayItems().
+/// @details These option bits are shared with the accessor functions:
/// \li \c #kXMP_PropValueIsArray,
/// \li \c #kXMP_PropArrayIsOrdered,
/// \li \c #kXMP_PropArrayIsAlternate,
@@ -818,7 +822,7 @@ enum {
};
-/// Option bit flags for \c TXMPUtils::ApplyTemplate().
+/// @brief Option bit flags for \c TXMPUtils::ApplyTemplate().
enum {
/// Do all properties, default is just external properties.
@@ -838,7 +842,7 @@ enum {
};
-/// Option bit flags for \c TXMPUtils::RemoveProperties() and \c TXMPUtils::AppendProperties().
+/// @brief Option bit flags for \c TXMPUtils::RemoveProperties() and \c TXMPUtils::AppendProperties().
enum {
/// Do all properties, default is just external properties.
@@ -859,10 +863,10 @@ enum {
// Types and Constants for XMPFiles
// ================================
-/// Seek mode constants for use with XMP_IO and inside XMPFiles library code.
+/// @brief Seek mode constants for use with XMP_IO and inside XMPFiles library code.
enum SeekMode { kXMP_SeekFromStart, kXMP_SeekFromCurrent, kXMP_SeekFromEnd };
-/// File format constants for use with XMPFiles.
+/// @brief File format constants for use with XMPFiles.
enum {
// ! Hex used to avoid gcc warnings. Leave the constants so the text reads big endian. There
@@ -939,6 +943,8 @@ enum {
kXMP_SonyHDVFile = 0x53484456UL,
/// Public file format constant: 'CNXF', a collection not really a single file
kXMP_CanonXFFile = 0x434E5846UL,
+ /// Public file format constant: 'AVCU', a collection not really a single file
+ kXMP_AVCUltraFile = 0x41564355UL,
/// Public file format constant: 'HTML'
kXMP_HTMLFile = 0x48544D4CUL,
@@ -946,6 +952,8 @@ enum {
kXMP_XMLFile = 0x584D4C20UL,
/// Public file format constant: 'text'
kXMP_TextFile = 0x74657874UL,
+ /// Public file format constant: 'SVG '
+ kXMP_SVGFile = 0x53564720UL,
// -------------------------------
// Adobe application file formats.
@@ -984,14 +992,14 @@ typedef XMP_Uns32 XMP_FileFormat;
// -------------------------------------------------------------------------------------------------
-/// Byte-order masks, do not use directly
+/// @brief Byte-order masks, do not use directly
enum {
kXMP_CharLittleEndianMask = 1,
kXMP_Char16BitMask = 2,
kXMP_Char32BitMask = 4
};
-/// Constants to allow easy testing for 16/32 bit and big/little endian.
+/// @brief Constants to allow easy testing for 16/32 bit and big/little endian.
enum {
/// 8-bit
kXMP_Char8Bit = 0,
@@ -1056,7 +1064,7 @@ enum {
/// \brief Constant for an unknown packet length within a file.
#define kXMPFiles_UnknownLength ((XMP_Int32)-1)
-/// XMP packet description
+/// @brief XMP packet description
struct XMP_PacketInfo {
/// Packet offset in the file in bytes, -1 if unknown.
@@ -1082,7 +1090,7 @@ struct XMP_PacketInfo {
};
-/// Version of the XMP_PacketInfo type
+/// @brief Version of the XMP_PacketInfo type
enum {
/// Version of the XMP_PacketInfo type
kXMP_PacketInfoVersion = 3
@@ -1090,7 +1098,7 @@ enum {
// -------------------------------------------------------------------------------------------------
-/// Option bit flags for \c TXMPFiles::Initialize().
+/// @brief Option bit flags for \c TXMPFiles::Initialize().
enum {
/// Ignore non-XMP text that uses an undefined "local" encoding.
kXMPFiles_IgnoreLocalText = 0x0002,
@@ -1098,7 +1106,7 @@ enum {
kXMPFiles_ServerMode = kXMPFiles_IgnoreLocalText
};
-/// Option bit flags for \c TXMPFiles::GetFormatInfo().
+/// @brief Option bit flags for \c TXMPFiles::GetFormatInfo().
enum {
/// Can inject first-time XMP into an existing file.
@@ -1141,11 +1149,11 @@ enum {
kXMPFiles_CanNotifyProgress = 0x00002000,
/// The plugin handler is not capable for delay loading
- kXMPFiles_NeedsPreloading = 0x00004000
+ kXMPFiles_NeedsPreloading = 0x00004000,
};
-/// Option bit flags for \c TXMPFiles::OpenFile().
+/// @brief Option bit flags for \c TXMPFiles::OpenFile().
enum {
/// Open for read-only access.
@@ -1180,12 +1188,13 @@ enum {
};
-/// Option bit flags for \c TXMPFiles::CloseFile().
+/// @brief Option bit flags for \c TXMPFiles::CloseFile().
enum {
/// Write into a temporary file and swap for crash safety.
kXMPFiles_UpdateSafely = 0x0001
};
+
// =================================================================================================
// Error notification and Exceptions
// =================================
@@ -1193,7 +1202,7 @@ enum {
/// \name Error notification and Exceptions
/// @{
///
-/// From the beginning through version 5.5, XMP Tookit errors result in throwing an \c XMP_Error
+/// @details From the beginning through version 5.5, XMP Tookit errors result in throwing an \c XMP_Error
/// exception. For the most part exceptions were thrown early and thus API calls aborted as soon as
/// an error was detected. Starting in version 5.5, support has been added for notifications of
/// errors arising in calls to \c TXMPMeta and \c TXMPFiles functions.
@@ -1216,7 +1225,7 @@ enum {
typedef XMP_Uns8 XMP_ErrorSeverity;
-/// Severity codes for error notifications
+/// @brief Severity codes for error notifications
enum {
/// Partial recovery and continuation is possible.
kXMPErrSev_Recoverable = 0,
@@ -1229,7 +1238,7 @@ enum {
};
// -------------------------------------------------------------------------------------------------
-/// The signature of a client-defined callback for TXMPMeta error notifications.
+/// @brief The signature of a client-defined callback for TXMPMeta error notifications.
///
/// @param context A pointer used to carry client-private context.
///
@@ -1256,7 +1265,7 @@ enum {
typedef bool (* XMPMeta_ErrorCallbackProc) ( void* context, XMP_ErrorSeverity severity, XMP_Int32 cause, XMP_StringPtr message );
// -------------------------------------------------------------------------------------------------
-/// The signature of a client-defined callback for TXMPFiles error notifications.
+/// @brief The signature of a client-defined callback for TXMPFiles error notifications.
///
/// @param context A pointer used to carry client-private context.
///
@@ -1335,7 +1344,7 @@ private:
XMP_Bool notified;
};
-/// XMP_Error exception code constants
+/// @brief XMP_Error exception code constants
enum {
// --------------------
@@ -1457,7 +1466,7 @@ enum {
/// \name Special purpose callback functions
/// @{
-/// A signed 32-bit integer used as a status result for the output callback routine,
+/// @brief A signed 32-bit integer used as a status result for the output callback routine,
/// \c XMP_TextOutputProc. Zero means no error, all other values except -1 are private to the callback.
/// The callback is wrapped to prevent exceptions being thrown across DLL boundaries. Any exceptions
/// thrown out of the callback cause a return status of -1.
@@ -1465,8 +1474,9 @@ enum {
typedef XMP_Int32 XMP_Status;
// -------------------------------------------------------------------------------------------------
-/// The signature of a client-defined callback for text output from XMP Toolkit debugging
-/// operations. The callback is invoked one or more times for each line of output. The end of a line
+/// @brief The signature of a client-defined callback for text output from XMP Toolkit debugging
+/// operations.
+/// @details The callback is invoked one or more times for each line of output. The end of a line
/// is signaled by a '\\n' character at the end of the buffer. Formatting newlines are never present
/// in the middle of a buffer, but values of properties might contain any UTF-8 characters.
///
@@ -1485,7 +1495,7 @@ typedef XMP_Status (* XMP_TextOutputProc) ( void * refCon,
XMP_StringLen bufferSize );
// -------------------------------------------------------------------------------------------------
-/// The signature of a client-defined callback to check for a user request to abort a time-consuming
+/// @brief The signature of a client-defined callback to check for a user request to abort a time-consuming
/// operation within XMPFiles.
///
/// @param arg A pointer to caller-defined data passed from the registration call.
@@ -1497,7 +1507,7 @@ typedef XMP_Status (* XMP_TextOutputProc) ( void * refCon,
typedef bool (* XMP_AbortProc) ( void * arg );
// -------------------------------------------------------------------------------------------------
-/// The signature of a client-defined callback for progress report notifications.
+/// @brief The signature of a client-defined callback for progress report notifications.
///
/// @param context A pointer used to carry client-private context.
///
@@ -1556,5 +1566,4 @@ typedef struct XMP_VersionInfo {
#endif
#include <vector>
-
#endif // __XMP_Const_h__
diff --git a/public/include/XMP_Environment.h b/public/include/XMP_Environment.h
index d8bab98..4a88b0b 100644
--- a/public/include/XMP_Environment.h
+++ b/public/include/XMP_Environment.h
@@ -137,6 +137,7 @@
#define XMP_HELPER_DLL_IMPORT __attribute__((visibility("default")))
#define XMP_HELPER_DLL_EXPORT __attribute__((visibility("default")))
#define XMP_HELPER_DLL_PRIVATE __attribute__((visibility("hidden")))
+ #define APICALL
#endif
// =================================================================================================
@@ -146,6 +147,7 @@
#define XMP_HELPER_DLL_IMPORT
#define XMP_HELPER_DLL_EXPORT
#define XMP_HELPER_DLL_PRIVATE
+ #define APICALL __stdcall
#endif
// =================================================================================================
@@ -153,8 +155,9 @@
// ======================
#if (XMP_UNIXBuild)
#define XMP_HELPER_DLL_IMPORT
- #define XMP_HELPER_DLL_EXPORT
- #define XMP_HELPER_DLL_PRIVATE
+ #define XMP_HELPER_DLL_EXPORT __attribute__ ((visibility ("default")))
+ #define XMP_HELPER_DLL_PRIVATE __attribute__ ((visibility ("hidden")))
+ #define APICALL
#endif
// =================================================================================================
@@ -170,6 +173,7 @@
#define XMP_HELPER_DLL_IMPORT __attribute__((visibility("default")))
#define XMP_HELPER_DLL_EXPORT __attribute__((visibility("default")))
#define XMP_HELPER_DLL_PRIVATE __attribute__((visibility("hidden")))
+ #define APICALL
#endif
// =================================================================================================
diff --git a/public/include/XMP_Version.h b/public/include/XMP_Version.h
index 53707b1..23d16b7 100644
--- a/public/include/XMP_Version.h
+++ b/public/include/XMP_Version.h
@@ -34,18 +34,18 @@ versions.
/* ============================================================================================= */
#define XMPCORE_API_VERSION_MAJOR 5
-#define XMPCORE_API_VERSION_MINOR 5
+#define XMPCORE_API_VERSION_MINOR 6
#define XMPCORE_API_VERSION_MICRO 0
-#define XMPCORE_API_VERSION 5.5.0
-#define XMPCORE_API_VERSION_STRING "5.5.0"
+#define XMPCORE_API_VERSION 5.6.0
+#define XMPCORE_API_VERSION_STRING "5.6.0"
#define XMPFILES_API_VERSION_MAJOR 5
-#define XMPFILES_API_VERSION_MINOR 6
+#define XMPFILES_API_VERSION_MINOR 7
#define XMPFILES_API_VERSION_MICRO 0
-#define XMPFILES_API_VERSION 5.6.0
-#define XMPFILES_API_VERSION_STRING "5.6.0"
+#define XMPFILES_API_VERSION 5.7.0
+#define XMPFILES_API_VERSION_STRING "5.7.0"
/* ============================================================================================= */
diff --git a/public/include/client-glue/TXMPMeta.incl_cpp b/public/include/client-glue/TXMPMeta.incl_cpp
index aa5f4b8..7f67a3a 100644
--- a/public/include/client-glue/TXMPMeta.incl_cpp
+++ b/public/include/client-glue/TXMPMeta.incl_cpp
@@ -17,15 +17,14 @@
#include "client-glue/WXMPMeta.hpp"
-#if INCLUDE_XMP_NEW_DOM_MODEL
- #include "XMPCore/XMPCore_Defines.h"
- #if ENABLE_NEW_DOM_MODEL
- #include "XMPCore/XMPCore_Defines.h"
- #include "XMPCore/Interfaces/IXMPDOMFactory.h"
- #endif
+#include "XMPCore/XMPCoreDefines.h"
+#if ENABLE_CPP_DOM_MODEL
+ #include "XMPCore/Interfaces/IMetadata.h"
+ #include "XMPCore/Interfaces/ICoreObjectFactory.h"
#endif
+
// =================================================================================================
// Implementation Guidelines
// =========================
@@ -126,8 +125,8 @@ Initialize()
WrapCheckBool ( ok, zXMPMeta_Initialize_1() );
- #if ENABLE_NEW_DOM_MODEL
- NS_XMPCOMMON::IXMPDOMFactory_latest::CreateInstance();
+ #if ENABLE_CPP_DOM_MODEL
+ AdobeXMPCore::ICoreObjectFactory::SetupCoreObjectFactory();
#endif
return ok;
@@ -138,6 +137,11 @@ Initialize()
XMP_MethodIntro(TXMPMeta,void)::
Terminate()
{
+
+ #if ENABLE_CPP_DOM_MODEL
+ AdobeXMPCore::ICoreObjectFactory::DestroyCoreObjectFactory();
+ #endif
+
WrapNoCheckVoid ( zXMPMeta_Terminate_1() );
#if XMP_TraceClientCallsToFile
@@ -180,7 +184,6 @@ TXMPMeta ( const TXMPMeta<tStringObj> & original ) : xmpRef(original.xmpRef)
}
// -------------------------------------------------------------------------------------------------
-
XMP_MethodIntro(TXMPMeta,void)::
operator= ( const TXMPMeta<tStringObj> & rhs )
{
diff --git a/public/include/client-glue/WXMPFiles.hpp b/public/include/client-glue/WXMPFiles.hpp
index 648a842..2f8bb9a 100644
--- a/public/include/client-glue/WXMPFiles.hpp
+++ b/public/include/client-glue/WXMPFiles.hpp
@@ -21,7 +21,7 @@ extern "C" {
#endif
// =================================================================================================
-/// \file WXMPFiles.h
+/// \file WXMPFiles.hpp
/// \brief High level support to access metadata in files of interest to Adobe applications.
///
/// This header ...
diff --git a/public/include/client-glue/WXMPMeta.hpp b/public/include/client-glue/WXMPMeta.hpp
index 361ad9d..af5a11e 100644
--- a/public/include/client-glue/WXMPMeta.hpp
+++ b/public/include/client-glue/WXMPMeta.hpp
@@ -51,6 +51,8 @@ static XMP_Bool WrapErrorNotify ( XMPMeta_ErrorCallbackProc proc, void * context
#define zXMPMeta_DumpNamespaces_1(outProc,refCon) \
WXMPMeta_DumpNamespaces_1 ( outProc, refCon, &wResult )
+#define zXMPMeta_Use_CPP_DOM_APIs_1(useNewCoreAPIs) \
+ WXMPMeta_Use_CPP_DOM_APIs_1( useNewCoreAPIs, &wResult )
#define zXMPMeta_RegisterNamespace_1(namespaceURI,suggestedPrefix,actualPrefix,SetClientString) \
WXMPMeta_RegisterNamespace_1 ( namespaceURI, suggestedPrefix, actualPrefix, SetClientString, &wResult )
@@ -63,6 +65,9 @@ static XMP_Bool WrapErrorNotify ( XMPMeta_ErrorCallbackProc proc, void * context
#define zXMPMeta_DeleteNamespace_1(namespaceURI) \
WXMPMeta_DeleteNamespace_1 ( namespaceURI, &wResult )
+#define zXMPMeta_GetIXMPMetadata_1() \
+ WXMPMeta_GetIXMPMetadata_1( this->xmpRef, &wResult )
+
#define zXMPMeta_GetProperty_1(schemaNS,propName,propValue,options,SetClientString) \
WXMPMeta_GetProperty_1 ( this->xmpRef, schemaNS, propName, propValue, options, SetClientString, &wResult )
@@ -231,6 +236,10 @@ XMP_PUBLIC WXMPMeta_DumpNamespaces_1 ( XMP_TextOutputProc outProc,
void * refCon,
WXMP_Result * wResult );
+extern void
+XMP_PUBLIC WXMPMeta_Use_CPP_DOM_APIs_1( XMP_Bool useNewCoreAPIs,
+ WXMP_Result * wResult );
+
// -------------------------------------------------------------------------------------------------
extern void
@@ -259,6 +268,11 @@ XMP_PUBLIC WXMPMeta_DeleteNamespace_1 ( XMP_StringPtr namespaceURI,
// -------------------------------------------------------------------------------------------------
extern void
+XMP_PUBLIC WXMPMeta_GetIXMPMetadata_1(XMPMetaRef xmpObjRef,
+WXMP_Result * wResult );
+
+
+extern void
XMP_PUBLIC WXMPMeta_GetProperty_1 ( XMPMetaRef xmpRef,
XMP_StringPtr schemaNS,
XMP_StringPtr propName,
diff --git a/public/include/client-glue/WXMPUtils.hpp b/public/include/client-glue/WXMPUtils.hpp
index 3c96b83..b785357 100644
--- a/public/include/client-glue/WXMPUtils.hpp
+++ b/public/include/client-glue/WXMPUtils.hpp
@@ -10,7 +10,6 @@
// =================================================================================================
#include "client-glue/WXMP_Common.hpp"
-
#if __cplusplus
extern "C" {
#endif
diff --git a/public/include/client-glue/WXMP_Common.hpp b/public/include/client-glue/WXMP_Common.hpp
index 97fb9fc..2fea149 100644
--- a/public/include/client-glue/WXMP_Common.hpp
+++ b/public/include/client-glue/WXMP_Common.hpp
@@ -83,6 +83,10 @@ extern "C" {
InvokeCheck(WCallProto); \
XMPDocOpsRef result = XMPDocOpsRef(wResult.ptrResult)
+#define WrapCheckNewMetadata(result,WCallProto) \
+ InvokeCheck(WCallProto); \
+ void * result = wResult.ptrResult
+
#define WrapCheckBool(result,WCallProto) \
InvokeCheck(WCallProto); \
bool result = bool(wResult.int32Result)
diff --git a/samples/build/GenerateSamples_mac.sh b/samples/build/GenerateSamples_mac.sh
index 0274a5a..473274f 100755
--- a/samples/build/GenerateSamples_mac.sh
+++ b/samples/build/GenerateSamples_mac.sh
@@ -21,90 +21,87 @@ fi
clean()
{
echo "Cleaning..."
-if [ -e cmake/CustomSchema/build ]
-then
-rm -rf cmake/CustomSchema/build
-fi
+
if [ -e cmake/CustomSchema/build_x64 ]
then
rm -rf cmake/CustomSchema/build_x64
fi
-if [ -e cmake/DumpFile/build ]
+
+if [ -e cmake/CustomSchemaNewDOM/build_x64 ]
then
-rm -rf cmake/DumpFile/build
+rm -rf cmake/CustomSchemaNewDOM/build_x64
fi
+
if [ -e cmake/DumpFile/build_x64 ]
then
rm -rf cmake/DumpFile/build_x64
fi
-if [ -e cmake/DumpMainXMP/build ]
-then
-rm -rf cmake/DumpMainXMP/build
-fi
+
if [ -e cmake/DumpMainXMP/build_x64 ]
then
rm -rf cmake/DumpMainXMP/build_x64
fi
-if [ -e cmake/DumpScannedXMP/build ]
-then
-rm -rf cmake/DumpScannedXMP/build
-fi
+
if [ -e cmake/DumpScannedXMP/build_x64 ]
then
rm -rf cmake/DumpScannedXMP/build_x64
fi
-if [ -e cmake/ModifyingXMP/build ]
-then
-rm -rf cmake/ModifyingXMP/build
-fi
+
if [ -e cmake/ModifyingXMP/build_x64 ]
then
rm -rf cmake/ModifyingXMP/build_x64
fi
-if [ -e cmake/ReadingXMP/build ]
+
+if [ -e cmake/ModifyingXMPNewDOM/build_x64 ]
then
-rm -rf cmake/ReadingXMP/build
+rm -rf cmake/ModifyingXMPNewDOM/build_x64
fi
+
if [ -e cmake/ReadingXMP/build_x64 ]
then
rm -rf cmake/ReadingXMP/build_x64
fi
-if [ -e cmake/XMPCommand/build ]
+
+if [ -e cmake/ReadingXMPNewDOM/build_x64 ]
then
-rm -rf cmake/XMPCommand/build
+rm -rf cmake/ReadingXMPNewDOM/build_x64
fi
+
if [ -e cmake/XMPCommand/build_x64 ]
then
-rm -rf cmake/XMPCommand/build
-fi
-if [ cmake/XMPCoreCoverage/build_x64 ]
-then
rm -rf cmake/XMPCommand/build_x64
fi
-if [ -e cmake/XMPCoreCoverage/build ]
+
+if [ cmake/XMPCoreCoverage/build_x64 ]
then
-rm -rf cmake/XMPCoreCoverage/build
+rm -rf cmake/XMPCoreCoverage/build_x64
fi
+
if [ -e cmake/XMPFilesCoverage/build_x64 ]
then
-rm -rf cmake/XMPCoreCoverage/build_x64
+rm -rf cmake/XMPFilesCoverage/build_x64
fi
-if [ -e cmake/XMPFilesCoverage/build ]
+
+if [ -e cmake/XMPIterations/build_x64 ]
then
-rm -rf cmake/XMPFilesCoverage/build
+rm -rf cmake/XMPIterations/build_x64
fi
-if [ -e cmake/XMPIterations/build_x64 ]
+
+if [ -e cmake/UnicodeCorrectness/build_x64 ]
then
-rm -rf cmake/XMPFilesCoverage/build_x64
+rm -rf cmake/UnicodeCorrectness/build_x64
fi
-if [ -e cmake/XMPIterations/build ]
+
+if [ -e cmake/UnicodeParseSerialize/build_x64 ]
then
-rm -rf cmake/XMPIterations/build
+rm -rf cmake/UnicodeParseSerialize/build_x64
fi
-if [ -e cmake/XMPIterations/build_x64 ]
+
+if [ -e cmake/UnicodePerformance/build_x64 ]
then
-rm -rf cmake/XMPIterations/build_x64
+rm -rf cmake/UnicodePerformance/build_x64
fi
+
if [ -e xcode ]
then
rm -rf xcode
@@ -116,13 +113,7 @@ fi
echo "Done"
exit 0;
}
-Xcode32()
-{
-#create 32bit Xcode Project
-DIR="xcode/intel"
-TOOLCHAIN="$scriptdir/../../build/shared/ToolchainLLVM.cmake"
-bit64="0"
-}
+
Xcode64()
{
#create 64bit Xcode Project
@@ -150,7 +141,7 @@ fi
#generate the make file
echo "PWD is $PWD, CMAKE LOCATION IS $CMAKE, dir is $DIR"
-if ! ("$CMAKE" -D CMAKE_CL_64=$bit64 -G "Xcode" -DCMAKE_TOOLCHAIN_FILE="$TOOLCHAIN" ../../cmake)
+if ! ("$CMAKE" -DCMAKE_CL_64=$bit64 -DSTATIC=$static -G "Xcode" -DCMAKE_TOOLCHAIN_FILE="$TOOLCHAIN" ../../cmake)
then
echo "ERROR: CMAKE tool failed"
exit 1
@@ -161,19 +152,14 @@ fi
echo "Enter your choice:"
echo "1. Clean"
-echo "2. 32 Bit Xcode Project"
-echo "3. 64 Bit Xcode Project"
-echo "4. Build All"
-
+echo "2. 64 Bit Xcode Project (Static)"
+echo "3. 64 Bit Xcode Project (Dynamic)"
read choice
case $choice in
1) clean; break;;
- 2) Xcode32; createProject;;
- 3) Xcode64; createProject;;
- 4) Xcode32; createProject; cd -; Xcode64; createProject;;
+ 2) static="1"; Xcode64; createProject;;
+ 3) static="0"; Xcode64; createProject;;
*) echo "ERROR: Invalid Choice, Exiting"; exit 1;;
esac
-
-
diff --git a/samples/build/GenerateSamples_win.bat b/samples/build/GenerateSamples_win.bat
index 3eaae46..a841fb0 100755
--- a/samples/build/GenerateSamples_win.bat
+++ b/samples/build/GenerateSamples_win.bat
@@ -16,41 +16,59 @@ if NOT exist %CMAKE% ( ECHO Cmake tool not present at %CMAKE%, cannot proceed
pause
exit /B 0)
-
+:Start
ECHO Enter your choice:
ECHO 1. Clean
-ECHO 2. VC2011, 32 Bit Project
-ECHO 3. VC2011, 64 Bit Project
-ECHO 4. Build All
-
+ECHO 2. VC2015, 32 Bit Project (Static)
+ECHO 3. VC2015, 32 Bit Project (Dynamic)
+ECHO 4. VC2015, 64 Bit Project (Static)
+ECHO 5. VC2015, 64 Bit Project (Dynamic)
+ECHO 6. Build All (Static)
+ECHO 7. Build All (Dynamic)
+ECHO 8. Close
ECHO
set /P choice=Enter your choice:
IF "%choice%"=="1" GOTO CleanCMake
-IF "%choice%"=="2" GOTO 32VC2011
-IF "%choice%"=="3" GOTO 64VC2011
-IF "%choice%"=="4" GOTO 32VC2011
-
+IF "%choice%"=="2" GOTO 32VC2015
+IF "%choice%"=="3" GOTO 32VC2015
+IF "%choice%"=="4" GOTO 64VC2015
+IF "%choice%"=="5" GOTO 64VC2015
+IF "%choice%"=="6" GOTO 32VC2015
+IF "%choice%"=="7" GOTO 32VC2015
+IF "%choice%"=="8" GOTO Close
ECHO Invalid Choice, Exiting
+
+:Close
pause
exit /B 0
:CleanCmake
echo "Cleaning..."
+if exist cmake\AssetRelationship\build rmdir /S /Q cmake\AssetRelationship\build
+if exist cmake\AssetRelationship\build_x64 rmdir /S /Q cmake\AssetRelationship\build_x64
+if exist cmake\MarkerPOC\build rmdir /S /Q cmake\MarkerPOC\build
+if exist cmake\MarkerPOC\build_x64 rmdir /S /Q cmake\MarkerPOC\build_x64
if exist cmake\CustomSchema\build rmdir /S /Q cmake\CustomSchema\build
if exist cmake\CustomSchema\build_x64 rmdir /S /Q cmake\CustomSchema\build_x64
+if exist cmake\CustomSchemaNewDOM\build rmdir /S /Q cmake\CustomSchemaNewDOM\build
+if exist cmake\CustomSchemaNewDOM\build_x64 rmdir /S /Q cmake\CustomSchemaNewDOM\build_x64
if exist cmake\DumpFile\build rmdir /S /Q cmake\DumpFile\build
if exist cmake\DumpFile\build_x64 rmdir /S /Q cmake\DumpFile\build_x64
if exist cmake\DumpMainXMP\build rmdir /S /Q cmake\DumpMainXMP\build
if exist cmake\DumpMainXMP\build_x64 rmdir /S /Q cmake\DumpMainXMP\build_x64
if exist cmake\DumpScannedXMP\build rmdir /S /Q cmake\DumpScannedXMP\build
if exist cmake\DumpScannedXMP\build_x64 rmdir /S /Q cmake\DumpScannedXMP\build_x64
+if exist cmake\ModifyingXMP\build_x64 rmdir /S /Q cmake\ModifyingXMP\build_x64
if exist cmake\ModifyingXMP\build rmdir /S /Q cmake\ModifyingXMP\build
-if exist cmake\ModifyingXMP\build rmdir /S /Q cmake\ModifyingXMP\build
+if exist cmake\ModifyingXMPNewDOM\build_x64 rmdir /S /Q cmake\ModifyingXMPNewDOM\build_x64
+if exist cmake\ModifyingXMPNewDOM\build rmdir /S /Q cmake\ModifyingXMPNewDOM\build
if exist cmake\ReadingXMP\build_x64 rmdir /S /Q cmake\ReadingXMP\build_x64
if exist cmake\ReadingXMP\build rmdir /S /Q cmake\ReadingXMP\build
+if exist cmake\ReadingXMPNewDOM\build_x64 rmdir /S /Q cmake\ReadingXMPNewDOM\build_x64
+if exist cmake\ReadingXMPNewDOM\build rmdir /S /Q cmake\ReadingXMPNewDOM\build
if exist cmake\XMPCommand\build_x64 rmdir /S /Q cmake\XMPCommand\build_x64
if exist cmake\XMPCommand\build rmdir /S /Q cmake\XMPCommand\build
if exist cmake\XMPCoreCoverage\build_x64 rmdir /S /Q cmake\XMPCoreCoverage\build_x64
@@ -59,43 +77,58 @@ if exist cmake\XMPFilesCoverage\build_x64 rmdir /S /Q cmake\XMPFilesCoverage\bui
if exist cmake\XMPFilesCoverage\build rmdir /S /Q cmake\XMPFilesCoverage\build
if exist cmake\XMPIterations\build_x64 rmdir /S /Q cmake\XMPIterations\build_x64
if exist cmake\XMPIterations\build rmdir /S /Q cmake\XMPIterations\build
+if exist cmake\UnicodeCorrectness\build_x64 rmdir /S /Q cmake\UnicodeCorrectness\build_x64
+if exist cmake\UnicodeCorrectness\build rmdir /S /Q cmake\UnicodeCorrectness\build
+if exist cmake\UnicodeParseSerialize\build_x64 rmdir /S /Q cmake\UnicodeParseSerialize\build_x64
+if exist cmake\UnicodeParseSerialize\build rmdir /S /Q cmake\UnicodeParseSerialize\build
+if exist cmake\UnicodePerformance\build_x64 rmdir /S /Q cmake\UnicodePerformance\build_x64
+if exist cmake\UnicodePerformance\build rmdir /S /Q cmake\UnicodePerformance\build
+if exist cmake\ModifyingXMPHistory\build_x64 rmdir /S /Q cmake\ModifyingXMPHistory\build_x64
+if exist cmake\ModifyingXMPHistory\build rmdir /S /Q cmake\ModifyingXMPHistory\build
+
-if exist vc11 rmdir /S /Q vc11
+if exist vc14 rmdir /S /Q vc14
if exist ..\target\windows rmdir /S /Q ..\target\windows
if exist ..\target\windows_x64 rmdir /S /Q ..\target\windows_x64
echo "Done"
-pause
-exit /B 0
-
+echo.
+echo.
+GOTO Start
-:32VC2011
-set GENERATOR=Visual Studio 11
-set DIR=vc11\windows
+:32VC2015
+set GENERATOR=Visual Studio 14
+set DIR=vc14\windows
set bit64=0
+IF "%choice%"=="2" set static=1
+IF "%choice%"=="3" set static=0
+IF "%choice%"=="6" set static=1
+IF "%choice%"=="7" set static=0
GOTO GenerateNow
-:64VC2011
-set GENERATOR=Visual Studio 11 Win64
-set DIR=vc11\windows_x64
+:64VC2015
+set GENERATOR=Visual Studio 14 Win64
+set DIR=vc14\windows_x64
set bit64=1
+IF "%choice%"=="4" set static=1
+IF "%choice%"=="5" set static=0
GOTO GenerateNow
-
:GenerateNow
IF NOT exist %DIR% mkdir %DIR%
cd %DIR%
if errorlevel 1 ( ECHO Cannot create folder %DIR% for generating project
goto error)
-ECHO "%CMAKE%" ..\..\cmake\ -G"%GENERATOR%" -DCMAKE_CL_64=%bit64%
-"%CMAKE%" ..\..\cmake\ -G"%GENERATOR%" -DCMAKE_CL_64=%bit64%
+ECHO "%CMAKE%" ..\..\cmake\ -G"%GENERATOR%" -DCMAKE_CL_64=%bit64% -DSTATIC=%static%
+"%CMAKE%" ..\..\cmake\ -G"%GENERATOR%" -DCMAKE_CL_64=%bit64% -DSTATIC=%static%
if errorlevel 1 ( cd ..\..\
goto error)
-IF "%choice%"=="4" ( set choice="0"
+IF "%choice%"=="6" ( set choice="0"
+static=1
cd ..\..\
-goto 64VC2011
+goto 64VC2015
)
goto ok
@@ -103,11 +136,12 @@ goto ok
:error
echo CMake Build Failed.
pause
-exit /B 1
+exit /B 0
:ok
cd ..\..\
echo CMake Build Success.
-pause
-exit /B 0
+echo.
+echo.
+GOTO Start \ No newline at end of file
diff --git a/samples/build/Makefile b/samples/build/Makefile
index 4c0a91f..1e93754 100755
--- a/samples/build/Makefile
+++ b/samples/build/Makefile
@@ -19,47 +19,93 @@ default_target: all
# Export for cmake binaries
# target to generate make files using cmake
-Debug32: DIR=./gcc/i80386linux/Debug/
-Debug32:
+StaticDebug32: DIR=./gcc/i80386linux/Debug/
+StaticDebug32:
ifeq ($(arch),32)
mkdir -p $(DIR) || echo "Unable to create Directory $(DIR)"; \
cd $(DIR) || echo "unable to Change Directory $(DIR)" ; \
${MAKE} -C "$(CURRDIR)/../../build/" StaticDebug32 ; \
- $(CMAKE) -D CMAKE_CL_64=0 -DCMAKE_BUILD_TYPE=Debug -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=$(TOOLCHAIN) ../../../cmake
+ $(CMAKE) -D CMAKE_CL_64=0 -DCMAKE_BUILD_TYPE=Debug -DSTATIC="1" -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=$(TOOLCHAIN) ../../../cmake
${MAKE} -C $(DIR)
endif
-Release32: DIR=./gcc/i80386linux/Release/
-Release32:
+DynamicDebug32: DIR=./gcc/i80386linux/Debug/
+DynamicDebug32:
+ifeq ($(arch),32)
+ mkdir -p $(DIR) || echo "Unable to create Directory $(DIR)"; \
+ cd $(DIR) || echo "unable to Change Directory $(DIR)" ; \
+ ${MAKE} -C "$(CURRDIR)/../../build/" DynamicDebug32 ; \
+ $(CMAKE) -D CMAKE_CL_64=0 -DCMAKE_BUILD_TYPE=Debug -DSTATIC="0" -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=$(TOOLCHAIN) ../../../cmake
+ ${MAKE} -C $(DIR)
+endif
+
+StaticRelease32: DIR=./gcc/i80386linux/Release/
+StaticRelease32:
ifeq ($(arch),32)
mkdir -p $(DIR) || echo "Unable to create Directory $(DIR)"; \
cd $(DIR) || echo "unable to Change Directory $(DIR)" ; \
${MAKE} -C "$(CURRDIR)/../../build/" StaticRelease32 ; \
- $(CMAKE) -D CMAKE_CL_64=0 -DCMAKE_BUILD_TYPE=Release -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=$(TOOLCHAIN) ../../../cmake
+ $(CMAKE) -D CMAKE_CL_64=0 -DCMAKE_BUILD_TYPE=Release -DSTATIC="1" -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=$(TOOLCHAIN) ../../../cmake
+ ${MAKE} -C $(DIR)
+endif
+
+DynamicRelease32: DIR=./gcc/i80386linux/Release/
+DynamicRelease32:
+ifeq ($(arch),32)
+ mkdir -p $(DIR) || echo "Unable to create Directory $(DIR)"; \
+ cd $(DIR) || echo "unable to Change Directory $(DIR)" ; \
+ ${MAKE} -C "$(CURRDIR)/../../build/" DynamicRelease32 ; \
+ $(CMAKE) -D CMAKE_CL_64=0 -DCMAKE_BUILD_TYPE=Release -DSTATIC="0" -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=$(TOOLCHAIN) ../../../cmake
${MAKE} -C $(DIR)
endif
-Debug64: DIR=./gcc/i80386linux_x64/Debug/
-Debug64:
+StaticDebug64: DIR=./gcc/i80386linux_x64/Debug/
+StaticDebug64:
ifeq ($(arch),64)
mkdir -p $(DIR) || echo "Unable to create Directory $(DIR)"; \
cd $(DIR) || echo "unable to Change Directory $(DIR)" ; \
${MAKE} -C "$(CURRDIR)/../../build/" StaticDebug64 ; \
- $(CMAKE) -D CMAKE_CL_64=1 -DCMAKE_BUILD_TYPE=Debug -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=$(TOOLCHAIN) ../../../cmake
+ $(CMAKE) -D CMAKE_CL_64=1 -DCMAKE_BUILD_TYPE=Debug -DSTATIC="1" -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=$(TOOLCHAIN) ../../../cmake
+ ${MAKE} -C $(DIR)
+endif
+
+DynamicDebug64: DIR=./gcc/i80386linux_x64/Debug/
+DynamicDebug64:
+ifeq ($(arch),64)
+ mkdir -p $(DIR) || echo "Unable to create Directory $(DIR)"; \
+ cd $(DIR) || echo "unable to Change Directory $(DIR)" ; \
+ ${MAKE} -C "$(CURRDIR)/../../build/" DynamicDebug64 ; \
+ $(CMAKE) -D CMAKE_CL_64=1 -DCMAKE_BUILD_TYPE=Debug -DSTATIC="0" -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=$(TOOLCHAIN) ../../../cmake
${MAKE} -C $(DIR)
endif
-Release64: DIR=./gcc/i80386linux_x64/Release/
-Release64:
+
+StaticRelease64: DIR=./gcc/i80386linux_x64/Release/
+StaticRelease64:
ifeq ($(arch),64)
mkdir -p $(DIR) || echo "Unable to create Directory $(DIR)"; \
cd $(DIR) || echo "unable to Change Directory $(DIR)" ; \
${MAKE} -C "$(CURRDIR)/../../build/" StaticRelease64 ; \
- $(CMAKE) -D CMAKE_CL_64=1 -DCMAKE_BUILD_TYPE=Release -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=$(TOOLCHAIN) ../../../cmake
+ $(CMAKE) -D CMAKE_CL_64=1 -DCMAKE_BUILD_TYPE=Release -DSTATIC="1" -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=$(TOOLCHAIN) ../../../cmake
+ ${MAKE} -C $(DIR)
+endif
+
+DynamicRelease64: DIR=./gcc/i80386linux_x64/Release/
+DynamicRelease64:
+ifeq ($(arch),64)
+ mkdir -p $(DIR) || echo "Unable to create Directory $(DIR)"; \
+ cd $(DIR) || echo "unable to Change Directory $(DIR)" ; \
+ ${MAKE} -C "$(CURRDIR)/../../build/" DynamicRelease64 ; \
+ $(CMAKE) -D CMAKE_CL_64=1 -DCMAKE_BUILD_TYPE=Release -DSTATIC="0" -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=$(TOOLCHAIN) ../../../cmake
${MAKE} -C $(DIR)
endif
-all: Debug32 Release32 Debug64 Release64
+
+StaticAll: StaticDebug32 StaticRelease32 StaticDebug64 StaticRelease64
+
+DynamicAll: DynamicDebug32 DynamicRelease32 DynamicDebug64 DynamicRelease64
+
+all: StaticDebug32 StaticRelease32 StaticDebug64 StaticRelease64
clean:
test -d "$(CURRDIR)/../target/i80386linux/" && rm -rf "$(CURRDIR)/../target/i80386linux/"; \
@@ -71,18 +117,30 @@ clean:
test -d "$(CURRDIR)/cmake/DumpScannedXMP/build_x64" && rm -rf "$(CURRDIR)/cmake/DumpScannedXMP/build_x64"; \
test -d "$(CURRDIR)/cmake/ReadingXMP/build" && rm -rf "$(CURRDIR)/cmake/ReadingXMP/build"; \
test -d "$(CURRDIR)/cmake/ReadingXMP/build_x64" && rm -rf "$(CURRDIR)/cmake/ReadingXMP/build_x64"; \
+ test -d "$(CURRDIR)/cmake/ReadingXMPNewDOM/build" && rm -rf "$(CURRDIR)/cmake/ReadingXMPNewDOM/build"; \
+ test -d "$(CURRDIR)/cmake/ReadingXMPNewDOM/build_x64" && rm -rf "$(CURRDIR)/cmake/ReadingXMPNewDOM/build_x64"; \
test -d "$(CURRDIR)/cmake/XMPCommand/build" && rm -rf "$(CURRDIR)/cmake/XMPCommand/build" ; \
test -d "$(CURRDIR)/cmake/XMPCommand/build_x64" && rm -rf "$(CURRDIR)/cmake/XMPCommand/build_x64" ; \
test -d "$(CURRDIR)/cmake/XMPFilesCoverage/build" && rm -rf "$(CURRDIR)/cmake/XMPFilesCoverage/build"; \
test -d "$(CURRDIR)/cmake/XMPFilesCoverage/build_x64" && rm -rf "$(CURRDIR)/cmake/XMPFilesCoverage/build_x64"; \
- test -d "$(CURRDIR)/cmake/CustomSchema/build" && rm -rf "$(CURRDIR)/cmake/CustomSchema/build"; \
- test -d "$(CURRDIR)/cmake/CustomSchema/build_x64" && rm -rf "$(CURRDIR)/cmake/CustomSchema/build_x64"; \
+ test -d "$(CURRDIR)/cmake/CustomSchema/build" && rm -rf "$(CURRDIR)/cmake/CustomSchema/build"; \
+ test -d "$(CURRDIR)/cmake/CustomSchema/build_x64" && rm -rf "$(CURRDIR)/cmake/CustomSchema/build_x64"; \
+ test -d "$(CURRDIR)/cmake/CustomSchemaNewDOM/build" && rm -rf "$(CURRDIR)/cmake/CustomSchemaNewDOM/build"; \
+ test -d "$(CURRDIR)/cmake/CustomSchemaNewDOM/build_x64" && rm -rf "$(CURRDIR)/cmake/CustomSchemaNewDOM/build_x64"; \
test -d "$(CURRDIR)/cmake/DumpMainXMP/build" && rm -rf "$(CURRDIR)/cmake/DumpMainXMP/build"; \
test -d "$(CURRDIR)/cmake/DumpMainXMP/build_x64" && rm -rf "$(CURRDIR)/cmake/DumpMainXMP/build_x64"; \
test -d "$(CURRDIR)/cmake/ModifyingXMP/build" && rm -rf "$(CURRDIR)/cmake/ModifyingXMP/build"; \
test -d "$(CURRDIR)/cmake/ModifyingXMP/build_x64" && rm -rf "$(CURRDIR)/cmake/ModifyingXMP/build_x64"; \
+ test -d "$(CURRDIR)/cmake/ModifyingXMPNewDOM/build" && rm -rf "$(CURRDIR)/cmake/ModifyingXMPNewDOM/build"; \
+ test -d "$(CURRDIR)/cmake/ModifyingXMPNewDOM/build_x64" && rm -rf "$(CURRDIR)/cmake/ModifyingXMPNewDOM/build_x64"; \
test -d "$(CURRDIR)/cmake/XMPCoreCoverage/build" && rm -rf "$(CURRDIR)/cmake/XMPCoreCoverage/build"; \
test -d "$(CURRDIR)/cmake/XMPCoreCoverage/build_x64" && rm -rf "$(CURRDIR)/cmake/XMPCoreCoverage/build_x64"; \
test -d "$(CURRDIR)/cmake/XMPIterations/build" && rm -rf "$(CURRDIR)/cmake/XMPIterations/build"; \
test -d "$(CURRDIR)/cmake/XMPIterations/build_x64" && rm -rf "$(CURRDIR)/cmake/XMPIterations/build_x64"; \
+ test -d "$(CURRDIR)/cmake/UnicodeCorrectness/build" && rm -rf "$(CURRDIR)/cmake/UnicodeCorrectness/build"; \
+ test -d "$(CURRDIR)/cmake/UnicodeCorrectness/build_x64" && rm -rf "$(CURRDIR)/cmake/UnicodeCorrectness/build_x64"; \
+ test -d "$(CURRDIR)/cmake/UnicodeParseSerialize/build" && rm -rf "$(CURRDIR)/cmake/UnicodeParseSerialize/build"; \
+ test -d "$(CURRDIR)/cmake/UnicodeParseSerialize/build_x64" && rm -rf "$(CURRDIR)/cmake/UnicodeParseSerialize/build_x64"; \
+ test -d "$(CURRDIR)/cmake/UnicodePerformance/build" && rm -rf "$(CURRDIR)/cmake/UnicodePerformance/build"; \
+ test -d "$(CURRDIR)/cmake/UnicodePerformance/build_x64" && rm -rf "$(CURRDIR)/cmake/UnicodePerformance/build_x64"; \
echo "Clean Success"
diff --git a/samples/build/cmake/CMakeLists.txt b/samples/build/cmake/CMakeLists.txt
index 89f783b..f9da24c 100644
--- a/samples/build/cmake/CMakeLists.txt
+++ b/samples/build/cmake/CMakeLists.txt
@@ -1,25 +1,25 @@
-# =================================================================================================
-# ADOBE SYSTEMS INCORPORATED
-# Copyright 2013 Adobe Systems Incorporated
-# All Rights Reserved
-#
-# NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
-# of the Adobe license agreement accompanying it.
-# =================================================================================================
-
-# define minimum cmake version
-cmake_minimum_required(VERSION 2.8.6)
-#This projects relative path to XMP Root
-set ( XMP_THIS_PROJECT_RELATIVEPATH "../../../")
-#setting the root for XMP SDK
-if(NOT DEFINED XMP_ROOT)
- set(XMP_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/${XMP_THIS_PROJECT_RELATIVEPATH})
-endif()
-
-if(NOT DEFINED COMMON_BUILD_SHARED_DIR)
- set(COMMON_BUILD_SHARED_DIR ${XMP_ROOT}/build/shared)
-endif()
-
-set(USE_BUILDMODE_LIBNAME 0)
-
-include(CMakeListsCommon.txt) \ No newline at end of file
+# =================================================================================================
+# ADOBE SYSTEMS INCORPORATED
+# Copyright 2013 Adobe Systems Incorporated
+# All Rights Reserved
+#
+# NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+# of the Adobe license agreement accompanying it.
+# =================================================================================================
+
+# define minimum cmake version
+cmake_minimum_required(VERSION 3.5.2)
+#This projects relative path to XMP Root
+set ( XMP_THIS_PROJECT_RELATIVEPATH "../../../")
+#setting the root for XMP SDK
+if(NOT DEFINED XMP_ROOT)
+ set(XMP_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/${XMP_THIS_PROJECT_RELATIVEPATH})
+endif()
+
+if(NOT DEFINED COMMON_BUILD_SHARED_DIR)
+ set(COMMON_BUILD_SHARED_DIR ${XMP_ROOT}/build/shared)
+endif()
+
+set(USE_BUILDMODE_LIBNAME 0)
+
+include(CMakeListsCommonSDK.txt) \ No newline at end of file
diff --git a/samples/build/cmake/CMakeListsCommon.txt b/samples/build/cmake/CMakeListsCommonSDK.txt
index 0a07bab..f2e7436 100644
--- a/samples/build/cmake/CMakeListsCommon.txt
+++ b/samples/build/cmake/CMakeListsCommonSDK.txt
@@ -1,64 +1,72 @@
-# =================================================================================================
-# ADOBE SYSTEMS INCORPORATED
-# Copyright 2013 Adobe Systems Incorporated
-# All Rights Reserved
-#
-# NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
-# of the Adobe license agreement accompanying it.
-# =================================================================================================
-
-# define minimum cmake version
-cmake_minimum_required(VERSION 2.8.6)
-
-SET(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "Configurations" FORCE)
-#This projects relative path to XMP Root
-
-# Set the project name according to target
-if(CMAKE_CL_64)
- set(IS64BIT "TRUE")
- set (POSTFIX "_x64")
- project(XMP_Samples_64)
- message (INFO ":64 Target is chosen")
-else(CMAKE_CL_64)
- set(IS64BIT "FALSE")
- project(XMP_Samples)
- message (INFO ":32 bit target is chosen")
-endif(CMAKE_CL_64)
-
-set(TESTXMP_VERSION 1.0)
-
-#setting static flag for correct compiler flag through shared config
-set (XMP_BUILD_STATIC 1)
-# ==============================================================================
-# load shared config
-# ==============================================================================
-include(SharedConfig.cmake)
-
-# common path defines
-# setup project specific paths
-set( PROJECT_ROOT ${PROJECT_SOURCE_DIR})
-set( SAMPLE_SOURCE_ROOT ${PROJECT_ROOT}/../../source/)
-set( XMP_ROOT ${PROJECT_ROOT}/../../.. )
-set( PUBLIC_INCLUDE ${XMP_ROOT}/public/include)
-
-# Output of test executables
-set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/target/${PLATFORM_FOLDER}/)
-
-# Add the Samples to the project
- message (INFO ":Add CustomSchema sample")
- add_subdirectory(${PROJECT_ROOT}/CustomSchema ${PROJECT_ROOT}/CustomSchema/build${POSTFIX})
- add_subdirectory(${PROJECT_ROOT}/DumpFile ${PROJECT_ROOT}/DumpFile/build${POSTFIX})
- add_subdirectory(${PROJECT_ROOT}/DumpMainXMP ${PROJECT_ROOT}/DumpMainXMP/build${POSTFIX})
- add_subdirectory(${PROJECT_ROOT}/DumpScannedXMP ${PROJECT_ROOT}/DumpScannedXMP/build${POSTFIX})
- add_subdirectory(${PROJECT_ROOT}/ModifyingXMP ${PROJECT_ROOT}/ModifyingXMP/build${POSTFIX})
- add_subdirectory(${PROJECT_ROOT}/ReadingXMP ${PROJECT_ROOT}/ReadingXMP/build${POSTFIX})
- add_subdirectory(${PROJECT_ROOT}/XMPCommand ${PROJECT_ROOT}/XMPCommand/build${POSTFIX})
- add_subdirectory(${PROJECT_ROOT}/XMPCoreCoverage ${PROJECT_ROOT}/XMPCoreCoverage/build${POSTFIX})
- add_subdirectory(${PROJECT_ROOT}/XMPFilesCoverage ${PROJECT_ROOT}/XMPFilesCoverage/build${POSTFIX})
- add_subdirectory(${PROJECT_ROOT}/XMPIterations ${PROJECT_ROOT}/XMPIterations/build${POSTFIX})
-
-message (STATUS "===========================================================================")
-message (STATUS " ${PROJECT_NAME} ")
-message (STATUS "===========================================================================")
-
-
+# =================================================================================================
+# ADOBE SYSTEMS INCORPORATED
+# Copyright 2013 Adobe Systems Incorporated
+# All Rights Reserved
+#
+# NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+# of the Adobe license agreement accompanying it.
+# =================================================================================================
+
+# define minimum cmake version
+cmake_minimum_required(VERSION 3.5.2)
+
+SET(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "Configurations" FORCE)
+#This projects relative path to XMP Root
+
+# Set the project name according to target
+if(CMAKE_CL_64)
+ set(IS64BIT "TRUE")
+ set (POSTFIX "_x64")
+ project(XMP_Samples_64)
+ message (INFO ":64 Target is chosen")
+else(CMAKE_CL_64)
+ set(IS64BIT "FALSE")
+ project(XMP_Samples)
+ message (INFO ":32 bit target is chosen")
+endif(CMAKE_CL_64)
+
+set(TESTXMP_VERSION 1.0)
+
+# setting static flag for correct compiler flag through shared config
+if(STATIC)
+set (XMP_BUILD_STATIC 1)
+else(STATIC)
+set (XMP_BUILD_STATIC 0)
+endif(STATIC)
+
+# ==============================================================================
+# load shared config
+# ==============================================================================
+include(SharedConfigSDK.cmake)
+
+# common path defines
+# setup project specific paths
+set( PROJECT_ROOT ${PROJECT_SOURCE_DIR})
+set( SAMPLE_SOURCE_ROOT ${PROJECT_ROOT}/../../source/)
+set( XMP_ROOT ${PROJECT_ROOT}/../../.. )
+set( PUBLIC_INCLUDE ${XMP_ROOT}/public/include)
+
+# Output of test executables
+set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/target/${PLATFORM_FOLDER}/)
+
+# Add the Samples to the project
+# message (INFO ":Add CustomSchema sample")
+ add_subdirectory(${PROJECT_ROOT}/CustomSchema ${PROJECT_ROOT}/CustomSchema/build${POSTFIX})
+ add_subdirectory(${PROJECT_ROOT}/CustomSchemaNewDOM ${PROJECT_ROOT}/CustomSchemaNewDOM/build${POSTFIX})
+ add_subdirectory(${PROJECT_ROOT}/DumpFile ${PROJECT_ROOT}/DumpFile/build${POSTFIX})
+ add_subdirectory(${PROJECT_ROOT}/DumpMainXMP ${PROJECT_ROOT}/DumpMainXMP/build${POSTFIX})
+ add_subdirectory(${PROJECT_ROOT}/DumpScannedXMP ${PROJECT_ROOT}/DumpScannedXMP/build${POSTFIX})
+ add_subdirectory(${PROJECT_ROOT}/ModifyingXMP ${PROJECT_ROOT}/ModifyingXMP/build${POSTFIX})
+ add_subdirectory(${PROJECT_ROOT}/ModifyingXMPNewDOM ${PROJECT_ROOT}/ModifyingXMPNewDOM/build${POSTFIX})
+ add_subdirectory(${PROJECT_ROOT}/ReadingXMP ${PROJECT_ROOT}/ReadingXMP/build${POSTFIX})
+ add_subdirectory(${PROJECT_ROOT}/ReadingXMPNewDOM ${PROJECT_ROOT}/ReadingXMPNewDOM/build${POSTFIX})
+ add_subdirectory(${PROJECT_ROOT}/XMPCommand ${PROJECT_ROOT}/XMPCommand/build${POSTFIX})
+ add_subdirectory(${PROJECT_ROOT}/XMPCoreCoverage ${PROJECT_ROOT}/XMPCoreCoverage/build${POSTFIX})
+ add_subdirectory(${PROJECT_ROOT}/XMPFilesCoverage ${PROJECT_ROOT}/XMPFilesCoverage/build${POSTFIX})
+ add_subdirectory(${PROJECT_ROOT}/XMPIterations ${PROJECT_ROOT}/XMPIterations/build${POSTFIX})
+
+message (STATUS "===========================================================================")
+message (STATUS " ${PROJECT_NAME} ")
+message (STATUS "===========================================================================")
+
+
diff --git a/samples/build/cmake/CustomSchema/CMakeLists.txt b/samples/build/cmake/CustomSchema/CMakeLists.txt
index 5f3c8d5..363efc6 100644
--- a/samples/build/cmake/CustomSchema/CMakeLists.txt
+++ b/samples/build/cmake/CustomSchema/CMakeLists.txt
@@ -1,54 +1,82 @@
-# =================================================================================================
-# ADOBE SYSTEMS INCORPORATED
-# Copyright 2013 Adobe Systems Incorporated
-# All Rights Reserved
-#
-# NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
-# of the Adobe license agreement accompanying it.
-# =================================================================================================
-
-# define minimum cmake version
-cmake_minimum_required(VERSION 2.8.6)
-
-# ==============================================================================
-# Adding Project Name
-# ==============================================================================
-project (CustomSchema)
-
-# ==============================================================================
-file (GLOB SOURCE_FILES ${SAMPLE_SOURCE_ROOT}/CustomSchema.cpp )
-source_group("Source Files" FILES ${SOURCE_FILES})
-include_directories( ${XMP_ROOT} )
-include_directories( ${PUBLIC_INCLUDE} )
-
-add_executable(${PROJECT_NAME} ${SOURCE_FILES})
-
-#setting up XMP_BUILDMODE_DIR variable
-SetupInternalBuildDirectory()
-set (BUILD_MODE_LIBNAME "")
-if (USE_BUILDMODE_LIBNAME )
- set(BUILD_MODE_LIBNAME ${XMP_BUILDMODE_DIR})
-endif()
-#addding XMP libs and setting output path
-ADD_FRAMEWORK(Cocoa ${PROJECT_NAME})
-if(UNIX)
- if(APPLE) #For Mac
- target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPCORE_LIB}${BUILD_MODE_LIBNAME}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPFILES_LIB}${BUILD_MODE_LIBNAME}${LIB_EXT} )
- set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
- set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
- else(APPLE) #For Linux
- SetPlatformLinkFlags(${PROJECT_NAME} "" "")
- target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} )
- set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} )
- set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
- endif(APPLE)
-else(UNIX) #For Windows
- target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${BUILD_MODE_LIBNAME}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${BUILD_MODE_LIBNAME}${LIB_EXT} Rpcrt4.lib)
- set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
- set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
-endif(UNIX)
-
-#message (STATUS "Output Folder -> ${OUTPUT_DIR}")
-
-
-
+# =================================================================================================
+# ADOBE SYSTEMS INCORPORATED
+# Copyright 2013 Adobe Systems Incorporated
+# All Rights Reserved
+#
+# NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+# of the Adobe license agreement accompanying it.
+# =================================================================================================
+
+# define minimum cmake version
+cmake_minimum_required(VERSION 3.5.2)
+
+# ==============================================================================
+# Adding Project Name
+# ==============================================================================
+project (CustomSchema)
+
+# ==============================================================================
+if(STATIC)
+add_definitions(-DENABLE_CPP_DOM_MODEL=1)
+else(STATIC)
+add_definitions(-DENABLE_CPP_DOM_MODEL=0)
+endif(STATIC)
+
+file (GLOB SOURCE_FILES ${SAMPLE_SOURCE_ROOT}/CustomSchema.cpp )
+source_group("Source Files" FILES ${SOURCE_FILES})
+include_directories( ${XMP_ROOT} )
+include_directories( ${PUBLIC_INCLUDE} )
+add_executable(${PROJECT_NAME} ${SOURCE_FILES})
+
+#setting up XMP_BUILDMODE_DIR variable
+SetupInternalBuildDirectory()
+set (BUILD_MODE_LIBNAME "")
+if (USE_BUILDMODE_LIBNAME )
+ set(BUILD_MODE_LIBNAME ${XMP_BUILDMODE_DIR})
+endif()
+#addding XMP libs and setting output path
+ADD_FRAMEWORK(Cocoa ${PROJECT_NAME})
+if(STATIC)
+ if(UNIX)
+ if(APPLE) #For Mac
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPCORE_LIB}Static${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPFILES_LIB}Static${LIB_EXT} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ else(APPLE) #For Linux
+ SetPlatformLinkFlags(${PROJECT_NAME} "" "")
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ endif(APPLE)
+ else(UNIX) #For Windows
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}Static${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}Static${LIB_EXT} Rpcrt4.lib)
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ endif(UNIX)
+else(STATIC)
+ if(UNIX)
+ if(APPLE) #For Mac
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT}/Versions/A/${XMPCORE_LIB})
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ add_custom_command (TARGET ${PROJECT_NAME} COMMAND ${CMAKE_COMMAND} -E copy_directory ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} ${OUTPUT_DIR}/${XMP_BUILDMODE_DIR} )
+ else(APPLE) #For Linux
+ SetPlatformLinkFlags(${PROJECT_NAME} "" "")
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT})
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ add_custom_command (TARGET ${PROJECT_NAME} COMMAND ${CMAKE_COMMAND} -E copy_directory ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} ${OUTPUT_DIR} )
+ endif(APPLE)
+ else(UNIX) #For Windows
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} Rpcrt4.lib)
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ add_custom_command (TARGET ${PROJECT_NAME} COMMAND ${CMAKE_COMMAND} -E copy_directory ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} ${OUTPUT_DIR}/${XMP_BUILDMODE_DIR} )
+ endif(UNIX)
+endif(STATIC)
+
+#message (STATUS "Output Folder -> ${OUTPUT_DIR}")
+#adding Cocoa for Mac
+ADD_FRAMEWORK(Cocoa ${PROJECT_NAME})
+
+
diff --git a/samples/build/cmake/CustomSchemaNewDOM/CMakeLists.txt b/samples/build/cmake/CustomSchemaNewDOM/CMakeLists.txt
new file mode 100644
index 0000000..e1799e8
--- /dev/null
+++ b/samples/build/cmake/CustomSchemaNewDOM/CMakeLists.txt
@@ -0,0 +1,89 @@
+# =================================================================================================
+# ADOBE SYSTEMS INCORPORATED
+# Copyright 2013 Adobe Systems Incorporated
+# All Rights Reserved
+#
+# NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+# of the Adobe license agreement accompanying it.
+# =================================================================================================
+
+# define minimum cmake version
+cmake_minimum_required(VERSION 3.5.2)
+
+# ==============================================================================
+# Adding Project Name
+# ==============================================================================
+project (CustomSchemaNewDOM)
+
+# ==============================================================================
+add_definitions(-DENABLE_CPP_DOM_MODEL=1)
+if(STATIC)
+ file (GLOB SOURCE_FILES ${SAMPLE_SOURCE_ROOT}/CustomSchemaNewDOM.cpp )
+ source_group("Source Files" FILES ${SOURCE_FILES})
+ include_directories( ${XMP_ROOT} )
+ include_directories( ${PUBLIC_INCLUDE} )
+ add_executable(${PROJECT_NAME} ${SOURCE_FILES})
+else(STATIC)
+ file (GLOB SOURCE_FILES ${SAMPLE_SOURCE_ROOT}/CustomSchemaNewDOM.cpp )
+ file (GLOB CORE_PUBLIC_SOURCE_FILES ${XMP_ROOT}/public/include/XMPCore/source/*.cpp)
+ file (GLOB COMMON_PUBLIC_SOURCE_FILES ${XMP_ROOT}/public/include/XMPCommon/source/*.cpp)
+ source_group("Source Files" FILES ${SOURCE_FILES})
+ source_group("Source Files\\Public\\XMPCore" FILES ${CORE_PUBLIC_SOURCE_FILES})
+ source_group("Source Files\\Public\\XMPCommon" FILES ${COMMON_PUBLIC_SOURCE_FILES})
+ include_directories( ${XMP_ROOT} )
+ include_directories( ${PUBLIC_INCLUDE} )
+ add_executable(${PROJECT_NAME} ${SOURCE_FILES} ${CORE_PUBLIC_SOURCE_FILES} ${COMMON_PUBLIC_SOURCE_FILES})
+endif(STATIC)
+
+#setting up XMP_BUILDMODE_DIR variable
+SetupInternalBuildDirectory()
+set (BUILD_MODE_LIBNAME "")
+if (USE_BUILDMODE_LIBNAME )
+ set(BUILD_MODE_LIBNAME ${XMP_BUILDMODE_DIR})
+endif()
+#addding XMP libs and setting output path
+ADD_FRAMEWORK(Cocoa ${PROJECT_NAME})
+if(STATIC)
+ if(UNIX)
+ if(APPLE) #For Mac
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPCORE_LIB}Static${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPFILES_LIB}Static${LIB_EXT} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/)
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ else(APPLE) #For Linux
+ SetPlatformLinkFlags(${PROJECT_NAME} "" "")
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT})
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ endif(APPLE)
+ else(UNIX) #For Windows
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}Static${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}Static${LIB_EXT} Rpcrt4.lib)
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ endif(UNIX)
+else(STATIC)
+ if(UNIX)
+ if(APPLE) #For Mac
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT}/Versions/A/${XMPCORE_LIB})
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ add_custom_command (TARGET ${PROJECT_NAME} COMMAND ${CMAKE_COMMAND} -E copy_directory ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} ${OUTPUT_DIR}/${XMP_BUILDMODE_DIR} )
+ else(APPLE) #For Linux
+ SetPlatformLinkFlags(${PROJECT_NAME} "" "")
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ add_custom_command (TARGET ${PROJECT_NAME} COMMAND ${CMAKE_COMMAND} -E copy_directory ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} ${OUTPUT_DIR} )
+ endif(APPLE)
+ else(UNIX) #For Windows
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} Rpcrt4.lib)
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ add_custom_command (TARGET ${PROJECT_NAME} COMMAND ${CMAKE_COMMAND} -E copy_directory ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} ${OUTPUT_DIR}/${XMP_BUILDMODE_DIR} )
+ endif(UNIX)
+endif(STATIC)
+
+#message (STATUS "Output Folder -> ${OUTPUT_DIR}")
+#adding Cocoa for Mac
+ADD_FRAMEWORK(Cocoa ${PROJECT_NAME})
+
+
diff --git a/samples/build/cmake/DumpFile/CMakeLists.txt b/samples/build/cmake/DumpFile/CMakeLists.txt
index 692187f..2253c05 100644
--- a/samples/build/cmake/DumpFile/CMakeLists.txt
+++ b/samples/build/cmake/DumpFile/CMakeLists.txt
@@ -8,7 +8,7 @@
# =================================================================================================
# define minimum cmake version
-cmake_minimum_required(VERSION 2.8.6)
+cmake_minimum_required(VERSION 3.5.2)
# ==============================================================================
# Adding Project Name
diff --git a/samples/build/cmake/DumpFile/CMakeListsCommon.txt b/samples/build/cmake/DumpFile/CMakeListsCommon.txt
index 2d37956..a969f27 100644
--- a/samples/build/cmake/DumpFile/CMakeListsCommon.txt
+++ b/samples/build/cmake/DumpFile/CMakeListsCommon.txt
@@ -1,48 +1,70 @@
-# =================================================================================================
-# ADOBE SYSTEMS INCORPORATED
-# Copyright 2013 Adobe Systems Incorporated
-# All Rights Reserved
-#
-# NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
-# of the Adobe license agreement accompanying it.
-# =================================================================================================
-
-# define minimum cmake version
-cmake_minimum_required(VERSION 2.8.6)
-
-
-source_group("Source Files" FILES ${SOURCE_FILES})
-source_group("Common Files" FILES ${COMMON_FILES})
-include_directories( ${XMP_ROOT} )
-include_directories( ${PUBLIC_INCLUDE} )
-
-add_executable(${PROJECT_NAME} ${SOURCE_FILES} ${COMMON_FILES})
-
-#setting up XMP_BUILDMODE_DIR variable
-SetupInternalBuildDirectory()
-set (BUILD_MODE_LIBNAME "")
-if (USE_BUILDMODE_LIBNAME )
- set(BUILD_MODE_LIBNAME ${XMP_BUILDMODE_DIR})
-endif()
-#addding XMP libs and setting output path
-if(UNIX)
- if(APPLE) #For Mac
- target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPCORE_LIB}${BUILD_MODE_LIBNAME}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPFILES_LIB}${BUILD_MODE_LIBNAME}${LIB_EXT} )
- set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
- set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
- else(APPLE) #For Linux
- SetPlatformLinkFlags(${PROJECT_NAME} "" "")
- target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} )
- set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} )
- set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
- endif(APPLE)
-else(UNIX) #For Windows
- target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${BUILD_MODE_LIBNAME}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${BUILD_MODE_LIBNAME}${LIB_EXT} Rpcrt4.lib)
- set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
- set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
-endif(UNIX)
-
-#adding Cocoa for Mac
-ADD_FRAMEWORK(Cocoa ${PROJECT_NAME})
-
-
+# =================================================================================================
+# ADOBE SYSTEMS INCORPORATED
+# Copyright 2013 Adobe Systems Incorporated
+# All Rights Reserved
+#
+# NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+# of the Adobe license agreement accompanying it.
+# =================================================================================================
+
+# define minimum cmake version
+cmake_minimum_required(VERSION 3.5.2)
+
+
+source_group("Source Files" FILES ${SOURCE_FILES})
+source_group("Common Files" FILES ${COMMON_FILES})
+include_directories( ${XMP_ROOT} )
+include_directories( ${PUBLIC_INCLUDE} )
+
+add_executable(${PROJECT_NAME} ${SOURCE_FILES} ${COMMON_FILES})
+
+#setting up XMP_BUILDMODE_DIR variable
+SetupInternalBuildDirectory()
+set (BUILD_MODE_LIBNAME "")
+if (USE_BUILDMODE_LIBNAME )
+ set(BUILD_MODE_LIBNAME ${XMP_BUILDMODE_DIR})
+endif()
+#addding XMP libs and setting output path
+if(STATIC)
+ if(UNIX)
+ if(APPLE) #For Mac
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPCORE_LIB}Static${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPFILES_LIB}Static${LIB_EXT} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ else(APPLE) #For Linux
+ SetPlatformLinkFlags(${PROJECT_NAME} "" "")
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ endif(APPLE)
+ else(UNIX) #For Windows
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}Static${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}Static${LIB_EXT} Rpcrt4.lib)
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ endif(UNIX)
+else(STATIC)
+ if(UNIX)
+ if(APPLE) #For Mac
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT}/Versions/A/${XMPCORE_LIB} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT}/Versions/A/${XMPFILES_LIB} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ add_custom_command (TARGET ${PROJECT_NAME} COMMAND ${CMAKE_COMMAND} -E copy_directory ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} ${OUTPUT_DIR}/${XMP_BUILDMODE_DIR} )
+ else(APPLE) #For Linux
+ SetPlatformLinkFlags(${PROJECT_NAME} "" "")
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ add_custom_command (TARGET ${PROJECT_NAME} COMMAND ${CMAKE_COMMAND} -E copy_directory ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} ${OUTPUT_DIR} )
+ endif(APPLE)
+ else(UNIX) #For Windows
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} Rpcrt4.lib)
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ add_custom_command (TARGET ${PROJECT_NAME} COMMAND ${CMAKE_COMMAND} -E copy_directory ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} ${OUTPUT_DIR}/${XMP_BUILDMODE_DIR} )
+ endif(UNIX)
+endif(STATIC)
+
+#adding Cocoa for Mac
+ADD_FRAMEWORK(Cocoa ${PROJECT_NAME})
+
+
diff --git a/samples/build/cmake/DumpMainXMP/CMakeLists.txt b/samples/build/cmake/DumpMainXMP/CMakeLists.txt
index e3fefe2..a6f266f 100644
--- a/samples/build/cmake/DumpMainXMP/CMakeLists.txt
+++ b/samples/build/cmake/DumpMainXMP/CMakeLists.txt
@@ -1,57 +1,80 @@
-# =================================================================================================
-# ADOBE SYSTEMS INCORPORATED
-# Copyright 2013 Adobe Systems Incorporated
-# All Rights Reserved
-#
-# NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
-# of the Adobe license agreement accompanying it.
-# =================================================================================================
-
-# define minimum cmake version
-cmake_minimum_required(VERSION 2.8.6)
-
-# ==============================================================================
-# Adding Project Name
-# ==============================================================================
-project ( DumpMainXMP )
-
-# ==============================================================================
-file (GLOB SOURCE_FILES ${SAMPLE_SOURCE_ROOT}/DumpMainXMP.cpp )
-
-
-source_group("Source Files" FILES ${SOURCE_FILES})
-source_group("Common Files" FILES ${COMMON_FILES})
-include_directories( ${XMP_ROOT} )
-include_directories( ${PUBLIC_INCLUDE} )
-
-add_executable(${PROJECT_NAME} ${SOURCE_FILES})
-
-#setting up XMP_BUILDMODE_DIR variable
-SetupInternalBuildDirectory()
-set (BUILD_MODE_LIBNAME "")
-if (USE_BUILDMODE_LIBNAME )
- set(BUILD_MODE_LIBNAME ${XMP_BUILDMODE_DIR})
-endif()
-#addding XMP libs and setting output path
-if(UNIX)
- if(APPLE) #For Mac
- target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPCORE_LIB}${BUILD_MODE_LIBNAME}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPFILES_LIB}${BUILD_MODE_LIBNAME}${LIB_EXT} )
- set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
- set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
- else(APPLE) #For Linux
- SetPlatformLinkFlags(${PROJECT_NAME} "" "")
- target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} )
- set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} )
- set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
- endif(APPLE)
-else(UNIX) #For Windows
- target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${BUILD_MODE_LIBNAME}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${BUILD_MODE_LIBNAME}${LIB_EXT} Rpcrt4.lib)
- set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
- set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
-endif(UNIX)
-
-#adding Cocoa for Mac
-ADD_FRAMEWORK(Cocoa ${PROJECT_NAME})
-
-
-
+# =================================================================================================
+# ADOBE SYSTEMS INCORPORATED
+# Copyright 2013 Adobe Systems Incorporated
+# All Rights Reserved
+#
+# NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+# of the Adobe license agreement accompanying it.
+# =================================================================================================
+
+# define minimum cmake version
+cmake_minimum_required(VERSION 3.5.2)
+
+# ==============================================================================
+# Adding Project Name
+# ==============================================================================
+project ( DumpMainXMP )
+
+# ==============================================================================
+if(STATIC)
+add_definitions(-DENABLE_CPP_DOM_MODEL=1)
+else(STATIC)
+add_definitions(-DENABLE_CPP_DOM_MODEL=0)
+endif(STATIC)
+
+ file (GLOB SOURCE_FILES ${SAMPLE_SOURCE_ROOT}/DumpMainXMP.cpp )
+ source_group("Source Files" FILES ${SOURCE_FILES})
+ source_group("Common Files" FILES ${COMMON_FILES})
+ include_directories( ${XMP_ROOT} )
+ include_directories( ${PUBLIC_INCLUDE} )
+ add_executable(${PROJECT_NAME} ${SOURCE_FILES})
+#setting up XMP_BUILDMODE_DIR variable
+SetupInternalBuildDirectory()
+set (BUILD_MODE_LIBNAME "")
+if (USE_BUILDMODE_LIBNAME )
+ set(BUILD_MODE_LIBNAME ${XMP_BUILDMODE_DIR})
+endif()
+#addding XMP libs and setting output path
+if(STATIC)
+ if(UNIX)
+ if(APPLE) #For Mac
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPCORE_LIB}Static${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPFILES_LIB}Static${LIB_EXT} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ else(APPLE) #For Linux
+ SetPlatformLinkFlags(${PROJECT_NAME} "" "")
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ endif(APPLE)
+ else(UNIX) #For Windows
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}Static${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}Static${LIB_EXT} Rpcrt4.lib)
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ endif(UNIX)
+else(STATIC)
+ if(UNIX)
+ if(APPLE) #For Mac
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT}/Versions/A/${XMPCORE_LIB} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT}/Versions/A/${XMPFILES_LIB} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ add_custom_command (TARGET ${PROJECT_NAME} COMMAND ${CMAKE_COMMAND} -E copy_directory ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} ${OUTPUT_DIR}/${XMP_BUILDMODE_DIR} )
+ else(APPLE) #For Linux
+ SetPlatformLinkFlags(${PROJECT_NAME} "" "")
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ add_custom_command (TARGET ${PROJECT_NAME} COMMAND ${CMAKE_COMMAND} -E copy_directory ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} ${OUTPUT_DIR} )
+ endif(APPLE)
+ else(UNIX) #For Windows
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} Rpcrt4.lib)
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ add_custom_command (TARGET ${PROJECT_NAME} COMMAND ${CMAKE_COMMAND} -E copy_directory ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} ${OUTPUT_DIR}/${XMP_BUILDMODE_DIR} )
+ endif(UNIX)
+endif(STATIC)
+#adding Cocoa for Mac
+ADD_FRAMEWORK(Cocoa ${PROJECT_NAME})
+
+
+
diff --git a/samples/build/cmake/DumpScannedXMP/CMakeLists.txt b/samples/build/cmake/DumpScannedXMP/CMakeLists.txt
index ee25ef1..97f5169 100644
--- a/samples/build/cmake/DumpScannedXMP/CMakeLists.txt
+++ b/samples/build/cmake/DumpScannedXMP/CMakeLists.txt
@@ -1,57 +1,82 @@
-# =================================================================================================
-# ADOBE SYSTEMS INCORPORATED
-# Copyright 2013 Adobe Systems Incorporated
-# All Rights Reserved
-#
-# NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
-# of the Adobe license agreement accompanying it.
-# =================================================================================================
-
-# define minimum cmake version
-cmake_minimum_required(VERSION 2.8.6)
-
-# ==============================================================================
-# Adding Project Name
-# ==============================================================================
-project (DumpScannedXMP)
-
-# ==============================================================================
-file (GLOB SOURCE_FILES ${SAMPLE_SOURCE_ROOT}/DumpScannedXMP.cpp)
-
-
-source_group("Source Files" FILES ${SOURCE_FILES})
-source_group("Common Files" FILES ${COMMON_FILES})
-include_directories( ${XMP_ROOT} )
-include_directories( ${PUBLIC_INCLUDE} )
-
-add_executable(${PROJECT_NAME} ${SOURCE_FILES} )
-
-#setting up XMP_BUILDMODE_DIR variable
-SetupInternalBuildDirectory()
-set (BUILD_MODE_LIBNAME "")
-if (USE_BUILDMODE_LIBNAME )
- set(BUILD_MODE_LIBNAME ${XMP_BUILDMODE_DIR})
-endif()
-#addding XMP libs and setting output path
-ADD_FRAMEWORK(Cocoa ${PROJECT_NAME})
-if(UNIX)
- if(APPLE) #For Mac
- target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPCORE_LIB}${BUILD_MODE_LIBNAME}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPFILES_LIB}${BUILD_MODE_LIBNAME}${LIB_EXT} )
- set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
- set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
- else(APPLE) #For Linux
- SetPlatformLinkFlags(${PROJECT_NAME} "" "")
- target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} )
- set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} )
- set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
- endif(APPLE)
-else(UNIX) #For Windows
- target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${BUILD_MODE_LIBNAME}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${BUILD_MODE_LIBNAME}${LIB_EXT} Rpcrt4.lib)
- set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
- set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
-endif(UNIX)
-
-
-
-
-
+# =================================================================================================
+# ADOBE SYSTEMS INCORPORATED
+# Copyright 2013 Adobe Systems Incorporated
+# All Rights Reserved
+#
+# NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+# of the Adobe license agreement accompanying it.
+# =================================================================================================
+
+# define minimum cmake version
+cmake_minimum_required(VERSION 3.5.2)
+
+# ==============================================================================
+# Adding Project Name
+# ==============================================================================
+project (DumpScannedXMP)
+
+# ==============================================================================
+if(STATIC)
+add_definitions(-DENABLE_CPP_DOM_MODEL=1)
+else(STATIC)
+add_definitions(-DENABLE_CPP_DOM_MODEL=0)
+endif(STATIC)
+
+ file (GLOB SOURCE_FILES ${SAMPLE_SOURCE_ROOT}/DumpScannedXMP.cpp)
+ source_group("Source Files" FILES ${SOURCE_FILES})
+ source_group("Common Files" FILES ${COMMON_FILES})
+ include_directories( ${XMP_ROOT} )
+ include_directories( ${PUBLIC_INCLUDE} )
+ add_executable(${PROJECT_NAME} ${SOURCE_FILES} )
+
+#setting up XMP_BUILDMODE_DIR variable
+SetupInternalBuildDirectory()
+set (BUILD_MODE_LIBNAME "")
+if (USE_BUILDMODE_LIBNAME )
+ set(BUILD_MODE_LIBNAME ${XMP_BUILDMODE_DIR})
+endif()
+#addding XMP libs and setting output path
+ADD_FRAMEWORK(Cocoa ${PROJECT_NAME})
+if(STATIC)
+ if(UNIX)
+ if(APPLE) #For Mac
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPCORE_LIB}Static${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPFILES_LIB}Static${LIB_EXT} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ else(APPLE) #For Linux
+ SetPlatformLinkFlags(${PROJECT_NAME} "" "")
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ endif(APPLE)
+ else(UNIX) #For Windows
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}Static${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}Static${LIB_EXT} Rpcrt4.lib)
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ endif(UNIX)
+else(STATIC)
+ if(UNIX)
+ if(APPLE) #For Mac
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT}/Versions/A/${XMPCORE_LIB} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT}/Versions/A/${XMPFILES_LIB} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ add_custom_command (TARGET ${PROJECT_NAME} COMMAND ${CMAKE_COMMAND} -E copy_directory ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} ${OUTPUT_DIR}/${XMP_BUILDMODE_DIR} )
+ else(APPLE) #For Linux
+ SetPlatformLinkFlags(${PROJECT_NAME} "" "")
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ add_custom_command (TARGET ${PROJECT_NAME} COMMAND ${CMAKE_COMMAND} -E copy_directory ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} ${OUTPUT_DIR} )
+ endif(APPLE)
+ else(UNIX) #For Windows
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} Rpcrt4.lib)
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ add_custom_command (TARGET ${PROJECT_NAME} COMMAND ${CMAKE_COMMAND} -E copy_directory ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} ${OUTPUT_DIR}/${XMP_BUILDMODE_DIR} )
+ endif(UNIX)
+endif(STATIC)
+#adding Cocoa for Mac
+ADD_FRAMEWORK(Cocoa ${PROJECT_NAME})
+
+
+
diff --git a/samples/build/cmake/ModifyingXMP/CMakeLists.txt b/samples/build/cmake/ModifyingXMP/CMakeLists.txt
index aa92f14..538d38b 100644
--- a/samples/build/cmake/ModifyingXMP/CMakeLists.txt
+++ b/samples/build/cmake/ModifyingXMP/CMakeLists.txt
@@ -1,57 +1,83 @@
-# =================================================================================================
-# ADOBE SYSTEMS INCORPORATED
-# Copyright 2013 Adobe Systems Incorporated
-# All Rights Reserved
-#
-# NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
-# of the Adobe license agreement accompanying it.
-# =================================================================================================
-
-# define minimum cmake version
-cmake_minimum_required(VERSION 2.8.6)
-
-# ==============================================================================
-# Adding Project Name
-# ==============================================================================
-project (ModifyingXMP)
-
-# ==============================================================================
-file (GLOB SOURCE_FILES ${SAMPLE_SOURCE_ROOT}/ModifyingXMP.cpp)
-
-
-source_group("Source Files" FILES ${SOURCE_FILES})
-source_group("Common Files" FILES ${COMMON_FILES})
-include_directories( ${XMP_ROOT} )
-include_directories( ${PUBLIC_INCLUDE} )
-
-add_executable(${PROJECT_NAME} ${SOURCE_FILES} )
-
-#setting up XMP_BUILDMODE_DIR variable
-SetupInternalBuildDirectory()
-set (BUILD_MODE_LIBNAME "")
-if (USE_BUILDMODE_LIBNAME )
- set(BUILD_MODE_LIBNAME ${XMP_BUILDMODE_DIR})
-endif()
-#addding XMP libs and setting output path
-if(UNIX)
- if(APPLE) #For Mac
- target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPCORE_LIB}${BUILD_MODE_LIBNAME}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPFILES_LIB}${BUILD_MODE_LIBNAME}${LIB_EXT} )
- set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
- set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
- else(APPLE) #For Linux
- SetPlatformLinkFlags(${PROJECT_NAME} "" "")
- target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} )
- set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} )
- set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
- endif(APPLE)
-else(UNIX) #For Windows
- target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${BUILD_MODE_LIBNAME}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${BUILD_MODE_LIBNAME}${LIB_EXT} Rpcrt4.lib)
- set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
- set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
-endif(UNIX)
-
-#adding Cocoa for Mac
-ADD_FRAMEWORK(Cocoa ${PROJECT_NAME})
-
-
-
+# =================================================================================================
+# ADOBE SYSTEMS INCORPORATED
+# Copyright 2013 Adobe Systems Incorporated
+# All Rights Reserved
+#
+# NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+# of the Adobe license agreement accompanying it.
+# =================================================================================================
+
+# define minimum cmake version
+cmake_minimum_required(VERSION 3.5.2)
+
+# ==============================================================================
+# Adding Project Name
+# ==============================================================================
+project (ModifyingXMP)
+
+# ==============================================================================
+
+if(STATIC)
+add_definitions(-DENABLE_CPP_DOM_MODEL=1)
+else(STATIC)
+add_definitions(-DENABLE_CPP_DOM_MODEL=0)
+endif(STATIC)
+
+ file (GLOB SOURCE_FILES ${SAMPLE_SOURCE_ROOT}/ModifyingXMP.cpp)
+ source_group("Source Files" FILES ${SOURCE_FILES})
+ source_group("Common Files" FILES ${COMMON_FILES})
+ include_directories( ${XMP_ROOT} )
+ include_directories( ${PUBLIC_INCLUDE} )
+ add_executable(${PROJECT_NAME} ${SOURCE_FILES} )
+
+#setting up XMP_BUILDMODE_DIR variable
+SetupInternalBuildDirectory()
+set (BUILD_MODE_LIBNAME "")
+if (USE_BUILDMODE_LIBNAME )
+ set(BUILD_MODE_LIBNAME ${XMP_BUILDMODE_DIR})
+endif()
+#addding XMP libs and setting output path
+if(STATIC)
+ if(UNIX)
+ if(APPLE) #For Mac
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPCORE_LIB}Static${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPFILES_LIB}Static${LIB_EXT} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ else(APPLE) #For Linux
+ SetPlatformLinkFlags(${PROJECT_NAME} "" "")
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ endif(APPLE)
+ else(UNIX) #For Windows
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}Static${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}Static${LIB_EXT} Rpcrt4.lib)
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ endif(UNIX)
+else(STATIC)
+ if(UNIX)
+ if(APPLE) #For Mac
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT}/Versions/A/${XMPCORE_LIB} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT}/Versions/A/${XMPFILES_LIB} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ add_custom_command (TARGET ${PROJECT_NAME} COMMAND ${CMAKE_COMMAND} -E copy_directory ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} ${OUTPUT_DIR}/${XMP_BUILDMODE_DIR} )
+ else(APPLE) #For Linux
+ SetPlatformLinkFlags(${PROJECT_NAME} "" "")
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ add_custom_command (TARGET ${PROJECT_NAME} COMMAND ${CMAKE_COMMAND} -E copy_directory ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} ${OUTPUT_DIR} )
+ endif(APPLE)
+ else(UNIX) #For Windows
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} Rpcrt4.lib)
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ add_custom_command (TARGET ${PROJECT_NAME} COMMAND ${CMAKE_COMMAND} -E copy_directory ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} ${OUTPUT_DIR}/${XMP_BUILDMODE_DIR} )
+ endif(UNIX)
+endif(STATIC)
+
+#adding Cocoa for Mac
+ADD_FRAMEWORK(Cocoa ${PROJECT_NAME})
+
+
+
diff --git a/samples/build/cmake/ModifyingXMPNewDOM/CMakeLists.txt b/samples/build/cmake/ModifyingXMPNewDOM/CMakeLists.txt
new file mode 100644
index 0000000..20ee052
--- /dev/null
+++ b/samples/build/cmake/ModifyingXMPNewDOM/CMakeLists.txt
@@ -0,0 +1,89 @@
+# =================================================================================================
+# ADOBE SYSTEMS INCORPORATED
+# Copyright 2013 Adobe Systems Incorporated
+# All Rights Reserved
+#
+# NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+# of the Adobe license agreement accompanying it.
+# =================================================================================================
+
+# define minimum cmake version
+cmake_minimum_required(VERSION 3.5.2)
+
+# ==============================================================================
+# Adding Project Name
+# ==============================================================================
+project (ModifyingXMPNewDOM)
+
+# ==============================================================================
+add_definitions(-DENABLE_CPP_DOM_MODEL=1)
+if(STATIC)
+ file (GLOB SOURCE_FILES ${SAMPLE_SOURCE_ROOT}/ModifyingXMPNewDOM.cpp)
+ source_group("Source Files" FILES ${SOURCE_FILES})
+ source_group("Common Files" FILES ${COMMON_FILES})
+ include_directories( ${XMP_ROOT} )
+ include_directories( ${PUBLIC_INCLUDE} )
+ add_executable(${PROJECT_NAME} ${SOURCE_FILES} )
+else(STATIC)
+ file (GLOB SOURCE_FILES ${SAMPLE_SOURCE_ROOT}/ModifyingXMPNewDOM.cpp)
+ file (GLOB CORE_PUBLIC_SOURCE_FILES ${XMP_ROOT}/public/include/XMPCore/source/*.cpp)
+ file (GLOB COMMON_PUBLIC_SOURCE_FILES ${XMP_ROOT}/public/include/XMPCommon/source/*.cpp)
+ source_group("Source Files" FILES ${SOURCE_FILES})
+ source_group("Source Files\\Public\\XMPCore" FILES ${CORE_PUBLIC_SOURCE_FILES})
+ source_group("Source Files\\Public\\XMPCommon" FILES ${COMMON_PUBLIC_SOURCE_FILES})
+ include_directories( ${XMP_ROOT} )
+ include_directories( ${PUBLIC_INCLUDE} )
+ add_executable(${PROJECT_NAME} ${SOURCE_FILES} ${CORE_PUBLIC_SOURCE_FILES} ${COMMON_PUBLIC_SOURCE_FILES})
+endif(STATIC)
+#setting up XMP_BUILDMODE_DIR variable
+SetupInternalBuildDirectory()
+set (BUILD_MODE_LIBNAME "")
+if (USE_BUILDMODE_LIBNAME )
+ set(BUILD_MODE_LIBNAME ${XMP_BUILDMODE_DIR})
+endif()
+#addding XMP libs and setting output path
+if(STATIC)
+ if(UNIX)
+ if(APPLE) #For Mac
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPCORE_LIB}Static${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPFILES_LIB}Static${LIB_EXT} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ else(APPLE) #For Linux
+ SetPlatformLinkFlags(${PROJECT_NAME} "" "")
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ endif(APPLE)
+ else(UNIX) #For Windows
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}Static${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}Static${LIB_EXT} Rpcrt4.lib)
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ endif(UNIX)
+else(STATIC)
+ if(UNIX)
+ if(APPLE) #For Mac
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT}/Versions/A/${XMPCORE_LIB} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT}/Versions/A/${XMPFILES_LIB} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ add_custom_command (TARGET ${PROJECT_NAME} COMMAND ${CMAKE_COMMAND} -E copy_directory ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} ${OUTPUT_DIR}/${XMP_BUILDMODE_DIR} )
+ else(APPLE) #For Linux
+ SetPlatformLinkFlags(${PROJECT_NAME} "" "")
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ add_custom_command (TARGET ${PROJECT_NAME} COMMAND ${CMAKE_COMMAND} -E copy_directory ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} ${OUTPUT_DIR} )
+ endif(APPLE)
+ else(UNIX) #For Windows
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} Rpcrt4.lib)
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ add_custom_command (TARGET ${PROJECT_NAME} COMMAND ${CMAKE_COMMAND} -E copy_directory ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} ${OUTPUT_DIR}/${XMP_BUILDMODE_DIR} )
+ endif(UNIX)
+endif(STATIC)
+
+
+#adding Cocoa for Mac
+ADD_FRAMEWORK(Cocoa ${PROJECT_NAME})
+
+
+
diff --git a/samples/build/cmake/ReadingXMP/CMakeLists.txt b/samples/build/cmake/ReadingXMP/CMakeLists.txt
index a79c8e4..6a96277 100644
--- a/samples/build/cmake/ReadingXMP/CMakeLists.txt
+++ b/samples/build/cmake/ReadingXMP/CMakeLists.txt
@@ -1,57 +1,83 @@
-# =================================================================================================
-# ADOBE SYSTEMS INCORPORATED
-# Copyright 2013 Adobe Systems Incorporated
-# All Rights Reserved
-#
-# NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
-# of the Adobe license agreement accompanying it.
-# =================================================================================================
-
-# define minimum cmake version
-cmake_minimum_required(VERSION 2.8.6)
-
-# ==============================================================================
-# Adding Project Name
-# ==============================================================================
-project (ReadingXMP)
-
-# ==============================================================================
-file (GLOB SOURCE_FILES ${SAMPLE_SOURCE_ROOT}/ReadingXMP.cpp)
-
-
-source_group("Source Files" FILES ${SOURCE_FILES})
-source_group("Common Files" FILES ${COMMON_FILES})
-include_directories( ${XMP_ROOT} )
-include_directories( ${PUBLIC_INCLUDE} )
-
-add_executable(${PROJECT_NAME} ${SOURCE_FILES} )
-
-#setting up XMP_BUILDMODE_DIR variable
-SetupInternalBuildDirectory()
-set (BUILD_MODE_LIBNAME "")
-if (USE_BUILDMODE_LIBNAME )
- set(BUILD_MODE_LIBNAME ${XMP_BUILDMODE_DIR})
-endif()
-#addding XMP libs and setting output path
-if(UNIX)
- if(APPLE) #For Mac
- target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPCORE_LIB}${BUILD_MODE_LIBNAME}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPFILES_LIB}${BUILD_MODE_LIBNAME}${LIB_EXT} )
- set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
- set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
- else(APPLE) #For Linux
- SetPlatformLinkFlags(${PROJECT_NAME} "" "")
- target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} )
- set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} )
- set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
- endif(APPLE)
-else(UNIX) #For Windows
- target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${BUILD_MODE_LIBNAME}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${BUILD_MODE_LIBNAME}${LIB_EXT} Rpcrt4.lib)
- set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
- set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
-endif(UNIX)
-
-#adding Cocoa for Mac
-ADD_FRAMEWORK(Cocoa ${PROJECT_NAME})
-
-
-
+# =================================================================================================
+# ADOBE SYSTEMS INCORPORATED
+# Copyright 2013 Adobe Systems Incorporated
+# All Rights Reserved
+#
+# NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+# of the Adobe license agreement accompanying it.
+# =================================================================================================
+
+# define minimum cmake version
+cmake_minimum_required(VERSION 3.5.2)
+
+# ==============================================================================
+# Adding Project Name
+# ==============================================================================
+project (ReadingXMP)
+
+# ==============================================================================
+if(STATIC)
+add_definitions(-DENABLE_CPP_DOM_MODEL=1)
+else(STATIC)
+add_definitions(-DENABLE_CPP_DOM_MODEL=0)
+endif(STATIC)
+
+ file (GLOB SOURCE_FILES ${SAMPLE_SOURCE_ROOT}/ReadingXMP.cpp)
+ source_group("Source Files" FILES ${SOURCE_FILES})
+ source_group("Common Files" FILES ${COMMON_FILES})
+ include_directories( ${XMP_ROOT} )
+ include_directories( ${PUBLIC_INCLUDE} )
+ add_executable(${PROJECT_NAME} ${SOURCE_FILES} )
+
+
+#setting up XMP_BUILDMODE_DIR variable
+SetupInternalBuildDirectory()
+set (BUILD_MODE_LIBNAME "")
+if (USE_BUILDMODE_LIBNAME )
+ set(BUILD_MODE_LIBNAME ${XMP_BUILDMODE_DIR})
+endif()
+#addding XMP libs and setting output path
+if(STATIC)
+ if(UNIX)
+ if(APPLE) #For Mac
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPCORE_LIB}Static${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPFILES_LIB}Static${LIB_EXT} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ else(APPLE) #For Linux
+ SetPlatformLinkFlags(${PROJECT_NAME} "" "")
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ endif(APPLE)
+ else(UNIX) #For Windows
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}Static${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}Static${LIB_EXT} Rpcrt4.lib)
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ endif(UNIX)
+else(STATIC)
+ if(UNIX)
+ if(APPLE) #For Mac
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT}/Versions/A/${XMPCORE_LIB} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT}/Versions/A/${XMPFILES_LIB} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ add_custom_command (TARGET ${PROJECT_NAME} COMMAND ${CMAKE_COMMAND} -E copy_directory ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} ${OUTPUT_DIR}/${XMP_BUILDMODE_DIR} )
+ else(APPLE) #For Linux
+ SetPlatformLinkFlags(${PROJECT_NAME} "" "")
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ add_custom_command (TARGET ${PROJECT_NAME} COMMAND ${CMAKE_COMMAND} -E copy_directory ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} ${OUTPUT_DIR} )
+ endif(APPLE)
+ else(UNIX) #For Windows
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} Rpcrt4.lib)
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ add_custom_command (TARGET ${PROJECT_NAME} COMMAND ${CMAKE_COMMAND} -E copy_directory ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} ${OUTPUT_DIR}/${XMP_BUILDMODE_DIR} )
+ endif(UNIX)
+endif(STATIC)
+
+#adding Cocoa for Mac
+ADD_FRAMEWORK(Cocoa ${PROJECT_NAME})
+
+
+
diff --git a/samples/build/cmake/ReadingXMPNewDOM/CMakeLists.txt b/samples/build/cmake/ReadingXMPNewDOM/CMakeLists.txt
new file mode 100644
index 0000000..51682cc
--- /dev/null
+++ b/samples/build/cmake/ReadingXMPNewDOM/CMakeLists.txt
@@ -0,0 +1,90 @@
+# =================================================================================================
+# ADOBE SYSTEMS INCORPORATED
+# Copyright 2013 Adobe Systems Incorporated
+# All Rights Reserved
+#
+# NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+# of the Adobe license agreement accompanying it.
+# =================================================================================================
+
+# define minimum cmake version
+cmake_minimum_required(VERSION 3.5.2)
+
+# ==============================================================================
+# Adding Project Name
+# ==============================================================================
+project (ReadingXMPNewDOM)
+
+# ==============================================================================
+
+add_definitions(-DENABLE_CPP_DOM_MODEL=1)
+if(STATIC)
+ file (GLOB SOURCE_FILES ${SAMPLE_SOURCE_ROOT}/ReadingXMPNewDOM.cpp)
+ source_group("Source Files" FILES ${SOURCE_FILES})
+ source_group("Common Files" FILES ${COMMON_FILES})
+ include_directories( ${XMP_ROOT} )
+ include_directories( ${PUBLIC_INCLUDE} )
+ add_executable(${PROJECT_NAME} ${SOURCE_FILES} )
+else(STATIC)
+ file (GLOB SOURCE_FILES ${SAMPLE_SOURCE_ROOT}/ReadingXMPNewDOM.cpp)
+ file (GLOB CORE_PUBLIC_SOURCE_FILES ${XMP_ROOT}/public/include/XMPCore/source/*.cpp)
+ file (GLOB COMMON_PUBLIC_SOURCE_FILES ${XMP_ROOT}/public/include/XMPCommon/source/*.cpp)
+ source_group("Source Files" FILES ${SOURCE_FILES})
+ source_group("Common Files" FILES ${COMMON_FILES})
+ source_group("Source Files\\Public\\XMPCore" FILES ${CORE_PUBLIC_SOURCE_FILES})
+ source_group("Source Files\\Public\\XMPCommon" FILES ${COMMON_PUBLIC_SOURCE_FILES})
+ include_directories( ${XMP_ROOT} )
+ include_directories( ${PUBLIC_INCLUDE} )
+ add_executable(${PROJECT_NAME} ${SOURCE_FILES} ${CORE_PUBLIC_SOURCE_FILES} ${COMMON_PUBLIC_SOURCE_FILES})
+endif(STATIC)
+
+#setting up XMP_BUILDMODE_DIR variable
+SetupInternalBuildDirectory()
+set (BUILD_MODE_LIBNAME "")
+if (USE_BUILDMODE_LIBNAME )
+ set(BUILD_MODE_LIBNAME ${XMP_BUILDMODE_DIR})
+endif()
+#adding XMP libs and setting output path
+if(STATIC)
+ if(UNIX)
+ if(APPLE) #For Mac
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPCORE_LIB}Static${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPFILES_LIB}Static${LIB_EXT} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ else(APPLE) #For Linux
+ SetPlatformLinkFlags(${PROJECT_NAME} "" "")
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ endif(APPLE)
+ else(UNIX) #For Windows
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}Static${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}Static${LIB_EXT} Rpcrt4.lib)
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ endif(UNIX)
+else(STATIC)
+ if(UNIX)
+ if(APPLE) #For Mac
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT}/Versions/A/${XMPCORE_LIB} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT}/Versions/A/${XMPFILES_LIB} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ add_custom_command (TARGET ${PROJECT_NAME} COMMAND ${CMAKE_COMMAND} -E copy_directory ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} ${OUTPUT_DIR}/${XMP_BUILDMODE_DIR} )
+ else(APPLE) #For Linux
+ SetPlatformLinkFlags(${PROJECT_NAME} "" "")
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT})
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ add_custom_command (TARGET ${PROJECT_NAME} COMMAND ${CMAKE_COMMAND} -E copy_directory ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} ${OUTPUT_DIR} )
+ endif(APPLE)
+ else(UNIX) #For Windows
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} Rpcrt4.lib)
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ add_custom_command (TARGET ${PROJECT_NAME} COMMAND ${CMAKE_COMMAND} -E copy_directory ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} ${OUTPUT_DIR}/${XMP_BUILDMODE_DIR} )
+ endif(UNIX)
+endif(STATIC)
+#adding Cocoa for Mac
+ADD_FRAMEWORK(Cocoa ${PROJECT_NAME})
+
+
+
diff --git a/samples/build/cmake/SharedConfig.cmake b/samples/build/cmake/SharedConfigSDK.cmake
index d28184f..14a3fb9 100644
--- a/samples/build/cmake/SharedConfig.cmake
+++ b/samples/build/cmake/SharedConfigSDK.cmake
@@ -1,151 +1,178 @@
-# =================================================================================================
-# ADOBE SYSTEMS INCORPORATED
-# Copyright 2013 Adobe Systems Incorporated
-# All Rights Reserved
-#
-# NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
-# of the Adobe license agreement accompanying it.
-# =================================================================================================
-
-# ==============================================================================
-# define minimum cmake version
-cmake_minimum_required(VERSION 2.8.6)
-
-# ==============================================================================
-# Shared config for XMP Samples
-# ==============================================================================
-
-
-# Platform specific config
-if(UNIX)
- if(APPLE)
- # OSX -------------------------------------------
- set(BUILD_FOLDER "xcode")
- set(XMPCORE_LIB "XMPCoreStatic")
- set(XMPFILES_LIB "XMPFilesStatic")
- set(LIB_EXT ".a")
-
- add_definitions(-DMAC_ENV=1)
- if(CMAKE_CL_64)
- set(CMAKE_OSX_ARCHITECTURES "x86_64" CACHE STRING "Build architectures for OSX" FORCE)
- set(PLATFORM_FOLDER "macintosh/intel_64")
- add_definitions(-DXMP_64=1)
- else(CMAKE_CL_64)
- set(CMAKE_OSX_ARCHITECTURES "i386" CACHE STRING "Build architectures for OSX" FORCE)
- set(PLATFORM_FOLDER "macintosh/intel")
- endif(CMAKE_CL_64)
-
- # set specific SDK and compiler version
- if (NOT DEFINED OSX_DEVELOPER_ROOT)
- set(OSX_DEVELOPER_ROOT "/Applications/Xcode.app/Contents/Developer")
- endif()
- #check is the path to OSX_DEVELOPER_ROOT exists
- if(IS_DIRECTORY ${OSX_DEVELOPER_ROOT})
- set(CMAKE_OSX_SYSROOT "${OSX_DEVELOPER_ROOT}" )
- else()
- message ( FATAL_ERROR "ERROR: The sdk dir set is ${OSX_DEVELOPER_ROOT}, but it does not exist. See readme.txt for resolution")
- endif()
- message ( STATUS "OSX SDK is set to ${CMAKE_OSX_SYSROOT}")
- set(CMAKE_OSX_DEPLOYMENT_TARGET "10.6" )
- set(CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "com.apple.compilers.llvm.clang.1_0")
-
- # set Warning flags
- set(CMAKE_CXX_FLAGS "-Wno-trigraphs -Wnon-virtual-dtor -Woverloaded-virtual -Wmissing-braces -Wparentheses -Wswitch -Wunused-value -Wunknown-pragmas -Wsign-compare -Wreturn-type")
- # set Compiler build flags
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fshort-enums -funsigned-char -mone-byte-bool -fno-common -ffast-math")
- # set config specific flagss
- set(CMAKE_CXX_FLAGS_DEBUG "-O0 -DDEBUG=1 -D_DEBUG=1")
- set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG=1")
-
- set(CMAKE_C_FLAGS "")
- else(APPLE)
-
- # Linux -------------------------------------------
- set(BUILD_FOLDER "gcc4")
- set(XMPCORE_LIB "staticXMPCore")
- set(XMPFILES_LIB "staticXMPFiles")
- set(LIB_EXT ".ar")
-
- add_definitions(-DUNIX_ENV=1 -D__LITTLE_ENDIAN__=1)
-
- if(CMAKE_CL_64)
- add_definitions(-DXMP_64=1)
- set(PLATFORM_FOLDER "i80386linux_x64")
- else()
- set(PLATFORM_FOLDER "i80386linux")
- endif(CMAKE_CL_64)
-
- set(CMAKE_CXX_FLAGS "${CXX_FLAGS} -Wno-ctor-dtor-privacy -fPIC -funsigned-char -fexceptions -Wno-multichar -Wno-implicit")
- set(CMAKE_CXX_FLAGS_DEBUG "-O0 -DDEBUG=1 -D_DEBUG=1")
- set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG=1")
- endif(APPLE)
-else(UNIX)
- if(WIN32)
-
- # Windows -------------------------------------------
- set(BUILD_FOLDER "vc11")
- set(XMPCORE_LIB "XMPCoreStatic")
- set(XMPFILES_LIB "XMPFilesStatic")
- set(LIB_EXT ".lib")
-
- if(CMAKE_CL_64)
- add_definitions(-DXMP_64=1)
- set(PLATFORM_FOLDER "windows_x64")
- else(CMAKE_CL_64)
- set(PLATFORM_FOLDER "windows")
- endif(CMAKE_CL_64)
-
- # config independend preprocessor defines
- add_definitions(-DWIN_ENV=1 -DWIN32=1 -D_CONSOLE -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_WARNINGS=1 -D_SCL_SECURE_NO_WARNINGS=1 -DXMP_StaticBuild=1)
-
- else(WIN32)
- # unknown platform
- MESSAGE(ERROR ": Unknown Platform")
- endif(WIN32)
-endif(UNIX)
-
-include(${XMP_ROOT}/build/ProductConfig.cmake)
-#including the shared configs
-set (COMPONENT XMP)
-include(${COMMON_BUILD_SHARED_DIR}/SharedConfig.cmake)
-
-
-# ==============================================================================
-# Platform independend config
-# ==============================================================================
-
-# generic preprocessor defines
-add_definitions(-DXMP_StaticBuild=1)
-
-
-# Where to look for the XMPCore static library
-set(XMP_LIB_DIR ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER})
-#message (STATUS " XMP_LIB_DIR = ${XMP_LIB_DIR}")
-
-# We only need Debug and Release Targets
-if(CMAKE_CONFIGURATION_TYPES)
- set(CMAKE_CONFIGURATION_TYPES Debug Release)
- set(CMAKE_CONFIGURATION_TYPES "${CMAKE_CONFIGURATION_TYPES}" CACHE STRING
- "Reset the configurations to what we need"
- FORCE)
-endif()
-
-# helper macro for Mac to add frameworks to the build
-macro(ADD_FRAMEWORK fwname appname)
- if(APPLE)
- find_library(FRAMEWORK_${fwname}
- NAMES ${fwname}
- PATHS ${CMAKE_OSX_SYSROOT}/System/Library
- PATH_SUFFIXES Frameworks
- NO_DEFAULT_PATH)
- if( ${FRAMEWORK_${fwname}} STREQUAL FRAMEWORK_${fwname}-NOTFOUND)
- MESSAGE(ERROR ": Framework ${fwname} not found")
- else()
- TARGET_LINK_LIBRARIES(${appname} ${FRAMEWORK_${fwname}})
- #MESSAGE(STATUS "Framework ${fwname} found at ${FRAMEWORK_${fwname}}")
- endif()
- set_target_properties(${appname} PROPERTIES XCODE_ATTRIBUTE_GCC_GENERATE_DEBUGGING_SYMBOLS "YES")
- endif(APPLE)
-endmacro(ADD_FRAMEWORK)
-
-
+# =================================================================================================
+# ADOBE SYSTEMS INCORPORATED
+# Copyright 2013 Adobe Systems Incorporated
+# All Rights Reserved
+#
+# NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+# of the Adobe license agreement accompanying it.
+# =================================================================================================
+
+# ==============================================================================
+# define minimum cmake version
+cmake_minimum_required(VERSION 3.5.2)
+
+# ==============================================================================
+# Shared config for XMP Samples
+# ==============================================================================
+
+
+# Platform specific config
+if(UNIX)
+ if(APPLE)
+ # OSX -------------------------------------------
+ if(STATIC)
+ set(BUILD_FOLDER "xcode")
+ set(XMPCORE_LIB "XMPCore")
+ set(XMPFILES_LIB "XMPFiles")
+ set(LIB_EXT ".a")
+ else(STATIC)
+ set(BUILD_FOLDER "xcode")
+ set(XMPCORE_LIB "XMPCore")
+ set(XMPFILES_LIB "XMPFiles")
+ set(LIB_EXT ".framework")
+ endif(STATIC)
+ add_definitions(-DMAC_ENV=1)
+ if(CMAKE_CL_64)
+ set(CMAKE_OSX_ARCHITECTURES "x86_64" CACHE STRING "Build architectures for OSX" FORCE)
+ set(PLATFORM_FOLDER "macintosh/intel_64")
+ add_definitions(-DXMP_64=1)
+ else(CMAKE_CL_64)
+ set(CMAKE_OSX_ARCHITECTURES "i386" CACHE STRING "Build architectures for OSX" FORCE)
+ set(PLATFORM_FOLDER "macintosh/intel")
+ endif(CMAKE_CL_64)
+ # set specific SDK and compiler version
+ if (NOT DEFINED OSX_DEVELOPER_ROOT)
+ set(OSX_DEVELOPER_ROOT "/Applications/Xcode.app/Contents/Developer")
+ endif()
+ #check is the path to OSX_DEVELOPER_ROOT exists
+ if(IS_DIRECTORY ${OSX_DEVELOPER_ROOT})
+ set(CMAKE_OSX_SYSROOT "${OSX_DEVELOPER_ROOT}" )
+ else()
+ message ( FATAL_ERROR "ERROR: The sdk dir set is ${OSX_DEVELOPER_ROOT}, but it does not exist. See readme.txt for resolution")
+ endif()
+ message ( STATUS "OSX SDK is set to ${CMAKE_OSX_SYSROOT}")
+ set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9")
+ set(CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "com.apple.compilers.llvm.clang.1_0")
+
+ # set Warning flags
+ set(CMAKE_CXX_FLAGS "-Wno-trigraphs -Wnon-virtual-dtor -Woverloaded-virtual -Wmissing-braces -Wparentheses -Wswitch -Wunused-value -Wunknown-pragmas -Wsign-compare -Wreturn-type")
+ # set Compiler build flags
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fshort-enums -funsigned-char -mone-byte-bool -fno-common -ffast-math")
+ # set config specific flagss
+ set(CMAKE_CXX_FLAGS_DEBUG "-O0 -DDEBUG=1 -D_DEBUG=1")
+ set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG=1")
+
+ set(CMAKE_C_FLAGS "")
+ else(APPLE)
+ # Linux -------------------------------------------
+ if(STATIC)
+ set(BUILD_FOLDER "gcc4")
+ set(XMPCORE_LIB "staticXMPCore")
+ set(XMPFILES_LIB "staticXMPFiles")
+ set(LIB_EXT ".ar")
+ else(STATIC)
+ set(BUILD_FOLDER "gcc4")
+ set(XMPCORE_LIB "libXMPCore")
+ set(XMPFILES_LIB "libXMPFiles")
+ set(LIB_EXT ".so")
+ endif(STATIC)
+ add_definitions(-DUNIX_ENV=1 -D__LITTLE_ENDIAN__=1)
+
+ if(CMAKE_CL_64)
+ add_definitions(-DXMP_64=1)
+ set(PLATFORM_FOLDER "i80386linux_x64")
+ else()
+ set(PLATFORM_FOLDER "i80386linux")
+ endif(CMAKE_CL_64)
+
+ set(CMAKE_CXX_FLAGS "${CXX_FLAGS} -Wno-ctor-dtor-privacy -fPIC -funsigned-char -fexceptions -Wno-multichar -Wno-implicit")
+ set(CMAKE_CXX_FLAGS_DEBUG "-O0 -DDEBUG=1 -D_DEBUG=1")
+ set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG=1")
+ endif(APPLE)
+else(UNIX)
+ if(WIN32)
+
+ # Windows -------------------------------------------
+ if(STATIC)
+ set(BUILD_FOLDER "vc14")
+ set(XMPCORE_LIB "XMPCore")
+ set(XMPFILES_LIB "XMPFiles")
+ set(LIB_EXT ".lib")
+ else(STATIC)
+ set(BUILD_FOLDER "vc14")
+ set(XMPCORE_LIB "XMPCore")
+ set(XMPFILES_LIB "XMPFiles")
+ set(LIB_EXT ".lib")
+ endif(STATIC)
+
+ if(CMAKE_CL_64)
+ add_definitions(-DXMP_64=1)
+ set(PLATFORM_FOLDER "windows_x64")
+ else(CMAKE_CL_64)
+ set(PLATFORM_FOLDER "windows")
+ endif(CMAKE_CL_64)
+
+ # config independend preprocessor defines
+ add_definitions(-DWIN_ENV=1 -DWIN32=1 -D_CONSOLE -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_WARNINGS=1 -D_SCL_SECURE_NO_WARNINGS=1 )
+
+ if(STATIC)
+ add_definitions(-DXMP_StaticBuild=1)
+ else(STATIC)
+ add_definitions(-DXMP_StaticBuild=0)
+ endif(STATIC)
+
+ else(WIN32)
+ # unknown platform
+ MESSAGE(ERROR ": Unknown Platform")
+ endif(WIN32)
+endif(UNIX)
+
+include(${XMP_ROOT}/build/ProductConfig.cmake)
+#including the shared configs
+set (COMPONENT XMP)
+include(${COMMON_BUILD_SHARED_DIR}/SharedConfig.cmake)
+
+
+# ==============================================================================
+# Platform independend config
+# ==============================================================================
+
+# generic preprocessor defines
+# add_definitions(-DXMP_StaticBuild=1)
+ if(STATIC)
+ add_definitions(-DXMP_StaticBuild=1)
+ else(STATIC)
+ add_definitions(-DXMP_StaticBuild=0)
+ endif(STATIC)
+
+# Where to look for the XMPCore static library
+set(XMP_LIB_DIR ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER})
+#message (STATUS " XMP_LIB_DIR = ${XMP_LIB_DIR}")
+
+# We only need Debug and Release Targets
+if(CMAKE_CONFIGURATION_TYPES)
+ set(CMAKE_CONFIGURATION_TYPES Debug Release)
+ set(CMAKE_CONFIGURATION_TYPES "${CMAKE_CONFIGURATION_TYPES}" CACHE STRING
+ "Reset the configurations to what we need"
+ FORCE)
+endif()
+
+# helper macro for Mac to add frameworks to the build
+macro(ADD_FRAMEWORK fwname appname)
+ if(APPLE)
+ find_library(FRAMEWORK_${fwname}
+ NAMES ${fwname}
+ PATHS ${CMAKE_OSX_SYSROOT}/System/Library
+ PATH_SUFFIXES Frameworks
+ NO_DEFAULT_PATH)
+ if( ${FRAMEWORK_${fwname}} STREQUAL FRAMEWORK_${fwname}-NOTFOUND)
+ MESSAGE(ERROR ": Framework ${fwname} not found")
+ else()
+ TARGET_LINK_LIBRARIES(${appname} ${FRAMEWORK_${fwname}})
+ #MESSAGE(STATUS "Framework ${fwname} found at ${FRAMEWORK_${fwname}}")
+ endif()
+ set_target_properties(${appname} PROPERTIES XCODE_ATTRIBUTE_GCC_GENERATE_DEBUGGING_SYMBOLS "YES")
+ endif(APPLE)
+endmacro(ADD_FRAMEWORK)
+
+
diff --git a/samples/build/cmake/XMPCommand/CMakeLists.txt b/samples/build/cmake/XMPCommand/CMakeLists.txt
index 9b5cfcc..4ba0d12 100644
--- a/samples/build/cmake/XMPCommand/CMakeLists.txt
+++ b/samples/build/cmake/XMPCommand/CMakeLists.txt
@@ -8,7 +8,7 @@
# =================================================================================================
# define minimum cmake version
-cmake_minimum_required(VERSION 2.8.6)
+cmake_minimum_required(VERSION 3.5.2)
# ==============================================================================
diff --git a/samples/build/cmake/XMPCommand/CMakeListsCommon.txt b/samples/build/cmake/XMPCommand/CMakeListsCommon.txt
index 8eec4fd..105e098 100644
--- a/samples/build/cmake/XMPCommand/CMakeListsCommon.txt
+++ b/samples/build/cmake/XMPCommand/CMakeListsCommon.txt
@@ -1,54 +1,75 @@
-# =================================================================================================
-# ADOBE SYSTEMS INCORPORATED
-# Copyright 2013 Adobe Systems Incorporated
-# All Rights Reserved
-#
-# NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
-# of the Adobe license agreement accompanying it.
-# =================================================================================================
-
-# define minimum cmake version
-cmake_minimum_required(VERSION 2.8.6)
-
-# ==============================================================================
-# Adding Project Name
-# ==============================================================================
-project (XMPCommand)
-
-
-source_group("Source Files" FILES ${SOURCE_FILES})
-source_group("Common Files" FILES ${COMMON_FILES})
-include_directories( ${XMP_ROOT} )
-include_directories( ${PUBLIC_INCLUDE} )
-
-add_executable(${PROJECT_NAME} ${SOURCE_FILES} ${COMMON_FILES})
-
-#setting up XMP_BUILDMODE_DIR variable
-SetupInternalBuildDirectory()
-set (BUILD_MODE_LIBNAME "")
-if (USE_BUILDMODE_LIBNAME )
- set(BUILD_MODE_LIBNAME ${XMP_BUILDMODE_DIR})
-endif()
-#addding XMP libs and setting output path
-if(UNIX)
- if(APPLE) #For Mac
- target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPCORE_LIB}${BUILD_MODE_LIBNAME}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPFILES_LIB}${BUILD_MODE_LIBNAME}${LIB_EXT} )
- set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
- set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
- else(APPLE) #For Linux
- SetPlatformLinkFlags(${PROJECT_NAME} "" "")
- target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} )
- set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} )
- set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
- endif(APPLE)
-else(UNIX) #For Windows
- target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${BUILD_MODE_LIBNAME}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${BUILD_MODE_LIBNAME}${LIB_EXT} Rpcrt4.lib)
- set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
- set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
-endif(UNIX)
-
-#adding Cocoa for Mac
-ADD_FRAMEWORK(Cocoa ${PROJECT_NAME})
-
-
-
+# =================================================================================================
+# ADOBE SYSTEMS INCORPORATED
+# Copyright 2013 Adobe Systems Incorporated
+# All Rights Reserved
+#
+# NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+# of the Adobe license agreement accompanying it.
+# =================================================================================================
+
+# define minimum cmake version
+cmake_minimum_required(VERSION 3.5.2)
+
+# ==============================================================================
+# Adding Project Name
+# ==============================================================================
+project (XMPCommand)
+
+
+source_group("Source Files" FILES ${SOURCE_FILES})
+source_group("Common Files" FILES ${COMMON_FILES})
+include_directories( ${XMP_ROOT} )
+include_directories( ${PUBLIC_INCLUDE} )
+
+add_executable(${PROJECT_NAME} ${SOURCE_FILES} ${COMMON_FILES})
+
+#setting up XMP_BUILDMODE_DIR variable
+SetupInternalBuildDirectory()
+set (BUILD_MODE_LIBNAME "")
+if (USE_BUILDMODE_LIBNAME )
+ set(BUILD_MODE_LIBNAME ${XMP_BUILDMODE_DIR})
+endif()
+#addding XMP libs and setting output path
+if(STATIC)
+ if(UNIX)
+ if(APPLE) #For Mac
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPCORE_LIB}Static${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPFILES_LIB}Static${LIB_EXT} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ else(APPLE) #For Linux
+ SetPlatformLinkFlags(${PROJECT_NAME} "" "")
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ endif(APPLE)
+ else(UNIX) #For Windows
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}Static${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}Static${LIB_EXT} Rpcrt4.lib)
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ endif(UNIX)
+else(STATIC)
+ if(UNIX)
+ if(APPLE) #For Mac
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT}/Versions/A/${XMPCORE_LIB} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT}/Versions/A/${XMPFILES_LIB})
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ add_custom_command (TARGET ${PROJECT_NAME} COMMAND ${CMAKE_COMMAND} -E copy_directory ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} ${OUTPUT_DIR}/${XMP_BUILDMODE_DIR} )
+ else(APPLE) #For Linux
+ SetPlatformLinkFlags(${PROJECT_NAME} "" "")
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ add_custom_command (TARGET ${PROJECT_NAME} COMMAND ${CMAKE_COMMAND} -E copy_directory ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} ${OUTPUT_DIR} )
+ endif(APPLE)
+ else(UNIX) #For Windows
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} Rpcrt4.lib)
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ add_custom_command (TARGET ${PROJECT_NAME} COMMAND ${CMAKE_COMMAND} -E copy_directory ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} ${OUTPUT_DIR}/${XMP_BUILDMODE_DIR} )
+ endif(UNIX)
+endif(STATIC)
+#adding Cocoa for Mac
+ADD_FRAMEWORK(Cocoa ${PROJECT_NAME})
+
+
+
diff --git a/samples/build/cmake/XMPCoreCoverage/CMakeLists.txt b/samples/build/cmake/XMPCoreCoverage/CMakeLists.txt
index 17957fd..71b1773 100644
--- a/samples/build/cmake/XMPCoreCoverage/CMakeLists.txt
+++ b/samples/build/cmake/XMPCoreCoverage/CMakeLists.txt
@@ -1,57 +1,80 @@
-# =================================================================================================
-# ADOBE SYSTEMS INCORPORATED
-# Copyright 2013 Adobe Systems Incorporated
-# All Rights Reserved
-#
-# NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
-# of the Adobe license agreement accompanying it.
-# =================================================================================================
-
-# define minimum cmake version
-cmake_minimum_required(VERSION 2.8.6)
-
-# ==============================================================================
-# Adding Project Name
-# ==============================================================================
-project (XMPCoreCoverage)
-
-# ==============================================================================
-file (GLOB SOURCE_FILES ${SAMPLE_SOURCE_ROOT}/XMPCoreCoverage.cpp)
-
-
-source_group("Source Files" FILES ${SOURCE_FILES})
-source_group("Common Files" FILES ${COMMON_FILES})
-include_directories( ${XMP_ROOT} )
-include_directories( ${PUBLIC_INCLUDE} )
-
-add_executable(${PROJECT_NAME} ${SOURCE_FILES} )
-
-#setting up XMP_BUILDMODE_DIR variable
-SetupInternalBuildDirectory()
-set (BUILD_MODE_LIBNAME "")
-if (USE_BUILDMODE_LIBNAME )
- set(BUILD_MODE_LIBNAME ${XMP_BUILDMODE_DIR})
-endif()
-#addding XMP libs and setting output path
-if(UNIX)
- if(APPLE) #For Mac
- target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPCORE_LIB}${BUILD_MODE_LIBNAME}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPFILES_LIB}${BUILD_MODE_LIBNAME}${LIB_EXT} )
- set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
- set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
- else(APPLE) #For Linux
- SetPlatformLinkFlags(${PROJECT_NAME} "" "")
- target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} )
- set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} )
- set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
- endif(APPLE)
-else(UNIX) #For Windows
- target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${BUILD_MODE_LIBNAME}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${BUILD_MODE_LIBNAME}${LIB_EXT} Rpcrt4.lib)
- set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
- set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
-endif(UNIX)
-
-#adding Cocoa for Mac
-ADD_FRAMEWORK(Cocoa ${PROJECT_NAME})
-
-
-
+# =================================================================================================
+# ADOBE SYSTEMS INCORPORATED
+# Copyright 2013 Adobe Systems Incorporated
+# All Rights Reserved
+#
+# NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+# of the Adobe license agreement accompanying it.
+# =================================================================================================
+
+# define minimum cmake version
+cmake_minimum_required(VERSION 3.5.2)
+
+# ==============================================================================
+# Adding Project Name
+# ==============================================================================
+project (XMPCoreCoverage)
+
+# ==============================================================================
+if(STATIC)
+add_definitions(-DENABLE_CPP_DOM_MODEL=1)
+else(STATIC)
+add_definitions(-DENABLE_CPP_DOM_MODEL=0)
+endif(STATIC)
+
+ file (GLOB SOURCE_FILES ${SAMPLE_SOURCE_ROOT}/XMPCoreCoverage.cpp)
+ source_group("Source Files" FILES ${SOURCE_FILES})
+ source_group("Common Files" FILES ${COMMON_FILES})
+ include_directories( ${XMP_ROOT} )
+ include_directories( ${PUBLIC_INCLUDE} )
+ add_executable(${PROJECT_NAME} ${SOURCE_FILES} )
+#setting up XMP_BUILDMODE_DIR variable
+SetupInternalBuildDirectory()
+set (BUILD_MODE_LIBNAME "")
+if (USE_BUILDMODE_LIBNAME )
+ set(BUILD_MODE_LIBNAME ${XMP_BUILDMODE_DIR})
+endif()
+#addding XMP libs and setting output path
+if(STATIC)
+ if(UNIX)
+ if(APPLE) #For Mac
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPCORE_LIB}Static${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPFILES_LIB}Static${LIB_EXT} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ else(APPLE) #For Linux
+ SetPlatformLinkFlags(${PROJECT_NAME} "" "")
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ endif(APPLE)
+ else(UNIX) #For Windows
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}Static${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}Static${LIB_EXT} Rpcrt4.lib)
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ endif(UNIX)
+else(STATIC)
+ if(UNIX)
+ if(APPLE) #For Mac
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT}/Versions/A/${XMPCORE_LIB} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT}/Versions/A/${XMPFILES_LIB})
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ add_custom_command (TARGET ${PROJECT_NAME} COMMAND ${CMAKE_COMMAND} -E copy_directory ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} ${OUTPUT_DIR}/${XMP_BUILDMODE_DIR} )
+ else(APPLE) #For Linux
+ SetPlatformLinkFlags(${PROJECT_NAME} "" "")
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ add_custom_command (TARGET ${PROJECT_NAME} COMMAND ${CMAKE_COMMAND} -E copy_directory ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} ${OUTPUT_DIR} )
+ endif(APPLE)
+ else(UNIX) #For Windows
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} Rpcrt4.lib)
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ add_custom_command (TARGET ${PROJECT_NAME} COMMAND ${CMAKE_COMMAND} -E copy_directory ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} ${OUTPUT_DIR}/${XMP_BUILDMODE_DIR} )
+ endif(UNIX)
+endif(STATIC)
+#adding Cocoa for Mac
+ADD_FRAMEWORK(Cocoa ${PROJECT_NAME})
+
+
+
diff --git a/samples/build/cmake/XMPFilesCoverage/CMakeLists.txt b/samples/build/cmake/XMPFilesCoverage/CMakeLists.txt
index 11e0145..619d7fd 100644
--- a/samples/build/cmake/XMPFilesCoverage/CMakeLists.txt
+++ b/samples/build/cmake/XMPFilesCoverage/CMakeLists.txt
@@ -1,57 +1,80 @@
-# =================================================================================================
-# ADOBE SYSTEMS INCORPORATED
-# Copyright 2013 Adobe Systems Incorporated
-# All Rights Reserved
-#
-# NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
-# of the Adobe license agreement accompanying it.
-# =================================================================================================
-
-# define minimum cmake version
-cmake_minimum_required(VERSION 2.8.6)
-
-# ==============================================================================
-# Adding Project Name
-# ==============================================================================
-project (XMPFilesCoverage)
-
-# ==============================================================================
-file (GLOB SOURCE_FILES ${SAMPLE_SOURCE_ROOT}/XMPFilesCoverage.cpp)
-
-
-source_group("Source Files" FILES ${SOURCE_FILES})
-source_group("Common Files" FILES ${COMMON_FILES})
-include_directories( ${XMP_ROOT} )
-include_directories( ${PUBLIC_INCLUDE} )
-
-add_executable(${PROJECT_NAME} ${SOURCE_FILES} )
-
-#setting up XMP_BUILDMODE_DIR variable
-SetupInternalBuildDirectory()
-set (BUILD_MODE_LIBNAME "")
-if (USE_BUILDMODE_LIBNAME )
- set(BUILD_MODE_LIBNAME ${XMP_BUILDMODE_DIR})
-endif()
-#addding XMP libs and setting output path
-if(UNIX)
- if(APPLE) #For Mac
- target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPCORE_LIB}${BUILD_MODE_LIBNAME}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPFILES_LIB}${BUILD_MODE_LIBNAME}${LIB_EXT} )
- set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
- set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
- else(APPLE) #For Linux
- SetPlatformLinkFlags(${PROJECT_NAME} "" "")
- target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} )
- set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} )
- set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
- endif(APPLE)
-else(UNIX) #For Windows
- target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${BUILD_MODE_LIBNAME}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${BUILD_MODE_LIBNAME}${LIB_EXT} Rpcrt4.lib)
- set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
- set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
-endif(UNIX)
-
-#adding Cocoa for Mac
-ADD_FRAMEWORK(Cocoa ${PROJECT_NAME})
-
-
-
+# =================================================================================================
+# ADOBE SYSTEMS INCORPORATED
+# Copyright 2013 Adobe Systems Incorporated
+# All Rights Reserved
+#
+# NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+# of the Adobe license agreement accompanying it.
+# =================================================================================================
+
+# define minimum cmake version
+cmake_minimum_required(VERSION 3.5.2)
+
+# ==============================================================================
+# Adding Project Name
+# ==============================================================================
+project (XMPFilesCoverage)
+
+# ==============================================================================
+if(STATIC)
+add_definitions(-DENABLE_CPP_DOM_MODEL=1)
+else(STATIC)
+add_definitions(-DENABLE_CPP_DOM_MODEL=0)
+endif(STATIC)
+
+ file (GLOB SOURCE_FILES ${SAMPLE_SOURCE_ROOT}/XMPFilesCoverage.cpp)
+ source_group("Source Files" FILES ${SOURCE_FILES})
+ source_group("Common Files" FILES ${COMMON_FILES})
+ include_directories( ${XMP_ROOT} )
+ include_directories( ${PUBLIC_INCLUDE} )
+ add_executable(${PROJECT_NAME} ${SOURCE_FILES} )
+#setting up XMP_BUILDMODE_DIR variable
+SetupInternalBuildDirectory()
+set (BUILD_MODE_LIBNAME "")
+if (USE_BUILDMODE_LIBNAME )
+ set(BUILD_MODE_LIBNAME ${XMP_BUILDMODE_DIR})
+endif()
+#addding XMP libs and setting output path
+if(STATIC)
+ if(UNIX)
+ if(APPLE) #For Mac
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPCORE_LIB}Static${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPFILES_LIB}Static${LIB_EXT} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ else(APPLE) #For Linux
+ SetPlatformLinkFlags(${PROJECT_NAME} "" "")
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ endif(APPLE)
+ else(UNIX) #For Windows
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}Static${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}Static${LIB_EXT} Rpcrt4.lib)
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ endif(UNIX)
+else(STATIC)
+ if(UNIX)
+ if(APPLE) #For Mac
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT}/Versions/A/${XMPCORE_LIB} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT}/Versions/A/${XMPFILES_LIB})
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ add_custom_command (TARGET ${PROJECT_NAME} COMMAND ${CMAKE_COMMAND} -E copy_directory ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} ${OUTPUT_DIR}/${XMP_BUILDMODE_DIR} )
+ else(APPLE) #For Linux
+ SetPlatformLinkFlags(${PROJECT_NAME} "" "")
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ add_custom_command (TARGET ${PROJECT_NAME} COMMAND ${CMAKE_COMMAND} -E copy_directory ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} ${OUTPUT_DIR} )
+ endif(APPLE)
+ else(UNIX) #For Windows
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} Rpcrt4.lib)
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ add_custom_command (TARGET ${PROJECT_NAME} COMMAND ${CMAKE_COMMAND} -E copy_directory ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} ${OUTPUT_DIR}/${XMP_BUILDMODE_DIR} )
+ endif(UNIX)
+endif(STATIC)
+#adding Cocoa for Mac
+ADD_FRAMEWORK(Cocoa ${PROJECT_NAME})
+
+
+
diff --git a/samples/build/cmake/XMPIterations/CMakeLists.txt b/samples/build/cmake/XMPIterations/CMakeLists.txt
index 52002f8..b19e501 100644
--- a/samples/build/cmake/XMPIterations/CMakeLists.txt
+++ b/samples/build/cmake/XMPIterations/CMakeLists.txt
@@ -1,57 +1,81 @@
-# =================================================================================================
-# ADOBE SYSTEMS INCORPORATED
-# Copyright 2013 Adobe Systems Incorporated
-# All Rights Reserved
-#
-# NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
-# of the Adobe license agreement accompanying it.
-# =================================================================================================
-
-# define minimum cmake version
-cmake_minimum_required(VERSION 2.8.6)
-
-# ==============================================================================
-# Adding Project Name
-# ==============================================================================
-project (XMPIterations)
-
-# ==============================================================================
-file (GLOB SOURCE_FILES ${SAMPLE_SOURCE_ROOT}/XMPIterations.cpp)
-
-
-source_group("Source Files" FILES ${SOURCE_FILES})
-source_group("Common Files" FILES ${COMMON_FILES})
-include_directories( ${XMP_ROOT} )
-include_directories( ${PUBLIC_INCLUDE} )
-
-add_executable(${PROJECT_NAME} ${SOURCE_FILES} )
-
-#setting up XMP_BUILDMODE_DIR variable
-SetupInternalBuildDirectory()
-set (BUILD_MODE_LIBNAME "")
-if (USE_BUILDMODE_LIBNAME )
- set(BUILD_MODE_LIBNAME ${XMP_BUILDMODE_DIR})
-endif()
-#addding XMP libs and setting output path
-if(UNIX)
- if(APPLE) #For Mac
- target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPCORE_LIB}${BUILD_MODE_LIBNAME}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPFILES_LIB}${BUILD_MODE_LIBNAME}${LIB_EXT} )
- set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
- set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
- else(APPLE) #For Linux
- SetPlatformLinkFlags(${PROJECT_NAME} "" "")
- target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} )
- set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} )
- set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
- endif(APPLE)
-else(UNIX) #For Windows
- target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${BUILD_MODE_LIBNAME}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${BUILD_MODE_LIBNAME}${LIB_EXT} Rpcrt4.lib)
- set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
- set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
-endif(UNIX)
-
-#adding Cocoa for Mac
-ADD_FRAMEWORK(Cocoa ${PROJECT_NAME})
-
-
-
+# =================================================================================================
+# ADOBE SYSTEMS INCORPORATED
+# Copyright 2013 Adobe Systems Incorporated
+# All Rights Reserved
+#
+# NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+# of the Adobe license agreement accompanying it.
+# =================================================================================================
+
+# define minimum cmake version
+cmake_minimum_required(VERSION 3.5.2)
+
+# ==============================================================================
+# Adding Project Name
+# ==============================================================================
+project (XMPIterations)
+
+# ==============================================================================
+if(STATIC)
+add_definitions(-DENABLE_CPP_DOM_MODEL=1)
+else(STATIC)
+add_definitions(-DENABLE_CPP_DOM_MODEL=0)
+endif(STATIC)
+
+ file (GLOB SOURCE_FILES ${SAMPLE_SOURCE_ROOT}/XMPIterations.cpp)
+ source_group("Source Files" FILES ${SOURCE_FILES})
+ source_group("Common Files" FILES ${COMMON_FILES})
+ include_directories( ${XMP_ROOT} )
+ include_directories( ${PUBLIC_INCLUDE} )
+ add_executable(${PROJECT_NAME} ${SOURCE_FILES} )
+
+#setting up XMP_BUILDMODE_DIR variable
+SetupInternalBuildDirectory()
+set (BUILD_MODE_LIBNAME "")
+if (USE_BUILDMODE_LIBNAME )
+ set(BUILD_MODE_LIBNAME ${XMP_BUILDMODE_DIR})
+endif()
+#addding XMP libs and setting output path
+if(STATIC)
+ if(UNIX)
+ if(APPLE) #For Mac
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPCORE_LIB}Static${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/lib${XMPFILES_LIB}Static${LIB_EXT} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ else(APPLE) #For Linux
+ SetPlatformLinkFlags(${PROJECT_NAME} "" "")
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ endif(APPLE)
+ else(UNIX) #For Windows
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}Static${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}Static${LIB_EXT} Rpcrt4.lib)
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ endif(UNIX)
+else(STATIC)
+ if(UNIX)
+ if(APPLE) #For Mac
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT}/Versions/A/${XMPCORE_LIB} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT}/Versions/A/${XMPFILES_LIB})
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ add_custom_command (TARGET ${PROJECT_NAME} COMMAND ${CMAKE_COMMAND} -E copy_directory ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} ${OUTPUT_DIR}/${XMP_BUILDMODE_DIR} )
+ else(APPLE) #For Linux
+ SetPlatformLinkFlags(${PROJECT_NAME} "" "")
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} )
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ add_custom_command (TARGET ${PROJECT_NAME} COMMAND ${CMAKE_COMMAND} -E copy_directory ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} ${OUTPUT_DIR} )
+ endif(APPLE)
+ else(UNIX) #For Windows
+ target_link_libraries(${PROJECT_NAME} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPCORE_LIB}${LIB_EXT} ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR}/${XMPFILES_LIB}${LIB_EXT} Rpcrt4.lib)
+ set(OUTPUT_DIR ${SAMPLE_SOURCE_ROOT}/../target/${PLATFORM_FOLDER}/ )
+ set(EXECUTABLE_OUTPUT_PATH ${OUTPUT_DIR})
+ add_custom_command (TARGET ${PROJECT_NAME} COMMAND ${CMAKE_COMMAND} -E copy_directory ${XMP_ROOT}/public/libraries/${PLATFORM_FOLDER}/${XMP_BUILDMODE_DIR} ${OUTPUT_DIR}/${XMP_BUILDMODE_DIR} )
+ endif(UNIX)
+endif(STATIC)
+#adding Cocoa for Mac
+ADD_FRAMEWORK(Cocoa ${PROJECT_NAME})
+
+
+
diff --git a/samples/build/readme.txt b/samples/build/readme.txt
index 0a77041..98c4aad 100644
--- a/samples/build/readme.txt
+++ b/samples/build/readme.txt
@@ -4,13 +4,13 @@ Windows:
1. Double Click "GenerateSamples_win.bat" or run it through command prompt.
2. Enter the type of project to create
-3. The project files will be created in vc11\windows or vc11\windows_x64 folder
+3. The project files will be created in vc14\windows or vc14\windows_x64 folder
Mac:
1. Run the shell script GenerateSamples_mac.sh.
2. Enter the type of project to create
-3. The project files will be created in xcode\intel or xcode\intel_64 folder
+3. The project files will be created in xcode\intel_64 folder
Linux:
diff --git a/samples/source/AML_AddComponent.cpp b/samples/source/AML_AddComponent.cpp
new file mode 100644
index 0000000..2713340
--- /dev/null
+++ b/samples/source/AML_AddComponent.cpp
@@ -0,0 +1,203 @@
+// =================================================================================================
+// Copyright 2008 Adobe Systems Incorporated
+// All Rights Reserved.
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+/**
+* Tutorial solution for the AssetRelationships.pdf. Creating generic parts, parts, AssetManager
+* for composed document. Demonstrate the use of AddComponent() for composite document and parts.
+*/
+
+#include <cstdio>
+#include <vector>
+#include <string>
+#include <cstring>
+#include <fstream>
+#include <iostream>
+
+// Must be defined to instantiate template classes
+#define TXMP_STRING_TYPE std::string
+
+// Must be defined to give access to XMPFiles
+#define XMP_INCLUDE_XMPFILES 0
+
+#define ENABLE_NEW_DOM_MODEL 1
+
+#include "XMPCore/Interfaces/IXMPDOMImplementationRegistry.h"
+#include "XMPCore/Interfaces/IXMPDOMParser.h"
+#include "XMPCore/Interfaces/IXMPDOMSerializer.h"
+#include "XMPCore/Interfaces/IXMPMetadata.h"
+#include "XMPCore/Interfaces/IXMPCoreObjectFactory.h"
+#include "XMPCore/Interfaces/IXMPSimpleNode.h"
+#include "XMPCore/Interfaces/IXMPStructureNode.h"
+
+// Ensure XMP templates are instantiated
+#include "public/include/XMP.incl_cpp"
+
+// Provide access to the API
+#include "public/include/XMP.hpp"
+
+
+#include "XMPAssetManagement/XMPAssetManagementDefines.h"
+#include "XMPAssetManagement/XMPAssetManagementFwdDeclarations.h"
+#include "XMPCore/Interfaces/IXMPMetadata.h"
+#include "XMPCommon/Interfaces/IUTF8String.h"
+#include "XMPAssetManagement/XMPAssetManagement.h"
+#include "XMPAssetManagement/Interfaces/IAssetUtilities.h"
+#include "XMPAssetManagement/Interfaces/IAssetPart.h"
+#include "XMPAssetManagement/Interfaces/IComposedAssetManager.h"
+#include "XMPAssetManagement/Interfaces/ICompositionRelationship.h"
+#include "XMPCore/Interfaces/IXMPCoreObjectFactory.h"
+#include "XMPAssetManagement/XMPAssetManagementFwdDeclarations.h"
+
+using namespace std;
+
+static string GetStringFromFile(string& filename)
+{
+ string buffer;
+ string line;
+
+ ifstream in(filename);
+ if (in.is_open()) {
+ while (getline(in, line))
+ buffer = buffer + "\n" + line;
+ in.close();
+ }
+ return buffer;
+}
+
+void static SerializeIXMPMetadata(NS_XMPCORE::spIXMPMetadata imetadata, string outfile = "")
+{
+ NS_XMPCORE::spIXMPDOMImplementationRegistry DOMRegistry = NS_XMPCORE::IXMPDOMImplementationRegistry::GetDOMImplementationRegistry();
+ NS_XMPCORE::spIXMPDOMSerializer DOMSerializer = DOMRegistry->CreateSerializer("rdf");
+ std::string targetfilebuffer = DOMSerializer->Serialize(imetadata)->c_str();
+
+ //std::cout << targetfilebuffer << std::endl;
+
+ //write into file
+ if (!outfile.empty()) {
+ ofstream out(outfile);
+ if (out.is_open()) {
+ out << targetfilebuffer;
+ out.close();
+ }
+ }
+}
+
+NS_XMPCORE::spIXMPMetadata static GetIXMPMetadataFromRDF(string filename)
+{
+ string buffer = GetStringFromFile(filename);
+
+ NS_XMPCORE::spIXMPDOMImplementationRegistry DOMRegistry = NS_XMPCORE::IXMPDOMImplementationRegistry::GetDOMImplementationRegistry();
+ NS_XMPCORE::spIXMPDOMParser DOMParser = DOMRegistry->CreateParser("rdf");
+
+ NS_XMPCORE::spIXMPMetadata ixmpmeta = DOMParser->Parse(buffer.c_str());
+
+ return ixmpmeta;
+
+}
+
+
+/**
+* Initializes the toolkit (XMPCore, XMPFiles & XMPAssetManagement and attempts to open a file
+* for reading metadata. Initially an attempt to open the file is done with a handler, if this
+* fails then the file is opened with packet scanning. Once opened, meta is obtained, from meta
+* ixmpmeta (DOM based Metadata object) is get. AssetManagement object is created from composed
+* ixmpmeta and a relationship is added into it. And later verifies for the same from ingredient
+* entry.
+*/
+
+int main ( int argc, const char * argv[] )
+{
+ string composed_file = "AddBasicPart_InSimpleDocument_input_composite_doc.xmp";
+ string component_file = "AddBasicPart_InSimpleDocument_input_component_doc.xmp";
+ string composed_out_file = "AddBasicPart_InSimpleDocument_OUTPUT_composite_doc.xmp";
+
+ if (!SXMPMeta::Initialize())
+ {
+ cout << "Could not initialize toolkit!";
+ return -1;
+ }
+
+ NS_XMPCORE::spIXMPMetadata& component_ixmp_meta = GetIXMPMetadataFromRDF(component_file);
+ NS_XMPCORE::spIXMPMetadata& composed_ixmp_meta = GetIXMPMetadataFromRDF(composed_file);
+ // Create the xmp object and get the xmp data
+ //componentFile.GetXMP(&component_sxmp_meta);
+
+ //Get IXMPMeta from SXMPMetadata
+ //component_ixmp_meta = component_sxmp_meta.GetIXMPMetadata();
+
+ //for both the files, metadata has been obtained, get IXMPMeta from SXMPMeta
+ NS_XMPCORE::pIXMPCoreObjectFactory factoryObj = NS_XMPCORE::IXMPCoreObjectFactory::GetInstance();
+ NS_XMPASSETMANAGEMENT::XMPAM_ClientInitialize();
+
+ //create a standard generic part
+ NS_XMPASSETMANAGEMENT::spIAssetPart composedassetpart = NS_XMPASSETMANAGEMENT::IAssetPart::CreateStandardGenericPart(NS_XMPASSETMANAGEMENT::IAssetPart_v1::kAssetPartComponentMetadata);
+
+ //create standard generic part
+ NS_XMPASSETMANAGEMENT::spIAssetPart componentassetpart = NS_XMPASSETMANAGEMENT::IAssetPart::CreateStandardGenericPart(NS_XMPASSETMANAGEMENT::IAssetPart_v1::kAssetPartComponentContent);
+
+
+ //Check if composed / component is not trackable, make it
+ NS_XMPASSETMANAGEMENT::pIAssetUtilities utilityObj = NS_XMPASSETMANAGEMENT::IAssetUtilities::GetAssetUtilities();
+ if (utilityObj->IsTrackable(composed_ixmp_meta) == false)
+ utilityObj->MakeTrackable(composed_ixmp_meta);
+
+ if (utilityObj->IsTrackable(component_ixmp_meta) == false)
+ utilityObj->MakeTrackable(component_ixmp_meta);
+
+
+ //creating ComposedAssetManager
+ NS_XMPASSETMANAGEMENT::spIComposedAssetManager composedAsset = NS_XMPASSETMANAGEMENT::IComposedAssetManager::CreateComposedAssetManager(composed_ixmp_meta);
+
+ //call AddComponent API (toPart, from ixmpmeta, fromPart) to compose fromPart into composed doc at toPart
+ const NS_XMPCORE::spcIXMPStructureNode & component = component_ixmp_meta;
+
+ NS_XMPCORE::spcIXMPSimpleNode xmpMMInstanceIDNode = dynamic_pointer_cast<const NS_XMPCORE::IXMPSimpleNode>(component->GetNode(kXMP_NS_XMP_MM, "InstanceID"));
+
+ NS_XMPASSETMANAGEMENT::spICompositionRelationship relationshipNode = composedAsset->AddComponent(composedassetpart, component_ixmp_meta, componentassetpart);
+
+ //verify toPart and ComponentPart form Ingredients entry
+ NS_XMPASSETMANAGEMENT::spIXMPArrayNode spComposedIngredientsNode = NS_XMPCORE::dynamic_pointer_cast<NS_XMPCORE::IXMPArrayNode>(composed_ixmp_meta->GetNode(kXMP_NS_XMP_MM, "Ingredients"));
+ NS_XMPCORE::spIXMPStructureNode IngredientEntrynode = NS_XMPCORE::dynamic_pointer_cast<NS_XMPCORE::IXMPStructureNode>(spComposedIngredientsNode->GetNode(1));
+
+ NS_XMPCORE::spIXMPSimpleNode node = NS_XMPCORE::dynamic_pointer_cast<NS_XMPCORE::IXMPSimpleNode>(IngredientEntrynode->GetNode(kXMP_NS_XMP_ResourceRef, "toPart"));
+ std::string toPartString = node->GetValue()->c_str();
+ node = NS_XMPCORE::dynamic_pointer_cast<NS_XMPCORE::IXMPSimpleNode>(IngredientEntrynode->GetNode(kXMP_NS_XMP_ResourceRef, "fromPart"));
+ std::string fromPartString = node->GetValue()->c_str();
+
+ //A relationship is mapping to a single entry in Ingredients. A relationship of composed assest's
+ //toPart, from ixmpmeta & fromPart has been created, add some more property using the relationship.
+ relationshipNode->SetComponentFilePath("/basefolder/subfolder/composedpath");
+ relationshipNode->SetMappingFunctionName("linear");
+ relationshipNode->SetMaskMarkersFlag(NS_XMPASSETMANAGEMENT::ICompositionRelationship::kCompositionMaskMarkersAll);
+
+ //Get the stRef:filePath
+ node = NS_XMPCORE::dynamic_pointer_cast<NS_XMPCORE::IXMPSimpleNode>(IngredientEntrynode->GetNode(kXMP_NS_XMP_ResourceRef, "filePath"));
+ std::string filePathString = node->GetValue()->c_str();
+ cout << "stRef:filePath is " << filePathString.c_str() << endl;
+
+ //get the stRef:partMapping
+ node = NS_XMPCORE::dynamic_pointer_cast<NS_XMPCORE::IXMPSimpleNode>(IngredientEntrynode->GetNode(kXMP_NS_XMP_ResourceRef, "partMapping"));
+ std::string partMappingString = node->GetValue()->c_str();
+ cout << "stRef:partMapping is " << partMappingString.c_str() << endl;
+
+ node = NS_XMPCORE::dynamic_pointer_cast<NS_XMPCORE::IXMPSimpleNode>(IngredientEntrynode->GetNode(kXMP_NS_XMP_ResourceRef, "maskMarkers"));
+ std::string maskMarkersString = node->GetValue()->c_str();
+ cout << "stRef:makMarkers is " << maskMarkersString.c_str() << endl;
+
+ //verify the added node from pantry
+ SerializeIXMPMetadata(composed_ixmp_meta, composed_out_file);
+
+ NS_XMPASSETMANAGEMENT::XMPAM_ClientTerminate();
+
+ // Terminate the toolkit
+ SXMPMeta::Terminate();
+
+
+ return 0;
+}
+
diff --git a/samples/source/AML_AddTimePartComponent.cpp b/samples/source/AML_AddTimePartComponent.cpp
new file mode 100644
index 0000000..dde904e
--- /dev/null
+++ b/samples/source/AML_AddTimePartComponent.cpp
@@ -0,0 +1,191 @@
+// =================================================================================================
+// Copyright 2008 Adobe Systems Incorporated
+// All Rights Reserved.
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+/**
+* Tutorial solution for the AssetRelationships.pdf. Demonstration of time part, how it's created,
+* it's values are set and how it is added into composed document using AddComponent.
+*/
+
+#include <cstdio>
+#include <vector>
+#include <string>
+#include <cstring>
+#include <fstream>
+#include <iostream>
+
+// Must be defined to instantiate template classes
+#define TXMP_STRING_TYPE std::string
+
+// Must be defined to give access to XMPFiles
+#define XMP_INCLUDE_XMPFILES 0
+
+#define ENABLE_NEW_DOM_MODEL 1
+
+#include "XMPCore/Interfaces/IXMPDOMImplementationRegistry.h"
+#include "XMPCore/Interfaces/IXMPDOMParser.h"
+#include "XMPCore/Interfaces/IXMPDOMSerializer.h"
+#include "XMPCore/Interfaces/IXMPMetadata.h"
+#include "XMPCore/Interfaces/IXMPCoreObjectFactory.h"
+#include "XMPCore/Interfaces/IXMPSimpleNode.h"
+#include "XMPCore/Interfaces/IXMPStructureNode.h"
+
+// Ensure XMP templates are instantiated
+#include "public/include/XMP.incl_cpp"
+
+// Provide access to the API
+#include "public/include/XMP.hpp"
+
+#include "XMPAssetManagement/XMPAssetManagementDefines.h"
+#include "XMPAssetManagement/XMPAssetManagementFwdDeclarations.h"
+#include "XMPCore/Interfaces/IXMPMetadata.h"
+#include "XMPCommon/Interfaces/IUTF8String.h"
+#include "XMPAssetManagement/XMPAssetManagement.h"
+#include "XMPAssetManagement/Interfaces/IAssetUtilities.h"
+#include "XMPAssetManagement/Interfaces/IAssetPart.h"
+//time part
+#include "XMPAssetManagement/Interfaces/IAssetTimePart.h"
+
+#include "XMPAssetManagement/Interfaces/IComposedAssetManager.h"
+#include "XMPAssetManagement/Interfaces/ICompositionRelationship.h"
+#include "XMPCore/Interfaces/IXMPCoreObjectFactory.h"
+#include "XMPAssetManagement/XMPAssetManagementFwdDeclarations.h"
+
+using namespace std;
+
+static string GetStringFromFile(string& filename)
+{
+ string buffer;
+ string line;
+
+ ifstream in(filename);
+ if (in.is_open()) {
+ while (getline(in, line))
+ buffer = buffer + "\n" + line;
+ in.close();
+ }
+ return buffer;
+}
+
+void static SerializeIXMPMetadata(NS_XMPCORE::spIXMPMetadata imetadata, string outfile = "")
+{
+ NS_XMPCORE::spIXMPDOMImplementationRegistry DOMRegistry = NS_XMPCORE::IXMPDOMImplementationRegistry::GetDOMImplementationRegistry();
+ NS_XMPCORE::spIXMPDOMSerializer DOMSerializer = DOMRegistry->CreateSerializer("rdf");
+ std::string targetfilebuffer = DOMSerializer->Serialize(imetadata)->c_str();
+
+ //std::cout << targetfilebuffer << std::endl;
+
+ //write into file
+ if (!outfile.empty()) {
+ ofstream out(outfile);
+ if (out.is_open()) {
+ out << targetfilebuffer;
+ out.close();
+ }
+ }
+}
+
+NS_XMPCORE::spIXMPMetadata static GetIXMPMetadataFromRDF(string filename)
+{
+ string buffer = GetStringFromFile(filename);
+
+ NS_XMPCORE::spIXMPDOMImplementationRegistry DOMRegistry = NS_XMPCORE::IXMPDOMImplementationRegistry::GetDOMImplementationRegistry();
+ NS_XMPCORE::spIXMPDOMParser DOMParser = DOMRegistry->CreateParser("rdf");
+
+ NS_XMPCORE::spIXMPMetadata ixmpmeta = DOMParser->Parse(buffer.c_str());
+
+ return ixmpmeta;
+
+}
+
+
+
+/**
+* Initializes the toolkit (XMPCore, XMPFiles & XMPAssetManagement and attempts to open a file
+* for reading metadata. Initially an attempt to open the file is done with a handler, if this
+* fails then the file is opened with packet scanning. Once opened, meta is obtained, from meta
+* ixmpmeta (DOM based Metadata object) is get. A time part is created, it's values are set,
+* and later used in AddComponent for composition.
+*/
+
+int main(int argc, const char * argv[])
+{
+ string composed_file = "AddBasicPart_InSimpleDocument_input_composite_doc.xmp";
+ string component_file = "AddBasicPart_InSimpleDocument_input_component_doc.xmp";
+ string outfilename = "AML_TimePartAddition_Sample_OutPut.xmp";
+
+ if (!SXMPMeta::Initialize())
+ {
+ cout << "Could not initialize toolkit!";
+ return -1;
+ }
+
+ NS_XMPCORE::spIXMPMetadata& composed_ixmp_meta = GetIXMPMetadataFromRDF(composed_file);
+ NS_XMPCORE::spIXMPMetadata& component_ixmp_meta = GetIXMPMetadataFromRDF(component_file);
+
+
+ //for both the files, metadata has been obtained, get IXMPMeta from SXMPMeta
+ NS_XMPCORE::pIXMPCoreObjectFactory factoryObj = NS_XMPCORE::IXMPCoreObjectFactory::GetInstance();
+ NS_XMPASSETMANAGEMENT::XMPAM_ClientInitialize();
+
+ //Check if composed / component is not trackable, make it
+ NS_XMPASSETMANAGEMENT::pIAssetUtilities utilityObj = NS_XMPASSETMANAGEMENT::IAssetUtilities::GetAssetUtilities();
+ if (utilityObj->IsTrackable(composed_ixmp_meta) == false)
+ utilityObj->MakeTrackable(composed_ixmp_meta);
+ if (utilityObj->IsTrackable(component_ixmp_meta) == false)
+ utilityObj->MakeTrackable(component_ixmp_meta);
+
+ //create a time toPart
+ NS_XMPCOMMON::UInt64 toPartStartFrameCount = 0, toPartStartNumerator = 80, toPartStartBaseRate = 20;
+ NS_XMPCOMMON::UInt64 toPartDurationFrameCount = 2000, toPartDurationNumerator = 80, toPartDurationBaseRate = 20;
+ NS_XMPASSETMANAGEMENT::spIAssetTimePart composedassettimepart = NS_XMPASSETMANAGEMENT::IAssetTimePart::CreateStandardTimePart(NS_XMPASSETMANAGEMENT::IAssetPart_v1::kAssetPartComponentMetadata);
+ composedassettimepart->SetFrameCountDuration(toPartStartFrameCount, toPartDurationFrameCount);
+ composedassettimepart->SetFrameRateForCountOfFrames(toPartStartNumerator, toPartStartBaseRate);
+ composedassettimepart->SetFrameRateForStartFrameCount(toPartDurationNumerator, toPartDurationBaseRate);
+
+ //component/fromPart
+ NS_XMPCOMMON::UInt64 fromPartStartFrameCount = 5000, fromPartStartNumerator = 80, fromPartStartBaseRate = 20;
+ NS_XMPCOMMON::UInt64 fromPartDurationFrameCount = 2000, fromPartDurationNumerator = 80, fromPartDurationBaseRate = 20;
+ NS_XMPASSETMANAGEMENT::spIAssetTimePart componentassettimepart = NS_XMPASSETMANAGEMENT::IAssetTimePart::CreateStandardTimePart(NS_XMPASSETMANAGEMENT::IAssetPart_v1::kAssetPartComponentAudio);
+ componentassettimepart->SetFrameCountDuration(fromPartStartFrameCount, fromPartDurationFrameCount);
+ componentassettimepart->SetFrameRateForCountOfFrames(fromPartStartNumerator, fromPartStartBaseRate);
+ componentassettimepart->SetFrameRateForStartFrameCount(fromPartDurationNumerator, fromPartDurationBaseRate);
+
+ //creating ComposedAssetManager
+ NS_XMPASSETMANAGEMENT::spIComposedAssetManager composedAsset = NS_XMPASSETMANAGEMENT::IComposedAssetManager::CreateComposedAssetManager(composed_ixmp_meta);
+
+ //call AddComponent API (toPart, from ixmpmeta, fromPart) to compose fromPart into composed doc at toPart
+ //on calling the AddComponent, following will be entry in ingredient
+ //<stRef:toPart>/metadata/time:0f80s20d2000f80s80
+ //<stRef:fromPart>/content/audio/time:5000f80s20d2000f80s80
+ //for detail time format refer to XMP Specification Part 2 : Additional Properties sector 1.2.6.4 FrameRate
+ NS_XMPASSETMANAGEMENT::spICompositionRelationship relationshipNode = composedAsset->AddComponent(composedassettimepart, component_ixmp_meta, componentassettimepart);
+ //a mapping function
+ relationshipNode->SetMappingFunctionName("linear");
+
+ //assuming there are not ingredient entry, if there is fix the index, or iterate using iterator
+ //verify toPart and ComponentPart form Ingredients entry
+ NS_XMPASSETMANAGEMENT::spIXMPArrayNode spComposedIngredientsNode = NS_XMPCORE::dynamic_pointer_cast<NS_XMPCORE::IXMPArrayNode>(composed_ixmp_meta->GetNode(kXMP_NS_XMP_MM, "Ingredients"));
+ NS_XMPCORE::spIXMPStructureNode IngredientEntrynode = NS_XMPCORE::dynamic_pointer_cast<NS_XMPCORE::IXMPStructureNode>(spComposedIngredientsNode->GetNode(1));
+
+ NS_XMPCORE::spIXMPSimpleNode node = NS_XMPCORE::dynamic_pointer_cast<NS_XMPCORE::IXMPSimpleNode>(IngredientEntrynode->GetNode(kXMP_NS_XMP_ResourceRef, "toPart"));
+ std::string toPartString = node->GetValue()->c_str();
+ node = NS_XMPCORE::dynamic_pointer_cast<NS_XMPCORE::IXMPSimpleNode>(IngredientEntrynode->GetNode(kXMP_NS_XMP_ResourceRef, "fromPart"));
+ std::string fromPartString = node->GetValue()->c_str();
+
+ //verify the added node from pantry
+
+ SerializeIXMPMetadata(composed_ixmp_meta, outfilename);
+
+ NS_XMPASSETMANAGEMENT::XMPAM_ClientTerminate();
+
+ SXMPMeta::Terminate();
+
+
+ return 0;
+}
+
diff --git a/samples/source/AML_SearchAndDeleteComponent.cpp b/samples/source/AML_SearchAndDeleteComponent.cpp
new file mode 100644
index 0000000..6fedcf7
--- /dev/null
+++ b/samples/source/AML_SearchAndDeleteComponent.cpp
@@ -0,0 +1,205 @@
+// =================================================================================================
+// Copyright 2008 Adobe Systems Incorporated
+// All Rights Reserved.
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+/**
+* Tutorial solution for the AssetRelationships.pdf. An AssetManagement Object is created from
+* composed metadata. Then a part is used for deleting all the relationship from composed Asset.
+*/
+
+#include <cstdio>
+#include <vector>
+#include <string>
+#include <cstring>
+#include <fstream>
+#include <iostream>
+
+// Must be defined to instantiate template classes
+#define TXMP_STRING_TYPE std::string
+
+// Must be defined to give access to XMPFiles
+#define XMP_INCLUDE_XMPFILES 0
+
+#define ENABLE_NEW_DOM_MODEL 1
+
+#include "XMPCore/Interfaces/IXMPDOMImplementationRegistry.h"
+#include "XMPCore/Interfaces/IXMPDOMParser.h"
+#include "XMPCore/Interfaces/IXMPDOMSerializer.h"
+#include "XMPCore/Interfaces/IXMPMetadata.h"
+#include "XMPCore/Interfaces/IXMPCoreObjectFactory.h"
+#include "XMPCore/Interfaces/IXMPSimpleNode.h"
+#include "XMPCore/Interfaces/IXMPStructureNode.h"
+
+// Ensure XMP templates are instantiated
+#include "public/include/XMP.incl_cpp"
+
+// Provide access to the API
+#include "public/include/XMP.hpp"
+
+#include "XMPAssetManagement/XMPAssetManagementDefines.h"
+#include "XMPAssetManagement/XMPAssetManagementFwdDeclarations.h"
+#include "XMPCore/Interfaces/IXMPMetadata.h"
+#include "XMPCommon/Interfaces/IUTF8String.h"
+#include "XMPAssetManagement/XMPAssetManagement.h"
+#include "XMPAssetManagement/Interfaces/IAssetUtilities.h"
+#include "XMPAssetManagement/Interfaces/IAssetPart.h"
+#include "XMPAssetManagement/Interfaces/IComposedAssetManager.h"
+#include "XMPAssetManagement/Interfaces/ICompositionRelationship.h"
+#include "XMPCore/Interfaces/IXMPCoreObjectFactory.h"
+#include "XMPAssetManagement/XMPAssetManagementFwdDeclarations.h"
+
+using namespace std;
+
+static string GetStringFromFile(string filename)
+{
+ string buffer;
+ string line;
+
+ ifstream in(filename);
+ if (in.is_open()) {
+ while (getline(in, line))
+ buffer = buffer + "\n" + line;
+ in.close();
+ }
+ else {
+ cout << "Connot open file for converting into string\n";
+ }
+ return buffer;
+}
+
+void static SerializeIXMPMetadata(NS_XMPCORE::spIXMPMetadata imetadata, string outfile = "")
+{
+ NS_XMPCORE::spIXMPDOMImplementationRegistry DOMRegistry = NS_XMPCORE::IXMPDOMImplementationRegistry::GetDOMImplementationRegistry();
+ NS_XMPCORE::spIXMPDOMSerializer DOMSerializer = DOMRegistry->CreateSerializer("rdf");
+ std::string targetfilebuffer = DOMSerializer->Serialize(imetadata)->c_str();
+
+ //std::cout << targetfilebuffer << std::endl;
+
+ //write into file
+ if (!outfile.empty()) {
+ ofstream out(outfile);
+ if (out.is_open()) {
+ out << targetfilebuffer;
+ out.close();
+ }
+ }
+}
+
+NS_XMPCORE::spIXMPMetadata static GetIXMPMetadataFromRDF(string filename)
+{
+ string buffer = GetStringFromFile(filename);
+
+ NS_XMPCORE::spIXMPDOMImplementationRegistry DOMRegistry = NS_XMPCORE::IXMPDOMImplementationRegistry::GetDOMImplementationRegistry();
+ NS_XMPCORE::spIXMPDOMParser DOMParser = DOMRegistry->CreateParser("rdf");
+
+ NS_XMPCORE::spIXMPMetadata ixmpmeta = DOMParser->Parse(buffer.c_str());
+
+ return ixmpmeta;
+
+}
+
+
+/**
+* Initializes the toolkit (XMPCore, XMPFiles & XMPAssetManagement and attempts to open a file
+* for reading metadata. Initially an attempt to open the file is done with a handler, if this
+* fails then the file is opened with packet scanning. Once opened, meta is obtained, from meta
+* ixmpmeta (DOM based Metadata object) is get. AssetManagement object is created from composed
+* ixmpmeta (the above ixmpmetadata). A part is created and used for search & deletion of that
+* part from relationship.
+*/
+
+int main(int argc, const char * argv[])
+{
+ string composed_file = "AML_SearchAndDelete_Sample_Input.xmp";
+ string composed_out_file = "AML_SearchAndDelete_Sample_Output.xmp";
+
+ if (!SXMPMeta::Initialize())
+ {
+ cout << "Could not initialize toolkit!";
+ return -1;
+ }
+ NS_XMPCORE::spIXMPMetadata& composed_ixmp_meta = GetIXMPMetadataFromRDF(composed_file);
+
+
+ //for both the files, metadata has been obtained, get IXMPMeta from SXMPMeta
+ NS_XMPCORE::pIXMPCoreObjectFactory factoryObj = NS_XMPCORE::IXMPCoreObjectFactory::GetInstance();
+ NS_XMPASSETMANAGEMENT::XMPAM_ClientInitialize();
+
+ //Check if composed / component is not trackable, make it
+ NS_XMPASSETMANAGEMENT::pIAssetUtilities utilityObj = NS_XMPASSETMANAGEMENT::IAssetUtilities::GetAssetUtilities();
+ if (utilityObj->IsTrackable(composed_ixmp_meta) == false)
+ utilityObj->MakeTrackable(composed_ixmp_meta);
+
+ //composed/toPart
+ NS_XMPASSETMANAGEMENT::spIAssetPart composedassetpart = NS_XMPASSETMANAGEMENT::IAssetPart::CreateStandardGenericPart(NS_XMPASSETMANAGEMENT::IAssetPart_v1::kAssetPartComponentMetadata);
+
+ //creating ComposedAssetManager
+ NS_XMPASSETMANAGEMENT::spIComposedAssetManager composedAsset = NS_XMPASSETMANAGEMENT::IComposedAssetManager::CreateComposedAssetManager(composed_ixmp_meta);
+
+ //Get list of all relationship and traverse it
+ NS_XMPASSETMANAGEMENT::spcICompositionRelationshipList relationshipNodes = composedAsset->GetAllRelationships();
+ for (NS_XMPASSETMANAGEMENT::cICompositionRelationshipList::iterator it = relationshipNodes->begin(); it != relationshipNodes->end(); ++it) {
+ //get part for part specific data
+ NS_XMPASSETMANAGEMENT::spcIAssetPart assetPart = (*it)->GetComponentPart();
+
+ switch (assetPart->GetType()) {
+ case NS_XMPASSETMANAGEMENT::IAssetPart_v1::kAssetPartTypeGeneric:
+ cout << "Part type is NS_XMPASSETMANAGEMENT::IAssetPart_v1::kAssetPartTypeGeneric";
+ break;
+ case NS_XMPASSETMANAGEMENT::IAssetPart_v1::kAssetPartTypeTime:
+ cout << "Part type is NS_XMPASSETMANAGEMENT::IAssetPart_v1::kAssetPartTypeTime";
+ break;
+ case NS_XMPASSETMANAGEMENT::IAssetPart_v1::kAssetPartTypeArtboard:
+ cout << "Part type is NS_XMPASSETMANAGEMENT::IAssetPart_v1::kAssetPartTypeArtboard";
+ break;
+ case NS_XMPASSETMANAGEMENT::IAssetPart_v1::kAssetPartTypeLayer:
+ cout << "Part type is NS_XMPASSETMANAGEMENT::IAssetPart_v1::kAssetPartTypeLayer";
+ break;
+ case NS_XMPASSETMANAGEMENT::IAssetPart_v1::kAssetPartTypePage:
+ cout << "Part type is NS_XMPASSETMANAGEMENT::IAssetPart_v1::kAssetPartTypePage";
+ break;
+ default:
+ ;
+ }
+ //get other relationship properties
+ NS_XMPCOMMON::spcIUTF8String filepath = (*it)->GetComponentFilePath();
+ }
+
+
+ //call GetRelationships(toPart) to get all relationship which matches a part value, and traverse it
+ relationshipNodes = composedAsset->GetRelationships(composedassetpart);
+ for (NS_XMPASSETMANAGEMENT::cICompositionRelationshipList::iterator it = relationshipNodes->begin(); it != relationshipNodes->end(); ++it) {
+ //get part for part specific data
+ NS_XMPASSETMANAGEMENT::spcIAssetPart assetPart = (*it)->GetComponentPart();
+
+ //get other relationship properties
+ NS_XMPCOMMON::spcIUTF8String filepath = (*it)->GetComponentFilePath();
+ }
+
+ ////// Remove relationship which maches the part
+ composedAsset->RemoveComponents(composedassetpart);
+
+ //Get all the relationship and check verify all the Relationship having the above part must not be present
+ relationshipNodes = composedAsset->GetAllRelationships();
+ for (NS_XMPASSETMANAGEMENT::cICompositionRelationshipList::iterator it = relationshipNodes->begin(); it != relationshipNodes->end(); ++it) {
+ //get part for part specific data
+ NS_XMPASSETMANAGEMENT::spcIAssetPart assetPart = (*it)->GetComponentPart();
+
+ //get other relationship properties
+ NS_XMPCOMMON::spcIUTF8String filepath = (*it)->GetComponentFilePath();
+ }
+
+ //verify the added node from pantry
+ SerializeIXMPMetadata(composed_ixmp_meta, composed_out_file);
+
+ NS_XMPASSETMANAGEMENT::XMPAM_ClientTerminate();
+
+ SXMPMeta::Terminate();
+
+ return 0;
+}
+
diff --git a/samples/source/AML_Trackable.cpp b/samples/source/AML_Trackable.cpp
new file mode 100644
index 0000000..091b468
--- /dev/null
+++ b/samples/source/AML_Trackable.cpp
@@ -0,0 +1,164 @@
+// =================================================================================================
+// Copyright 2008 Adobe Systems Incorporated
+// All Rights Reserved.
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+/**
+* Tutorial solution for the Walkthrough 1 in the XMP Programmers Guide, Opening files and reading XMP.
+* Demonstrates the basic use of the XMPAssetManagement, obtaining XMP from a file and examining it
+* for tracking puropose. A document if trackable only if(xmpMM:OriginalDocumentID, xmpMM:DocumentID
+* and xmpMM:InstanceID) are present
+*/
+
+#include <cstdio>
+#include <vector>
+#include <string>
+#include <cstring>
+#include <fstream>
+#include <iostream>
+
+// Must be defined to instantiate template classes
+#define TXMP_STRING_TYPE std::string
+
+// Must be defined to give access to XMPFiles
+#define XMP_INCLUDE_XMPFILES 0
+
+#define ENABLE_NEW_DOM_MODEL 1
+
+#include "XMPCore/Interfaces/IXMPDOMImplementationRegistry.h"
+#include "XMPCore/Interfaces/IXMPDOMParser.h"
+#include "XMPCore/Interfaces/IXMPDOMSerializer.h"
+#include "XMPCore/Interfaces/IXMPMetadata.h"
+#include "XMPCore/Interfaces/IXMPCoreObjectFactory.h"
+#include "XMPCore/Interfaces/IXMPSimpleNode.h"
+
+// Ensure XMP templates are instantiated
+#include "public/include/XMP.incl_cpp"
+
+// Provide access to the API
+#include "public/include/XMP.hpp"
+
+#include "XMPCore/Interfaces/IXMPMetadata.h"
+#include "XMPCommon/Interfaces/IUTF8String.h"
+#include "XMPAssetManagement/XMPAssetManagementFwdDeclarations.h"
+#include "XMPAssetManagement/XMPAssetManagement.h"
+#include "XMPAssetManagement/Interfaces/IAssetUtilities.h"
+
+using namespace std;
+
+void static SerializeIXMPMetadata(NS_XMPCORE::spIXMPMetadata imetadata, string outfile = "")
+{
+ NS_XMPCORE::spIXMPDOMImplementationRegistry DOMRegistry = NS_XMPCORE::IXMPDOMImplementationRegistry::GetDOMImplementationRegistry();
+ NS_XMPCORE::spIXMPDOMSerializer DOMSerializer = DOMRegistry->CreateSerializer("rdf");
+ std::string targetfilebuffer = DOMSerializer->Serialize(imetadata)->c_str();
+
+ //std::cout << targetfilebuffer << std::endl;
+
+ //write into file
+ if (!outfile.empty()) {
+ ofstream out(outfile);
+ if (out.is_open()) {
+ out << targetfilebuffer;
+ out.close();
+ }
+ }
+}
+
+static string GetStringFromFile(string& filename)
+{
+ string buffer;
+ string line;
+
+ ifstream in(filename);
+ if (in.is_open()) {
+ while (getline(in, line))
+ buffer = buffer + "\n" + line;
+ in.close();
+ }
+ return buffer;
+}
+
+NS_XMPCORE::spIXMPMetadata static GetIXMPMetadataFromRDF(string filename)
+{
+ string buffer = GetStringFromFile(filename);
+
+ NS_XMPCORE::spIXMPDOMImplementationRegistry DOMRegistry = NS_XMPCORE::IXMPDOMImplementationRegistry::GetDOMImplementationRegistry();
+ NS_XMPCORE::spIXMPDOMParser DOMParser = DOMRegistry->CreateParser("rdf");
+
+ NS_XMPCORE::spIXMPMetadata ixmpmeta = DOMParser->Parse(buffer.c_str());
+
+ return ixmpmeta;
+
+}
+
+/**
+* Initializes the toolkit and attempts to open a file for reading metadata. Initially
+* an attempt to open the file is done with a handler, if this fails then the file is opened with
+* packet scanning. Once the file is open, it's metadata is obtained. From which a check for IDs
+* is done, if missing these IDs are embedded.
+*/
+int main ( int argc, const char * argv[] )
+{
+ string input_file = "noids_source_input.xmp";
+ string output_file = "noids_source_output.xmp";
+
+ if (!SXMPMeta::Initialize())
+ {
+ cout << "Could not initialize toolkit!";
+ return -1;
+ }
+ XMP_OptionBits options = 0;
+
+ NS_XMPCORE::spIXMPMetadata ixmpmeta = GetIXMPMetadataFromRDF(input_file);
+
+ NS_XMPCORE::pIXMPCoreObjectFactory factoryObj = NS_XMPCORE::IXMPCoreObjectFactory::GetInstance();
+ NS_XMPASSETMANAGEMENT::XMPAM_ClientInitialize();
+
+ NS_XMPASSETMANAGEMENT::pIAssetUtilities utilityObj = NS_XMPASSETMANAGEMENT::IAssetUtilities::GetAssetUtilities();
+ bool isTrackable = utilityObj->IsTrackable(ixmpmeta);
+
+ if (isTrackable) {
+ cout << "File " << input_file << " is Trackable" << endl;
+
+ NS_XMPCORE::spIXMPSimpleNode node = NS_XMPCORE::dynamic_pointer_cast<NS_XMPCORE::IXMPSimpleNode>(ixmpmeta->GetNode(kXMP_NS_XMP_MM, "OriginalDocumentID"));
+ if (node)
+ cout << "xmpMM:OriginalDocumentID is " << node->GetValue()->c_str() << endl;
+
+ node = NS_XMPCORE::dynamic_pointer_cast<NS_XMPCORE::IXMPSimpleNode>(ixmpmeta->GetNode(kXMP_NS_XMP_MM, "DocumentID"));
+ if (node)
+ cout << "xmpMM:DocumentID is " << node->GetValue()->c_str() << endl;
+
+ node = NS_XMPCORE::dynamic_pointer_cast<NS_XMPCORE::IXMPSimpleNode>(ixmpmeta->GetNode(kXMP_NS_XMP_MM, "InstanceID"));
+ if (node)
+ cout << "xmpMM:InstanceID is " << node->GetValue()->c_str() << endl;
+ }
+ else {
+ bool ret = utilityObj->MakeTrackable(ixmpmeta);
+
+ SerializeIXMPMetadata(ixmpmeta, output_file); //serialize ixmpmeta into o/p file
+
+ if (ret) {
+ NS_XMPCORE::spIXMPSimpleNode node = NS_XMPCORE::dynamic_pointer_cast<NS_XMPCORE::IXMPSimpleNode>(ixmpmeta->GetNode(kXMP_NS_XMP_MM, "OriginalDocumentID"));
+ if (node)
+ cout << "xmpMM:OriginalDocumentID is " << node->GetValue()->c_str() << endl;
+
+ node = NS_XMPCORE::dynamic_pointer_cast<NS_XMPCORE::IXMPSimpleNode>(ixmpmeta->GetNode(kXMP_NS_XMP_MM, "DocumentID"));
+ if (node)
+ cout << "xmpMM:DocumentID is " << node->GetValue()->c_str() << endl;
+
+ node = NS_XMPCORE::dynamic_pointer_cast<NS_XMPCORE::IXMPSimpleNode>(ixmpmeta->GetNode(kXMP_NS_XMP_MM, "InstanceID"));
+ if (node)
+ cout << "xmpMM:InstanceID is " << node->GetValue()->c_str() << endl;
+ }
+ }
+
+ NS_XMPASSETMANAGEMENT::XMPAM_ClientTerminate();
+
+ SXMPMeta::Terminate();
+
+ return 0;
+}
+
diff --git a/samples/source/CustomSchema.cpp b/samples/source/CustomSchema.cpp
index 1cf0566..3e2beec 100644
--- a/samples/source/CustomSchema.cpp
+++ b/samples/source/CustomSchema.cpp
@@ -18,6 +18,8 @@
#include <string>
#include <cstring>
+//#define ENABLE_XMP_CPP_INTERFACE 1
+
// Must be defined to instantiate template classes
#define TXMP_STRING_TYPE std::string
diff --git a/samples/source/CustomSchemaNewDOM.cpp b/samples/source/CustomSchemaNewDOM.cpp
new file mode 100644
index 0000000..f8af1cc
--- /dev/null
+++ b/samples/source/CustomSchemaNewDOM.cpp
@@ -0,0 +1,196 @@
+// =================================================================================================
+// Copyright 2008 Adobe Systems Incorporated
+// All Rights Reserved.
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+/**
+* Tutorial solution for the Walkthrough 3 in the XMP Programmers Guide, Working with custom schema.
+*
+* Demonstrates how to work with a custom schema that has complex properties. It shows how to access
+* and modify properties with complex paths using the path composition utilities from the XMP API
+*/
+#include <cstdio>
+#include <vector>
+#include <string>
+#include <cstring>
+#include <fstream>
+#include <iostream>
+
+// Must be defined to instantiate template classes
+#define TXMP_STRING_TYPE std::string
+
+// Must be defined to give access to XMPFiles
+#define XMP_INCLUDE_XMPFILES 0
+
+#define ENABLE_NEW_DOM_MODEL 1
+
+// Ensure XMP templates are instantiated
+#include "public/include/XMP.incl_cpp"
+
+// Provide access to the API
+#include "public/include/XMP.hpp"
+
+
+#include "XMPCore/Interfaces/IDOMImplementationRegistry.h"
+#include "XMPCore/Interfaces/IDOMParser.h"
+#include "XMPCore/Interfaces/IDOMSerializer.h"
+#include "XMPCore/Interfaces/IMetadata.h"
+#include "XMPCore/Interfaces/ICoreObjectFactory.h"
+#include "XMPCore/Interfaces/ISimpleNode.h"
+#include "XMPCore/Interfaces/IStructureNode.h"
+#include "XMPCore/Interfaces/IArrayNode.h"
+#include "XMPCore/Interfaces/INameSpacePrefixMap.h"
+//#include "XMPCore\Interfaces\IXMPCoreFwdDeclarations.h"
+#include "XMPCommon/Interfaces/IUTF8String.h"
+
+
+// Made up namespace URI. Prefix will be xsdkEdit and xsdkUser
+const XMP_StringPtr kXMP_NS_SDK_EDIT = "http://ns.adobe/meta/sdk/Edit/";
+const XMP_StringPtr kXMP_NS_SDK_USERS = "http://ns.adobe/meta/sdk/User/";
+
+using namespace std;
+
+/**
+* Writes an XMP packet in XML format to a text file
+*
+* rdf - a pointer to the serialized XMP
+* filename - the name of the file to write to
+*/
+void writeRDFToFile(string * rdf, string filename)
+{
+ ofstream outFile;
+ outFile.open(filename.c_str(), ios::out);
+ outFile << *rdf;
+ outFile.close();
+}
+
+/**
+* Registers the namespaces that will be used with the custom schema. Then adds several new
+* properties to that schema. The properties are complex, containing nested arrays and structures.
+*
+* XMPFiles is not used in this sample, hence no external resource is updated with the metadata. The
+* created XMP object is serialized and written as RDF to a text file, the XMP object is dumped to
+* a text file and the registered namespaces are also dumped to a text file.*
+*
+*/
+int main(int argc, const char * argv[])
+{
+
+ if (!SXMPMeta::Initialize())
+ {
+ cout << "Could not initialize toolkit!";
+ return -1;
+ }
+
+ else
+ {
+ try
+ {
+ /*
+ AdobeXMPCore::spINameSpacePrefixMap map = AdobeXMPCore::INameSpacePrefixMap::CreateNameSpacePrefixMap();
+ map->Insert("xsdkEdit", AdobeXMPCommon::npos, kXMP_NS_SDK_EDIT, AdobeXMPCommon::npos);
+ map->Insert("xsdkUser", AdobeXMPCommon::npos, kXMP_NS_SDK_USERS, AdobeXMPCommon::npos);
+ */
+
+ SXMPMeta::RegisterNamespace(kXMP_NS_SDK_EDIT, "xsdkEdit", NULL);
+ SXMPMeta::RegisterNamespace(kXMP_NS_SDK_USERS,"xsdkUser", NULL);
+
+ // Adds a user of the document
+ // 1. Add a new item onto the DocumentUsers array -
+ // 2. Compose a path to the last element of DocumentUsers array
+ // 3. Add a value for the User field of the UserDetails structure
+ // 4. Add a qualifier to the User field. Compose the path and set the value
+ // 5. Add a value for the DUID field of the UserDetails structure
+ // 6. Add a Contact property for the ContactDetails field of the UserDetails structure
+ // 7. Compose a path to the ContactDetails field of the UserDetails structure.
+ // 8. Create the fields of the ContactDetails structure and provide values
+
+ // Create a top Level array node of DocumentUsers.
+ AdobeXMPCore::spIMetadata metaNode = AdobeXMPCore::IMetadata::CreateMetadata();
+ AdobeXMPCore::spIArrayNode DUarrayNode = AdobeXMPCore::IArrayNode::CreateUnorderedArrayNode(kXMP_NS_SDK_EDIT, AdobeXMPCommon::npos, "DocumentUsers", AdobeXMPCommon::npos);
+
+ // Append the UserDetails struct node as child of DocumentUsers array node
+ AdobeXMPCore::spIStructureNode DUstructNode1 = AdobeXMPCore::IStructureNode::CreateStructureNode(kXMP_NS_SDK_EDIT, AdobeXMPCommon::npos, "UserDetails", AdobeXMPCommon::npos);
+ DUarrayNode->AppendNode(DUstructNode1);
+
+ // Create simple nodes with property User and DUID as fields of UserDetails struct node
+ AdobeXMPCore::spINode UDsimpleNode1 = AdobeXMPCore::ISimpleNode::CreateSimpleNode(kXMP_NS_SDK_USERS, AdobeXMPCommon::npos, "User", AdobeXMPCommon::npos, "John Smith", AdobeXMPCommon::npos);
+ AdobeXMPCore::spINode UDsimpleNode2 = AdobeXMPCore::ISimpleNode::CreateSimpleNode(kXMP_NS_SDK_USERS, AdobeXMPCommon::npos, "DUID", AdobeXMPCommon::npos, "2", AdobeXMPCommon::npos);
+
+ // Create a structure ContactDetails as field of UserDetails structure
+ AdobeXMPCore::spIStructureNode UDstructNode3 = AdobeXMPCore::IStructureNode::CreateStructureNode(kXMP_NS_SDK_EDIT, AdobeXMPCommon::npos, "ContactDetails", AdobeXMPCommon::npos);
+
+ // Append all created fields as child of UserDetails struct node
+ DUstructNode1->AppendNode(UDsimpleNode1);
+ DUstructNode1->AppendNode(UDsimpleNode2);
+ DUstructNode1->AppendNode(UDstructNode3);
+
+ // Create an alternative Array E-mail as field of ContactDetails structure
+ AdobeXMPCore::spIArrayNode CDarrayNode1 = AdobeXMPCore::IArrayNode::CreateAlternativeArrayNode(kXMP_NS_SDK_EDIT, AdobeXMPCommon::npos, "E-Mail", AdobeXMPCommon::npos);
+
+ // Create an unordered Array Telephone as field of ContactDetails structure
+ AdobeXMPCore::spIArrayNode CDarrayNode2 = AdobeXMPCore::IArrayNode::CreateUnorderedArrayNode(kXMP_NS_SDK_EDIT, AdobeXMPCommon::npos, "Telephone", AdobeXMPCommon::npos);
+
+ // Create simple node with property BaseLocation
+ AdobeXMPCore::spINode CDsimpleNode3 = AdobeXMPCore::ISimpleNode::CreateSimpleNode(kXMP_NS_SDK_USERS, AdobeXMPCommon::npos, "BaseLocation", AdobeXMPCommon::npos, "London", AdobeXMPCommon::npos);
+
+ // Append all created fields as child of ContactDetails structure
+ UDstructNode3->AppendNode(CDarrayNode1);
+ UDstructNode3->AppendNode(CDarrayNode2);
+ UDstructNode3->AppendNode(CDsimpleNode3);
+
+ //Append items to E-Mail array
+ CDarrayNode1->AppendNode(AdobeXMPCore::ISimpleNode::CreateSimpleNode(kXMP_NS_SDK_USERS, AdobeXMPCommon::npos, "Mail1", AdobeXMPCommon::npos, "js@adobe.xmp.com", AdobeXMPCommon::npos));
+ CDarrayNode1->AppendNode(AdobeXMPCore::ISimpleNode::CreateSimpleNode(kXMP_NS_SDK_USERS, AdobeXMPCommon::npos, "Mail2", AdobeXMPCommon::npos, "js@adobe.home.com", AdobeXMPCommon::npos));
+
+ //Append items to Telephone array
+ CDarrayNode2->AppendNode(AdobeXMPCore::ISimpleNode::CreateSimpleNode(kXMP_NS_SDK_USERS, AdobeXMPCommon::npos, "Phone1", AdobeXMPCommon::npos, "89112", AdobeXMPCommon::npos));
+ CDarrayNode2->AppendNode(AdobeXMPCore::ISimpleNode::CreateSimpleNode(kXMP_NS_SDK_USERS, AdobeXMPCommon::npos, "Phone2", AdobeXMPCommon::npos, "84432", AdobeXMPCommon::npos));
+
+ metaNode->AppendNode(DUarrayNode);
+
+ // Create unordered array DocumentEdit
+ AdobeXMPCore::spIArrayNode DEarrayNode = AdobeXMPCore::IArrayNode::CreateUnorderedArrayNode(kXMP_NS_SDK_EDIT, AdobeXMPCommon::npos, "DocumentEdit", AdobeXMPCommon::npos);
+
+ // Create structure EditDetails as arrayitem of DocumentEdit array
+ AdobeXMPCore::spIStructureNode DEstructNode1 = AdobeXMPCore::IStructureNode::CreateStructureNode(kXMP_NS_SDK_EDIT, AdobeXMPCommon::npos, "EditDetails", AdobeXMPCommon::npos);
+ DEarrayNode->AppendNode(DEstructNode1);
+
+ // Obtaining current date and time
+ XMP_DateTime dt;
+ SXMPUtils::CurrentDateTime(&dt);
+ string date;
+ SXMPUtils::ConvertFromDate(dt, &date);
+
+ // Creating simple node as field of EditDetails structure which will hold the current date
+ AdobeXMPCore::spINode EDsimpleNode1 = AdobeXMPCore::ISimpleNode::CreateSimpleNode(kXMP_NS_SDK_EDIT, AdobeXMPCommon::npos, "EditDate", AdobeXMPCommon::npos, date.c_str(), AdobeXMPCommon::npos);
+
+ // Creating simple node Edittool as field of EditDetails structre
+ AdobeXMPCore::spINode EDsimpleNode2 = AdobeXMPCore::ISimpleNode::CreateSimpleNode(kXMP_NS_SDK_EDIT, AdobeXMPCommon::npos, "EditTool", AdobeXMPCommon::npos, "FrameXML", AdobeXMPCommon::npos);
+
+ // Appending fields as child of EditDetails structure node
+ DEstructNode1->AppendNode(EDsimpleNode1);
+ DEstructNode1->AppendNode(EDsimpleNode2);
+ metaNode->AppendNode(DEarrayNode);
+
+ // Write the RDF to a file
+ cout << "writing RDF to file CS_RDF.txt" << endl;
+ AdobeXMPCore::spIDOMImplementationRegistry DOMRegistry = AdobeXMPCore::IDOMImplementationRegistry::GetDOMImplementationRegistry();
+ AdobeXMPCore::spIDOMSerializer serializer = DOMRegistry->GetSerializer("rdf");
+ std::string serializedPacket = serializer->Serialize(metaNode)->c_str();
+ writeRDFToFile(&serializedPacket, "CS_RDF.txt");
+
+ }
+ catch (XMP_Error & e)
+ {
+ cout << "ERROR: " << e.GetErrMsg();
+ }
+
+ }
+
+ return 0;
+
+}
diff --git a/samples/source/DumpMainXMP.cpp b/samples/source/DumpMainXMP.cpp
index 313665b..abd2604 100644
--- a/samples/source/DumpMainXMP.cpp
+++ b/samples/source/DumpMainXMP.cpp
@@ -21,6 +21,8 @@
#include <stdexcept>
#include <cerrno>
+//#define ENABLE_XMP_CPP_INTERFACE 1;
+
#if XMP_WinBuild
#pragma warning ( disable : 4127 ) // conditional expression is constant
#pragma warning ( disable : 4996 ) // '...' was declared deprecated
diff --git a/samples/source/DumpScannedXMP.cpp b/samples/source/DumpScannedXMP.cpp
index 1acbc82..3df2019 100644
--- a/samples/source/DumpScannedXMP.cpp
+++ b/samples/source/DumpScannedXMP.cpp
@@ -21,6 +21,8 @@
#include <stdexcept>
#include <cerrno>
+//#define ENABLE_XMP_CPP_INTERFACE 1;
+
#if XMP_WinBuild
#pragma warning ( disable : 4127 ) // conditional expression is constant
#pragma warning ( disable : 4996 ) // '...' was declared deprecated
@@ -31,7 +33,11 @@
#include "public/include/XMP.hpp"
#include "public/include/XMP.incl_cpp"
-#include "samples/source/common/XMPScanner.hpp"
+
+#include "XMPFiles/source/FormatSupport/XMPScanner.hpp"
+#include "XMPFiles/source/FormatSupport/XMPScanner.cpp"
+
+
using namespace std;
// =================================================================================================
diff --git a/samples/source/ModifyingXMP.cpp b/samples/source/ModifyingXMP.cpp
index 67d6f35..b334e70 100644
--- a/samples/source/ModifyingXMP.cpp
+++ b/samples/source/ModifyingXMP.cpp
@@ -16,6 +16,8 @@
#include <string>
#include <cstring>
+//#define ENABLE_XMP_CPP_INTERFACE 1;
+
// Must be defined to instantiate template classes
#define TXMP_STRING_TYPE std::string
diff --git a/samples/source/ModifyingXMPNewDOM.cpp b/samples/source/ModifyingXMPNewDOM.cpp
new file mode 100644
index 0000000..23b9ff4
--- /dev/null
+++ b/samples/source/ModifyingXMPNewDOM.cpp
@@ -0,0 +1,429 @@
+// =================================================================================================
+// Copyright 2008 Adobe Systems Incorporated
+// All Rights Reserved.
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+/**
+* Tutorial solution for Walkthrough 2 in the XMP Programmers Guide, Modifying XMP
+* Demonstrates how to open a file for update, and modifying the contained XMP before writing it back to the file.
+*/
+
+#include <cstdio>
+#include <vector>
+#include <string>
+#include <cstring>
+#include <fstream>
+#include <iostream>
+
+// Must be defined to instantiate template classes
+#define TXMP_STRING_TYPE std::string
+
+// Must be defined to give access to XMPFiles
+#define XMP_INCLUDE_XMPFILES 1
+
+#define ENABLE_NEW_DOM_MODEL 1
+
+// Ensure XMP templates are instantiated
+#include "public/include/XMP.incl_cpp"
+
+// Provide access to the API
+#include "public/include/XMP.hpp"
+
+#include "XMPCore/Interfaces/IDOMImplementationRegistry.h"
+#include "XMPCore/Interfaces/IDOMParser.h"
+#include "XMPCore/Interfaces/IDOMSerializer.h"
+#include "XMPCore/Interfaces/IMetadata.h"
+#include "XMPCore/Interfaces/ICoreObjectFactory.h"
+#include "XMPCore/Interfaces/ISimpleNode.h"
+#include "XMPCore/Interfaces/IStructureNode.h"
+#include "XMPCore/Interfaces/IArrayNode.h"
+#include "XMPCore/Interfaces/INameSpacePrefixMap.h"
+#include "XMPCommon/Interfaces/IUTF8String.h"
+#include "XMPCore/Interfaces/INodeIterator.h"
+
+
+using namespace std;
+using namespace AdobeXMPCore;
+
+void GetLocalizedText(spIArrayNode titleNode, const char* specificLang, const char* genericLang, string lang)
+{
+ AdobeXMPCore::spINode currItem;
+ const size_t itemLim = titleNode->ChildCount();
+ size_t itemNum;
+
+ spISimpleNode xmlLangQualifierNode, currItemNode;
+ for (itemNum = 1; itemNum <= itemLim; ++itemNum)
+ {
+ currItem = titleNode->GetNodeAtIndex(itemNum);
+ if (currItem != NULL)
+ {
+ xmlLangQualifierNode = currItem->QualifiersIterator()->GetNode()->ConvertToSimpleNode();
+ if (!strcmp(xmlLangQualifierNode->GetValue()->c_str(), specificLang)) {
+ currItemNode = currItem->ConvertToSimpleNode();
+ cout << "dc:title in" << " " << lang << " " << currItemNode->GetValue()->c_str() << endl;
+ return;
+ }
+ }
+ }
+
+ if (*genericLang != 0)
+ {
+ // Look for the first partial match with the generic language.
+ const size_t genericLen = strlen(genericLang);
+ for (itemNum = 1; itemNum <= itemLim; ++itemNum) {
+ currItem = titleNode->GetNodeAtIndex(itemNum);
+ xmlLangQualifierNode = currItem->QualifiersIterator()->GetNode()->ConvertToSimpleNode();
+ XMP_StringPtr currLang = xmlLangQualifierNode->GetValue()->c_str();
+ const size_t currLangSize = xmlLangQualifierNode->GetValue()->size();
+ if ((currLangSize >= genericLen) &&
+ !strncmp(currLang, genericLang, genericLen) &&
+ ((currLangSize == genericLen) || (currLang[genericLen] == '-')))
+ {
+ currItemNode = currItem->ConvertToSimpleNode();
+ cout << "dc:title in" << " " << lang << " " << currItemNode->GetValue()->c_str() << endl;
+ return;
+ }
+ }
+ }
+
+ // Look for an 'x-default' item.
+ for (itemNum = 1; itemNum <= itemLim; ++itemNum) {
+ currItem = titleNode->GetNodeAtIndex(itemNum);
+ xmlLangQualifierNode = currItem->QualifiersIterator()->GetNode()->ConvertToSimpleNode();
+ if (!strcmp(xmlLangQualifierNode->GetValue()->c_str(), "x-default")) {
+ currItemNode = currItem->ConvertToSimpleNode();
+ cout << "dc:title in" << " " << lang << " " << currItemNode->GetValue()->c_str() << endl;
+ return;
+ }
+ }
+
+ // Everything failed, choose the first item.
+ currItem = titleNode->GetNodeAtIndex(1);
+ currItemNode = currItem->ConvertToSimpleNode();
+ cout << "dc:title in" << " " << lang << " " << currItemNode->GetValue() << endl;
+ return;
+
+}
+
+
+
+/**
+* Display some property values to the console
+*
+* meta - a pointer to the XMP object that will have the properties read
+*/
+void displayPropertyValues(AdobeXMPCore::spIMetadata metaNode)
+{
+ // Read a simple property
+ AdobeXMPCore::spISimpleNode simpleNode = metaNode->GetSimpleNode(kXMP_NS_XMP, AdobeXMPCommon::npos, "CreatorTool", AdobeXMPCommon::npos);
+ if (simpleNode != NULL)
+ {
+ string simpleNodeValue = simpleNode->GetValue()->c_str();
+ cout << "CreatorTool = " << simpleNodeValue << endl;
+ }
+
+ // Get the first element in the dc:creator array
+ AdobeXMPCore::spIArrayNode arrayNode = metaNode->GetArrayNode(kXMP_NS_DC, AdobeXMPCommon::npos, "creator", AdobeXMPCommon::npos);
+ if (arrayNode != NULL)
+ {
+ AdobeXMPCore::spISimpleNode arrayNodeChild = arrayNode->GetSimpleNodeAtIndex(1);
+ if (arrayNodeChild != NULL)
+ {
+ string arrayNodeChildValue = arrayNodeChild->GetValue()->c_str();
+ cout << "dc:creator[1] = " << arrayNodeChildValue << endl;
+ }
+
+ AdobeXMPCore::spISimpleNode arrayNodeChild1 = arrayNode->GetSimpleNodeAtIndex(2);
+ if (arrayNodeChild1 != NULL)
+ {
+ string arrayNodeChildValue1 = arrayNodeChild1->GetValue()->c_str();
+ cout << "dc:creator[2] = " << arrayNodeChildValue1 << endl;
+ }
+ }
+
+ // Get the the entire dc:subject array
+ AdobeXMPCore::spIArrayNode subjectArray = metaNode->GetArrayNode(kXMP_NS_DC, AdobeXMPCommon::npos, "subject", AdobeXMPCommon::npos);
+ if (subjectArray != NULL)
+ {
+ int arraySize = subjectArray->ChildCount();
+ for (int i = 1; i <= arraySize; i++)
+ {
+ AdobeXMPCore::spISimpleNode subjectChild = subjectArray->GetSimpleNodeAtIndex(i);
+ if (subjectChild != NULL)
+ {
+ string propValue = subjectChild->GetValue()->c_str();
+ cout << "dc:subject[" << i << "] = " << propValue << endl;
+ }
+ }
+ }
+ // Get the dc:title for English and French
+ AdobeXMPCore::spIArrayNode titleNode = metaNode->GetArrayNode(kXMP_NS_DC, AdobeXMPCommon::npos, "title", AdobeXMPCommon::npos);
+ if (titleNode != NULL)
+ {
+ GetLocalizedText(titleNode, "en-US", "en", "English");
+ GetLocalizedText(titleNode, "fr-FR", "fr", "French");
+ }
+
+ // Get dc:MetadataDate
+ AdobeXMPCore::spISimpleNode dateNode = metaNode->GetSimpleNode(kXMP_NS_XMP, AdobeXMPCommon::npos, "MetadataDate", AdobeXMPCommon::npos);
+ string date = dateNode->GetValue()->c_str();
+ cout << "meta:MetadataDate = " << date << endl;
+
+
+ // See if the flash struct exists and see if it was used
+ AdobeXMPCore::spIStructureNode flashNode = metaNode->GetStructureNode(kXMP_NS_EXIF, AdobeXMPCommon::npos, "Flash", AdobeXMPCommon::npos);
+ if (flashNode != NULL)
+ {
+ AdobeXMPCore::spISimpleNode field = flashNode->GetSimpleNode(kXMP_NS_EXIF, AdobeXMPCommon::npos, "Fired", AdobeXMPCommon::npos);
+ if (field != NULL)
+ {
+ string fieldValue = field->GetValue()->c_str();
+ cout << "Flash Used = " << fieldValue << endl;
+ }
+ }
+
+
+ cout << "----------------------------------------" << endl;
+}
+
+/**
+* Creates an XMP object from an RDF string. The string is used to
+* to simulate creating and XMP object from multiple input buffers.
+* The last call to ParseFromBuffer has no kXMP_ParseMoreBuffers options,
+* thereby indicating this is the last input buffer.
+*/
+SXMPMeta createXMPFromRDF()
+{
+ const char * rdf =
+ "<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>"
+ "<rdf:Description rdf:about='' xmlns:dc='http://purl.org/dc/elements/1.1/'>"
+ "<dc:subject>"
+ "<rdf:Bag>"
+ "<rdf:li>XMP</rdf:li>"
+ "<rdf:li>SDK</rdf:li>"
+ "<rdf:li>Sample</rdf:li>"
+ "</rdf:Bag>"
+ "</dc:subject>"
+ "<dc:format>image/tiff</dc:format>"
+ "</rdf:Description>"
+ "</rdf:RDF>";
+
+ SXMPMeta meta;
+ // Loop over the rdf string and create the XMP object
+ // 10 characters at a time
+ int i;
+ for (i = 0; i < (long)strlen(rdf) - 10; i += 10)
+ {
+ meta.ParseFromBuffer(&rdf[i], 10, kXMP_ParseMoreBuffers);
+ }
+
+ // The last call has no kXMP_ParseMoreBuffers options, signifying
+ // this is the last input buffer
+ meta.ParseFromBuffer(&rdf[i], (XMP_StringLen)strlen(rdf) - i);
+ return meta;
+
+}
+
+
+/**
+* Writes an XMP packet in XML format to a text file
+*
+* rdf - a pointer to the serialized XMP
+* filename - the name of the file to write to
+*/
+void writeRDFToFile(string * rdf, string filename)
+{
+ ofstream outFile;
+ outFile.open(filename.c_str(), ios::out);
+ outFile << *rdf;
+ outFile.close();
+}
+
+/**
+* Initializes the toolkit and attempts to open a file for updating its metadata.Initially
+* an attempt to open the file is done with a handler, if this fails then the file is opened with
+* packet scanning.Once the file is open several properties are read and displayed in the console.
+*
+* Several properties are then modified, first by checking for their existence and then, if they
+* exist, by updating their values.The updated properties are then displayed again in the console.
+*
+* Next a new XMP object is created from an RDF stream, the properties from the new XMP object are
+* appended to the original XMP object and the updated properties are displayed in the console for
+* last time.
+*
+* The updated XMP object is then serialized in different formats and written to text files.Lastly,
+*the modified XMP is written back to the resource file.
+*/
+
+int main(int argc, const char * argv[])
+{
+ if (argc != 2) // 2 := command and 1 parameter
+ {
+ cout << "usage: ModifyingXMP (filename)" << endl;
+ return 0;
+ }
+
+ string filename = string(argv[1]);
+
+ if (!SXMPMeta::Initialize())
+ {
+ cout << "Could not initialize toolkit!";
+ return -1;
+ }
+
+ XMP_OptionBits options = 0;
+#if UNIX_ENV
+ options |= kXMPFiles_ServerMode;
+#endif
+
+ // Must initialize SXMPFiles before we use it
+ if (SXMPFiles::Initialize(options))
+ {
+ try
+ {
+ // Options to open the file with - open for editing and use a smart handler
+ XMP_OptionBits opts = kXMPFiles_OpenForUpdate | kXMPFiles_OpenUseSmartHandler;
+
+ bool ok;
+ SXMPFiles myFile;
+ std::string status = "";
+
+ // First we try and open the file
+ ok = myFile.OpenFile(filename, kXMP_UnknownFile, opts);
+ if (!ok)
+ {
+ status += "No smart handler available for " + filename + "\n";
+ status += "Trying packet scanning.\n";
+
+ // Now try using packet scanning
+ opts = kXMPFiles_OpenForUpdate | kXMPFiles_OpenUsePacketScanning;
+ ok = myFile.OpenFile(filename, kXMP_UnknownFile, opts);
+ }
+
+ // If the file is open then read get the XMP data
+ if (ok)
+ {
+ cout << status << endl;
+ cout << filename << " is opened successfully" << endl;
+
+ // Create the xmp object and get the xmp data
+ SXMPMeta meta;
+ myFile.GetXMP(&meta);
+ string buffer;
+ meta.SerializeToBuffer(&buffer);
+ AdobeXMPCore::spIDOMImplementationRegistry DOMRegistry = AdobeXMPCore::IDOMImplementationRegistry::GetDOMImplementationRegistry();
+ AdobeXMPCore::spIDOMParser parser = DOMRegistry->GetParser("rdf");
+ AdobeXMPCore::spIMetadata metaNode = parser->Parse(buffer.c_str(), buffer.size());
+
+ // Display some properties in the console
+ displayPropertyValues(metaNode);
+
+ ///////////////////////////////////////////////////
+ // Now modify the XMP
+ AdobeXMPCore::spISimpleNode simpleNode = metaNode->GetSimpleNode(kXMP_NS_XMP, AdobeXMPCommon::npos, "CreatorTool", AdobeXMPCommon::npos);
+
+ if (simpleNode!=NULL)
+ simpleNode->SetValue("Updated By XMP SDK", AdobeXMPCommon::npos);
+
+ // Update the MetadataDate
+ XMP_DateTime dt;
+ SXMPUtils::CurrentDateTime(&dt);
+ string date;
+ SXMPUtils::ConvertFromDate(dt, &date);
+ AdobeXMPCore::spISimpleNode dateNode = metaNode->GetSimpleNode(kXMP_NS_XMP, AdobeXMPCommon::npos, "MetadataDate", AdobeXMPCommon::npos);
+ dateNode->SetValue(date.c_str(), AdobeXMPCommon::npos);
+
+ // Add an item onto the dc:creator array
+ AdobeXMPCore::spIArrayNode arrayNode = metaNode->GetArrayNode(kXMP_NS_DC, AdobeXMPCommon::npos, "creator", AdobeXMPCommon::npos);
+
+ // If the array does not exist, it will be created
+ if (arrayNode == NULL)
+ {
+ AdobeXMPCore::spIArrayNode arrayNode = AdobeXMPCore::IArrayNode::CreateUnorderedArrayNode(kXMP_NS_DC, AdobeXMPCommon::npos, "creator", AdobeXMPCommon::npos);
+ AdobeXMPCore::spINode creatorChild1 = AdobeXMPCore::ISimpleNode::CreateSimpleNode(kXMP_NS_DC, AdobeXMPCommon::npos, "AuthorName", AdobeXMPCommon::npos, "abc", AdobeXMPCommon::npos);
+ AdobeXMPCore::spINode creatorChild2 = AdobeXMPCore::ISimpleNode::CreateSimpleNode(kXMP_NS_DC, AdobeXMPCommon::npos, "AnotherAuthorName", AdobeXMPCommon::npos, "xyz", AdobeXMPCommon::npos);
+ arrayNode->AppendNode(creatorChild1);
+ arrayNode->AppendNode(creatorChild2);
+
+ }
+ // If it exists, then just append the nodes to array node
+ else
+ {
+ AdobeXMPCore::spINode creatorChild1 = AdobeXMPCore::ISimpleNode::CreateSimpleNode(kXMP_NS_DC, AdobeXMPCommon::npos, "AuthorName", AdobeXMPCommon::npos, "abc", AdobeXMPCommon::npos);
+ AdobeXMPCore::spINode creatorChild2 = AdobeXMPCore::ISimpleNode::CreateSimpleNode(kXMP_NS_DC, AdobeXMPCommon::npos, "AnotherAuthorName", AdobeXMPCommon::npos, "xyz", AdobeXMPCommon::npos);
+ arrayNode->AppendNode(creatorChild1);
+ arrayNode->AppendNode(creatorChild2);
+ }
+
+ // Display the properties again to show changes
+ cout << "After update:" << endl;
+ displayPropertyValues(metaNode);
+
+ AdobeXMPCore::spIDOMSerializer serializer = DOMRegistry->GetSerializer("rdf");
+ AdobeXMPCore:: spcINameSpacePrefixMap defaultMap = AdobeXMPCore::INameSpacePrefixMap::GetDefaultNameSpacePrefixMap();
+ std::string serializedPacket = serializer->Serialize(metaNode, defaultMap)->c_str();
+ SXMPMeta fileMeta;
+ fileMeta.ParseFromBuffer(serializedPacket.c_str(), serializedPacket.length());
+
+ // Create a new XMP object from an RDF string
+ SXMPMeta rdfMeta = createXMPFromRDF();
+
+ // Append the newly created properties onto the original XMP object
+ // This will:
+ // a) Add ANY new TOP LEVEL properties in the source (rdfMeta) to the destination (fileMeta)
+ // b) Replace any top level properties in the source with the matching properties from the destination
+ SXMPUtils::ApplyTemplate(&fileMeta, rdfMeta, kXMPTemplate_AddNewProperties | kXMPTemplate_ReplaceExistingProperties | kXMPTemplate_IncludeInternalProperties);
+
+ // Serialize the packet and write the buffer to a file
+ // Let the padding be computed and use the default linefeed and indents without limits
+ string newBuffer;
+ fileMeta.SerializeToBuffer(&newBuffer);
+
+ // Display the properties again to show changes
+ cout << "After Appending Properties:" << endl;
+ AdobeXMPCore::spIMetadata newMetaNode = parser->Parse(newBuffer.c_str(), newBuffer.size());
+ displayPropertyValues(newMetaNode);
+
+ // Write the packet to a file as RDF
+ writeRDFToFile(&newBuffer, filename + "_XMP_RDF.txt");
+
+ // Check we can put the XMP packet back into the file
+ if (myFile.CanPutXMP(fileMeta))
+ {
+ // If so then update the file with the modified XMP
+ myFile.PutXMP(fileMeta);
+ }
+
+ // Close the SXMPFile. This *must* be called. The XMP is not
+ // actually written and the disk file is not closed until this call is made.
+ myFile.CloseFile();
+ }
+ else
+ {
+ cout << "Unable to open " << filename << endl;
+ }
+
+ }
+ catch (XMP_Error & e)
+ {
+ cout << "ERROR: " << e.GetErrMsg() << endl;
+ }
+
+ // Terminate the toolkit
+ SXMPFiles::Terminate();
+ SXMPMeta::Terminate();
+
+ }
+ else
+ {
+ cout << "Could not initialize SXMPFiles.";
+ return -1;
+ }
+
+ return 0;
+}
+
+
diff --git a/samples/source/ReadingXMP.cpp b/samples/source/ReadingXMP.cpp
index bfcf56c..fd6da47 100644
--- a/samples/source/ReadingXMP.cpp
+++ b/samples/source/ReadingXMP.cpp
@@ -17,6 +17,8 @@
#include <string>
#include <cstring>
+//#define ENABLE_XMP_CPP_INTERFACE 1
+
// Must be defined to instantiate template classes
#define TXMP_STRING_TYPE std::string
@@ -34,6 +36,7 @@
using namespace std;
+
/**
* Client defined callback function to dump XMP to a file. In this case an output file stream is used
* to write a buffer, of length bufferSize, to a text file. This callback is called multiple
@@ -180,6 +183,8 @@ int main ( int argc, const char * argv[] )
cout << "Flash Used = " << flash << endl;
}
+
+
// Dump the current xmp object to a file
ofstream dumpFile;
dumpFile.open("XMPDump.txt", ios::out);
diff --git a/samples/source/ReadingXMPNewDOM.cpp b/samples/source/ReadingXMPNewDOM.cpp
new file mode 100644
index 0000000..86b603e
--- /dev/null
+++ b/samples/source/ReadingXMPNewDOM.cpp
@@ -0,0 +1,281 @@
+// =================================================================================================
+// Copyright 2008 Adobe Systems Incorporated
+// All Rights Reserved.
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+/**
+* Tutorial solution for the Walkthrough 1 in the XMP Programmers Guide, Opening files and reading XMP.
+* Demonstrates the basic use of the XMPFiles and XMPCore components, obtaining read-only XMP from a file
+* and examining it through the XMP object.
+*/
+
+#include <cstdio>
+#include <vector>
+#include <string>
+#include <cstring>
+#include <fstream>
+#include <iostream>
+
+//#define ENABLE_XMP_CPP_INTERFACE 1;
+
+// Must be defined to instantiate template classes
+#define TXMP_STRING_TYPE std::string
+
+// Must be defined to give access to XMPFiles
+#define XMP_INCLUDE_XMPFILES 1
+
+#define ENABLE_NEW_DOM_MODEL 1
+
+// Ensure XMP templates are instantiated
+#include "public/include/XMP.incl_cpp"
+
+// Provide access to the API
+#include "public/include/XMP.hpp"
+
+#include "XMPCore/Interfaces/IDOMImplementationRegistry.h"
+#include "XMPCore/Interfaces/IDOMParser.h"
+#include "XMPCore/Interfaces/IDOMSerializer.h"
+#include "XMPCore/Interfaces/IMetadata.h"
+#include "XMPCore/Interfaces/ICoreObjectFactory.h"
+#include "XMPCore/Interfaces/ISimpleNode.h"
+#include "XMPCore/Interfaces/IStructureNode.h"
+#include "XMPCore/Interfaces/IArrayNode.h"
+#include "XMPCore/Interfaces/INameSpacePrefixMap.h"
+#include "XMPCommon/Interfaces/IUTF8String.h"
+#include "XMPCore/Interfaces/INodeIterator.h"
+
+using namespace std;
+using namespace AdobeXMPCore;
+
+
+void GetLocalizedText(spIArrayNode titleNode, const char* specificLang, const char* genericLang, string lang)
+{
+ AdobeXMPCore::spINode currItem;
+ const size_t itemLim = titleNode->ChildCount();
+ size_t itemNum;
+
+ spISimpleNode xmlLangQualifierNode, currItemNode;
+ for (itemNum = 1; itemNum <= itemLim; ++itemNum)
+ {
+ currItem = titleNode->GetNodeAtIndex(itemNum);
+ if (currItem != NULL)
+ {
+ xmlLangQualifierNode = currItem->QualifiersIterator()->GetNode()->ConvertToSimpleNode();
+ if (!strcmp(xmlLangQualifierNode->GetValue()->c_str(), specificLang)) {
+ currItemNode = currItem->ConvertToSimpleNode();
+ cout << "dc:title in" <<" " << lang <<" " << currItemNode->GetValue()->c_str() << endl;
+ return;
+ }
+ }
+ }
+
+ if (*genericLang != 0)
+ {
+ // Look for the first partial match with the generic language.
+ const size_t genericLen = strlen(genericLang);
+ for (itemNum = 1; itemNum <= itemLim; ++itemNum) {
+ currItem = titleNode->GetNodeAtIndex(itemNum);
+ xmlLangQualifierNode = currItem->QualifiersIterator()->GetNode()->ConvertToSimpleNode();
+ XMP_StringPtr currLang = xmlLangQualifierNode->GetValue()->c_str();
+ const size_t currLangSize = xmlLangQualifierNode->GetValue()->size();
+ if ((currLangSize >= genericLen) &&
+ !strncmp(currLang, genericLang, genericLen) &&
+ ((currLangSize == genericLen) || (currLang[genericLen] == '-')))
+ {
+ currItemNode = currItem->ConvertToSimpleNode();
+ cout << "dc:title in" <<" " << lang << " " << currItemNode->GetValue()->c_str() << endl;
+ return;
+ }
+ }
+ }
+
+ // Look for an 'x-default' item.
+ for (itemNum = 1; itemNum <= itemLim; ++itemNum) {
+ currItem = titleNode->GetNodeAtIndex(itemNum);
+ xmlLangQualifierNode = currItem->QualifiersIterator()->GetNode()->ConvertToSimpleNode();
+ if (!strcmp(xmlLangQualifierNode->GetValue()->c_str(), "x-default")) {
+ currItemNode = currItem->ConvertToSimpleNode();
+ cout << "dc:title in" <<" " << lang <<" " << currItemNode->GetValue()->c_str() << endl;
+ return;
+ }
+ }
+
+ // Everything failed, choose the first item.
+ currItem = titleNode->GetNodeAtIndex(1);
+ currItemNode = currItem->ConvertToSimpleNode();
+ cout << "dc:title in" <<" " <<lang << " "<< currItemNode->GetValue() << endl;
+ return;
+
+}
+
+
+
+void writeRDFToFile(string * rdf, string filename)
+{
+ ofstream outFile;
+ outFile.open(filename.c_str(), ios::out);
+ outFile << *rdf;
+ outFile.close();
+}
+
+
+/**
+* Initializes the toolkit and attempts to open a file for reading metadata.Initially
+* an attempt to open the file is done with a handler, if this fails then the file is opened with
+* packet scanning.Once the file is open several properties are read and displayed in the console.
+* The XMP object is then dumped to a text file and the resource file is closed.
+*/
+
+int main(int argc, const char * argv[])
+{
+
+ if (argc != 2) // 2 := command and 1 parameter
+ {
+ cout << "usage: ReadingXMP (filename)" << endl;
+ return 0;
+ }
+
+ string filename = string(argv[1]);
+
+ if (!SXMPMeta::Initialize())
+ {
+ cout << "Could not initialize toolkit!";
+ return -1;
+ }
+ XMP_OptionBits options = 0;
+#if UNIX_ENV
+ options |= kXMPFiles_ServerMode;
+#endif
+ // Must initialize SXMPFiles before we use it
+ if (!SXMPFiles::Initialize(options))
+ {
+ cout << "Could not initialize SXMPFiles.";
+ return -1;
+ }
+
+ try
+ {
+ // Options to open the file with - read only and use a file handler
+ XMP_OptionBits opts = kXMPFiles_OpenForRead | kXMPFiles_OpenUseSmartHandler;
+
+ bool ok;
+ SXMPFiles myFile;
+ std::string status = "";
+
+ // First we try and open the file
+ ok = myFile.OpenFile(filename, kXMP_UnknownFile, opts);
+ if (!ok)
+ {
+ status += "No smart handler available for " + filename + "\n";
+ status += "Trying packet scanning.\n";
+
+ // Now try using packet scanning
+ opts = kXMPFiles_OpenForUpdate | kXMPFiles_OpenUsePacketScanning;
+ ok = myFile.OpenFile(filename, kXMP_UnknownFile, opts);
+ }
+
+ // If the file is open then read the metadata
+ if (ok)
+ {
+
+ cout << status << endl;
+ cout << filename << " is opened successfully" << endl;
+ // Create the xmp object and get the xmp data
+ SXMPMeta meta;
+ myFile.GetXMP(&meta);
+ string buffer;
+ meta.SerializeToBuffer(&buffer);
+ writeRDFToFile(&buffer, "Image1RDF.txt");
+ AdobeXMPCore::spIDOMImplementationRegistry DOMRegistry = AdobeXMPCore::IDOMImplementationRegistry::GetDOMImplementationRegistry();
+ AdobeXMPCore:: spIDOMParser parser = DOMRegistry->GetParser("rdf");
+ AdobeXMPCore ::spIMetadata metaNode = parser->Parse(buffer.c_str(), buffer.size());
+
+ // Read a simple property
+ AdobeXMPCore::spISimpleNode simpleNode = metaNode->GetSimpleNode(kXMP_NS_XMP, AdobeXMPCommon::npos, "CreatorTool", AdobeXMPCommon::npos);
+ if (simpleNode != NULL)
+ {
+ string simpleNodeValue = simpleNode->GetValue()->c_str();
+ cout << "CreatorTool = " << simpleNodeValue << endl;
+ }
+
+ // Get the first element in the dc:creator array
+ AdobeXMPCore::spIArrayNode arrayNode = metaNode->GetArrayNode(kXMP_NS_DC, AdobeXMPCommon::npos, "creator", AdobeXMPCommon::npos);
+ if (arrayNode != NULL)
+ {
+ AdobeXMPCore::spISimpleNode arrayNodeChild = arrayNode->GetSimpleNodeAtIndex(1);
+ if (arrayNodeChild != NULL)
+ {
+ string arrayNodeChildValue = arrayNodeChild->GetValue()->c_str();
+ cout << "dc:creator = " << arrayNodeChildValue << endl;
+ }
+ }
+
+ // Get the the entire dc:subject array
+ AdobeXMPCore::spIArrayNode subjectArray = metaNode->GetArrayNode(kXMP_NS_DC, AdobeXMPCommon::npos, "subject", AdobeXMPCommon::npos);
+ if (subjectArray != NULL)
+ {
+ int arraySize = subjectArray->ChildCount();
+ for (int i = 1; i <= arraySize; i++)
+ {
+ AdobeXMPCore::spISimpleNode subjectChild = subjectArray->GetSimpleNodeAtIndex(i);
+ if (subjectChild != NULL)
+ {
+ string propValue = subjectChild->GetValue()->c_str();
+ cout << "dc:subject[" << i << "] = " << propValue << endl;
+ }
+ }
+ }
+
+ // Get the dc:title for English and French
+
+
+ AdobeXMPCore::spIArrayNode titleNode = metaNode->GetArrayNode(kXMP_NS_DC, AdobeXMPCommon::npos, "title", AdobeXMPCommon::npos);
+ if (titleNode != NULL)
+ {
+ GetLocalizedText(titleNode, "en-US", "en", "English");
+ GetLocalizedText(titleNode, "fr-FR", "fr", "French");
+ }
+
+
+
+ // Get dc:MetadataDate
+ AdobeXMPCore::spISimpleNode dateNode = metaNode->GetSimpleNode(kXMP_NS_XMP, AdobeXMPCommon::npos, "MetadataDate", AdobeXMPCommon::npos);
+ string date = dateNode->GetValue()->c_str();
+ cout << "meta:MetadataDate = " << date << endl;
+
+
+ // See if the flash struct exists and see if it was used
+ AdobeXMPCore::spIStructureNode flashNode = metaNode->GetStructureNode(kXMP_NS_EXIF, AdobeXMPCommon::npos, "Flash", AdobeXMPCommon::npos);
+ if (flashNode != NULL)
+ {
+ AdobeXMPCore::spISimpleNode field = flashNode->GetSimpleNode(kXMP_NS_EXIF, AdobeXMPCommon::npos, "Fired", AdobeXMPCommon::npos);
+ if (field != NULL)
+ {
+ string fieldValue = field->GetValue()->c_str();
+ cout << "Flash Used = " << fieldValue << endl;
+ }
+ }
+ // Close the SXMPFile. The resource file is already closed if it was
+ // opened as read only but this call must still be made.
+ myFile.CloseFile();
+
+ }
+ else
+ {
+ cout << "Unable to open " << filename << endl;
+ }
+ }
+ catch (XMP_Error & e)
+ {
+ cout << "ERROR: " << e.GetErrMsg() << endl;
+ }
+
+ // Terminate the toolkit
+ SXMPFiles::Terminate();
+ SXMPMeta::Terminate();
+
+ return 0;
+}
diff --git a/samples/source/UnicodeCorrectness.cpp b/samples/source/UnicodeCorrectness.cpp
index 56f121a..2864358 100644
--- a/samples/source/UnicodeCorrectness.cpp
+++ b/samples/source/UnicodeCorrectness.cpp
@@ -10,6 +10,8 @@
#include <cerrno>
#include <stdexcept>
+//#define ENABLE_XMP_CPP_INTERFACE 1;
+
using namespace std;
#if WIN_ENV
diff --git a/samples/source/UnicodeParseSerialize.cpp b/samples/source/UnicodeParseSerialize.cpp
index c3c9865..5f0d463 100644
--- a/samples/source/UnicodeParseSerialize.cpp
+++ b/samples/source/UnicodeParseSerialize.cpp
@@ -27,6 +27,8 @@
#include "source/UnicodeConversions.hpp"
#include "source/UnicodeConversions.cpp"
+//#define ENABLE_XMP_CPP_INTERFACE 1;
+
using namespace std;
#if WIN_ENV
diff --git a/samples/source/UnicodePerformance.cpp b/samples/source/UnicodePerformance.cpp
index d11185c..dac4ecd 100644
--- a/samples/source/UnicodePerformance.cpp
+++ b/samples/source/UnicodePerformance.cpp
@@ -11,6 +11,8 @@
#include <cerrno>
#include <stdexcept>
+//#define ENABLE_XMP_CPP_INTERFACE 1;
+
using namespace std;
#if WIN_ENV
diff --git a/samples/source/XMPCoreCoverage.cpp b/samples/source/XMPCoreCoverage.cpp
index fd1e65a..e1dc30c 100644
--- a/samples/source/XMPCoreCoverage.cpp
+++ b/samples/source/XMPCoreCoverage.cpp
@@ -27,6 +27,8 @@
#include "public/include/XMP.hpp"
#include "public/include/XMP.incl_cpp"
+//#define ENABLE_XMP_CPP_INTERFACE 1;
+
using namespace std;
#if WIN_ENV
diff --git a/samples/source/XMPFilesCoverage.cpp b/samples/source/XMPFilesCoverage.cpp
index 326b19a..c482694 100644
--- a/samples/source/XMPFilesCoverage.cpp
+++ b/samples/source/XMPFilesCoverage.cpp
@@ -24,6 +24,8 @@
#include "public/include/XMP.hpp"
#include "public/include/XMP.incl_cpp"
+//#define ENABLE_XMP_CPP_INTERFACE 1;
+
using namespace std;
#if WIN_ENV
diff --git a/samples/source/XMPIterations.cpp b/samples/source/XMPIterations.cpp
index f93b7d7..7a02a24 100644
--- a/samples/source/XMPIterations.cpp
+++ b/samples/source/XMPIterations.cpp
@@ -15,6 +15,8 @@
#include <string>
#include <cstring>
+//#define ENABLE_XMP_CPP_INTERFACE 1;
+
// Must be defined to instantiate template classes
#define TXMP_STRING_TYPE std::string
diff --git a/samples/source/common/DumpFile.cpp b/samples/source/common/DumpFile.cpp
index 32dd253..4d1e59f 100644
--- a/samples/source/common/DumpFile.cpp
+++ b/samples/source/common/DumpFile.cpp
@@ -28,7 +28,11 @@
//
// DumpFile does depend on XMPCore and the packetscanner from XMPFiles.
+
#include <stdarg.h>
+
+#include "source/ExpatAdapter.hpp"
+
#include "samples/source/common/globals.h"
#include "samples/source/common/DumpFile.h"
#include "samples/source/common/LargeFileAccess.hpp"
@@ -297,12 +301,12 @@ struct JpegMarker {
};
typedef std::vector<JpegMarker> JpegMarkers;
-static void DumpTIFF ( XMP_Uns8 * tiffContent, XMP_Uns32 tiffLen, XMP_Uns32 fileOffset, const char * label, std::string path );
+static void DumpTIFF ( XMP_Uns8 * tiffContent, XMP_Uns32 tiffLen, XMP_Uns32 fileOffset, const char * label, std::string path, bool isHeaderAbsent = false );
static void DumpTIFF ( const JpegMarkers& psirMarkers, XMP_Uns8 * dataStart, const char * label, std::string path );
static void DumpIPTC ( XMP_Uns8 * iptcOrigin, XMP_Uns32 iptcLen, XMP_Uns32 fileOffset, const char * label );
static void DumpImageResources ( XMP_Uns8 * psirOrigin, XMP_Uns32 psirLen, XMP_Uns32 fileOffset, const char * label );
static void DumpImageResources ( const JpegMarkers& psirMarkers, XMP_Uns8 * dataStart, const char * label );
-static void DumpIFDChain ( XMP_Uns8 * startPtr, XMP_Uns8 * endPtr, XMP_Uns8 * tiffContent, XMP_Uns32 fileOffset, const char * label, std::string path );
+static void DumpIFDChain ( XMP_Uns8 * startPtr, XMP_Uns8 * endPtr, XMP_Uns8 * tiffContent, XMP_Uns32 fileOffset, const char * label, std::string path, bool isHeaderAbsent = false );
// =================================================================================================
@@ -416,10 +420,11 @@ enum {
kTIFF_SRational = 10,
kTIFF_Float = 11,
kTIFF_Double = 12,
- kTIFF_TypeEnd
+ kTIFF_IFD = 13,
+ kTIFF_TypeEnd = kTIFF_IFD
};
-static const int sTIFF_TypeSizes[] = { 0, 1, 1, 2, 4, 8, 1, 1, 2, 4, 8, 4, 8 };
+static const int sTIFF_TypeSizes[] = { 0, 1, 1, 2, 4, 8, 1, 1, 2, 4, 8, 4, 8, 4 };
static const char * sTIFF_TypeNames[] = { "", "BYTE", "ASCII", "SHORT", "LONG", "RATIONAL",
"SBYTE", "UNDEFINED", "SSHORT", "SLONG", "SRATIONAL",
"FLOAT", "DOUBLE" };
@@ -958,6 +963,12 @@ static const XMP_Uns32 kISOBrand_mp41 = 0x6D703431UL;
static const XMP_Uns32 kISOBrand_mp42 = 0x6D703432UL;
static const XMP_Uns32 kISOBrand_avc1 = 0x61766331UL;
static const XMP_Uns32 kISOBrand_f4v = 0x66347620UL;
+static const XMP_Uns32 kISOBrand_isom = 0x69736F6DUL;
+static const XMP_Uns32 kISOBrand_3gp4 = 0x33677034UL;
+static const XMP_Uns32 kISOBrand_3g2a = 0x33673261UL;
+static const XMP_Uns32 kISOBrand_3g2b = 0x33673262UL;
+static const XMP_Uns32 kISOBrand_3g2c = 0x33673263UL;
+
static const XMP_Uns32 kQTTag_XMP_ = 0x584D505FUL;
@@ -1047,6 +1058,11 @@ CheckFileFormat ( const char * filePath, XMP_Uns8 * fileContent, XMP_Int64 fileS
case kISOBrand_mp41:
case kISOBrand_mp42:
case kISOBrand_avc1:
+ case kISOBrand_isom:
+ case kISOBrand_3gp4:
+ case kISOBrand_3g2a:
+ case kISOBrand_3g2b:
+ case kISOBrand_3g2c:
return kXMP_MPEG4File;
break;
@@ -1071,6 +1087,11 @@ CheckFileFormat ( const char * filePath, XMP_Uns8 * fileContent, XMP_Int64 fileS
if ( LookupFileExtMapping (filePath) == kXMP_MPEGFile ) return kXMP_MPEGFile;
if ( LookupFileExtMapping (filePath) == kXMP_MOVFile ) return kXMP_MOVFile;
+ std::string fileData = (char*)fileContent;
+ if ( (fileSize > 30) && (int)fileData.find ( "<svg" ) >= 0 ) {
+ return kXMP_SVGFile;
+ }
+
return kXMP_UnknownFile;
} // CheckFileFormat
@@ -1676,6 +1697,14 @@ DumpOneIFD (int ifdIndex, XMP_Uns8 * ifdPtr, XMP_Uns8 * endPtr,
case kTIFF_Double :
break;
+ case kTIFF_IFD:
+ if ( valueCount == 1 ) {
+ value32 = TIFF_GetUns32 ( valuePtr );
+ tree->addComment ( "hex value = 0x%.8X", value32 );
+ tree->changeValue ( "%u", value32 );
+ }
+ break;
+
default :
tree->addComment("** unknown type **");
break;
@@ -1732,11 +1761,14 @@ DumpOneIFD (int ifdIndex, XMP_Uns8 * ifdPtr, XMP_Uns8 * endPtr,
static void
DumpIFDChain (XMP_Uns8 * startPtr, XMP_Uns8 * endPtr,
- XMP_Uns8 * tiffContent, XMP_Uns32 fileOrigin, const char * label, std::string path)
+ XMP_Uns8 * tiffContent, XMP_Uns32 fileOrigin, const char * label, std::string path, bool isHeaderAbsent )
{
XMP_Uns8 * ifdPtr = startPtr;
XMP_Uns32 ifdOffset = startPtr - tiffContent;
+ if (isHeaderAbsent) // It's a kind of hack to iterate all the ifdboxes at least once.
+ ifdOffset = 1;
+
for (size_t ifdIndex = 0; ifdOffset != 0; ++ifdIndex) {
if ((ifdPtr < tiffContent) || (ifdPtr >= endPtr)) {
@@ -1757,7 +1789,7 @@ DumpIFDChain (XMP_Uns8 * startPtr, XMP_Uns8 * endPtr,
// =================================================================================================
static void
-DumpTIFF (XMP_Uns8 * tiffContent, XMP_Uns32 tiffLen, XMP_Uns32 fileOffset, const char * label, std::string path)
+DumpTIFF (XMP_Uns8 * tiffContent, XMP_Uns32 tiffLen, XMP_Uns32 fileOffset, const char * label, std::string path, bool isHeaderAbsent)
{
tree->pushNode("TIFF content from %s", label);
// ! TIFF can be nested because of the Photoshop 6 weiredness. Save and restore the procs.
@@ -1765,27 +1797,43 @@ DumpTIFF (XMP_Uns8 * tiffContent, XMP_Uns32 tiffLen, XMP_Uns32 fileOffset, const
GetUns32_Proc save_GetUns32 = TIFF_GetUns32;
GetUns64_Proc save_GetUns64 = TIFF_GetUns64;
- if (CheckBytes(tiffContent,"II\x2A\x00",4)) {
+ XMP_Uns32 ifdOffset = 0;
+
+ if (!isHeaderAbsent)
+ {
+ if (CheckBytes(tiffContent, "II\x2A\x00", 4)) {
+ beTIFF = false;
+ TIFF_GetUns16 = GetUns16LE;
+ TIFF_GetUns32 = GetUns32LE;
+ TIFF_GetUns64 = GetUns64LE;
+ tree->addComment("Little endian ");
+ }
+ else if (CheckBytes(tiffContent, "MM\x00\x2A", 4)) {
+ beTIFF = true;
+ TIFF_GetUns16 = GetUns16BE;
+ TIFF_GetUns32 = GetUns32BE;
+ TIFF_GetUns64 = GetUns64BE;
+ tree->addComment("Big endian ");
+ }
+ else {
+ tree->comment("** Missing TIFF image file header tree.");
+ return;
+ }
+
+ tree->addComment("TIFF from %s, offset %d (0x%X), size %d", label, fileOffset, fileOffset, tiffLen);
+
+ ifdOffset = TIFF_GetUns32(tiffContent + 4);
+ }
+ else
+ {
beTIFF = false;
TIFF_GetUns16 = GetUns16LE;
TIFF_GetUns32 = GetUns32LE;
TIFF_GetUns64 = GetUns64LE;
tree->addComment("Little endian ");
- } else if (CheckBytes(tiffContent,"MM\x00\x2A",4)) {
- beTIFF = true;
- TIFF_GetUns16 = GetUns16BE;
- TIFF_GetUns32 = GetUns32BE;
- TIFF_GetUns64 = GetUns64BE;
- tree->addComment("Big endian ");
- } else {
- tree->comment("** Missing TIFF image file header tree.");
- return;
}
- tree->addComment("TIFF from %s, offset %d (0x%X), size %d", label, fileOffset, fileOffset, tiffLen);
-
- XMP_Uns32 ifdOffset = TIFF_GetUns32 (tiffContent+4);
- DumpIFDChain (tiffContent+ifdOffset, tiffContent+tiffLen, tiffContent, fileOffset, label, path);
+ DumpIFDChain(tiffContent + ifdOffset, tiffContent + tiffLen, tiffContent, fileOffset, label, path, isHeaderAbsent);
TIFF_GetUns16 = save_GetUns16;
TIFF_GetUns32 = save_GetUns32;
@@ -2017,7 +2065,6 @@ static const XMP_Uns8 kUUID_IPTC[16] =
{ 0x09, 0xA1, 0x4E, 0x97, 0xC0, 0xB4, 0x42, 0xE0, 0xBE, 0xBF, 0x36, 0xDF, 0x6F, 0x0C, 0xE3, 0x6F };
static const XMP_Uns8 kUUID_PSIR[16] =
{ 0x2C, 0x4C, 0x01, 0x00, 0x85, 0x04, 0x40, 0xB9, 0xA0, 0x3E, 0x56, 0x21, 0x48, 0xD6, 0xDF, 0xEB };
-
// -------------------------------------------------------------------------------------------------
/**
@@ -2077,13 +2124,13 @@ DumpISOBoxes ( LFA_FileRef file, XMP_Uns32 maxBoxLen, std::string _isoPath )
// or, uhm, something garbage-ish...
if ( LFA_Tell(file) + boxHeaderSize > endOfThisLevel )
{
- XMP_Int64 numUnusedBytes = (LFA_Tell(file) + boxHeaderSize - endOfThisLevel);
+ XMP_Int64 numUnusedBytes = (endOfThisLevel - LFA_Tell(file));
tree->digestString( file, isoPath+"unused", numUnusedBytes, false );
tree->addComment( "'free' since too small for a box" );
bool ok;
- LFA_Seek( file, maxBoxLen, SEEK_CUR, &ok );
- assertMsg("skippind to-small space failed (truncated file?)", ok );
+ LFA_Seek( file, endOfThisLevel, SEEK_SET, &ok );
+ assertMsg("skippind to-small space failed (truncated file?)", ok );
continue; // could just as well: return
}
@@ -2106,21 +2153,27 @@ DumpISOBoxes ( LFA_FileRef file, XMP_Uns32 maxBoxLen, std::string _isoPath )
break;
}
- XMP_Uns32 tempBoxType = GetUns32LE(&boxType);
- std::string boxString( fromArgs( "%.4s" , &tempBoxType) );
+ XMP_Uns32 tempBoxType = GetUns32LE(&boxType);
+ std::string boxString( fromArgs( "%.4s" , &tempBoxType) );
- // substitute mac-copyright signs with an easier-to-handle "(c)"
+ if(boxString.size() != 0)
+ {
+ // substitute mac-copyright signs with an easier-to-handle "(c)"
#if !IOS_ENV
- if ( boxString.at(0) == 0xa9 )
+ if ( boxString.at(0) == 0xa9 )
#else
- if ( boxString.at(0) == 0xffffffa9 )
+ if ( boxString.at(0) == 0xffffffa9 )
#endif
- boxString = std::string("(c)") + boxString.substr(1);
+ boxString = std::string("(c)") + boxString.substr(1);
+ }
+ else
+ break;
+
isoPath = origIsoPath + boxString + "/";
// TEMP
// Log::info("pushing %s, endOfThisLevel: 0x%X", isoPath.c_str(), endOfThisLevel );
- // printf ("%s \n", isoPath.c_str());
+ // printf ("%s \n", isoPath.c_str());
tree->pushNode( isoPath );
tree->addComment("offset 0x%I64X, size 0x%I64X", boxPos , boxSize);
@@ -2317,9 +2370,9 @@ DumpISOBoxes ( LFA_FileRef file, XMP_Uns32 maxBoxLen, std::string _isoPath )
XMP_Int64 endOfTrailingBoxes = LFA_Tell(file) + remainingSize;
while ( LFA_Tell(file) < endOfTrailingBoxes )
{
- LFA_Tell( file );
- DumpISOBoxes( file, entrySize, isoPath );
- LFA_Tell( file );
+ LFA_Tell(file);
+ DumpISOBoxes( file, entrySize, isoPath );
+ LFA_Tell(file);
}
assertMsg( "did not boil down to zero", LFA_Tell(file) == endOfTrailingBoxes );
@@ -2385,7 +2438,7 @@ DumpISOBoxes ( LFA_FileRef file, XMP_Uns32 maxBoxLen, std::string _isoPath )
}
case 0x74727063: // cprt, FULLBOX
- if ( isoPath == "moov/udta/cprt/")
+ if ( isoPath == "moov/udta/cprt/" || isoPath == "moov/uuid/udta/cprt/" )
{
digestISOFullBoxExtension( file, isoPath, remainingSize, version, flags );
@@ -2421,6 +2474,18 @@ DumpISOBoxes ( LFA_FileRef file, XMP_Uns32 maxBoxLen, std::string _isoPath )
// (c)-style quicktime boxes and boxes of no interest:
default:
+ if ( (boxType & 0xA9) == 0xA9) // (c)something
+ {
+ if ( 0 == isoPath.compare( 0 , 10, "moov/udta/" ))
+ { // => Quicktime metadata "international text sequence" ( size, language code, value )
+ digestInternationalTextSequence( file, isoPath, &remainingSize );
+ } else
+ {
+ tree->addComment("WARNING: unknown flavor of (c)*** boxes, neither QT nor iTunes");
+ }
+ break;
+ }
+ //boxes of no interest:
break;
}
@@ -3385,6 +3450,10 @@ DumpRIFFChunk ( LFA_FileRef file, XMP_Int64 parentEnd, std::string origChunkPath
isXMPchunk = true;
}
+ bool isIDITChunk =
+ ( ( origChunkPath == "RIFF:AVI/LIST:hdrl" || origChunkPath == "RIFF:AVI /LIST:hdrl" )
+ && idString == "IDIT" );
+
// deal with chunks of interest /////////////////////////////////////////////
// a little prelude for disp chunk
if ( isDispChunk )
@@ -3399,7 +3468,7 @@ DumpRIFFChunk ( LFA_FileRef file, XMP_Int64 parentEnd, std::string origChunkPath
chunkSize -= 4;
}
- if ( isListInfo || isListTdat || isDispChunk )
+ if (isListInfo || isListTdat || isDispChunk || isIDITChunk)
{
// dump that string:
std::string value;
@@ -3501,6 +3570,10 @@ DumpRIFFChunk ( LFA_FileRef file, XMP_Int64 parentEnd, std::string origChunkPath
// parse till first \0
std::string description( descriptionBuffer );
+ // Dumping the iXML chunk. Needed for testing
+ // Add iXML chunk as a node to tree
+ tree->setKeyValue( chunkPath+".ValueOfIXMLChunk", description );
+
delete[] descriptionBuffer;
tree->addComment("packet end: 0x%llX", LFA_Tell( file ) );
@@ -3940,6 +4013,93 @@ DumpInDesign (LFA_FileRef file, XMP_Uns32 inddLen)
// =================================================================================================
+static void
+DumpSVGTag ( std::string basePath, XML_NodePtr currentNode )
+{
+ if ( currentNode )
+ {
+ tree->pushNode ( basePath + currentNode->name );
+
+ // Iterating over all XML children.
+ XML_NodeVector currNodeVector = currentNode->content;
+ for ( int i = 0; i < currNodeVector.size ( ); i++ )
+ {
+ // Dump all children who are element nodes.
+ if ( currNodeVector[i]->kind == kElemNode )
+ DumpSVGTag ( basePath + currentNode->name + "/", currNodeVector[i] );
+
+ // Extract the value from datanodes and put in TagMap if it's not yet available.
+ if ( currNodeVector[i]->kind == kCDataNode && tree->getValue ( basePath + currentNode->name ) == "" )
+ tree->updateKeyValue ( basePath + currentNode->name, currNodeVector[i]->value );
+ }
+ }
+
+} // DumpSVGTag
+
+// =================================================================================================
+
+static void
+DumpSVG ( LFA_FileRef file, XMP_Uns32 svgLen )
+{
+ // SVG is an XML based format.We consider any file as SVG file if the given file contains a SVG tag.
+ // Hence CheckFileFormat looks for presence of "<svg" in the file.
+ //
+ // For Dumping SVG elements we are using ExpatAdapter. Below code will parse given file using this
+ // adapter and add different tags in the TagMap tree.
+ //
+ // Below is the currently supported structure of known tags for this format.
+ // <svg>
+ // <title/>
+ // <desc/>
+ // <metadata>
+ // <x:xmpmeta/>
+ // <...>
+ // <...>
+ // </metadata>
+ // <...>
+ // <...>
+ // </svg>
+
+ ExpatAdapter * pExpatAdapter = XMP_NewExpatAdapter ( false );
+
+ if ( pExpatAdapter == 0 )
+ {
+ tree->comment ( "ExpatAdapter initialization failed. Cann't parse SVG file." );
+ return;
+ }
+
+ // Allocating big enough memory on heap to read file contents.
+ XMP_Uns8 *fileContent = new XMP_Uns8[svgLen + 1];
+ memset ( fileContent, 0, (svgLen + 1)*sizeof ( XMP_Uns8 ) );
+
+ // Reading total file in buffer (fileContent)
+ LFA_Seek ( file, 0, SEEK_SET );
+ LFA_Read ( file, fileContent, svgLen + 1, false );
+
+ // Parsing the file with ExpatAdapter
+ pExpatAdapter->ParseBuffer ( fileContent, svgLen + 1, false /* not the end */ );
+
+ // Finding <svg> element and adding to TagMap tree.
+ XML_NodePtr svgNode = pExpatAdapter->tree.GetNamedElement ( "http://www.w3.org/2000/svg", "svg" );
+ DumpSVGTag ( "", svgNode );
+
+ // De-allocating all the resources.
+ if ( fileContent )
+ {
+ delete[] fileContent;
+ fileContent = NULL;
+ }
+
+ if ( pExpatAdapter )
+ {
+ delete pExpatAdapter;
+ pExpatAdapter = NULL;
+ }
+
+} // DumpSVG
+
+// =================================================================================================
+
#define kSWF_FileAttributesTag 69
#define kSWF_MetadataTag 77
@@ -4788,6 +4948,7 @@ static void DumpID3v22Frames ( LFA_FileRef file, XMP_Uns8 vMajor, XMP_Uns32 fram
static void DumpID3v23Frames ( LFA_FileRef file, XMP_Uns8 vMajor, XMP_Uns32 framePos, XMP_Uns32 frameEnd ) {
// Dump the frames in an ID3 v2.3 or v2.4 tag.
+ int iIterator = 0;
while ( (framePos < frameEnd) && ((frameEnd - framePos) >= 10) ) {
@@ -4879,9 +5040,76 @@ static void DumpID3v23Frames ( LFA_FileRef file, XMP_Uns8 vMajor, XMP_Uns32 fram
}
}
+
+ else if ( CheckBytes ( frameHead.id , "APIC" , 4 ) ) {
- framePos += (sizeof(frameHead) + frameHead.size);
+ ++iIterator;
+ unsigned int iOffset = 0;
+ CaptureFileData ( file , 0 , frameHead.size );
+
+ char encoding[2];
+ memset ( encoding , 0x0 , 2 );
+ encoding[0] = sDataPtr[iOffset++];
+ tree->setKeyValue ( fromArgs ( "ID3v2:APIC-encodingType_%d" , iIterator ) , encoding );
+ char * mimeType = ( char* ) (sDataPtr + iOffset);
+ iOffset += strlen ( mimeType ) + 1; //1 is for null termination
+ tree->setKeyValue ( fromArgs ( "ID3v2:APIC-mimeType_%d" , iIterator ) , mimeType );
+
+ char pictureType[2];
+ memset ( pictureType , 0x0 , 2 );
+ pictureType[0] = sDataPtr[iOffset++];
+ tree->setKeyValue ( fromArgs ( "ID3v2:APIC-pictureType_%1d" , iIterator ) , pictureType );
+
+ bool bigEndian = PrintID3Encoding ( encoding[0] , (sDataPtr + iOffset) );
+ if ( encoding[0] == 0x00 ) {
+
+ XMP_Uns8 * descrPtr = sDataPtr + iOffset;
+ XMP_Uns8 * valuePtr = descrPtr;
+
+ while ( *valuePtr != 0 ) ++valuePtr;
+ ++valuePtr; //Null termination
+
+ size_t descrBytes = valuePtr - descrPtr;
+ tree->setKeyValue ( fromArgs ( "ID3v2:APIC-descr_%d" , iIterator ) , convert8Bit ( descrPtr , false , descrBytes - 1 ).c_str ( ) );
+ iOffset += descrBytes;
+ }
+ else if ( encoding[0] == 0x01 ) {
+
+ XMP_Uns16 * descrPtr = ( XMP_Uns16* ) (sDataPtr + iOffset);
+ XMP_Uns16 * valuePtr = descrPtr;
+
+ while ( *valuePtr != 0 ) ++valuePtr;
+ ++valuePtr; //Null termination
+
+ size_t descrBytes = 2 * (valuePtr - descrPtr);
+ tree->setKeyValue ( fromArgs ( "ID3v2:APIC-descr_%d" , iIterator ) , convert16Bit ( bigEndian , ( XMP_Uns8* ) (descrPtr + 1) , false , descrBytes - 4 ).c_str ( ) );
+ iOffset += descrBytes;
+ }
+
+ XMP_Uns8 *picPtr = (sDataPtr + iOffset);
+ unsigned long size_PictureData = frameHead.size - iOffset;
+
+ char picDataSize[8];
+ memset ( picDataSize , 0x0 , 8 );
+ sprintf ( picDataSize, "%d", size_PictureData );
+
+ std::string picData;
+ picData.assign ( ( char* ) picPtr , size_PictureData );
+
+ tree->setKeyValue ( fromArgs ( "ID3v2:APIC-pictureData_%d" , iIterator ) , picData );
+ tree->setKeyValue ( fromArgs ( "ID3v2:APIC-pictureDataSize_%d" , iIterator ) , picDataSize );
+ }
+
+ framePos += (sizeof(frameHead) + frameHead.size);
+
+ }
+
+ if ( iIterator ) {
+ char noOfAPICs[2];
+ memset ( noOfAPICs , 0x0 , 2 );
+ sprintf ( noOfAPICs , "%d" , iIterator );
+ tree->setKeyValue ( "ID3v2:NoOfAPIC" , noOfAPICs );
}
if ( framePos < frameEnd ) {
@@ -5328,6 +5556,12 @@ void DumpFile::Scan (std::string filename, TagTree &tagTree, bool resetTree)
DumpPS ( fileRef, fileLen );
tagTree.popNode();
+ } else if ( format == kXMP_SVGFile ) {
+
+ tagTree.pushNode ( "Dumping SVG file" );
+ tagTree.addComment ( "size %lld (0x%llx)", fileLen, fileLen );
+ DumpSVG ( fileRef, fileLen );
+ tagTree.popNode ( );
} else if ( format == kXMP_UnknownFile ) {
tagTree.pushNode ( "Unknown format. packet scanning, size %d (0x%X)", fileLen, fileLen );
diff --git a/samples/source/common/TagTree.cpp b/samples/source/common/TagTree.cpp
index aa8ca12..761ab22 100644
--- a/samples/source/common/TagTree.cpp
+++ b/samples/source/common/TagTree.cpp
@@ -118,6 +118,25 @@ void TagTree::setKeyValue(const std::string key,const std::string value, const s
Log::info( " setKeyValue( %s |-> %s) [%s]", key.c_str(), value.c_str(), _comment.c_str() );
}
+void TagTree::updateKeyValue ( const std::string key, const std::string value, const std::string _comment )
+{
+ Node* pCurNode = *nodeStack.rbegin ( ); //current Node
+ pCurNode->children.push_back ( Node ( key, value, _comment ) );
+
+ if ( key.size ( ) == 0 ) { // standalone comment?
+ if ( value.size ( ) != 0 ) // must have no value
+ Log::error ( "no key but value found." );
+ return; // ==> do not add to tag-map
+ }
+
+ //add to Map -----------------------------------
+ lastNode = &*(pCurNode->children.rbegin ( ));
+ tagMap[key] = lastNode;
+
+ if ( verbose )
+ Log::info ( " setKeyValue( %s |-> %s) [%s]", key.c_str ( ), value.c_str ( ), _comment.c_str ( ) );
+}
+
void TagTree::digest(LFA_FileRef file,const std::string key /*=NULL*/,
void* returnValue /*=""*/,
XMP_Int32 numOfBytes /*=0*/ )
diff --git a/samples/source/common/TagTree.h b/samples/source/common/TagTree.h
index 857b141..9bd46d3 100644
--- a/samples/source/common/TagTree.h
+++ b/samples/source/common/TagTree.h
@@ -107,6 +107,9 @@ public:
//sets a key-value pair and optinal comment. value is also optional and may be set at a later time
//can also be used to set pure, standalone comments (using key==value=="")
void setKeyValue(const std::string key,const std::string value="", const std::string comment="");
+
+ //updates the value of key without creating new key, value pairs.
+ void updateKeyValue ( const std::string key, const std::string value, const std::string comment = "" );
// convenience functions //////////////////////////////////////////////////////////////////
// these functions read bytes (assert in file-length), dump them to screen (as hex or as number)
diff --git a/samples/source/common/globals.h b/samples/source/common/globals.h
index 8b0d09c..3998476 100644
--- a/samples/source/common/globals.h
+++ b/samples/source/common/globals.h
@@ -69,8 +69,10 @@
const char AEOEUE_UTF8_CSTRING[]={0xC3, 0x84, 0xC3, 0x96, 0xC3, 0x9C,'\0'};
const std::string AEOEUE_UTF8(AEOEUE_UTF8_CSTRING);
const std::string AEOEUE_UTF8_BUGINESE("<C3 84 C3 96 C3 9C>");
+ const std::string AEOEUE_UTF8_BUGINESE_EVEN ( "<C3 84 C3 96 C3 9C 00>" );
const std::string AEOEUE_WIN_LOCAL_BUGINESE("<C4 D6 DC>");
+ const std::string AEOEUE_WIN_LOCAL_BUGINESE_EVEN ( "<C4 D6 DC 00>" );
const std::string AEOEUE_MAC_LOCAL_BUGINESE("<80 85 86>");
const std::string AEOEUE_WIN_MOJIBAKE_BUGINESE("<E2 82 AC E2 80 A6 E2 80 A0>");
diff --git a/samples/source/dumpfile/main.cpp b/samples/source/dumpfile/main.cpp
index bd11b05..c18f6d7 100644
--- a/samples/source/dumpfile/main.cpp
+++ b/samples/source/dumpfile/main.cpp
@@ -41,6 +41,7 @@ const int DUMPFILEVERSION=2;
#include "public/include/XMP.hpp" //NB: no XMP.incl_cpp here on purpose, gets compiled in main...
#include "public/include/XMP.incl_cpp" //include in EXACTLY one source file (i.e. main, in Action gets you trouble...)
#include "public/include/XMP_Const.h"
+#include "source/XML_Node.cpp"
//utils
#include "samples/source/common/Log.h"
diff --git a/source/Host_IO-POSIX.cpp b/source/Host_IO-POSIX.cpp
index 420b468..5f71a28 100644
--- a/source/Host_IO-POSIX.cpp
+++ b/source/Host_IO-POSIX.cpp
@@ -357,7 +357,7 @@ XMP_Uns32 Host_IO::Read ( Host_IO::FileRef refNum, void * buffer, XMP_Uns32 coun
ssize_t bytesRead = read ( refNum, buffer, count );
if ( bytesRead == -1 ) XMP_Throw ( "Host_IO::Read, read failure", kXMPErr_ReadError );
- return bytesRead;
+ return static_cast<XMP_Uns32>( bytesRead );
} // Host_IO::Read
diff --git a/source/SafeStringAPIs.cpp b/source/SafeStringAPIs.cpp
index 41f09e4..0e7b224 100644
--- a/source/SafeStringAPIs.cpp
+++ b/source/SafeStringAPIs.cpp
@@ -407,8 +407,8 @@ CONDITIONAL_STATIC SafeInt32 makepath_safe(char* path, size_t size, const char*
static char *reverse_string_safe(char *str, size_t size)
{
- int head = 0;
- int tail = strnlen_safe(str, size) - 1;
+ size_t head = 0;
+ size_t tail = strnlen_safe(str, size) - 1;
while (head < tail)
{
char temp = str[head];
@@ -607,15 +607,15 @@ CONDITIONAL_STATIC char * gets_safe(char* buffer, size_t size)
char* pointer = buffer;
char ch;
size_t count = size;
- ch = getchar();
- while(ch != EOF && ch != '\n')
+ ch = (char)getchar();
+ while(ch != (char)EOF && ch != '\n')
{
if(count > 0)
{
count--;
*pointer++ = ch;
}
- ch = getchar();
+ ch = (char)getchar();
}
if(count == 0)
{
diff --git a/source/UnicodeConversions.cpp b/source/UnicodeConversions.cpp
index b4de085..39e4413 100644
--- a/source/UnicodeConversions.cpp
+++ b/source/UnicodeConversions.cpp
@@ -274,7 +274,7 @@ extern void ToUTF16 ( const UTF8Unit * utf8In, size_t utf8Len, std::string * utf
while ( utf8Len > 0 ) {
Converter ( utf8In, utf8Len, u16Buffer, kBufferSize, &readCount, &writeCount );
- if ( writeCount == 0 ) UC_Throw ( "Incomplete Unicode at end of string", kXMPErr_BadXML );
+ if ( writeCount == 0 ) UC_Throw ( "Incomplete Unicode at end of string", kXMPErr_BadUnicode );
utf16Str->append ( (const char *)u16Buffer, writeCount*2 );
utf8In += readCount;
utf8Len -= readCount;
@@ -295,7 +295,7 @@ extern void ToUTF16Native ( const UTF8Unit * utf8In, size_t utf8Len, std::string
while ( utf8Len > 0 ) {
UTF8_to_UTF16Nat ( utf8In, utf8Len, u16Buffer, kBufferSize, &readCount, &writeCount );
- if ( writeCount == 0 ) UC_Throw ( "Incomplete Unicode at end of string", kXMPErr_BadXML );
+ if ( writeCount == 0 ) UC_Throw ( "Incomplete Unicode at end of string", kXMPErr_BadUnicode );
utf16Str->append ( (const char *)u16Buffer, writeCount*2 );
utf8In += readCount;
utf8Len -= readCount;
@@ -319,7 +319,7 @@ extern void ToUTF32 ( const UTF8Unit * utf8In, size_t utf8Len, std::string * utf
while ( utf8Len > 0 ) {
Converter ( utf8In, utf8Len, u32Buffer, kBufferSize, &readCount, &writeCount );
- if ( writeCount == 0 ) UC_Throw ( "Incomplete Unicode at end of string", kXMPErr_BadXML );
+ if ( writeCount == 0 ) UC_Throw ( "Incomplete Unicode at end of string", kXMPErr_BadUnicode );
utf32Str->append ( (const char *)u32Buffer, writeCount*4 );
utf8In += readCount;
utf8Len -= readCount;
@@ -340,7 +340,7 @@ extern void ToUTF32Native ( const UTF8Unit * utf8In, size_t utf8Len, std::string
while ( utf8Len > 0 ) {
UTF8_to_UTF32Nat ( utf8In, utf8Len, u32Buffer, kBufferSize, &readCount, &writeCount );
- if ( writeCount == 0 ) UC_Throw ( "Incomplete Unicode at end of string", kXMPErr_BadXML );
+ if ( writeCount == 0 ) UC_Throw ( "Incomplete Unicode at end of string", kXMPErr_BadUnicode );
utf32Str->append ( (const char *)u32Buffer, writeCount*4 );
utf8In += readCount;
utf8Len -= readCount;
@@ -364,7 +364,7 @@ extern void FromUTF16 ( const UTF16Unit * utf16In, size_t utf16Len, std::string
while ( utf16Len > 0 ) {
Converter ( utf16In, utf16Len, u8Buffer, kBufferSize, &readCount, &writeCount );
- if ( writeCount == 0 ) UC_Throw ( "Incomplete Unicode at end of string", kXMPErr_BadXML );
+ if ( writeCount == 0 ) UC_Throw ( "Incomplete Unicode at end of string", kXMPErr_BadUnicode );
utf8Str->append ( (const char *)u8Buffer, writeCount );
utf16In += readCount;
utf16Len -= readCount;
@@ -385,7 +385,7 @@ extern void FromUTF16Native ( const UTF16Unit * utf16In, size_t utf16Len, std::s
while ( utf16Len > 0 ) {
UTF16Nat_to_UTF8 ( utf16In, utf16Len, u8Buffer, kBufferSize, &readCount, &writeCount );
- if ( writeCount == 0 ) UC_Throw ( "Incomplete Unicode at end of string", kXMPErr_BadXML );
+ if ( writeCount == 0 ) UC_Throw ( "Incomplete Unicode at end of string", kXMPErr_BadUnicode );
utf8Str->append ( (const char *)u8Buffer, writeCount );
utf16In += readCount;
utf16Len -= readCount;
@@ -409,7 +409,7 @@ extern void FromUTF32 ( const UTF32Unit * utf32In, size_t utf32Len, std::string
while ( utf32Len > 0 ) {
Converter ( utf32In, utf32Len, u8Buffer, kBufferSize, &readCount, &writeCount );
- if ( writeCount == 0 ) UC_Throw ( "Incomplete Unicode at end of string", kXMPErr_BadXML );
+ if ( writeCount == 0 ) UC_Throw ( "Incomplete Unicode at end of string", kXMPErr_BadUnicode );
utf8Str->append ( (const char *)u8Buffer, writeCount );
utf32In += readCount;
utf32Len -= readCount;
@@ -430,7 +430,7 @@ extern void FromUTF32Native ( const UTF32Unit * utf32In, size_t utf32Len, std::s
while ( utf32Len > 0 ) {
UTF32Nat_to_UTF8 ( utf32In, utf32Len, u8Buffer, kBufferSize, &readCount, &writeCount );
- if ( writeCount == 0 ) UC_Throw ( "Incomplete Unicode at end of string", kXMPErr_BadXML );
+ if ( writeCount == 0 ) UC_Throw ( "Incomplete Unicode at end of string", kXMPErr_BadUnicode );
utf8Str->append ( (const char *)u8Buffer, writeCount );
utf32In += readCount;
utf32Len -= readCount;
diff --git a/source/XMPFiles_IO.cpp b/source/XMPFiles_IO.cpp
index 6de8666..3d3c45e 100644
--- a/source/XMPFiles_IO.cpp
+++ b/source/XMPFiles_IO.cpp
@@ -1,4 +1,4 @@
-// =================================================================================================
+ // =================================================================================================
// ADOBE SYSTEMS INCORPORATED
// Copyright 2010 Adobe Systems Incorporated
// All Rights Reserved
@@ -18,22 +18,22 @@
#define EMPTY_FILE_PATH ""
-#define XMP_FILESIO_STATIC_START try { int a;
+#define XMP_FILESIO_STATIC_START try { /* int a;*/
#define XMP_FILESIO_STATIC_END1(errorCallbackPtr, filePath, severity) \
- a = 1; \
+ /*a = 1;*/ \
} catch ( XMP_Error & error ) { \
if ( (errorCallbackPtr) != NULL ) (errorCallbackPtr)->NotifyClient ( (severity), error, (filePath) ); \
else throw; \
}
-#define XMP_FILESIO_START try { int b;
+#define XMP_FILESIO_START try { /*int b;*/
#define XMP_FILESIO_END1(severity) \
- b = 1; \
+ /*b = 1;*/ \
} catch ( XMP_Error & error ) { \
if ( errorCallback != NULL ) errorCallback->NotifyClient ( (severity), error, filePath.c_str() ); \
else throw; \
}
#define XMP_FILESIO_END2(filePath, severity) \
- b = 1; \
+ /* b = 1;*/ \
} catch ( XMP_Error & error ) { \
if ( errorCallback != NULL ) errorCallback->NotifyClient ( (severity), error, (filePath) ); \
else throw; \
diff --git a/source/XMP_LibUtils.cpp b/source/XMP_LibUtils.cpp
index 8d62e74..e27ea30 100644
--- a/source/XMP_LibUtils.cpp
+++ b/source/XMP_LibUtils.cpp
@@ -35,45 +35,6 @@ extern "C" void Terminate_LibUtils(){
}
// =================================================================================================
-// Error notifications
-// =================================================================================================
-
-bool GenericErrorCallback::CheckLimitAndSeverity ( XMP_ErrorSeverity severity ) const
-{
-
- if ( this->limit == 0 ) return true; // Always notify if the limit is zero.
- if ( severity < this->topSeverity ) return false; // Don't notify, don't count.
-
- if ( severity > this->topSeverity ) {
- this->topSeverity = severity;
- this->notifications = 0;
- }
-
- this->notifications += 1;
- return (this->notifications <= this->limit);
-
-} // GenericErrorCallback::CheckLimitAndSeverity
-
-// =================================================================================================
-
-void GenericErrorCallback::NotifyClient ( XMP_ErrorSeverity severity, XMP_Error & error, XMP_StringPtr filePath /*= 0 */ ) const
-{
- bool notifyClient = CanNotify() && !error.IsNotified();
- bool returnAndRecover (severity == kXMPErrSev_Recoverable);
-
- if ( notifyClient ) {
- error.SetNotified();
- notifyClient = CheckLimitAndSeverity ( severity );
- if ( notifyClient ) {
- returnAndRecover &= ClientCallbackWrapper( filePath, severity, error.GetID(), error.GetErrMsg() );
- }
- }
-
- if ( ! returnAndRecover ) XMP_Error_Throw ( error );
-
-}
-
-// =================================================================================================
// Thread synchronization locks
// =================================================================================================
diff --git a/source/XMP_LibUtils.hpp b/source/XMP_LibUtils.hpp
index 38b0279..e4477fa 100644
--- a/source/XMP_LibUtils.hpp
+++ b/source/XMP_LibUtils.hpp
@@ -72,6 +72,8 @@ extern "C" void Terminate_LibUtils();
#define XMP_Throw_Verbose(msg,e,id) XMP_Throw(msg, id)
#endif
+#define XMP_Error_Throw(error) { AnnounceThrow (error.GetErrMsg()); throw error; }
+
class GenericErrorCallback {
public:
// Abstract base class for XMPCore and XMPFiles internal error notification support. Needed so
@@ -88,18 +90,60 @@ public:
void Clear() { this->notifications = 0; this->limit = 1; this->topSeverity = kXMPErrSev_Recoverable; };
- bool CheckLimitAndSeverity (XMP_ErrorSeverity severity ) const;
+ bool CheckLimitAndSeverity (XMP_ErrorSeverity severity ) const
+ {
+
+ if ( this->limit == 0 ) return true; // Always notify if the limit is zero.
+ if ( severity < this->topSeverity ) return false; // Don't notify, don't count.
+
+ if ( severity > this->topSeverity ) {
+ this->topSeverity = severity;
+ this->notifications = 0;
+ }
+
+ this->notifications += 1;
+ return (this->notifications <= this->limit);
+
+ } // GenericErrorCallback::CheckLimitAndSeverity
// Const so they can be used with const XMPMeta and XMPFiles objects.
- void NotifyClient ( XMP_ErrorSeverity severity, XMP_Error & error, XMP_StringPtr filePath = 0 ) const;
+ void NotifyClient ( XMP_ErrorSeverity severity, XMP_Error & error, XMP_StringPtr filePath = 0 ) const
+ {
+
+ bool notifyClient = CanNotify() && !error.IsNotified();
+ bool returnAndRecover (severity == kXMPErrSev_Recoverable);
+
+ if ( notifyClient ) {
+ error.SetNotified();
+ notifyClient = CheckLimitAndSeverity ( severity );
+ if ( notifyClient ) {
+ returnAndRecover &= ClientCallbackWrapper( filePath, severity, error.GetID(), error.GetErrMsg() );
+ }
+ }
+
+ if ( ! returnAndRecover ) XMP_Error_Throw ( error );
+
+ } // GenericErrorCallback::NotifyClient
virtual bool CanNotify ( ) const = 0;
virtual bool ClientCallbackWrapper ( XMP_StringPtr filePath, XMP_ErrorSeverity severity, XMP_Int32 cause, XMP_StringPtr messsage ) const = 0;
};
-#define XMP_Error_Throw(error) { AnnounceThrow (error.GetErrMsg()); throw error; }
+// -------------------------------------------------------------------------------------------------
+struct ErrorCallbackBox
+{
+ XMPFiles_ErrorCallbackWrapper wrapperProc;
+ XMPFiles_ErrorCallbackProc clientProc;
+ void * context;
+ XMP_Uns32 limit;
+
+ ErrorCallbackBox( XMPFiles_ErrorCallbackWrapper wrapperProcedure,
+ XMPFiles_ErrorCallbackProc clientProcedure,
+ void * contextPtr,
+ XMP_Uns32 limit32 ): wrapperProc(wrapperProcedure), clientProc(clientProcedure), context(contextPtr), limit(limit32) { }
+};
// -------------------------------------------------------------------------------------------------
@@ -195,8 +239,8 @@ public:
#define HaveAtomicIncrDecr 1
typedef int32_t XMP_AtomicCounter;
- #define XMP_AtomicIncrement(x) OSAtomicIncrement32 ( &(x) )
- #define XMP_AtomicDecrement(x) OSAtomicDecrement32 ( &(x) )
+ #define XMP_AtomicIncrement(x) OSAtomicIncrement32Barrier ( &(x) )
+ #define XMP_AtomicDecrement(x) OSAtomicDecrement32Barrier ( &(x) )
typedef pthread_mutex_t XMP_BasicMutex;
diff --git a/source/XMP_ProgressTracker.hpp b/source/XMP_ProgressTracker.hpp
index b6776fb..14b5d54 100644
--- a/source/XMP_ProgressTracker.hpp
+++ b/source/XMP_ProgressTracker.hpp
@@ -45,6 +45,9 @@ public:
void AddTotalWork ( float workIncrement );
void AddWorkDone ( float workIncrement );
void WorkComplete();
+ CallbackInfo * GetCallbackInfo() {
+ return ( (&cbInfo) ? (&cbInfo) : NULL);
+ }
bool WorkInProgress() { return this->workInProgress; };
diff --git a/tools/cmake/ReadMe.txt b/tools/cmake/ReadMe.txt
index 0fb157c..1d68c3e 100644
--- a/tools/cmake/ReadMe.txt
+++ b/tools/cmake/ReadMe.txt
@@ -2,14 +2,12 @@ The XMP Toolkit uses an open-source system to manage the build process. XMP Tool
To use CMake:
-1. Obtain a copy of the CMake for the current platform (Windows, Mac, or Linux) from the location :
-http://www.cmake.org/cmake/resources/software.html
-The minimum version of CMake required for this release is 2.8.6
+1. The minimum version of CMake required for this release is 3.5.2
-Download the latest CMake ditribution zipped package from the above link corresponding to the current platform. For example, for the CMake version 2.8.12.2 the distribution names for different platforms are:
-Windows ---- cmake-2.8.12.2-win32-x86.zip
-Mac OSX ---- cmake-2.8.12.2-Darwin64-universal.tar.gz
-Linux ---- cmake-2.8.12.2-Linux-i386.tar.gz
+Download the following recommended CMake distribution zipped package from the following links corresponding to the current platform (Windows, Mac, or Linux)
+Windows ---- https://cmake.org/files/v3.5/cmake-3.5.2-win32-x86.zip
+Mac OSX ---- https://cmake.org/files/v3.5/cmake-3.5.2-Darwin-x86_64.tar.gz
+Linux ---- https://cmake.org/files/v3.5/cmake-3.5.2-Linux-i386.tar.gz
2. For Windows and Linux copy the folders /bin and /share into <xmpsdk>/tools/cmake/
For Mac: